@charset "UTF-8";
*, *:after, *:before {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}
*:focus, *:after:focus, *:before:focus {
  outline: 0;
}

html {
  min-height: 100%;
  height: 100%;
  font-size: 62.5%;
  block-size: 100%;
  inline-size: 100%;
  -webkit-text-size-adjust: none;
}

body {
  width: 100%;
  min-height: 100%;
  min-block-size: 100%;
  min-inline-size: 100%;
  line-height: 1;
  font-size: 1.6em;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

p:empty, pre:empty, blockquote:empty, ol:empty, ul:empty, li:empty, legend:empty, figcaption:empty, body:empty, article:empty, nav:empty,
aside:empty, section:empty, header:empty, footer:empty, address:empty {
  display: none;
}

article, aside, details, figcaption, figure, footer, header, menu, nav, section,
img, svg, video, canvas, audio, iframe, embed, object {
  display: block;
}

template, [hidden] {
  display: none !important;
}

ol, ul {
  list-style-position: inside;
}

hr {
  border-width: 1px 0 0 0;
  color: inherit;
  height: 0;
  overflow: visible;
}

blockquote, q {
  quotes: "“" "”" "‘" "’";
}
blockquote:before, q:before {
  content: open-quote;
  display: inline-block;
}
blockquote:after, q:after {
  content: close-quote;
  display: inline-block;
}

cite, figcaption {
  font-style: italic;
  font-size: 0.8em;
}

pre, code, kbd, samp {
  font-family: monospace, monospace;
  font-size: 1em;
  background-color: var(--code-background-colour, #EEEEEE);
  border-radius: 0.2em;
  padding: 0.2em 0.4em;
  position: relative;
  overflow: auto;
}

kbd {
  box-shadow: inset 0px 0px 0px 1px var(--kbd-border-colour, #d7d7d7);
}

pre.sf-dump {
  z-index: 9999;
  min-width: 500px;
  --code-background-colour: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

svg, symbol {
  overflow: visible;
  display: inline-block;
}

picture {
  display: inline-block;
}

img, picture {
  border-style: none;
  max-width: 100%;
  height: auto;
}

video {
  max-width: 100%;
}

var {
  font-style: revert;
}

small {
  font-size: 0.8em;
}

progress {
  vertical-align: baseline;
}

sub, sup {
  font-size: 75%;
  height: 0;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
  bottom: 1ex;
}

sub {
  bottom: -0.3em;
}

sup {
  top: -0.5em;
}

a {
  text-decoration: none;
  touch-action: manipulation;
  color: inherit;
  text-underline-offset: 0.2ex;
}

abbr[title], ins {
  border-bottom: none;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  text-underline-position: under;
}

textarea {
  resize: none;
  overflow: auto;
}

input, button, textarea, select {
  font: inherit;
  color: inherit;
}

input:focus, textarea:focus, select:focus {
  outline: none;
}

label, select, summary, [role=button], [role=option] {
  cursor: pointer;
}

details > summary {
  list-style: none;
  -webkit-appearance: none;
}
details > summary::-webkit-details-marker, details > summary::marker {
  display: none;
}

button,
[type=button],
[type=reset],
[type=submit] {
  touch-action: manipulation;
  -webkit-appearance: none;
  background: none;
  cursor: pointer;
  border: 0;
}

[disabled] {
  pointer-events: none;
  cursor: not-allowed;
}

body {
  display: grid;
  grid-template-columns: calc(max(clamp(16px, 3vw, 32px), (100% - 1340px) / 2) - clamp(16px, 3vw, 32px)) repeat(6, 1fr) calc(max(clamp(16px, 3vw, 32px), (100% - 1340px) / 2) - clamp(16px, 3vw, 32px));
  -moz-column-gap: clamp(16px, 3vw, 32px);
       column-gap: clamp(16px, 3vw, 32px);
  align-content: start;
  font: normal 400 clamp(1.62rem, 2.5vw, 1.8rem) / 1.6 "Helvetica Neue", "Helvetica", sans-serif;
  color: #939598;
}
body > * {
  grid-column: 1/-1;
  padding-inline: max(clamp(16px, 3vw, 32px), (100% - 1340px) / 2);
}
body > header {
  grid-row: 2;
}
body > main, body > aside.extra-components {
  display: inherit;
  grid-template-columns: inherit;
  grid-gap: clamp(32px, 6vh, 64px) clamp(16px, 3vw, 32px);
  align-content: inherit;
  padding-inline: 0;
}
body > main > *:not([class*=blowout]), body > aside.extra-components > *:not([class*=blowout]) {
  grid-column: 2/-2;
}
body > main ~ aside.extra-components {
  margin-top: clamp(32px, 6vh, 64px);
}
body > main, body #sidebar {
  margin-top: clamp(32px, 6vh, 64px);
}
body #sidebar {
  display: none;
}
body #sidebar blob-figure {
  position: sticky;
  top: 0;
  left: 0;
  width: 300px;
  height: 300px;
}
body #sidebar blob-figure svg {
  width: 100%;
  height: 100%;
}
@media (min-width: 961px) {
  body.layout\:extend-featured-image {
    --main-content-row-start: 3;
  }
  body > main, body #sidebar {
    grid-row-start: var(--main-content-row-start, 4);
  }
  .js-has-pseudo [csstools-has-2q-33-2s-3d-1m-2w-2p-37-14-z-37-2x-2s-2t-2q-2p-36-15-w-1q-w-31-2p-2x-32]:not(#does-not-exist):not(does-not-exist):not(does-not-exist), body[data-has=sidebar] > main {
    grid-column: 3/-2;
  }
  body:has(#sidebar) > main, body[data-has=sidebar] > main {
    grid-column: 3/-2;
  }
  .js-has-pseudo [csstools-has-2q-33-2s-3d-1m-2w-2p-37-14-z-37-2x-2s-2t-2q-2p-36-15-w-z-37-2x-2s-2t-2q-2p-36]:not(#does-not-exist):not(#does-not-exist):not(does-not-exist), body[data-has=sidebar] #sidebar {
    grid-column: 2;
    display: block;
  }
  body:has(#sidebar) #sidebar, body[data-has=sidebar] #sidebar {
    grid-column: 2;
    display: block;
  }
}

