@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/presentation/dm-sans-400.ttf") format('truetype');
}

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/presentation/dm-sans-500.ttf") format('truetype');
}

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/presentation/dm-sans-600.ttf") format('truetype');
}

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/presentation/dm-sans-700.ttf") format('truetype');
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/presentation/manrope-400.ttf") format('truetype');
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/presentation/manrope-500.ttf") format('truetype');
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/presentation/manrope-600.ttf") format('truetype');
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/presentation/manrope-700.ttf") format('truetype');
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../fonts/presentation/manrope-800.ttf") format('truetype');
}

html[data-bs-theme] .festival-home {
  --paper: #1d2228;
  --ink: #edf0f3;
  --muted: #b6bfc9;
  --line: #464e58;
  --accent: #dc3038;
  --pad: clamp(22px, 4vw, 72px);
}

html[data-bs-theme] .festival-home * {
  box-sizing: border-box;
}

html[data-bs-theme] .festival-home {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}

html[data-bs-theme] .festival-home a {
  color: inherit;
  text-decoration: none;
}

html[data-bs-theme] .festival-home button {
  font: inherit;
}

html[data-bs-theme] .festival-home a, html[data-bs-theme] .festival-home button {
  -webkit-tap-highlight-color: transparent;
}

html[data-bs-theme] .festival-home a:focus-visible, html[data-bs-theme] .festival-home button:focus-visible, html[data-bs-theme] .festival-home summary:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 5px;
}

html[data-bs-theme] .festival-home button, html[data-bs-theme] .festival-home a {
  touch-action: manipulation;
}

html[data-bs-theme] .festival-home button {
  cursor: pointer;
}

html[data-bs-theme] .festival-home img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

html[data-bs-theme] .festival-home h1, html[data-bs-theme] .festival-home h2, html[data-bs-theme] .festival-home h3, html[data-bs-theme] .festival-home p, html[data-bs-theme] .festival-home figure {
  margin: 0;
}

html[data-bs-theme] .festival-home h1, html[data-bs-theme] .festival-home h2, html[data-bs-theme] .festival-home h3 {
  font-family: 'Manrope', Arial, sans-serif;
}

html[data-bs-theme] .festival-home h1, html[data-bs-theme] .festival-home h2 {
  letter-spacing: -.055em;
  font-weight: 750;
  line-height: 1.06;
}

html[data-bs-theme] .festival-home h1 {
  font-size: clamp(48px, 5.65vw, 88px);
}

html[data-bs-theme] .festival-home h2 {
  font-size: clamp(34px, 3.8vw, 58px);
}

html[data-bs-theme] .festival-home h3 {
  font-size: 27px;
  letter-spacing: -.04em;
  font-weight: 700;
}

html[data-bs-theme] .festival-home p {
  line-height: 1.55;
}

html[data-bs-theme] .festival-home .eyebrow {
  font-size: 11px;
  letter-spacing: .2em;
  font-weight: 650;
  text-transform: uppercase;
  line-height: 1.6;
  margin-bottom: 24px;
}

html[data-bs-theme] .festival-home .lead {
  font-size: clamp(18px, 1.55vw, 23px);
  line-height: 1.48;
  letter-spacing: -.02em;
}

html[data-bs-theme] .festival-home .section {
  padding: 90px var(--pad);
}

html[data-bs-theme] .festival-home .text-link {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  padding: 6px 0;
  border-bottom: 1px solid var(--ink);
  font-size: 15px;
}

html[data-bs-theme] .festival-home .text-link:hover {
  color: var(--accent);
  border-color: var(--accent);
}

html[data-bs-theme] .festival-home .participant-band {
  display: flex;
  align-items: center;
  gap: 30px;
  padding: 35px var(--pad);
  background: #22282e;
  color: var(--paper);
}

html[data-bs-theme] .festival-home .band-mark {
  font-size: 65px;
  font-weight: 400;
  color: var(--accent);
  line-height: 1;
}

html[data-bs-theme] .festival-home .participant-band h2 {
  font-size: 30px;
  letter-spacing: -.04em;
  margin-bottom: 7px;
}

html[data-bs-theme] .festival-home .participant-band p {
  font-size: 14px;
  color: #c7cdd5;
}

html[data-bs-theme] .festival-home .band-links {
  display: flex;
  gap: 28px;
  margin-left: auto;
  padding-left: 30px;
  border-left: 1px solid #59636e;
  flex-shrink: 0;
}

html[data-bs-theme] .festival-home .band-links a {
  border-bottom: 1px solid #687583;
  padding-bottom: 8px;
  font-size: 13px;
  display: flex;
  gap: 20px;
}

html[data-bs-theme] .festival-home .band-links a:hover {
  color: #7bd7e7;
}

