﻿:root {
  --max-content-width: 56rem;
  --corner-radius: .6em;
  --time-attack: 200ms;
  --time-decay: 800ms;
  --time-motion: 650ms;
  --ani-easing: cubic-bezier(.18, .42, 0.2, 1);
  --top-layer-index: 101;
  --sticky-top-mob: 57px;
  --sticky-top-tab: 68px
}

@media (prefers-reduced-motion) {
  :root {
    --time-motion: 1950ms
  }
}

@media (prefers-reduced-motion) {
  :root {
    --ani-easing: cubic-bezier(.52, 0, .62, 1)
  }
}

.visually-hidden {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px)
}

.print-only {
  display: none
}

.with-floats:after {
  content: " ";
  display: table;
  clear: both
}

:root {
  --base-colour: #242424;
  --heading-colour: #006062;
  --border-colour: #0B2A3B;
  --button-back: #D0FC76;
  --button-hover-back: #ff5054;
  --content-back: #e3f1ee;
  --focus-visible-colour: #ff5054;
  --menu-back: #FF757C;
  --header-colour: #0B2A3B;
  --header-fsm-colour: rgba(11, 42, 59, 0.96);
  --thumbnail-bg-colour: rgba(208, 252, 118, 0.3);
  --highlights-colour: #D0FC76;
  --box-text-colour: white;
  --active-value-text: black;
  --active-value-back: #D0FC76;
  --box-back: #A0D0C6
}

@-webkit-keyframes tickerTape {
  from {
    -webkit-transform: translateX(0px)
  }

  to {
    -webkit-transform: translateX(var(--tape-x))
  }
}

@keyframes tickerTape {
  from {
    transform: translateX(0px)
  }

  to {
    transform: translateX(var(--tape-x))
  }
}

@-webkit-keyframes fadeIn {
  from {
    opacity: 0
  }

  to {
    opacity: 1
  }
}

@keyframes fadeIn {
  from {
    opacity: 0
  }

  to {
    opacity: 1
  }
}

.fade-in {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 3s;
  animation-duration: 3s;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 0s;
  animation-delay: 0s
}

@-webkit-keyframes fadeInAbove {
  from {
    -webkit-transform: translateY(-100%);
    opacity: 0
  }

  to {
    -webkit-transform: translateY(0%);
    opacity: 1
  }
}

@keyframes fadeInAbove {
  from {
    transform: translateY(-100%);
    opacity: 0
  }

  to {
    transform: translateY(0%);
    opacity: 1
  }
}

@-webkit-keyframes fadeInBelow {
  from {
    -webkit-transform: translateY(10%);
    opacity: 0
  }

  to {
    -webkit-transform: translateY(0%);
    opacity: 1
  }
}

@keyframes fadeInBelow {
  from {
    transform: translateY(10%);
    opacity: 0
  }

  to {
    transform: translateY(0%);
    opacity: 1
  }
}

@-webkit-keyframes zoomInElastic {
  0% {
    -webkit-transform: scale(.3);
    opacity: 0
  }

  60% {
    opacity: 1
  }

  100% {
    -webkit-transform: scale(1);
    opacity: 1
  }
}

@keyframes zoomInElastic {
  0% {
    transform: scale(.3);
    opacity: 0
  }

  60% {
    opacity: 1
  }

  100% {
    transform: scale(1);
    opacity: 1
  }
}

@keyframes revealUnderTR {
  0% {
    transform: translate(-50%, 50%);
    opacity: 0
  }

  100% {
    transform: translate(0%, 0%);
    opacity: 1
  }
}

@keyframes revealUnderBL {
  0% {
    transform: translate(50%, -50%);
    opacity: 0
  }

  100% {
    transform: translate(0%, 0%);
    opacity: 1
  }
}

@-webkit-keyframes animateBadgeTablet {
  0% {
    -webkit-transform: scale(.3) rotate(-65deg);
    opacity: 0
  }

  60% {
    opacity: 1
  }

  100% {
    -webkit-transform: scale(1) rotate(0deg)
  }
}

@keyframes animateBadgeTablet {
  0% {
    transform: scale(.3) rotate(-65deg);
    opacity: 0
  }

  60% {
    opacity: 1
  }

  100% {
    transform: scale(1) rotate(0deg);
    opacity: 1
  }
}

@-webkit-keyframes animateBadgeDesktop {
  0% {
    -webkit-transform: scale(.3) rotate(-65deg);
    opacity: 0
  }

  60% {
    opacity: 1
  }

  100% {
    -webkit-transform: scale(1) rotate(0deg)
  }
}

@keyframes animateBadgeDesktop {
  0% {
    transform: scale(.3) rotate(-65deg);
    opacity: 0
  }

  60% {
    opacity: 1
  }

  100% {
    transform: scale(1) rotate(0deg)
  }
}

@keyframes awardBadgePulse {
  0% {
    transform: scale(1) rotate(0deg);
    opacity: 1
  }

  25% {
    transform: scale(.9) rotate(-8deg);
    opacity: .8
  }

  75% {
    opacity: 1;
    transform: scale(1.08) rotate(12deg)
  }

  100% {
    opacity: 1;
    transform: scale(1) rotate(0deg)
  }
}

@keyframes swingIn {
  0% {
    transform: scale(.8) rotate(-65deg);
    opacity: 0
  }

  60% {
    opacity: 1
  }

  100% {
    transform: scale(1) rotate(0deg)
  }
}

@-webkit-keyframes zoomInPlace {
  0% {
    -webkit-transform: translateY(-200%);
    opacity: 1
  }

  0.05% {
    -webkit-transform: scale(1.1);
    opacity: .05
  }

  100% {
    -webkit-transform: scale(1);
    opacity: 1
  }
}

@keyframes zoomInPlace {
  0% {
    transform: translateY(-200%);
    opacity: 1
  }

  0.05% {
    transform: scale(1.1);
    opacity: .05
  }

  100% {
    transform: scale(1);
    opacity: 1
  }
}

@-webkit-keyframes buttonPulse {
  0% {
    background-color: #0B2A3B;
    color: #fff
  }

  100% {
    background-color: #66D0C6;
    color: #0B2A3B
  }
}

@keyframes buttonPulse {
  0% {
    background-color: #0B2A3B;
    color: #fff
  }

  100% {
    background-color: #66D0C6;
    color: #0B2A3B
  }
}

@font-face {
  font-family: 'heading_extra_black';
  src: url("fonts/wudu-extra-black-2026.woff2?v=290526") format("woff2"), url("fonts/wudu-extra-black-2026.woff?v=290526") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap
}

@font-face {
  font-family: 'poster_bold';
  src: url("fonts/wudu-poster-bold-2026.woff2?v=290526") format("woff2"), url("fonts/wudu-poster-bold-2026.woff?v=290526") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap
}

@font-face {
  font-family: 'condensed_bold';
  src: url("fonts/wudu-condensed-bold-2026.woff2") format("woff2"), url("fonts/wudu-condensed-bold-2026.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap
}

@font-face {
  font-family: 'body_regular';
  src: url("fonts/body-regular-2026.woff2") format("woff2"), url("fonts/body-regular-2026.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap
}

@font-face {
  font-family: 'body_italic';
  src: url("fonts/body-regular-italic-2025.woff2") format("woff2"), url("fonts/body-regular-italic-2025.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap
}

@font-face {
  font-family: 'body_bold';
  src: url("fonts/body-regular-bold-2026.woff2?v=160426") format("woff2"), url("fonts/body-regular-bold-2026.woff?v=160426") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap
}

@font-face {
  font-family: 'body_bold_italic';
  src: url("fonts/body-regular-bold-italic-2025.woff2") format("woff2"), url("fonts/body-regular-bold-italic-2025.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap
}

h1 cite,
h2 cite,
.home .vibe-scene .statement cite {
  font-family: "heading_extra_black", helvetica, sans-serif
}

html {
  font-size: 93.75%
}

body {
  -webkit-font-smoothing: antialiased;
  font-family: "body_regular", helvetica, sans-serif;
  font-size: 1.1rem;
  line-height: 1.617rem;
  color: #0B2A3B
}

h1 {
  font-family: "heading_extra_black", helvetica, sans-serif
}

h1 .subs {
  display: inline;
  font-family: "heading_extra_black", helvetica, sans-serif
}

h2,
.home .vibe-scene .statement,
h3,
h4 {
  font-family: "heading_extra_black", helvetica, sans-serif
}

h1,
h2,
.home .vibe-scene .statement,
h3,
h4 {
  box-sizing: border-box;
  margin: 0 auto 1.2rem;
  color: #ff5054;
  text-transform: uppercase;
  letter-spacing: 0.6pt
}

@supports(text-wrap: balance) {

  h1,
  h2,
  .home .vibe-scene .statement,
  h3,
  h4 {
    text-wrap: balance
  }
}

h1 span,
h2 span,
.home .vibe-scene .statement span,
h3 span,
h4 span {
  display: block
}

@media only screen and (min-width: 39em) {

  h1 span,
  h2 span,
  .home .vibe-scene .statement span,
  h3 span,
  h4 span {
    display: inline
  }
}

h1 {
  font-size: 2.8rem;
  font-size: clamp(1rem, 10vw, 2.8rem);
  line-height: 3.136rem;
  line-height: clamp(1rem, 12vw, 3.136rem);
  color: #ff5054;
  hyphens: manual
}

h2,
.home .vibe-scene .statement {
  font-size: 2rem;
  line-height: 1
}

h3 {
  font-size: 1.4rem;
  line-height: 1.4
}

main h2,
main .home .vibe-scene .statement,
.home .vibe-scene main .statement,
main h3 {
  padding-top: 1rem
}

h2+h3,
.home .vibe-scene .statement+h3 {
  padding-top: 0
}

p,
ul,
ol,
dl {
  margin: 0 auto 1.2rem
}

main p,
main ul,
main ol,
main dl {
  max-width: 56rem
}

p.info,
ul.info,
ol.info,
dl.info {
  font-family: "body_bold", helvetica, sans-serif;
  font-size: 0.9rem;
  text-transform: uppercase;
  color: inherit
}

main>p:last-child,
main>ul:last-child,
main>ol:last-child,
main>dl:last-child,
section>p:last-child,
section>ul:last-child,
section>ol:last-child,
section>dl:last-child {
  margin-bottom: 0
}

ol li::marker {
  font-family: "body_bold", helvetica, sans-serif;
  color: #ff5054
}

dt,
summary {
  margin: 0 0 .6rem;
  font-family: "body_bold", helvetica, sans-serif
}

summary {
  cursor: pointer
}

summary:focus-visible {
  outline-color: var(--focus-visible-colour, currentColor);
  outline-style: solid;
  outline-offset: .125rem;
  outline-width: .25rem;
  -webkit-border-radius: .125rem;
  border-radius: .125rem;
  z-index: 101;
  transition-duration: 0s !important
}

.statement {
  font-family: "condensed_bold", helvetica, sans-serif;
  font-weight: bold;
  font-size: 1.2rem;
  line-height: 1.9416rem
}

.statement em {
  font-family: "body_italic", helvetica, sans-serif
}

.statement span {
  white-space: pre
}

@supports(text-wrap: balance) {
  .statement {
    text-wrap: balance
  }
}

.no-touch summary {
  border-bottom: solid 2px transparent;
  -webkit-transition: border-color 800ms ease-out 0s;
  transition: border-color 800ms ease-out 0s
}

.no-touch summary:hover {
  -webkit-transition-duration: 200ms;
  transition-duration: 200ms;
  border-bottom-color: #ff5054
}

details[open] summary::marker {
  color: #ff5054
}

details[open] summary:hover {
  border-color: transparent
}

dd,
details>p {
  margin: 0 0 .6rem;
  padding: 0 0 0 1rem
}

details>p:last-child {
  padding-bottom: 2rem
}

details:last-of-type {
  margin-bottom: 1.2rem
}

dl.aligned dd {
  padding-left: 0
}

.itinerary dt {
  font-family: "heading_extra_black", helvetica, sans-serif;
  text-transform: uppercase;
  font-size: 1.5rem
}

.itinerary dd dt {
  font-family: "body_bold", helvetica, sans-serif;
  font-size: 1.2rem;
  text-transform: none
}

.itinerary dd {
  margin-bottom: 1.2rem
}

.itinerary dd p:last-child {
  margin-bottom: 1.8rem
}

.itinerary dd ul,
.itinerary dd ol {
  padding-left: .5rem
}

.itinerary li {
  margin-bottom: .3333333333rem
}

dl.hugging dd {
  margin-bottom: 0.1em
}

strong,
b {
  font-family: "body_bold", helvetica, sans-serif
}

@media (prefers-reduced-motion: no-preference) {
  details {
    interpolate-size: allow-keywords
  }
}

details::details-content {
  opacity: 0;
  block-size: 0;
  overflow-y: clip;
  transition-behavior: allow-discrete;
  transition-property: opacity, block-size, content-visibility;
  transition-duration: 200ms;
  transition-timing-function: ease-out
}

details[open]::details-content {
  opacity: 1;
  block-size: auto
}

em,
i,
cite {
  font-family: "body_italic", helvetica, sans-serif
}

strong em,
strong i,
strong cite {
  font-family: "body_bold_italic", helvetica, sans-serif
}

sup {
  font-size: 1.2rem
}

::selection {
  background-color: #A9EDDD;
  color: #242424
}

main ul,
main .fragment ul {
  display: inline-block;
  padding-left: 2rem;
  list-style: none;
  text-align: left
}

main ul li,
main .fragment ul li {
  margin: 0 0 1rem;
  padding: 0
}

main ul li p,
main .fragment ul li p {
  margin-top: 1.2rem
}

main ul.hugging,
main .fragment ul.hugging {
  max-width: 33.6rem
}

main ul.hugging li,
main .fragment ul.hugging li {
  margin-bottom: .5rem
}

main ul li::before {
  content: "•";
  display: inline-block;
  vertical-align: middle;
  margin: -.2rem 0.5rem 0 -1rem;
  font-family: sans-serif;
  color: #ff5054;
  font-size: 1.8rem;
  line-height: 1.8rem
}

main ol {
  padding-left: 2rem
}

main ol li {
  margin: 0 0 1rem;
  padding-left: .5rem
}

main ol.with-steps {
  counter-reset: steps 0;
  padding-left: 4rem
}

main ol.with-steps li {
  counter-increment: steps
}

main ol.with-steps li::marker {
  content: "Step " counter(steps) ":"
}

main ol.with-steps li:first-child::marker {
  content: "Step  " counter(steps) ":"
}

main ol.with-days {
  padding-left: 4rem
}

main ol.with-days li::marker {
  content: "Day  " counter(steps) ":"
}

main ol.with-days li:first-child::marker {
  content: "Day  " counter(steps) ":"
}

main dd ul,
main dd ol {
  padding-left: 1rem
}

main ol.with-titles {
  padding: 0;
  counter-reset: listCounter;
  list-style: none
}

main ol.with-titles li {
  margin: 0 0 1rem
}

main ol.with-titles li::before {
  content: counter(listCounter);
  counter-increment: listCounter;
  box-sizing: border-box;
  display: inline-block;
  vertical-align: top;
  margin: 0 1rem 0 0;
  padding: 1rem 0 0 0;
  font-family: "heading_extra_black", helvetica, sans-serif;
  font-size: 1.2rem;
  line-height: 0;
  width: 2rem;
  height: 2rem;
  text-align: center;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  color: #000;
  background-color: #FF757C
}

main ol.with-titles li>h2,
main ol.with-titles .home .vibe-scene li>.statement,
.home .vibe-scene main ol.with-titles li>.statement {
  display: inline-block;
  vertical-align: top;
  width: 80%
}

dl.day-list {
  display: flex;
  flex-wrap: wrap
}

dl.day-list dt {
  flex: 0 1 15%;
  min-width: 58px;
  max-width: 74px;
  color: #ff5054
}

dl.day-list dd {
  flex-basis: 74%
}

@media only screen and (min-width: 39em) {
  dl.day-list dd {
    flex-basis: 84%
  }
}

.ordered-titles {
  counter-reset: listCounter
}

.ordered-titles h2,
.ordered-titles .home .vibe-scene .statement,
.home .vibe-scene .ordered-titles .statement {
  position: relative;
  padding-top: 0;
  padding-left: 3rem;
  line-height: 1.3
}

.ordered-titles h2::before,
.ordered-titles .home .vibe-scene .statement::before,
.home .vibe-scene .ordered-titles .statement::before {
  content: counter(listCounter);
  counter-increment: listCounter;
  box-sizing: border-box;
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0.2rem 0 0;
  padding: 0;
  font-family: "heading_extra_black", helvetica, sans-serif;
  font-size: 1.1rem;
  line-height: 0;
  width: 2rem;
  height: 2rem;
  text-align: center;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  color: #000;
  background-color: #FF757C
}

.ordered-titles .button,
.ordered-titles .image-grid.image-pair a::after,
.image-grid.image-pair .ordered-titles a::after,
.ordered-titles .option-button,
.ordered-titles .filters a,
.filters .ordered-titles a,
.ordered-titles .ticket-types a,
.ticket-types .ordered-titles a,
.ordered-titles .image-buttons a span,
.image-buttons a .ordered-titles span,
.ordered-titles .instagram-media p a,
.instagram-media p .ordered-titles a,
.ordered-titles .js .js-user-buttons li a,
.js .js-user-buttons li .ordered-titles a,
.ordered-titles .news .article-collection article a::after,
.news .article-collection article .ordered-titles a::after,
.ordered-titles .home .announcing .article-collection article a::after,
.home .announcing .article-collection article .ordered-titles a::after,
.ordered-titles .embed-video .poster::after,
.embed-video .ordered-titles .poster::after,
.ordered-titles .sign-up .submit input,
.sign-up .submit .ordered-titles input {
  margin-bottom: 1rem
}

.ordered-titles .content-group ul {
  display: list-item
}

article a,
section a,
footer a,
main a {
  color: inherit;
  word-wrap: break-word;
  text-decoration: none;
  background-repeat: no-repeat;
  background-size: 100% 1px;
  background-position: left 89%;
  background-image: -webkit-linear-gradient(top, #006062, #006062);
  background-image: linear-gradient(to bottom, #006062, #006062)
}

.no-touch article a[href]:hover,
.no-touch section a[href]:hover,
.no-touch footer a[href]:hover,
.no-touch main a[href]:hover {
  background-image: -webkit-linear-gradient(top, #ff5054, #ff5054);
  background-image: linear-gradient(to bottom, #ff5054, #ff5054);
  background-size: 100% 3px
}

article a:focus-visible,
section a:focus-visible,
footer a:focus-visible,
main a:focus-visible {
  outline-color: var(--focus-visible-colour, currentColor);
  outline-style: solid;
  outline-offset: .125rem;
  outline-width: .25rem;
  -webkit-border-radius: .125rem;
  border-radius: .125rem;
  z-index: 101;
  transition-duration: 0s !important
}

article abbr,
section abbr,
footer abbr,
main abbr {
  cursor: help
}

.image a,
.image-grid .image-grid-item a,
.image a:hover,
.image-grid .image-grid-item a:hover {
  background-image: none !important
}

.no-touch .tel,
.no-touch .tel a {
  text-decoration: none;
  border: none;
  background-image: none;
  cursor: default
}

.fragment:target {
  scroll-margin-top: 4.4rem;
  position: relative;
  display: block;
  margin: 0 auto 1.2rem;
  background-image: none;
  border-left: solid 4px #ff5054;
  padding-left: 1rem
}

@media only screen and (min-width: 39em) {
  .fragment:target {
    scroll-margin-top: 6.4rem
  }
}

.links dt,
.links dd {
  display: inline-block;
  vertical-align: top
}

.links dt {
  margin: 0 .5rem 0.5rem 0;
  color: #0B2A3B;
  font-size: 1.1rem
}

.links dd {
  padding: 0
}

.links ul {
  list-style: none;
  margin: 0;
  padding: 0
}

.links li {
  margin: 0 0 0.5rem
}

@media only screen and (min-width: 39em) {
  .links li {
    display: inline-block;
    vertical-align: top
  }
}

.links li::before {
  display: none
}

.links a {
  -webkit-border-radius: .6em;
  border-radius: .6em;
  padding: 0.4rem 1rem;
  background-image: none !important;
  color: #0B2A3B;
  font-family: "body_bold", helvetica, sans-serif;
  font-size: 1.1rem;
  text-decoration: none;
  -webkit-transition: all 800ms ease-out 0s;
  transition: all 800ms ease-out 0s
}

.links a:hover {
  background-image: none;
  background-color: #0B2A3B;
  color: #fff;
  -webkit-transition-duration: 200ms;
  transition-duration: 200ms
}

q {
  quotes: "“" "”" "‘" "’"
}

q:before,
q:after {
  display: inline;
  vertical-align: middle;
  font-size: 1.1em;
  line-height: 1;
  color: #ff5054;
  font-family: "heading_extra_black", helvetica, sans-serif
}

q:before {
  content: open-quote
}

q:after {
  content: close-quote
}

blockquote {
  margin: 0 auto 1.2rem;
  padding: 0;
  text-align: left;
  line-height: 1.3;
  font-family: "body_regular", helvetica, sans-serif
}

blockquote q:before {
  margin-right: 0.2em
}

blockquote q:after {
  margin-left: 0.2em
}

.centre-all blockquote {
  text-align: center !important;
  max-width: 56rem
}

blockquote .by-line {
  margin: 0;
  display: block;
  font-size: 1.2em;
  line-height: inherit;
  font-family: "heading_extra_black", helvetica, sans-serif;
  text-transform: uppercase;
  color: #ff5054
}

blockquote.centre-all .by-line {
  margin-right: auto;
  margin-left: auto
}

.special {
  color: #ff5054
}

.special h2,
.special .home .vibe-scene .statement,
.home .vibe-scene .special .statement {
  color: #ff5054
}

.special span {
  display: block;
  font-family: "heading_extra_black", helvetica, sans-serif;
  color: #ff5054
}

.special span strong {
  color: #ff5054
}

.special .key-info {
  font-size: 1.4rem
}

.boxed {
  margin: 0 0 1.2rem;
  -webkit-border-radius: .6em;
  border-radius: .6em;
  padding: 1rem;
  background-color: #ffdc00;
  font-family: "body_bold", helvetica, sans-serif;
  color: #006062;
  text-align: inherit
}

@supports (text-wrap: balance) {
  .boxed {
    text-wrap: balance
  }
}

.centre-all .boxed,
.programme .line-up .boxed {
  margin-right: auto;
  margin-left: auto
}

.centre-all .boxed.highlight,
.programme .line-up .boxed.highlight {
  position: relative;
  margin-bottom: 4rem;
  padding-top: 2rem;
  padding-right: 2rem;
  padding-left: 2rem;
  color: #0B2A3B
}

.centre-all .boxed.highlight::before,
.programme .line-up .boxed.highlight::before {
  content: "";
  width: 48px;
  height: 48px;
  position: absolute;
  top: -15px;
  right: -15px;
  z-index: 1;
  opacity: 0;
  background-image: url("../resources/graphics/daisy.png");
  background-repeat: no-repeat;
  background-position: left top;
  background-size: contain;
  filter: drop-shadow(1px 1px 3px rgba(11, 42, 59, 0.5))
}

@media only screen and (min-width: 39em) {

  .centre-all .boxed.highlight::before,
  .programme .line-up .boxed.highlight::before {
    width: 72px;
    height: 72px;
    top: -22.5px;
    right: -22.5px
  }
}

.centre-all .boxed.in-view.highlight::before,
.programme .line-up .boxed.in-view.highlight::before {
  opacity: 1;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-duration: 400ms;
  animation-duration: 400ms;
  -webkit-animation-delay: 800ms;
  animation-delay: 800ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: animateBadgeTablet;
  animation-name: animateBadgeTablet
}

a img {
  outline: none;
  border: none
}

picture,
.image,
.image-grid .image-grid-item {
  display: block;
  margin: 0 0 1.2rem
}

picture img,
.image img,
.image-grid .image-grid-item img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  -webkit-border-radius: .6em;
  border-radius: .6em
}

picture.full-width img,
.image.full-width img,
.image-grid .full-width.image-grid-item img {
  width: 100%
}

picture figcaption,
.image figcaption,
.image-grid .image-grid-item figcaption {
  margin: 0.4em 0 0;
  font-size: 0.9rem;
  text-align: center
}

@media only screen and (min-width: 39em) {

  picture figcaption,
  .image figcaption,
  .image-grid .image-grid-item figcaption {
    margin-left: 0.4em;
    text-align: left
  }
}

.image,
.image-grid .image-grid-item {
  text-align: left
}

.image.right,
.image-grid .right.image-grid-item {
  text-align: right
}

.image.centre,
.image-grid .centre.image-grid-item {
  text-align: center
}

.image.right img,
.image-grid .right.image-grid-item img,
.image.left img,
.image-grid .left.image-grid-item img,
.image.centre img,
.image-grid .centre.image-grid-item img {
  display: inline;
  width: auto;
  max-width: 100%
}

.image.inline,
.image-grid .inline.image-grid-item {
  max-width: 46%
}

.image.inline img,
.image-grid .inline.image-grid-item img {
  display: block
}

.image.right.inline,
.image-grid .right.inline.image-grid-item {
  float: right;
  margin-bottom: 4rem;
  margin-left: 2rem;
  clear: right
}

@media only screen and (min-width: 39em) {

  .image.right.inline figcaption,
  .image-grid .right.inline.image-grid-item figcaption {
    margin-right: 0.2em;
    text-align: right
  }
}

.image.left.inline,
.image-grid .left.inline.image-grid-item {
  float: left;
  margin-bottom: 4rem;
  margin-right: 2rem;
  clear: left
}

.image.centre figcaption,
.image-grid .centre.image-grid-item figcaption {
  text-align: center
}

@media only screen and (min-width: 39em) {

  .image.centre.mobile-wide img,
  .image-grid .centre.mobile-wide.image-grid-item img {
    max-width: 320px
  }
}

@media only screen and (max-width: 39em) {

  .image.inline.mobile-wide,
  .image-grid .inline.mobile-wide.image-grid-item {
    width: 100%;
    max-width: none;
    margin-right: 0;
    margin-bottom: 1.2rem;
    margin-left: 0;
    text-align: center
  }
}

.image.hero-image,
.image-grid .hero-image.image-grid-item {
  width: 100%;
  aspect-ratio: 640/420
}

@media only screen and (min-width: 39em) {

  .image.hero-image,
  .image-grid .hero-image.image-grid-item {
    aspect-ratio: 995/508
  }
}

@media only screen and (min-width: 66em) {

  .image.hero-image,
  .image-grid .hero-image.image-grid-item {
    aspect-ratio: 1305/572
  }
}

.image.hero-image img,
.image-grid .hero-image.image-grid-item img {
  -webkit-border-radius: .6em;
  border-radius: .6em;
  width: 100%;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 0s;
  animation-delay: 0s
}

.image.inline-copy,
.image-grid .inline-copy.image-grid-item {
  display: inline;
  vertical-align: top;
  margin: -.4rem 0 0 0;
  width: 2rem;
  line-height: 1.1
}

.image .credit,
.image-grid .image-grid-item .credit {
  margin-top: 0.4rem;
  font-size: smaller;
  line-height: 1.1
}

img.in-text {
  max-width: 3rem;
  vertical-align: middle;
  filter: grayscale(1)
}

.image-grid {
  clear: both;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-around;
  justify-content: space-around;
  -webkit-align-items: center;
  align-items: center;
  margin: 0 auto;
  max-width: 91rem
}

.image-grid .image-grid-item {
  margin: 1rem auto;
  width: 40%
}

.image-grid .image-grid-item img {
  margin: 0 auto;
  max-height: 120px
}

@media only screen and (max-width: 20em) {
  .image-grid .image-grid-item {
    width: 60%
  }
}

@media only screen and (min-width: 39em) {
  .image-grid .image-grid-item {
    width: 30%
  }
}

@media only screen and (min-width: 66em) {
  .image-grid .image-grid-item {
    width: 20%
  }
}

.image-grid.image-pair {
  -webkit-justify-content: space-between;
  justify-content: space-between
}

.image-grid.image-pair .image,
.image-grid.image-pair .image-grid-item {
  flex: 0 1 48%
}

.image-grid.image-pair a {
  display: block;
  position: relative;
  top: 0;
  right: 0
}

.image-grid.image-pair a::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1
}

.image-grid.image-pair a::after {
  content: "enlarge";
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  z-index: 2;
  box-shadow: inset -1px -2px 6px 0px #05141c;
  -webkit-transform-origin: center center;
  transform-origin: center center;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  font-size: 0.8rem !important
}

@media only screen and (min-width: 39em) {
  .image-grid.image-pair a::after {
    font-size: 1rem !important
  }
}

@media only screen and (min-width: 66em) {
  .image-grid.image-pair a::after {
    font-size: 1.4rem !important
  }
}

.image-grid.image-pair a::before,
.image-grid.image-pair a::after {
  -webkit-transition: all 800ms ease-out 0s;
  transition: all 800ms ease-out 0s
}

.image-grid.image-pair a:hover::before,
.image-grid.image-pair a:hover::after {
  -webkit-transition-duration: 100ms;
  transition-duration: 100ms
}

.image-grid.image-pair a:hover::before {
  background-color: rgba(208, 252, 118, 0.4)
}

img[data-lazlo] {
  display: none !important
}

.js img[data-lazlo] {
  display: block !important
}

.js *[data-lazlo],
.js .lazlo {
  opacity: 0.05
}

.js .lazlo-loaded {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 0s;
  animation-delay: 0s;
  opacity: 1
}

fieldset {
  position: relative;
  top: 0;
  left: 0;
  border: none;
  padding: 0
}

input,
textarea,
select {
  font-family: "body_regular", helvetica, sans-serif;
  font-size: 16px;
  color: currentColor;
  background-color: #fff;
  box-sizing: border-box;
  -webkit-appearance: none
}

@media only screen and (min-width: 66em) {

  input,
  textarea,
  select {
    font-size: 1rem
  }
}

label,
legend {
  display: block;
  margin: 0;
  padding: 0.1em 0.4em 0 0;
  vertical-align: top;
  text-align: left;
  line-height: 1.2em
}

form .text,
form .textarea,
form select {
  margin: 0 0 1rem
}

form .button,
form .image-grid.image-pair a::after,
.image-grid.image-pair form a::after,
form .option-button,
form .filters a,
.filters form a,
form .ticket-types a,
.ticket-types form a,
form .image-buttons a span,
.image-buttons a form span,
form .instagram-media p a,
.instagram-media p form a,
form .js .js-user-buttons li a,
.js .js-user-buttons li form a,
form .news .article-collection article a::after,
.news .article-collection article form a::after,
form .home .announcing .article-collection article a::after,
.home .announcing .article-collection article form a::after,
form .embed-video .poster::after,
.embed-video form .poster::after,
form .sign-up .submit input,
.sign-up .submit form input {
  margin: 1rem 0;
  padding: 0
}

form .button:hover input,
form .image-grid.image-pair a:hover::after input,
.image-grid.image-pair form a:hover::after input,
form .option-button:hover input,
form .filters a:hover input,
.filters form a:hover input,
form .ticket-types a:hover input,
.ticket-types form a:hover input,
form .image-buttons a span:hover input,
.image-buttons a form span:hover input,
form .instagram-media p a:hover input,
.instagram-media p form a:hover input,
form .js .js-user-buttons li a:hover input,
.js .js-user-buttons li form a:hover input,
form .news .article-collection article a:hover::after input,
.news .article-collection article form a:hover::after input,
form .home .announcing .article-collection article a:hover::after input,
.home .announcing .article-collection article form a:hover::after input,
form .embed-video .poster:hover::after input,
.embed-video form .poster:hover::after input,
form .sign-up .submit input:hover input,
.sign-up .submit form input:hover input {
  -webkit-transition-duration: 200ms;
  transition-duration: 200ms
}

form .button+*,
form .image-grid.image-pair a::after+*,
.image-grid.image-pair form a::after+*,
form .option-button+*,
form .filters a+*,
.filters form a+*,
form .ticket-types a+*,
.ticket-types form a+*,
form .image-buttons a span+*,
.image-buttons a form span+*,
form .instagram-media p a+*,
.instagram-media p form a+*,
form .js .js-user-buttons li a+*,
.js .js-user-buttons li form a+*,
form .news .article-collection article a::after+*,
.news .article-collection article form a::after+*,
form .home .announcing .article-collection article a::after+*,
.home .announcing .article-collection article form a::after+*,
form .embed-video .poster::after+*,
.embed-video form .poster::after+*,
form .sign-up .submit input+*,
.sign-up .submit form input+* {
  margin-top: 1rem
}

input[type="submit"] {
  margin: 0;
  border: none;
  padding: 0.6rem 1.2em;
  width: 100%;
  background-color: transparent;
  font-family: "heading_extra_black", helvetica, sans-serif;
  line-height: 1.3;
  font-size: 6.5vw;
  text-transform: uppercase;
  color: inherit;
  cursor: pointer
}

@media only screen and (min-width: 20em) {
  input[type="submit"] {
    font-size: 1.2rem
  }
}

.user-prompt,
#userPrompt {
  margin: 0.4rem 0 1rem;
  padding: 1rem;
  -webkit-border-radius: .6em;
  border-radius: .6em;
  background-color: #D0FC76;
  color: #0B2A3B;
  font-size: 0.9rem;
  font-family: "body_bold", helvetica, sans-serif;
  font-weight: bold;
  line-height: 1.4;
  text-align: inherit
}

.text input {
  margin: 0;
  padding: 0 0.3rem 0 0.5em;
  width: 100%;
  height: 41px;
  border: none
}

.text.postcode input {
  text-transform: uppercase
}

@media only screen and (min-width: 39em) {
  .text.postcode input {
    width: 50%
  }
}

.required {
  position: relative;
  top: 0;
  left: 0
}

.required::after {
  position: absolute;
  top: 0.39em;
  right: -0.9em;
  content: "";
  width: 32px;
  height: 32px;
  background-image: url("../resources/graphics/flower-yellow.png");
  background-position: 0 top;
  background-repeat: no-repeat;
  background-size: cover
}

.required.prompt {
  padding-right: 2.2em;
  text-align: right
}

.required.prompt::after {
  top: -0.4em;
  right: 0
}

@media only screen and (min-width: 39em) {
  .required.prompt {
    padding-right: 2em
  }
}

.required.prompt span {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px)
}

@media only screen and (min-width: 39em) {
  .select label {
    display: inline-block;
    vertical-align: middle
  }
}

.icon {
  display: inline-block;
  border: none;
  background-color: transparent;
  background-image: url("../resources/image/wudu-icons-2025.svg"), linear-gradient(transparent, transparent);
  background-repeat: no-repeat;
  background-position: left top;
  background-size: auto 100%;
  width: 48px;
  height: 0;
  padding-top: 48px;
  overflow: hidden
}

.icon.email {
  background-position: 0px top
}

.icon.twitter {
  background-position: -48px top
}

.icon.facebook {
  background-position: -96px top
}

.icon.close {
  background-position: -144px top
}

.icon.instagram {
  background-position: -192px top
}

.icon.tiktok {
  background-position: -240px top
}

.icon a {
  display: block;
  position: relative;
  top: -48px;
  left: 0;
  padding-top: 48px
}

.no-touch .icon:not(.home) {
  opacity: 0.9;
  -webkit-transition: opacity 1s ease-out 0s;
  transition: opacity 1s ease-out 0s
}

.no-touch .icon:not(.home):hover {
  opacity: 1
}

li.icon::before {
  display: none
}

.icon.mask {
  background-image: none;
  -webkit-mask: url("../resources/image/wudu-icons-2025.svg");
  -webkit-mask-size: cover
}

.icon.mask.email {
  -webkit-mask-position: 0px top
}

.icon.mask.twitter {
  -webkit-mask-position: -48px top
}

.icon.mask.facebook {
  -webkit-mask-position: -96px top
}

.icon.mask.close {
  -webkit-mask-position: -144px top
}

.icon.mask.instagram {
  -webkit-mask-position: -192px top
}

.icon.mask.tiktok {
  -webkit-mask-position: -240px top
}

.watch-view .icon {
  background-image: none
}

.watch-view .icon.mask {
  -webkit-mask: none
}

.watch-view.in-view .icon:not(.mask) {
  background-image: url("../resources/image/wudu-icons-2025.svg")
}

.watch-view.in-view .icon.mask {
  -webkit-mask: url("../resources/image/wudu-icons-2025.svg")
}

.watch-view.in-view .icon.mask.email {
  -webkit-mask-position: 0px top
}

.watch-view.in-view .icon.mask.twitter {
  -webkit-mask-position: -48px top
}

.watch-view.in-view .icon.mask.facebook {
  -webkit-mask-position: -96px top
}

.watch-view.in-view .icon.mask.close {
  -webkit-mask-position: -144px top
}

.watch-view.in-view .icon.mask.instagram {
  -webkit-mask-position: -192px top
}

.watch-view.in-view .icon.mask.tiktok {
  -webkit-mask-position: -240px top
}

.button,
.image-grid.image-pair a::after,
.option-button,
.filters a,
.ticket-types a,
.image-buttons a span,
.instagram-media p a,
.js .js-user-buttons li a,
.news .article-collection article a::after,
.home .announcing .article-collection article a::after,
.embed-video .poster::after,
.sign-up .submit input {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  top: 0;
  left: 0;
  box-sizing: border-box;
  border: none;
  -webkit-border-radius: .3em;
  border-radius: .3em;
  padding: 0.27em 0.7em 0.2em;
  min-width: 132px;
  max-width: 340px;
  background-color: #0B2A3B;
  background-image: none !important;
  box-shadow: inset -1px -2px 6px 0px #05141c;
  text-decoration: none;
  text-align: center;
  font-family: "heading_extra_black", helvetica, sans-serif;
  line-height: 1;
  font-size: 6.5vw;
  letter-spacing: 0.7pt;
  color: #fff;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer
}

@supports (text-wrap: balance) {

  .button,
  .image-grid.image-pair a::after,
  .option-button,
  .filters a,
  .ticket-types a,
  .image-buttons a span,
  .instagram-media p a,
  .js .js-user-buttons li a,
  .news .article-collection article a::after,
  .home .announcing .article-collection article a::after,
  .embed-video .poster::after,
  .sign-up .submit input {
    text-wrap: balance
  }
}

.button.proud,
.image-grid.image-pair a.proud::after,
.proud.option-button,
.filters a.proud,
.ticket-types a.proud,
.image-buttons a span.proud,
.instagram-media p a.proud,
.js .js-user-buttons li a.proud,
.news .article-collection article a.proud::after,
.home .announcing .article-collection article a.proud::after,
.embed-video .proud.poster::after,
.sign-up .submit input.proud {
  display: block;
  width: 40%;
  min-width: 200px;
  max-width: 320px
}

@media only screen and (min-width: 20em) {

  .button,
  .image-grid.image-pair a::after,
  .option-button,
  .filters a,
  .ticket-types a,
  .image-buttons a span,
  .instagram-media p a,
  .js .js-user-buttons li a,
  .news .article-collection article a::after,
  .home .announcing .article-collection article a::after,
  .embed-video .poster::after,
  .sign-up .submit input {
    font-size: 1.9rem
  }
}

.button:hover,
.image-grid.image-pair a:hover::after,
.option-button:hover,
.filters a:hover,
.ticket-types a:hover,
.image-buttons a span:hover,
.instagram-media p a:hover,
.js .js-user-buttons li a:hover,
.news .article-collection article a:hover::after,
.home .announcing .article-collection article a:hover::after,
.embed-video .poster:hover::after,
.sign-up .submit input:hover,
.button:active,
.image-grid.image-pair a:active::after,
.option-button:active,
.filters a:active,
.ticket-types a:active,
.image-buttons a span:active,
.instagram-media p a:active,
.js .js-user-buttons li a:active,
.news .article-collection article a:active::after,
.home .announcing .article-collection article a:active::after,
.embed-video .poster:active::after,
.sign-up .submit input:active {
  color: #0B2A3B;
  background-image: none;
  background-color: #66D0C6
}

.medium-button,
.home .announcing .article-collection article a::after {
  min-width: 56px;
  font-size: 1.4rem;
  line-height: 1
}

.small-button,
.tickets-grid tbody td .button,
.tickets-grid tbody td .image-grid.image-pair a::after,
.image-grid.image-pair .tickets-grid tbody td a::after,
.tickets-grid tbody td .option-button,
.tickets-grid tbody td .filters a,
.filters .tickets-grid tbody td a,
.tickets-grid tbody td .ticket-types a,
.ticket-types .tickets-grid tbody td a,
.tickets-grid tbody td .image-buttons a span,
.image-buttons a .tickets-grid tbody td span,
.tickets-grid tbody td .instagram-media p a,
.instagram-media p .tickets-grid tbody td a,
.tickets-grid tbody td .js .js-user-buttons li a,
.js .js-user-buttons li .tickets-grid tbody td a,
.tickets-grid tbody td .home .announcing .article-collection article a::after,
.home .announcing .article-collection article .tickets-grid tbody td a::after,
.tickets-grid tbody td .embed-video .poster::after,
.embed-video .tickets-grid tbody td .poster::after,
.tickets-grid tbody td .sign-up .submit input,
.sign-up .submit .tickets-grid tbody td input,
.news .article-collection article a::after {
  padding: 0.4em 1.2em 0.26em;
  min-width: 56px;
  font-size: 0.9rem;
  line-height: 1
}

.button a,
.image-grid.image-pair a::after a,
.option-button a,
.filters a a,
.ticket-types a a,
.image-buttons a span a,
.instagram-media p a a,
.js .js-user-buttons li a a,
.news .article-collection article a::after a,
.home .announcing .article-collection article a::after a,
.embed-video .poster::after a,
.sign-up .submit input a {
  text-decoration: none;
  background-image: none
}

.no-touch .button,
.no-touch .image-grid.image-pair a::after,
.image-grid.image-pair .no-touch a::after,
.no-touch .option-button,
.no-touch .filters a,
.filters .no-touch a,
.no-touch .ticket-types a,
.ticket-types .no-touch a,
.no-touch .image-buttons a span,
.image-buttons a .no-touch span,
.no-touch .instagram-media p a,
.instagram-media p .no-touch a,
.no-touch .js .js-user-buttons li a,
.js .js-user-buttons li .no-touch a,
.no-touch .news .article-collection article a::after,
.news .article-collection article .no-touch a::after,
.no-touch .home .announcing .article-collection article a::after,
.home .announcing .article-collection article .no-touch a::after,
.no-touch .embed-video .poster::after,
.embed-video .no-touch .poster::after,
.no-touch .sign-up .submit input,
.sign-up .submit .no-touch input {
  -webkit-transition: all 800ms ease-out 0s;
  transition: all 800ms ease-out 0s
}

.no-touch .button:hover,
.no-touch .image-grid.image-pair a:hover::after,
.image-grid.image-pair .no-touch a:hover::after,
.no-touch .option-button:hover,
.no-touch .filters a:hover,
.filters .no-touch a:hover,
.no-touch .ticket-types a:hover,
.ticket-types .no-touch a:hover,
.no-touch .image-buttons a span:hover,
.image-buttons a .no-touch span:hover,
.no-touch .instagram-media p a:hover,
.instagram-media p .no-touch a:hover,
.no-touch .js .js-user-buttons li a:hover,
.js .js-user-buttons li .no-touch a:hover,
.no-touch .news .article-collection article a:hover::after,
.news .article-collection article .no-touch a:hover::after,
.no-touch .home .announcing .article-collection article a:hover::after,
.home .announcing .article-collection article .no-touch a:hover::after,
.no-touch .embed-video .poster:hover::after,
.embed-video .no-touch .poster:hover::after,
.no-touch .sign-up .submit input:hover,
.sign-up .submit .no-touch input:hover {
  -webkit-transition-duration: 200ms;
  transition-duration: 200ms
}

section>p:last-child>.button,
.image-grid.image-pair section>p:last-child>a::after,
section>p:last-child>.option-button,
.filters section>p:last-child>a,
.ticket-types section>p:last-child>a,
.image-buttons a section>p:last-child>span,
.instagram-media section>p:last-child>a,
.js .js-user-buttons li section>p:last-child>a,
.news .article-collection article section>p:last-child>a::after,
.home .announcing .article-collection article section>p:last-child>a::after,
.embed-video section>p:last-child>.poster::after,
.sign-up .submit section>p:last-child>input {
  margin-bottom: 2.4rem
}

.option-button,
.filters a,
.ticket-types a {
  padding: 0 1rem;
  background-color: #fff;
  color: #006062;
  border: solid 2px #0B2A3B;
  min-height: 37px;
  line-height: 0.9
}

@media only screen and (max-width: 39em) {

  .option-button,
  .filters a,
  .ticket-types a {
    min-width: 56px;
    font-size: 0.8rem;
    line-height: 1
  }
}

@media only screen and (min-width: 39em) {

  .option-button,
  .filters a,
  .ticket-types a {
    padding: 0.8rem 1.2em;
    min-width: 140px;
    font-size: 0.9rem
  }
}

@media only screen and (min-width: 66em) {

  .option-button,
  .filters a,
  .ticket-types a {
    min-width: 178px;
    font-size: 1.2rem
  }
}

.option-button:hover,
.filters a:hover,
.ticket-types a:hover {
  border-color: #66D0C6
}

.button-group,
.ticket-types ul {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  margin: 0 auto 1.2rem;
  padding: 0;
  max-width: 60rem;
  text-align: center;
  list-style: none
}

.button-group>*,
.ticket-types ul>* {
  margin: 1%;
  flex: 1
}

.button-group.image-buttons>*,
.ticket-types ul.image-buttons>* {
  flex: 1 0 42%
}

.button-group li,
.ticket-types ul li {
  text-align: center
}

.button-group li .button,
.ticket-types ul li .button,
.button-group li .image-grid.image-pair a::after,
.image-grid.image-pair .button-group li a::after,
.ticket-types ul li .image-grid.image-pair a::after,
.image-grid.image-pair .ticket-types ul li a::after,
.button-group li .option-button,
.ticket-types ul li .option-button,
.button-group li .filters a,
.filters .button-group li a,
.ticket-types ul li .filters a,
.filters .ticket-types ul li a,
.button-group li .ticket-types a,
.ticket-types .button-group li a,
.ticket-types ul li a,
.button-group li .image-buttons a span,
.image-buttons a .button-group li span,
.ticket-types ul li .image-buttons a span,
.image-buttons a .ticket-types ul li span,
.button-group li .instagram-media p a,
.instagram-media p .button-group li a,
.ticket-types ul li .instagram-media p a,
.instagram-media p .ticket-types ul li a,
.button-group .js .js-user-buttons li a,
.js .js-user-buttons .button-group li a,
.ticket-types ul .js .js-user-buttons li a,
.js .js-user-buttons .ticket-types ul li a,
.button-group li .news .article-collection article a::after,
.news .article-collection article .button-group li a::after,
.ticket-types ul li .news .article-collection article a::after,
.news .article-collection article .ticket-types ul li a::after,
.button-group li .home .announcing .article-collection article a::after,
.home .announcing .article-collection article .button-group li a::after,
.ticket-types ul li .home .announcing .article-collection article a::after,
.home .announcing .article-collection article .ticket-types ul li a::after,
.button-group li .embed-video .poster::after,
.embed-video .button-group li .poster::after,
.ticket-types ul li .embed-video .poster::after,
.embed-video .ticket-types ul li .poster::after,
.button-group li .sign-up .submit input,
.sign-up .submit .button-group li input,
.ticket-types ul li .sign-up .submit input,
.sign-up .submit .ticket-types ul li input {
  display: flex;
  height: 100%;
  margin: 0 auto;
  padding: 0.4em 0.6em 0.3em;
  min-width: 56px;
  max-width: 240px;
  font-size: 1.1rem;
  line-height: 1.1
}

footer .button-group li,
footer .ticket-types ul li,
.ticket-types footer ul li {
  flex: 1 0 33%
}

@media only screen and (min-width: 39em) {

  footer .button-group li,
  footer .ticket-types ul li,
  .ticket-types footer ul li {
    flex: 0 1 33%
  }
}

.button-group li a,
.ticket-types ul li a {
  width: 100%;
  max-width: 320px
}

.button-group:is(ul),
.ticket-types ul:is(ul) {
  list-style: none
}

.button-group:is(ul) li::before,
.ticket-types ul:is(ul) li::before {
  display: none
}

.image-buttons {
  max-width: none
}

.image-buttons a {
  text-decoration: none;
  color: inherit;
  display: flex;
  justify-content: center;
  align-items: center;
  background-image: none
}

.image-buttons a span {
  -webkit-transition: all 800ms ease-out 0s;
  transition: all 800ms ease-out 0s
}

.image-buttons a:hover span {
  -webkit-transition-duration: 200ms;
  transition-duration: 200ms;
  color: #0B2A3B;
  background-color: #66D0C6
}

.image-buttons .image,
.image-buttons .image-grid .image-grid-item,
.image-grid .image-buttons .image-grid-item {
  background-repeat: no-repeat;
  background-position: left center;
  background-size: cover !important;
  min-width: 290px;
  max-width: 640px;
  height: calc(70vw / 1.5238)
}

@media only screen and (min-width: 39em) {

  .image-buttons .image,
  .image-buttons .image-grid .image-grid-item,
  .image-grid .image-buttons .image-grid-item {
    height: calc(37vw / 1.5238)
  }
}

@supports(aspect-ratio: 2/1) {

  .image-buttons .image,
  .image-buttons .image-grid .image-grid-item,
  .image-grid .image-buttons .image-grid-item {
    width: auto;
    height: auto;
    aspect-ratio: 2/1
  }

  @media only screen and (min-width: 39em) {

    .image-buttons .image,
    .image-buttons .image-grid .image-grid-item,
    .image-grid .image-buttons .image-grid-item {
      aspect-ratio: 640/420
    }
  }
}

.v-card,
.vcard {
  font-style: normal
}

.v-card span,
.vcard span {
  display: block;
  margin: 0
}

.v-card span a span,
.vcard span a span {
  display: inline
}

.v-card span.tel,
.vcard span.tel {
  margin-bottom: 1em
}

@media only screen and (min-width: 39em) {

  footer .v-card span,
  footer .vcard span {
    display: inline-block;
    margin-right: 0.28rem
  }

  footer .v-card [itemprop=address] span::after,
  footer .v-card [itemprop=name]::after,
  footer .vcard [itemprop=address] span::after,
  footer .vcard [itemprop=name]::after {
    content: "•";
    display: inline-block;
    margin: 0 0 0 0.5rem;
    color: inherit
  }

  footer .v-card [itemprop=address] span:last-child::after,
  footer .v-card [itemprop=name]:last-child::after,
  footer .vcard [itemprop=address] span:last-child::after,
  footer .vcard [itemprop=name]:last-child::after {
    display: none
  }
}

table {
  margin: 1em 0 1.8rem;
  border-collapse: collapse;
  width: 100%;
  max-width: 56rem;
  text-align: left
}

@media only screen and (min-width: 39em) {
  table {
    width: 90%
  }
}

table caption {
  padding: 0 0 0.4rem 0.4rem;
  font-family: "body_bold", helvetica, sans-serif;
  font-weight: bold;
  text-align: left
}

table th {
  font-family: "body_bold", helvetica, sans-serif;
  font-weight: bold;
  background-color: #D0FC76;
  vertical-align: top
}

table th,
table td {
  border: solid 1px #0B2A3B;
  padding: 0.4em;
  font-size: 1rem
}

@media only screen and (max-width: 20em) {

  table th,
  table td {
    font-size: 4vw
  }
}

table td[colspan] {
  background-color: #fff
}

table.access-keys th:first-child,
table.access-keys td:first-child {
  text-align: center
}

table.info th,
table.info td {
  vertical-align: top;
  font-size: 0.9rem;
  min-width: 82px
}

@media only screen and (max-width: 39em) {

  table.info th,
  table.info td {
    word-break: break-word
  }
}

@media only screen and (min-width: 66em) {
  table.info th {
    white-space: nowrap
  }
}

table p {
  margin-bottom: 1rem
}

table p:last-child {
  margin-bottom: 0.4rem
}

table.check th,
table.check td {
  min-width: 48px;
  line-height: 1.4;
  vertical-align: middle
}

table.check th:nth-child(1) {
  max-width: 58px
}

table.check td:nth-child(1) {
  font-weight: bold
}

table.check th:nth-child(n+2),
table.check td:nth-child(n+2) {
  text-align: center
}

table.check td:nth-child(n+2) {
  font-family: system-ui;
  font-weight: 700;
  font-size: 1.4rem;
  color: #ff5054
}

body>header {
  box-sizing: border-box;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 105;
  margin: 0 auto;
  padding: 0 2.74vw;
  width: 100%;
  max-width: 2560px;
  background-color: #006062;
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  height: 57px
}

@media only screen and (min-width: 39em) {
  body>header {
    padding: 1rem 1.4rem
  }
}

body>header::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -9px;
  left: 0;
  width: 100%;
  height: 9px;
  background-image: -webkit-linear-gradient(top, rgba(11, 42, 59, 0.7), rgba(11, 42, 59, 0));
  background-image: linear-gradient(to bottom, rgba(11, 42, 59, 0.7), rgba(11, 42, 59, 0));
  z-index: 2;
  opacity: 0.8;
  pointer-events: none
}

@media only screen and (min-width: 39em) {
  body>header {
    height: 68px
  }
}

@media only screen and (min-width: 66em) {
  body>header {
    height: 74px
  }
}

body>header h1 {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px)
}

body>header .wf-logo {
  flex: 0 1 38%;
  margin: 0 4% 0 0;
  overflow: hidden
}

body>header .wf-logo:focus-visible {
  outline-color: var(--focus-visible-colour, currentColor);
  outline-style: solid;
  outline-offset: .125rem;
  outline-width: .25rem;
  -webkit-border-radius: .125rem;
  border-radius: .125rem;
  z-index: 101;
  transition-duration: 0s !important
}

@media only screen and (min-width: 39em) {
  body>header .wf-logo {
    flex-basis: 30%;
    max-width: 236px;
    margin-right: 2%
  }
}

@media only screen and (min-width: 66em) {
  body>header .wf-logo {
    flex: 0 1 22%;
    flex: 0 1 clamp(21%, 6vw, 30%);
    margin-right: 1.2rem;
    max-width: 248px
  }
}

body>header .wf-logo img {
  display: block;
  width: 100%
}

body>header .when-and-where {
  flex: 0 1 43%;
  max-width: 320px;
  text-align: left
}

@media only screen and (min-width: 39em) {
  body>header .when-and-where {
    flex: 0 auto;
    margin-right: 2%
  }
}

@media only screen and (min-width: 66em) {
  body>header .when-and-where {
    margin-right: 1.2rem;
    text-align: left
  }
}

body>header .when-and-where h2,
body>header .when-and-where .home .vibe-scene .statement,
.home .vibe-scene body>header .when-and-where .statement {
  margin: 0;
  font-size: .8em;
  font-size: clamp(.7rem, 2.69vw, 1.3rem);
  line-height: 1;
  letter-spacing: 1pt;
  color: #A9EDDD
}

@media only screen and (min-width: 66em) {

  body>header .when-and-where h2,
  body>header .when-and-where .home .vibe-scene .statement,
  .home .vibe-scene body>header .when-and-where .statement {
    font-size: clamp(.8rem, 1.39vw, 1.36rem)
  }
}

body>header .when-and-where span {
  display: block
}

body>header .banner20th {
  position: fixed;
  top: -100%;
  right: 0;
  margin: 0
}

@media only screen and (min-width: 39em) {
  body>header .banner20th {
    position: relative;
    top: 0;
    left: 0;
    margin-right: 2%;
    padding-top: calc(38px + 0.3vw);
    height: 0;
    overflow: hidden;
    flex: 0 24%;
    background-image: url("../resources/graphics/20th-edition-banner.svg");
    background-position: left center;
    background-repeat: no-repeat;
    background-size: contain
  }
}

@media only screen and (min-width: 66em) {
  body>header .banner20th {
    margin-right: 1.2rem;
    padding-top: 42px
  }
}

body>header #navBTN {
  flex: 0 1 8.08%;
  margin-left: auto;
  max-width: 32px;
  display: flex;
  flex-direction: column
}

body>header #navBTN:focus-visible {
  outline-color: var(--focus-visible-colour, currentColor);
  outline-style: solid;
  outline-offset: .125rem;
  outline-width: .25rem;
  -webkit-border-radius: .125rem;
  border-radius: .125rem;
  z-index: 101;
  transition-duration: 0s !important
}

@media only screen and (min-width: 66em) {
  body>header #navBTN {
    display: none
  }
}

body>header #navBTN svg {
  fill: #fff
}

html,
body {
  margin: 0;
  padding: 0;
  background-color: #0B2A3B
}

html {
  scroll-behavior: smooth
}

.boundary {
  margin: 0 auto;
  padding: 0;
  max-width: 2560px
}

.boundary,
main,
header {
  position: relative;
  top: 0;
  left: 0
}

main {
  display: block;
  background-color: #fff;
  margin-top: 57px;
  padding: 0 1rem 2rem
}

@media only screen and (min-width: 39em) {
  main {
    margin-top: 68px;
    padding-right: 2rem;
    padding-left: 2rem
  }
}

.home main {
  padding: 0
}

.home.with-ticker main {
  margin-top: 89px
}

@media only screen and (min-width: 39em) {
  .home.with-ticker main {
    margin-top: 100px
  }
}

@media only screen and (min-width: 66em) {
  .home.with-ticker main {
    margin-top: 106px
  }
}

main>h1,
.columns>h1 {
  text-align: center
}

@media only screen and (min-width: 66em) {

  main>h1,
  .columns>h1 {
    margin-bottom: 2.4rem
  }
}

.centre-all {
  text-align: center
}

@supports (text-wrap: balance) {
  .centre-all {
    text-wrap: balance
  }
}

main>div:first-child,
main>h1:first-child,
main>section:first-child,
main>article:first-child {
  padding-top: 2rem
}

@media only screen and (min-width: 66em) {

  main>div:first-child,
  main>h1:first-child,
  main>section:first-child,
  main>article:first-child {
    padding-top: 3rem
  }
}

article {
  margin: 0 auto;
  max-width: 56rem
}

.content-group:after {
  content: " ";
  display: table;
  clear: both
}

.scroll-box {
  box-sizing: border-box;
  padding: 0 0 8rem;
  width: 100%;
  height: 100%;
  overflow: auto
}

hr {
  box-sizing: border-box;
  position: relative;
  margin: 2.4rem auto 3.6rem;
  padding: 1.2rem 0 0;
  border: none;
  clear: both;
  overflow: visible;
  width: 98%
}

hr::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 4rem;
  height: 4rem;
  background-image: url("../resources/graphics/flower-yellow.png");
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-size: contain
}

.column {
  margin: 0 auto;
  max-width: 56rem
}

.columns {
  position: relative;
  top: 0;
  left: 0;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  clear: both
}

@supports (gap: 0%) {
  .columns {
    gap: 6%
  }
}

.columns>h1 {
  width: 100%
}

@media only screen and (min-width: 66em) {
  .columns {
    margin-right: auto;
    margin-left: auto;
    width: 80vw;
    max-width: 91rem
  }
}

.columns .column {
  margin: 0;
  width: 100%
}

@media only screen and (min-width: 39em) {
  .columns .column {
    padding-right: 4%;
    width: 46%;
    flex: 0 1 46%
  }

  @supports (gap: 0%) {
    .columns .column {
      padding-right: 0
    }
  }

  .columns .column:only-of-type {
    margin-right: auto;
    margin-left: auto;
    width: 100%;
    flex: auto
  }

  .no-flex .columns .column {
    display: inline-block;
    vertical-align: top
  }

  .no-flex .columns .column:first-of-type {
    margin-right: 5%
  }

  .no-flex .columns .column:only-of-type {
    margin: 0 auto 1.2rem
  }
}

@media only screen and (min-width: 39em) and (min-width: 39em) {
  .columns .column.column-span12 {
    width: 100%;
    max-width: none;
    flex: auto
  }
}

@media only screen and (min-width: 39em) and (min-width: 66em) {
  .columns .column.column-span4 {
    width: 28%;
    flex: 1 1 28%
  }
}

.columns+article {
  padding-top: 1rem;
  position: relative;
  margin: 2.4rem auto 3.6rem;
  padding: 1.2rem 0 0;
  border: none;
  clear: both;
  overflow: visible
}

.columns+article::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 4rem;
  height: 4rem;
  background-image: url("../resources/graphics/flower-yellow.png");
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-size: contain
}

.full-width {
  flex-basis: 100%;
  width: 100%
}

.columns .column-reverse {
  width: 100%;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-flex-direction: row-reverse;
  flex-direction: row-reverse;
  -webkit-justify-content: space-between;
  justify-content: space-between
}

.columns .column-reverse .column:nth-of-type(odd) {
  margin-right: 0%
}

.column p:first-child .button,
.column p:first-child .image-grid.image-pair a::after,
.image-grid.image-pair .column p:first-child a::after,
.column p:first-child .option-button,
.column p:first-child .filters a,
.filters .column p:first-child a,
.column p:first-child .ticket-types a,
.ticket-types .column p:first-child a,
.column p:first-child .image-buttons a span,
.image-buttons a .column p:first-child span,
.column .instagram-media p:first-child a,
.instagram-media .column p:first-child a,
.column p:first-child .js .js-user-buttons li a,
.js .js-user-buttons li .column p:first-child a,
.column p:first-child .news .article-collection article a::after,
.news .article-collection article .column p:first-child a::after,
.column p:first-child .home .announcing .article-collection article a::after,
.home .announcing .article-collection article .column p:first-child a::after,
.column p:first-child .embed-video .poster::after,
.embed-video .column p:first-child .poster::after,
.column p:first-child .sign-up .submit input,
.sign-up .submit .column p:first-child input {
  margin-top: .2rem
}

.grid-articles {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  width: 100%
}

.grid-articles article {
  margin: 0 0 1.2rem
}

@media only screen and (min-width: 39em) {
  .grid-articles article {
    flex-basis: 31%
  }
}

.grid-articles article .image,
.grid-articles article .image-grid .image-grid-item,
.image-grid .grid-articles article .image-grid-item {
  margin-bottom: 0
}

.grid-articles article header {
  margin: 0 0 1rem;
  line-height: 1.4
}

.grid-articles article h2,
.grid-articles article .home .vibe-scene .statement,
.home .vibe-scene .grid-articles article .statement {
  margin: 0;
  padding: 1rem 0 0;
  font-size: 1.4rem;
  text-align: inherit;
  line-height: inherit
}

.grid-articles article p {
  margin: 0 0 1rem
}

.two-col-group {
  margin-bottom: 1rem
}

@media only screen and (min-width: 39em) {
  .two-col-group {
    margin-bottom: 2rem;
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between
  }

  .two-col-group>*:nth-child(odd) {
    padding-right: 2rem
  }

  .two-col-group.reverse-col {
    -webkit-flex-direction: row-reverse;
    flex-direction: row-reverse
  }

  .two-col-group.reverse-col>*:nth-child(odd) {
    padding-right: 0
  }

  .two-col-group.reverse-col>*:nth-child(even) {
    padding-right: 2rem
  }
}

.two-col-group dd {
  padding-left: 0
}

.two-col-group .image,
.two-col-group .image-grid .image-grid-item,
.image-grid .two-col-group .image-grid-item {
  max-width: 50%
}

.social-network {
  position: relative;
  top: 0;
  left: 0;
  margin: 0;
  padding: 2rem 0 0;
  background-color: #0B2A3B;
  text-align: center;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: center;
  justify-content: center
}

@media only screen and (min-width: 39em) {
  .social-network {
    padding-top: 3rem
  }
}

.social-network .icon.mask {
  margin: 0 2%;
  -webkit-transition: background-color 800ms ease-out 0s;
  transition: background-color 800ms ease-out 0s;
  background-color: #ff5054
}

.social-network .icon.mask:hover {
  -webkit-transition-duration: 200ms;
  transition-duration: 200ms;
  background-color: #fff
}

.social-network .icon.mask a:focus-visible {
  outline-color: var(--focus-visible-colour, currentColor);
  outline-style: solid;
  outline-offset: .125rem;
  outline-width: .25rem;
  -webkit-border-radius: .125rem;
  border-radius: .125rem;
  z-index: 101;
  transition-duration: 0s !important
}

.instagram-media {
  margin: 0 auto;
  text-align: center
}

.instagram-media h2,
.instagram-media .home .vibe-scene .statement,
.home .vibe-scene .instagram-media .statement {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px)
}

.instagram-media p a {
  padding: 0.1em 1.1rem 0.1em 0.6rem;
  font-size: 2rem;
  font-size: clamp(0.7rem, 7vw, 2rem);
  word-break: break-word;
  background-color: #006062;
  box-shadow: inset -1px -2px 6px 0px #002e2f
}

.instagram-media p a span.icon {
  background-color: #D0FC76
}

.no-touch .instagram-media p a {
  -webkit-transition: all 800ms ease-out 0s;
  transition: all 800ms ease-out 0s
}

.no-touch .instagram-media p a:hover {
  -webkit-transition-duration: 200ms;
  transition-duration: 200ms
}

.no-touch .instagram-media p a:hover span.icon {
  background-color: #fff
}

.instagram-media .posts {
  display: -webkit-flex;
  display: flex;
  display: inline-flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  row-gap: 3vw;
  row-gap: 4cqw;
  width: 100%
}

@media only screen and (min-width: 39em) {
  .instagram-media .posts {
    -webkit-justify-content: center;
    justify-content: center;
    gap: 8px
  }
}

.instagram-media .posts article {
  flex: 0 1 48%;
  margin: 0;
  -webkit-border-radius: .6em;
  border-radius: .6em;
  overflow: hidden
}

@media only screen and (min-width: 39em) {
  .instagram-media .posts article {
    flex-basis: 32%
  }
}

@media only screen and (min-width: 66em) {
  .instagram-media .posts article {
    flex-basis: 16%
  }
}

.instagram-media .posts a {
  display: block;
  background-image: none !important
}

.instagram-media .posts figure,
.instagram-media .posts picture {
  margin: 0
}

.instagram-media .posts img {
  width: 100%;
  -webkit-transition: -webkit-transform 2400ms cubic-bezier(0, 1.23, 0.37, 1.07) 0s;
  transition: transform 2400ms cubic-bezier(0, 1.23, 0.37, 1.07) 0s
}

@supports (aspect-ratio: 1) {
  .instagram-media .posts img {
    aspect-ratio: 640/854
  }
}

@media only screen and (max-width: 66em) and (prefers-reduced-motion: no-preference) {
  .instagram-media .posts .lazlo-loaded {
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    -webkit-animation-duration: 800ms;
    animation-duration: 800ms;
    -webkit-animation-delay: 0s;
    animation-delay: 0s;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
    -ms-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
    -webkit-backface-visibility: hidden;
    -webkit-animation-name: zoomInPlace;
    animation-name: zoomInPlace
  }
}

@media (prefers-reduced-motion: no-preference) {
  .instagram-media .posts a:hover img {
    -webkit-transform: scale(1.08);
    transform: scale(1.08);
    -webkit-transition-duration: 1600ms;
    transition-duration: 1600ms
  }
}

footer {
  position: relative;
  top: 0;
  left: 0;
  margin-top: 0;
  clear: both;
  padding: 2rem 2rem 7rem;
  font-family: "condensed_bold", helvetica, sans-serif;
  text-align: center;
  font-size: 1rem;
  line-height: 1.4;
  color: #fff;
  background-color: #0B2A3B
}

.with-quick-links footer {
  padding-bottom: 9rem
}

@media only screen and (min-width: 39em) {
  footer {
    padding-bottom: 10rem
  }

  .with-quick-links footer {
    padding-bottom: 12rem
  }
}

@media only screen and (min-width: 66em) {
  footer {
    padding-bottom: 12rem
  }

  footer p {
    margin-bottom: .6rem
  }
}

footer .flagship a {
  display: inine-block
}

footer .button,
footer .image-grid.image-pair a::after,
.image-grid.image-pair footer a::after,
footer .option-button,
footer .filters a,
.filters footer a,
footer .ticket-types a,
.ticket-types footer a,
footer .image-buttons a span,
.image-buttons a footer span,
footer .instagram-media p a,
.instagram-media p footer a,
footer .js .js-user-buttons li a,
.js .js-user-buttons li footer a,
footer .news .article-collection article a::after,
.news .article-collection article footer a::after,
footer .home .announcing .article-collection article a::after,
.home .announcing .article-collection article footer a::after,
footer .embed-video .poster::after,
.embed-video footer .poster::after,
footer .sign-up .submit input,
.sign-up .submit footer input {
  background-color: #ff5054;
  color: #fff
}

footer .button:hover,
footer .image-grid.image-pair a:hover::after,
.image-grid.image-pair footer a:hover::after,
footer .option-button:hover,
footer .filters a:hover,
.filters footer a:hover,
footer .ticket-types a:hover,
.ticket-types footer a:hover,
footer .image-buttons a span:hover,
.image-buttons a footer span:hover,
footer .instagram-media p a:hover,
.instagram-media p footer a:hover,
footer .js .js-user-buttons li a:hover,
.js .js-user-buttons li footer a:hover,
footer .news .article-collection article a:hover::after,
.news .article-collection article footer a:hover::after,
footer .home .announcing .article-collection article a:hover::after,
.home .announcing .article-collection article footer a:hover::after,
footer .embed-video .poster:hover::after,
.embed-video footer .poster:hover::after,
footer .sign-up .submit input:hover,
.sign-up .submit footer input:hover {
  color: #0B2A3B;
  background-color: #66D0C6
}

footer a:not(.button):not(.option-button) {
  text-decoration: none;
  background-repeat: no-repeat;
  background-size: 100% 1px;
  background-position: left 89%;
  background-image: -webkit-linear-gradient(top, #fff, #fff);
  background-image: linear-gradient(to bottom, #fff, #fff)
}

.no-touch footer a:not(.button):not(.option-button)[href]:hover {
  background-image: -webkit-linear-gradient(top, #ff5054, #ff5054);
  background-image: linear-gradient(to bottom, #ff5054, #ff5054);
  background-size: 100% 3px
}

footer .image.award-winner,
footer .image-grid .award-winner.image-grid-item,
.image-grid footer .award-winner.image-grid-item {
  display: inline-block;
  margin: 0 auto 1rem;
  width: 50%;
  max-width: 183px
}

footer .image.award-winner a:focus-visible img,
footer .image-grid .award-winner.image-grid-item a:focus-visible img,
.image-grid footer .award-winner.image-grid-item a:focus-visible img {
  outline-color: var(--focus-visible-colour, currentColor);
  outline-style: solid;
  outline-offset: .125rem;
  outline-width: .25rem;
  -webkit-border-radius: .125rem;
  border-radius: .125rem;
  z-index: 101;
  transition-duration: 0s !important
}

footer .image.award-winner img,
footer .image-grid .award-winner.image-grid-item img,
.image-grid footer .award-winner.image-grid-item img {
  filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.4))
}

.legal-links {
  margin-top: 1rem;
  padding: 0;
  list-style-type: none;
  text-align: inherit
}

@media only screen and (min-width: 39em) {
  .legal-links {
    margin-bottom: .6rem
  }
}

.legal-links li {
  margin-top: 1rem
}

@media only screen and (min-width: 39em) {
  .legal-links li {
    display: inline-block;
    margin: 0 .5rem
  }
}

nav {
  padding: 2rem 1rem;
  background-color: #FF757C;
  font-family: "heading_extra_black", helvetica, sans-serif;
  font-size: 1.5rem;
  text-align: center
}

nav ul {
  list-style: none;
  padding: 0
}

nav a {
  display: block;
  text-decoration: none;
  text-transform: uppercase;
  color: #0B2A3B
}

nav li {
  margin: 0 0 1rem
}

.home nav .home {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px)
}

@media only screen and (min-width: 66em) {
  nav {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 105;
    margin: 0 auto;
    padding: 0;
    background-color: transparent;
    width: 100%;
    max-width: 2560px;
    height: 74px;
    font-size: 1.4rem;
    font-size: clamp(0.84rem, 1.33vw, 1.8rem);
    background-color: transparent;
    pointer-events: none
  }

  nav h2,
  nav .home .vibe-scene .statement,
  .home .vibe-scene nav .statement {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px)
  }
}

@media only screen and (min-width: 66em) and (min-width: 66em) {
  nav .desktop-noviz {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px)
  }
}

@media only screen and (min-width: 66em) {
  nav .scroll-box {
    position: absolute;
    top: 0;
    right: 0;
    padding: 0;
    width: 50%;
    overflow: hidden
  }

  nav ul {
    box-sizing: border-box;
    display: inline-flex;
    justify-content: flex-end;
    align-items: center;
    margin: 0;
    padding: 0 1.4rem;
    width: 100%;
    height: 100%;
    pointer-events: auto
  }

  nav ul li {
    margin: 0 0 0 2%;
    margin-left: clamp(1%, 1.6vw, 3%);
    line-height: 1;
    cursor: pointer
  }

  nav ul li a {
    position: relative;
    top: 0;
    left: 0;
    cursor: pointer;
    color: #fff
  }

  nav ul li a:focus-visible {
    outline-color: var(--focus-visible-colour, currentColor);
    outline-style: solid;
    outline-offset: .125rem;
    outline-width: .25rem;
    -webkit-border-radius: .125rem;
    border-radius: .125rem;
    z-index: 101;
    transition-duration: 0s !important
  }

  nav ul li a::after {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 0;
    -webkit-border-radius: .6em;
    border-radius: .6em;
    width: 100%;
    height: 4px;
    background-color: #ff5054;
    opacity: 0;
    -webkit-transition: opacity 800ms ease-out 0s;
    transition: opacity 800ms ease-out 0s
  }

  nav ul li a:hover::after {
    -webkit-transition-duration: 200ms;
    transition-duration: 200ms;
    opacity: 1
  }
}

@media only screen and (max-width: 66em) {
  .js body {
    height: 100vh;
    overscroll-behavior: none
  }

  .js nav {
    box-sizing: border-box;
    position: fixed;
    top: 3.4rem;
    right: 0;
    z-index: 104;
    padding: 1rem 0 0;
    width: 100%;
    height: 100%;
    -webkit-overflow-scrolling: touch;
    -webkit-transform: translateX(100%);
    transform: translateX(100%);
    -webkit-transition: -webkit-transform 200ms cubic-bezier(0.9, 0, 0.13, 1.17) 0s;
    transition: transform 200ms cubic-bezier(0.9, 0, 0.13, 1.17) 0s
  }
}

@media only screen and (max-width: 66em) and (min-width: 39em) {
  .js nav {
    width: 50%;
    max-width: 520px
  }
}

@media only screen and (max-width: 66em) and (prefers-reduced-motion) {
  .js nav {
    -webkit-transition-duration: 800ms;
    transition-duration: 800ms;
    -webkit-transition-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
    transition-timing-function: cubic-bezier(0.23, 1, 0.32, 1)
  }
}

@media only screen and (max-width: 66em) {
  .js nav ul {
    overflow-y: auto;
    padding: 2rem 0 1rem
  }
}

@media only screen and (max-width: 66em) and (min-width: 39em) {
  .js nav ul {
    padding-top: 3rem
  }
}

.js .nav-open nav {
  -webkit-transform: translateY(0%);
  transform: translateY(0%)
}

.js #navBTN rect {
  -webkit-transition: width 200ms cubic-bezier(0.9, 0, 0.13, 1.17) 0s;
  transition: width 200ms cubic-bezier(0.9, 0, 0.13, 1.17) 0s
}

.js .nav-open #navBTN #r1 {
  width: 90%
}

.js .nav-open #navBTN #r2 {
  width: 60%
}

.js .nav-open #navBTN #r3 {
  width: 30%
}

.js-user-buttons {
  display: none
}

.js .js-user-buttons {
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 104;
  margin: 0;
  padding: 0;
  width: 100%;
  height: 44px;
  background-color: #fff;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  list-style: none
}

.js .js-user-buttons li {
  flex: 1
}

.js .js-user-buttons li a {
  -webkit-border-radius: 0;
  border-radius: 0;
  box-shadow: none;
  margin: 0;
  width: 100%;
  height: 100%;
  min-width: auto;
  max-width: none
}

.js .js-user-buttons li a:focus {
  -webkit-box-shadow: none;
  box-shadow: none
}

.js .js-user-buttons li:last-child a {
  background-color: #FF757C;
  color: #0B2A3B
}

@media only screen and (max-width: 66em) {
  .with-quick-links .js-user-buttons {
    display: flex;
    align-items: stretch
  }
}

.wudu-badge {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 101;
  margin: 0;
  padding: 0.8em;
  width: 5em;
  height: 5em;
  background-image: url("../resources/graphics/circle-badge-background.png");
  background-repeat: no-repeat;
  background-position: center;
  text-align: center;
  font-size: 1.1em;
  letter-spacing: 0.1pt;
  line-height: 1.1rem;
  color: #0B2A3B;
  font-family: "heading_extra_black", helvetica, sans-serif;
  text-transform: uppercase
}

.wudu-badge q::before,
.wudu-badge q::after {
  margin: 0;
  color: #006062
}

.wudu-badge q::before {
  margin-left: -0.5em;
  margin-right: 0.05em
}

.wudu-badge q::after {
  margin-left: 0.05em;
  margin-right: -0.5em
}

.wudu-badge .by-line {
  font-size: 1rem;
  font-size: 0.7em;
  color: #006062
}

.wudu-badge.button-badge {
  -webkit-border-radius: 50%;
  border-radius: 50%;
  background-image: url("../resources/graphics/button-badge-background.png");
  background-color: #D0FC76;
  background-size: 100.5%
}

.wudu-vibe .button-badge {
  position: absolute;
  bottom: -2.9em;
  left: -0.6em;
  line-height: 0.6em
}

@media only screen and (min-width: 39em) {
  .wudu-vibe .button-badge {
    bottom: auto;
    top: 1em;
    left: -3.6em
  }
}

@media only screen and (min-width: 66em) {
  .wudu-vibe .button-badge {
    left: -4.8em;
    width: 132px;
    height: 132px;
    font-size: 1.46em
  }
}

.tickets .button-badge {
  position: absolute;
  bottom: -100px;
  right: 0;
  width: 96px;
  height: 96px;
  z-index: 103;
  background-color: #006062;
  background-image: url("../resources/graphics/button-badge2-background.png");
  color: #fff;
  font-size: 0.9em;
  line-height: 0.9em
}

@media only screen and (min-width: 39em) {
  .tickets .button-badge {
    bottom: -148px;
    right: -52px;
    width: 154px;
    height: 154px;
    font-size: 1.3em;
    line-height: 1em
  }
}

@media only screen and (min-width: 66em) {
  .tickets .button-badge {
    bottom: -167px;
    right: -160px
  }
}

.tickets .button-badge q::before,
.tickets .button-badge q::after {
  color: #66D0C6
}

.tickets .button-badge .by-line {
  color: #66D0C6
}

.js .tickets .button-badge.watch-view {
  opacity: 0
}

.js .tickets .button-badge.in-view {
  opacity: 1;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-animation-delay: 0s;
  animation-delay: 0s;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: animateBadgeTablet;
  animation-name: animateBadgeTablet
}

.wudu-badge.plectrum-badge {
  justify-content: flex-start;
  width: 88px;
  height: 88px;
  background-image: url("../resources/graphics/plectrum-badge-background.png");
  background-size: contain;
  color: #fff;
  font-size: 0.9em;
  line-height: 1.1em
}

@media only screen and (min-width: 39em) {
  .wudu-badge.plectrum-badge {
    width: 102px;
    height: 102px
  }
}

@media only screen and (min-width: 66em) {
  .wudu-badge.plectrum-badge {
    width: 132px;
    height: 132px;
    font-size: 1.3em
  }
}

.wudu-badge.plectrum-badge span {
  display: inline
}

.wudu-badge.plectrum-badge span span {
  display: inline-block;
  margin-top: 0.16em;
  font-size: 1.9em
}

.wudu-badge.plectrum-badge>span:first-child {
  margin-top: 0.2em;
  font-size: 1.4em
}

.wudu-badge.plectrum-badge::after {
  content: "";
  display: block;
  width: 2em;
  height: 5em;
  background-image: url("../resources/graphics/lightning-bolt-tiny.png");
  background-repeat: no-repeat;
  background-position: top center;
  background-size: contain
}

.wudu-vibe .plectrum-badge {
  position: absolute;
  top: -1.8em;
  right: -1.2em
}

@media only screen and (min-width: 39em) {
  .wudu-vibe .plectrum-badge {
    top: -4em;
    right: -5.4em
  }
}

.js .vibe-up .wudu-vibe .button-badge {
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-duration: 200ms;
  animation-duration: 200ms;
  -webkit-animation-delay: 1000ms;
  animation-delay: 1000ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: animateBadgeTablet;
  animation-name: animateBadgeTablet
}

.js .vibe-up .wudu-vibe .plectrum-badge {
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-duration: 200ms;
  animation-duration: 200ms;
  -webkit-animation-delay: 1600ms;
  animation-delay: 1600ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: animateBadgeTablet;
  animation-name: animateBadgeTablet
}

.wudu26-badge {
  margin: 0 auto;
  width: clamp(6rem, 36vw, 13rem);
  padding-top: clamp(6rem, 36vw, 13rem)
}

.twentieth-badge {
  background-image: url("../resources/graphics/20th-edition-badge-graphic.png");
  background-repeat: no-repeat;
  background-position: left top;
  background-size: cover;
  height: 0;
  overflow: hidden;
  position: absolute;
  top: 0;
  right: -9px
}

@media only screen and (min-width: 39em) {
  .twentieth-badge {
    position: relative;
    top: 0;
    right: auto
  }
}

.js .wudu26-badge[data-onload-class] {
  visibility: hidden
}

.js .twentieth-up .in-view .twentieth-badge {
  visibility: visible;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-animation-delay: 400ms;
  animation-delay: 400ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: animateBadgeTablet;
  animation-name: animateBadgeTablet
}

.locked-badge {
  background-image: url("../resources/graphics/prices-locked-2027-badge-graphic.png");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  height: 0;
  overflow: hidden
}

@media only screen and (min-width: 39em) {
  .locked-badge {
    position: relative;
    top: 0;
    left: auto
  }
}

.js .locked-up .in-view .locked-badge {
  visibility: visible;
  transform-origin: top center;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-animation-delay: 400ms;
  animation-delay: 400ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: swingIn;
  animation-name: swingIn
}

.wudu-vibe .locked-badge {
  width: clamp(6rem, 36vw, 10rem);
  padding-top: clamp(6rem, 36vw, 10rem);
  position: absolute;
  top: auto;
  bottom: -2.9em;
  left: -1.1em;
  z-index: 101
}

@media only screen and (min-width: 39em) {
  .wudu-vibe .locked-badge {
    bottom: auto;
    top: 1em;
    left: -3.6em
  }
}

@media only screen and (min-width: 66em) {
  .wudu-vibe .locked-badge {
    width: clamp(6rem, 36vw, 14rem);
    padding-top: clamp(6rem, 36vw, 14rem);
    left: -6.8em
  }
}

.js .vibe-up .wudu-vibe .locked-badge {
  visibility: visible;
  transform-origin: top center;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-animation-delay: 1200ms;
  animation-delay: 1200ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: swingIn;
  animation-name: swingIn
}

.programme main>section.with-header .section7 {
  margin-bottom: 2.4rem
}

.programme .line-up {
  padding: 0;
  text-align: center
}

.programme .line-up>section {
  position: relative;
  top: 0;
  left: 0
}

.programme .line-up>section>.base-scene {
  z-index: 103
}

.programme .line-up>section>header {
  padding-right: 1rem;
  padding-left: 1rem;
  scroll-margin-top: 6.4rem
}

@supports (text-wrap: balance) {
  .programme .line-up>section>header {
    text-wrap: balance
  }
}

@media only screen and (min-width: 39em) {
  .programme .line-up>section>header {
    scroll-margin-top: 7.4rem
  }
}

@media only screen and (min-width: 66em) {

  .programme .line-up>section>header h2,
  .programme .line-up>section>header .home .vibe-scene .statement,
  .home .vibe-scene .programme .line-up>section>header .statement {
    font-size: 2.4rem
  }
}

.programme .items {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  margin: 0;
  padding: 1rem 0 1.2rem
}

.programme .items.information {
  padding-top: 1rem
}

@media only screen and (min-width: 66em) {
  .programme .items.information {
    padding-top: 3rem
  }
}

@media only screen and (min-width: 39em) {
  .programme .items {
    -webkit-justify-content: center;
    justify-content: center;
    margin: 0 auto
  }
}

@media only screen and (min-width: 66em) {
  .programme .items {
    width: 90%
  }
}

.programme .item {
  position: relative;
  top: 0;
  left: 0;
  -webkit-border-radius: .6em;
  border-radius: .6em;
  margin: 0 auto 0.4em;
  width: 49%;
  font-family: "heading_extra_black", helvetica, sans-serif;
  text-transform: uppercase;
  color: #006062;
  line-height: 1.2;
  text-align: center;
  overflow: hidden;
  content-visibility: auto
}

@media only screen and (min-width: 39em) {
  .programme .item {
    margin-right: 0.65%;
    margin-left: 0.65%;
    width: 32%;
    font-size: 1.2rem
  }
}

@media only screen and (min-width: 66em) {
  .programme .item {
    margin-right: 0.5%;
    margin-left: 0.5%;
    width: 24%;
    font-size: 1.4rem
  }
}

.programme .item a {
  -webkit-border-radius: .6em;
  border-radius: .6em;
  background-image: none;
  text-decoration: none;
  color: inherit
}

.programme .item img {
  display: block;
  -webkit-border-radius: .6em;
  border-radius: .6em;
  width: 100%;
  aspect-ratio: 1;
  -webkit-transition: -webkit-transform 2400ms cubic-bezier(0, 1.23, 0.37, 1.07) 0s;
  transition: transform 2400ms cubic-bezier(0, 1.23, 0.37, 1.07) 0s
}

.programme .item .label {
  position: relative;
  padding: 0.4em 1%;
  z-index: 1;
  -webkit-border-radius: .6em;
  border-radius: .6em;
  background-color: #fff;
  -webkit-transition: all 800ms ease-out 0s;
  transition: all 800ms ease-out 0s
}

@media only screen and (min-width: 66em) {
  .programme .item .label {
    padding-left: 2%
  }
}

.programme .item .day-headliner {
  display: block;
  font-size: 0.74em;
  color: #ff5054;
  -webkit-transition: color 800ms ease-out 0s;
  transition: color 800ms ease-out 0s;
  font-family: "condensed_bold", helvetica, sans-serif;
  text-transform: uppercase
}

@media only screen and (max-width: 66em) and (prefers-reduced-motion: no-preference) {
  .programme .item .lazlo-loaded {
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    -webkit-animation-duration: 800ms;
    animation-duration: 800ms;
    -webkit-animation-delay: 0s;
    animation-delay: 0s;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
    -ms-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
    -webkit-backface-visibility: hidden;
    -webkit-animation-name: zoomInPlace;
    animation-name: zoomInPlace
  }
}

.programme .item a:hover .label,
.programme .item a:focus-visible .label {
  background-color: #66D0C6;
  color: #0B2A3B;
  -webkit-transition-duration: 200ms;
  transition-duration: 200ms
}

@media (prefers-reduced-motion: no-preference) {

  .programme .item a:hover img,
  .programme .item a:focus-visible img {
    -webkit-transform: scale(1.08);
    transform: scale(1.08);
    -webkit-transition-duration: 1600ms;
    transition-duration: 1600ms
  }
}

@media only screen and (min-width: 39em) {
  .programme .items.weighted .item:nth-child(n+4) {
    width: 23.7%
  }
}

@media only screen and (min-width: 66em) {
  .programme .items.weighted .item:nth-child(4) {
    width: 24%
  }

  .programme .items.weighted .item:nth-child(n+5) {
    width: 19%
  }
}

.programme article.item.collection::before {
  content: "";
  width: 52px;
  height: 52px;
  position: absolute;
  top: 4px;
  right: 4px;
  z-index: 1;
  background-image: url("../resources/graphics/daisy.png");
  background-repeat: no-repeat;
  background-position: left top;
  background-size: contain;
  background-blend-mode: multiply;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-duration: 400ms;
  animation-duration: 400ms;
  -webkit-animation-delay: 2400ms;
  animation-delay: 2400ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: animateBadgeTablet;
  animation-name: animateBadgeTablet
}

.programme.embedded.scrolled {
  padding: 0
}

.programme.embedded.scrolled .items {
  position: relative;
  top: 0;
  left: 0;
  margin: 0 auto 1.2rem 0;
  padding-top: 0;
  max-width: 1024px;
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: stretch;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth
}

@media only screen and (min-width: 66em) {
  .programme.embedded.scrolled .items {
    margin: 1rem auto;
    padding-top: 0;
    max-width: none;
    flex-wrap: wrap;
    justify-content: center
  }
}

.programme.embedded.scrolled .items article {
  flex: 1 0 56%;
  margin: 0 2.5%;
  scroll-snap-align: center
}

@media only screen and (min-width: 39em) {
  .programme.embedded.scrolled .items article {
    flex: 1 0 26%;
    margin: 0 1.5%
  }
}

@media only screen and (min-width: 66em) {
  .programme.embedded.scrolled .items article {
    flex: 0 0 15%;
    margin: 0 0.5% 0.4em
  }
}

.no-flex .line-up .item {
  display: inline-block;
  vertical-align: top
}

.programme .information .item {
  margin: 0 0 5%;
  width: 49%
}

@media only screen and (min-width: 39em) {
  .programme .information .item {
    margin: 0 2% 4%;
    width: 26%
  }
}

@media only screen and (min-width: 66em) {
  .programme .information .item {
    margin: 0 4% 4%;
    width: 23%
  }
}

.pal {
  font-family: "body_bold", helvetica, sans-serif;
  font-weight: bold
}

.programme h1 {
  margin-bottom: 0
}

@media only screen and (max-width: 39em) {
  .programme h1 {
    font-size: 2rem;
    font-size: clamp(1rem, 10vw, 2.8rem)
  }
}

.programme .schedule-info {
  font-family: "heading_extra_black", helvetica, sans-serif;
  font-size: 1.4rem;
  text-transform: uppercase;
  color: #ff5054
}

.programme .centre-all {
  margin-bottom: 1.2rem
}

.programme .centre-all h2,
.programme .centre-all .home .vibe-scene .statement,
.home .vibe-scene .programme .centre-all .statement {
  margin-bottom: 0.4rem
}

.js .programme .watch-view {
  opacity: 0
}

.js .programme .watch-view.in-view {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 0s;
  animation-delay: 0s
}

@media only screen and (min-width: 66em) {
  body>.filters-block {
    display: none
  }

  .programme>.filters-block {
    display: block
  }
}

.filters-block {
  margin: 1rem auto 1rem;
  width: 80vw;
  max-width: 79rem;
  text-align: center
}

.filters-block h1 {
  margin-bottom: 1rem
}

.filters {
  margin: 0 auto;
  padding: 1rem 0;
  font-size: 1rem
}

.filters dt {
  margin: 0;
  font-family: "heading_extra_black", helvetica, sans-serif;
  text-transform: uppercase
}

.filters dd {
  margin: 0;
  padding: 0
}

@media only screen and (min-width: 39em) {
  .filters dd {
    display: inline-block
  }
}

.filters .active a {
  background-color: #0B2A3B;
  color: #fff;
  border-color: transparent
}

.filters .button,
.filters .image-grid.image-pair a::after,
.image-grid.image-pair .filters a::after,
.filters .option-button,
.filters a,
.filters .ticket-types a,
.ticket-types .filters a,
.filters .image-buttons a span,
.image-buttons a .filters span,
.filters .instagram-media p a,
.instagram-media p .filters a,
.filters .js .js-user-buttons li a,
.js .js-user-buttons li .filters a,
.filters .news .article-collection article a::after,
.news .article-collection article .filters a::after,
.filters .home .announcing .article-collection article a::after,
.home .announcing .article-collection article .filters a::after,
.filters .embed-video .poster::after,
.embed-video .filters .poster::after,
.filters .sign-up .submit input,
.sign-up .submit .filters input {
  box-sizing: border-box;
  margin: 0;
  width: 100%;
  font-size: inherit;
  box-shadow: none
}

@media only screen and (min-width: 66em) {
  .filters {
    margin-right: auto;
    margin-left: auto;
    padding: 0;
    max-width: 2207px;
    font-size: 0.9rem;
    background-color: transparent
  }

  .filters dt {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px)
  }

  .filters dd {
    margin: 0.3em
  }
}

@media only screen and (max-width: 66em) {
  .filters-block {
    display: none
  }

  .menu-activated .filters-block {
    display: block;
    box-sizing: border-box;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 103;
    margin: 0;
    width: 100%;
    padding: 0;
    height: 100%;
    scroll-margin-top: 4.4rem;
    background-color: #FF757C;
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%);
    -webkit-transition: -webkit-transform 200ms cubic-bezier(0.9, 0, 0.13, 1.17) 0s;
    transition: transform 200ms cubic-bezier(0.9, 0, 0.13, 1.17) 0s
  }
}

@media only screen and (max-width: 66em) and (prefers-reduced-motion) {
  .menu-activated .filters-block {
    -webkit-transition-duration: 800ms;
    transition-duration: 800ms;
    -webkit-transition-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
    transition-timing-function: cubic-bezier(0.23, 1, 0.32, 1)
  }
}

@media only screen and (max-width: 66em) and (min-width: 39em) {
  .menu-activated .filters-block {
    width: 50vw
  }
}

@media only screen and (max-width: 66em) {
  .menu-activated .filters-block .close {
    position: absolute;
    right: .3333333333rem;
    top: 4.4rem;
    background-color: #fff
  }
}

@media only screen and (max-width: 66em) and (min-width: 39em) {
  .menu-activated .filters-block .close {
    top: 5.2rem
  }
}

@media only screen and (max-width: 66em) {

  .menu-activated .filters-block .button,
  .menu-activated .filters-block .image-grid.image-pair a::after,
  .image-grid.image-pair .menu-activated .filters-block a::after,
  .menu-activated .filters-block .option-button,
  .menu-activated .filters-block .filters a,
  .filters .menu-activated .filters-block a,
  .menu-activated .filters-block .ticket-types a,
  .ticket-types .menu-activated .filters-block a,
  .menu-activated .filters-block .image-buttons a span,
  .image-buttons a .menu-activated .filters-block span,
  .menu-activated .filters-block .instagram-media p a,
  .instagram-media p .menu-activated .filters-block a,
  .menu-activated .filters-block .js .js-user-buttons li a,
  .js .js-user-buttons li .menu-activated .filters-block a,
  .menu-activated .filters-block .news .article-collection article a::after,
  .news .article-collection article .menu-activated .filters-block a::after,
  .menu-activated .filters-block .home .announcing .article-collection article a::after,
  .home .announcing .article-collection article .menu-activated .filters-block a::after,
  .menu-activated .filters-block .embed-video .poster::after,
  .embed-video .menu-activated .filters-block .poster::after,
  .menu-activated .filters-block .sign-up .submit input,
  .sign-up .submit .menu-activated .filters-block input {
    border: none;
    margin: 0;
    padding: 0;
    color: inherit;
    background-color: transparent;
    font-size: 1.6rem
  }

  .menu-activated .filters-block .button:hover,
  .menu-activated .filters-block .image-grid.image-pair a:hover::after,
  .image-grid.image-pair .menu-activated .filters-block a:hover::after,
  .menu-activated .filters-block .option-button:hover,
  .menu-activated .filters-block .filters a:hover,
  .filters .menu-activated .filters-block a:hover,
  .menu-activated .filters-block .ticket-types a:hover,
  .ticket-types .menu-activated .filters-block a:hover,
  .menu-activated .filters-block .image-buttons a span:hover,
  .image-buttons a .menu-activated .filters-block span:hover,
  .menu-activated .filters-block .instagram-media p a:hover,
  .instagram-media p .menu-activated .filters-block a:hover,
  .menu-activated .filters-block .js .js-user-buttons li a:hover,
  .js .js-user-buttons li .menu-activated .filters-block a:hover,
  .menu-activated .filters-block .news .article-collection article a:hover::after,
  .news .article-collection article .menu-activated .filters-block a:hover::after,
  .menu-activated .filters-block .home .announcing .article-collection article a:hover::after,
  .home .announcing .article-collection article .menu-activated .filters-block a:hover::after,
  .menu-activated .filters-block .embed-video .poster:hover::after,
  .embed-video .menu-activated .filters-block .poster:hover::after,
  .menu-activated .filters-block .sign-up .submit input:hover,
  .sign-up .submit .menu-activated .filters-block input:hover {
    color: inherit;
    background-color: inherit
  }

  .menu-activated .filters-block .active a {
    color: #fff
  }

  .menu-activated .filters-block h1 {
    margin: 0;
    font-size: 2rem
  }

  .menu-activated .filters-block .filters {
    box-sizing: border-box;
    display: block;
    position: relative;
    margin-top: 0;
    padding: 6rem 0 1rem;
    max-height: 92vh;
    width: 100%;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: none;
    overflow-y: scroll
  }
}

@media only screen and (max-width: 66em) and (min-width: 39em) {
  .menu-activated .filters-block .filters {
    margin-top: 0;
    padding-top: 6.6rem
  }
}

@media only screen and (max-width: 66em) {
  .menu-activated .filters-block .filters dd:last-child {
    margin-bottom: 4rem
  }

  .menu-activated .filters-block dt {
    margin-bottom: 1rem;
    color: #fff;
    font-size: 1.4rem
  }

  .menu-activated .filters-block dd {
    display: block;
    margin: 0 auto;
    font-size: clamp(0.3rem, 2.6vh, 1rem)
  }
}

@media only screen and (max-width: 66em) and (min-width: 39em) {
  .menu-activated .filters-block dd {
    margin-bottom: .5rem
  }
}

@media only screen and (max-width: 66em) {

  .menu-activated .filters-block dd .button,
  .menu-activated .filters-block dd .image-grid.image-pair a::after,
  .image-grid.image-pair .menu-activated .filters-block dd a::after,
  .menu-activated .filters-block dd .option-button,
  .menu-activated .filters-block dd .filters a,
  .filters .menu-activated .filters-block dd a,
  .menu-activated .filters-block dd .ticket-types a,
  .ticket-types .menu-activated .filters-block dd a,
  .menu-activated .filters-block dd .image-buttons a span,
  .image-buttons a .menu-activated .filters-block dd span,
  .menu-activated .filters-block dd .instagram-media p a,
  .instagram-media p .menu-activated .filters-block dd a,
  .menu-activated .filters-block dd .js .js-user-buttons li a,
  .js .js-user-buttons li .menu-activated .filters-block dd a,
  .menu-activated .filters-block dd .news .article-collection article a::after,
  .news .article-collection article .menu-activated .filters-block dd a::after,
  .menu-activated .filters-block dd .home .announcing .article-collection article a::after,
  .home .announcing .article-collection article .menu-activated .filters-block dd a::after,
  .menu-activated .filters-block dd .embed-video .poster::after,
  .embed-video .menu-activated .filters-block dd .poster::after,
  .menu-activated .filters-block dd .sign-up .submit input,
  .sign-up .submit .menu-activated .filters-block dd input {
    padding-top: clamp(0.4rem, 1.8vh, 0.6rem);
    padding-bottom: clamp(0.4rem, 1.8vh, 0.6rem)
  }

  .menu-activated.menu-open .filters-block {
    -webkit-transform: translateY(0%);
    transform: translateY(0%);
    -webkit-transition-duration: 400ms;
    transition-duration: 400ms
  }
}

@media only screen and (max-width: 66em) and (prefers-reduced-motion) {
  .menu-activated.menu-open .filters-block {
    -webkit-transition-duration: 800ms;
    transition-duration: 800ms
  }
}

@media only screen and (max-width: 66em) {
  .menu-activated.menu-open .filters-block .close {
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-duration: 200ms;
    animation-duration: 200ms;
    -webkit-animation-delay: 800ms;
    animation-delay: 800ms;
    -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
    -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
    animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
    -webkit-backface-visibility: hidden;
    -webkit-animation-name: zoomInElastic;
    animation-name: zoomInElastic
  }

  .menu-activated.hold-menu .filters-block {
    -webkit-transition-delay: 400ms;
    transition-delay: 400ms;
    -webkit-transition-duration: 800ms;
    transition-duration: 800ms
  }
}

@media only screen and (min-width: 66em) {
  .filters-block .close {
    display: none
  }
}

@media only screen and (max-width: 39em) {
  .home.menu-activated .filters-block .filters {
    margin-top: 6.4rem
  }

  .home.menu-activated .filters-block .close {
    top: 6.4rem
  }
}

body.menu-activated.menu-open {
  overflow: hidden;
  height: 100vh
}

.poster-view picture {
  margin: 0 auto;
  max-width: 1080px;
  aspect-ratio: 64/80
}

.js .poster-view picture img {
  opacity: 0
}

.js .poster-up .poster-view picture img {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 0s;
  animation-delay: 0s
}

.buy-tickets main {
  padding-left: 0;
  padding-right: 0
}

.buy-tickets main .centre-all {
  box-sizing: border-box;
  padding-left: 1rem;
  padding-right: 1rem
}

.ticket-types {
  margin: 0 auto 2.4rem;
  padding-top: 1rem;
  text-align: center
}

.ticket-types .info {
  margin-bottom: 0
}

.ticket-types ul {
  width: 98%
}

.ticket-types li::before {
  display: none
}

.ticket-types li {
  flex: 0;
  padding: 0
}

.x-scroll {
  margin: 0 auto 2.4rem;
  max-width: 1300px
}

.x-scroll::-webkit-scrollbar-thumb {
  background: #000;
  border-radius: var(--corner-radius, 0)
}

.x-scroll::-webkit-scrollbar-track {
  background: transparent
}

.x-scroll .x-scroll-tab {
  flex-shrink: 0;
  width: 100%;
  scroll-snap-align: start;
  scroll-margin-top: 6rem
}

.x-scroll-controls a.x-scroll-active {
  background-color: #0B2A3B;
  color: #fff;
  border-color: #0B2A3B
}

.js .x-scroll {
  overflow-x: auto;
  overflow-y: hidden;
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: flex-start;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth
}

.tickets-grid {
  position: relative;
  top: 0;
  left: 0;
  z-index: 1;
  margin: 0 auto 2rem;
  width: 100%;
  max-width: 1300px;
  font-family: "heading_extra_black", helvetica, sans-serif;
  text-transform: uppercase;
  color: #ff5054;
  text-align: center
}

.super-early-bird .tickets-grid {
  max-width: 640px
}

@media only screen and (min-width: 39em) {
  .tickets-grid {
    table-layout: fixed
  }
}

@media only screen and (min-width: 39em) {
  .centre-all .tickets-grid {
    width: 76%
  }
}

@media only screen and (min-width: 66em) {
  .centre-all .tickets-grid {
    width: 46%
  }
}

.tickets-grid caption {
  margin: 1rem 0;
  font-family: "heading_extra_black", helvetica, sans-serif;
  font-size: 2rem;
  text-align: center
}

.tickets-grid .active-tier {
  background-color: #ffdc00
}

.tickets-grid .active-tier.off-sale {
  background-color: transparent
}

.tickets-grid th,
.tickets-grid td {
  box-sizing: border-box;
  border: none;
  font-family: inherit
}

p+.tickets-grid {
  margin-top: 2rem
}

ul+.tickets-grid {
  margin-top: 3rem
}

.js .tickets-grid caption {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px)
}

.tickets-grid.off-sale .active-tier {
  background-color: transparent
}

.tickets-grid.off-sale .button,
.tickets-grid.off-sale .image-grid.image-pair a::after,
.image-grid.image-pair .tickets-grid.off-sale a::after,
.tickets-grid.off-sale .option-button,
.tickets-grid.off-sale .filters a,
.filters .tickets-grid.off-sale a,
.tickets-grid.off-sale .ticket-types a,
.ticket-types .tickets-grid.off-sale a,
.tickets-grid.off-sale .image-buttons a span,
.image-buttons a .tickets-grid.off-sale span,
.tickets-grid.off-sale .instagram-media p a,
.instagram-media p .tickets-grid.off-sale a,
.tickets-grid.off-sale .js .js-user-buttons li a,
.js .js-user-buttons li .tickets-grid.off-sale a,
.tickets-grid.off-sale .news .article-collection article a::after,
.news .article-collection article .tickets-grid.off-sale a::after,
.tickets-grid.off-sale .home .announcing .article-collection article a::after,
.home .announcing .article-collection article .tickets-grid.off-sale a::after,
.tickets-grid.off-sale .embed-video .poster::after,
.embed-video .tickets-grid.off-sale .poster::after,
.tickets-grid.off-sale .sign-up .submit input,
.sign-up .submit .tickets-grid.off-sale input {
  display: none
}

.buy-tickets .tickets-grid thead th,
.buy-tickets .tickets-grid tbody td {
  clip: rect(0 0 0 0);
  width: 1px;
  height: 1px;
  overflow: hidden;
  position: absolute;
  margin: -1px
}

@media only screen and (min-width: 39em) {

  .buy-tickets .tickets-grid thead th,
  .buy-tickets .tickets-grid tbody td {
    clip: auto;
    width: auto;
    height: auto;
    position: relative;
    margin: auto
  }
}

.tickets-grid thead th,
.tickets-grid tbody td {
  padding: 0.8rem
}

.tickets-grid thead th:first-child,
.tickets-grid thead th.active-tier,
.tickets-grid thead th:last-child,
.tickets-grid tbody td:first-child,
.tickets-grid tbody td.active-tier,
.tickets-grid tbody td:last-child {
  clip: auto;
  width: auto;
  height: auto;
  position: relative;
  margin: auto
}

.tickets-grid thead th {
  background-color: transparent;
  font-size: clamp(0.8rem, 4.8vw, 1.5rem);
  line-height: 1.4;
  vertical-align: middle
}

@media only screen and (min-width: 39em) {
  .tickets-grid thead th {
    line-height: 1.2
  }
}

.tickets-grid thead th:first-child {
  background-color: #0AB4BB;
  vertical-align: middle;
  font-size: clamp(0.8rem, 5vw, 1.4rem);
  color: #FEE7DA;
  opacity: 1
}

@media only screen and (max-width: 39em) {
  .tickets-grid thead th:first-child {
    border-right: solid 4px transparent
  }
}

.tickets-grid thead th:first-child span {
  color: inherit
}

@media only screen and (min-width: 39em) {
  .tickets-grid thead th:first-child {
    font-size: clamp(0.8rem, 3vw, 1.4rem)
  }
}

.tickets-grid tbody tr {
  border-bottom: solid 2px #ff5054;
  height: 3.8rem
}

.tickets-grid tbody th,
.tickets-grid tbody td {
  vertical-align: middle
}

.tickets-grid tbody th {
  background-color: transparent;
  color: #006062;
  font-size: clamp(0.8rem, 4.3vw, 1.5rem);
  line-height: 1.2;
  opacity: 1
}

.tickets-grid tbody td {
  color: #0AB4BB;
  font-size: clamp(0.8rem, 4.3vw, 1.5rem);
  line-height: 1.2
}

.tickets-grid tbody td .button,
.tickets-grid tbody td .image-grid.image-pair a::after,
.image-grid.image-pair .tickets-grid tbody td a::after,
.tickets-grid tbody td .option-button,
.tickets-grid tbody td .filters a,
.filters .tickets-grid tbody td a,
.tickets-grid tbody td .ticket-types a,
.ticket-types .tickets-grid tbody td a,
.tickets-grid tbody td .image-buttons a span,
.image-buttons a .tickets-grid tbody td span,
.tickets-grid tbody td .instagram-media p a,
.instagram-media p .tickets-grid tbody td a,
.tickets-grid tbody td .js .js-user-buttons li a,
.js .js-user-buttons li .tickets-grid tbody td a,
.tickets-grid tbody td .news .article-collection article a::after,
.news .article-collection article .tickets-grid tbody td a::after,
.tickets-grid tbody td .home .announcing .article-collection article a::after,
.home .announcing .article-collection article .tickets-grid tbody td a::after,
.tickets-grid tbody td .embed-video .poster::after,
.embed-video .tickets-grid tbody td .poster::after,
.tickets-grid tbody td .sign-up .submit input,
.sign-up .submit .tickets-grid tbody td input {
  font-size: inherit
}

.tickets-grid.ticket-extras {
  margin-left: auto;
  margin-right: auto;
  max-width: 640px
}

.tickets-grid.ticket-extras td {
  text-align: right
}

.tickets-grid.ticket-extras td.active-tier {
  background-color: transparent
}

.tickets-grid thead span,
.tickets-grid tbody span {
  display: block;
  font-family: "body_regular", helvetica, sans-serif;
  text-transform: none;
  color: #0AB4BB;
  font-size: 0.7em
}

.tickets-grid thead span sup,
.tickets-grid tbody span sup {
  font-size: inherit
}

#paymentPlan hr {
  margin-top: 8rem
}

.festival-special {
  display: block;
  margin: 0 auto;
  max-width: 91rem
}

.festival-special h2,
.festival-special .home .vibe-scene .statement,
.home .vibe-scene .festival-special .statement {
  color: #A9EDDD
}

.festival-special h2 span,
.festival-special .home .vibe-scene .statement span,
.home .vibe-scene .festival-special .statement span {
  display: block
}

.festival-special h2,
.festival-special .home .vibe-scene .statement,
.home .vibe-scene .festival-special .statement,
.festival-special p {
  max-width: 420px
}

@media only screen and (min-width: 39em) {

  .festival-special h2 span,
  .festival-special .home .vibe-scene .statement span,
  .home .vibe-scene .festival-special .statement span {
    display: inline
  }
}

.festival-special article {
  position: relative;
  top: 0;
  left: 0;
  box-sizing: border-box;
  margin: 0 auto;
  padding: 0 1rem 1rem;
  text-align: center
}

@media only screen and (min-width: 66em) {
  .festival-special article {
    flex: 1 1 40%;
    margin: 0;
    padding: 1rem
  }

  .festival-special article:only-child {
    margin: 0 auto
  }
}

.festival-special article h1 {
  color: #A9EDDD
}

.festival-special article h1 span {
  display: block
}

.festival-special article h1,
.festival-special article p {
  max-width: 420px
}

.festival-special article:nth-child(even) {
  margin-top: 3rem;
  padding-top: 5rem
}

@media only screen and (min-width: 66em) {
  .festival-special article:nth-child(even) {
    margin-top: 0;
    padding-top: 1rem
  }
}

.festival-special article:nth-child(even)::after {
  content: "";
  display: block;
  position: absolute;
  top: -3rem;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  width: 6rem;
  height: 6rem;
  background-image: url("../resources/graphics/flower-yellow.png");
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-size: contain
}

@media only screen and (min-width: 66em) {
  .festival-special article:nth-child(even)::after {
    top: 50%;
    left: -3rem;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%)
  }
}

.tickets .booking-options {
  position: relative;
  top: 0;
  left: 0;
  margin: 0 auto 1rem;
  max-width: 520px;
  text-align: center;
  padding: 0 1rem
}

@media only screen and (min-width: 39em) {
  .tickets .booking-options {
    padding-top: 1rem;
    padding-right: 0;
    padding-left: 0
  }
}

@supports(text-wrap: balance) {
  .tickets .booking-options {
    text-wrap: balance
  }
}

.tickets .booking-options article {
  -webkit-border-radius: .6em;
  border-radius: .6em;
  margin: 0 auto 1.2rem;
  padding: 1rem;
  background-color: #0AB4BB;
  color: #0B2A3B;
  line-height: 1.16
}

@media only screen and (min-width: 39em) {
  .tickets .booking-options article {
    padding: 1rem 3rem
  }
}

.tickets .booking-options article:last-of-type {
  margin-bottom: 2.4rem
}

.tickets .booking-options article>:last-child {
  margin-bottom: .5rem
}

.tickets .booking-options article h1 {
  margin-bottom: 0;
  line-height: inherit;
  font-size: 1.4rem;
  font-size: clamp(1rem, 10vw, 2.4rem);
  color: #fff
}

.tickets .booking-options article span {
  display: block
}

.tickets .booking-options article .key-info {
  margin: 0.3em auto 0.1em;
  font-family: "heading_extra_black", helvetica, sans-serif;
  color: #fff;
  font-size: 1.8rem
}

.tickets .booking-options article .key-info strong {
  font-family: inherit;
  color: #0B2A3B
}

.tickets .booking-options article .button,
.tickets .booking-options article .image-grid.image-pair a::after,
.image-grid.image-pair .tickets .booking-options article a::after,
.tickets .booking-options article .option-button,
.tickets .booking-options article .filters a,
.filters .tickets .booking-options article a,
.tickets .booking-options article .ticket-types a,
.ticket-types .tickets .booking-options article a,
.tickets .booking-options article .image-buttons a span,
.image-buttons a .tickets .booking-options article span,
.tickets .booking-options article .instagram-media p a,
.instagram-media p .tickets .booking-options article a,
.tickets .booking-options article .js .js-user-buttons li a,
.js .js-user-buttons li .tickets .booking-options article a,
.tickets .booking-options .news .article-collection article a::after,
.news .article-collection .tickets .booking-options article a::after,
.tickets .booking-options .home .announcing .article-collection article a::after,
.home .announcing .article-collection .tickets .booking-options article a::after,
.tickets .booking-options article .embed-video .poster::after,
.embed-video .tickets .booking-options article .poster::after,
.tickets .booking-options article .sign-up .submit input,
.sign-up .submit .tickets .booking-options article input {
  background-color: #006062
}

.tickets .booking-options article .button:hover,
.tickets .booking-options article .image-grid.image-pair a:hover::after,
.image-grid.image-pair .tickets .booking-options article a:hover::after,
.tickets .booking-options article .option-button:hover,
.tickets .booking-options article .filters a:hover,
.filters .tickets .booking-options article a:hover,
.tickets .booking-options article .ticket-types a:hover,
.ticket-types .tickets .booking-options article a:hover,
.tickets .booking-options article .image-buttons a span:hover,
.image-buttons a .tickets .booking-options article span:hover,
.tickets .booking-options article .instagram-media p a:hover,
.instagram-media p .tickets .booking-options article a:hover,
.tickets .booking-options article .js .js-user-buttons li a:hover,
.js .js-user-buttons li .tickets .booking-options article a:hover,
.tickets .booking-options .news .article-collection article a:hover::after,
.news .article-collection .tickets .booking-options article a:hover::after,
.tickets .booking-options .home .announcing .article-collection article a:hover::after,
.home .announcing .article-collection .tickets .booking-options article a:hover::after,
.tickets .booking-options article .embed-video .poster:hover::after,
.embed-video .tickets .booking-options article .poster:hover::after,
.tickets .booking-options article .sign-up .submit input:hover,
.sign-up .submit .tickets .booking-options article input:hover {
  background-color: #0AB4BB
}

.news .article-collection {
  padding: 0 1rem;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: flex-start;
  justify-content: flex-start
}

@media only screen and (min-width: 66em) {
  .news .article-collection {
    margin: 0 auto;
    width: 80vw;
    max-width: 115rem
  }
}

.news .article-collection p.next {
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center
}

.news .article-collection article {
  margin: 0 0 1.2rem;
  border-bottom: solid 1px #0B2A3B;
  padding-bottom: 1.2rem;
  display: inline-block;
  vertical-align: top
}

@media only screen and (min-width: 39em) {
  .news .article-collection article {
    margin: 0;
    border: none;
    padding-bottom: 2.4rem;
    width: 45%
  }

  .news .article-collection article:nth-child(odd) {
    margin-right: 8%
  }
}

@media only screen and (min-width: 66em) {
  .news .article-collection article {
    margin-right: 6%;
    width: 29%
  }

  .news .article-collection article:nth-child(odd) {
    margin-right: 6%
  }

  .news .article-collection article:nth-child(3n+3) {
    margin-right: 0
  }
}

.news .article-collection article header {
  border: none;
  margin: 0;
  padding: 0
}

.news .article-collection article h2,
.news .article-collection article .home .vibe-scene .statement,
.home .vibe-scene .news .article-collection article .statement,
.news .article-collection article p {
  margin: 0 0 1rem
}

.news .article-collection article h2,
.news .article-collection article .home .vibe-scene .statement,
.home .vibe-scene .news .article-collection article .statement {
  font-size: 2rem;
  line-height: 2.24rem
}

.news .article-collection article .image,
.news .article-collection article .image-grid .image-grid-item,
.image-grid .news .article-collection article .image-grid-item {
  margin: 0 0 1rem;
  aspect-ratio: 32/21
}

.news .article-collection article a {
  background-image: none;
  text-decoration: none;
  color: inherit
}

.news .article-collection article a::after {
  content: "Read more";
  margin: 0
}

.news main>article:only-of-type {
  margin: 0 auto 1.2rem;
  max-width: 56rem;
  padding-top: .5rem
}

.news main>article section {
  clear: both
}

.news main>article .content-group h3 {
  padding-top: 0
}

.news article header {
  margin: 1rem auto 1.2rem;
  padding: 0;
  border-bottom: solid 1px;
  max-width: 56rem;
  font-size: 1rem;
  line-height: 1.2rem
}

@media only screen and (min-width: 39em) {
  .news article header {
    padding-bottom: 1rem
  }
}

.news article header .article-meta {
  position: relative;
  font-size: inherit;
  line-height: inherit
}

.news article header .article-meta>p {
  margin: 0 1rem 1rem 0;
  font-size: inherit;
  line-height: inherit
}

@media only screen and (min-width: 39em) {
  .news article header .article-meta {
    padding-top: 1rem
  }

  .news article header .article-meta>p {
    margin-bottom: 0
  }
}

.news article header .by-line::before {
  content: "•";
  margin: 0 0.7rem 0 0.5rem;
  color: #ff5054
}

@media only screen and (max-width: 19.5em) {
  .news article header .by-line {
    display: block
  }

  .news article header .by-line::before {
    display: none
  }
}

@media only screen and (min-width: 39em) {
  .share-links {
    position: absolute;
    top: 0;
    right: 0
  }
}

.share-links p,
.share-links ul {
  display: inline-block;
  vertical-align: middle;
  margin: 0 !important;
  padding: 0
}

.share-links p {
  font-size: inherit;
  color: #0B2A3B
}

.share-links li {
  margin-bottom: 0
}

.share-links a {
  top: -40px;
  padding-top: 40px
}

.share-links .icon.mask {
  background-color: #006062
}

@media only screen and (min-width: 39em) {
  .share-links li.icon {
    width: 36px;
    height: 0;
    padding-top: 36px
  }

  .share-links li.icon:not(.mask).twitter {
    background-position: -36px top
  }

  .share-links li.icon:not(.mask).facebook {
    background-position: -72px top
  }

  .share-links li.icon:not(.mask).email {
    background-position: 0px top
  }

  .share-links li.icon.mask.twitter {
    -webkit-mask-position: -36px top
  }

  .share-links li.icon.mask.facebook {
    -webkit-mask-position: -72px top
  }

  .share-links li.icon.mask.email {
    -webkit-mask-position: 0px top
  }
}

.no-touch .share-links li.icon.mask {
  -webkit-transition: background-color 800ms ease-out 0s;
  transition: background-color 800ms ease-out 0s
}

.no-touch .share-links li.icon.mask:hover {
  -webkit-transition-duration: 200ms;
  transition-duration: 200ms;
  background-color: #ff5054
}

.no-touch .share-links li.icon.mask:focus-visible {
  outline-color: var(--focus-visible-colour, currentColor);
  outline-style: solid;
  outline-offset: .125rem;
  outline-width: .25rem;
  -webkit-border-radius: .125rem;
  border-radius: .125rem;
  z-index: 101;
  transition-duration: 0s !important
}

.home .announcing {
  position: relative
}

@media only screen and (max-width: 66em) {
  .home .announcing {
    padding: 3rem 0 2rem
  }
}

.home .announcing .article-collection {
  position: relative;
  top: 0;
  left: 0;
  margin: 0 auto 1.2rem 1rem;
  max-width: 1024px;
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth
}

@media only screen and (min-width: 66em) {
  .home .announcing .article-collection {
    margin: 1rem auto;
    max-width: 1280px
  }
}

.home .announcing .article-collection article {
  flex: 1 0 56%;
  position: relative;
  top: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  margin: 0 5% 0 0;
  text-align: center;
  color: #0B2A3B;
  scroll-snap-align: start
}

.home .announcing .article-collection article a {
  display: block;
  box-sizing: border-box;
  height: 100%;
  background-color: #0AB4BB;
  overflow: hidden;
  -webkit-border-radius: .6em;
  border-radius: .6em
}

@media only screen and (min-width: 39em) {
  .home .announcing .article-collection article {
    margin: 0 3% 0 0;
    flex: 1 0 38%
  }
}

@media only screen and (min-width: 66em) {
  .home .announcing .article-collection article {
    flex: 1 0 26%
  }

  .home .announcing .article-collection article:last-child {
    margin-right: 0
  }
}

.home .announcing .article-collection article .image,
.home .announcing .article-collection article .image-grid .image-grid-item,
.image-grid .home .announcing .article-collection article .image-grid-item {
  margin: 0 0 .8rem
}

@media only screen and (min-width: 39em) {

  .home .announcing .article-collection article .image,
  .home .announcing .article-collection article .image-grid .image-grid-item,
  .image-grid .home .announcing .article-collection article .image-grid-item {
    margin-bottom: 1rem;
    height: 67%
  }
}

@media only screen and (min-width: 66em) {

  .home .announcing .article-collection article .image,
  .home .announcing .article-collection article .image-grid .image-grid-item,
  .image-grid .home .announcing .article-collection article .image-grid-item {
    height: auto
  }
}

.home .announcing .article-collection article .image img,
.home .announcing .article-collection article .image-grid .image-grid-item img,
.image-grid .home .announcing .article-collection article .image-grid-item img {
  -webkit-border-radius: .6em .6em 0 0;
  border-radius: .6em .6em 0 0;
  aspect-ratio: 640/420;
  width: 100%;
  height: 100%;
  object-fit: cover
}

.home .announcing .article-collection article a {
  position: relative;
  display: block;
  padding-bottom: 3.2rem;
  text-decoration: none;
  color: inherit;
  outline: none;
  background-image: none !important
}

@media only screen and (min-width: 39em) {
  .home .announcing .article-collection article a {
    padding-bottom: 5.6rem
  }
}

@media only screen and (min-width: 66em) {
  .home .announcing .article-collection article a {
    padding-bottom: 2rem
  }
}

.home .announcing .article-collection article a:focus-visible::after {
  outline-color: var(--focus-visible-colour, currentColor);
  outline-style: solid;
  outline-offset: .125rem;
  outline-width: .25rem;
  -webkit-border-radius: .125rem;
  border-radius: .125rem;
  z-index: 101;
  transition-duration: 0s !important
}

.home .announcing .article-collection article a::after {
  content: "Read more";
  position: absolute;
  top: auto;
  bottom: 0;
  left: 0;
  right: 0;
  max-width: 138px;
  margin: 0 auto 1rem auto;
  background-color: #ff5054;
  box-shadow: inset -1px -2px 6px 0px #7a2628
}

.home .announcing .article-collection article a:hover {
  background-image: none !important
}

.home .announcing .article-collection article a:hover::after {
  background-color: #0B2A3B;
  box-shadow: inset -1px -2px 6px 0px #05141c;
  color: #fff
}

.home .announcing .article-collection article a:visited {
  color: inherit
}

.home .announcing .article-collection article header,
.home .announcing .article-collection article p {
  padding: 0 1rem
}

@media only screen and (min-width: 66em) {

  .home .announcing .article-collection article header,
  .home .announcing .article-collection article p {
    padding: 0 6%
  }
}

.home .announcing .article-collection article header p {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px)
}

.home .announcing .article-collection article h2,
.home .announcing .article-collection article .vibe-scene .statement,
.home .vibe-scene .announcing .article-collection article .statement {
  margin: 0 0 .3333333333rem;
  padding: 0;
  font-size: 1.3rem;
  line-height: 1.1;
  color: #fff;
  background-color: transparent
}

@supports(text-wrap: balance) {

  .home .announcing .article-collection article h2,
  .home .announcing .article-collection article .vibe-scene .statement,
  .home .vibe-scene .announcing .article-collection article .statement {
    text-wrap: balance
  }
}

@media only screen and (min-width: 39em) {

  .home .announcing .article-collection article h2,
  .home .announcing .article-collection article .vibe-scene .statement,
  .home .vibe-scene .announcing .article-collection article .statement {
    font-size: 1.4rem
  }
}

@media only screen and (min-width: 66em) {

  .home .announcing .article-collection article h2,
  .home .announcing .article-collection article .vibe-scene .statement,
  .home .vibe-scene .announcing .article-collection article .statement {
    margin-top: 6%;
    font-size: 1.6rem
  }
}

.home .announcing .article-collection article p {
  margin-bottom: .5rem;
  font-family: "body_italic", helvetica, sans-serif;
  font-size: 0.8rem;
  line-height: 1.2
}

@supports(text-wrap: balance) {
  .home .announcing .article-collection article p {
    text-wrap: pretty
  }
}

@media only screen and (min-width: 39em) {
  .home .announcing .article-collection article p {
    font-size: 1rem
  }
}

@media only screen and (min-width: 66em) {
  .home .announcing .article-collection article p {
    margin-bottom: 2rem;
    font-size: 1.1rem
  }
}

.home .announcing .glamping-collection article {
  max-width: 236px
}

.home .announcing .glamping-collection article a {
  padding-bottom: 2.4rem
}

.home .announcing .glamping-collection article .image,
.home .announcing .glamping-collection article .image-grid .image-grid-item,
.image-grid .home .announcing .glamping-collection article .image-grid-item {
  height: 50%
}

.home .announcing .glamping-collection article h2,
.home .announcing .glamping-collection article .vibe-scene .statement,
.home .vibe-scene .announcing .glamping-collection article .statement {
  margin-right: auto;
  margin-left: auto;
  padding: 0;
  font-size: 2rem;
  line-height: 0.82;
  word-break: initial;
  word-wrap: initial;
  max-width: 200px
}

.home .announcing .glamping-collection article p {
  font-family: "poster_bold", "heading_extra_black", helvetica, sans-serif;
  text-transform: uppercase;
  font-size: 1.2rem;
  color: #006062
}

@media only screen and (min-width: 66em) {
  .home .announcing .glamping-collection {
    max-width: 1472px
  }

  .home .announcing .glamping-collection article {
    max-width: none;
    flex: 0 1 auto;
    margin-right: 1%
  }

  .home .announcing .glamping-collection article:last-child {
    flex: auto
  }
}

.min-scene.news-promo .statement {
  font-family: "heading_extra_black", helvetica, sans-serif;
  font-size: 2rem
}

.min-scene.news-promo p {
  max-width: 252px
}

@media only screen and (min-width: 39em) {
  .min-scene.news-promo p {
    max-width: none
  }
}

.min-scene.news-promo figure {
  margin: 0 auto
}

.min-scene.news-promo figure img {
  -webkit-border-radius: .6em;
  border-radius: .6em;
  aspect-ratio: 640/800
}

.min-scene.news-promo .button,
.min-scene.news-promo .image-grid.image-pair a::after,
.image-grid.image-pair .min-scene.news-promo a::after,
.min-scene.news-promo .option-button,
.min-scene.news-promo .filters a,
.filters .min-scene.news-promo a,
.min-scene.news-promo .ticket-types a,
.ticket-types .min-scene.news-promo a,
.min-scene.news-promo .image-buttons a span,
.image-buttons a .min-scene.news-promo span,
.min-scene.news-promo .instagram-media p a,
.instagram-media p .min-scene.news-promo a,
.min-scene.news-promo .js .js-user-buttons li a,
.js .js-user-buttons li .min-scene.news-promo a,
.min-scene.news-promo .news .article-collection article a::after,
.news .article-collection article .min-scene.news-promo a::after,
.min-scene.news-promo .home .announcing .article-collection article a::after,
.home .announcing .article-collection article .min-scene.news-promo a::after,
.min-scene.news-promo .embed-video .poster::after,
.embed-video .min-scene.news-promo .poster::after,
.min-scene.news-promo .sign-up .submit input,
.sign-up .submit .min-scene.news-promo input {
  margin-bottom: 0
}

.js .min-scene.watch-view img {
  opacity: 0
}

.js .min-scene.watch-view.in-view img {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 0s;
  animation-delay: 0s
}

.overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  margin: 0;
  max-height: 100%;
  background-color: rgba(0, 96, 98, 0.96);
  z-index: 111
}

@media only screen and (min-width: 39em) {
  .overlay {
    right: 0;
    bottom: 0
  }
}

.overlay.show {
  display: block;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 3s;
  animation-duration: 3s;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 600ms;
  animation-delay: 600ms
}

.modal-view {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: 0;
  width: 100%;
  display: none
}

.modal-view.open,
.modal-view.closing {
  display: block;
  z-index: 112
}

.modal-view .caption {
  color: #fff
}

.modal-view .modal-prompt {
  padding: 2rem;
  text-align: center
}

.modal-view .modal-prompt .statement {
  color: #fff;
  font-size: 2rem;
  margin: 2rem 0
}

@media only screen and (min-width: 39em) {
  .modal-view {
    position: fixed;
    top: 100px;
    bottom: auto;
    margin: 0 auto;
    width: 90%
  }

  .modal-view.open {
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%)
  }
}

@media only screen and (min-width: 66em) {
  .modal-view {
    margin: 0;
    max-width: 1177px
  }

  .modal-view:has(.modal-prompt) {
    max-width: 640px
  }
}

.modal-view .content-box {
  margin: 0 auto;
  box-sizing: border-box;
  padding-top: 2rem;
  width: 100%;
  height: 100%;
  background-color: #ff5054
}

@media only screen and (max-width: 39em) {
  .modal-view .content-box {
    display: flex;
    justify-content: center;
    align-items: center
  }
}

@media only screen and (min-width: 39em) {
  .modal-view .content-box {
    -webkit-border-radius: .6em;
    border-radius: .6em;
    padding-top: 0
  }
}

.modal-view.open .content-box {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeInBelow;
  animation-name: fadeInBelow;
  -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
  -ms-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
  animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
  -webkit-animation-delay: 0s;
  animation-delay: 0s
}

@media only screen and (max-width: 39em) {
  .modal-view.open .content-box {
    overflow: scroll
  }
}

@media only screen and (min-width: 39em) {
  .modal-view.open .content-box {
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-duration: 400ms;
    animation-duration: 400ms;
    -webkit-animation-delay: 0s;
    animation-delay: 0s;
    -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
    -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
    animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
    -webkit-backface-visibility: hidden;
    -webkit-animation-name: zoomInElastic;
    animation-name: zoomInElastic
  }
}

.modal-view .close {
  position: absolute;
  top: 0.6rem;
  right: 0.6rem;
  margin: 0;
  cursor: pointer;
  background-color: #fff
}

.modal-view .close:focus-visible {
  background-color: #0B2A3B
}

.modal-view.open .close {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 200ms;
  animation-duration: 200ms;
  -webkit-animation-delay: 800ms;
  animation-delay: 800ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: zoomInElastic;
  animation-name: zoomInElastic
}

.modal-view.open .close:hover {
  background-color: #0B2A3B
}

.embed-video {
  width: 100%;
  overflow: hidden
}

.embed-video img {
  width: 100%;
  aspect-ratio: 16/9
}

.programme .embed-video {
  max-width: 520px
}

.embed-video .poster {
  display: block;
  position: relative;
  top: 0;
  left: 0;
  border: none;
  background-image: none;
  text-decoration: none;
  box-shadow: none;
  aspect-ratio: 16/9
}

.embed-video .poster::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1
}

.embed-video .poster::after {
  content: "Play";
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  box-shadow: inset -1px -2px 6px 0px #05141c;
  -webkit-transform-origin: center center;
  transform-origin: center center;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%)
}

.embed-video .poster::before,
.embed-video .poster::after {
  -webkit-transition: all 800ms ease-out 0s;
  transition: all 800ms ease-out 0s
}

.embed-video .poster:hover::before,
.embed-video .poster:hover::after {
  -webkit-transition-duration: 100ms;
  transition-duration: 100ms
}

.embed-video .poster:hover::before {
  background-color: rgba(208, 252, 118, 0.4)
}

.embed-video .poster:hover::after {
  -webkit-transform: scale(1.06) translate(-47%, -47%);
  transform: scale(1.06) translate(-47%, -47%)
}

@media only screen and (min-width: 66em) {
  .embed-video .poster:focus::before {
    background-color: rgba(208, 252, 118, 0.4)
  }

  .embed-video .poster:focus::after {
    color: #0B2A3B;
    box-shadow: 0 0 2px 3pt #FEE7DA
  }
}

.embed-video .video-content {
  background-repeat: no-repeat;
  background-position: left top;
  background-size: 100% auto
}

.modal-view .video-content {
  padding: 1.5rem 1rem 1rem;
  text-align: center;
  line-height: 0
}

.modal-view .video-content .caption {
  font-size: 1.8rem;
  line-height: 2rem
}

@media only screen and (min-width: 39em) {
  .modal-view .video-content .caption {
    padding: 0 8%
  }
}

.modal-view .video-content .video {
  max-width: 100%;
  background-color: transparent;
  -webkit-transition: all 533.3333333333ms cubic-bezier(0, 1.23, 0.37, 1.07) 0s;
  transition: all 533.3333333333ms cubic-bezier(0, 1.23, 0.37, 1.07) 0s
}

.wudu-utc {
  display: none
}

.get-utc .wudu-utc {
  display: block;
  pointer-events: none
}

.get-utc .wudu-utc.nav-open {
  pointer-events: auto
}

.wudu-utc {
  position: fixed;
  right: 0;
  bottom: 0;
  z-index: 105;
  box-sizing: border-box;
  border-top: solid 4px #ff5054;
  padding: 2rem 1rem;
  width: 100%;
  background-color: #FEE7DA;
  text-align: center;
  font-size: 0.92rem;
  line-height: 1.4;
  color: #0B2A3B;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 400ms;
  animation-duration: 400ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeInBelow;
  animation-name: fadeInBelow;
  -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
  -ms-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
  animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
  -webkit-animation-delay: 2400ms;
  animation-delay: 2400ms
}

.wudu-utc p {
  margin: 0 0 1rem
}

.wudu-utc a {
  color: inherit !important
}

.wudu-utc .controls {
  text-align: center
}

.wudu-utc .controls button {
  display: inline-block;
  margin: 0.5rem 0.5rem;
  padding: 0.4rem 0.4rem;
  min-width: 120px;
  font-size: 1rem;
  border: none;
  background-color: #0B2A3B;
  color: #fff
}

.wudu-utc *:last-child {
  margin-bottom: 0
}

.get-utc footer {
  padding-bottom: 22rem
}

@media only screen and (min-width: 66em) {
  .get-utc footer {
    padding-bottom: 16rem
  }
}

@media only screen and (min-width: 39em) {
  .wudu-utc {
    right: 0;
    bottom: 0;
    width: 47%;
    min-width: 340px;
    max-width: 420px
  }

  .no-touch .wudu-utc .controls button {
    -webkit-transition: all 800ms ease-out 0s;
    transition: all 800ms ease-out 0s;
    cursor: pointer
  }

  .no-touch .wudu-utc .controls button:hover {
    -webkit-transition-duration: 200ms;
    transition-duration: 200ms;
    background-color: #66D0C6;
    color: #0B2A3B
  }
}

@media only screen and (min-width: 66em) {
  .wudu-utc {
    right: auto;
    left: 62%;
    bottom: 0
  }
}

wudu-graphics {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
  z-index: 1
}

wudu-graphics>.bounds {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 100%;
  height: 100%;
  z-index: 2
}

graphic-item {
  position: absolute;
  z-index: 2;
  width: 640px;
  height: 640px
}

graphic-item div {
  position: relative;
  top: auto;
  left: auto;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-position: left top;
  background-size: 100% auto;
  -webkit-transform-origin: center center;
  transform-origin: center center
}

wudu-ticker {
  box-sizing: border-box;
  position: fixed;
  top: 57px;
  left: 0;
  right: 0;
  z-index: 104;
  margin: 0 auto;
  padding: 0;
  width: 100%;
  max-width: 2560px;
  height: 32px;
  background-color: #ff5054;
  font-family: "condensed_bold", helvetica, sans-serif;
  color: #fff;
  text-transform: uppercase;
  line-height: 32px;
  cursor: pointer
}

wudu-ticker::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -9px;
  left: 0;
  width: 100%;
  height: 9px;
  background-image: -webkit-linear-gradient(top, rgba(11, 42, 59, 0.7), rgba(11, 42, 59, 0));
  background-image: linear-gradient(to bottom, rgba(11, 42, 59, 0.7), rgba(11, 42, 59, 0));
  z-index: 2;
  opacity: 0.8;
  pointer-events: none
}

@media only screen and (min-width: 39em) {
  wudu-ticker {
    top: 68px
  }
}

@media only screen and (min-width: 66em) {
  wudu-ticker {
    top: 74px
  }
}

wudu-ticker #content {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px)
}

wudu-ticker #bounds {
  overflow: hidden
}

wudu-ticker #tape {
  --tape-x: 0px;
  margin: 0;
  padding: 1px 0 0;
  width: 300%;
  height: 32px;
  overflow: hidden;
  text-align: left;
  will-change: transform
}

@supports(text-wrap: nowrap) {
  wudu-ticker #tape {
    text-wrap: nowrap
  }
}

wudu-ticker #tape>div {
  display: inline
}

wudu-ticker span {
  display: inline;
  vertical-align: sub;
  margin: 0 0.4em;
  color: #66D0C6
}

.js wudu-ticker.run #bounds {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 0s;
  animation-delay: 0s
}

.js wudu-ticker.run #bounds:hover #tape {
  -webkit-animation-play-state: paused;
  animation-play-state: paused
}

.js wudu-ticker.run #tape {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: var(--tape-s);
  animation-duration: var(--tape-s);
  -webkit-animation-timing-function: linear;
  -ms-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: tickerTape;
  animation-name: tickerTape;
  -webkit-animation-delay: 400ms;
  animation-delay: 400ms
}

@media (prefers-reduced-motion) {
  .js wudu-ticker.run #tape {
    -webkit-animation-duration: 20s;
    animation-duration: 20s
  }
}

main.with-header {
  padding-right: 0;
  padding-left: 0
}

main.with-header section {
  padding-top: 0
}

main.with-header section>header:first-child,
main.with-header section div.section7 {
  margin-bottom: 1.2rem
}

@media only screen and (min-width: 66em) {

  main.with-header section>header:first-child,
  main.with-header section div.section7 {
    margin-bottom: 2.4rem
  }
}

section {
  position: relative;
  top: 0;
  left: 0;
  box-sizing: border-box;
  display: block
}

section .top-layer {
  position: relative;
  top: 0;
  left: 0;
  z-index: 100;
  margin: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 9rem
}

section .top-layer h1:only-child,
section .top-layer h2:only-child,
section .top-layer .home .vibe-scene .statement:only-child,
.home .vibe-scene section .top-layer .statement:only-child {
  margin-bottom: 0
}

section .top-layer *:last-child {
  margin-bottom: 0
}

body:not(.home) main::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -9px;
  left: 0;
  width: 100%;
  height: 9px;
  background-image: -webkit-linear-gradient(top, rgba(11, 42, 59, 0.7), rgba(11, 42, 59, 0));
  background-image: linear-gradient(to bottom, rgba(11, 42, 59, 0.7), rgba(11, 42, 59, 0));
  z-index: 2;
  opacity: 0.8;
  pointer-events: none
}

.base-scene {
  position: relative;
  top: 0;
  left: 0;
  padding: 3rem 1rem;
  background-color: #FF757C;
  color: #fff;
  text-align: center
}

.base-scene::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -9px;
  left: 0;
  width: 100%;
  height: 9px;
  background-image: -webkit-linear-gradient(top, rgba(11, 42, 59, 0.7), rgba(11, 42, 59, 0));
  background-image: linear-gradient(to bottom, rgba(11, 42, 59, 0.7), rgba(11, 42, 59, 0));
  z-index: 2;
  opacity: 0.8;
  pointer-events: none
}

@supports(text-wrap: balance) {
  .base-scene {
    text-wrap: balance
  }
}

.base-scene h1,
.base-scene h2,
.base-scene .home .vibe-scene .statement,
.home .vibe-scene .base-scene .statement {
  color: #fff
}

@media only screen and (min-width: 66em) {
  .base-scene {
    padding-top: 5rem;
    padding-bottom: 5rem
  }
}

@media only screen and (min-width: 2560px) {
  .base-scene {
    padding-top: 6rem;
    padding-bottom: 6rem
  }
}

.base-scene>h1,
.base-scene>h2,
.home .vibe-scene .base-scene>.statement,
.base-scene .top-layer>h1,
.base-scene .top-layer>h2,
.base-scene .home .vibe-scene .top-layer>.statement,
.home .vibe-scene .base-scene .top-layer>.statement,
.base-scene .sign-up-content h2,
.base-scene .sign-up-content .home .vibe-scene .statement,
.home .vibe-scene .base-scene .sign-up-content .statement {
  display: inline-block;
  padding: 0.16em 1.7rem 0.08em;
  -webkit-border-radius: .2em;
  border-radius: .2em;
  box-shadow: inset -1px -2px 6px 0px #05141c;
  line-height: 0.9em;
  font-size: 2.8rem;
  font-size: clamp(2.4rem, 6vw, 2.8rem);
  max-width: 92%
}

@media only screen and (min-width: 39em) {

  .base-scene>h1,
  .base-scene>h2,
  .home .vibe-scene .base-scene>.statement,
  .base-scene .top-layer>h1,
  .base-scene .top-layer>h2,
  .base-scene .home .vibe-scene .top-layer>.statement,
  .home .vibe-scene .base-scene .top-layer>.statement,
  .base-scene .sign-up-content h2,
  .base-scene .sign-up-content .home .vibe-scene .statement,
  .home .vibe-scene .base-scene .sign-up-content .statement {
    width: auto
  }
}

.base-scene .statement {
  text-transform: uppercase;
  font-size: 1.6rem;
  line-height: 0.96
}

.base-scene a:not(.button):not(.option-button):not(.image) {
  text-decoration: none;
  background-repeat: no-repeat;
  background-size: 100% 1px;
  background-position: left 89%;
  background-image: -webkit-linear-gradient(top, #fff, #fff);
  background-image: linear-gradient(to bottom, #fff, #fff)
}

.no-touch .base-scene a:not(.button):not(.option-button):not(.image)[href]:hover {
  background-image: -webkit-linear-gradient(top, #ff5054, #ff5054);
  background-image: linear-gradient(to bottom, #ff5054, #ff5054);
  background-size: 100% 3px
}

.base-scene p {
  max-width: 56rem
}

@media only screen and (max-width: 39em) {
  main.with-header section>.base-scene:first-child {
    padding-top: 1.2rem;
    padding-bottom: 1.2rem
  }
}

.home .vibe-scene {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  grid-template-rows: auto;
  grid-auto-rows: max-content;
  align-items: center;
  padding: 0;
  padding-top: 2rem;
  background-color: #0AB4BB;
  text-align: center
}

.home .vibe-scene::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -9px;
  left: 0;
  width: 100%;
  height: 9px;
  background-image: -webkit-linear-gradient(top, rgba(11, 42, 59, 0.7), rgba(11, 42, 59, 0));
  background-image: linear-gradient(to bottom, rgba(11, 42, 59, 0.7), rgba(11, 42, 59, 0));
  z-index: 2;
  opacity: 0.8;
  pointer-events: none
}

@media only screen and (min-width: 39em) {
  .home .vibe-scene {
    padding-top: 2rem;
    padding-bottom: 1rem;
    aspect-ratio: auto
  }
}

@media only screen and (min-width: 66em) {
  .home .vibe-scene {
    padding-top: 3rem;
    padding-bottom: 2rem
  }
}

.home .vibe-scene h1,
.home .vibe-scene h2,
.home .vibe-scene .statement {
  color: #fff;
  margin: 0 auto;
  padding: 0;
  max-width: 520px;
  font-size: 3rem;
  font-size: clamp(2rem, 11vw, 4rem);
  line-height: 0.92;
  filter: drop-shadow(rgba(255, 255, 255, 0.2) 2px 0 0.1em)
}

@supports (text-wrap: balance) {

  .home .vibe-scene h1,
  .home .vibe-scene h2,
  .home .vibe-scene .statement {
    text-wrap: balance
  }
}

@media only screen and (min-width: 66em) {

  .home .vibe-scene h1,
  .home .vibe-scene h2,
  .home .vibe-scene .statement {
    max-width: none
  }
}

.home .vibe-scene figure {
  margin: 0
}

.home .vibe-scene .statement {
  grid-row-start: 3;
  margin-bottom: 1rem
}

@media only screen and (min-width: 39em) {
  .home .vibe-scene .statement {
    max-width: none
  }
}

.home .vibe-scene .statement span {
  display: block
}

@media only screen and (min-width: 39em) {
  .home .vibe-scene .statement span {
    display: inline
  }
}

.home .vibe-scene .button,
.home .vibe-scene .image-grid.image-pair a::after,
.image-grid.image-pair .home .vibe-scene a::after,
.home .vibe-scene .option-button,
.home .vibe-scene .filters a,
.filters .home .vibe-scene a,
.home .vibe-scene .ticket-types a,
.ticket-types .home .vibe-scene a,
.home .vibe-scene .image-buttons a span,
.image-buttons a .home .vibe-scene span,
.home .vibe-scene .instagram-media p a,
.instagram-media p .home .vibe-scene a,
.home .vibe-scene .js .js-user-buttons li a,
.js .js-user-buttons li .home .vibe-scene a,
.home .vibe-scene .news .article-collection article a::after,
.news .article-collection article .home .vibe-scene a::after,
.home .vibe-scene .announcing .article-collection article a::after,
.home .announcing .article-collection article .vibe-scene a::after,
.home .vibe-scene .embed-video .poster::after,
.embed-video .home .vibe-scene .poster::after,
.home .vibe-scene .sign-up .submit input,
.sign-up .submit .home .vibe-scene input {
  background-color: #0B2A3B;
  color: #fff;
  box-shadow: inset -1px -2px 6px 0px #05141c
}

.home .vibe-scene .button:hover,
.home .vibe-scene .image-grid.image-pair a:hover::after,
.image-grid.image-pair .home .vibe-scene a:hover::after,
.home .vibe-scene .option-button:hover,
.home .vibe-scene .filters a:hover,
.filters .home .vibe-scene a:hover,
.home .vibe-scene .ticket-types a:hover,
.ticket-types .home .vibe-scene a:hover,
.home .vibe-scene .image-buttons a span:hover,
.image-buttons a .home .vibe-scene span:hover,
.home .vibe-scene .instagram-media p a:hover,
.instagram-media p .home .vibe-scene a:hover,
.home .vibe-scene .js .js-user-buttons li a:hover,
.js .js-user-buttons li .home .vibe-scene a:hover,
.home .vibe-scene .news .article-collection article a:hover::after,
.news .article-collection article .home .vibe-scene a:hover::after,
.home .vibe-scene .announcing .article-collection article a:hover::after,
.home .announcing .article-collection article .vibe-scene a:hover::after,
.home .vibe-scene .embed-video .poster:hover::after,
.embed-video .home .vibe-scene .poster:hover::after,
.home .vibe-scene .sign-up .submit input:hover,
.sign-up .submit .home .vibe-scene input:hover {
  background-color: #A9EDDD;
  color: #006062
}

.home .vibe-scene.vibe-plus video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0
}

.home.vibe-up .vibe-plus .show-video picture {
  display: none
}

.home.vibe-up .vibe-plus video {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 0s;
  animation-delay: 0s
}

.home .vibe-scene.vibe-plus .promo-background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  will-change: opacity
}

.home.vibe-up .vibe-plus .promo-background {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 0s;
  animation-delay: 0s
}

@media (prefers-reduced-motion: reduce) {
  .home.vibe-up .vibe-plus .promo-background {
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-duration: 3200ms;
    animation-duration: 3200ms;
    -webkit-backface-visibility: hidden;
    -webkit-animation-name: fadeIn;
    animation-name: fadeIn;
    -webkit-animation-delay: 0s;
    animation-delay: 0s
  }
}

.vibe-plus .promo-background {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover
}

.vibe-plus .promo-background[data-view="1"] {
  background-image: url("../resources/promo/small/Wychwood-Festival-vibe-image-2025-1.jpg")
}

.vibe-plus .promo-background[data-view="2"] {
  background-image: url("../resources/promo/small/Wychwood-Festival-vibe-image-2025-2.jpg")
}

.vibe-plus .promo-background[data-view="3"] {
  background-image: url("../resources/promo/small/Wychwood-Festival-vibe-image-2025-3.jpg")
}

.vibe-plus .promo-background[data-view="4"] {
  background-image: url("../resources/promo/small/Wychwood-Festival-vibe-image-2025-4.jpg")
}

.vibe-plus .promo-background[data-view="5"] {
  background-image: url("../resources/promo/small/Wychwood-Festival-vibe-image-2025-5.jpg")
}

.vibe-plus .promo-background[data-view="6"] {
  background-image: url("../resources/promo/small/Wychwood-Festival-vibe-image-2024-5.jpg")
}

.vibe-plus .promo-background[data-view="7"] {
  background-image: url("../resources/promo/small/Wychwood-Festival-vibe-image-2024-4.jpg")
}

@media only screen and (min-width: 39em) {
  .vibe-plus .promo-background[data-view="1"] {
    background-image: url("../resources/promo/medium/Wychwood-Festival-vibe-image-2025-1.jpg")
  }

  .vibe-plus .promo-background[data-view="2"] {
    background-image: url("../resources/promo/medium/Wychwood-Festival-vibe-image-2025-2.jpg")
  }

  .vibe-plus .promo-background[data-view="3"] {
    background-image: url("../resources/promo/medium/Wychwood-Festival-vibe-image-2025-3.jpg")
  }

  .vibe-plus .promo-background[data-view="4"] {
    background-image: url("../resources/promo/medium/Wychwood-Festival-vibe-image-2025-4.jpg")
  }

  .vibe-plus .promo-background[data-view="5"] {
    background-image: url("../resources/promo/medium/Wychwood-Festival-vibe-image-2025-5.jpg")
  }

  .vibe-plus .promo-background[data-view="6"] {
    background-image: url("../resources/promo/medium/Wychwood-Festival-vibe-image-2024-5.jpg")
  }

  .vibe-plus .promo-background[data-view="7"] {
    background-image: url("../resources/promo/medium/Wychwood-Festival-vibe-image-2024-4.jpg")
  }
}

@media only screen and (min-width: 66em) {
  .vibe-plus .promo-background[data-view="1"] {
    background-image: url("../resources/promo/large/Wychwood-Festival-vibe-image-2025-1.jpg")
  }

  .vibe-plus .promo-background[data-view="2"] {
    background-image: url("../resources/promo/large/Wychwood-Festival-vibe-image-2025-2.jpg")
  }

  .vibe-plus .promo-background[data-view="3"] {
    background-image: url("../resources/promo/large/Wychwood-Festival-vibe-image-2025-3.jpg")
  }

  .vibe-plus .promo-background[data-view="4"] {
    background-image: url("../resources/promo/large/Wychwood-Festival-vibe-image-2025-4.jpg")
  }

  .vibe-plus .promo-background[data-view="5"] {
    background-image: url("../resources/promo/large/Wychwood-Festival-vibe-image-2025-5.jpg")
  }

  .vibe-plus .promo-background[data-view="6"] {
    background-image: url("../resources/promo/large/Wychwood-Festival-vibe-image-2024-5.jpg")
  }

  .vibe-plus .promo-background[data-view="7"] {
    background-image: url("../resources/promo/large/Wychwood-Festival-vibe-image-2024-4.jpg")
  }
}

.base-scene.min-scene {
  background-color: #fff;
  color: #ff5054
}

.base-scene.min-scene a:not(.button):not(.option-button):not(.image) {
  text-decoration: none;
  background-repeat: no-repeat;
  background-size: 100% 1px;
  background-position: left 89%;
  background-image: -webkit-linear-gradient(top, #006062, #006062);
  background-image: linear-gradient(to bottom, #006062, #006062)
}

.no-touch .base-scene.min-scene a:not(.button):not(.option-button):not(.image)[href]:hover {
  background-image: -webkit-linear-gradient(top, #ff5054, #ff5054);
  background-image: linear-gradient(to bottom, #ff5054, #ff5054);
  background-size: 100% 3px
}

.base-scene.min-scene>h1,
.base-scene.min-scene>h2,
.home .vibe-scene .base-scene.min-scene>.statement,
.base-scene.min-scene .top-layer h1,
.base-scene.min-scene .top-layer h2,
.base-scene.min-scene .top-layer .home .vibe-scene .statement,
.home .vibe-scene .base-scene.min-scene .top-layer .statement {
  color: #fff;
  background-color: #006062;
  box-shadow: inset -1px -2px 6px 0px #002e2f
}

.base-scene.min-scene .statement {
  color: #ff5054
}

.base-scene.min-scene p {
  padding: 0 1rem;
  color: #0B2A3B
}

.base-scene.min-scene.lazlo {
  z-index: 2
}

.base-scene.min-scene.with-scroller {
  padding: 3rem 0 1rem
}

.wudu26-scene {
  box-sizing: border-box;
  position: relative;
  top: 0;
  left: 0;
  padding: 3rem 1rem;
  background-color: #0AB4BB;
  color: #fff;
  font-size: 1.2rem;
  text-align: center
}

.wudu26-scene::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -9px;
  left: 0;
  width: 100%;
  height: 9px;
  background-image: -webkit-linear-gradient(top, rgba(11, 42, 59, 0.7), rgba(11, 42, 59, 0));
  background-image: linear-gradient(to bottom, rgba(11, 42, 59, 0.7), rgba(11, 42, 59, 0));
  z-index: 2;
  opacity: 0.8;
  pointer-events: none
}

@supports(text-wrap: balance) {
  .wudu26-scene {
    text-wrap: balance
  }
}

.wudu26-scene h1,
.wudu26-scene h2,
.wudu26-scene .home .vibe-scene .statement,
.home .vibe-scene .wudu26-scene .statement {
  display: inline-block;
  margin: 0 auto 0.2em;
  padding: 0;
  line-height: 0.76em;
  font-size: 3.6rem;
  font-size: clamp(3.6rem, 6vw, 4.4rem);
  color: inherit;
  word-break: initial
}

.wudu26-scene p {
  font-size: inherit;
  font-size: clamp(1rem, 6vw, 1.46rem);
  line-height: 1.1em;
  max-width: 56rem
}

.wudu26-scene .button,
.wudu26-scene .image-grid.image-pair a::after,
.image-grid.image-pair .wudu26-scene a::after,
.wudu26-scene .option-button,
.wudu26-scene .filters a,
.filters .wudu26-scene a,
.wudu26-scene .ticket-types a,
.ticket-types .wudu26-scene a,
.wudu26-scene .image-buttons a span,
.image-buttons a .wudu26-scene span,
.wudu26-scene .instagram-media p a,
.instagram-media p .wudu26-scene a,
.wudu26-scene .js .js-user-buttons li a,
.js .js-user-buttons li .wudu26-scene a,
.wudu26-scene .news .article-collection article a::after,
.news .article-collection article .wudu26-scene a::after,
.wudu26-scene .home .announcing .article-collection article a::after,
.home .announcing .article-collection article .wudu26-scene a::after,
.wudu26-scene .embed-video .poster::after,
.embed-video .wudu26-scene .poster::after,
.wudu26-scene .sign-up .submit input,
.sign-up .submit .wudu26-scene input,
.wudu26-scene .submit input {
  background-color: #ff5054;
  box-shadow: inset -1px -2px 6px 0px #7a2628
}

.wudu26-scene .button:hover,
.wudu26-scene .image-grid.image-pair a:hover::after,
.image-grid.image-pair .wudu26-scene a:hover::after,
.wudu26-scene .option-button:hover,
.wudu26-scene .filters a:hover,
.filters .wudu26-scene a:hover,
.wudu26-scene .ticket-types a:hover,
.ticket-types .wudu26-scene a:hover,
.wudu26-scene .image-buttons a span:hover,
.image-buttons a .wudu26-scene span:hover,
.wudu26-scene .instagram-media p a:hover,
.instagram-media p .wudu26-scene a:hover,
.wudu26-scene .js .js-user-buttons li a:hover,
.js .js-user-buttons li .wudu26-scene a:hover,
.wudu26-scene .news .article-collection article a:hover::after,
.news .article-collection article .wudu26-scene a:hover::after,
.wudu26-scene .home .announcing .article-collection article a:hover::after,
.home .announcing .article-collection article .wudu26-scene a:hover::after,
.wudu26-scene .embed-video .poster:hover::after,
.embed-video .wudu26-scene .poster:hover::after,
.wudu26-scene .sign-up .submit input:hover,
.sign-up .submit .wudu26-scene input:hover,
.wudu26-scene .submit input:hover {
  background-color: #0B2A3B;
  box-shadow: inset -1px -2px 6px 0px #05141c;
  color: #fff
}

.wudu26-scene p:last-child>.button,
.wudu26-scene .image-grid.image-pair p:last-child>a::after,
.image-grid.image-pair .wudu26-scene p:last-child>a::after,
.wudu26-scene p:last-child>.option-button,
.wudu26-scene .filters p:last-child>a,
.filters .wudu26-scene p:last-child>a,
.wudu26-scene .ticket-types p:last-child>a,
.ticket-types .wudu26-scene p:last-child>a,
.wudu26-scene .image-buttons a p:last-child>span,
.image-buttons a .wudu26-scene p:last-child>span,
.wudu26-scene .instagram-media p:last-child>a,
.instagram-media .wudu26-scene p:last-child>a,
.wudu26-scene .js .js-user-buttons li p:last-child>a,
.js .js-user-buttons li .wudu26-scene p:last-child>a,
.wudu26-scene .news .article-collection article p:last-child>a::after,
.news .article-collection article .wudu26-scene p:last-child>a::after,
.wudu26-scene .home .announcing .article-collection article p:last-child>a::after,
.home .announcing .article-collection article .wudu26-scene p:last-child>a::after,
.wudu26-scene .embed-video p:last-child>.poster::after,
.embed-video .wudu26-scene p:last-child>.poster::after,
.wudu26-scene .sign-up .submit p:last-child>input,
.sign-up .submit .wudu26-scene p:last-child>input {
  margin-bottom: 0
}

.wudu26-scene.split-view h1,
.wudu26-scene.split-view h2,
.wudu26-scene.split-view .home .vibe-scene .statement,
.home .vibe-scene .wudu26-scene.split-view .statement,
.wudu26-scene.split-view p {
  max-width: 340px
}

@media only screen and (min-width: 39em) {
  .wudu26-scene.split-view {
    padding: 3rem 0
  }

  .wudu26-scene.split-view::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: auto;
    z-index: 0;
    width: 50%;
    height: 100%;
    background-image: url("../resources/backdrop/medium/discover-wychwood-vibe.jpg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-position: left center
  }

  @supports (background-image: image-set(url("../resources/backdrop/medium/discover-wychwood-vibe.jpg") type("image/jpg"))) {
    .wudu26-scene.split-view::before {
      background-image: image-set(url("../resources/backdrop/medium/discover-wychwood-vibe.webp") type("image/webp"), url("../resources/backdrop/medium/discover-wychwood-vibe.jpg") type("image/jpg"))
    }
  }

  .wudu26-scene.split-view .split {
    box-sizing: border-box;
    padding: 0;
    width: 50%
  }
}

@media only screen and (min-width: 66em) {
  .wudu26-scene.split-view {
    padding: 4rem 0
  }

  .wudu26-scene.split-view::before {
    background-image: url("../resources/backdrop/large/discover-wychwood-vibe.jpg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-position: left 45%
  }

  @supports (background-image: image-set(url("../resources/backdrop/large/discover-wychwood-vibe.jpg") type("image/jpg"))) {
    .wudu26-scene.split-view::before {
      background-image: image-set(url("../resources/backdrop/large/discover-wychwood-vibe.webp") type("image/webp"), url("../resources/backdrop/large/discover-wychwood-vibe.jpg") type("image/jpg"))
    }
  }
}

@media only screen and (min-width: 2560px) {
  .wudu26-scene.split-view {
    padding: 7rem 0
  }

  .wudu26-scene.split-view::before {
    background-image: url("../resources/backdrop/large/discover-wychwood-vibe.jpg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-position: left 38%
  }

  @supports (background-image: image-set(url("../resources/backdrop/large/discover-wychwood-vibe.jpg") type("image/jpg"))) {
    .wudu26-scene.split-view::before {
      background-image: image-set(url("../resources/backdrop/large/discover-wychwood-vibe.webp") type("image/webp"), url("../resources/backdrop/large/discover-wychwood-vibe.jpg") type("image/jpg"))
    }
  }
}

.js .wudu26-scene.split-view.watch-view .split,
.js .wudu26-scene.split-view.watch-view::before {
  opacity: 0
}

.js .wudu26-scene.split-view.watch-view.in-view .split {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 200ms;
  animation-delay: 200ms
}

.js .wudu26-scene.split-view.watch-view.in-view::before {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 0s;
  animation-delay: 0s
}

.wudu26-scene.var1-scene blockquote {
  margin: 0 auto;
  text-align: inherit;
  font-family: "heading_extra_black", helvetica, sans-serif;
  text-transform: uppercase;
  font-size: 1.8em;
  font-size: clamp(1.8rem, 6vw, 2.8rem);
  line-height: 0.8em;
  max-width: 480px
}

.wudu26-scene.var1-scene blockquote q::before,
.wudu26-scene.var1-scene blockquote q::after {
  margin: 0;
  line-height: inherit
}

.wudu26-scene.var1-scene blockquote .by-line {
  font-size: 0.6em
}

.wudu26-scene.var1-scene.in-view {
  background-image: url("../resources/backdrop/small/wudu-26-section-back-green.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-size: 140% auto
}

@media only screen and (min-width: 39em) {
  .wudu26-scene.var1-scene.in-view {
    background-image: url("../resources/backdrop/medium/wudu-26-section-back-green.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-position: left 78%
  }
}

@media only screen and (min-width: 66em) {
  .wudu26-scene.var1-scene.in-view {
    padding: 5rem 1rem 4rem;
    background-image: url("../resources/backdrop/large/wudu-26-section-back-green.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }
}

.js .wudu26-scene.var1-scene.watch-view blockquote {
  opacity: 0
}

.js .wudu26-scene.var1-scene.watch-view.in-view blockquote {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 0s;
  animation-delay: 0s
}

.wudu26-scene.var2-scene {
  padding-top: 5rem;
  padding-bottom: 5rem
}

.wudu26-scene.var2-scene h1,
.wudu26-scene.var2-scene h2,
.wudu26-scene.var2-scene .home .vibe-scene .statement,
.home .vibe-scene .wudu26-scene.var2-scene .statement {
  display: inline-block;
  padding: 0.16em 1.9rem 0.08em;
  -webkit-border-radius: .3em;
  border-radius: .3em;
  background-color: #ff5054;
  box-shadow: inset -1px -2px 6px 0px #7a2628;
  line-height: 0.9em;
  font-size: 2.8rem
}

.wudu26-scene.var3-scene {
  padding-top: 5rem;
  padding-bottom: 4rem;
  background-color: #fff
}

.wudu26-scene.var3-scene h1,
.wudu26-scene.var3-scene h2,
.wudu26-scene.var3-scene .home .vibe-scene .statement,
.home .vibe-scene .wudu26-scene.var3-scene .statement,
.wudu26-scene.var3-scene p {
  color: #006062
}

.wudu26-scene.var3-scene picture {
  position: relative;
  top: 0;
  left: 0;
  margin: 0 auto 2rem;
  width: 75%;
  max-width: 320px;
  aspect-ratio: 1;
  -webkit-border-radius: .6em;
  border-radius: .6em
}

.wudu26-scene.var3-scene picture::before {
  content: "";
  position: absolute;
  top: -10%;
  right: -19%;
  width: 50%;
  height: 50%;
  background-repeat: no-repeat;
  background-position: right top;
  background-size: cover
}

.wudu26-scene.var3-scene picture::after {
  content: "";
  position: absolute;
  bottom: -10%;
  left: -17%;
  width: 50%;
  height: 50%;
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: cover
}

.wudu26-scene.var3-scene picture img {
  position: relative;
  z-index: 1
}

.wudu26-scene.var3-scene .content {
  position: relative;
  z-index: 1;
  margin: 0 auto;
  max-width: 320px
}

@media only screen and (min-width: 39em) {
  .wudu26-scene.var3-scene {
    display: flex;
    justify-content: center;
    align-items: center
  }

  .wudu26-scene.var3-scene picture,
  .wudu26-scene.var3-scene .content {
    margin: 0 2%;
    flex: 0 1 42%
  }
}

.js .wudu26-scene.var3-scene.watch-view picture::before,
.js .wudu26-scene.var3-scene.watch-view picture::after {
  opacity: 0
}

.js .wudu26-scene.var3-scene.watch-view.in-view picture::before {
  background-image: url("../resources/graphics/orange-blob-picture-frame.png");
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 880ms;
  animation-duration: 880ms;
  -webkit-animation-delay: 800ms;
  animation-delay: 800ms;
  -webkit-animation-timing-function: cubic-bezier(0.9, 0, 0.13, 1.17);
  -ms-animation-timing-function: cubic-bezier(0.9, 0, 0.13, 1.17);
  animation-timing-function: cubic-bezier(0.9, 0, 0.13, 1.17);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: revealUnderTR;
  animation-name: revealUnderTR
}

.js .wudu26-scene.var3-scene.watch-view.in-view picture::after {
  background-image: url("../resources/graphics/orange-blob-picture-frame.png");
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 880ms;
  animation-duration: 880ms;
  -webkit-animation-delay: 880ms;
  animation-delay: 880ms;
  -webkit-animation-timing-function: cubic-bezier(0.9, 0, 0.13, 1.17);
  -ms-animation-timing-function: cubic-bezier(0.9, 0, 0.13, 1.17);
  animation-timing-function: cubic-bezier(0.9, 0, 0.13, 1.17);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: revealUnderBL;
  animation-name: revealUnderBL
}

@media only screen and (min-width: 66em) {
  .wudu26-scene.var4-scene {
    padding-top: 4rem
  }
}

.wudu26-scene.var4-scene.in-view {
  background-image: url("../resources/backdrop/small/wudu-26-section-back-green2.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover
}

@media only screen and (min-width: 39em) {
  .wudu26-scene.var4-scene.in-view {
    background-image: url("../resources/backdrop/medium/wudu-26-section-back-green2.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }
}

@media only screen and (min-width: 66em) {
  .wudu26-scene.var4-scene.in-view {
    background-image: url("../resources/backdrop/large/wudu-26-section-back-green2.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }
}

.wudu26-scene.var4-scene h1,
.wudu26-scene.var4-scene h2,
.wudu26-scene.var4-scene .home .vibe-scene .statement,
.home .vibe-scene .wudu26-scene.var4-scene .statement {
  display: inline-block;
  padding: 0.16em 1.9rem 0.08em;
  -webkit-border-radius: .3em;
  border-radius: .3em;
  background-color: #ff5054;
  box-shadow: inset -1px -2px 6px 0px #7a2628;
  line-height: 0.9em;
  font-size: 2.8rem
}

.wudu26-scene.var4-scene a {
  text-decoration: none;
  background-repeat: no-repeat;
  background-size: 100% 1px;
  background-position: left 89%;
  background-image: -webkit-linear-gradient(top, #fff, #fff);
  background-image: linear-gradient(to bottom, #fff, #fff)
}

.no-touch .wudu26-scene.var4-scene a[href]:hover {
  background-image: -webkit-linear-gradient(top, #ff5054, #ff5054);
  background-image: linear-gradient(to bottom, #ff5054, #ff5054);
  background-size: 100% 3px
}

.base-scene.var1-scene h1,
.base-scene.var1-scene h2,
.base-scene.var1-scene .home .vibe-scene .statement,
.home .vibe-scene .base-scene.var1-scene .statement,
.base-scene.var2-scene h1,
.base-scene.var2-scene h2,
.base-scene.var2-scene .home .vibe-scene .statement,
.home .vibe-scene .base-scene.var2-scene .statement,
.base-scene.var3-scene h1,
.base-scene.var3-scene h2,
.base-scene.var3-scene .home .vibe-scene .statement,
.home .vibe-scene .base-scene.var3-scene .statement {
  color: #fff;
  background-color: #0AB4BB;
  box-shadow: inset -1px -2px 6px 0px #05565a
}

.base-scene.var4-scene,
.base-scene.var5-scene,
.base-scene.var6-scene,
.base-scene.var7-scene {
  background-color: #006062
}

.base-scene.var4-scene h1,
.base-scene.var4-scene h2,
.base-scene.var4-scene .home .vibe-scene .statement,
.home .vibe-scene .base-scene.var4-scene .statement,
.base-scene.var5-scene h1,
.base-scene.var5-scene h2,
.base-scene.var5-scene .home .vibe-scene .statement,
.home .vibe-scene .base-scene.var5-scene .statement,
.base-scene.var6-scene h1,
.base-scene.var6-scene h2,
.base-scene.var6-scene .home .vibe-scene .statement,
.home .vibe-scene .base-scene.var6-scene .statement,
.base-scene.var7-scene h1,
.base-scene.var7-scene h2,
.base-scene.var7-scene .home .vibe-scene .statement,
.home .vibe-scene .base-scene.var7-scene .statement {
  color: #fff;
  background-color: #ff5054;
  box-shadow: inset -1px -2px 6px 0px #7a2628
}

.base-scene.var6-scene {
  padding-top: 4rem;
  padding-bottom: 3rem
}

.base-scene.var6-scene p {
  font-size: 1.1rem;
  font-size: clamp(1.1rem, 2.2vw, 1.3rem);
  line-height: 1.3em;
  line-height: clamp(1.3em, 2.3vw, 1.5em);
  width: 90%
}

.cover-main main {
  padding-bottom: 0
}

.twentyseven-scene {
  margin: 0;
  padding: 1rem 0 4rem !important;
  background-color: #FDCF60;
  text-align: center;
  text-transform: uppercase;
  font-family: "heading_extra_black", helvetica, sans-serif;
  color: #006062
}

@media only screen and (min-width: 39em) {
  .twentyseven-scene {
    padding-top: 2rem
  }
}

@media only screen and (min-width: 66em) {
  .twentyseven-scene {
    padding-top: 4rem !important
  }
}

.twentyseven-scene h1,
.twentyseven-scene h2,
.twentyseven-scene .home .vibe-scene .statement,
.home .vibe-scene .twentyseven-scene .statement {
  color: #FDCF60
}

.twentyseven-scene .incentive {
  position: relative;
  top: 0;
  left: 0;
  margin: 0 auto 1.5rem;
  max-width: 56rem;
  text-align: center;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(2, 1fr);
  grid-auto-rows: min-content;
  align-items: center;
  align-content: start
}

@media only screen and (min-width: 39em) {
  .twentyseven-scene .incentive {
    grid-template-rows: repeat(1, 1fr);
    align-items: center
  }
}

.twentyseven-scene .incentive>header {
  grid-column: span 1/span 4;
  grid-column-start: 1;
  grid-row-start: 2;
  align-self: center;
  margin: 0.1em 0;
  line-height: 0.84;
  letter-spacing: 1pt
}

@media only screen and (min-width: 39em) {
  .twentyseven-scene .incentive>header {
    margin: 1.6em 0 0
  }
}

@media only screen and (min-width: 66em) {
  .twentyseven-scene .incentive>header {
    letter-spacing: 3pt;
    line-height: 0.64;
    grid-column: span 1/span 4;
    grid-row: span 2/span 2;
    grid-column-start: 1;
    grid-row-start: 1
  }
}

.twentyseven-scene .incentive>header>h1 {
  margin-bottom: 1rem;
  line-height: inherit;
  font-size: clamp(1rem, 12vw, 4.6rem);
  color: #fff;
  font-family: "poster_bold", "heading_extra_black", helvetica, sans-serif;
  letter-spacing: inherit
}

@media only screen and (max-width: 66em) {
  .twentyseven-scene .incentive>header>h1 span {
    display: block
  }
}

.twentyseven-scene .incentive .when {
  display: inline-block;
  font-family: "poster_bold", "heading_extra_black", helvetica, sans-serif;
  color: #FDCF60;
  line-height: inherit;
  font-size: clamp(1rem, 12vw, 4.6rem)
}

.twentyseven-scene .incentive .when sub {
  vertical-align: baseline;
  font-size: 0.7em;
  letter-spacing: 2pt
}

.twentyseven-scene .incentive .when sup {
  vertical-align: super;
  position: relative;
  top: 0;
  left: 0;
  font-size: 0.6em;
  letter-spacing: 2pt
}

@media only screen and (max-width: 66em) {
  .twentyseven-scene .incentive .when span {
    display: block
  }
}

.twentyseven-scene .incentive .twentieth-badge {
  grid-column: span 2/span 2;
  grid-column-start: 1;
  grid-row-start: 1
}

@media only screen and (min-width: 39em) {
  .twentyseven-scene .incentive .twentieth-badge {
    grid-column: auto;
    grid-column-start: 1;
    justify-self: end
  }
}

.twentyseven-scene .incentive .locked-badge {
  grid-column: span 1/span 4;
  grid-column-start: 1;
  grid-row-start: 1
}

@media only screen and (min-width: 66em) {
  .twentyseven-scene .incentive .locked-badge {
    grid-column: auto;
    grid-column-start: 4;
    justify-self: start
  }
}

@media only screen and (min-width: 66em) {
  .twentyseven-scene .incentive .locked-badge {
    position: absolute;
    right: -82%;
    top: -24px
  }
}

.twentyseven-scene .early-bird-cta {
  display: none
}

@media only screen and (min-width: 66em) {
  .twentyseven-scene .early-bird-cta {
    display: block;
    margin: 2em auto 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    max-width: 700px
  }

  .twentyseven-scene .early-bird-cta figure {
    width: 66%;
    margin: 0
  }

  .twentyseven-scene .early-bird-cta .statement {
    font-size: 2.7rem;
    line-height: 1.8rem
  }

  .twentyseven-scene .early-bird-cta .statement sup {
    font-size: 0.5em
  }
}

.twentyseven-scene p:last-child {
  margin-bottom: 0
}

.twentyseven-scene .statement {
  font-family: inherit;
  font-size: 2.4em;
  color: #fff
}

@media only screen and (min-width: 66em) {
  .twentyseven-scene .statement {
    font-size: 2.7em
  }
}

@supports(text-wrap: balance) {
  .twentyseven-scene .statement {
    text-wrap: balance
  }
}

.twentyseven-scene .statement sup {
  vertical-align: super;
  font-size: 0.6em
}

.home .twentyseven-scene .incentive {
  display: block
}

figure.date-sign img {
  width: 80%;
  max-width: 340px
}

.twentyseven-scene blockquote {
  margin: 1rem auto;
  padding: 0 1rem;
  text-align: center;
  font-size: 1.4rem;
  text-transform: initial;
  font-family: "body_bold_italic", helvetica, sans-serif;
  max-width: 320px
}

.twentyseven-scene blockquote q::before,
.twentyseven-scene blockquote q::after {
  font-size: 2.4rem
}

.twentyseven-scene blockquote .by-line {
  margin: 0 auto;
  text-align: center
}

.twentyseven-scene .booking-options {
  margin: 0 auto 2rem
}

@media only screen and (min-width: 39em) {
  .twentyseven-scene .booking-options {
    margin-bottom: 3rem;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: stretch;
    max-width: 56rem
  }
}

@media only screen and (min-width: 66em) {
  .twentyseven-scene .booking-options {
    margin-bottom: .5rem
  }
}

.twentyseven-scene .booking-options article {
  position: relative;
  margin: 0;
  padding: 1rem 0;
  background-color: transparent;
  color: #fff;
  font-size: 1.6rem;
  font-size: clamp(1.6rem, 7vw, 2rem)
}

@supports(text-wrap: balance) {
  .twentyseven-scene .booking-options article {
    text-wrap: balance
  }
}

.twentyseven-scene .booking-options article:last-of-type {
  margin-bottom: 0
}

@media only screen and (min-width: 39em) {
  .twentyseven-scene .booking-options article {
    flex: 0 0 50%;
    display: flex;
    flex-direction: column;
    justify-content: space-between
  }
}

.twentyseven-scene .booking-options article:nth-child(n+2)::before {
  content: "";
  display: inline-block;
  margin: 0 auto 1.6em;
  background-color: #FDCF60;
  height: 2px;
  width: 60%
}

@media only screen and (min-width: 39em) {
  .twentyseven-scene .booking-options article:nth-child(n+2)::before {
    margin: 0;
    position: absolute;
    top: 50%;
    left: 0;
    height: 50%;
    width: 3px;
    transform: translateY(-50%);
    -webkit-border-radius: .6em;
    border-radius: .6em
  }
}

.twentyseven-scene .booking-options article header {
  margin: 0 0 0.2em
}

.twentyseven-scene .booking-options article header p {
  margin: 0 auto;
  font-size: 0.9em;
  letter-spacing: 1.5pt
}

.twentyseven-scene .booking-options article header h2,
.twentyseven-scene .booking-options article header .home .vibe-scene .statement,
.home .vibe-scene .twentyseven-scene .booking-options article header .statement {
  margin: 0;
  padding: 0;
  font-size: 1.7em
}

.twentyseven-scene .booking-options article p {
  margin-bottom: .5rem;
  font-size: 0.7em;
  line-height: 1.1
}

@media only screen and (min-width: 39em) {
  .twentyseven-scene .booking-options article p {
    max-width: 320px
  }
}

@supports not (text-wrap: balance) {
  .twentyseven-scene .booking-options article p {
    max-width: 290px
  }
}

.twentyseven-scene .booking-options article p sub {
  vertical-align: baseline;
  font-size: 0.7em
}

.twentyseven-scene .booking-options article p sup {
  vertical-align: top;
  position: relative;
  top: 2px;
  left: 0;
  font-size: 0.6em
}

.twentyseven-scene .booking-options article cite {
  font-family: inherit;
  font-style: normal
}

.twentyseven-scene .button,
.twentyseven-scene .image-grid.image-pair a::after,
.image-grid.image-pair .twentyseven-scene a::after,
.twentyseven-scene .option-button,
.twentyseven-scene .filters a,
.filters .twentyseven-scene a,
.twentyseven-scene .ticket-types a,
.ticket-types .twentyseven-scene a,
.twentyseven-scene .image-buttons a span,
.image-buttons a .twentyseven-scene span,
.twentyseven-scene .instagram-media p a,
.instagram-media p .twentyseven-scene a,
.twentyseven-scene .js .js-user-buttons li a,
.js .js-user-buttons li .twentyseven-scene a,
.twentyseven-scene .news .article-collection article a::after,
.news .article-collection article .twentyseven-scene a::after,
.twentyseven-scene .home .announcing .article-collection article a::after,
.home .announcing .article-collection article .twentyseven-scene a::after,
.twentyseven-scene .embed-video .poster::after,
.embed-video .twentyseven-scene .poster::after,
.twentyseven-scene .sign-up .submit input,
.sign-up .submit .twentyseven-scene input,
.twentyseven-scene .booking-options article .button,
.twentyseven-scene .booking-options article .image-grid.image-pair a::after,
.image-grid.image-pair .twentyseven-scene .booking-options article a::after,
.twentyseven-scene .booking-options article .option-button,
.twentyseven-scene .booking-options article .filters a,
.filters .twentyseven-scene .booking-options article a,
.twentyseven-scene .booking-options article .ticket-types a,
.ticket-types .twentyseven-scene .booking-options article a,
.twentyseven-scene .booking-options article .image-buttons a span,
.image-buttons a .twentyseven-scene .booking-options article span,
.twentyseven-scene .booking-options article .instagram-media p a,
.instagram-media p .twentyseven-scene .booking-options article a,
.twentyseven-scene .booking-options article .js .js-user-buttons li a,
.js .js-user-buttons li .twentyseven-scene .booking-options article a,
.twentyseven-scene .booking-options .news .article-collection article a::after,
.news .article-collection .twentyseven-scene .booking-options article a::after,
.twentyseven-scene .booking-options .home .announcing .article-collection article a::after,
.home .announcing .article-collection .twentyseven-scene .booking-options article a::after,
.twentyseven-scene .booking-options article .embed-video .poster::after,
.embed-video .twentyseven-scene .booking-options article .poster::after,
.twentyseven-scene .booking-options article .sign-up .submit input,
.sign-up .submit .twentyseven-scene .booking-options article input {
  margin: 0.2em auto;
  background-color: #ff5054;
  box-shadow: none
}

.twentyseven-scene .button:hover,
.twentyseven-scene .image-grid.image-pair a:hover::after,
.image-grid.image-pair .twentyseven-scene a:hover::after,
.twentyseven-scene .option-button:hover,
.twentyseven-scene .filters a:hover,
.filters .twentyseven-scene a:hover,
.twentyseven-scene .ticket-types a:hover,
.ticket-types .twentyseven-scene a:hover,
.twentyseven-scene .image-buttons a span:hover,
.image-buttons a .twentyseven-scene span:hover,
.twentyseven-scene .instagram-media p a:hover,
.instagram-media p .twentyseven-scene a:hover,
.twentyseven-scene .js .js-user-buttons li a:hover,
.js .js-user-buttons li .twentyseven-scene a:hover,
.twentyseven-scene .news .article-collection article a:hover::after,
.news .article-collection article .twentyseven-scene a:hover::after,
.twentyseven-scene .home .announcing .article-collection article a:hover::after,
.home .announcing .article-collection article .twentyseven-scene a:hover::after,
.twentyseven-scene .embed-video .poster:hover::after,
.embed-video .twentyseven-scene .poster:hover::after,
.twentyseven-scene .sign-up .submit input:hover,
.sign-up .submit .twentyseven-scene input:hover,
.twentyseven-scene .booking-options article .button:hover,
.twentyseven-scene .booking-options article .image-grid.image-pair a:hover::after,
.image-grid.image-pair .twentyseven-scene .booking-options article a:hover::after,
.twentyseven-scene .booking-options article .option-button:hover,
.twentyseven-scene .booking-options article .filters a:hover,
.filters .twentyseven-scene .booking-options article a:hover,
.twentyseven-scene .booking-options article .ticket-types a:hover,
.ticket-types .twentyseven-scene .booking-options article a:hover,
.twentyseven-scene .booking-options article .image-buttons a span:hover,
.image-buttons a .twentyseven-scene .booking-options article span:hover,
.twentyseven-scene .booking-options article .instagram-media p a:hover,
.instagram-media p .twentyseven-scene .booking-options article a:hover,
.twentyseven-scene .booking-options article .js .js-user-buttons li a:hover,
.js .js-user-buttons li .twentyseven-scene .booking-options article a:hover,
.twentyseven-scene .booking-options .news .article-collection article a:hover::after,
.news .article-collection .twentyseven-scene .booking-options article a:hover::after,
.twentyseven-scene .booking-options .home .announcing .article-collection article a:hover::after,
.home .announcing .article-collection .twentyseven-scene .booking-options article a:hover::after,
.twentyseven-scene .booking-options article .embed-video .poster:hover::after,
.embed-video .twentyseven-scene .booking-options article .poster:hover::after,
.twentyseven-scene .booking-options article .sign-up .submit input:hover,
.sign-up .submit .twentyseven-scene .booking-options article input:hover {
  background-color: #0B2A3B !important;
  color: #ff5054 !important;
  background-image: none !important
}

.home .twentysix-scene {
  padding: 2rem 0 1rem
}

.home .twentysix-scene::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -9px;
  left: 0;
  width: 100%;
  height: 9px;
  background-image: -webkit-linear-gradient(top, rgba(11, 42, 59, 0.7), rgba(11, 42, 59, 0));
  background-image: linear-gradient(to bottom, rgba(11, 42, 59, 0.7), rgba(11, 42, 59, 0));
  z-index: 2;
  opacity: 0.8;
  pointer-events: none
}

@media only screen and (min-width: 66em) {
  .home .twentysix-scene {
    padding: 4rem 0 3rem
  }

  .home .twentysix-scene .button,
  .home .twentysix-scene .image-grid.image-pair a::after,
  .image-grid.image-pair .home .twentysix-scene a::after,
  .home .twentysix-scene .option-button,
  .home .twentysix-scene .filters a,
  .filters .home .twentysix-scene a,
  .home .twentysix-scene .ticket-types a,
  .ticket-types .home .twentysix-scene a,
  .home .twentysix-scene .image-buttons a span,
  .image-buttons a .home .twentysix-scene span,
  .home .twentysix-scene .instagram-media p a,
  .instagram-media p .home .twentysix-scene a,
  .home .twentysix-scene .js .js-user-buttons li a,
  .js .js-user-buttons li .home .twentysix-scene a,
  .home .twentysix-scene .news .article-collection article a::after,
  .news .article-collection article .home .twentysix-scene a::after,
  .home .twentysix-scene .announcing .article-collection article a::after,
  .home .announcing .article-collection article .twentysix-scene a::after,
  .home .twentysix-scene .embed-video .poster::after,
  .embed-video .home .twentysix-scene .poster::after,
  .home .twentysix-scene .sign-up .submit input,
  .sign-up .submit .home .twentysix-scene input {
    margin: 0.6em 0 0
  }

  .home .twentysix-scene .button:hover,
  .home .twentysix-scene .image-grid.image-pair a:hover::after,
  .image-grid.image-pair .home .twentysix-scene a:hover::after,
  .home .twentysix-scene .option-button:hover,
  .home .twentysix-scene .filters a:hover,
  .filters .home .twentysix-scene a:hover,
  .home .twentysix-scene .ticket-types a:hover,
  .ticket-types .home .twentysix-scene a:hover,
  .home .twentysix-scene .image-buttons a span:hover,
  .image-buttons a .home .twentysix-scene span:hover,
  .home .twentysix-scene .instagram-media p a:hover,
  .instagram-media p .home .twentysix-scene a:hover,
  .home .twentysix-scene .js .js-user-buttons li a:hover,
  .js .js-user-buttons li .home .twentysix-scene a:hover,
  .home .twentysix-scene .news .article-collection article a:hover::after,
  .news .article-collection article .home .twentysix-scene a:hover::after,
  .home .twentysix-scene .announcing .article-collection article a:hover::after,
  .home .announcing .article-collection article .twentysix-scene a:hover::after,
  .home .twentysix-scene .embed-video .poster:hover::after,
  .embed-video .home .twentysix-scene .poster:hover::after,
  .home .twentysix-scene .sign-up .submit input:hover,
  .sign-up .submit .home .twentysix-scene input:hover {
    background-color: #66D0C6
  }
}

.home .vibe-scene {
  padding: 6rem 0
}

@media only screen and (min-width: 66em) {
  .home .vibe-scene {
    padding-bottom: 2rem
  }
}

@media only screen and (min-width: 39em) {

  .home .vibe-scene .button,
  .home .vibe-scene .image-grid.image-pair a::after,
  .image-grid.image-pair .home .vibe-scene a::after,
  .home .vibe-scene .option-button,
  .home .vibe-scene .filters a,
  .filters .home .vibe-scene a,
  .home .vibe-scene .ticket-types a,
  .ticket-types .home .vibe-scene a,
  .home .vibe-scene .image-buttons a span,
  .image-buttons a .home .vibe-scene span,
  .home .vibe-scene .instagram-media p a,
  .instagram-media p .home .vibe-scene a,
  .home .vibe-scene .js .js-user-buttons li a,
  .js .js-user-buttons li .home .vibe-scene a,
  .home .vibe-scene .news .article-collection article a::after,
  .news .article-collection article .home .vibe-scene a::after,
  .home .vibe-scene .announcing .article-collection article a::after,
  .home .announcing .article-collection article .vibe-scene a::after,
  .home .vibe-scene .embed-video .poster::after,
  .embed-video .home .vibe-scene .poster::after,
  .home .vibe-scene .sign-up .submit input,
  .sign-up .submit .home .vibe-scene input {
    font-size: 2.2rem
  }
}

@media only screen and (min-width: 66em) {

  .home .vibe-scene .button,
  .home .vibe-scene .image-grid.image-pair a::after,
  .image-grid.image-pair .home .vibe-scene a::after,
  .home .vibe-scene .option-button,
  .home .vibe-scene .filters a,
  .filters .home .vibe-scene a,
  .home .vibe-scene .ticket-types a,
  .ticket-types .home .vibe-scene a,
  .home .vibe-scene .image-buttons a span,
  .image-buttons a .home .vibe-scene span,
  .home .vibe-scene .instagram-media p a,
  .instagram-media p .home .vibe-scene a,
  .home .vibe-scene .js .js-user-buttons li a,
  .js .js-user-buttons li .home .vibe-scene a,
  .home .vibe-scene .news .article-collection article a::after,
  .news .article-collection article .home .vibe-scene a::after,
  .home .vibe-scene .announcing .article-collection article a::after,
  .home .announcing .article-collection article .vibe-scene a::after,
  .home .vibe-scene .embed-video .poster::after,
  .embed-video .home .vibe-scene .poster::after,
  .home .vibe-scene .sign-up .submit input,
  .sign-up .submit .home .vibe-scene input {
    font-size: 2.8rem
  }
}

@media only screen and (max-width: 39em) {
  .vibe-scene.var-two.vibe-plus {
    padding-top: 8rem
  }
}

.vibe-scene.var-two .award-winner {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 103;
  left: auto;
  width: 100px;
  width: clamp(100px, 18vw, 240px);
  height: 100px;
  height: clamp(100px, 18vw, 240px)
}

@media only screen and (min-width: 39em) {
  .vibe-scene.var-two .award-winner {
    right: 2rem
  }
}

@media only screen and (min-width: 66em) {
  .vibe-scene.var-two .award-winner {
    top: 3rem;
    right: 3rem
  }
}

.vibe-scene.var-two .award-winner img {
  display: block;
  width: 100%;
  height: auto
}

.js .vibe-scene.var-two .award-winner {
  opacity: 0
}

.js .vibe-scene.var-two .award-winner.pinned {
  opacity: 1
}

.js .vibe-up .vibe-scene.var-two .award-winner.start {
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-duration: 600ms;
  animation-duration: 600ms;
  -webkit-animation-delay: 1600ms;
  animation-delay: 1600ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: animateBadgeTablet;
  animation-name: animateBadgeTablet
}

.js .vibe-up .vibe-scene.var-two .award-winner.pulse {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-direction: forwards;
  animation-direction: forwards;
  -webkit-animation-duration: 4s;
  animation-duration: 4s;
  -webkit-animation-delay: 1600ms;
  animation-delay: 1600ms;
  -webkit-animation-timing-function: cubic-bezier(.45, .09, .02, 1);
  -ms-animation-timing-function: cubic-bezier(.45, .09, .02, 1);
  animation-timing-function: cubic-bezier(.45, .09, .02, 1);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: awardBadgePulse;
  animation-name: awardBadgePulse
}

.vibe-scene.twelvedays {
  background-color: #ff5054
}

.vibe-scene.twelvedays .promo-content {
  width: 66vw;
  max-width: 370px
}

@media only screen and (min-width: 39em) {
  .vibe-scene.twelvedays .promo-content {
    width: 36vw
  }
}

@media only screen and (min-width: 66em) {
  .vibe-scene.twelvedays .promo-content {
    width: 26vw
  }
}

.vibe-scene.twelvedays .twelve-days-card {
  position: relative;
  top: 0;
  left: 0;
  aspect-ratio: 499/688;
  background-image: url("../resources/graphics/12-days-card-and-words.png");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover
}

.vibe-scene.twelvedays .twelve-days-card::before {
  content: "";
  display: block;
  position: relative;
  top: -6.6vw;
  left: 0;
  width: 100%;
  height: 12%;
  background-image: url("../resources/graphics/gold-star.svg");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: auto 100%;
  filter: drop-shadow(0px 2px 8px #0B2A3B)
}

@media only screen and (min-width: 39em) {
  .vibe-scene.twelvedays .twelve-days-card::before {
    top: -3vw
  }
}

@media only screen and (min-width: 66em) {
  .vibe-scene.twelvedays .twelve-days-card::before {
    top: -1.8vw
  }
}

.vibe-scene.twelvedays .twelve-days-stamp {
  position: relative;
  top: 9.2vw;
  left: -8%;
  width: 116%;
  aspect-ratio: 568/286;
  background-image: url("../resources/graphics/12-days-stamp.svg");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
  filter: drop-shadow(2px 2px 4px #0B2A3B)
}

@media only screen and (min-width: 39em) {
  .vibe-scene.twelvedays .twelve-days-stamp {
    top: 4.7vw
  }
}

@media only screen and (min-width: 66em) {
  .vibe-scene.twelvedays .twelve-days-stamp {
    top: 2.9vw
  }
}

.vibe-scene.twelvedays p {
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  max-width: none;
  transform: translateY(50%)
}

@media only screen and (min-width: 66em) {
  .vibe-scene.twelvedays p {
    bottom: -12px
  }
}

.home .vibe-scene.var-two.twelvedays .button,
.home .vibe-scene.var-two.twelvedays .image-grid.image-pair a::after,
.image-grid.image-pair .home .vibe-scene.var-two.twelvedays a::after,
.home .vibe-scene.var-two.twelvedays .option-button,
.home .vibe-scene.var-two.twelvedays .filters a,
.filters .home .vibe-scene.var-two.twelvedays a,
.home .vibe-scene.var-two.twelvedays .ticket-types a,
.ticket-types .home .vibe-scene.var-two.twelvedays a,
.home .vibe-scene.var-two.twelvedays .image-buttons a span,
.image-buttons a .home .vibe-scene.var-two.twelvedays span,
.home .vibe-scene.var-two.twelvedays .instagram-media p a,
.instagram-media p .home .vibe-scene.var-two.twelvedays a,
.home .vibe-scene.var-two.twelvedays .js .js-user-buttons li a,
.js .js-user-buttons li .home .vibe-scene.var-two.twelvedays a,
.home .vibe-scene.var-two.twelvedays .news .article-collection article a::after,
.news .article-collection article .home .vibe-scene.var-two.twelvedays a::after,
.home .vibe-scene.var-two.twelvedays .announcing .article-collection article a::after,
.home .announcing .article-collection article .vibe-scene.var-two.twelvedays a::after,
.home .vibe-scene.var-two.twelvedays .embed-video .poster::after,
.embed-video .home .vibe-scene.var-two.twelvedays .poster::after,
.home .vibe-scene.var-two.twelvedays .sign-up .submit input,
.sign-up .submit .home .vibe-scene.var-two.twelvedays input {
  background-color: #ff5054;
  letter-spacing: -0.4pt
}

.home .vibe-scene.var-two.twelvedays .button:hover,
.home .vibe-scene.var-two.twelvedays .image-grid.image-pair a:hover::after,
.image-grid.image-pair .home .vibe-scene.var-two.twelvedays a:hover::after,
.home .vibe-scene.var-two.twelvedays .option-button:hover,
.home .vibe-scene.var-two.twelvedays .filters a:hover,
.filters .home .vibe-scene.var-two.twelvedays a:hover,
.home .vibe-scene.var-two.twelvedays .ticket-types a:hover,
.ticket-types .home .vibe-scene.var-two.twelvedays a:hover,
.home .vibe-scene.var-two.twelvedays .image-buttons a span:hover,
.image-buttons a .home .vibe-scene.var-two.twelvedays span:hover,
.home .vibe-scene.var-two.twelvedays .instagram-media p a:hover,
.instagram-media p .home .vibe-scene.var-two.twelvedays a:hover,
.home .vibe-scene.var-two.twelvedays .js .js-user-buttons li a:hover,
.js .js-user-buttons li .home .vibe-scene.var-two.twelvedays a:hover,
.home .vibe-scene.var-two.twelvedays .news .article-collection article a:hover::after,
.news .article-collection article .home .vibe-scene.var-two.twelvedays a:hover::after,
.home .vibe-scene.var-two.twelvedays .announcing .article-collection article a:hover::after,
.home .announcing .article-collection article .vibe-scene.var-two.twelvedays a:hover::after,
.home .vibe-scene.var-two.twelvedays .embed-video .poster:hover::after,
.embed-video .home .vibe-scene.var-two.twelvedays .poster:hover::after,
.home .vibe-scene.var-two.twelvedays .sign-up .submit input:hover,
.sign-up .submit .home .vibe-scene.var-two.twelvedays input:hover {
  background-color: #0B2A3B
}

@media only screen and (min-width: 66em) {

  .home .vibe-scene.var-two.twelvedays .button,
  .home .vibe-scene.var-two.twelvedays .image-grid.image-pair a::after,
  .image-grid.image-pair .home .vibe-scene.var-two.twelvedays a::after,
  .home .vibe-scene.var-two.twelvedays .option-button,
  .home .vibe-scene.var-two.twelvedays .filters a,
  .filters .home .vibe-scene.var-two.twelvedays a,
  .home .vibe-scene.var-two.twelvedays .ticket-types a,
  .ticket-types .home .vibe-scene.var-two.twelvedays a,
  .home .vibe-scene.var-two.twelvedays .image-buttons a span,
  .image-buttons a .home .vibe-scene.var-two.twelvedays span,
  .home .vibe-scene.var-two.twelvedays .instagram-media p a,
  .instagram-media p .home .vibe-scene.var-two.twelvedays a,
  .home .vibe-scene.var-two.twelvedays .js .js-user-buttons li a,
  .js .js-user-buttons li .home .vibe-scene.var-two.twelvedays a,
  .home .vibe-scene.var-two.twelvedays .news .article-collection article a::after,
  .news .article-collection article .home .vibe-scene.var-two.twelvedays a::after,
  .home .vibe-scene.var-two.twelvedays .announcing .article-collection article a::after,
  .home .announcing .article-collection article .vibe-scene.var-two.twelvedays a::after,
  .home .vibe-scene.var-two.twelvedays .embed-video .poster::after,
  .embed-video .home .vibe-scene.var-two.twelvedays .poster::after,
  .home .vibe-scene.var-two.twelvedays .sign-up .submit input,
  .sign-up .submit .home .vibe-scene.var-two.twelvedays input {
    font-size: 2.6rem
  }
}

.js .vibe-up .twelvedays .promo-content .twelve-days-card {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 200ms;
  animation-delay: 200ms
}

.js .vibe-up .twelvedays .promo-content .twelve-days-stamp {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 200ms;
  animation-duration: 200ms;
  -webkit-animation-delay: 800ms;
  animation-delay: 800ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: zoomInElastic;
  animation-name: zoomInElastic
}

.js .vibe-up .twelvedays .promo-content .twelve-days-card::before {
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-duration: 600ms;
  animation-duration: 600ms;
  -webkit-animation-delay: 1200ms;
  animation-delay: 1200ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: animateBadgeTablet;
  animation-name: animateBadgeTablet
}

.js .vibe-scene .twelve-days-card::before {
  opacity: 0
}

.twentieth-scene {
  padding: 6rem 1rem 3rem !important;
  background-color: #A9EDDD;
  text-align: center;
  padding-top: clamp(6rem, 14vw, 9rem) !important
}

@media only screen and (min-width: 66em) {
  .twentieth-scene {
    padding-bottom: 4rem
  }
}

.twentieth-scene h1 {
  margin-bottom: 2rem;
  color: #006062;
  font-size: 4rem;
  font-size: clamp(4rem, 14vw, 5.6rem);
  letter-spacing: -0.6pt
}

.twentieth-scene::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 101;
  width: clamp(160px, 30vw, 270px);
  height: 72px;
  transform: translate(-50%, 2rem);
  background-image: url("../resources/graphics/20th-edition-banner.svg");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: contain
}

.base-scene20 {
  position: relative;
  top: 0;
  left: 0;
  padding: 3rem 1rem;
  background-color: #0AB4BB;
  color: #fff;
  text-align: center
}

.base-scene20::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -9px;
  left: 0;
  width: 100%;
  height: 9px;
  background-image: -webkit-linear-gradient(top, rgba(11, 42, 59, 0.7), rgba(11, 42, 59, 0));
  background-image: linear-gradient(to bottom, rgba(11, 42, 59, 0.7), rgba(11, 42, 59, 0));
  z-index: 2;
  opacity: 0.8;
  pointer-events: none
}

.base-scene20 h1,
.base-scene20 h2,
.base-scene20 .home .vibe-scene .statement,
.home .vibe-scene .base-scene20 .statement {
  color: #fff;
  background-color: #006062
}

@media only screen and (min-width: 66em) {
  .base-scene20 {
    padding-top: 5rem;
    padding-bottom: 5rem
  }
}

@media only screen and (min-width: 2560px) {
  .base-scene20 {
    padding-top: 6rem;
    padding-bottom: 6rem
  }
}

.base-scene20>h1,
.base-scene20>h2,
.home .vibe-scene .base-scene20>.statement,
.base-scene20 .top-layer>h1,
.base-scene20 .top-layer>h2,
.base-scene20 .home .vibe-scene .top-layer>.statement,
.home .vibe-scene .base-scene20 .top-layer>.statement,
.base-scene20 .sign-up-content h2,
.base-scene20 .sign-up-content .home .vibe-scene .statement,
.home .vibe-scene .base-scene20 .sign-up-content .statement {
  display: inline-block;
  padding: 0.16em 1.9rem 0.08em;
  -webkit-border-radius: .4em;
  border-radius: .4em;
  box-shadow: inset -1px -2px 6px 0px #05141c;
  line-height: 0.9em;
  font-size: 2.8rem
}

.base-scene20 .statement {
  text-transform: uppercase;
  font-size: 1.8rem;
  line-height: 0.96;
  max-width: 320px
}

@media only screen and (min-width: 66em) {
  .base-scene20 .statement {
    max-width: 480px
  }
}

.home .memories {
  padding: 5rem 0 3rem
}

@media only screen and (min-width: 39em) {
  .home .memories {
    padding: 6rem 0 4rem
  }
}

@media only screen and (min-width: 66em) {
  .home .memories {
    padding: 12rem 0 7rem
  }
}

.home .memories h1 {
  margin: 0 0 .5rem;
  padding-top: 100px;
  padding-top: clamp(100px, 20vw, 200px);
  background-image: url("../resources/graphics/Wychwood-Festival-2026-logo-badge.png");
  height: 0;
  overflow: hidden;
  box-shadow: none;
  border-radius: 0;
  background-color: transparent;
  line-height: 1.1;
  background-repeat: no-repeat;
  background-position: center;
  background-size: auto 100%;
  width: 96% !important;
  filter: drop-shadow(0 2px 4px #0B2A3B)
}

@media only screen and (min-width: 66em) {
  .home .memories h1 {
    padding-top: 200px
  }
}

.home .memories .button,
.home .memories .image-grid.image-pair a::after,
.image-grid.image-pair .home .memories a::after,
.home .memories .option-button,
.home .memories .filters a,
.filters .home .memories a,
.home .memories .ticket-types a,
.ticket-types .home .memories a,
.home .memories .image-buttons a span,
.image-buttons a .home .memories span,
.home .memories .instagram-media p a,
.instagram-media p .home .memories a,
.home .memories .js .js-user-buttons li a,
.js .js-user-buttons li .home .memories a,
.home .memories .news .article-collection article a::after,
.news .article-collection article .home .memories a::after,
.home .memories .announcing .article-collection article a::after,
.home .announcing .article-collection article .memories a::after,
.home .memories .embed-video .poster::after,
.embed-video .home .memories .poster::after,
.home .memories .sign-up .submit input,
.sign-up .submit .home .memories input {
  background-color: #66D0C6;
  color: #fff;
  filter: drop-shadow(0 2px 2px #0B2A3B)
}

.home .memories .button:hover,
.home .memories .image-grid.image-pair a:hover::after,
.image-grid.image-pair .home .memories a:hover::after,
.home .memories .option-button:hover,
.home .memories .filters a:hover,
.filters .home .memories a:hover,
.home .memories .ticket-types a:hover,
.ticket-types .home .memories a:hover,
.home .memories .image-buttons a span:hover,
.image-buttons a .home .memories span:hover,
.home .memories .instagram-media p a:hover,
.instagram-media p .home .memories a:hover,
.home .memories .js .js-user-buttons li a:hover,
.js .js-user-buttons li .home .memories a:hover,
.home .memories .news .article-collection article a:hover::after,
.news .article-collection article .home .memories a:hover::after,
.home .memories .announcing .article-collection article a:hover::after,
.home .announcing .article-collection article .memories a:hover::after,
.home .memories .embed-video .poster:hover::after,
.embed-video .home .memories .poster:hover::after,
.home .memories .sign-up .submit input:hover,
.sign-up .submit .home .memories input:hover {
  background-color: #0B2A3B
}

.js .home .memories.watch-view h1,
.js .home .memories.watch-view .button,
.js .home .memories.watch-view .image-grid.image-pair a::after,
.image-grid.image-pair .js .home .memories.watch-view a::after,
.js .home .memories.watch-view .option-button,
.js .home .memories.watch-view .filters a,
.filters .js .home .memories.watch-view a,
.js .home .memories.watch-view .ticket-types a,
.ticket-types .js .home .memories.watch-view a,
.js .home .memories.watch-view .image-buttons a span,
.image-buttons a .js .home .memories.watch-view span,
.js .home .memories.watch-view .instagram-media p a,
.instagram-media p .js .home .memories.watch-view a,
.js .home .memories.watch-view .js-user-buttons li a,
.js .js-user-buttons li .home .memories.watch-view a,
.js .home .memories.watch-view .news .article-collection article a::after,
.news .article-collection article .js .home .memories.watch-view a::after,
.js .home .memories.watch-view .announcing .article-collection article a::after,
.js .home .announcing .article-collection article .memories.watch-view a::after,
.js .home .memories.watch-view .embed-video .poster::after,
.embed-video .js .home .memories.watch-view .poster::after,
.js .home .memories.watch-view .sign-up .submit input,
.sign-up .submit .js .home .memories.watch-view input {
  opacity: 0
}

.home .memories.in-view {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 0s;
  animation-delay: 0s;
  z-index: 1;
  background-image: url("../resources/backdrop/small/Wychwood-Festival-memories-montage.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover
}

@supports (background-image: image-set(url("../resources/backdrop/small/Wychwood-Festival-memories-montage.jpg") type("image/jpg"))) {
  .home .memories.in-view {
    background-image: image-set(url("../resources/backdrop/small/Wychwood-Festival-memories-montage.webp") type("image/webp"), url("../resources/backdrop/small/Wychwood-Festival-memories-montage.jpg") type("image/jpg"))
  }
}

@media only screen and (min-width: 39em) {
  .home .memories.in-view {
    background-image: url("../resources/backdrop/medium/Wychwood-Festival-memories-montage.jpg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }

  @supports (background-image: image-set(url("../resources/backdrop/medium/Wychwood-Festival-memories-montage.jpg") type("image/jpg"))) {
    .home .memories.in-view {
      background-image: image-set(url("../resources/backdrop/medium/Wychwood-Festival-memories-montage.webp") type("image/webp"), url("../resources/backdrop/medium/Wychwood-Festival-memories-montage.jpg") type("image/jpg"))
    }
  }
}

@media only screen and (min-width: 66em) {
  .home .memories.in-view {
    background-image: url("../resources/backdrop/large/Wychwood-Festival-memories-montage.jpg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }

  @supports (background-image: image-set(url("../resources/backdrop/large/Wychwood-Festival-memories-montage.jpg") type("image/jpg"))) {
    .home .memories.in-view {
      background-image: image-set(url("../resources/backdrop/large/Wychwood-Festival-memories-montage.webp") type("image/webp"), url("../resources/backdrop/large/Wychwood-Festival-memories-montage.jpg") type("image/jpg"))
    }
  }
}

.home .memories.in-view h1 {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-animation-delay: 200ms;
  animation-delay: 200ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: zoomInElastic;
  animation-name: zoomInElastic
}

.home .memories.in-view .button,
.home .memories.in-view .image-grid.image-pair a::after,
.image-grid.image-pair .home .memories.in-view a::after,
.home .memories.in-view .option-button,
.home .memories.in-view .filters a,
.filters .home .memories.in-view a,
.home .memories.in-view .ticket-types a,
.ticket-types .home .memories.in-view a,
.home .memories.in-view .image-buttons a span,
.image-buttons a .home .memories.in-view span,
.home .memories.in-view .instagram-media p a,
.instagram-media p .home .memories.in-view a,
.home .memories.in-view .js .js-user-buttons li a,
.js .js-user-buttons li .home .memories.in-view a,
.home .memories.in-view .news .article-collection article a::after,
.news .article-collection article .home .memories.in-view a::after,
.home .memories.in-view .announcing .article-collection article a::after,
.home .announcing .article-collection article .memories.in-view a::after,
.home .memories.in-view .embed-video .poster::after,
.embed-video .home .memories.in-view .poster::after,
.home .memories.in-view .sign-up .submit input,
.sign-up .submit .home .memories.in-view input {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 400ms;
  animation-delay: 400ms
}

.promo-scene.var-one {
  padding: 0
}

.promo-scene.var-one header {
  position: absolute;
  top: 5.4vw;
  left: 0;
  width: 100%;
  height: auto;
  z-index: 101
}

@media only screen and (min-width: 39em) {
  .promo-scene.var-one header {
    top: 6vw
  }
}

@media only screen and (min-width: 66em) {
  .promo-scene.var-one header {
    top: 3.4vw;
    width: 62%
  }
}

.promo-scene.var-one header h2,
.promo-scene.var-one header .home .vibe-scene .statement,
.home .vibe-scene .promo-scene.var-one header .statement {
  overflow: hidden;
  margin: 0;
  width: 100%;
  height: 0;
  padding-top: 4rem;
  line-height: 1;
  background-image: url("../resources/graphics/aeroplane-and-banner-graphic.svg");
  background-position: right 6px top 0;
  background-repeat: no-repeat;
  background-size: 82% auto;
  transform: translateX(-100%);
  transition-duration: 800ms;
  transition-delay: 400ms;
  transition-timing-function: cubic-bezier(0.23, 1, 0.32, 1)
}

@media only screen and (min-width: 66em) {

  .promo-scene.var-one header h2,
  .promo-scene.var-one header .home .vibe-scene .statement,
  .home .vibe-scene .promo-scene.var-one header .statement {
    background-size: 73% auto
  }
}

.promo-scene.var-one figure,
.promo-scene.var-one picture {
  margin: 0
}

.promo-scene.var-one figure img,
.promo-scene.var-one picture img {
  -webkit-border-radius: 0;
  border-radius: 0;
  width: 100%;
  aspect-ratio: 1
}

@media only screen and (min-width: 66em) {

  .promo-scene.var-one figure img,
  .promo-scene.var-one picture img {
    aspect-ratio: 1920/500
  }
}

.js .promo-scene.var-one.watch-view figure {
  opacity: 0
}

.js .promo-scene.var-one.in-view figure {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 0s;
  animation-delay: 0s
}

.js .promo-scene.var-one.in-view h2,
.js .promo-scene.var-one.in-view .home .vibe-scene .statement,
.home .vibe-scene .js .promo-scene.var-one.in-view .statement {
  transform: translateX(0%)
}

graphic-item div {
  background-repeat: no-repeat;
  background-position: left top;
  background-size: auto 100%
}

graphic-item.green-blob div {
  background-image: url("../resources/graphics/green-blob-collection.png")
}

graphic-item.pink-blob div {
  background-image: url("../resources/graphics/pink-blob-collection.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover
}

@supports (background-image: image-set(url("../resources/graphics/pink-blob-collection.png") type("image/png"))) {
  graphic-item.pink-blob div {
    background-image: image-set(url("../resources/graphics/pink-blob-collection.avif") type("image/avif"), url("../resources/graphics/pink-blob-collection.webp") type("image/webp"), url("../resources/graphics/pink-blob-collection.png") type("image/png"))
  }
}

graphic-item.corner-contours div {
  background-image: url("../resources/graphics/corner-contours.svg")
}

.in-view graphic-item.green-blob26 div {
  background-image: url("../resources/graphics/green-blob-2026-collection.png")
}

@media (prefers-reduced-motion: reduce) {

  .base-scene .bounds,
  .links-page .bounds {
    opacity: 0
  }

  .base-scene.in-view .bounds,
  .links-page.in-view .bounds {
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-duration: 2s;
    animation-duration: 2s;
    -webkit-backface-visibility: hidden;
    -webkit-animation-name: fadeIn;
    animation-name: fadeIn;
    -webkit-animation-delay: 0s;
    animation-delay: 0s
  }
}

@media (prefers-reduced-motion: no-preference) {

  .base-scene .bounds,
  .links-page .bounds {
    opacity: 0;
    -webkit-transition: all 200ms cubic-bezier(0, 1.23, 0.37, 1.07) 300ms;
    transition: all 200ms cubic-bezier(0, 1.23, 0.37, 1.07) 300ms;
    -webkit-transform: rotate(-3deg) scale(1.1);
    transform: rotate(-3deg) scale(1.1)
  }

  .base-scene.in-view .bounds,
  .links-page.in-view .bounds {
    opacity: 1;
    -webkit-transform: rotate(0deg) scale(1);
    transform: rotate(0deg) scale(1)
  }
}

.on-top {
  position: relative;
  top: 0;
  left: 0;
  z-index: 101
}

.home .vibe-scene .orange-blob-cluster.tl {
  top: 0;
  left: 0;
  width: 80vw;
  height: 80vw;
  max-width: 970px
}

.home .vibe-scene .orange-blob-cluster.tl div {
  background-position: 0vw bottom
}

.home .vibe-scene .orange-blob-cluster.tl div {
  background-image: url("../resources/backdrop/small/20th-orange-blob-frame-2.png");
  background-position: 119% -18px !important
}

@media only screen and (min-width: 39em) {
  .home .vibe-scene .orange-blob-cluster.tl {
    top: 0;
    left: 0;
    width: 50vw;
    height: 50vw
  }

  .home .vibe-scene .orange-blob-cluster.tl div {
    background-position: 0vw bottom
  }

  .home .vibe-scene .orange-blob-cluster.tl div {
    background-position: 100% 0px !important
  }
}

@media only screen and (min-width: 66em) {
  .home .vibe-scene .orange-blob-cluster.tl {
    top: 0;
    left: 0;
    width: 33vw;
    height: 33vw
  }

  .home .vibe-scene .orange-blob-cluster.tl div {
    background-position: 0vw bottom
  }
}

@media only screen and (min-width: 2560px) {
  .home .vibe-scene .orange-blob-cluster.tl {
    top: 0;
    left: 0;
    width: 970px;
    height: 970px
  }

  .home .vibe-scene .orange-blob-cluster.tl div {
    background-position: 0px bottom
  }
}

.home .vibe-scene .orange-blob-cluster.br {
  bottom: -2px;
  right: 0;
  width: 80vw;
  height: 80vw;
  max-width: 970px
}

.home .vibe-scene .orange-blob-cluster.br div {
  background-position: 0vw bottom
}

.home .vibe-scene .orange-blob-cluster.br div {
  background-image: url("../resources/backdrop/small/20th-orange-blob-frame-2.png");
  background-position: -10% 2px
}

@media only screen and (min-width: 39em) {
  .home .vibe-scene .orange-blob-cluster.br {
    bottom: -7px;
    right: 0;
    width: 50vw;
    height: 50vw
  }

  .home .vibe-scene .orange-blob-cluster.br div {
    background-position: 0vw bottom
  }
}

@media only screen and (min-width: 66em) {
  .home .vibe-scene .orange-blob-cluster.br {
    bottom: -2px;
    right: 0;
    width: 33vw;
    height: 33vw
  }

  .home .vibe-scene .orange-blob-cluster.br div {
    background-position: 0vw bottom
  }
}

@media only screen and (min-width: 2560px) {
  .home .vibe-scene .orange-blob-cluster.br {
    bottom: 0;
    right: 0;
    width: 970px;
    height: 970px
  }

  .home .vibe-scene .orange-blob-cluster.br div {
    background-position: 0px bottom
  }
}

.home .vibe-scene .spots-frame.br {
  bottom: 0;
  right: 0;
  width: 100vw;
  height: 100vw;
  transform: scaleX(-1);
  max-height: 440px
}

.home .vibe-scene .spots-frame.br div {
  background-position: 0vw bottom
}

.home .vibe-scene .spots-frame.br div {
  background-image: url("../resources/backdrop/small/pink-spots-curved-frame.png")
}

@media only screen and (min-width: 39em) {
  .home .vibe-scene .spots-frame.br {
    bottom: 0;
    right: 0;
    width: 75vw;
    height: 75vw;
    max-height: 640px
  }

  .home .vibe-scene .spots-frame.br div {
    background-position: 0vw bottom
  }
}

.home .vibe-scene .spots-frame.tr {
  top: 0;
  right: 0;
  width: 100vw;
  height: 100vw;
  max-height: 340px
}

.home .vibe-scene .spots-frame.tr div {
  background-position: 0vw bottom
}

.home .vibe-scene .spots-frame.tr div {
  background-image: url("../resources/backdrop/small/12-days-spots-back.png");
  background-position: right -242px top -122px
}

@media only screen and (min-width: 39em) {
  .home .vibe-scene .spots-frame.tr {
    max-height: 380px
  }

  .home .vibe-scene .spots-frame.tr div {
    background-position: right -120px top -168px
  }
}

@media only screen and (min-width: 66em) {
  .home .vibe-scene .spots-frame.tr {
    max-height: 500px
  }

  .home .vibe-scene .spots-frame.tr div {
    background-position: right -140px top -227px
  }
}

.home .vibe-scene .spots-frame.bl {
  bottom: 0;
  left: 0;
  width: 100vw;
  height: 100vw;
  max-height: 340px
}

.home .vibe-scene .spots-frame.bl div {
  background-position: 0vw bottom
}

.home .vibe-scene .spots-frame.bl div {
  background-image: url("../resources/backdrop/small/12-days-spots-back.png");
  background-position: left -280px bottom -130px
}

@media only screen and (min-width: 39em) {
  .home .vibe-scene .spots-frame.bl {
    max-height: 380px
  }

  .home .vibe-scene .spots-frame.bl div {
    background-position: left -130px bottom -210px
  }
}

@media only screen and (min-width: 66em) {
  .home .vibe-scene .spots-frame.bl {
    max-height: 500px
  }
}

.home .vibe-scene .twelvedays-blob-cluster.tl {
  top: 0;
  left: 0;
  width: 80vw;
  height: 80vw;
  max-width: 970px
}

.home .vibe-scene .twelvedays-blob-cluster.tl div {
  background-position: 0vw bottom
}

.home .vibe-scene .twelvedays-blob-cluster.tl div {
  background-image: url("../resources/backdrop/small/12-days-blob-frame.png");
  background-position: left 125% top 0px !important
}

@media only screen and (min-width: 39em) {
  .home .vibe-scene .twelvedays-blob-cluster.tl {
    top: 0;
    left: 0;
    width: 50vw;
    height: 50vw
  }

  .home .vibe-scene .twelvedays-blob-cluster.tl div {
    background-position: 0vw bottom
  }

  .home .vibe-scene .twelvedays-blob-cluster.tl div {
    background-position: 100% 0px !important
  }
}

@media only screen and (min-width: 66em) {
  .home .vibe-scene .twelvedays-blob-cluster.tl {
    top: 0;
    left: 0;
    width: 33vw;
    height: 33vw
  }

  .home .vibe-scene .twelvedays-blob-cluster.tl div {
    background-position: 0vw bottom
  }
}

.home .vibe-scene .twelvedays-blob-cluster.br {
  bottom: 0;
  right: 0;
  width: 80vw;
  height: 80vw;
  max-width: 970px
}

.home .vibe-scene .twelvedays-blob-cluster.br div {
  background-position: 0vw bottom
}

.home .vibe-scene .twelvedays-blob-cluster.br div {
  background-image: url("../resources/backdrop/small/12-days-blob-frame.png");
  background-position: left -33% bottom -20px
}

@media only screen and (min-width: 39em) {
  .home .vibe-scene .twelvedays-blob-cluster.br {
    bottom: 0;
    right: 0;
    width: 50vw;
    height: 50vw
  }

  .home .vibe-scene .twelvedays-blob-cluster.br div {
    background-position: 0vw bottom
  }

  .home .vibe-scene .twelvedays-blob-cluster.br div {
    background-position: left -24% bottom 0px
  }
}

@media only screen and (min-width: 66em) {
  .home .vibe-scene .twelvedays-blob-cluster.br {
    bottom: 0;
    right: 0;
    width: 33vw;
    height: 33vw
  }

  .home .vibe-scene .twelvedays-blob-cluster.br div {
    background-position: 0vw bottom
  }
}

@media only screen and (min-width: 2560px) {
  .home .vibe-scene .twelvedays-blob-cluster.br {
    bottom: 0;
    right: 0;
    width: 970px;
    height: 970px
  }

  .home .vibe-scene .twelvedays-blob-cluster.br div {
    background-position: 0px bottom
  }
}

.js .vibe-scene .blue-frame.tr,
.js .vibe-scene .blue-frame.bl {
  opacity: 0
}

.js .vibe-scene .orange-blob-cluster.tl,
.js .vibe-scene .orange-blob-cluster.br,
.js .vibe-scene .spots-frame.br,
.js .vibe-scene .twelvedays-blob-cluster {
  opacity: 0
}

.js .vibe-up .vibe-scene .spots-frame {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 1000ms;
  animation-delay: 1000ms
}

.js .vibe-up .vibe-scene .orange-blob-cluster.tl,
.js .vibe-up .vibe-scene .twelvedays-blob-cluster {
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-animation-delay: 1200ms;
  animation-delay: 1200ms;
  -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -ms-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: zoomInPlace;
  animation-name: zoomInPlace
}

.js .vibe-up .vibe-scene .orange-blob-cluster.br {
  transform-origin: bottom;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-animation-delay: 1400ms;
  animation-delay: 1400ms;
  -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -ms-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: zoomInPlace;
  animation-name: zoomInPlace
}

.twentyseven-scene {
  background-image: url("../resources/backdrop/small/2027-tickets-background.png");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover
}

@media only screen and (min-width: 66em) {
  .twentyseven-scene {
    background-image: url("../resources/backdrop/large/2027-tickets-background.png")
  }
}

.twentieth-scene {
  background-image: url("../resources/backdrop/small/blue-blob-cluster.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: auto 126%;
  background-attachment: fixed
}

@media only screen and (min-width: 39em) {
  .twentieth-scene {
    background-image: url("../resources/backdrop/medium/blue-blob-cluster.png");
    background-position: center 30%;
    background-size: cover
  }
}

.base-scene.var1-scene {
  background-image: url("../resources/backdrop/small/scene-var1.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover
}

@supports (background-image: image-set(url("../resources/backdrop/small/scene-var1.png") type("image/png"))) {
  .base-scene.var1-scene {
    background-image: image-set(url("../resources/backdrop/small/scene-var1.avif") type("image/avif"), url("../resources/backdrop/small/scene-var1.webp") type("image/webp"), url("../resources/backdrop/small/scene-var1.png") type("image/png"))
  }
}

@media only screen and (min-width: 39em) {
  .base-scene.var1-scene {
    background-image: url("../resources/backdrop/medium/scene-var1.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }

  @supports (background-image: image-set(url("../resources/backdrop/medium/scene-var1.png") type("image/png"))) {
    .base-scene.var1-scene {
      background-image: image-set(url("../resources/backdrop/medium/scene-var1.avif") type("image/avif"), url("../resources/backdrop/medium/scene-var1.webp") type("image/webp"), url("../resources/backdrop/medium/scene-var1.png") type("image/png"))
    }
  }
}

@media only screen and (min-width: 66em) {
  .base-scene.var1-scene {
    background-image: url("../resources/backdrop/large/scene-var1.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }

  @supports (background-image: image-set(url("../resources/backdrop/large/scene-var1.png") type("image/png"))) {
    .base-scene.var1-scene {
      background-image: image-set(url("../resources/backdrop/large/scene-var1.avif") type("image/avif"), url("../resources/backdrop/large/scene-var1.webp") type("image/webp"), url("../resources/backdrop/large/scene-var1.png") type("image/png"))
    }
  }
}

.base-scene.var1-scene .statement {
  max-width: 279px
}

@media only screen and (min-width: 39em) {
  .base-scene.var1-scene .statement {
    max-width: 340px
  }
}

@media only screen and (min-width: 66em) {
  .base-scene.var1-scene .statement {
    max-width: none
  }
}

.base-scene.var1-scene .green-blob.g1 {
  bottom: 0;
  left: 0;
  width: 128px;
  height: 128px
}

.base-scene.var1-scene .green-blob.g1 div {
  background-position: 0px bottom
}

@media only screen and (min-width: 39em) {
  .base-scene.var1-scene .green-blob.g1 {
    bottom: 0;
    left: 0;
    width: 192px;
    height: 192px
  }

  .base-scene.var1-scene .green-blob.g1 div {
    background-position: 0px bottom
  }
}

@media only screen and (min-width: 66em) {
  .base-scene.var1-scene .green-blob.g1 {
    bottom: 0;
    left: 0;
    width: 240px;
    height: 240px
  }

  .base-scene.var1-scene .green-blob.g1 div {
    background-position: 0px bottom
  }
}

.base-scene.var1-scene .green-blob.g2 {
  top: 0;
  right: 0;
  width: 116px;
  height: 116px
}

.base-scene.var1-scene .green-blob.g2 div {
  background-position: -116px bottom
}

@media only screen and (min-width: 39em) {
  .base-scene.var1-scene .green-blob.g2 {
    top: 0;
    right: 0;
    width: 156px;
    height: 156px
  }

  .base-scene.var1-scene .green-blob.g2 div {
    background-position: -156px bottom
  }
}

@media only screen and (min-width: 66em) {
  .base-scene.var1-scene .green-blob.g2 {
    top: 0;
    right: 0;
    width: 212px;
    height: 212px
  }

  .base-scene.var1-scene .green-blob.g2 div {
    background-position: -212px bottom
  }
}

.base-scene.var1-scene .corner-contours.g3 {
  top: 0;
  left: 0;
  width: 96px;
  height: 96px
}

.base-scene.var1-scene .corner-contours.g3 div {
  background-position: -96px bottom
}

@media only screen and (min-width: 39em) {
  .base-scene.var1-scene .corner-contours.g3 {
    top: 0;
    left: 0;
    width: 132px;
    height: 132px
  }

  .base-scene.var1-scene .corner-contours.g3 div {
    background-position: -132px bottom
  }
}

@media only screen and (min-width: 66em) {
  .base-scene.var1-scene .corner-contours.g3 {
    top: 0;
    left: 0;
    width: 156px;
    height: 156px
  }

  .base-scene.var1-scene .corner-contours.g3 div {
    background-position: -156px bottom
  }
}

.base-scene.var1-scene .corner-contours.g4 {
  bottom: -8px;
  right: -32px;
  width: 116px;
  height: 116px;
  -webkit-transform: scale(-1) rotate(6deg);
  transform: scale(-1) rotate(6deg)
}

.base-scene.var1-scene .corner-contours.g4 div {
  background-position: -116px bottom
}

@media only screen and (min-width: 39em) {
  .base-scene.var1-scene .corner-contours.g4 {
    bottom: -8px;
    right: -32px;
    width: 132px;
    height: 132px
  }

  .base-scene.var1-scene .corner-contours.g4 div {
    background-position: -132px bottom
  }
}

@media only screen and (min-width: 66em) {
  .base-scene.var1-scene .corner-contours.g4 {
    bottom: -8px;
    right: -32px;
    width: 156px;
    height: 156px
  }

  .base-scene.var1-scene .corner-contours.g4 div {
    background-position: -156px bottom
  }
}

.base-scene.var2-scene {
  background-image: url("../resources/backdrop/small/scene-var2.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover
}

@media only screen and (min-width: 39em) {
  .base-scene.var2-scene {
    background-image: url("../resources/backdrop/medium/scene-var2.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }

  @supports (background-image: image-set(url("../resources/backdrop/medium/scene-var2.png") type("image/png"))) {
    .base-scene.var2-scene {
      background-image: image-set(url("../resources/backdrop/medium/scene-var2.avif") type("image/avif"), url("../resources/backdrop/medium/scene-var2.webp") type("image/webp"), url("../resources/backdrop/medium/scene-var2.png") type("image/png"))
    }
  }
}

@media only screen and (min-width: 66em) {
  .base-scene.var2-scene {
    background-image: url("../resources/backdrop/large/scene-var2.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }

  @supports (background-image: image-set(url("../resources/backdrop/large/scene-var2.png") type("image/png"))) {
    .base-scene.var2-scene {
      background-image: image-set(url("../resources/backdrop/large/scene-var2.avif") type("image/avif"), url("../resources/backdrop/large/scene-var2.webp") type("image/webp"), url("../resources/backdrop/large/scene-var2.png") type("image/png"))
    }
  }
}

.base-scene.var2-scene .green-blob.g1 {
  top: 0;
  left: 0;
  width: 112px;
  height: 112px
}

.base-scene.var2-scene .green-blob.g1 div {
  background-position: -224px bottom
}

@media only screen and (min-width: 66em) {
  .base-scene.var2-scene .green-blob.g1 {
    top: 0;
    left: 0;
    width: 186px;
    height: 186px
  }

  .base-scene.var2-scene .green-blob.g1 div {
    background-position: -372px bottom
  }
}

.base-scene.var2-scene .green-blob.g2 {
  bottom: 0;
  right: 0;
  width: 112px;
  height: 112px
}

.base-scene.var2-scene .green-blob.g2 div {
  background-position: -336px bottom
}

@media only screen and (min-width: 66em) {
  .base-scene.var2-scene .green-blob.g2 {
    bottom: 0;
    right: 0;
    width: 156px;
    height: 156px
  }

  .base-scene.var2-scene .green-blob.g2 div {
    background-position: -468px bottom
  }
}

.base-scene.var2-scene .corner-contours.g3 {
  bottom: 0;
  left: 0;
  width: 96px;
  height: 96px
}

.base-scene.var2-scene .corner-contours.g3 div {
  background-position: -192px bottom
}

@media only screen and (min-width: 66em) {
  .base-scene.var2-scene .corner-contours.g3 {
    bottom: 0;
    left: 0;
    width: 136px;
    height: 136px
  }

  .base-scene.var2-scene .corner-contours.g3 div {
    background-position: -272px bottom
  }
}

.base-scene.var2-scene .corner-contours.g4 {
  top: -32px;
  right: -32px;
  width: 132px;
  height: 132px;
  -webkit-transform: scaleY(-1);
  transform: scaleY(-1)
}

.base-scene.var2-scene .corner-contours.g4 div {
  background-position: -792px bottom
}

@media only screen and (min-width: 66em) {
  .base-scene.var2-scene .corner-contours.g4 {
    top: -32px;
    right: -32px;
    width: 152px;
    height: 152px
  }

  .base-scene.var2-scene .corner-contours.g4 div {
    background-position: -912px bottom
  }
}

.base-scene.var3-scene {
  background-image: url("../resources/backdrop/small/scene-var3.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover
}

@supports (background-image: image-set(url("../resources/backdrop/small/scene-var3.png") type("image/png"))) {
  .base-scene.var3-scene {
    background-image: image-set(url("../resources/backdrop/small/scene-var3.avif") type("image/avif"), url("../resources/backdrop/small/scene-var3.webp") type("image/webp"), url("../resources/backdrop/small/scene-var3.png") type("image/png"))
  }
}

@media only screen and (min-width: 39em) {
  .base-scene.var3-scene {
    background-image: url("../resources/backdrop/medium/scene-var3.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }

  @supports (background-image: image-set(url("../resources/backdrop/medium/scene-var3.png") type("image/png"))) {
    .base-scene.var3-scene {
      background-image: image-set(url("../resources/backdrop/medium/scene-var3.webp") type("image/webp"), url("../resources/backdrop/medium/scene-var3.png") type("image/png"))
    }
  }
}

@media only screen and (min-width: 66em) {
  .base-scene.var3-scene {
    background-image: url("../resources/backdrop/large/scene-var3.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }
}

.in-view.base-scene.var3-scene .corner-contours.g1 {
  top: 0;
  right: 0;
  width: 116px;
  height: 116px;
  -webkit-transform: scaleX(-1);
  transform: scaleX(-1)
}

.in-view.base-scene.var3-scene .corner-contours.g1 div {
  background-position: 0px bottom
}

@media only screen and (min-width: 39em) {
  .in-view.base-scene.var3-scene .corner-contours.g1 {
    top: 0;
    right: 0;
    width: 148px;
    height: 148px
  }

  .in-view.base-scene.var3-scene .corner-contours.g1 div {
    background-position: 0px bottom
  }
}

@media only screen and (min-width: 66em) {
  .in-view.base-scene.var3-scene .corner-contours.g1 {
    top: 0;
    right: 0;
    width: 240px;
    height: 240px
  }

  .in-view.base-scene.var3-scene .corner-contours.g1 div {
    background-position: 0px bottom
  }
}

.in-view.base-scene.var3-scene .corner-contours.g2 {
  bottom: -12px;
  left: -32px;
  width: 124px;
  height: 124px;
  -webkit-transform: scaleY(-1) rotate(15deg);
  transform: scaleY(-1) rotate(15deg)
}

.in-view.base-scene.var3-scene .corner-contours.g2 div {
  background-position: 0px bottom
}

@media only screen and (min-width: 39em) {
  .in-view.base-scene.var3-scene .corner-contours.g2 {
    bottom: -12px;
    left: -32px;
    width: 156px;
    height: 156px
  }

  .in-view.base-scene.var3-scene .corner-contours.g2 div {
    background-position: 0px bottom
  }
}

@media only screen and (min-width: 66em) {
  .in-view.base-scene.var3-scene .corner-contours.g2 {
    bottom: -12px;
    left: -32px;
    width: 240px;
    height: 240px
  }

  .in-view.base-scene.var3-scene .corner-contours.g2 div {
    background-position: 0px bottom
  }
}

.in-view.base-scene.var3-scene .green-blob.g3 {
  top: 0;
  left: 0;
  width: 112px;
  height: 112px
}

.in-view.base-scene.var3-scene .green-blob.g3 div {
  background-position: -1008px bottom
}

@media only screen and (min-width: 39em) {
  .in-view.base-scene.var3-scene .green-blob.g3 {
    top: 0;
    left: 0;
    width: 148px;
    height: 148px
  }

  .in-view.base-scene.var3-scene .green-blob.g3 div {
    background-position: -1332px bottom
  }
}

@media only screen and (min-width: 66em) {
  .in-view.base-scene.var3-scene .green-blob.g3 {
    top: 0;
    left: 0;
    width: 186px;
    height: 186px
  }

  .in-view.base-scene.var3-scene .green-blob.g3 div {
    background-position: -1674px bottom
  }
}

.in-view.base-scene.var3-scene .green-blob.g4 {
  bottom: 0;
  right: 0;
  width: 124px;
  height: 124px
}

.in-view.base-scene.var3-scene .green-blob.g4 div {
  background-position: -992px bottom
}

@media only screen and (min-width: 39em) {
  .in-view.base-scene.var3-scene .green-blob.g4 {
    bottom: 0;
    right: 0;
    width: 186px;
    height: 186px
  }

  .in-view.base-scene.var3-scene .green-blob.g4 div {
    background-position: -1488px bottom
  }
}

@media only screen and (min-width: 66em) {
  .in-view.base-scene.var3-scene .green-blob.g4 {
    bottom: 0;
    right: 0;
    width: 204px;
    height: 204px
  }

  .in-view.base-scene.var3-scene .green-blob.g4 div {
    background-position: -1632px bottom
  }
}

.js .base-scene.var3-scene.watch-view {
  background-image: none
}

.js .base-scene.var3-scene.in-view {
  background-image: url("../resources/backdrop/small/scene-var3.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover
}

@supports (background-image: image-set(url("../resources/backdrop/small/scene-var3.png") type("image/png"))) {
  .js .base-scene.var3-scene.in-view {
    background-image: image-set(url("../resources/backdrop/small/scene-var3.avif") type("image/avif"), url("../resources/backdrop/small/scene-var3.webp") type("image/webp"), url("../resources/backdrop/small/scene-var3.png") type("image/png"))
  }
}

@media only screen and (min-width: 39em) {
  .js .base-scene.var3-scene.in-view {
    background-image: url("../resources/backdrop/medium/scene-var3.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }

  @supports (background-image: image-set(url("../resources/backdrop/medium/scene-var3.png") type("image/png"))) {
    .js .base-scene.var3-scene.in-view {
      background-image: image-set(url("../resources/backdrop/medium/scene-var3.webp") type("image/webp"), url("../resources/backdrop/medium/scene-var3.png") type("image/png"))
    }
  }
}

@media only screen and (min-width: 66em) {
  .js .base-scene.var3-scene.in-view {
    background-image: url("../resources/backdrop/large/scene-var3.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }
}

.base-scene.var4-scene {
  background-image: url("../resources/backdrop/small/scene-var4.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover
}

@supports (background-image: image-set(url("../resources/backdrop/small/scene-var4.png") type("image/png"))) {
  .base-scene.var4-scene {
    background-image: image-set(url("../resources/backdrop/small/scene-var4.webp") type("image/webp"), url("../resources/backdrop/small/scene-var4.png") type("image/png"))
  }
}

@media only screen and (min-width: 39em) {
  .base-scene.var4-scene {
    background-image: url("../resources/backdrop/medium/scene-var4.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }
}

@media only screen and (min-width: 66em) {
  .base-scene.var4-scene {
    background-image: url("../resources/backdrop/large/scene-var4.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }

  @supports (background-image: image-set(url("../resources/backdrop/large/scene-var4.png") type("image/png"))) {
    .base-scene.var4-scene {
      background-image: image-set(url("../resources/backdrop/large/scene-var4.webp") type("image/webp"), url("../resources/backdrop/large/scene-var4.png") type("image/png"))
    }
  }
}

.in-view.base-scene.var4-scene .corner-contours.g1 {
  top: -48px;
  left: 0;
  width: 132px;
  height: 132px
}

.in-view.base-scene.var4-scene .corner-contours.g1 div {
  background-position: -396px bottom
}

@media only screen and (min-width: 39em) {
  .in-view.base-scene.var4-scene .corner-contours.g1 {
    top: 0;
    left: 0;
    width: 132px;
    height: 132px
  }

  .in-view.base-scene.var4-scene .corner-contours.g1 div {
    background-position: -396px bottom
  }
}

@media only screen and (min-width: 66em) {
  .in-view.base-scene.var4-scene .corner-contours.g1 {
    top: 0;
    left: 0;
    width: 156px;
    height: 156px
  }

  .in-view.base-scene.var4-scene .corner-contours.g1 div {
    background-position: -468px bottom
  }
}

.in-view.base-scene.var4-scene .corner-contours.g2 {
  bottom: 0;
  right: 0;
  width: 124px;
  height: 124px
}

.in-view.base-scene.var4-scene .corner-contours.g2 div {
  background-position: -868px bottom
}

@media only screen and (min-width: 39em) {
  .in-view.base-scene.var4-scene .corner-contours.g2 {
    bottom: 0;
    right: 0;
    width: 156px;
    height: 156px
  }

  .in-view.base-scene.var4-scene .corner-contours.g2 div {
    background-position: -1092px bottom
  }
}

@media only screen and (min-width: 66em) {
  .in-view.base-scene.var4-scene .corner-contours.g2 {
    bottom: 0;
    right: 0;
    width: 192px;
    height: 192px
  }

  .in-view.base-scene.var4-scene .corner-contours.g2 div {
    background-position: -1344px bottom
  }
}

.in-view.base-scene.var4-scene .pink-blob.g3 {
  bottom: 0;
  left: 0;
  width: 112px;
  height: 112px
}

.in-view.base-scene.var4-scene .pink-blob.g3 div {
  background-position: 0px bottom
}

@media only screen and (min-width: 39em) {
  .in-view.base-scene.var4-scene .pink-blob.g3 {
    bottom: 0;
    left: 0;
    width: 132px;
    height: 132px
  }

  .in-view.base-scene.var4-scene .pink-blob.g3 div {
    background-position: 0px bottom
  }
}

@media only screen and (min-width: 66em) {
  .in-view.base-scene.var4-scene .pink-blob.g3 {
    bottom: 0;
    left: 0;
    width: 148px;
    height: 148px
  }

  .in-view.base-scene.var4-scene .pink-blob.g3 div {
    background-position: 0px bottom
  }
}

.in-view.base-scene.var4-scene .pink-blob.g4 {
  top: 0;
  right: 0;
  width: 112px;
  height: 112px
}

.in-view.base-scene.var4-scene .pink-blob.g4 div {
  background-position: -112px bottom
}

@media only screen and (min-width: 39em) {
  .in-view.base-scene.var4-scene .pink-blob.g4 {
    top: 0;
    right: 0;
    width: 148px;
    height: 148px
  }

  .in-view.base-scene.var4-scene .pink-blob.g4 div {
    background-position: -148px bottom
  }
}

@media only screen and (min-width: 66em) {
  .in-view.base-scene.var4-scene .pink-blob.g4 {
    top: 0;
    right: 0;
    width: 172px;
    height: 172px
  }

  .in-view.base-scene.var4-scene .pink-blob.g4 div {
    background-position: -172px bottom
  }
}

.base-scene.var5-scene {
  background-image: url("../resources/backdrop/small/scene-var5.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover
}

@supports (background-image: image-set(url("../resources/backdrop/small/scene-var5.png") type("image/png"))) {
  .base-scene.var5-scene {
    background-image: image-set(url("../resources/backdrop/small/scene-var5.avif") type("image/avif"), url("../resources/backdrop/small/scene-var5.webp") type("image/webp"), url("../resources/backdrop/small/scene-var5.png") type("image/png"))
  }
}

@media only screen and (min-width: 39em) {
  .base-scene.var5-scene {
    background-image: url("../resources/backdrop/medium/scene-var5.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }

  @supports (background-image: image-set(url("../resources/backdrop/medium/scene-var5.png") type("image/png"))) {
    .base-scene.var5-scene {
      background-image: image-set(url("../resources/backdrop/medium/scene-var5.webp") type("image/webp"), url("../resources/backdrop/medium/scene-var5.png") type("image/png"))
    }
  }
}

@media only screen and (min-width: 66em) {
  .base-scene.var5-scene {
    background-image: url("../resources/backdrop/large/scene-var5.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }

  @supports (background-image: image-set(url("../resources/backdrop/large/scene-var5.png") type("image/png"))) {
    .base-scene.var5-scene {
      background-image: image-set(url("../resources/backdrop/large/scene-var5.webp") type("image/webp"), url("../resources/backdrop/large/scene-var5.png") type("image/png"))
    }
  }
}

.in-view.base-scene.var5-scene .corner-contours.g1 {
  top: 0;
  left: 0;
  width: 92px;
  height: 92px
}

.in-view.base-scene.var5-scene .corner-contours.g1 div {
  background-position: -92px bottom
}

@media only screen and (min-width: 39em) {
  .in-view.base-scene.var5-scene .corner-contours.g1 {
    top: 0;
    left: 0;
    width: 124px;
    height: 124px
  }

  .in-view.base-scene.var5-scene .corner-contours.g1 div {
    background-position: -124px bottom
  }
}

@media only screen and (min-width: 66em) {
  .in-view.base-scene.var5-scene .corner-contours.g1 {
    top: 0;
    left: 0;
    width: 132px;
    height: 132px
  }

  .in-view.base-scene.var5-scene .corner-contours.g1 div {
    background-position: -132px bottom
  }
}

.in-view.base-scene.var5-scene .corner-contours.g2 {
  bottom: -12px;
  right: -12px;
  width: 112px;
  height: 112px;
  -webkit-transform: scale(-1) rotate(-48deg);
  transform: scale(-1) rotate(-48deg)
}

.in-view.base-scene.var5-scene .corner-contours.g2 div {
  background-position: -560px bottom
}

@media only screen and (min-width: 39em) {
  .in-view.base-scene.var5-scene .corner-contours.g2 {
    bottom: -12px;
    right: -12px;
    width: 132px;
    height: 132px
  }

  .in-view.base-scene.var5-scene .corner-contours.g2 div {
    background-position: -660px bottom
  }
}

@media only screen and (min-width: 66em) {
  .in-view.base-scene.var5-scene .corner-contours.g2 {
    bottom: -12px;
    right: -12px;
    width: 186px;
    height: 186px
  }

  .in-view.base-scene.var5-scene .corner-contours.g2 div {
    background-position: -930px bottom
  }
}

.in-view.base-scene.var5-scene .pink-blob.g3 {
  bottom: 0;
  left: 0;
  width: 92px;
  height: 92px
}

.in-view.base-scene.var5-scene .pink-blob.g3 div {
  background-position: -184px bottom
}

@media only screen and (min-width: 39em) {
  .in-view.base-scene.var5-scene .pink-blob.g3 {
    bottom: 0;
    left: 0;
    width: 124px;
    height: 124px
  }

  .in-view.base-scene.var5-scene .pink-blob.g3 div {
    background-position: -248px bottom
  }
}

@media only screen and (min-width: 66em) {
  .in-view.base-scene.var5-scene .pink-blob.g3 {
    bottom: 0;
    left: 0;
    width: 148px;
    height: 148px
  }

  .in-view.base-scene.var5-scene .pink-blob.g3 div {
    background-position: -296px bottom
  }
}

.in-view.base-scene.var5-scene .pink-blob.g4 {
  top: 0;
  right: 0;
  width: 92px;
  height: 92px
}

.in-view.base-scene.var5-scene .pink-blob.g4 div {
  background-position: -276px bottom
}

@media only screen and (min-width: 39em) {
  .in-view.base-scene.var5-scene .pink-blob.g4 {
    top: 0;
    right: 0;
    width: 124px;
    height: 124px
  }

  .in-view.base-scene.var5-scene .pink-blob.g4 div {
    background-position: -372px bottom
  }
}

@media only screen and (min-width: 66em) {
  .in-view.base-scene.var5-scene .pink-blob.g4 {
    top: 0;
    right: 0;
    width: 148px;
    height: 148px
  }

  .in-view.base-scene.var5-scene .pink-blob.g4 div {
    background-position: -444px bottom
  }
}

.base-scene.var6-scene {
  background-image: url("../resources/backdrop/small/scene-var6.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover
}

@supports (background-image: image-set(url("../resources/backdrop/small/scene-var6.png") type("image/png"))) {
  .base-scene.var6-scene {
    background-image: image-set(url("../resources/backdrop/small/scene-var6.avif") type("image/avif"), url("../resources/backdrop/small/scene-var6.webp") type("image/webp"), url("../resources/backdrop/small/scene-var6.png") type("image/png"))
  }
}

@media only screen and (min-width: 39em) {
  .base-scene.var6-scene {
    background-image: url("../resources/backdrop/medium/scene-var6.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }

  @supports (background-image: image-set(url("../resources/backdrop/medium/scene-var6.png") type("image/png"))) {
    .base-scene.var6-scene {
      background-image: image-set(url("../resources/backdrop/medium/scene-var6.webp") type("image/webp"), url("../resources/backdrop/medium/scene-var6.png") type("image/png"))
    }
  }
}

@media only screen and (min-width: 66em) {
  .base-scene.var6-scene {
    background-image: url("../resources/backdrop/large/scene-var6.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }

  @supports (background-image: image-set(url("../resources/backdrop/large/scene-var6.png") type("image/png"))) {
    .base-scene.var6-scene {
      background-image: image-set(url("../resources/backdrop/large/scene-var6.webp") type("image/webp"), url("../resources/backdrop/large/scene-var6.png") type("image/png"))
    }
  }
}

.in-view.base-scene.var6-scene .corner-contours.g1 {
  top: 0;
  left: 0;
  width: 92px;
  height: 92px;
  -webkit-transform: scaleY(-1);
  transform: scaleY(-1)
}

.in-view.base-scene.var6-scene .corner-contours.g1 div {
  background-position: -368px bottom
}

@media only screen and (min-width: 39em) {
  .in-view.base-scene.var6-scene .corner-contours.g1 {
    top: 0;
    left: 0;
    width: 128px;
    height: 128px
  }

  .in-view.base-scene.var6-scene .corner-contours.g1 div {
    background-position: -512px bottom
  }
}

@media only screen and (min-width: 66em) {
  .in-view.base-scene.var6-scene .corner-contours.g1 {
    top: 0;
    left: 0;
    width: 152px;
    height: 152px
  }

  .in-view.base-scene.var6-scene .corner-contours.g1 div {
    background-position: -608px bottom
  }
}

.in-view.base-scene.var6-scene .corner-contours.g2 {
  bottom: -24px;
  right: 0;
  width: 92px;
  height: 92px
}

.in-view.base-scene.var6-scene .corner-contours.g2 div {
  background-position: -552px bottom
}

@media only screen and (min-width: 39em) {
  .in-view.base-scene.var6-scene .corner-contours.g2 {
    bottom: -24px;
    right: 0;
    width: 128px;
    height: 128px
  }

  .in-view.base-scene.var6-scene .corner-contours.g2 div {
    background-position: -768px bottom
  }
}

@media only screen and (min-width: 66em) {
  .in-view.base-scene.var6-scene .corner-contours.g2 {
    bottom: -24px;
    right: 0;
    width: 144px;
    height: 144px
  }

  .in-view.base-scene.var6-scene .corner-contours.g2 div {
    background-position: -864px bottom
  }
}

.in-view.base-scene.var6-scene .pink-blob.g3 {
  bottom: 0;
  left: 0;
  width: 92px;
  height: 92px
}

.in-view.base-scene.var6-scene .pink-blob.g3 div {
  background-position: -644px bottom
}

@media only screen and (min-width: 39em) {
  .in-view.base-scene.var6-scene .pink-blob.g3 {
    bottom: 0;
    left: 0;
    width: 124px;
    height: 124px
  }

  .in-view.base-scene.var6-scene .pink-blob.g3 div {
    background-position: -868px bottom
  }
}

@media only screen and (min-width: 66em) {
  .in-view.base-scene.var6-scene .pink-blob.g3 {
    bottom: 0;
    left: 0;
    width: 148px;
    height: 148px
  }

  .in-view.base-scene.var6-scene .pink-blob.g3 div {
    background-position: -1036px bottom
  }
}

.in-view.base-scene.var6-scene .pink-blob.g4 {
  top: 0;
  right: 0;
  width: 92px;
  height: 92px
}

.in-view.base-scene.var6-scene .pink-blob.g4 div {
  background-position: -552px bottom
}

@media only screen and (min-width: 39em) {
  .in-view.base-scene.var6-scene .pink-blob.g4 {
    top: 0;
    right: 0;
    width: 124px;
    height: 124px
  }

  .in-view.base-scene.var6-scene .pink-blob.g4 div {
    background-position: -744px bottom
  }
}

@media only screen and (min-width: 66em) {
  .in-view.base-scene.var6-scene .pink-blob.g4 {
    top: 0;
    right: 0;
    width: 148px;
    height: 148px
  }

  .in-view.base-scene.var6-scene .pink-blob.g4 div {
    background-position: -888px bottom
  }
}

.base-scene.var7-scene {
  background-image: url("../resources/backdrop/small/scene-var7.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover
}

@supports (background-image: image-set(url("../resources/backdrop/small/scene-var7.png") type("image/png"))) {
  .base-scene.var7-scene {
    background-image: image-set(url("../resources/backdrop/small/scene-var7.avif") type("image/avif"), url("../resources/backdrop/small/scene-var7.webp") type("image/webp"), url("../resources/backdrop/small/scene-var7.png") type("image/png"))
  }
}

@media only screen and (min-width: 39em) {
  .base-scene.var7-scene {
    background-image: url("../resources/backdrop/medium/scene-var7.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }

  @supports (background-image: image-set(url("../resources/backdrop/medium/scene-var7.png") type("image/png"))) {
    .base-scene.var7-scene {
      background-image: image-set(url("../resources/backdrop/medium/scene-var7.webp") type("image/webp"), url("../resources/backdrop/medium/scene-var7.png") type("image/png"))
    }
  }
}

@media only screen and (min-width: 66em) {
  .base-scene.var7-scene {
    background-image: url("../resources/backdrop/large/scene-var7.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }

  @supports (background-image: image-set(url("../resources/backdrop/large/scene-var7.png") type("image/png"))) {
    .base-scene.var7-scene {
      background-image: image-set(url("../resources/backdrop/large/scene-var7.webp") type("image/webp"), url("../resources/backdrop/large/scene-var7.png") type("image/png"))
    }
  }
}

.js .watch-view.base-scene.var7-scene {
  background-image: none
}

.js .in-view.base-scene.var7-scene {
  background-image: url("../resources/backdrop/small/scene-var7.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover
}

@supports (background-image: image-set(url("../resources/backdrop/small/scene-var7.png") type("image/png"))) {
  .js .in-view.base-scene.var7-scene {
    background-image: image-set(url("../resources/backdrop/small/scene-var7.avif") type("image/avif"), url("../resources/backdrop/small/scene-var7.webp") type("image/webp"), url("../resources/backdrop/small/scene-var7.png") type("image/png"))
  }
}

@media only screen and (min-width: 39em) {
  .js .in-view.base-scene.var7-scene {
    background-image: url("../resources/backdrop/medium/scene-var7.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }

  @supports (background-image: image-set(url("../resources/backdrop/medium/scene-var7.png") type("image/png"))) {
    .js .in-view.base-scene.var7-scene {
      background-image: image-set(url("../resources/backdrop/medium/scene-var7.webp") type("image/webp"), url("../resources/backdrop/medium/scene-var7.png") type("image/png"))
    }
  }
}

@media only screen and (min-width: 66em) {
  .js .in-view.base-scene.var7-scene {
    background-image: url("../resources/backdrop/large/scene-var7.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover
  }

  @supports (background-image: image-set(url("../resources/backdrop/large/scene-var7.png") type("image/png"))) {
    .js .in-view.base-scene.var7-scene {
      background-image: image-set(url("../resources/backdrop/large/scene-var7.webp") type("image/webp"), url("../resources/backdrop/large/scene-var7.png") type("image/png"))
    }
  }
}

.js .in-view.base-scene.var7-scene .corner-contours.g1 {
  top: 0;
  left: 0;
  width: 124px;
  height: 124px
}

.js .in-view.base-scene.var7-scene .corner-contours.g1 div {
  background-position: 0px bottom
}

@media only screen and (min-width: 66em) {
  .js .in-view.base-scene.var7-scene .corner-contours.g1 {
    top: 0;
    left: 0;
    width: 164px;
    height: 164px
  }

  .js .in-view.base-scene.var7-scene .corner-contours.g1 div {
    background-position: 0px bottom
  }
}

.js .in-view.base-scene.var7-scene .corner-contours.g2 {
  bottom: -12px;
  right: -6px;
  width: 124px;
  height: 124px;
  -webkit-transform: scale(-1);
  transform: scale(-1)
}

.js .in-view.base-scene.var7-scene .corner-contours.g2 div {
  background-position: 0px bottom
}

@media only screen and (min-width: 66em) {
  .js .in-view.base-scene.var7-scene .corner-contours.g2 {
    bottom: -12px;
    right: -6px;
    width: 164px;
    height: 164px
  }

  .js .in-view.base-scene.var7-scene .corner-contours.g2 div {
    background-position: 0px bottom
  }
}

.js .in-view.base-scene.var7-scene .pink-blob.g3 {
  bottom: 0;
  left: 0;
  width: 124px;
  height: 124px
}

.js .in-view.base-scene.var7-scene .pink-blob.g3 div {
  background-position: -992px bottom
}

@media only screen and (min-width: 39em) {
  .js .in-view.base-scene.var7-scene .pink-blob.g3 {
    bottom: 0;
    left: 0;
    width: 148px;
    height: 148px
  }

  .js .in-view.base-scene.var7-scene .pink-blob.g3 div {
    background-position: -1184px bottom
  }
}

@media only screen and (min-width: 66em) {
  .js .in-view.base-scene.var7-scene .pink-blob.g3 {
    bottom: 0;
    left: 0;
    width: 186px;
    height: 186px
  }

  .js .in-view.base-scene.var7-scene .pink-blob.g3 div {
    background-position: -1488px bottom
  }
}

.js .in-view.base-scene.var7-scene .pink-blob.g4 {
  top: 0;
  right: 0;
  width: 124px;
  height: 124px
}

.js .in-view.base-scene.var7-scene .pink-blob.g4 div {
  background-position: -1116px bottom
}

@media only screen and (min-width: 39em) {
  .js .in-view.base-scene.var7-scene .pink-blob.g4 {
    top: 0;
    right: 0;
    width: 148px;
    height: 148px
  }

  .js .in-view.base-scene.var7-scene .pink-blob.g4 div {
    background-position: -1332px bottom
  }
}

@media only screen and (min-width: 66em) {
  .js .in-view.base-scene.var7-scene .pink-blob.g4 {
    top: 0;
    right: 0;
    width: 186px;
    height: 186px
  }

  .js .in-view.base-scene.var7-scene .pink-blob.g4 div {
    background-position: -1674px bottom
  }
}

.spots-back::before {
  content: "";
  position: absolute;
  top: -22%;
  left: -18%;
  width: 100%;
  height: 200%;
  background-image: url("../resources/graphics/back-spots-left.png");
  background-repeat: no-repeat;
  background-position: left top;
  background-size: 60% auto;
  opacity: 0.4
}

@media only screen and (min-width: 39em) {
  .spots-back::before {
    top: -38%;
    left: -15%;
    background-size: 55% auto
  }
}

@media only screen and (min-width: 66em) {
  .spots-back::before {
    background-size: 32% auto;
    top: -50%;
    left: 0%
  }
}

.spots-back::after {
  content: "";
  position: absolute;
  bottom: -32%;
  right: -45%;
  width: 100%;
  height: 200%;
  z-index: 1;
  background-image: url("../resources/graphics/back-spots-right.png");
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: 90% auto;
  opacity: 0.4
}

@media only screen and (min-width: 39em) {
  .spots-back::after {
    bottom: -38%;
    right: -40%;
    background-size: 80% auto
  }
}

@media only screen and (min-width: 66em) {
  .spots-back::after {
    background-size: 36% auto;
    bottom: -52%;
    right: -1%
  }
}

.watch-view .spots-back::before,
.watch-view .spots-back::after {
  background-image: none
}

.in-view .spots-back::before {
  background-image: url("../resources/graphics/back-spots-left.png")
}

.in-view .spots-back::after {
  background-image: url("../resources/graphics/back-spots-right.png")
}

.base-scene20.var1-scene .blue-frame.tr {
  top: 0;
  right: 0;
  width: 60vw;
  height: 60vw
}

.base-scene20.var1-scene .blue-frame.tr div {
  background-position: 0vw bottom
}

.base-scene20.var1-scene .blue-frame.tr div {
  background-image: url("../resources/backdrop/small/20th-blue-frame.png");
  background-position: left top
}

@media only screen and (min-width: 39em) {
  .base-scene20.var1-scene .blue-frame.tr {
    top: 0;
    right: 0;
    width: 60vw;
    height: 60vw
  }

  .base-scene20.var1-scene .blue-frame.tr div {
    background-position: 0vw bottom
  }
}

@media only screen and (min-width: 66em) {
  .base-scene20.var1-scene .blue-frame.tr {
    top: 0;
    right: 0;
    width: 640px;
    height: 640px
  }

  .base-scene20.var1-scene .blue-frame.tr div {
    background-position: 0px bottom
  }
}

.base-scene20.var1-scene .blue-frame.bl {
  bottom: 0;
  left: 0;
  width: 70vw;
  height: 70vw
}

.base-scene20.var1-scene .blue-frame.bl div {
  background-position: 0vw bottom
}

.base-scene20.var1-scene .blue-frame.bl div {
  background-image: url("../resources/backdrop/small/20th-blue-frame.png");
  background-position: -70vw bottom
}

@media only screen and (min-width: 39em) {
  .base-scene20.var1-scene .blue-frame.bl {
    bottom: 0;
    left: 0;
    width: 50vw;
    height: 50vw
  }

  .base-scene20.var1-scene .blue-frame.bl div {
    background-position: -50vw bottom
  }
}

@media only screen and (min-width: 66em) {
  .base-scene20.var1-scene .blue-frame.bl {
    bottom: 0;
    left: 0;
    width: 480px;
    height: 480px
  }

  .base-scene20.var1-scene .blue-frame.bl div {
    background-position: 0px bottom
  }

  .base-scene20.var1-scene .blue-frame.bl div {
    background-position: -480px bottom
  }
}

.base-scene20.var1-scene .orange-blob-cluster.bl {
  bottom: 0;
  left: 0;
  width: 50vw;
  height: 50vw
}

.base-scene20.var1-scene .orange-blob-cluster.bl div {
  background-position: 0vw bottom
}

.base-scene20.var1-scene .orange-blob-cluster.bl div {
  background-image: url("../resources/backdrop/small/20th-orange-blob-frame-2.png");
  background-position: left bottom;
  transform: scaleX(-1)
}

@media only screen and (min-width: 39em) {
  .base-scene20.var1-scene .orange-blob-cluster.bl {
    bottom: 0;
    left: 0;
    width: 40vw;
    height: 40vw
  }

  .base-scene20.var1-scene .orange-blob-cluster.bl div {
    background-position: 0vw bottom
  }

  .base-scene20.var1-scene .orange-blob-cluster.bl div {
    background-position: left 52px
  }
}

@media only screen and (min-width: 66em) {
  .base-scene20.var1-scene .orange-blob-cluster.bl {
    bottom: -96px;
    left: 0;
    width: 520px;
    height: 520px
  }

  .base-scene20.var1-scene .orange-blob-cluster.bl div {
    background-position: 0px bottom
  }
}

.base-scene20.var1-scene .orange-blob-cluster.tr {
  top: 0;
  right: 0;
  width: 50vw;
  height: 50vw
}

.base-scene20.var1-scene .orange-blob-cluster.tr div {
  background-position: 0vw bottom
}

.base-scene20.var1-scene .orange-blob-cluster.tr div {
  background-image: url("../resources/backdrop/small/20th-orange-blob-frame-2.png");
  background-position: -50vw top;
  transform: scaleX(-1)
}

@media only screen and (min-width: 39em) {
  .base-scene20.var1-scene .orange-blob-cluster.tr {
    top: 0;
    right: 0;
    width: 40vw;
    height: 40vw
  }

  .base-scene20.var1-scene .orange-blob-cluster.tr div {
    background-position: 0vw bottom
  }

  .base-scene20.var1-scene .orange-blob-cluster.tr div {
    background-position: -40vw top
  }
}

@media only screen and (min-width: 66em) {
  .base-scene20.var1-scene .orange-blob-cluster.tr {
    top: 0;
    right: 0;
    width: 520px;
    height: 520px
  }

  .base-scene20.var1-scene .orange-blob-cluster.tr div {
    background-position: 0px bottom
  }

  .base-scene20.var1-scene .orange-blob-cluster.tr div {
    background-position: -520px top
  }
}

.js .watch-view .blue-frame.tr,
.js .watch-view .blue-frame.bl {
  opacity: 0
}

.js .watch-view .orange-blob-cluster.bl,
.js .watch-view .orange-blob-cluster.tr {
  opacity: 0
}

.js .watch-view.in-view .blue-frame.tr {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 200ms;
  animation-delay: 200ms
}

.js .watch-view.in-view .blue-frame.bl {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 400ms;
  animation-delay: 400ms
}

.js .watch-view.in-view .orange-blob-cluster.tr {
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-animation-delay: 600ms;
  animation-delay: 600ms;
  -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -ms-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: zoomInPlace;
  animation-name: zoomInPlace
}

.js .watch-view.in-view .orange-blob-cluster.bl {
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-animation-delay: 800ms;
  animation-delay: 800ms;
  -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -ms-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: zoomInPlace;
  animation-name: zoomInPlace
}

.wudu26-scene.var2-scene .green-blob26.tr {
  top: -209px;
  right: -208px;
  width: 100%;
  height: 100%;
  transform: rotate(-45deg);
  max-width: 440px
}

.wudu26-scene.var2-scene .green-blob26.tr div {
  background-position: 0% bottom
}

@media only screen and (min-width: 39em) {
  .wudu26-scene.var2-scene .green-blob26.tr {
    top: -289px;
    right: -368px;
    width: 100%;
    height: 100%;
    max-width: 680px
  }

  .wudu26-scene.var2-scene .green-blob26.tr div {
    background-position: 0% bottom
  }
}

@media only screen and (min-width: 66em) {
  .wudu26-scene.var2-scene .green-blob26.tr {
    top: -406px;
    right: -550px;
    width: 120%;
    height: 120%;
    max-width: 1060px
  }

  .wudu26-scene.var2-scene .green-blob26.tr div {
    background-position: 0% bottom
  }
}

.wudu26-scene.var2-scene .green-blob26.bl {
  bottom: -159px;
  left: -230px;
  width: 100%;
  height: 100%;
  transform: rotate(108deg);
  max-width: 440px
}

.wudu26-scene.var2-scene .green-blob26.bl div {
  background-position: 0% bottom
}

@media only screen and (min-width: 39em) {
  .wudu26-scene.var2-scene .green-blob26.bl {
    bottom: -319px;
    left: -330px;
    width: 100%;
    height: 100%;
    max-width: 680px
  }

  .wudu26-scene.var2-scene .green-blob26.bl div {
    background-position: 0% bottom
  }
}

@media only screen and (min-width: 66em) {
  .wudu26-scene.var2-scene .green-blob26.bl {
    bottom: -489px;
    left: -520px;
    width: 120%;
    height: 120%;
    max-width: 1060px
  }

  .wudu26-scene.var2-scene .green-blob26.bl div {
    background-position: 0% bottom
  }
}

.js .wudu26-scene.var2-scene.watch-view .bounds {
  opacity: 0
}

.js .wudu26-scene.var2-scene.in-view .bounds {
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-animation-delay: 400ms;
  animation-delay: 400ms;
  -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -ms-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: zoomInPlace;
  animation-name: zoomInPlace
}

.in-the-press {
  position: relative;
  top: 0;
  left: 0
}

.in-the-press .card-group {
  position: relative;
  top: 0;
  left: 0;
  margin: 0 auto;
  width: 100%;
  max-width: 420px
}

.in-the-press .card {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  margin: 0 0 1.2rem
}

.in-the-press .card blockquote {
  -webkit-border-radius: .6em;
  border-radius: .6em;
  margin: 0;
  padding: 2rem 1.8rem;
  text-align: center;
  background-color: #fff;
  font-family: "body_italic", helvetica, sans-serif;
  color: #0B2A3B;
  line-height: 1.1
}

@supports(text-wrap: balance) {
  .in-the-press .card blockquote {
    text-wrap: balance
  }
}

@media only screen and (min-width: 39em) {
  .in-the-press .card blockquote {
    font-size: 1.2rem
  }
}

@media only screen and (min-width: 66em) {
  .in-the-press .card blockquote {
    font-size: 1.4rem
  }
}

.js .in-the-press .card-group.run-cards {
  height: calc(100vw * 0.7);
  aspect-ratio: 5/3;
  max-height: 232px
}

.js .in-the-press .card-group.run-cards .card {
  box-sizing: border-box;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0
}

@media (prefers-reduced-motion: reduce) {
  .js .in-the-press .card-group.run-cards .card.show {
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-duration: 3200ms;
    animation-duration: 3200ms;
    -webkit-backface-visibility: hidden;
    -webkit-animation-name: fadeIn;
    animation-name: fadeIn;
    -webkit-animation-delay: 0s;
    animation-delay: 0s
  }
}

@media (prefers-reduced-motion: no-preference) {
  .js .in-the-press .card-group.run-cards .card.show {
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-duration: 1120ms;
    animation-duration: 1120ms;
    -webkit-animation-delay: 0s;
    animation-delay: 0s;
    -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
    -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
    animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
    -webkit-backface-visibility: hidden;
    -webkit-animation-name: zoomInElastic;
    animation-name: zoomInElastic
  }
}

.js .in-the-press .card-group.run-cards .card.hide {
  opacity: 0
}

.sign-up main {
  padding-bottom: 4rem
}

.sign-up main .boxed {
  box-sizing: border-box;
  margin: 0 auto 2rem;
  padding: 2rem 2rem 1rem;
  background-color: #D0FC76;
  text-align: center;
  color: #0B2A3B;
  max-width: 540px
}

.sign-up main .boxed h2,
.sign-up main .boxed .home .vibe-scene .statement,
.home .vibe-scene .sign-up main .boxed .statement {
  display: inline-block;
  padding: 1rem 2rem;
  color: #006062
}

.sign-up h2,
.sign-up .home .vibe-scene .statement,
.home .vibe-scene .sign-up .statement {
  margin-bottom: 1.2rem
}

.sign-up .statement {
  text-transform: uppercase;
  line-height: 1.1
}

@media only screen and (min-width: 39em) {
  .sign-up .statement {
    font-size: 1.4rem
  }
}

.sign-up form {
  margin: 0 auto;
  width: 96%;
  max-width: 540px
}

.sign-up #userPrompt {
  text-align: center
}

.sign-up .text label {
  display: block
}

.sign-up .text input {
  border: solid 2px #0B2A3B;
  -webkit-border-radius: .6em;
  border-radius: .6em;
  text-align: center;
  font-size: 1.2rem;
  color: #0B2A3B
}

.sign-up .text input:focus-visible {
  outline-color: var(--focus-visible-colour, currentColor);
  outline-style: solid;
  outline-offset: .125rem;
  outline-width: .25rem;
  -webkit-border-radius: .125rem;
  border-radius: .125rem;
  z-index: 101;
  transition-duration: 0s !important
}

.sign-up.quick-su .text label {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px)
}

.sign-up.quick-su .text input {
  border: none
}

.sign-up .submit {
  margin: 0 0 1.2rem !important
}

.sign-up .submit input {
  width: auto
}

.sign-up .submit input:focus-visible {
  outline-color: var(--focus-visible-colour, currentColor);
  outline-style: solid;
  outline-offset: .125rem;
  outline-width: .25rem;
  -webkit-border-radius: .125rem;
  border-radius: .125rem;
  z-index: 101;
  transition-duration: 0s !important
}

nav .sign-up {
  padding: 3rem 1rem 2rem;
  background-size: cover
}

@media only screen and (min-width: 39em) {
  nav .sign-up {
    background-size: cover
  }
}

@media only screen and (min-width: 66em) {
  nav .sign-up {
    display: none
  }
}

nav .sign-up .button,
nav .sign-up .image-grid.image-pair a::after,
.image-grid.image-pair nav .sign-up a::after,
nav .sign-up .option-button,
nav .sign-up .filters a,
.filters nav .sign-up a,
nav .sign-up .ticket-types a,
.ticket-types nav .sign-up a,
nav .sign-up .image-buttons a span,
.image-buttons a nav .sign-up span,
nav .sign-up .instagram-media p a,
.instagram-media p nav .sign-up a,
nav .sign-up .js .js-user-buttons li a,
.js .js-user-buttons li nav .sign-up a,
nav .sign-up .news .article-collection article a::after,
.news .article-collection article nav .sign-up a::after,
nav .sign-up .home .announcing .article-collection article a::after,
.home .announcing .article-collection article nav .sign-up a::after,
nav .sign-up .embed-video .poster::after,
.embed-video nav .sign-up .poster::after,
nav .sign-up .submit input {
  display: block;
  width: 68%;
  max-width: 216px
}

nav .sign-up::after,
.modal-view .sign-up::after {
  display: none
}

@media only screen and (max-width: 39em) {
  .modal-view #modalSignUp {
    position: absolute;
    left: 0;
    top: 0;
    background-size: cover;
    background-position: center top;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center
  }
}

@media only screen and (min-width: 39em) {
  .modal-view #modalSignUp {
    -webkit-border-radius: .6em;
    border-radius: .6em
  }
}

.easter.sign-up {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 1120ms;
  animation-duration: 1120ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 0s;
  animation-delay: 0s;
  padding: 4rem 1rem 1rem
}

@media only screen and (min-width: 39em) {
  .easter.sign-up {
    padding-bottom: 3rem
  }
}

.easter.sign-up h2,
.easter.sign-up .home .vibe-scene .statement,
.home .vibe-scene .easter.sign-up .statement {
  box-shadow: none;
  background-color: transparent;
  padding: 0;
  font-size: 2rem;
  color: #fff
}

.easter.sign-up .statement {
  font-size: 1.2rem
}

@supports (text-wrap: balance) {

  .easter.sign-up h2,
  .easter.sign-up .home .vibe-scene .statement,
  .home .vibe-scene .easter.sign-up .statement,
  .easter.sign-up p {
    text-wrap: balance
  }
}

@media only screen and (min-width: 66em) {

  .easter.sign-up h2,
  .easter.sign-up .home .vibe-scene .statement,
  .home .vibe-scene .easter.sign-up .statement {
    font-size: 2.8rem
  }

  .easter.sign-up .statement {
    font-size: unset
  }
}

.sponsors {
  position: relative;
  top: 0;
  left: 0;
  padding-right: 0;
  padding-left: 0;
  text-align: center
}

.sponsors h2,
.sponsors .home .vibe-scene .statement,
.home .vibe-scene .sponsors .statement {
  margin: 1rem 0;
  font-size: 2.8rem
}

.sponsors ul {
  margin: 0 auto;
  list-style-type: none;
  padding: 0;
  max-width: 2560px;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: center;
  justify-content: center
}

@media only screen and (min-width: 66em) {
  .sponsors ul {
    padding: 1rem 1rem !important;
    max-width: 1240px
  }
}

.sponsors li {
  margin: 0 4%;
  padding: 0;
  background-image: url("../resources/image/Wychwood-Festival-supported-by-28042026.png");
  background-repeat: no-repeat;
  background-position: 0 top;
  background-size: auto 100%
}

.sponsors li.SoloStove {
  background-position: 0px top
}

.sponsors li.HouseOf {
  background-position: -90px top
}

.sponsors li.Renishaw {
  background-position: -180px top
}

.sponsors li.Westons {
  background-position: -270px top
}

.sponsors li.GlosUni {
  background-position: -360px top
}

.sponsors li.GetRadio {
  background-position: -450px top
}

.sponsors li.GlosInfo {
  background-position: -540px top
}

.sponsors li.CheltPoetry {
  background-position: -630px top
}

.sponsors li.onfocus {
  background-position: -720px top
}

.sponsors li.Pimms {
  background-position: -810px top
}

.sponsors li.Rocks {
  background-position: -900px top
}

.sponsors li.Mixtons {
  background-position: -990px top
}

.sponsors li.Shandy {
  background-position: -1080px top
}

.sponsors li.Pip {
  background-position: -1170px top
}

.sponsors li.GreeneKing {
  background-position: -1260px top
}

.sponsors li.JPRDesign {
  background-position: -1350px top
}

.sponsors li.BottleGreen {
  background-position: -1440px top
}

.sponsors li.WODC {
  background-position: -1530px top
}

.sponsors li.UKGovFunded {
  background-position: -1620px top
}

.sponsors li.LevellingUp {
  background-position: -1710px top
}

.sponsors li.Nivea {
  background-position: -1800px top
}

@media only screen and (min-width: 66em) {
  .sponsors li {
    margin: 0 2%
  }

  .sponsors li.SoloStove {
    background-position: 0px top
  }

  .sponsors li.HouseOf {
    background-position: -130px top
  }

  .sponsors li.Renishaw {
    background-position: -260px top
  }

  .sponsors li.Westons {
    background-position: -390px top
  }

  .sponsors li.GlosUni {
    background-position: -520px top
  }

  .sponsors li.GetRadio {
    background-position: -650px top
  }

  .sponsors li.GlosInfo {
    background-position: -780px top
  }

  .sponsors li.CheltPoetry {
    background-position: -910px top
  }

  .sponsors li.onfocus {
    background-position: -1040px top
  }

  .sponsors li.Pimms {
    background-position: -1170px top
  }

  .sponsors li.Rocks {
    background-position: -1300px top
  }

  .sponsors li.Mixtons {
    background-position: -1430px top
  }

  .sponsors li.Shandy {
    background-position: -1560px top
  }

  .sponsors li.Pip {
    background-position: -1690px top
  }

  .sponsors li.GreeneKing {
    background-position: -1820px top
  }

  .sponsors li.JPRDesign {
    background-position: -1950px top
  }

  .sponsors li.BottleGreen {
    background-position: -2080px top
  }

  .sponsors li.WODC {
    background-position: -2210px top
  }

  .sponsors li.UKGovFunded {
    background-position: -2340px top
  }

  .sponsors li.LevellingUp {
    background-position: -2470px top
  }

  .sponsors li.Nivea {
    background-position: -2600px top
  }
}

.sponsors li a {
  display: block;
  background-image: none !important;
  padding-top: 90px;
  width: 90px;
  height: 0;
  overflow: hidden;
  background-image: none
}

.sponsors li a:hover {
  background-image: none
}

@media only screen and (min-width: 66em) {
  .sponsors li a {
    padding-top: 130px;
    width: 130px
  }
}

.js .sponsors li {
  background-image: none
}

.js .sponsors.in-view ul {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 200ms;
  animation-delay: 200ms
}

.js .sponsors.in-view li {
  background-image: url("../resources/image/Wychwood-Festival-supported-by-28042026.png")
}

.sponsors li {
  display: inline-block;
  vertical-align: top
}

.wudu-slide-show {
  position: relative;
  top: 0;
  left: 0;
  margin: 0 auto 1rem;
  width: 100%;
  max-width: 1305px
}

.wudu-slide-show slide-show {
  visibility: hidden;
  --border-colour: rgba(11, 42, 59, 0.4)
}

.wudu-slide-show slide-show.ready {
  visibility: visible;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 200ms;
  animation-delay: 200ms
}

.wudu-slide-show slide-show::part(screen) {
  aspect-ratio: 640/420
}

@media only screen and (min-width: 39em) {
  .wudu-slide-show slide-show::part(screen) {
    aspect-ratio: 1055/595
  }
}

@media only screen and (min-width: 66em) {
  .wudu-slide-show slide-show::part(screen) {
    aspect-ratio: 1305/596
  }
}

template[data-custom-element] {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px)
}

.vendor-list article {
  padding: 0;
  margin: 0 0 2rem
}

@media only screen and (min-width: 39em) {
  .vendor-list article {
    display: flex;
    justify-content: space-between;
    align-content: flex-start
  }

  .vendor-list article:nth-child(even) {
    flex-direction: row-reverse
  }
}

.vendor-list img {
  aspect-ratio: 1
}

.vendor-list .image,
.vendor-list .image-grid .image-grid-item,
.image-grid .vendor-list .image-grid-item,
.vendor-list .copy {
  margin: 0
}

@media only screen and (min-width: 39em) {

  .vendor-list .image,
  .vendor-list .image-grid .image-grid-item,
  .image-grid .vendor-list .image-grid-item,
  .vendor-list .copy {
    width: 46%
  }
}

.gallery {
  --input-bottom-padding: 0
}

.gallery main {
  background-color: #fff
}

.gallery main>section>header {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px)
}

.gallery .columns {
  width: auto
}

.gallery .line-up>section {
  padding-left: 0;
  padding-right: 0
}

.gallery .centre-all,
.gallery .content {
  padding-left: 1rem;
  padding-right: 1rem
}

.gallery .centre-all.boxed,
.gallery .content.boxed {
  margin: 0 1rem;
  padding: 1.4rem 3rem 1rem;
  background-color: #D0FC76;
  color: #0B2A3B;
  line-height: 1.2;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 0s;
  animation-delay: 0s
}

.gallery .info {
  font-family: "body_regular", helvetica, sans-serif;
  line-height: 1.4;
  text-transform: none;
  font-size: 0.7rem
}

@media only screen and (min-width: 66em) {
  .gallery .info {
    font-size: 0.9rem
  }
}

@supports (text-wrap: balance) {
  .gallery .info {
    text-wrap: balance
  }
}

.wudu-gallery {
  margin: 57px auto 0;
  padding: 0;
  aspect-ratio: 16/9
}

@media only screen and (min-width: 39em) {
  .wudu-gallery {
    margin-top: 68px
  }
}

@media only screen and (min-width: 66em) {
  .wudu-gallery {
    margin-top: 74px
  }
}

@media only screen and (max-width: 66em) and (orientation: landscape) {
  .wudu-gallery {
    margin-top: 0
  }
}

gallery-grid {
  margin: 0 0 1rem
}

gallery-grid.ls-watch {
  margin-top: 257px
}

@media only screen and (orientation: landscape) {
  gallery-grid.ls-watch {
    margin-top: 0
  }
}

.gallery gallery-grid slot {
  display: block;
  overflow: auto;
  text-align: center
}

.gallery gallery-grid slot p {
  margin: 1rem auto;
  width: 86%;
  padding: 1rem;
  max-width: 56rem
}

@media only screen and (min-width: 66em) {
  .gallery gallery-grid slot p {
    margin-top: 4rem
  }
}

.image.inline-copy.gallery-control,
.image-grid .inline-copy.gallery-control.image-grid-item {
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
  margin: 0 0.4rem 0 -0.5rem;
  width: 1.46rem
}

@media only screen and (max-width: 66em) and (orientation: landscape) {
  .gallery main {
    margin-top: 0
  }

  .gallery.with-quick-links>header,
  .gallery.with-quick-links .boundary>wudu-graphics,
  .gallery.with-quick-links>.js-user-buttons {
    display: none !important
  }
}

.posters figure img {
  width: 100%;
  max-width: 320px
}

.posters .column h2,
.posters .column .home .vibe-scene .statement,
.home .vibe-scene .posters .column .statement {
  padding-top: 0
}

@media only screen and (min-width: 39em) {

  .posters .column:nth-of-type(2),
  .posters .column:nth-of-type(2n+3) {
    width: 32%
  }

  .posters .column:first-of-type,
  .posters .column:nth-of-type(2n+4) {
    width: 62%;
    margin-bottom: 2.4rem
  }

  .posters figure {
    margin-top: 0.2em;
    margin-bottom: 6rem
  }

  .posters figure img {
    margin: 0 auto;
    opacity: 0;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    -webkit-transition: all 1600ms cubic-bezier(0, 1.23, 0.37, 1.07) 0s;
    transition: all 1600ms cubic-bezier(0, 1.23, 0.37, 1.07) 0s
  }

  .posters figure img.lazlo-loaded {
    opacity: 1;
    -webkit-transform: rotate(-8deg);
    transform: rotate(-8deg);
    box-shadow: 0.2em 0.2em 0.3em 0.1em rgba(11, 42, 59, 0.4)
  }

  .posters figure:hover img {
    -webkit-transform: rotate(0) scale(1.1);
    transform: rotate(0) scale(1.1);
    box-shadow: 1em 1em 1em 0.4em rgba(11, 42, 59, 0.2);
    -webkit-transition-duration: 200ms;
    transition-duration: 200ms
  }
}

.image-buttons .image,
.image-buttons .image-grid .image-grid-item,
.image-grid .image-buttons .image-grid-item {
  -webkit-border-radius: .6em;
  border-radius: .6em
}

.image-buttons .image.gallery,
.image-buttons .image-grid .gallery.image-grid-item,
.image-grid .image-buttons .gallery.image-grid-item,
.image-buttons a.image:hover.gallery,
.image-buttons .image-grid a.image-grid-item:hover.gallery,
.image-grid .image-buttons a.image-grid-item:hover.gallery {
  background-image: url("../resources/gallery/2024/small/Feel-the-vibe-Wchwood-Festival-2024-8.jpg")
}

@media only screen and (min-width: 39em) {

  .image-buttons .image.gallery,
  .image-buttons .image-grid .gallery.image-grid-item,
  .image-grid .image-buttons .gallery.image-grid-item,
  .image-buttons a.image:hover.gallery,
  .image-buttons .image-grid a.image-grid-item:hover.gallery,
  .image-grid .image-buttons a.image-grid-item:hover.gallery {
    background-image: url("../resources/gallery/2024/medium/Feel-the-vibe-Wchwood-Festival-2024-8.jpg")
  }
}

.image-buttons .image.local-legends,
.image-buttons .image-grid .local-legends.image-grid-item,
.image-grid .image-buttons .local-legends.image-grid-item,
.image-buttons a.image:hover.local-legends,
.image-buttons .image-grid a.image-grid-item:hover.local-legends,
.image-grid .image-buttons a.image-grid-item:hover.local-legends {
  background-image: url("../resources/promo/small/Wychwood-Festival-Local-Legends.jpg")
}

@media only screen and (min-width: 39em) {

  .image-buttons .image.local-legends,
  .image-buttons .image-grid .local-legends.image-grid-item,
  .image-grid .image-buttons .local-legends.image-grid-item,
  .image-buttons a.image:hover.local-legends,
  .image-buttons .image-grid a.image-grid-item:hover.local-legends,
  .image-grid .image-buttons a.image-grid-item:hover.local-legends {
    background-image: url("../resources/promo/medium/Wychwood-Festival-Local-Legends.jpg")
  }
}

.image-buttons .image.glamping,
.image-buttons .image-grid .glamping.image-grid-item,
.image-grid .image-buttons .glamping.image-grid-item,
.image-buttons a.image:hover.glamping,
.image-buttons .image-grid a.image-grid-item:hover.glamping,
.image-grid .image-buttons a.image-grid-item:hover.glamping {
  background-image: url("../resources/image/small/boutique-camping-scene.jpg")
}

@media only screen and (min-width: 39em) {

  .image-buttons .image.glamping,
  .image-buttons .image-grid .glamping.image-grid-item,
  .image-grid .image-buttons .glamping.image-grid-item,
  .image-buttons a.image:hover.glamping,
  .image-buttons .image-grid a.image-grid-item:hover.glamping,
  .image-grid .image-buttons a.image-grid-item:hover.glamping {
    background-image: url("../resources/image/medium/boutique-camping-scene.jpg")
  }
}

.image-buttons .image.park-and-pitch,
.image-buttons .image-grid .park-and-pitch.image-grid-item,
.image-grid .image-buttons .park-and-pitch.image-grid-item,
.image-buttons a.image:hover.park-and-pitch,
.image-buttons .image-grid a.image-grid-item:hover.park-and-pitch,
.image-grid .image-buttons a.image-grid-item:hover.park-and-pitch {
  background-image: url("../resources/image/small/park-and-pitch-scene.jpg")
}

@media only screen and (min-width: 39em) {

  .image-buttons .image.park-and-pitch,
  .image-buttons .image-grid .park-and-pitch.image-grid-item,
  .image-grid .image-buttons .park-and-pitch.image-grid-item,
  .image-buttons a.image:hover.park-and-pitch,
  .image-buttons .image-grid a.image-grid-item:hover.park-and-pitch,
  .image-grid .image-buttons a.image-grid-item:hover.park-and-pitch {
    background-image: url("../resources/image/medium/park-and-pitch-scene.jpg")
  }
}

.image-buttons .image.pitch-village,
.image-buttons .image-grid .pitch-village.image-grid-item,
.image-grid .image-buttons .pitch-village.image-grid-item,
.image-buttons a.image:hover.pitch-village,
.image-buttons .image-grid a.image-grid-item:hover.pitch-village,
.image-grid .image-buttons a.image-grid-item:hover.pitch-village {
  background-image: url("../resources/image/small/pitch-village-scene.jpg")
}

@media only screen and (min-width: 39em) {

  .image-buttons .image.pitch-village,
  .image-buttons .image-grid .pitch-village.image-grid-item,
  .image-grid .image-buttons .pitch-village.image-grid-item,
  .image-buttons a.image:hover.pitch-village,
  .image-buttons .image-grid a.image-grid-item:hover.pitch-village,
  .image-grid .image-buttons a.image-grid-item:hover.pitch-village {
    background-image: url("../resources/image/medium/pitch-village-scene.jpg")
  }
}

.image-buttons .image.campervan,
.image-buttons .image-grid .campervan.image-grid-item,
.image-grid .image-buttons .campervan.image-grid-item,
.image-buttons a.image:hover.campervan,
.image-buttons .image-grid a.image-grid-item:hover.campervan,
.image-grid .image-buttons a.image-grid-item:hover.campervan {
  background-image: url("../resources/image/small/campervan-upgrades-2025.jpg")
}

@media only screen and (min-width: 39em) {

  .image-buttons .image.campervan,
  .image-buttons .image-grid .campervan.image-grid-item,
  .image-grid .image-buttons .campervan.image-grid-item,
  .image-buttons a.image:hover.campervan,
  .image-buttons .image-grid a.image-grid-item:hover.campervan,
  .image-grid .image-buttons a.image-grid-item:hover.campervan {
    background-image: url("../resources/image/medium/campervan-upgrades-2025.jpg")
  }
}

.image-buttons .image.sherpas,
.image-buttons .image-grid .sherpas.image-grid-item,
.image-grid .image-buttons .sherpas.image-grid-item,
.image-buttons a.image:hover.sherpas,
.image-buttons .image-grid a.image-grid-item:hover.sherpas,
.image-grid .image-buttons a.image-grid-item:hover.sherpas {
  background-image: url("../resources/image/small/Wychwood-Festival-Sherpas.jpg")
}

@media only screen and (min-width: 39em) {

  .image-buttons .image.sherpas,
  .image-buttons .image-grid .sherpas.image-grid-item,
  .image-grid .image-buttons .sherpas.image-grid-item,
  .image-buttons a.image:hover.sherpas,
  .image-buttons .image-grid a.image-grid-item:hover.sherpas,
  .image-grid .image-buttons a.image-grid-item:hover.sherpas {
    background-image: url("../resources/image/medium/Wychwood-Festival-Sherpas.jpg")
  }
}

.image-buttons .image.vip,
.image-buttons .image-grid .vip.image-grid-item,
.image-grid .image-buttons .vip.image-grid-item,
.image-buttons a.image:hover.vip,
.image-buttons .image-grid a.image-grid-item:hover.vip,
.image-grid .image-buttons a.image-grid-item:hover.vip {
  background-image: url("../resources/image/small/prestbury-club-vip-upgrades.jpg")
}

@media only screen and (min-width: 39em) {

  .image-buttons .image.vip,
  .image-buttons .image-grid .vip.image-grid-item,
  .image-grid .image-buttons .vip.image-grid-item,
  .image-buttons a.image:hover.vip,
  .image-buttons .image-grid a.image-grid-item:hover.vip,
  .image-grid .image-buttons a.image-grid-item:hover.vip {
    background-image: url("../resources/image/medium/prestbury-club-vip-upgrades.jpg")
  }
}

.image-buttons .image.healing,
.image-buttons .image-grid .healing.image-grid-item,
.image-grid .image-buttons .healing.image-grid-item,
.image-buttons a.image:hover.healing,
.image-buttons .image-grid a.image-grid-item:hover.healing,
.image-grid .image-buttons a.image-grid-item:hover.healing {
  background-image: url("../resources/image/small/healing-gardens-upgrades.jpg")
}

@media only screen and (min-width: 66em) {
  .home .explore.image-buttons {
    max-width: 1472px
  }
}

.home .explore.image-buttons .image,
.home .explore.image-buttons .image-grid .image-grid-item,
.image-grid .home .explore.image-buttons .image-grid-item {
  flex: 1 1 auto
}

@media only screen and (min-width: 39em) {

  .home .explore.image-buttons .image,
  .home .explore.image-buttons .image-grid .image-grid-item,
  .image-grid .home .explore.image-buttons .image-grid-item {
    flex-grow: 0;
    flex-basis: 48%
  }
}

@media only screen and (min-width: 66em) {

  .home .explore.image-buttons .image,
  .home .explore.image-buttons .image-grid .image-grid-item,
  .image-grid .home .explore.image-buttons .image-grid-item {
    flex-grow: 1;
    flex-basis: 29%
  }
}

@media only screen and (min-width: 66em) {
  .glamping .programme .item {
    width: 26%
  }
}

html.links-page {
  background-color: #006062
}

html.links-page.get-utc body {
  padding-bottom: 10rem
}

@media only screen and (min-width: 39em) {
  html.links-page.get-utc body {
    padding-bottom: 8rem
  }
}

html.links-page body {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 0;
  padding-top: 2rem;
  min-height: 570px;
  background-color: inherit
}

@media only screen and (min-width: 39em) {
  html.links-page body {
    padding-top: 4rem
  }
}

html.links-page body>header,
html.links-page body main,
html.links-page body footer,
html.links-page body .social-network {
  background-color: transparent;
  z-index: 2
}

html.links-page body>header::after,
html.links-page body main::after,
html.links-page body footer::after,
html.links-page body .social-network::after {
  display: none
}

html.links-page body>header {
  display: block;
  position: relative;
  margin: 0 auto 1rem;
  padding-top: 1.8rem;
  padding-bottom: 1rem;
  width: 76%;
  min-width: 124px;
  height: auto;
  text-align: center
}

html.links-page body>header::before {
  content: "";
  display: block;
  position: absolute;
  top: -36px;
  left: 50%;
  z-index: 101;
  width: clamp(140px, 18vw, 170px);
  height: 72px;
  transform: translate(-50%, 2rem);
  background-position: center top;
  background-repeat: no-repeat;
  background-size: contain;
  filter: drop-shadow(0 1px 2px #0B2A3B)
}

html.links-page body>header img {
  display: block;
  margin: 0 auto .5rem;
  width: 100%;
  max-width: 320px;
  filter: drop-shadow(0 4px 6px #0B2A3B)
}

@media only screen and (min-width: 39em) {
  html.links-page body>header img {
    max-width: 420px
  }
}

html.links-page body .when-and-where {
  display: inline-block;
  margin: 0 auto;
  padding: 0.4em 0.8em 0.3em;
  background-color: #A9EDDD;
  -webkit-border-radius: .4em;
  border-radius: .4em;
  max-width: 420px;
  text-align: inherit
}

@media only screen and (min-width: 39em) {
  html.links-page body .when-and-where {
    padding: 0.4em 0.8em 0.3em
  }

  html.links-page body .when-and-where span {
    display: inline-block
  }

  html.links-page body .when-and-where span::after {
    content: "*";
    display: inline;
    vertical-align: sub;
    margin: 0 0 0 0.3em;
    color: #ff5054;
    line-height: 0
  }
}

html.links-page body .when-and-where h2,
html.links-page body .when-and-where .home .vibe-scene .statement,
.home .vibe-scene html.links-page body .when-and-where .statement {
  padding: 0;
  color: #0B2A3B;
  font-size: clamp(1.1rem, 2.89vw, 1.4rem)
}

.js.links-page body>header::before,
.js.links-page body>header img,
.js.links-page body>header .when-and-where {
  opacity: 0
}

.js.links-page body.logo-intro>header::before {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 0s;
  animation-delay: 0s
}

.js.links-page body.logo-intro>header img {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 400ms;
  animation-delay: 400ms
}

.js.links-page body.logo-intro>header .when-and-where {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 600ms;
  animation-delay: 600ms
}

html.links-page footer {
  padding-bottom: 1rem;
  color: #FEE7DA;
  font-size: 0.9rem
}

html.links-page main {
  margin: 0;
  padding: 0 1rem;
  min-height: auto
}

html.links-page main>ul {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  list-style: none;
  margin: 0 auto;
  padding: .5rem;
  max-width: 320px
}

html.links-page main>ul li {
  margin: 0 0 1rem;
  padding: 0;
  width: 100%
}

html.links-page main>ul li::before {
  display: none
}

html.links-page .button,
html.links-page .image-grid.image-pair a::after,
.image-grid.image-pair html.links-page a::after,
html.links-page .option-button,
html.links-page .filters a,
.filters html.links-page a,
html.links-page .ticket-types a,
.ticket-types html.links-page a,
html.links-page .image-buttons a span,
.image-buttons a html.links-page span,
html.links-page .instagram-media p a,
.instagram-media p html.links-page a,
html.links-page .js .js-user-buttons li a,
.js .js-user-buttons li html.links-page a,
html.links-page .news .article-collection article a::after,
.news .article-collection article html.links-page a::after,
html.links-page .home .announcing .article-collection article a::after,
.home .announcing .article-collection article html.links-page a::after,
html.links-page .embed-video .poster::after,
.embed-video html.links-page .poster::after,
html.links-page .sign-up .submit input,
.sign-up .submit html.links-page input {
  background-color: #FEE7DA;
  color: #ff5054;
  padding: 1rem;
  width: 100%;
  max-width: 320px;
  -webkit-border-radius: .6em;
  border-radius: .6em;
  box-shadow: inset -1px -2px 6px 0px #7a2628
}

html.links-page .button:hover,
html.links-page .image-grid.image-pair a:hover::after,
.image-grid.image-pair html.links-page a:hover::after,
html.links-page .option-button:hover,
html.links-page .filters a:hover,
.filters html.links-page a:hover,
html.links-page .ticket-types a:hover,
.ticket-types html.links-page a:hover,
html.links-page .image-buttons a span:hover,
.image-buttons a html.links-page span:hover,
html.links-page .instagram-media p a:hover,
.instagram-media p html.links-page a:hover,
html.links-page .js .js-user-buttons li a:hover,
.js .js-user-buttons li html.links-page a:hover,
html.links-page .news .article-collection article a:hover::after,
.news .article-collection article html.links-page a:hover::after,
html.links-page .home .announcing .article-collection article a:hover::after,
.home .announcing .article-collection article html.links-page a:hover::after,
html.links-page .embed-video .poster:hover::after,
.embed-video html.links-page .poster:hover::after,
html.links-page .sign-up .submit input:hover,
.sign-up .submit html.links-page input:hover {
  background-color: #66D0C6;
  color: #0B2A3B;
  box-shadow: inset -1px -2px 6px 0px #002e2f
}

html.links-page .social-network {
  margin-bottom: 1.2rem;
  padding: 1rem 0
}

html.links-page .social-network .icon.mask {
  position: relative;
  top: 0;
  left: 0;
  background-color: #FEE7DA
}

html.links-page .social-network .icon.mask:hover {
  background-color: #0B2A3B
}

html.links-page .social-network .circ {
  list-style: none;
  padding: 0;
  margin: 0 3%;
  background-color: #ff5054;
  height: 54px;
  display: inline-flex;
  overflow: hidden;
  border-radius: 50%;
  width: 54px;
  justify-content: center;
  align-items: center;
  -webkit-transition: background-color 800ms ease-out 0s;
  transition: background-color 800ms ease-out 0s;
  cursor: pointer
}

html.links-page wudu-graphics.spots-back {
  position: fixed
}

html.links-page wudu-graphics.spots-back::before {
  background-image: url("../resources/graphics/links-page-spots-left.png");
  background-position: left 0px top -48px;
  background-size: 97% auto;
  top: -32px;
  left: -101px;
  width: 400px;
  width: clamp(320px, 100%, 440px);
  height: 110%
}

html.links-page wudu-graphics.spots-back::after {
  background-image: url("../resources/graphics/links-page-spots-right.png");
  background-position: left 0px bottom -128px;
  background-size: 90% auto;
  right: -159px;
  bottom: 0px;
  width: 400px;
  width: clamp(320px, 100%, 424px);
  height: 100%
}

html.links-page .rope div {
  background-image: url("../resources/graphics/ropes-background.svg");
  background-size: auto 100%;
  background-position: right top
}

html.links-page .rope.loop1 {
  top: 55%;
  left: -23px;
  width: 180px;
  width: clamp(140px, 46vw, 240px);
  height: 460px;
  height: clamp(460px, 100vw, 520px);
  transform: translateY(-50%)
}

html.links-page .rope.loop2 {
  top: 0;
  right: 0;
  width: 106px;
  width: clamp(106px, 24vw, 240px);
  height: 200px;
  height: clamp(200px, 55vw, 270px)
}

html.links-page .rope.loop2 div {
  background-position: left top;
  background-size: auto 200%
}

html.links-page .rope.loop3 {
  right: 0;
  bottom: -24px;
  width: 264px;
  width: clamp(106px, 69vw, 372px);
  height: 200px;
  height: clamp(200px, 55vw, 270px)
}

html.links-page .rope.loop3 div {
  background-position: left bottom;
  background-size: auto 210%
}

html.links-page .bounds {
  transition-delay: 400ms
}

html.links-page .in-view .bounds {
  opacity: 1;
  -webkit-transform: rotate(0deg) scale(1);
  transform: rotate(0deg) scale(1)
}

.local-legends section>header.base-scene {
  display: flex;
  justify-content: center;
  padding: 0;
  height: 280px;
  background-position: center center;
  background-repeat: no-repeat;
  background-image: url("../resources/promo/small/Wychwood-Festival-Local-Legends.jpg")
}

@media only screen and (min-width: 39em) {
  .local-legends section>header.base-scene {
    height: 320px;
    background-image: url("../resources/promo/medium/Wychwood-Festival-Local-Legends.jpg")
  }
}

@media only screen and (min-width: 66em) {
  .local-legends section>header.base-scene {
    height: 480px;
    background-image: url("../resources/promo/large/Wychwood-Festival-Local-Legends.jpg")
  }
}

.local-legends .column {
  padding-right: 1rem;
  padding-left: 1rem
}

.game {
  --fail-colour: 239, 125, 127;
  --fail-colour-opacity: 1;
  --fail-shadow: inset -2px -4px 8px 2px rgba(255, 80, 84, 1), inset 2px 4px 8px 2px rgba(255, 255, 255, 0.6);
  --pass-colour: 10, 180, 187;
  --pass-colour-opacity: 1;
  --pass-shadow: inset -2px -4px 8px 2px rgba(0, 96, 98, 1), inset 2px 4px 8px 2px rgba(255, 255, 255, 0.6);
  --board-background: linear-gradient(to right, #B44BB0, #FF757C);
  --board-radius: 2rem;
  --board-colour: white;
  --board-font: body_regular, helvetica, sans-serif;
  --board-heading-font: condensed_bold, helvetica, sans-serif;
  --board-heading-size: 1.6rem;
  --board-input-border: #006062;
  --board-shadow: inset -2px -4px 8px 2px rgba(255, 80, 84, 1), inset 2px 4px 8px 2px rgba(255, 255, 255, 0.6);
  --game-win-background: #0AB4BB;
  --game-win-text: white
}

.game main>section:first-child {
  padding-top: 1rem
}

.game .content {
  margin: 0 auto;
  padding: 1rem 0 0;
  max-width: 43rem
}

.game .content>h2,
.game .home .vibe-scene .content>.statement,
.home .vibe-scene .game .content>.statement {
  color: #ff5054
}

.game .content #gameTitle {
  box-sizing: border-box;
  margin: 0 auto 1rem;
  width: 100%;
  max-width: 480px;
  height: 0;
  padding-top: clamp(32px, 20vw, 104px);
  overflow: hidden;
  background-image: url("../resources/promo/games/password-game-title.png");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 100% auto
}

.game wf-game {
  box-sizing: border-box;
  display: block;
  min-height: 216px
}

.game .info {
  font-family: "body_regular", helvetica, sans-serif;
  text-transform: none
}

.js .game #gameTitle {
  opacity: 0
}

.js .game wf-game::part(board) {
  opacity: 0;
  transition-property: opacity;
  transition-duration: 1s;
  transition-delay: 400ms
}

.js .game.game-intro #gameTitle {
  opacity: 1;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 400ms;
  animation-duration: 400ms;
  -webkit-animation-delay: 0s;
  animation-delay: 0s;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: zoomInElastic;
  animation-name: zoomInElastic
}

.js .game.game-intro wf-game.play::part(board) {
  opacity: 1
}

.memories .memories-collection {
  margin: 0;
  padding-top: 1rem;
  text-align: center
}

@media only screen and (min-width: 39em) {
  .memories .memories-collection {
    columns: 2 auto;
    column-gap: 1rem
  }
}

@media only screen and (min-width: 66em) {
  .memories .memories-collection {
    columns: 4 auto
  }
}

.memories .memories-collection .mem-card {
  display: inline-block;
  margin: 0 0 1rem;
  padding: 0;
  -webkit-border-radius: .6em;
  border-radius: .6em;
  background-color: #D0FC76
}

@media only screen and (min-width: 39em) {
  .memories .memories-collection .mem-card {
    width: calc(100% - 1rem);
    margin: 0 0 2rem
  }
}

.memories .memories-collection .mem-card {
  text-align: left
}

.memories .memories-collection .mem-card figure {
  margin: 0 0 1rem
}

.memories .memories-collection .mem-card figure img {
  -webkit-border-radius: .6em .6em 0 0;
  border-radius: .6em .6em 0 0;
  width: 100%
}

.memories .memories-collection .mem-card header {
  margin: 0 0 1rem;
  padding: 0 1rem
}

.memories .memories-collection .mem-card header h2,
.memories .memories-collection .mem-card header .home .vibe-scene .statement,
.home .vibe-scene .memories .memories-collection .mem-card header .statement {
  margin: 0;
  padding: 0;
  color: #fff
}

.memories .memories-collection .mem-card p {
  padding: 0 1rem
}

.memories .memories-collection .mem-card p:first-child {
  padding-top: 1rem
}

.memories .memories-collection .mem-card span.by-line {
  font-family: "body_bold", helvetica, sans-serif
}

.memories .boxed.posted-memory {
  margin: 1rem auto;
  background-color: #D0FC76;
  text-align: center
}

@media only screen and (min-width: 39em) {
  .memories .boxed.posted-memory {
    max-width: calc(100% - 3rem)
  }
}

@media only screen and (min-width: 66em) {
  .memories .boxed.posted-memory {
    max-width: calc(50% - 3rem)
  }
}

.memories .boxed.posted-memory h2,
.memories .boxed.posted-memory .home .vibe-scene .statement,
.home .vibe-scene .memories .boxed.posted-memory .statement {
  margin: 0 auto 1rem;
  color: #006062
}

.memories .boxed.posted-memory p {
  color: #0B2A3B
}

@media only screen and (min-width: 39em) {
  .memories.with-modal .modal-view {
    width: 80%
  }

  .memories.with-modal .modal-view .content-box {
    background-color: transparent
  }
}

@media only screen and (min-width: 66em) {
  .memories.with-modal .modal-view {
    max-width: calc(50% - 3rem)
  }
}

.memories.with-modal .close {
  background-color: #006062
}

.memories.with-modal .close:hover {
  background-color: #ff5054 !important
}

.memories.with-modal .boxed.posted-memory {
  margin: 0;
  width: 80%
}

.memories.with-modal .boxed.posted-memory h2,
.memories.with-modal .boxed.posted-memory .home .vibe-scene .statement,
.home .vibe-scene .memories.with-modal .boxed.posted-memory .statement {
  margin: 1rem auto
}

@media only screen and (min-width: 39em) {
  .memories.with-modal .boxed.posted-memory {
    width: auto;
    max-width: none
  }
}

.promo-content {
  margin: 0 auto 1rem;
  padding: 0;
  max-width: 656px;
  -webkit-user-select: none;
  user-select: none;
  pointer-events: none
}

.promo-content a {
  pointer-events: auto
}

@media only screen and (min-width: 66em) {
  .promo-content {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    z-index: 101;
    transform: translateY(-50%)
  }
}

.promo-content h2,
.promo-content .home .vibe-scene .statement,
.home .vibe-scene .promo-content .statement {
  font-size: unset !important
}

.promo-content h2>span:first-child,
.promo-content .home .vibe-scene .statement>span:first-child,
.home .vibe-scene .promo-content .statement>span:first-child {
  display: inline-block;
  clip-path: polygon(0 0, 100% 0, calc(100% - 0.3em) 50%, 100% 100%, 0 100%, 0.3em 50%);
  padding: 0.2em 0.8em 0.1em;
  background-color: #A9EDDD;
  color: #006062;
  font-family: "poster_bold", "heading_extra_black", helvetica, sans-serif;
  font-size: 1.2rem;
  font-size: clamp(1rem, 4vw, 2rem);
  text-transform: uppercase;
  line-height: 1
}

@media only screen and (min-width: 39em) {

  .promo-content h2>span:first-child,
  .promo-content .home .vibe-scene .statement>span:first-child,
  .home .vibe-scene .promo-content .statement>span:first-child {
    font-size: clamp(1rem, 3vw, 1.72rem)
  }
}

.promo-content h2 time,
.promo-content .home .vibe-scene .statement time,
.home .vibe-scene .promo-content .statement time,
.promo-content h2 .shout,
.promo-content .home .vibe-scene .statement .shout,
.home .vibe-scene .promo-content .statement .shout {
  display: block;
  margin: 0.1rem 0 0.5rem;
  color: #fff;
  font-family: "heading_extra_black", helvetica, sans-serif;
  text-transform: uppercase;
  font-size: 4.2rem;
  font-size: clamp(4rem, 21vw, 8rem);
  line-height: 0.73em;
  letter-spacing: -0.9pt;
  filter: drop-shadow(2px 2px 4px #0B2A3B)
}

@media only screen and (min-width: 39em) {

  .promo-content h2 time,
  .promo-content .home .vibe-scene .statement time,
  .home .vibe-scene .promo-content .statement time,
  .promo-content h2 .shout,
  .promo-content .home .vibe-scene .statement .shout,
  .home .vibe-scene .promo-content .statement .shout {
    font-size: clamp(4rem, 11vw, 9rem)
  }
}

.promo-content h2 time span,
.promo-content .home .vibe-scene .statement time span,
.home .vibe-scene .promo-content .statement time span,
.promo-content h2 .shout span,
.promo-content .home .vibe-scene .statement .shout span,
.home .vibe-scene .promo-content .statement .shout span {
  font-size: 1.42em
}

@media only screen and (min-width: 66em) {

  .promo-content h2 time span,
  .promo-content .home .vibe-scene .statement time span,
  .home .vibe-scene .promo-content .statement time span,
  .promo-content h2 .shout span,
  .promo-content .home .vibe-scene .statement .shout span,
  .home .vibe-scene .promo-content .statement .shout span {
    font-size: 1.44em
  }
}

.promo-content h2 time sup,
.promo-content .home .vibe-scene .statement time sup,
.home .vibe-scene .promo-content .statement time sup,
.promo-content h2 .shout sup,
.promo-content .home .vibe-scene .statement .shout sup,
.home .vibe-scene .promo-content .statement .shout sup {
  vertical-align: super;
  line-height: 1;
  font-size: 0.6em;
  position: relative;
  top: 0.05em
}

.promo-content h2 .shout,
.promo-content .home .vibe-scene .statement .shout,
.home .vibe-scene .promo-content .statement .shout {
  margin: 0.9rem 0 0;
  filter: drop-shadow(1px 1px 6px rgba(11, 42, 59, 0.8));
  line-height: 0.77em;
  letter-spacing: -0.5pt;
  font-size: 6rem;
  font-size: clamp(5rem, 25vw, 9rem)
}

.promo-content h2 .little-shout,
.promo-content .home .vibe-scene .statement .little-shout,
.home .vibe-scene .promo-content .statement .little-shout {
  font-size: 3rem;
  font-size: clamp(2rem, 12vw, 6rem);
  filter: drop-shadow(1px 1px 6px rgba(11, 42, 59, 0.8))
}

.promo-content h2 .little-shout span,
.promo-content .home .vibe-scene .statement .little-shout span,
.home .vibe-scene .promo-content .statement .little-shout span {
  font-size: 1.06em
}

.promo-content p {
  display: inline-block;
  margin: 0;
  padding: 0
}

.promo-content .cta-motive {
  display: inline-block;
  -webkit-border-radius: .2em;
  border-radius: .2em;
  margin: 0;
  padding: 0.25em 0.6em 0.1em;
  color: #fff;
  font-family: "poster_bold", "heading_extra_black", helvetica, sans-serif;
  font-size: 1.3rem;
  font-size: clamp(1rem, 5.2vw, 2rem);
  text-transform: uppercase;
  line-height: 1
}

@media only screen and (min-width: 39em) {
  .promo-content .cta-motive {
    font-size: clamp(1rem, 3vw, 2.26rem)
  }
}

.home .vibe-scene .promo-content.flare_up {
  color: #fff
}

.home .vibe-scene .promo-content.flare_up p {
  display: block
}

@media only screen and (min-width: 39em) {
  .home .vibe-scene .promo-content.flare_up {
    padding-top: 3rem
  }
}

@media only screen and (min-width: 66em) {
  .home .vibe-scene .promo-content.flare_up {
    padding-top: 0
  }
}

.home .vibe-scene .promo-content.flare_up .statement,
.home .vibe-scene .promo-content.flare_up .sub-statement {
  margin: 0 0 1rem;
  font-size: 5rem !important;
  line-height: 0.84;
  filter: drop-shadow(0 1px 3px #0B2A3B);
  font-family: "heading_extra_black", helvetica, sans-serif
}

@media only screen and (min-width: 66em) {

  .home .vibe-scene .promo-content.flare_up .statement,
  .home .vibe-scene .promo-content.flare_up .sub-statement {
    line-height: 0.84;
    font-size: 5.8rem !important
  }
}

.home .vibe-scene .promo-content.flare_up .sub-statement {
  text-transform: uppercase;
  font-size: 4.2rem !important
}

@supports(text-wrap: balance) {
  .home .vibe-scene .promo-content.flare_up .sub-statement {
    text-wrap: balance
  }
}

.home .vibe-scene .promo-content.flare_up .statement span,
.home .vibe-scene .promo-content.flare_up .sub-statement span {
  display: block;
  background-color: transparent;
  color: inherit;
  font-family: "poster_bold", "heading_extra_black", helvetica, sans-serif;
  font-size: clamp(1rem, 6.2vw, 3.1rem);
  line-height: 1
}

.home .vibe-scene .promo-content.flare_up .statement sub,
.home .vibe-scene .promo-content.flare_up .sub-statement sub {
  display: inline;
  vertical-align: baseline;
  font-size: 0.7em
}

.home .vibe-scene .promo-content.flare_up .statement sup,
.home .vibe-scene .promo-content.flare_up .sub-statement sup {
  display: inline;
  vertical-align: super;
  position: relative;
  top: 4px;
  left: 0;
  font-size: 0.6em
}

@media only screen and (min-width: 66em) {
  .home .vibe-scene .promo-content.flare_up .sub-statement span {
    font-size: clamp(1rem, 6.2vw, 2.7rem);
    line-height: 1.6
  }
}

.home .vibe-scene .promo-content.flare_up .cta-motive {
  font-size: 1.3rem;
  font-size: clamp(1rem, 7.2vw, 2.4rem)
}

.home .vibe-scene .promo-content.flare_up .promo-button {
  margin-bottom: 3rem
}

.js .vibe-up .promo-content.flare_up .statement {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 200ms;
  animation-duration: 200ms;
  -webkit-animation-delay: 800ms;
  animation-delay: 800ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: zoomInElastic;
  animation-name: zoomInElastic
}

.js .vibe-up .promo-content.flare_up .statement+p .cta-motive {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 200ms;
  animation-duration: 200ms;
  -webkit-animation-delay: 1200ms;
  animation-delay: 1200ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: zoomInElastic;
  animation-name: zoomInElastic
}

.js .vibe-up .promo-content.flare_up .sub-statement {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 200ms;
  animation-duration: 200ms;
  -webkit-animation-delay: 1400ms;
  animation-delay: 1400ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: zoomInElastic;
  animation-name: zoomInElastic
}

.js .vibe-up .promo-content.flare_up .sub-statement+p .cta-motive {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 200ms;
  animation-duration: 200ms;
  -webkit-animation-delay: 1600ms;
  animation-delay: 1600ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: zoomInElastic;
  animation-name: zoomInElastic
}

.promo-content .promo-button {
  text-decoration: none;
  background-image: none;
  color: #fff;
  background-color: #ff5054
}

.promo-content .promo-button span {
  display: block;
  font-family: "heading_extra_black", helvetica, sans-serif;
  color: #0B2A3B
}

.promo-content .promo-button:hover {
  background-color: #0B2A3B !important;
  color: #ff5054 !important;
  background-image: none !important
}

.promo-content .promo-button:hover span {
  color: #fff
}

.no-touch .promo-content .promo-button {
  -webkit-transition: all 800ms ease-out 0s;
  transition: all 800ms ease-out 0s
}

.no-touch .promo-content .promo-button:hover {
  -webkit-transition-duration: 200ms;
  transition-duration: 200ms
}

.var-two .promo-content h2>span:first-child,
.var-two .promo-content .home .vibe-scene .statement>span:first-child,
.home .vibe-scene .var-two .promo-content .statement>span:first-child,
.var-two .promo-content .cta-motive {
  color: #fff;
  background-color: #ff5054
}

.home .vibe-scene.var-two .button,
.home .vibe-scene.var-two .image-grid.image-pair a::after,
.image-grid.image-pair .home .vibe-scene.var-two a::after,
.home .vibe-scene.var-two .option-button,
.home .vibe-scene.var-two .filters a,
.filters .home .vibe-scene.var-two a,
.home .vibe-scene.var-two .ticket-types a,
.ticket-types .home .vibe-scene.var-two a,
.home .vibe-scene.var-two .image-buttons a span,
.image-buttons a .home .vibe-scene.var-two span,
.home .vibe-scene.var-two .instagram-media p a,
.instagram-media p .home .vibe-scene.var-two a,
.home .vibe-scene.var-two .js .js-user-buttons li a,
.js .js-user-buttons li .home .vibe-scene.var-two a,
.home .vibe-scene.var-two .news .article-collection article a::after,
.news .article-collection article .home .vibe-scene.var-two a::after,
.home .vibe-scene.var-two .announcing .article-collection article a::after,
.home .announcing .article-collection article .vibe-scene.var-two a::after,
.home .vibe-scene.var-two .embed-video .poster::after,
.embed-video .home .vibe-scene.var-two .poster::after,
.home .vibe-scene.var-two .sign-up .submit input,
.sign-up .submit .home .vibe-scene.var-two input {
  background-color: #66D0C6;
  color: #fff
}

.home .vibe-scene.var-two .button:hover,
.home .vibe-scene.var-two .image-grid.image-pair a:hover::after,
.image-grid.image-pair .home .vibe-scene.var-two a:hover::after,
.home .vibe-scene.var-two .option-button:hover,
.home .vibe-scene.var-two .filters a:hover,
.filters .home .vibe-scene.var-two a:hover,
.home .vibe-scene.var-two .ticket-types a:hover,
.ticket-types .home .vibe-scene.var-two a:hover,
.home .vibe-scene.var-two .image-buttons a span:hover,
.image-buttons a .home .vibe-scene.var-two span:hover,
.home .vibe-scene.var-two .instagram-media p a:hover,
.instagram-media p .home .vibe-scene.var-two a:hover,
.home .vibe-scene.var-two .js .js-user-buttons li a:hover,
.js .js-user-buttons li .home .vibe-scene.var-two a:hover,
.home .vibe-scene.var-two .news .article-collection article a:hover::after,
.news .article-collection article .home .vibe-scene.var-two a:hover::after,
.home .vibe-scene.var-two .announcing .article-collection article a:hover::after,
.home .announcing .article-collection article .vibe-scene.var-two a:hover::after,
.home .vibe-scene.var-two .embed-video .poster:hover::after,
.embed-video .home .vibe-scene.var-two .poster:hover::after,
.home .vibe-scene.var-two .sign-up .submit input:hover,
.sign-up .submit .home .vibe-scene.var-two input:hover {
  background-color: #0B2A3B
}

.vibe-scene.var-two {
  min-height: 460px
}

@media only screen and (min-width: 39em) {
  .vibe-scene.var-two {
    min-height: 543px
  }
}

@media only screen and (min-width: 66em) {
  .vibe-scene.var-two {
    padding: 2rem 0;
    min-height: 743px
  }
}

.vibe-scene.var-two>figure {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden
}

.vibe-scene.var-two picture {
  margin: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%
}

.vibe-scene.var-two img {
  height: 100%;
  max-width: none
}

@media only screen and (min-width: 39em) {
  .vibe-scene.var-two img {
    max-width: 130%;
    height: auto
  }
}

@media only screen and (min-width: 66em) {
  .vibe-scene.var-two img {
    width: 100%
  }
}

.vibe-scene.var-two p.cta-motive {
  margin-bottom: 1rem
}

.js .vibe-scene.var-two>figure:first-of-type,
.js .vibe-scene.var-two .promo-content {
  opacity: 0
}

.vibe-up .vibe-scene.var-two>figure:first-of-type {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-delay: 200ms;
  animation-delay: 200ms
}

.vibe-up .vibe-scene.var-two .promo-content {
  opacity: 1
}

.promo-content.with-image {
  max-width: 720px
}

@media only screen and (min-width: 39em) {
  .promo-content.with-image {
    padding-top: 5rem
  }
}

@media only screen and (min-width: 66em) {
  .promo-content.with-image {
    padding-top: 2rem;
    padding-bottom: 2rem;
    max-width: 1305px
  }
}

.promo-content.with-image>figure {
  margin: 0 auto .5rem !important
}

@media only screen and (min-width: 66em) {
  .promo-content.with-image>figure {
    max-width: 78%;
    max-width: clamp(70%, 72vw, 90%)
  }
}

.promo-content.with-image img {
  max-width: 100% !important
}

.js .vibe-up .promo-content h2>span,
.js .vibe-up .promo-content .home .vibe-scene .statement>span,
.home .vibe-scene .js .vibe-up .promo-content .statement>span {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 200ms;
  animation-duration: 200ms;
  -webkit-animation-delay: 800ms;
  animation-delay: 800ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: zoomInElastic;
  animation-name: zoomInElastic
}

.js .vibe-up .promo-content h2 time,
.js .vibe-up .promo-content .home .vibe-scene .statement time,
.home .vibe-scene .js .vibe-up .promo-content .statement time,
.js .vibe-up .promo-content h2 .shout,
.js .vibe-up .promo-content .home .vibe-scene .statement .shout,
.home .vibe-scene .js .vibe-up .promo-content .statement .shout {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 200ms;
  animation-duration: 200ms;
  -webkit-animation-delay: 1000ms;
  animation-delay: 1000ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: zoomInElastic;
  animation-name: zoomInElastic
}

.js .vibe-up .promo-content .cta-motive {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 200ms;
  animation-duration: 200ms;
  -webkit-animation-delay: 1200ms;
  animation-delay: 1200ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: zoomInElastic;
  animation-name: zoomInElastic
}

.js .vibe-scene .button,
.js .vibe-scene .image-grid.image-pair a::after,
.image-grid.image-pair .js .vibe-scene a::after,
.js .vibe-scene .option-button,
.js .vibe-scene .filters a,
.filters .js .vibe-scene a,
.js .vibe-scene .ticket-types a,
.ticket-types .js .vibe-scene a,
.js .vibe-scene .image-buttons a span,
.image-buttons a .js .vibe-scene span,
.js .vibe-scene .instagram-media p a,
.instagram-media p .js .vibe-scene a,
.js .vibe-scene .js-user-buttons li a,
.js .js-user-buttons li .vibe-scene a,
.js .vibe-scene .news .article-collection article a::after,
.news .article-collection article .js .vibe-scene a::after,
.js .vibe-scene .home .announcing .article-collection article a::after,
.home .announcing .article-collection article .js .vibe-scene a::after,
.js .vibe-scene .embed-video .poster::after,
.embed-video .js .vibe-scene .poster::after,
.js .vibe-scene .sign-up .submit input,
.sign-up .submit .js .vibe-scene input {
  opacity: 0
}

.js .vibe-up .vibe-scene .button,
.js .vibe-up .vibe-scene .image-grid.image-pair a::after,
.image-grid.image-pair .js .vibe-up .vibe-scene a::after,
.js .vibe-up .vibe-scene .option-button,
.js .vibe-up .vibe-scene .filters a,
.filters .js .vibe-up .vibe-scene a,
.js .vibe-up .vibe-scene .ticket-types a,
.ticket-types .js .vibe-up .vibe-scene a,
.js .vibe-up .vibe-scene .image-buttons a span,
.image-buttons a .js .vibe-up .vibe-scene span,
.js .vibe-up .vibe-scene .instagram-media p a,
.instagram-media p .js .vibe-up .vibe-scene a,
.js .vibe-up .vibe-scene .js-user-buttons li a,
.js .js-user-buttons li .vibe-up .vibe-scene a,
.js .vibe-up .vibe-scene .news .article-collection article a::after,
.news .article-collection article .js .vibe-up .vibe-scene a::after,
.js .vibe-up .vibe-scene .home .announcing .article-collection article a::after,
.home .announcing .article-collection article .js .vibe-up .vibe-scene a::after,
.js .vibe-up .vibe-scene .embed-video .poster::after,
.embed-video .js .vibe-up .vibe-scene .poster::after,
.js .vibe-up .vibe-scene .sign-up .submit input,
.sign-up .submit .js .vibe-up .vibe-scene input {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 200ms;
  animation-duration: 200ms;
  -webkit-animation-delay: 1400ms;
  animation-delay: 1400ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: zoomInElastic;
  animation-name: zoomInElastic
}

.js .vibe-up .promo-content.with-image figure {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 200ms;
  animation-duration: 200ms;
  -webkit-animation-delay: 800ms;
  animation-delay: 800ms;
  -webkit-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -ms-animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  animation-timing-function: cubic-bezier(0, 1.23, 0.37, 1.07);
  -webkit-backface-visibility: hidden;
  -webkit-animation-name: zoomInElastic;
  animation-name: zoomInElastic
}

.twentieth-scene article {
  margin: 0 auto 1.2rem;
  -webkit-border-radius: 1.2rem;
  border-radius: 1.2rem;
  padding: 2rem 1rem 1rem;
  background-color: #0AB4BB;
  max-width: 440px
}

.twentieth-scene article h2,
.twentieth-scene article .home .vibe-scene .statement,
.home .vibe-scene .twentieth-scene article .statement {
  padding: 0;
  color: #fff
}

.twentieth-scene article p>span:first-child {
  display: inline-block;
  -webkit-border-radius: .3em;
  border-radius: .3em;
  margin: 0;
  padding: 0.3em 0.6em 0.1em;
  background-color: #006062;
  color: #fff;
  font-family: "poster_bold", "heading_extra_black", helvetica, sans-serif;
  font-size: 1.3rem;
  font-size: clamp(1rem, 1.9vw, 1.3rem);
  text-transform: uppercase;
  line-height: 1.2
}

.twentieth-scene article p span+span,
.twentieth-scene article time {
  display: block;
  margin: 0.4rem 0 1.2rem;
  color: #fff;
  font-family: "heading_extra_black", helvetica, sans-serif;
  text-transform: uppercase;
  font-size: 2.2rem;
  font-size: clamp(2rem, 9.2vw, 3rem);
  line-height: 0.92em;
  letter-spacing: -0.9pt
}

.twentieth-scene article p span+span sup,
.twentieth-scene article time sup {
  vertical-align: super;
  line-height: 1;
  font-size: 0.6em;
  position: relative;
  top: 0em
}

.twentieth-scene article p.statement {
  text-wrap: wrap;
  width: 82%;
  max-width: 380px;
  font-family: "heading_extra_black", helvetica, sans-serif;
  font-size: 1.3rem;
  font-size: clamp(2rem, 7.2vw, 2.1rem);
  text-transform: uppercase
}

.twentieth-scene hr {
  margin: 2.4rem auto
}

.twentieth-scene hr::after {
  width: 3rem;
  height: 3rem
}

.tickets .boundary>section.sign-up {
  display: none
}

.home .modal-view,
.tickets .modal-view {
  max-width: 520px
}

@media only screen and (min-width: 66em) {

  .home .modal-view,
  .tickets .modal-view {
    max-width: 720px
  }
}

.home .modal-view .base-scene,
.tickets .modal-view .base-scene {
  background-color: transparent
}

.home .modal-view .base-scene::after,
.tickets .modal-view .base-scene::after {
  display: none
}

.overlay {
  background-color: rgba(11, 42, 59, 0.8);
  backdrop-filter: blur(0.2rem)
}

#preSaleSignUp {
  margin: 0 auto;
  padding: 1rem;
  text-align: center
}

@media only screen and (min-width: 39em) {
  #preSaleSignUp {
    padding-top: 5rem;
    padding-bottom: 3rem
  }
}

@media only screen and (min-width: 66em) {
  #preSaleSignUp {
    max-width: none
  }

  #preSaleSignUp form#signUp {
    max-width: 470px
  }

  #preSaleSignUp fieldset {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    gap: 0 2%
  }

  #preSaleSignUp fieldset .text {
    flex: 0 1 49%
  }

  #preSaleSignUp fieldset .text:last-child {
    flex: auto
  }
}

#preSaleSignUp h2#modalTitle,
#preSaleSignUp .home .vibe-scene #modalTitle.statement,
.home .vibe-scene #preSaleSignUp #modalTitle.statement {
  color: #fff;
  font-size: 3.6rem;
  line-height: 0.86
}

@supports (text-wrap: balance) {

  #preSaleSignUp h2#modalTitle,
  #preSaleSignUp .home .vibe-scene #modalTitle.statement,
  .home .vibe-scene #preSaleSignUp #modalTitle.statement {
    text-wrap: balance
  }
}

#preSaleSignUp .statement {
  color: #0B2A3B;
  font-size: 2.4rem;
  font-family: "heading_extra_black", helvetica, sans-serif;
  line-height: 0.86
}

@supports (text-wrap: balance) {
  #preSaleSignUp .statement {
    text-wrap: balance
  }
}

#preSaleSignUp.sign-up .text label {
  height: 0;
  color: #ff5054
}

#preSaleSignUp.sign-up .text input::placeholder {
  font-weight: bold !important;
  font-family: "heading_extra_black", helvetica, sans-serif;
  text-transform: uppercase;
  color: #0B2A3B;
  font-size: 1.4rem
}

#preSaleSignUp.sign-up .text input {
  border: none;
  font-family: "heading_extra_black", helvetica, sans-serif;
  text-transform: uppercase;
  font-size: 1.4rem
}

#preSaleSignUp.sign-up .text input:focus-visible {
  outline-color: #66D0C6 !important
}

#preSaleSignUp p.required-field {
  font-family: "heading_extra_black", helvetica, sans-serif;
  text-transform: uppercase;
  font-size: 1.4rem
}

#preSaleSignUp #userPrompt {
  background-color: #66D0C6
}

@supports(text-wrap: balance) {
  #preSaleSignUp #userPrompt {
    text-wrap: balance
  }
}

#preSaleSignUp.sign-up .submit input:focus-visible {
  outline-color: #66D0C6 !important
}

.sysadmin-info {
  margin: 0 auto 1rem;
  padding: 2rem 1rem 1rem;
  background-color: #ffdc00;
  text-align: center;
  color: #006062
}

.sysadmin-info>h2,
.home .vibe-scene .sysadmin-info>.statement {
  display: inline-block;
  padding: .5rem;
  color: #FEE7DA;
  background-color: #ff5054
}

#devLog {
  display: flex;
  align-items: flext-start;
  position: fixed;
  bottom: 10vh;
  left: 0;
  right: 0;
  z-index: 121;
  box-sizing: content-box;
  margin: 0 auto;
  padding: 1rem;
  width: 100%;
  max-width: 640px;
  min-height: 64px;
  background-color: #d3d3d3;
  color: #000;
  font-family: verdana, helvetica, sans-serif;
  font-size: 0.8rem;
  line-height: 2.1ex;
  letter-spacing: 0ex
}

/*# sourceMappingURL=huiccewudu.css.map */