main > .icon {
  width: 4em;
  color: #EF9074;
  justify-self: center;
}
main > .icon + video-container {
  margin-top: clamp(-32px, 6vh, -64px);
  order: -1;
}

.blowout {
  grid-column: 1/-1;
  padding-inline: max(clamp(16px, 3vw, 32px), (100% - 1340px) / 2);
}
.blowout\:left {
  grid-column: 1/-2;
  padding-left: calc(max(clamp(16px, 3vw, 32px), (100% - 1340px) / 2) * 2);
}
.blowout\:right {
  grid-column: 2/-1;
  padding-right: calc(max(clamp(16px, 3vw, 32px), (100% - 1340px) / 2) * 2);
}

h1 {
  font: normal 400 clamp(2.8em, 4.5vw, 4em) / 1.1 "Helvetica Neue", "Helvetica", sans-serif;
}

h2 {
  font: normal 900 2.2em / 1.1 "Helvetica Neue", "Helvetica", sans-serif;
}

h3 {
  font: normal 900 2em / 1.1 "Helvetica Neue", "Helvetica", sans-serif;
}

h4 {
  font: normal 900 1.7em / 1.1 "Helvetica Neue", "Helvetica", sans-serif;
}

h5 {
  font: normal 900 1.3em / 1.1 "Helvetica Neue", "Helvetica", sans-serif;
}

h6 {
  font: normal 900 1em / 1.1 "Helvetica Neue", "Helvetica", sans-serif;
}

.heading {
  color: #6B0D70;
}

.sub-heading {
  color: #e8559a;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-size: 0.78em;
}

picture.image {
  display: block;
  position: relative;
  background-position: var(--image-position, center 33%);
  background-size: cover;
  background-repeat: no-repeat;
  overflow: hidden;
}
picture.image img {
  display: block;
  position: relative;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: var(--image-position, center 33.33%);
     object-position: var(--image-position, center 33.33%);
  width: 100%;
  height: 100%;
  inset: 0px;
}