html[data-bs-theme] .festival-home .two-paths {
  background: #242a31;
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 80px;
}

html[data-bs-theme] .festival-home .path-list a {
  display: block;
  position: relative;
  border-top: 1px solid #59616b;
  padding: 24px 45px 24px 0;
}

html[data-bs-theme] .festival-home .path-list a:last-child {
  border-bottom: 1px solid #59616b;
}

html[data-bs-theme] .festival-home .path-list a > span:first-child {
  font-size: 23px;
  letter-spacing: -.03em;
  font-weight: 600;
}

html[data-bs-theme] .festival-home .path-list a > span:last-child {
  position: absolute;
  top: 25px;
  right: 0;
  font-size: 26px;
}

html[data-bs-theme] .festival-home .path-list p {
  color: var(--muted);
  font-size: 15px;
  margin-top: 8px;
}

html[data-bs-theme] .festival-home .path-list a:hover > span {
  color: var(--accent);
}

html[data-bs-theme] .festival-home .support {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: 90px;
  scroll-margin-top: 25px;
}

html[data-bs-theme] .festival-home .accent-square {
  display: block;
  background: var(--accent);
  width: 20px;
  height: 20px;
  margin-bottom: 25px;
}

html[data-bs-theme] .festival-home .support h2 {
  margin-bottom: 28px;
}

html[data-bs-theme] .festival-home .support .lead {
  font-size: 20px;
}

html[data-bs-theme] .festival-home .support-note {
  display: flex;
  gap: 18px;
  border-top: 1px solid var(--line);
  padding-top: 22px;
  margin: 25px 0;
  font-size: 15px;
}

html[data-bs-theme] .festival-home .support-note > span {
  color: var(--accent);
  font-size: 24px;
}

html[data-bs-theme] .festival-home .support-aside {
  align-self: center;
  background: #2d343c;
  padding: 40px;
}

html[data-bs-theme] .festival-home .support-aside ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

html[data-bs-theme] .festival-home .support-aside li {
  display: flex;
  gap: 25px;
  padding: 25px 0;
  border-top: 1px solid #4c5662;
}

html[data-bs-theme] .festival-home .support-aside li > span {
  color: var(--accent);
  font-size: 15px;
}

html[data-bs-theme] .festival-home .support-aside h3 {
  font-size: 23px;
  margin-bottom: 10px;
}

html[data-bs-theme] .festival-home .support-aside p {
  font-size: 15px;
  color: #c0c8d2;
}

html[data-bs-theme] .festival-home .faq {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 70px;
  border-top: 1px solid var(--line);
}

html[data-bs-theme] .festival-home .faq h2 {
  font-size: 40px;
}

html[data-bs-theme] .festival-home .questions details {
  border-bottom: 1px solid var(--line);
}

html[data-bs-theme] .festival-home .questions details:first-child {
  border-top: 1px solid var(--line);
}

html[data-bs-theme] .festival-home summary {
  font-size: 18px;
  cursor: pointer;
  padding: 25px 30px 25px 0;
  list-style: none;
  position: relative;
}

html[data-bs-theme] .festival-home summary::-webkit-details-marker {
  display: none;
}

html[data-bs-theme] .festival-home summary:after {
  content: '+';
  position: absolute;
  right: 2px;
  top: 22px;
  font-size: 25px;
  color: var(--accent);
}

html[data-bs-theme] .festival-home details[open] summary:after {
  content: '−';
}

html[data-bs-theme] .festival-home details p {
  padding: 0 20px 25px 0;
  color: var(--muted);
  font-size: 16px;
}

html[data-bs-theme] .festival-home .closing {
  background: #151a1f;
  color: var(--paper);
  position: relative;
}

html[data-bs-theme] .festival-home .closing .eyebrow {
  color: #c8d0d9;
}

html[data-bs-theme] .festival-home .closing h2 {
  max-width: 850px;
  margin-bottom: 35px;
}

@media(max-width: 1100px) {
html[data-bs-theme] .festival-home .participant-band {
    gap: 22px;
  }

html[data-bs-theme] .festival-home .band-links {
    flex-direction: column;
    gap: 12px;
  }

html[data-bs-theme] .festival-home .participant-band p {
    max-width: 430px;
  }

html[data-bs-theme] .festival-home .support {
    gap: 40px;
  }

html[data-bs-theme] .festival-home .support-aside {
    padding: 28px;
  }

html[data-bs-theme] .festival-home .faq {
    gap: 40px;
  }
}

@media(max-width: 800px) {
html[data-bs-theme] .festival-home .participant-band {
    flex-wrap: wrap;
    padding-top: 30px;
    padding-bottom: 30px;
  }

html[data-bs-theme] .festival-home .band-mark {
    display: none;
  }

html[data-bs-theme] .festival-home .participant-band > div:nth-child(2) {
    flex: 1;
  }

html[data-bs-theme] .festival-home .band-links {
    padding: 0;
    border: 0;
    margin: 0;
    flex-direction: row;
    flex-wrap: wrap;
    width: 100%;
  }

html[data-bs-theme] .festival-home .section {
    padding-top: 60px;
    padding-bottom: 60px;
  }

html[data-bs-theme] .festival-home .two-paths, html[data-bs-theme] .festival-home .support, html[data-bs-theme] .festival-home .faq {
    grid-template-columns: 1fr;
    gap: 35px;
  }

html[data-bs-theme] .festival-home .support-aside {
    padding: 30px;
  }

html[data-bs-theme] .festival-home .support .lead {
    font-size: 19px;
  }

html[data-bs-theme] .festival-home .faq h2 {
    font-size: 36px;
  }
}

@media(max-width: 480px) {
html[data-bs-theme] .festival-home {
    --pad: 22px;
  }

html[data-bs-theme] .festival-home .participant-band h2 {
    font-size: 29px;
  }

html[data-bs-theme] .festival-home .band-links {
    gap: 22px;
  }

html[data-bs-theme] .festival-home .band-links a {
    font-size: 12px;
    gap: 12px;
  }

html[data-bs-theme] .festival-home .support-aside {
    padding: 25px;
  }

html[data-bs-theme] .festival-home .support-aside li {
    gap: 18px;
  }

html[data-bs-theme] .festival-home .support h2 {
    font-size: 36px;
  }

html[data-bs-theme] .festival-home .faq h2 {
    font-size: 34px;
  }

html[data-bs-theme] .festival-home summary {
    font-size: 17px;
  }

html[data-bs-theme] .festival-home .closing h2 {
    font-size: 37px;
  }
}

@media(prefers-reduced-motion: reduce) {
html[data-bs-theme] .festival-home *, html[data-bs-theme] .festival-home *:before, html[data-bs-theme] .festival-home *:after {
    transition: none !important;
    animation: none !important;
  }
}