.button {
  color: var(--font-colour, white);
  background-color: var(--theme-colour, #EF9074);
  outline-color: var(--border-colour, transparent);
  cursor: pointer;
  display: grid;
  grid-auto-flow: column;
  padding: var(--padding-block, 0.4em) var(--padding-inline, 1em);
  grid-gap: 0.5em;
  font-size: inherit;
  position: relative;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  outline-style: solid;
  outline-width: 1px;
  word-break: break-all;
  font-weight: bold;
  text-decoration: none;
  text-transform: lowercase;
  white-space: nowrap;
  width: -moz-fit-content;
  width: fit-content;
  height: -moz-fit-content;
  height: fit-content;
  place-content: center;
  place-items: center;
  border-radius: 4ch;
  will-change: color, border, background-colour, transform;
  transition: 0.2s cubic-bezier(0.42, 0, 0.58, 1), transform cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.3s;
}
@supports (selector(:has(*))) {
  .button:has(.arrow-right) {
    --icon-width: 0.5em;
    --icon-height: 0.8em;
  }
}
.button.small {
  font-size: 0.9em;
  --padding-block: 0.3em;
}
.button.large {
  font-size: 1.3em;
}
.button:focus {
  box-shadow: 0 0 0.3em #420650;
}
.button svg {
  width: var(--icon-width, 1em);
  height: var(--icon-height, 1em);
  transition: fill 0.2s cubic-bezier(0.42, 0, 0.58, 1), stroke 0.2s cubic-bezier(0.42, 0, 0.58, 1);
}
.button svg.arrow-left {
  grid-column: -1;
}
.button svg.icon {
  --icon-colour: currentColor;
}
.button.purple {
  --hover-theme-colour: #EF9074;
  --theme-colour: #420650;
}
.button.pink {
  --theme-colour: #e8559a;
}
.button.orange {
  --theme-colour: #EF9074;
}
.button.grey {
  --theme-colour: #939598;
}
.button.outline {
  background-color: transparent;
  --font-colour: var(--theme-colour, #EF9074);
  --border-colour: var(--theme-colour, #EF9074);
  --hover-font-colour: white;
  --hover-theme-colour: var(--theme-colour, #EF9074);
}
.button.white.outline {
  --font-colour: var(--theme-colour, white);
  --border-colour: var(--theme-colour, white);
  --hover-theme-colour: #EF9074;
}
.button.white.outline.purple {
  --hover-theme-colour: #420650;
  --theme-colour: white;
  --hover-border-colour: #420650;
}
.button.white.outline.pink {
  --hover-theme-colour: #e8559a;
  --theme-colour: white;
  --hover-border-colour: #e8559a;
}
.button.white.outline.orange {
  --hover-theme-colour: #EF9074;
  --theme-colour: white;
  --hover-border-colour: #EF9074;
}
.button.white.outline.grey {
  --hover-theme-colour: #939598;
  --theme-colour: white;
  --hover-border-colour: #939598;
}
.button.white:not(.outline) {
  --theme-colour: white;
  --font-colour: #EF9074;
  --hover-theme-colour: #EF9074;
}
.button.white:not(.outline).purple {
  --font-colour: #420650;
  --hover-theme-colour: #420650;
  --theme-colour: white;
  --hover-border-colour: #420650;
}
.button.white:not(.outline).pink {
  --font-colour: #e8559a;
  --hover-theme-colour: #e8559a;
  --theme-colour: white;
  --hover-border-colour: #e8559a;
}
.button.white:not(.outline).orange {
  --font-colour: #EF9074;
  --hover-theme-colour: #EF9074;
  --theme-colour: white;
  --hover-border-colour: #EF9074;
}
.button.white:not(.outline).grey {
  --font-colour: #939598;
  --hover-theme-colour: #939598;
  --theme-colour: white;
  --hover-border-colour: #939598;
}
.is\:dark .button:not(.white) {
  --hover-border-colour: white;
}

form:invalid [type=submit]:not(:hover) {
  opacity: 0.8;
}

.button[disabled] {
  pointer-events: none;
  opacity: 0.2;
  cursor: not-allowed;
}
.button:not(.show\:icon) {
  --padding-inline: 1.5em;
}
@media (hover: hover) {
  @supports (selector(:has(*))) {
    .button:not(.show\:icon):has(svg.symbol):not(:hover) {
      padding-right: calc(var(--padding-inline, 1em) - var(--icon-width, 1em) - 0.5em);
    }
    .button:not(.show\:icon):has(svg.symbol) svg.symbol {
      opacity: 0;
      position: relative;
      transition: opacity 0.2s cubic-bezier(0.42, 0, 0.58, 1);
    }
    .button:not(.show\:icon):has(svg.symbol):hover {
      padding-left: calc(var(--padding-inline, 1em) / 2);
      padding-right: calc(var(--padding-inline, 1em) / 2);
    }
    .button:not(.show\:icon):has(svg.symbol):hover svg.symbol {
      opacity: 1;
    }
    .button:not(.show\:icon):has(svg.symbol):has(.arrow-right):hover {
      padding-left: calc((var(--padding-inline, 1em) + var(--icon-width, 1em)) / 2);
      padding-right: calc((var(--padding-inline, 1em) + var(--icon-width, 1em)) / 2);
    }
  }
}
@media (hover: hover) {
  .button:hover {
    color: var(--hover-font-colour, white);
    background-color: var(--hover-theme-colour, #420650);
    outline-color: var(--hover-border-colour, transparent);
  }
}

.rich-text {
  display: grid;
  grid-gap: clamp(8px, 3vw, 16px);
}
.rich-text a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
@media (hover: hover) {
  .rich-text a:hover {
    color: #6B0D70;
  }
}
.rich-text p[style*="text-align: center"] {
  max-width: 960px;
  justify-self: center;
}
@supports (selector(:has(*))) {
  .rich-text p:has(br:first-child:last-child) {
    display: none;
  }
}
.rich-text strong {
  font-weight: bold;
}
.rich-text em {
  font-style: italic;
}
.rich-text br + br {
  display: none;
}
.rich-text ul > li > ul {
  padding-left: var(--marker-offset, 8px);
}
.rich-text ul > li::marker {
  content: var(--marker-bullet, initial);
  color: var(--marker-colour, #6B0D70);
}
.rich-text ol > li {
  counter-increment: list-item;
}
.rich-text ol > li > ol {
  padding-left: var(--marker-offset, 8px);
}
.rich-text ol > li::marker {
  content: counter(list-item) ". ";
  color: var(--marker-colour, #6B0D70);
  font-size: var(--marker-size, initial);
}
.rich-text ol.gridded {
  display: grid;
  grid-gap: clamp(16px, 3vw, 32px);
  grid-template-columns: repeat(auto-fit, minmax(480px, 1fr));
}
.rich-text ol.gridded:not(:first-child) {
  margin-top: clamp(16px, 6vh, 32px);
}
.rich-text ol.gridded:not(:last-child) {
  margin-bottom: clamp(16px, 6vh, 32px);
}
.rich-text ol.gridded li {
  display: flex;
  flex-direction: column;
  gap: clamp(8px, 3vw, 16px);
}
.rich-text ol.gridded li::marker {
  content: none;
}
.rich-text ol.gridded li .heading {
  grid-column: 2;
  grid-row: 1;
  width: 100%;
  font: normal 900 1em / 1.1 "Helvetica Neue", "Helvetica", sans-serif;
}
.rich-text ol.gridded li .heading::before {
  content: counter(list-item) ". ";
  color: #e8559a;
}

dialog {
  border: none;
  animation-timing-function: ease-in-out;
  background-color: transparent;
  width: 100%;
  max-width: 100%;
  max-height: 100%;
  height: 100%;
  place-content: center;
  place-items: center;
  z-index: 20;
}
dialog .content {
  overflow: auto;
  padding: clamp(clamp(32px, 3vw, 64px), 10vw, clamp(32px, 6vh, 64px));
  overscroll-behavior: contain;
  background-color: white;
  max-width: 1080px;
  width: calc(100% - clamp(32px, 3vw, 64px));
  max-height: calc(100vh - clamp(32px, 3vw, 64px));
  border-radius: 1em;
  z-index: 1;
}
dialog dialog-backdrop {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
dialog button.close {
  position: absolute;
  top: -1em;
  right: -1em;
  background: white;
  border-radius: 50%;
  width: 2em;
  height: 2em;
  display: flex;
  place-content: center;
  place-items: center;
  border: 1px solid black;
}
dialog button.close:hover {
  background: blue;
  cursor: pointer;
}
dialog[data-position=right] {
  --dialog-slide-translate: translate(1em, 0);
  left: auto;
  direction: rtl;
}
dialog[data-position=right] .content {
  direction: ltr;
}
dialog[data-position=left] {
  --dialog-slide-translate: translate(-1em, 0);
  --dialog-close-button-inset: 1em 0 0 1em;
  right: auto;
  overflow: auto;
}
dialog[data-position=left], dialog[data-position=right] {
  resize: horizontal;
  height: 100%;
  max-height: 100%;
}
dialog[data-position=left] .content, dialog[data-position=right] .content {
  max-height: 100vh;
  max-width: 100vw;
}
dialog[data-position] {
  width: 600px;
  min-width: 400px;
  border-radius: 0;
  overflow: auto;
}
dialog[data-position] button.close {
  inset: var(--dialog-close-button-inset, 1em 1em 0 0);
}
@keyframes dialog-slide-in {
  from {
    transform: var(--dialog-slide-translate, translate(0, 1em));
  }
}
@keyframes dialog-slide-out {
  to {
    transform: var(--dialog-slide-translate, translate(0, 1em));
  }
}
@keyframes dialog-fade-in {
  to {
    opacity: 1;
  }
}
@keyframes dialog-fade-out {
  to {
    opacity: 0;
  }
}
dialog::backdrop {
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  background: rgba(0, 0, 0, 0.8);
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}
dialog[open] {
  display: grid;
}
dialog[open]:not([close]) {
  opacity: 0;
  pointer-events: all;
  animation: 0.3s 0.1s dialog-slide-in forwards, 0.3s 0.1s dialog-fade-in forwards;
}
dialog[open]:not([close])::backdrop {
  animation: 0.3s dialog-fade-in forwards;
}
dialog[close] {
  animation: 0.2s dialog-slide-out forwards, 0.2s dialog-fade-out forwards;
}
dialog[close]::backdrop {
  animation: 0.2s 0.3s dialog-fade-out forwards;
}

input-field {
  position: relative;
  display: grid;
  width: 100%;
}
input-field[type=textarea] {
  grid-column: 1/-1;
}
input-field[type=radios], input-field[type=checkboxes] {
  display: flex;
  grid-column: 1/-1;
  flex-wrap: wrap;
}
input-field[type=radios] .heading, input-field[type=checkboxes] .heading {
  order: -1;
  width: 100%;
  font: normal 900 1.3em / 1.1 "Helvetica Neue", "Helvetica", sans-serif;
}
input-field[type=radio], input-field[type=checkbox] {
  grid-column: 1/-1;
}
input-field[type=radio] input, input-field[type=checkbox] input {
  display: none;
}
input-field[type=radio] input:checked + label::before, input-field[type=checkbox] input:checked + label::before {
  background-color: #e8559a;
}
input-field[type=radio] label, input-field[type=checkbox] label {
  display: flex;
  grid-auto-flow: column;
  grid-gap: 1ch;
  transition: color 0.2s cubic-bezier(0.42, 0, 0.58, 1);
}
input-field[type=radio] label::before, input-field[type=checkbox] label::before {
  content: "";
  position: relative;
  display: block;
  cursor: pointer;
  grid-column: 1;
  grid-row: 1;
  min-width: 1.2em;
  min-height: 1.2em;
  width: 1.2em;
  height: 1.2em;
  aspect-ratio: 1/1;
  top: 0.2em;
}
input-field[type=radio] label::before, input-field[type=checkbox] label::before {
  border: 1px solid #6B0D70;
  background-color: var(--checkbox-box-background-colour);
  transition: border-color 0.2s cubic-bezier(0.42, 0, 0.58, 1), background-color 0.2s cubic-bezier(0.42, 0, 0.58, 1);
}
@media (hover: hover) {
  input-field[type=radio] label:hover, input-field[type=checkbox] label:hover {
    color: #e8559a;
  }
  input-field[type=radio] label:hover::before, input-field[type=checkbox] label:hover::before {
    border-color: #e8559a;
  }
}
input-field[type=radio] label::before, input-field[type=radio] label::after {
  border-radius: 50%;
}
input-field input, input-field textarea {
  padding: 0.5em 1em;
  background-color: #F4F5F9;
  border: none;
  display: block;
  border-radius: 0.5em;
  color: #6B0D70;
  width: inherit;
}
input-field input::-moz-placeholder, input-field textarea::-moz-placeholder {
  -moz-transition: 0.2s cubic-bezier(0.42, 0, 0.58, 1);
  transition: 0.2s cubic-bezier(0.42, 0, 0.58, 1);
}
input-field input::placeholder, input-field textarea::placeholder {
  transition: 0.2s cubic-bezier(0.42, 0, 0.58, 1);
}
input-field input:focus::-moz-placeholder, input-field textarea:focus::-moz-placeholder {
  color: transparent;
}
input-field input:focus::placeholder, input-field textarea:focus::placeholder {
  color: transparent;
}
input-field input[type=text]:focus + label, input-field input[type=text]:not(:placeholder-shown) + label, input-field input[type=tel]:focus + label, input-field input[type=tel]:not(:placeholder-shown) + label, input-field input[type=email]:focus + label, input-field input[type=email]:not(:placeholder-shown) + label, input-field input:-webkit-autofill:focus + label, input-field input:-webkit-autofill:not(:placeholder-shown) + label, input-field textarea[type=text]:focus + label, input-field textarea[type=text]:not(:placeholder-shown) + label, input-field textarea[type=tel]:focus + label, input-field textarea[type=tel]:not(:placeholder-shown) + label, input-field textarea[type=email]:focus + label, input-field textarea[type=email]:not(:placeholder-shown) + label, input-field textarea:-webkit-autofill:focus + label, input-field textarea:-webkit-autofill:not(:placeholder-shown) + label {
  --label-y: 0;
  --label-x: 1.1em;
  --label-font-size: 0.9em;
}
input-field :-webkit-autofill,
input-field :-webkit-autofill:hover,
input-field :-webkit-autofill:focus {
  border: none;
  -webkit-text-fill-color: #6B0D70;
  -webkit-box-shadow: 0 0 0px 1000px #F4F5F9 inset;
  -webkit-transition: all 5000s ease-in-out 0s;
  transition: all 5000s ease-in-out 0s;
}
@supports (selector(:has(*))) {
  input-field:has(input:not([type=radio]):not([type=checkbox]), textarea)::after {
    content: "";
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    position: absolute;
    border-radius: 0.5em;
    border: 1px solid #6B0D70;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s cubic-bezier(0.42, 0, 0.58, 1);
  }
  @supports (selector(:has(*))) {
    input-field:has(input:not([type=radio]):not([type=checkbox]), textarea):has(input:not([type=radio]):not([type=checkbox]))::after {
      -webkit-mask-image: radial-gradient(ellipse at 12% 0, transparent 10%, black 30%);
              mask-image: radial-gradient(ellipse at 12% 0, transparent 10%, black 30%);
    }
  }
  @supports (selector(:has(*))) {
    input-field:has(input:not([type=radio]):not([type=checkbox]), textarea):has(input:not([type=radio]):not([type=checkbox]):focus, textarea:focus)::after {
      opacity: 0.5;
    }
  }
}
input-field:not([type=radio]):not([type=checkbox]) > label {
  position: absolute;
  pointer-events: none;
  left: var(--label-x, 1em);
  top: var(--label-y, 50%);
  font-size: var(--label-font-size, 1.8rem);
  transform: translateY(-50%);
  transition: 0.2s cubic-bezier(0.42, 0, 0.58, 1);
}
input-field label a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
@media (hover: hover) {
  input-field label a:hover {
    color: #6B0D70;
  }
}

form {
  display: grid;
  grid-gap: clamp(16px, 3vw, 32px);
}
form button[type=submit] {
  justify-self: end;
}

.buttons-container {
  display: flex;
  gap: clamp(8px, 3vw, 16px);
  height: -moz-fit-content;
  height: fit-content;
}

.is\:dark {
  color: #E4CDE9;
}
.is\:dark .heading {
  color: white;
}

navigation-bar {
  padding-top: clamp(16px, 3vw, 32px);
  padding-bottom: clamp(32px, 6vh, 64px);
  display: flex;
  position: relative;
  justify-content: space-between;
  align-items: center;
  gap: clamp(16px, 3vw, 32px);
  z-index: 10;
  grid-column: 2/-2;
  height: -moz-min-content;
  height: min-content;
  grid-row: 1;
  padding-inline: 0;
}
navigation-bar .logo {
  display: block;
  width: 100%;
  max-width: clamp(200px, 30vw, 400px);
  min-width: 200px;
  margin-right: auto;
}
navigation-bar button.menu {
  display: flex;
  place-items: center;
  color: white;
  cursor: pointer;
  transition: color 0.2s cubic-bezier(0.42, 0, 0.58, 1);
  z-index: 1;
}
navigation-bar[open] button.menu svg line:nth-child(1) {
  transform: rotate(45deg);
}
navigation-bar[open] button.menu svg line:nth-child(2) {
  opacity: 0;
}
navigation-bar[open] button.menu svg line:nth-child(3) {
  transform: rotate(-45deg);
}

navigation-bar button.menu svg {
  stroke-width: 0.3em;
  width: 2em;
  height: 2em;
}
navigation-bar button.menu svg line:nth-child(1) {
  transform-origin: 10% 35%;
  transition: transform 0.3s cubic-bezier(0.86, 0, 0.07, 1);
}
navigation-bar button.menu svg line:nth-child(2) {
  transition: opacity 0.2s cubic-bezier(0.42, 0, 0.58, 1);
}
navigation-bar button.menu svg line:nth-child(3) {
  transform-origin: 15% 65%;
  transition: transform 0.3s cubic-bezier(0.86, 0, 0.07, 1);
}
@supports (selector(:has(*))) {
  navigation-bar:not(:has(~ blob-figure)) button.menu {
    color: #6B0D70;
  }
  navigation-bar:not(:has(~ blob-figure)) .social-link {
    color: inherit;
  }
  @media (hover: hover) {
    navigation-bar:not(:has(~ blob-figure)) .social-link:hover {
      color: #e8559a;
    }
  }
}
navigation-bar nav {
  position: absolute;
  background-color: #420650;
  display: flex;
  flex-direction: column;
  pointer-events: none;
  top: calc(100% - clamp(32px, 6vh, 64px) + 16px);
  right: 0;
  transition: opacity 0.2s cubic-bezier(0.42, 0, 0.58, 1), transform 0.2s cubic-bezier(0.42, 0, 0.58, 1);
  padding: clamp(16px, 3vw, 32px) clamp(32px, 3vw, 64px);
  opacity: 0;
  transform: translateY(1em);
}
navigation-bar nav::before {
  content: "";
  position: absolute;
  bottom: 100%;
  width: 100%;
  height: calc(2em + clamp(16px, 3vw, 32px));
  left: 0;
  -webkit-clip-path: polygon(100% 0, calc(100% - 2em) 0, 0% 100%, 100% 100%);
          clip-path: polygon(100% 0, calc(100% - 2em) 0, 0% 100%, 100% 100%);
}
navigation-bar nav .link {
  color: white;
  font-size: 1.2em;
  transition: color 0.2s cubic-bezier(0.42, 0, 0.58, 1);
  white-space: nowrap;
  padding-block: 0.15em;
}
@media (hover: hover) {
  navigation-bar nav .link:hover {
    color: #EF9074;
  }
}
navigation-bar nav .link.is\:child {
  font-size: 1em;
  padding-left: 16px;
  border-left: 1px solid rgba(255, 255, 255, 0.2);
}
navigation-bar nav .link.is\:current {
  color: #EF9074;
  pointer-events: none;
}
navigation-bar nav figure {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: -1;
  overflow: hidden;
}
navigation-bar nav figure .icon {
  position: absolute;
  opacity: 0.3;
  --icon-colour:#6B0D70;
  pointer-events: none;
  width: 150%;
  left: 50%;
  transform: translateX(-50%);
  bottom: -20%;
}
navigation-bar[open] nav, navigation-bar nav:hover, navigation-bar button.menu:hover ~ nav {
  opacity: 1;
  pointer-events: all;
  transform: translateY(0);
}

navigation-bar[open] nav::before {
  display: none;
}
navigation-bar .social-link {
  font-size: 0.9em;
  display: flex;
  align-items: center;
  gap: 2ch;
  white-space: nowrap;
  color: white;
  transition: color 0.2s cubic-bezier(0.42, 0, 0.58, 1);
}
navigation-bar .social-link svg {
  width: 1.6em;
  height: 1.6em;
  color: #195FB6;
  background-color: white;
  border-radius: 0.4em;
}
@media (hover: hover) {
  navigation-bar .social-link:hover {
    color: rgba(255, 255, 255, 0.5);
  }
}
@media (max-width: 960px) {
  navigation-bar button.menu {
    color: #e8559a;
  }
  navigation-bar .social-link {
    display: none;
  }
}

body > header {
  display: grid;
  grid-gap: clamp(16px, 3vw, 32px);
  align-self: start;
}
body > header > *:not(video-container) {
  grid-column: 1;
  max-width: 600px;
}
body > header > .button {
  margin-bottom: clamp(-32px, 3vw, -64px);
}
body > header video-container {
  margin-top: calc(clamp(-16px, 3vw, -32px) + clamp(32px, 6vh, 64px));
}
body > header video-container.promo-video {
  align-self: initial;
  max-width: initial;
}
body > header .summary br {
  display: none;
}
body > header time {
  color: #EF9074;
  margin-bottom: calc(clamp(-32px, 6vh, -64px) + clamp(8px, 3vw, 16px));
  font-style: italic;
  display: block;
  order: -1;
}
@media (min-width: 961px) {
  body > header {
    grid-template-columns: repeat(2, 1fr);
  }
  body > header video-container {
    margin-top: initial;
    grid-column: 2;
    grid-row: 1/span 4;
  }
  @supports (selector(:has(*))) {
    body > header:not(:has(~ blob-figure)) {
      grid-template-columns: initial;
    }
    body > header:not(:has(~ blob-figure)) > *:not(video-container) {
      max-width: initial;
    }
  }
}

body > footer {
  position: sticky;
  top: 100vh;
  background-color: #420650;
  padding-block: clamp(32px, 6vh, 64px);
  margin-top: clamp(32px, 6vh, 64px);
  color: white;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: clamp(16px, 3vw, 32px);
}
body > footer .logo {
  display: block;
  width: 100%;
  max-width: clamp(150px, 40vw, 200px);
  min-width: 150px;
  --logo-colour:white;
}
body > footer nav {
  display: flex;
  gap: clamp(16px, 3vw, 32px);
  align-items: baseline;
}
body > footer nav figure {
  display: none;
}
body > footer nav .link {
  font-size: 0.9em;
  display: block;
  transition: color 0.2s cubic-bezier(0.42, 0, 0.58, 1);
}
@media (hover: hover) {
  body > footer nav .link:hover {
    color: #EF9074;
  }
}
body > footer nav .link.is\:child {
  display: none;
}
body > footer small {
  display: flex;
  align-items: center;
  gap: 1ch;
  display: flex;
  width: 100%;
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.7em;
}
body > footer small span {
  opacity: 0.4;
}
@media (max-width: 600px) {
  body > footer {
    gap: clamp(32px, 3vw, 64px);
  }
  body > footer nav {
    width: 100%;
    display: grid;
    grid-gap: clamp(8px, 3vw, 16px) clamp(16px, 3vw, 32px);
    grid-auto-flow: column;
    display: grid;
  }
  body > footer nav .link.is\:child {
    display: flex;
  }
  body > footer nav .link.is\:child ~ *:not(.is\:child) {
    grid-column: 2;
  }
  body > footer small {
    font-size: 0.9em;
    flex-direction: column;
    align-items: flex-start;
  }
  body > footer small span {
    height: 0;
    margin-bottom: -2ch;
    visibility: hidden;
  }
}

blob-figure {
  grid-row: 1/span 3;
  grid-column: 5/-2;
  padding: 0;
  position: relative;
  z-index: -1;
  display: flex;
  justify-content: flex-end;
  height: clamp(460px, 50vw, 600px);
}
blob-figure svg {
  display: block;
  position: absolute;
  height: 100%;
  right: 0;
  top: 0;
  width: auto;
}
blob-figure image {
  opacity: 0.5;
  mix-blend-mode: luminosity;
  -webkit-mask-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgb(0, 0, 0));
          mask-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgb(0, 0, 0));
}
@media (max-width: 960px) {
  blob-figure {
    display: none;
  }
}
/*# sourceMappingURL=sourcemaps/global.css.map */