html[data-bs-theme] .festival-home { color-scheme: dark; --surface: #30363e; --surface-raised: #383f48; --cyan: #74ccdc; --yellow: #ebc400; }

html[data-bs-theme] .festival-home { background: #1d2228; }

html[data-bs-theme] .festival-home .text-link { border-color: #74818f; }

html[data-bs-theme] .festival-home .text-link:hover { color: var(--cyan); border-color: var(--cyan); }

html[data-bs-theme] .festival-home .participant-band, html[data-bs-theme] .festival-home .closing { color: var(--ink); }

html[data-bs-theme] .festival-home .participant-band { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }

html[data-bs-theme] .festival-home .band-mark { color: var(--cyan); }

html[data-bs-theme] .festival-home .band-links a { border-color: #74818f; }

html[data-bs-theme] .festival-home .band-links a:hover { color: var(--cyan); }

html[data-bs-theme] .festival-home .eyebrow { color: #bbc6d2; }

html[data-bs-theme] .festival-home .accent-square { background: var(--yellow); border-radius: 3px; }

html[data-bs-theme] .festival-home .path-list a { background: var(--surface); border: 1px solid #4b5662; border-radius: 8px; padding: 25px 50px 25px 25px; margin-bottom: 12px; }

html[data-bs-theme] .festival-home .path-list a:last-child { border: 1px solid #4b5662; }

html[data-bs-theme] .festival-home .path-list a > span:last-child { right: 20px; color: var(--cyan); }

html[data-bs-theme] .festival-home .path-list a:hover { background: #39434d; }

html[data-bs-theme] .festival-home .path-list a:hover > span { color: var(--cyan); }

html[data-bs-theme] .festival-home .support-aside { background: var(--surface); border: 1px solid #4b5662; border-radius: 8px; }

html[data-bs-theme] .festival-home .support-aside li > span, html[data-bs-theme] .festival-home .support-note > span { color: var(--cyan); }

html[data-bs-theme] .festival-home .support-aside > .eyebrow { color: var(--yellow); }

html[data-bs-theme] .festival-home summary:after { color: var(--cyan); }

html[data-bs-theme] .festival-home .questions details[open] { background: #29313a; }

html[data-bs-theme] .festival-home .questions details[open] > * { padding-left: 16px; }

html[data-bs-theme] .festival-home .questions details[open] summary:after { right: 12px; }

html[data-bs-theme] .festival-home .contact-footer {
  padding: clamp(30px, 4vw, 58px) var(--pad);
  background: #000;
  color: var(--ink);
  border-top: 1px solid #262c33;
}

html[data-bs-theme] .festival-home .contact-footer-copy {
  margin: 0;
  max-width: 900px;
  font-size: clamp(16px, 1.5vw, 21px);
  line-height: 1.65;
}

html[data-bs-theme] .festival-home .contact-footer-link {
  color: var(--yellow);
  text-decoration: underline;
  text-underline-offset: 4px;
}

html[data-bs-theme] .festival-home .contact-footer-link:hover {
  color: #f8d629;
}

html[data-bs-theme] .festival-home {
    --festival-gold: #ebc400;
    width: 100%;
    max-width: 1800px;
    margin-inline: auto;
    overflow: clip;
}

html[data-bs-theme] .festival-home .path-list > a { translate: var(--content-x, 0px) calc(var(--path-parallax, 0px) + var(--content-y, 0px)); }

html[data-bs-theme] .festival-home.motion-off .path-list > a { translate: none; }

@media(prefers-reduced-motion:reduce) {
html[data-bs-theme] .festival-home .path-list > a { translate: none; }
}

/* Original supplied cinematic hero. */
html[data-bs-theme] .festival-home .hero {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  min-height: 650px;
}

html[data-bs-theme] .festival-home .hero-copy {
  padding: 65px 28px 45px var(--pad);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

html[data-bs-theme] .festival-home .hero-copy h1 {
  margin-bottom: 30px;
}

html[data-bs-theme] .festival-home .hero-copy .eyebrow {
  font-size: 10px;
}

html[data-bs-theme] .festival-home .hero-copy .lead {
  max-width: 510px;
}

html[data-bs-theme] .festival-home .hero-foot {
  font-family: Georgia, serif;
  font-size: 16px;
  margin-top: auto;
}

html[data-bs-theme] .festival-home .hero-image {
  position: relative;
  overflow: hidden;
  background: #25231e;
}

html[data-bs-theme] .festival-home .hero-image img {
  position: absolute;
  inset: 0;
  object-position: 61% center;
}

html[data-bs-theme] .festival-home .hero-image:after {
  content: '';
  position: absolute;
  inset: 50% 0 0;
  background: linear-gradient(transparent, #000b);
}

@media(min-width: 1500px) {
html[data-bs-theme] .festival-home .hero {
    min-height: 730px;
  }

html[data-bs-theme] .festival-home .hero-copy {
    padding-top: 85px;
  }
}

@media(max-width: 1100px) {
html[data-bs-theme] .festival-home .hero {
    min-height: 600px;
  }

html[data-bs-theme] .festival-home .hero h1 {
    font-size: clamp(46px, 5.9vw, 70px);
  }

html[data-bs-theme] .festival-home .hero-copy {
    padding-top: 45px;
  }
}

@media(max-width: 800px) {
html[data-bs-theme] .festival-home .hero {
    grid-template-columns: 1fr;
    min-height: 0;
  }

html[data-bs-theme] .festival-home .hero-copy {
    padding: 45px var(--pad) 40px;
  }

html[data-bs-theme] .festival-home .hero-copy h1 {
    font-size: clamp(46px, 8.5vw, 74px);
  }

html[data-bs-theme] .festival-home .hero-copy .lead {
    max-width: 600px;
  }

html[data-bs-theme] .festival-home .hero-image {
    height: 420px;
  }

html[data-bs-theme] .festival-home .hero-image img {
    object-position: center 45%;
  }

html[data-bs-theme] .festival-home .hero-foot {
    margin-top: 0;
  }
}

@media(max-width: 480px) {
html[data-bs-theme] .festival-home .hero-copy .eyebrow {
    font-size: 9px;
    letter-spacing: .15em;
  }

html[data-bs-theme] .festival-home .hero-copy h1 {
    font-size: 47px;
    letter-spacing: -.065em;
  }

html[data-bs-theme] .festival-home .hero-copy .lead {
    font-size: 19px;
  }

html[data-bs-theme] .festival-home .hero-image {
    height: 310px;
  }

html[data-bs-theme] .festival-home .hero-foot {
    font-size: 15px;
  }
}

html[data-bs-theme] .festival-home .hero-copy { background: #242a31; }

html[data-bs-theme] .festival-home .hero-copy .eyebrow { color: var(--cyan); }

html[data-bs-theme] .festival-home .hero-foot { color: #c6ced7; font-family: 'DM Sans', Arial, sans-serif; }

html[data-bs-theme] .festival-home .hero-brand { grid-template-columns: 1fr 1.15fr; min-height: 590px; gap: 24px; }

html[data-bs-theme] .festival-home .hero-brand h1 { font-size: clamp(46px, 4.6vw, 78px); }

html[data-bs-theme] .festival-home .hero-awards { align-self: center; margin: 32px var(--pad) 32px 0; border: 1px solid var(--line); border-radius: 8px; background: #171c22; }

html[data-bs-theme] .festival-home .hero-awards img { position: static; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; }

html[data-bs-theme] .festival-home .hero-awards:after { display: none; }

html[data-bs-theme] .festival-home .hero-awards figcaption { position: static; padding: 16px 20px; color: #c7cfd9; font-size: 12px; }

@media(min-width:1500px) {
html[data-bs-theme] .festival-home .hero-brand { min-height: 650px; }
}

@media(max-width:1100px) {
html[data-bs-theme] .festival-home .hero-brand { grid-template-columns: 1fr 1.05fr; gap: 15px; }

html[data-bs-theme] .festival-home .hero-brand h1 { font-size: clamp(43px, 4.6vw, 60px); }
}

@media(max-width:800px) {
html[data-bs-theme] .festival-home .hero-brand { grid-template-columns: 1fr; min-height: 0; gap: 0; }

html[data-bs-theme] .festival-home .hero-brand h1 { font-size: clamp(46px, 8.5vw, 74px); }

html[data-bs-theme] .festival-home .hero-awards { margin: 0 var(--pad) 32px; height: auto; }
}

@media(max-width:480px) {
html[data-bs-theme] .festival-home .hero-brand h1 { font-size: 47px; }

html[data-bs-theme] .festival-home .hero-awards { margin: 0 0 24px; border-radius: 0; border-left: 0; border-right: 0; }

html[data-bs-theme] .festival-home .hero-awards figcaption { padding: 14px 22px; }
}

html[data-bs-theme] .festival-home .cinema-hero { position: relative; display: grid; grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr); aspect-ratio: 16 / 9; min-height: 0; gap: 0; isolation: isolate; background: #12171c; padding: 0; }

html[data-bs-theme] .festival-home .hero-copy { grid-area: 1 / 1; min-height: 0; position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; max-width: none; padding: clamp(60px,9vh,110px) var(--pad) 110px; background: transparent; }

html[data-bs-theme] .festival-home .hero-copy h1 { margin-bottom: 0; }

html[data-bs-theme] .festival-home .hero-foot { margin-top: 0; }

html[data-bs-theme] .festival-home .hero-copy .eyebrow { color: #f1d569; }

html[data-bs-theme] .festival-home .hero-copy h1 { font-size: clamp(48px,5.4vw,88px); line-height: 1.08; }

html[data-bs-theme] .festival-home .hero-copy h1 span { display: block; }

html[data-bs-theme] .festival-home .hero-copy h1 span:last-child { color: #f1d569; }

html[data-bs-theme] .festival-home .hero-copy .lead { max-width: 490px; margin-top: 30px; font-size: 20px; color: #d4d8dd; }

html[data-bs-theme] .festival-home .cinema-scene { grid-area: 1 / 1; align-self: stretch; position: relative; width: 100%; height: 100%; min-height: 0; aspect-ratio: auto; margin: 0; border: 0; border-radius: 0; z-index: 0; overflow: hidden; background: #12171c; }

html[data-bs-theme] .festival-home .cinema-scene img { width: 100%; height: 100%; object-fit: cover; object-position: center center; aspect-ratio: auto; opacity: .78; }

html[data-bs-theme] .festival-home .cinema-scene:after { display: block; content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#10161c 0%,#10161ce8 25%,#10161c85 50%,#10161c08 80%),linear-gradient(0deg,#12171c 0%,transparent 35%); }

html[data-bs-theme] .festival-home .cinema-scene figcaption { position: absolute; bottom: 25px; left: auto; right: var(--pad); max-width: 330px; z-index: 2; font-size: 11px; line-height: 1.7; background: transparent; color: #d7dadd; padding: 0; }

html[data-bs-theme] .festival-home .cinema-light { position: absolute; inset: 0; background: radial-gradient(ellipse at 80% 30%,#ffc12e20,transparent 55%); mix-blend-mode: screen; }

html[data-bs-theme] .festival-home .motion-toggle { position: absolute; bottom: 25px; left: var(--pad); border: 1px solid #ffffff38; background: #151b22a8; color: #d4d8dd; border-radius: 30px; padding: 9px 16px; font-size: 11px; z-index: 3;  min-height: 44px;}

html[data-bs-theme] .festival-home .motion-toggle:hover { border-color: var(--festival-gold); }

html[data-bs-theme] .festival-home .cinema-scene { translate: 0 var(--hero-parallax, 0px); }

html[data-bs-theme] .festival-home.motion-on .cinema-scene img { animation: none; }

html[data-bs-theme] .festival-home.motion-off .cinema-scene { translate: none; }

@media(prefers-reduced-motion:reduce) {
html[data-bs-theme] .festival-home .cinema-scene { translate: none; }
}

html[data-bs-theme] .festival-home.motion-on .cinema-light { animation: light-drift 10s ease-in-out infinite alternate; }

html[data-bs-theme] .festival-home.motion-on .hero-copy h1 span { animation: title-arrive .9s cubic-bezier(.2,.8,.2,1) both; }

html[data-bs-theme] .festival-home.motion-on .hero-copy h1 span:nth-child(2) { animation-delay: .14s; }

html[data-bs-theme] .festival-home.motion-on .hero-copy h1 span:nth-child(3) { animation-delay: .28s; }

@keyframes light-drift { from { opacity: .35; } to { opacity: 1; } }

@media(min-width:751px) and (max-width:1100px) {
html[data-bs-theme] .festival-home .hero-copy { padding: 24px var(--pad) 88px; }

html[data-bs-theme] .festival-home .hero-copy .eyebrow { margin-bottom: 16px; }

html[data-bs-theme] .festival-home .hero-copy h1 { font-size: clamp(36px,4.8vw,52px); }

html[data-bs-theme] .festival-home .hero-copy .lead { margin-top: 20px; font-size: 18px; }

html[data-bs-theme] .festival-home .hero-foot { font-size: 15px; }
}

@media(max-width:750px) {
html[data-bs-theme] .festival-home .cinema-hero { padding: 0; min-height: 0; aspect-ratio: auto; }

html[data-bs-theme] .festival-home .hero-copy h1 { font-size: clamp(34px,8.7vw,60px); }

html[data-bs-theme] .festival-home .hero-copy .lead { font-size: 18px; max-width: 450px; }

html[data-bs-theme] .festival-home .cinema-scene img { object-position: center center; opacity: .85; }

html[data-bs-theme] .festival-home .cinema-scene:after { background: linear-gradient(180deg,#10161c 10%,#10161cdd 42%,#10161c10 72%,#10161c 100%); }

html[data-bs-theme] .festival-home .cinema-scene figcaption { bottom: 72px; left: var(--pad); max-width: 300px; }
}

@media(max-width:750px) {
html[data-bs-theme] .festival-home .cinema-hero { grid-template-rows: auto auto; }

html[data-bs-theme] .festival-home .hero-copy { grid-area: 1 / 1; padding: 50px var(--pad) 20px; }

html[data-bs-theme] .festival-home .cinema-scene { grid-area: 2 / 1; width: 100%; height: auto; aspect-ratio: auto; padding-bottom: 104px; }

html[data-bs-theme] .festival-home .cinema-scene img { position: static; inset: auto; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; object-position: center center; }

html[data-bs-theme] .festival-home .cinema-scene:after { background: linear-gradient(180deg,#10161c 0%,#10161c26 20%,#10161c08 55%,#10161cd0 100%); }

html[data-bs-theme] .festival-home .cinema-scene figcaption { bottom: 18px; left: var(--pad); max-width: 300px; text-shadow: none; }

html[data-bs-theme] .festival-home .motion-toggle { bottom: 66px;  min-height: 44px;}

html[data-bs-theme] .festival-home.motion-on .cinema-scene img { animation: none; }
}

html[data-bs-theme] .festival-home .participant-band { position: relative; z-index: 2; background: #262e36; }

html[data-bs-theme] .festival-home .participant-band h2 { font-size: clamp(24px,2.3vw,36px); }

html[data-bs-theme] .festival-home .festival-journey { --journey-background: #171d23; --journey-gold: #f8b817; display: block; padding: 90px var(--pad); background: var(--journey-background); border-bottom: 1px solid var(--line); }

html[data-bs-theme] .festival-home .journey-header { display: flex; justify-content: space-between; align-items: center; gap: 40px; margin-bottom: 65px; }

html[data-bs-theme] .festival-home .journey-stage h2 { font-size: 56px; }

html[data-bs-theme] .festival-home .journey-stage h2 > span { color: var(--muted); }

html[data-bs-theme] .festival-home .journey-logo { flex: 0 0 240px; width: 240px; aspect-ratio: 455.2 / 275; }

html[data-bs-theme] .festival-home .journey-logo svg { display: block; width: 100%; height: 100%; overflow: visible; }

html[data-bs-theme] .festival-home .journey-chapters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; list-style: none; padding: 0; margin: 0; }

html[data-bs-theme] .festival-home .journey-chapter { min-width: 0; display: flex; flex-direction: column; }

html[data-bs-theme] .festival-home .chapter-step { display: flex; align-items: center; gap: 12px; border-top: 1px solid var(--line); padding-top: 22px; margin-bottom: 30px; font-size: 18px; font-weight: 600; }

html[data-bs-theme] .festival-home .chapter-number { color: var(--journey-gold); font-size: 13px; font-variant-numeric: tabular-nums; }

html[data-bs-theme] .festival-home .chapter-connector { margin-left: auto; color: var(--muted); font-size: 22px; }

html[data-bs-theme] .festival-home .journey-chapter:last-child .chapter-connector { visibility: hidden; }

html[data-bs-theme] .festival-home .journey-chapter h3 { font-size: 26px; line-height: 1.25; letter-spacing: 0; margin-bottom: 20px; }

html[data-bs-theme] .festival-home .journey-chapter > p { color: var(--muted); font-size: 16px; line-height: 1.7; }

html[data-bs-theme] .festival-home .chapter-tags { display: flex; flex-wrap: wrap; gap: 8px 14px; list-style: none; padding: 24px 0 0; margin: auto 0 0; }

html[data-bs-theme] .festival-home .chapter-tags li { color: var(--muted); font-size: 12px; }

html[data-bs-theme] .festival-home .journey-link { display: inline-flex; margin-top: 44px; }

html[data-bs-theme] .festival-home .path-list a { transition: transform .25s,background .25s,border-color .25s; }

html[data-bs-theme] .festival-home .path-list a:hover { transform: translateX(6px); border-color: #d3b73a; }

html[data-bs-theme] .festival-home .closing { background: radial-gradient(ellipse at 90% 100%,#ebc4000f,transparent 65%),#181e24; }

html[data-bs-theme] .festival-home.motion-on .scroll-content { translate: 0 var(--content-y, 0px); opacity: var(--content-opacity, 1); }

html[data-bs-theme] .festival-home.motion-on .path-list > .scroll-content { translate: var(--content-x, 0px) calc(var(--path-parallax, 0px) + var(--content-y, 0px)); }

html[data-bs-theme] .festival-home .chapter-step { position: relative; }

html[data-bs-theme] .festival-home .chapter-step::before { content: ''; position: absolute; top: -1px; left: 0; width: 100%; height: 2px; background: var(--festival-gold); transform-origin: left; scale: var(--connector-progress, 1) 1; }

html[data-bs-theme] .festival-home .chapter-connector { opacity: calc(0.4 + var(--connector-progress, 1) * 0.6); }

@media(prefers-reduced-motion:reduce) {
html[data-bs-theme] .festival-home.motion-on .scroll-content { translate: none; opacity: 1; }

html[data-bs-theme] .festival-home .chapter-step::before { scale: 1; }

html[data-bs-theme] .festival-home .chapter-connector { opacity: 1; }
}

html[data-bs-theme] .festival-home.motion-off *, html[data-bs-theme] .festival-home.motion-off *:before, html[data-bs-theme] .festival-home.motion-off *:after { animation: none !important; transition: none !important; }

@keyframes title-arrive { from { opacity: 0; transform: translateY(25px); filter: blur(4px); } to { opacity: 1; transform: none; filter: blur(0); } }

@media(max-width:1000px) {
html[data-bs-theme] .festival-home .festival-journey { gap: 6vw; }
}

@media(max-width:750px) {
html[data-bs-theme] .festival-home .festival-journey { display: block; padding-top: 70px; padding-bottom: 70px; }

html[data-bs-theme] .festival-home .journey-stage { position: relative; top: 0; }

html[data-bs-theme] .festival-home .journey-chapter { min-height: 320px; opacity: 1; }

html[data-bs-theme] .festival-home .journey-chapter h3 { font-size: 34px; }

html[data-bs-theme] .festival-home .path-list a:hover { transform: none; }
}

@media(prefers-reduced-motion:reduce) {
html[data-bs-theme] .festival-home *, html[data-bs-theme] .festival-home *:before, html[data-bs-theme] .festival-home *:after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }

html[data-bs-theme] .festival-home .reveal { opacity: 1 !important; transform: none !important; }
}

@media(max-width:1100px) {
html[data-bs-theme] .festival-home .journey-chapters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 42px 32px; }
}

@media(max-width:750px) {
html[data-bs-theme] .festival-home .festival-journey { padding-top: 64px; padding-bottom: 64px; }

html[data-bs-theme] .festival-home .journey-header { flex-direction: column; align-items: flex-start; gap: 30px; margin-bottom: 40px; }

html[data-bs-theme] .festival-home .journey-stage h2 { font-size: 40px; letter-spacing: 0; }

html[data-bs-theme] .festival-home .journey-logo { flex-basis: auto; width: 190px; align-self: center; }

html[data-bs-theme] .festival-home .journey-chapters { grid-template-columns: 1fr; gap: 34px; margin: 0; }

html[data-bs-theme] .festival-home .journey-chapter { min-height: 0; padding: 0; }

html[data-bs-theme] .festival-home .journey-chapter h3 { font-size: 26px; }

html[data-bs-theme] .festival-home .chapter-step { margin-bottom: 20px; }

html[data-bs-theme] .festival-home .chapter-tags { margin-top: 0; padding-top: 20px; }

html[data-bs-theme] .festival-home .chapter-connector { transform: rotate(90deg); }
}

html[data-bs-theme] .festival-home .home-platform-roles { background: #20272f; border-top: 0; border-bottom: 1px solid var(--line); padding-top: 110px; padding-bottom: 110px; }

html[data-bs-theme] .festival-home .home-roles-heading { display: block; margin-bottom: 48px; }

html[data-bs-theme] .festival-home .home-roles-heading h2 { font-size: 56px; line-height: 1.1; }

html[data-bs-theme] .festival-home .home-roles-heading h2 > span { color: var(--muted); }

html[data-bs-theme] .festival-home .home-roles-intro { margin-top: 24px; max-width: 450px; color: #b6bfc9; }

@media(max-width:750px) {
html[data-bs-theme] .festival-home .home-platform-roles { padding-top: 70px; padding-bottom: 70px; }

html[data-bs-theme] .festival-home .home-roles-heading h2 { font-size: 34px; }
}

html[data-bs-theme] .festival-home .graphic-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 48px; }

html[data-bs-theme] .festival-home .graphic-heading .eyebrow { margin-bottom: 10px; color: var(--muted); }

html[data-bs-theme] .festival-home .graphic-heading h2 { font-size: 34px; }

html[data-bs-theme] .festival-home .entry-node { display: grid; place-items: center; position: relative; width: 80px; height: 80px; border: 1px solid var(--line); border-radius: 50%; background: var(--surface); color: var(--ink); margin-bottom: 26px; }

html[data-bs-theme] .festival-home .entry-node svg { width: 27px; height: 27px; stroke-width: 1.5; }

@media (max-width: 650px) {
html[data-bs-theme] .festival-home .graphic-heading { align-items: flex-start; margin-bottom: 36px; gap: 12px; }

html[data-bs-theme] .festival-home .graphic-heading h2 { font-size: 27px; }

html[data-bs-theme] .festival-home .entry-node svg { width: 23px; height: 23px; }
}

html[data-bs-theme] .festival-home .platform-roles { padding-top: 48px; padding-bottom: 70px; border-top: 1px solid var(--line); overflow: hidden; }

html[data-bs-theme] .festival-home .platform-roles-line { height: 1px; margin: 28px 0 36px; background: var(--line); transform-origin: center; }

html[data-bs-theme] .festival-home .platform-roles-track { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; list-style: none; margin: 0; padding: 0; }

html[data-bs-theme] .festival-home .platform-role { min-width: 0; }

html[data-bs-theme] .festival-home .platform-role h3 { font-size: 21px; margin-bottom: 6px; }

html[data-bs-theme] .festival-home .platform-role-heading { color: var(--cyan); font-size: 15px; margin-bottom: 18px; }

html[data-bs-theme] .festival-home .platform-role-actions { display: flex; flex-direction: column; gap: 10px; list-style: none; margin: 0 0 20px; padding: 0; }

html[data-bs-theme] .festival-home .platform-role-actions li { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); font-size: 13px; position: relative; }

html[data-bs-theme] .festival-home .platform-role-actions svg { color: var(--yellow); flex-shrink: 0; }

html[data-bs-theme] .festival-home .platform-role-arrow { position: absolute; left: 50%; bottom: -13px; transform: rotate(90deg); color: var(--muted) !important; }

html[data-bs-theme] .festival-home .platform-role-copy { padding-top: 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 14px; line-height: 1.7; }

@media (max-width: 1100px) {
html[data-bs-theme] .festival-home .platform-roles-track { grid-template-columns: 1fr; gap: 48px; max-width: 560px; }
}

html[data-bs-theme] .festival-home .st0 {
        font-size: 47.22px;
      }

html[data-bs-theme] .festival-home .st0, html[data-bs-theme] .festival-home .st1 {
        fill: #fff;
      }

html[data-bs-theme] .festival-home .st2 {
        font-family: Lato-Bold, Lato, Arial, sans-serif;
        font-weight: 700;
      }

html[data-bs-theme] .festival-home .st3 {
        font-family: Lato-Light, Lato, Arial, sans-serif;
        font-weight: 300;
      }

html[data-bs-theme] .festival-home .st4 {
        fill: #f8b817;
      }

html[data-bs-theme] .festival-home [id] { scroll-margin-top: 145px; }

html[data-bs-theme] .festival-home > .contact-footer { margin: 0; }
