@font-face {
   font-family:'Barlow Condensed';
   font-style:normal;
   font-weight:700;
   font-display:swap;
   src:url('assets/fonts/barlow-700.woff2') format('woff2')
}

@font-face {
   font-family:'Barlow Condensed';
   font-style:normal;
   font-weight:800;
   font-display:swap;
   src:url('assets/fonts/barlow-800.woff2') format('woff2')
}

@font-face {
   font-family:'Barlow Condensed';
   font-style:normal;
   font-weight:900;
   font-display:swap;
   src:url('assets/fonts/barlow-900.woff2') format('woff2')
}

@font-face {
   font-family:'Barlow Condensed';
   font-style:italic;
   font-weight:700;
   font-display:swap;
   src:url('assets/fonts/barlow-italic-700.woff2') format('woff2')
}

@font-face {
   font-family:'Inter';
   font-style:normal;
   font-weight:400 700;
   font-display:swap;
   src:url('assets/fonts/inter-latin.woff2') format('woff2')
}

.brand,.brand b,.brand small,header nav a {
   white-space:nowrap
}

.brand {
   flex-shrink:0
}

header nav {
   white-space:nowrap
}

.heading h2 {
   line-height:1.02
}

h1 span {
   letter-spacing:.035em
}

.marquee {
   font-size:clamp(1rem,2.55vw,3.3rem);
   text-align:center
}

.hero-copy {
   top:-2.5rem
}

.artist:nth-child(1) {
   grid-column:span 7
}

.artist:nth-child(2) {
   grid-column:span 5
}

.artist:nth-child(3) {
   grid-column:span 5
}

.artist:nth-child(4) {
   grid-column:span 7
}

.artist:nth-child(5) {
   grid-column:3/span 8
}

.artist:nth-child(1) .visual,.artist:nth-child(4) .visual {
   aspect-ratio:16/9
}

.artist:nth-child(2) .visual {
   aspect-ratio:4/3
}

.artist:nth-child(3) .visual {
   aspect-ratio:4/5
}

.artist:nth-child(5) .visual {
   aspect-ratio:21/8;
   background:radial-gradient(circle at 30% 60%,#e4641899,transparent 20%),linear-gradient(110deg,#0e0b09,#402015 50%,#0e0b09)
}

.visual:has(img) {
   overflow:hidden
}

.visual img {
   width:100%;
   height:100%;
   object-fit:cover;
   object-position:center 20%
}

.person h3 {
   font-size:clamp(1rem,1.55vw,1.4rem);
   white-space:nowrap
}

.portrait img {
   width:100%;
   height:100%;
   object-fit:cover;
   object-position:center 24%;
   position:relative;
   z-index:1
}

.portrait:has(img) {
   overflow:hidden
}

.portrait img[alt^="Michael Thiel"] {
   transform:scale(1.015)
}

@media(min-width:901px) and (max-width:1180px) {
   header {
     padding-inline:2vw
  }

   .brand b {
     font-size:1.35rem
  }

   .brand small {
     font-size:.68rem
  }

   header nav {
     gap:.72rem
  }

   header nav a {
     font-size:.66rem;
     letter-spacing:.08em
  }

   .nav-ticket {
     padding:.65rem .8rem!important
  }

}

.map-link {
   margin-top:1.5rem;
   min-height:78px;
   border:1px solid var(--line);
   display:grid;
   grid-template-columns:50px 1fr auto;
   align-items:center;
   padding:1rem 1.2rem;
   gap:1rem;
   background:#17110d
}

.map-link>span,.map-link>b {
   color:var(--orange);
   font-size:1.5rem
}

.map-link small {
   display:block;
   color:var(--sand);
   text-transform:uppercase;
   letter-spacing:.12em
}

.map-link strong {
   font-family:var(--display);
   font-size:1.35rem;
   text-transform:uppercase
}

:root {
   --black:#090909;
   --ink:#17110d;
   --orange:#e46418;
   --copper:#a8451e;
   --sand:#d6a66a;
   --cream:#f0dfc0;
   --white:#fff8ea;
   --line:#f0dfc033;
   --section-space-y:clamp(3.75rem,6vw,5.75rem);
   --display:'Barlow Condensed',Impact,sans-serif;
   --body:Inter,Arial,sans-serif
}

* {
   box-sizing:border-box
}

html {
   scroll-behavior:smooth
}

body {
   margin:0;
   background:var(--black);
   color:var(--white);
   font:16px/1.6 var(--body);
   overflow-x:hidden
}

body:after {
   content:'';
   position:fixed;
   inset:0;
   pointer-events:none;
   opacity:.035;
   background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")
}

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

button {
   font:inherit
}

.skip {
   position:fixed;
   top:-60px;
   z-index:50;
   background:var(--cream);
   color:#000;
   padding:.6rem
}

.skip:focus {
   top:0
}

header {
   height:80px;
   padding:0 5vw;
   display:flex;
   align-items:center;
   justify-content:space-between;
   position:absolute;
   z-index:10;
   width:100%;
   border-bottom:1px solid #ffffff26
}

.brand {
   display:flex;
   align-items:baseline;
   gap:.5rem;
   font-family:var(--display)
}

.brand b {
   font-size:1.9rem
}

.brand small {
   color:var(--sand);
   letter-spacing:.2em
}

header nav {
   display:flex;
   align-items:center;
   gap:2vw
}

header nav a {
   font-size:.78rem;
   font-weight:700;
   text-transform:uppercase;
   letter-spacing:.13em;
   padding:.8rem 0
}

.nav-ticket {
   background:var(--orange);
   color:#080808;
   padding:.75rem 1.2rem!important
}

.menu-button {
   display:none;
   border:0;
   background:none;
   width:48px;
   height:48px
}

.menu-button i {
   display:block;
   height:2px;
   background:white;
   margin:5px
}

.hero {
   min-height:100svh;
   position:relative;
   display:flex;
   align-items:center;
   padding:8rem 7vw 6rem;
   overflow:hidden
}

.hero-bg,.shade {
   position:absolute;
   inset:0
}

.hero-bg {
   background:url('assets/hero-festival.webp') 53% center/cover;
   animation:zoom 15s ease-out
}

.shade {
   background:linear-gradient(90deg,#090909ed 0,#09090988 48%,#09090918 80%),linear-gradient(0deg,#090909bb,transparent 55%)
}

.hero-copy {
   position:relative;
   z-index:1;
   max-width:1060px
}

.eyebrow {
   font-size:.76rem;
   font-weight:700;
   text-transform:uppercase;
   letter-spacing:.24em;
   margin:0 0 1.1rem
}

.eyebrow em,.orange {
   color:var(--orange)
}

h1,h2,h3 {
   font-family:var(--display);
   line-height:.88;
   text-transform:uppercase;
   margin:0
}

h1 {
   font-size:clamp(4.5rem,11vw,10.5rem);
   letter-spacing:-.05em;
   text-shadow:0 5px 25px #000
}

h1 i {
   font-size:.65em;
   color:var(--cream)
}

h1 span {
   display:block;
   color:var(--orange);
   font-size:.58em;
   font-style:italic;
   margin-left:.7em;
   transform:rotate(-2deg)
}

.facts {
   display:flex;
   gap:1.2rem;
   font:700 clamp(1.25rem,2vw,1.8rem) var(--display);
   letter-spacing:.07em
}

.facts strong {
   color:var(--cream)
}

.facts span {
   border-left:1px solid var(--sand);
   padding-left:1.2rem
}

.kicker {
   font-size:.72rem;
   text-transform:uppercase;
   letter-spacing:.16em
}

.hero-schedule {
   margin:.7rem 0 0;
   color:var(--cream);
   font-size:calc(.82rem + 2pt);
   font-weight:800;
   letter-spacing:.1em;
   text-transform:uppercase
}

.hero-schedule span {
   color:var(--orange)
}

.actions {
   display:flex;
   gap:.8rem;
   margin-top:2rem
}

.button {
   min-height:52px;
   padding:.8rem 1.3rem;
   display:inline-flex;
   align-items:center;
   justify-content:center;
   border:1px solid var(--line);
   text-transform:uppercase;
   font-weight:800;
   letter-spacing:.08em;
   font-size:.8rem;
   cursor:pointer
}

.primary {
   background:var(--orange);
   color:#090909;
   border-color:var(--orange)
}

.ghost {
   background:#09090977;
   color:var(--white)
}

.cream {
   background:var(--cream);
   color:#090909
}

.hero aside {
   position:absolute;
   z-index:2;
   right:5vw;
   bottom:5rem;
   border-left:2px solid var(--orange);
   padding-left:1rem;
   display:grid;
   font-family:var(--display)
}

.hero aside small {
   color:var(--sand);
   letter-spacing:.15em
}

.hero aside b {
   font-size:1.25rem
}

.hero aside hr {
   width:100%;
   border:0;
   border-top:1px solid var(--line)
}

.section {
   max-width:1440px;
   margin:auto;
   padding:var(--section-space-y) clamp(1.2rem,5vw,5rem);
   position:relative
}

.number {
   position:absolute;
   top:2rem;
   right:4vw;
   color:var(--orange);
   font:700 .72rem var(--display);
   letter-spacing:.15em
}

.intro {
   max-width:none;
   background:linear-gradient(115deg,#090909 55%,#17110d);
   display:grid;
   grid-template-columns:.85fr 1.15fr;
   gap:7vw;
   align-items:center
}

.intro-copy {
   max-width:650px;
   margin-left:auto
}

.intro h2,.heading h2,.cashless h2,.faq h2 {
   font-size:clamp(3.3rem,7vw,7.5rem)
}

h2 span {
   color:var(--orange)
}

.intro-copy>p:last-child,.heading>p {
   color:#aaa098;
   max-width:470px
}

.intro figure {
   margin:0;
   position:relative
}

.intro figure:before {
   content:'';
   position:absolute;
   inset:-12px;
   border:1px solid var(--copper)
}

.intro img {
   position:relative;
   width:100%;
   aspect-ratio:4/5;
   object-fit:cover
}

figcaption,.note {
   color:#81776e;
   font-size:.68rem;
   text-transform:uppercase;
   letter-spacing:.1em
}

.marquee {
   grid-column:1/-1;
   font:900 clamp(1rem,2.45vw,3.1rem) var(--display);
   white-space:nowrap;
   overflow:hidden;
   text-align:center;
   color:transparent;
   -webkit-text-stroke:1px var(--copper);
   margin:3rem -5vw -5rem;
   border-block:1px solid var(--line)
}

.heading {
   display:flex;
   justify-content:space-between;
   align-items:end;
   gap:3rem;
   margin-bottom:4rem
}

.artist-grid {
   display:grid;
   grid-template-columns:repeat(12,1fr);
   gap:1rem
}

.artist {
   grid-column:span 4
}

.artist:nth-child(1),.artist:nth-child(4) {
   grid-column:span 6
}

.visual {
   aspect-ratio:4/3;
   position:relative;
   display:grid;
   place-items:center;
   text-align:center;
   background:radial-gradient(circle at 68% 28%,#e46418a8,transparent 23%),linear-gradient(145deg,#402015,#0e0b09 65%);
   font:700 .8rem var(--display);
   letter-spacing:.15em;
   color:#f0dfc066
}

.visual b {
   position:absolute;
   left:1rem;
   top:1rem;
   color:var(--orange)
}

.artist>small,.person>small {
   display:block;
   color:var(--orange);
   margin-top:.8rem;
   letter-spacing:.12em
}

.artist h3 {
   font-size:clamp(2rem,3.5vw,4rem)
}

.artist p {
   margin:0;
   color:#81776e
}

.timetable {
   border-top:1px solid var(--line);
   background:linear-gradient(135deg,#090909 35%,#1c100b)
}

.timetable-grid {
   display:grid;
   grid-template-columns:minmax(0,1fr);
   gap:1rem;
   width:min(100%,1100px);
   margin-inline:auto
}

.timetable-day {
   position:relative;
   padding:clamp(1.5rem,4vw,3rem);
   border:1px solid var(--line);
   background:#0d0c0be8;
   overflow:hidden
}

.timetable-day:before {
   content:'★';
   position:absolute;
   right:-1rem;
   top:-3.5rem;
   color:#e4641812;
   font-size:13rem;
   line-height:1
}

.timetable-date {
   position:relative;
   margin:0 0 2rem;
   color:var(--cream);
   font:800 clamp(1.3rem,2.5vw,2rem) var(--display);
   letter-spacing:.08em
}

.timetable-date span {
   display:block;
   color:var(--orange);
   font:700 .8rem var(--body);
   letter-spacing:.18em
}

.timetable-day ol {
   position:relative;
   margin:0;
   padding:0;
   list-style:none
}

.timetable-day li {
   min-height:92px;
   display:grid;
   grid-template-columns:minmax(120px,.42fr) 1fr;
   align-items:center;
   gap:1.5rem;
   border-top:1px solid var(--line)
}

.timetable-day li:last-child {
   border-bottom:1px solid var(--line)
}

.timetable-day time {
   color:var(--orange);
   font:900 clamp(1.7rem,3vw,2.6rem) var(--display)
}

.timetable-day strong {
   font:800 clamp(1.5rem,3vw,2.8rem)/1 var(--display)
}

.timetable-day .timetable-no-time {
   grid-template-columns:minmax(120px,.42fr) 1fr
}

.timetable-no-time strong {
   grid-column:2
}

.timetable-day .timetable-djs {
   min-height:84px;
   padding:.8rem 1rem;
   background:#e4641809
}

.timetable-djs>span {
   color:var(--orange);
   font:800 .75rem var(--body);
   letter-spacing:.14em;
   text-transform:uppercase
}

.timetable-djs>div {
   display:grid;
   gap:.25rem
}

.timetable-djs strong {
   font-size:clamp(1.4rem,2.5vw,2.2rem)
}

.timetable-djs small {
   color:#aca198;
   font-size:.88rem
}

.ticket-stage {
   --ticket-mark-x:78%;
   --ticket-mark-y:50%;
   min-height:620px;
   padding:var(--section-space-y) 8vw;
   position:relative;
   overflow:hidden;
   display:flex;
   align-items:center;
   background:radial-gradient(circle at 75% 45%,#e46418,#a3340c 22%,#2a1008 55%,#090909 82%)
}

.ticket-stage:after {
   content:'★';
   position:absolute;
   left:var(--ticket-mark-x);
   top:var(--ticket-mark-y);
   font-size:min(46vw,660px);
   line-height:1;
   color:#09090925;
   transform:translate(-50%,-50%)
}

.ticket-stage>div {
   z-index:1
}

.ticket-stage h2 {
   font-size:clamp(4rem,9vw,9rem)
}

.stamp {
   position:absolute;
   left:var(--ticket-mark-x);
   top:var(--ticket-mark-y);
   width:220px;
   height:220px;
   border:2px solid var(--cream);
   border-radius:50%;
   display:flex;
   flex-direction:column;
   align-items:center;
   justify-content:center;
   transform:translate(-50%,-50%) rotate(8deg);
   font-family:var(--display)
}

.stamp strong {
   font-size:4rem;
   line-height:.8
}

.info-grid {
   display:grid;
   grid-template-columns:repeat(3,1fr);
   border-left:1px solid var(--line);
   border-top:1px solid var(--line)
}

.info-grid article {
   min-height:235px;
   padding:1.3rem;
   border-right:1px solid var(--line);
   border-bottom:1px solid var(--line);
   background:#0d0c0b
}

.info-grid .featured {
   background:var(--orange);
   color:#090909
}

.info-grid i {
   display:block;
   color:var(--orange);
   font-size:2rem;
   margin:2rem 0
}

.info-grid .featured i {
   color:#090909
}

.info-grid h3 {
   font-size:1.6rem
}

.info-grid p {
   color:#9e958d;
   font-size:.9rem
}

.info-grid .featured p {
   color:#2a1810
}

.cashless {
   max-width:none;
   background:
     radial-gradient(circle at 12% 50%,#e4641817,transparent 31%),
     linear-gradient(115deg,#17110d,#0b0a09 68%);
   color:var(--white);
   display:grid;
   grid-template-columns:minmax(180px,.4fr) minmax(0,2.2fr);
   gap:4rem;
   align-items:center;
   border-top:1px solid var(--line);
   border-bottom:1px solid var(--line)
}

.cashmark {
   width:min(15vw,210px);
   aspect-ratio:1;
   border:2px solid #e4641899;
   border-radius:50%;
   display:grid;
   place-items:center;
   color:#e46418cc;
   background:#e4641808;
   font:900 10rem/1 var(--display);
   transform:rotate(-8deg)
}

.cashless>div:last-child>p {
   color:#c0b7ae
}

.notice {
   display:block;
   border-left:3px solid #e46418b8;
   padding:.8rem 1rem;
   background:#e464180d;
   color:#e8dfd7
}

.gallery {
   display:grid;
   grid-template-columns:1.3fr .8fr;
   grid-template-rows:repeat(2,290px);
   gap:1rem
}

.gallery button,.gallery-static {
   position:relative;
   border:0;
   padding:0;
   background:#111;
   color:#fff;
   overflow:hidden;
   cursor:zoom-in
}

.gallery .tall {
   grid-row:1/3
}

.gallery img {
   width:100%;
   height:100%;
   object-fit:cover;
   filter:saturate(.76) brightness(.78);
   transition:transform .4s,filter .4s,opacity .24s
}

.gallery button::after,.gallery-static::after {
   content:'';
   position:absolute;
   inset:0;
   z-index:1;
   pointer-events:none;
   background:linear-gradient(180deg,#0909091f,#09090970)
}

.gallery button:hover img {
   transform:scale(1.03);
   filter:saturate(.88) brightness(.86)
}

.gallery img.is-switching {
   opacity:.18;
   transform:scale(1.015)
}

.gallery span {
   position:absolute;
   z-index:2;
   left:1rem;
   bottom:1rem;
   background:#090909;
   padding:.4rem .7rem;
   font-size:.7rem;
   text-transform:uppercase;
   letter-spacing:.1em
}

.merch {
   max-width:1600px;
   min-height:640px;
   margin:auto;
   position:relative;
   overflow:hidden
}

.merch>img {
   position:absolute;
   width:100%;
   height:100%;
   object-fit:cover
}

.merch:after {
   content:'';
   position:absolute;
   inset:0;
   background:linear-gradient(90deg,#090909 5%,#090909e8 38%,transparent 80%)
}

.merch>div {
   position:relative;
   z-index:1;
   padding:var(--section-space-y) 8vw;
   max-width:800px
}

.merch h2,.contact h2 {
   font-size:clamp(4rem,8vw,8.5rem)
}

.merch small {
   display:block;
   color:#aaa;
   margin-top:.5rem
}

.people {
   display:grid;
   grid-template-columns:repeat(5,1fr);
   gap:1rem
}

.crew-heading {
   margin:clamp(4rem,7vw,7rem) 0 1.75rem;
   padding-top:clamp(2.25rem,4vw,4rem);
   border-top:1px solid #f0dfc026
}

.crew-heading h3 {
   margin:.55rem 0 0;
   font:900 clamp(2.5rem,5vw,5rem)/.92 var(--display);
   color:var(--cream)
}

.people-crew {
   grid-template-columns:repeat(3,minmax(0,1fr));
   max-width:calc(60% + .4rem)
}

.portrait {
   position:relative;
   aspect-ratio:3/4;
   display:grid;
   place-items:center;
   background:linear-gradient(150deg,#422116,#100d0b);
   font:900 clamp(3rem,6vw,6rem) var(--display);
   color:#f0dfc025
}

.ai-mark {
   position:absolute;
   right:.25rem;
   bottom:.25rem;
   z-index:2;
   padding:.1rem .15rem;
   background:#0908078f;
   color:#fff8eab8;
   font:700 .5rem/1 var(--body);
   letter-spacing:.05em
}

.person h3 {
   font-size:1.5rem
}

.faq {
   display:grid;
   grid-template-columns:.7fr 1.3fr;
   gap:6rem
}

.faq>div:first-child>p:last-child {
   color:#aaa
}

#faqs {
   border-top:1px solid var(--line)
}

details {
   border-bottom:1px solid var(--line)
}

summary {
   min-height:78px;
   display:grid;
   grid-template-columns:44px 1fr auto;
   align-items:center;
   list-style:none;
   cursor:pointer;
   font:700 1.25rem var(--display);
   text-transform:uppercase
}

summary span,summary b {
   color:var(--orange)
}

summary::-webkit-details-marker {
   display:none
}

details[open] summary b {
   transform:rotate(45deg)
}

details p {
   margin:0 44px 1.5rem;
   color:#aaa
}

.contact {
   max-width:none;
   background:var(--orange);
   color:#090909;
   text-align:center
}

.contact h2 span {
   color:var(--cream)
}

.contact-links {
   max-width:980px;
   margin:4rem auto 0;
   border-top:1px solid #09090955
}

.contact-links a {
   min-height:88px;
   display:grid;
   grid-template-columns:170px 1fr auto;
   align-items:center;
   text-align:left;
   border-bottom:1px solid #09090955
}

.contact-links small {
   font-size:.68rem;
   text-transform:uppercase;
   letter-spacing:.1em
}

.contact-links b {
   font:700 clamp(1.2rem,2.5vw,2rem) var(--display)
}

footer {
   max-width:1440px;
   margin:auto;
   padding:3rem 5vw 4.5rem;
   display:grid;
   grid-template-columns:1.3fr .7fr 1fr .7fr;
   gap:2rem;
   border-top:1px solid var(--line)
}

.footer-logo {
   font:900 2.5rem/.8 var(--display)
}

.footer-logo i {
   color:var(--orange)
}

.footer-logo small {
   display:block;
   color:var(--orange);
   font-size:1rem;
   margin-top:.6rem
}

footer div,footer nav {
   display:flex;
   flex-direction:column
}

footer nav a {
   color:#aaa;
   font-size:.85rem
}

footer>p {
   grid-column:1/-1;
   color:#706860;
   font-size:.7rem
}

.mobile-ticket {
   display:none
}

dialog {
   width:min(92vw,1200px);
   height:min(86vh,850px);
   background:#090909;
   border:1px solid var(--line);
   padding:0
}

dialog::backdrop {
   background:#000e
}

dialog img {
   width:100%;
   height:100%;
   object-fit:contain
}

#galleryDialog {
   max-width:calc(100vw - 2rem);
   max-height:calc(100dvh - 2rem);
   overflow:hidden
}

#galleryDialog img {
   position:absolute;
   inset:0;
   display:block;
   max-width:100%;
   max-height:100%
}

dialog button {
   position:absolute;
   z-index:2;
   width:48px;
   height:48px;
   border:0;
   background:var(--orange);
   font-size:1.7rem
}

#closeBox {
   right:0
}

#prev {
   left:0;
   top:50%
}

#next {
   right:0;
   top:50%
}

.reveal {
   opacity:0;
   transform:translateY(22px);
   transition:.7s
}

.visible {
   opacity:1;
   transform:none
}

@keyframes zoom {
   from {
     transform:scale(1.06)
  }

   to {
     transform:scale(1)
  }

}

.legal {
   background:#0d0c0b
}

.legal header {
   position:relative
}

.legal-main {
   max-width:980px;
   margin:auto;
   padding:6rem 5vw
}

.legal-main>h1 {
   font-size:clamp(4rem,10vw,9rem)
}

.warning {
   margin:2rem 0 4rem;
   padding:1rem;
   border-left:4px solid var(--orange);
   background:#2a1810;
   color:var(--cream);
   font-weight:700
}

.legal-main section {
   max-width:760px;
   margin:4rem 0
}

.legal-main section h2 {
   font-size:2rem;
   margin:2.7rem 0 1rem
}

.legal-main section h3 {
   font-size:1.35rem;
   margin:2rem 0 .7rem
}

.legal-main section p {
   color:#c0b8af
}

.legal-main section a {
   color:var(--orange);
   text-decoration:underline
}

@media(max-width:900px) {
   header {
     height:68px
  }

   .menu-button {
     display:block;
     z-index:2
  }

   header nav {
     position:fixed;
     inset:0;
     background:#090909;
     flex-direction:column;
     justify-content:center;
     transform:translateX(100%);
     transition:.3s
  }

   header nav.open {
     transform:none
  }

   header nav a {
     font:800 2rem var(--display)
  }

   .hero {
     padding-bottom:7rem;
     align-items:end
  }

   .hero-copy {
     width:100%
  }

   .hero aside {
     display:none
  }

   .intro,.cashless,.faq {
     grid-template-columns:1fr
  }

   .intro-copy {
     margin:0
  }

   .artist,.artist:nth-child(1),.artist:nth-child(4) {
     grid-column:span 6
  }

   .info-grid {
     grid-template-columns:repeat(2,1fr)
  }

   .cashmark {
     width:150px;
     font-size:7rem
  }

   .people {
     grid-template-columns:repeat(3,1fr)
  }

   .people-crew {
     max-width:none
  }

   footer {
     grid-template-columns:repeat(2,1fr)
  }

}

@media(max-width:600px) {
   body {
     padding-bottom:62px
  }

   .hero {
     padding:7rem 1.15rem 6rem
  }

   .hero-bg {
     background-position:62% center
  }

   .shade {
     background:linear-gradient(0deg,#090909 2%,#09090955 70%,#09090955)
  }

   h1 {
     font-size:clamp(4.2rem,20vw,6rem)
  }

   h1 span {
     margin-left:.1em
  }

   .facts {
     flex-direction:column;
     gap:0
  }

   .facts span {
     border:0;
     padding:0
  }

   .actions {
     display:grid
  }

   .section {
     padding-block:3.75rem
  }

   .intro {
     display:block
  }

   .intro figure {
     margin-top:3rem
  }

   .intro img {
     aspect-ratio:4/3
  }

   .marquee {
     margin-bottom:-4rem
  }

   .heading {
     display:block;
     margin-bottom:2.5rem
  }

   .heading>p {
     margin-top:1.5rem
  }

   .gallery {
     display:flex;
     overflow-x:auto;
     scroll-snap-type:x mandatory;
     margin-right:-1.2rem;
     padding-right:1.2rem
  }

   .artist-grid {
     display:grid;
     grid-template-columns:1fr;
     gap:2.5rem;
     overflow:visible;
     margin-right:0;
     padding-right:0
  }

   .timetable-grid {
     grid-template-columns:1fr
  }

   .timetable-day li {
     grid-template-columns:1fr;
     gap:.15rem;
     padding:1rem 0
  }

   .timetable-day .timetable-no-time {
     grid-template-columns:1fr
  }

   .timetable-no-time strong {
     grid-column:auto
  }

   .artist,.artist:nth-child(n) {
     grid-column:auto;
     min-width:0
  }

   .gallery button,.gallery-static {
     min-width:83vw;
     scroll-snap-align:start
  }

   .people {
     grid-template-columns:1fr;
     overflow:visible;
     margin-right:0;
     padding-right:0
  }

   .crew-heading {
     margin-top:4rem
  }

   .people .person {
     min-width:0
  }

   .ticket-stage {
     --ticket-mark-x:50%;
     --ticket-mark-y:50%;
     min-height:540px;
     padding:4.5rem 1.2rem
  }

   .stamp {
     width:160px;
     height:160px;
     opacity:.3
  }

   .info-grid {
     grid-template-columns:1fr
  }

   .info-grid article {
     min-height:190px
  }

   .gallery button,.gallery .tall,.gallery-static {
     height:460px;
     grid-row:auto
  }

   .merch {
     min-height:560px
  }

   .merch>div {
     padding:4rem 1.2rem
  }

   .cashless {
     gap:2rem
  }

   .faq {
     gap:2rem
  }

   .contact-links a {
     grid-template-columns:1fr auto;
     padding:1rem 0
  }

   .contact-links small {
     grid-column:1
  }

   .contact-links b {
     word-break:break-word
  }

   .contact-links i {
     grid-row:1/3;
     grid-column:2
  }

   .mobile-ticket {
     position:fixed;
     display:flex;
     z-index:20;
     left:0;
     right:0;
     bottom:0;
     height:62px;
     align-items:center;
     justify-content:center;
     background:var(--orange);
     color:#090909;
     font-weight:900;
     letter-spacing:.08em
  }

   footer {
     padding-bottom:3rem
  }

   .footer-logo {
     grid-column:1/-1
  }

}

/* Interaktive Infokarte und Camping-Overlay */
.info-grid .info-card {
   min-height:235px;
   padding:1.3rem;
   border:0;
   border-right:1px solid var(--line);
   border-bottom:1px solid var(--line);
   background:#0d0c0b;
   color:var(--white);
   text-align:left;
   cursor:pointer;
   position:relative;
   transition:background .2s,color .2s
}

.info-grid .info-card:hover,.info-grid .info-card:focus-visible {
   background:#1b120d;
   outline:2px solid var(--orange);
   outline-offset:-2px
}

.info-grid .rodeo-card {
   background:linear-gradient(135deg,#2d160a,#100e0c 68%);
   box-shadow:inset 0 3px 0 var(--orange)
}

.info-grid .rodeo-card:hover,.info-grid .rodeo-card:focus-visible {
   background:linear-gradient(135deg,#3a1b0b,#17110d 68%)
}

.info-grid .info-card i {
   font-style:normal
}

.info-grid .info-card p {
   color:#b0a69d
}

.info-grid .info-card>span {
   display:inline-block;
   color:var(--orange);
   font-size:.7rem;
   font-weight:800;
   text-transform:uppercase;
   letter-spacing:.12em;
   margin-top:.35rem
}

.info-dialog {
   width:min(94vw,1080px);
   height:min(90vh,900px);
   max-width:none;
   max-height:none;
   padding:0;
   border:1px solid #e4641866;
   background:#0c0b0a;
   color:var(--white);
   overflow:hidden
}

.info-dialog::backdrop {
   background:#000c;
   backdrop-filter:blur(5px)
}

.info-dialog-shell {
   height:100%;
   display:grid;
   grid-template-rows:auto 1fr
}

.info-dialog-head {
   position:relative;
   width:auto;
   height:auto;
   padding:2rem clamp(1.25rem,4vw,3.5rem) 1.7rem;
   display:flex;
   align-items:end;
   justify-content:space-between;
   border-bottom:1px solid var(--line);
   background:linear-gradient(115deg,#25140b,#0c0b0a 68%)
}

.info-dialog-head h2 {
   font-size:clamp(3.4rem,7vw,6.5rem)
}

.info-dialog-head p:last-child {
   margin:.7rem 0 0;
   color:#b8aea5
}

.info-dialog .info-close {
   position:static;
   flex:0 0 auto;
   width:52px;
   height:52px;
   border:1px solid var(--orange);
   background:transparent;
   color:var(--orange);
   font-size:2rem;
   line-height:1;
   cursor:pointer
}

.info-dialog .info-close:hover,.info-dialog .info-close:focus-visible {
   background:var(--orange);
   color:#090909;
   outline:none
}

.info-dialog-body {
   overflow:auto;
   padding:0 clamp(1.25rem,4vw,3.5rem) 3rem
}

.info-intro {
   max-width:820px;
   margin:0;
   padding:1.5rem 0 1.7rem;
   color:var(--cream);
   font-size:1rem;
   border-bottom:1px solid var(--line)
}

.camping-rules>section {
   display:grid;
   grid-template-columns:64px minmax(0,1fr);
   gap:1.2rem;
   padding:1.8rem 0;
   border-bottom:1px solid var(--line)
}

.camping-rules>section>span {
   color:var(--orange);
   font:700 .8rem var(--display);
   letter-spacing:.12em
}

.rodeo-schedule>section>span {
   line-height:1.35
}

.camping-rules h3 {
   font-size:clamp(1.7rem,3vw,2.4rem);
   margin-bottom:.75rem
}

.camping-rules ul {
   margin:0;
   padding-left:1.15rem;
   color:#bbb1a8
}

.camping-rules li+li {
   margin-top:.6rem
}

.camping-rules li::marker {
   color:var(--orange)
}

.liability {
   margin-top:1.25rem;
   padding:1rem 1.1rem;
   border-left:3px solid var(--orange);
   background:#e4641812
}

.liability strong {
   font-family:var(--display);
   font-size:1.25rem;
   text-transform:uppercase
}

.liability p {
   margin:.35rem 0 0;
   color:#b8aea5
}

@media(max-width:600px) {
   .info-grid .info-card {
     min-height:190px
  }

   .info-dialog {
     width:100vw;
     height:100dvh;
     border:0;
     margin:0
  }

   .info-dialog-head {
     padding:1.2rem
  }

   .info-dialog-head h2 {
     font-size:3.2rem
  }

   .info-dialog-head p:last-child {
     font-size:.9rem
  }

   .info-dialog .info-close {
     width:46px;
     height:46px
  }

   .info-dialog-body {
     padding:0 1.2rem 2rem
  }

   .camping-rules>section {
     grid-template-columns:1fr;
     gap:.35rem
  }

   .camping-rules>section>span {
     font-size:.75rem
  }

}

@media(prefers-reduced-motion:reduce) {
   *,*:after {
     animation:none!important;
     transition:none!important;
     scroll-behavior:auto!important
  }

   .reveal {
     opacity:1;
     transform:none
  }

}

.hero {
   padding:7.5rem 4.7vw 3.5rem;
   align-items:center
}

.hero-copy {
   top:1.4rem;
   width:100%;
   max-width:none
}

.hero .eyebrow {
   font-size:clamp(.8rem,1.35vw,1.35rem);
   letter-spacing:.38em;
   margin-bottom:clamp(2.7rem,6vh,5rem)
}

.hero h1 {
   font-size:clamp(6rem,12.2vw,14rem);
   line-height:.76;
   letter-spacing:-.045em;
   white-space:nowrap
}

.hero h1 i {
   font-size:.48em
}

.hero .facts {
   margin-top:2.25rem;
   display:flex;
   align-items:stretch;
   gap:0;
   font-size:clamp(1.65rem,3vw,3.25rem);
   line-height:1
}

.hero .facts strong,.hero .facts>span:not(.camping-fact) {
   display:flex;
   align-items:center;
   white-space:nowrap;
   padding:.25rem clamp(1rem,2.5vw,2.7rem)
}

.hero .facts strong {
   padding-left:0
}

.hero .facts>span:not(.camping-fact) {
   border-left:3px solid var(--sand)
}

.camping-fact {
   margin-left:clamp(.8rem,2vw,2rem);
   padding:.55rem clamp(1rem,2vw,2rem);
   display:flex;
   flex-direction:column;
   justify-content:center;
   background:linear-gradient(100deg,#16130ee8,#211b0fe8);
   border-left:3px solid var(--orange);
   white-space:nowrap
}

.camping-fact small {
   font:700 clamp(.7rem,1.15vw,1.05rem) var(--body);
   letter-spacing:.18em;
   text-transform:uppercase;
   color:var(--cream)
}

.camping-fact b {
   font:800 clamp(1.35rem,2.5vw,2.8rem)/1 var(--display);
   letter-spacing:.05em;
   color:#ffae19;
   text-transform:uppercase
}

.hero .kicker {
   font-size:clamp(.74rem,1.2vw,1.12rem);
   letter-spacing:.3em;
   margin:2.1rem 0 0
}

.hero .countdown {
   position:absolute;
   right:0;
   top:0;
   margin:0
}

.hero .actions {
   margin-top:1.6rem
}

.hero .shade {
   background:linear-gradient(90deg,#090909c7 0,#09090955 55%,#09090914 88%),linear-gradient(0deg,#0909098a,transparent 55%)
}

.hero aside {
   display:none
}

@media(max-width:1050px) {
   .hero {
     align-items:flex-end
  }

   .hero-copy {
     top:0
  }

   .hero .eyebrow {
     margin-bottom:2.3rem
  }

   .hero h1 {
     font-size:clamp(5.4rem,13.2vw,8.8rem)
  }

   .hero .facts {
     flex-wrap:wrap;
     row-gap:.8rem
  }

   .camping-fact {
     margin-left:0
  }

   .hero .countdown {
     top:-.2rem
  }

}

@media(max-width:600px) {
   .hero {
     padding:7rem 1.15rem 4.5rem;
     align-items:flex-end
  }

   .hero .eyebrow {
     font-size:.72rem;
     letter-spacing:.24em;
     margin-bottom:2rem;
     padding-right:0
  }

   .hero h1 {
     font-size:clamp(4.25rem,20vw,6rem);
     line-height:.78;
     white-space:normal
  }

   .hero .facts {
     margin-top:1.4rem;
     display:grid;
     grid-template-columns:1fr 1fr;
     width:100%;
     font-size:1.55rem
  }

   .hero .facts strong,.hero .facts>span:not(.camping-fact) {
     padding:.25rem .75rem
  }

   .hero .facts strong {
     padding-left:0
  }

   .hero .facts>span:not(.camping-fact) {
     border-left:1px solid var(--sand)
  }

   .camping-fact {
     grid-column:1/-1;
     margin:0;
     padding:.65rem .9rem
  }

   .camping-fact small {
     font-size:.65rem
  }

   .camping-fact b {
     font-size:1.6rem
  }

   .hero .kicker {
     font-size:.67rem;
     line-height:1.8;
     letter-spacing:.17em;
     margin-top:1.2rem
  }

   .hero .countdown {
     position:static;
     margin-top:1rem
  }

   .hero .actions {
     margin-top:1rem
  }

}

.camping-fact {
   background:transparent
}

.brand img {
   display:block;
   width:clamp(155px,14vw,220px);
   height:auto;
   max-height:70px;
   object-fit:contain
}

@media(max-width:600px) {
   .brand img {
     width:145px;
     max-height:56px
  }

}

.artist-title-row {
   display:flex;
   align-items:flex-end;
   justify-content:space-between;
   gap:1rem;
   margin-top:.15rem
}

.artist-title-row h3 {
   min-width:0
}

.artist-links {
   display:flex;
   flex:0 0 auto;
   gap:.55rem;
   padding-bottom:.2rem
}

.artist-links a {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   width:40px;
   height:40px;
   border:1px solid var(--line);
   background:#090909a6;
   transition:transform .2s,border-color .2s,background .2s
}

.artist-links img {
   display:block;
   width:23px;
   height:23px;
   object-fit:contain
}

.artist-links .spotify-link {
   border-color:#1ed76088
}

.artist-links .youtube-link {
   border-color:#ff003388
}

.artist-links .soundcloud-link {
   border-color:#ff550099
}

.artist-links a:hover,.artist-links a:focus-visible {
   transform:translateY(-2px);
   background:#1a1512;
   border-color:var(--cream);
   outline:none
}

@media(max-width:760px) {
   .artist-title-row {
     align-items:flex-start;
     flex-direction:column;
     gap:.65rem
  }

   .artist-links {
     padding-bottom:0
  }

   .artist-links a {
     width:44px;
     height:44px
  }

   .artist-links img {
     width:25px;
     height:25px
  }

}

.artist:nth-child(3) .visual {
   aspect-ratio:4/3
}

.artist:nth-child(3) .visual img {
   object-position:center 50%
}

.site-plan {
   margin:1.5rem 0 0
}

.site-plan-scroll {
   overflow:auto;
   border:1px solid var(--line);
   background:#080808
}

.site-plan img {
   display:block;
   width:100%;
   height:auto
}

.site-plan figcaption {
   padding:.8rem 0 1.4rem;
   color:#b8aea5;
   border-bottom:1px solid var(--line)
}

.site-plan figcaption strong {
   color:var(--cream)
}

.contact-links a {
   grid-template-columns:minmax(190px,.65fr) minmax(0,1.35fr) auto;
   gap:1.5rem
}

.contact-links small {
   font:700 clamp(1rem,1.35vw,1.2rem)/1.1 var(--display);
   letter-spacing:.08em
}

.contact-links b {
   font:700 clamp(1.3rem,2vw,1.8rem)/1.1 var(--display)
}

@media(max-width:600px) {
   .site-plan img {
     width:720px;
     max-width:none
  }

   .contact-links a {
     grid-template-columns:1fr auto;
     gap:.45rem 1rem
  }

   .contact-links small {
     font-size:1rem
  }

   .contact-links b {
     font-size:1.35rem
  }

}

.ticket-legal-note {
   max-width:620px;
   margin:1rem 0 0;
   color:#d2c6bc;
   font-size:.82rem;
   line-height:1.5
}

.ticket-legal-note strong {
   color:var(--cream)
}

.ticket-legal-note a,.gallery-legal-note a {
   color:var(--orange);
   text-decoration:underline
}

.gallery-legal-note {
   margin:1.25rem 0 0;
   padding:1rem 1.1rem;
   border-left:3px solid var(--orange);
   background:#e4641812;
   color:#b8aea5;
   font-size:.88rem
}

.gallery-legal-note strong {
   color:var(--cream)
}

.legal-main ul {
   color:#c0b8af;
   padding-left:1.25rem
}

.legal-main li+li {
   margin-top:.65rem
}

.legal-main li::marker {
   color:var(--orange)
}

.legal-main code {
   color:var(--cream);
   background:#25140b;
   padding:.12rem .3rem
}

.legal-main .print-button {
   margin-top:1.5rem
}

@media(max-width:600px) {
   .ticket-legal-note {
     font-size:.76rem;
     max-width:88%
  }

   .gallery-legal-note {
     font-size:.82rem
  }

}

@media print {
   .legal.declaration header,.legal.declaration .print-button {
     display:none!important
  }

   .legal.declaration .legal-main {
     max-width:none;
     padding:0
  }

   .legal.declaration .legal-main>h1 {
     font-size:44pt;
     color:#000
  }

   .legal.declaration .legal-main section {
     max-width:none;
     margin:1.4rem 0
  }

   .legal.declaration .legal-main section h2 {
     font-size:16pt;
     margin:1rem 0 .35rem
  }

   .legal.declaration .legal-main section p,.legal.declaration .legal-main li {
     color:#111;
     font-size:9.5pt;
     line-height:1.35
  }

}

.participant-link {
   margin-top:1.5rem;
   min-height:88px;
   border:1px solid #e4641877;
   display:grid;
   grid-template-columns:50px 1fr auto;
   align-items:center;
   padding:1rem 1.2rem;
   gap:1rem;
   background:linear-gradient(110deg,#23140c,#100e0c);
   transition:border-color .2s,background .2s
}

.participant-link:hover,.participant-link:focus-visible {
   border-color:var(--orange);
   background:#24140c;
   outline:none
}

.participant-link>span,.participant-link>b {
   color:var(--orange);
   font:800 1.5rem var(--display)
}

.participant-link small {
   display:block;
   color:var(--sand);
   text-transform:uppercase;
   letter-spacing:.12em
}

.participant-link strong {
   font-family:var(--display);
   font-size:1.35rem;
   text-transform:uppercase
}

.declaration .legal-main {
   max-width:1080px
}

.declaration .legal-main>h1 {
   font-size:clamp(3.4rem,9vw,8rem)
}

.declaration .legal-main section {
   max-width:860px
}

.event-data dl {
   margin:0;
   border-top:1px solid var(--line)
}

.event-data dl>div {
   display:grid;
   grid-template-columns:minmax(150px,.45fr) 1fr;
   gap:1.5rem;
   padding:.8rem 0;
   border-bottom:1px solid var(--line)
}

.event-data dt {
   color:var(--sand);
   font-size:.78rem;
   font-weight:700;
   text-transform:uppercase;
   letter-spacing:.1em
}

.event-data dd {
   margin:0;
   color:var(--cream);
   font-weight:700
}

.consent {
   padding:1.5rem;
   border:1px solid #e4641866;
   background:#17110d
}

.checkline {
   display:flex;
   gap:.8rem;
   align-items:flex-start;
   margin-top:1.4rem;
   color:var(--cream);
   font-weight:700
}

.checkline span {
   color:var(--orange);
   font-size:1.4rem;
   line-height:1
}

.form-lines {
   display:grid;
   grid-template-columns:1fr 1fr;
   gap:1.8rem 2rem;
   margin:2rem 0
}

.form-lines p {
   min-height:64px;
   margin:0;
   padding-top:38px;
   border-bottom:1px solid #8d8278;
   color:#8d8278;
   font-size:.75rem
}

.form-lines small {
   font-size:.68rem
}

.print-button {
   border:0
}

@media(max-width:600px) {
   .participant-link {
     grid-template-columns:38px 1fr auto;
     padding:.9rem
  }

   .participant-link strong {
     font-size:1.1rem
  }

   .event-data dl>div,.form-lines {
     grid-template-columns:1fr;
     gap:.3rem
  }

   .form-lines {
     gap:1.3rem
  }

   .declaration .legal-main {
     padding-top:4rem
  }

}

@media print {
   .declaration {
     background:#fff;
     color:#000
  }

   .declaration:after,.declaration header,.declaration .warning,.print-button {
     display:none!important
  }

   .declaration .legal-main {
     max-width:none;
     padding:0
  }

   .declaration .legal-main>h1 {
     font-size:44pt;
     color:#000
  }

   .declaration .legal-main section {
     max-width:none;
     margin:1.4rem 0
  }

   .declaration .legal-main section h2 {
     font-size:16pt;
     margin:1rem 0 .35rem
  }

   .declaration .legal-main section p {
     color:#111;
     font-size:9.5pt;
     line-height:1.35
  }

   .event-data dl>div {
     padding:.3rem 0
  }

   .consent {
     padding:.7rem;
     border-color:#555;
     background:none
  }

   .form-lines {
     gap:1rem 1.5rem;
     margin:1rem 0
  }

   .form-lines p {
     min-height:42px;
     padding-top:22px;
     color:#444
  }

   .checkline {
     color:#000
  }

}

#galleryCounter {
   position:absolute;
   z-index:2;
   left:50%;
   bottom:1rem;
   transform:translateX(-50%);
   margin:0;
   padding:.45rem .8rem;
   background:#090909d9;
   border:1px solid var(--line);
   color:var(--cream);
   font:700 .8rem var(--body);
   letter-spacing:.12em
}

.header-brand {
   display:flex;
   align-items:center;
   gap:1rem
}

.countdown {
   display:grid;
   margin:0;
   padding-left:1rem;
   border-left:1px solid #ffffff40;
   color:var(--cream);
   font-family:var(--display);
   line-height:1;
   text-transform:uppercase;
   white-space:nowrap
}

.countdown span {
   color:var(--orange);
   font-size:.65rem;
   font-weight:700;
   letter-spacing:.16em
}

.countdown strong {
   font-size:1.05rem;
   letter-spacing:.04em
}

@media(max-width:600px) {
   header {
     padding-inline:1rem
  }

   .header-brand {
     gap:.65rem
  }

   .countdown {
     padding-left:.65rem
  }

   .countdown span {
     font-size:.55rem
  }

   .countdown strong {
     font-size:.85rem;
     max-width:82px;
     white-space:normal
  }

   .brand img {
     width:125px
  }

   .menu-button {
     width:42px
  }

}

.footer-logo-mark {
   position:relative;
   width:min(100%,330px);
   padding-bottom:1.65rem;
   isolation:isolate
}

.footer-logo-mark img {
   display:block;
   width:100%;
   height:auto
}

.footer-logo-mark span {
   position:absolute;
   z-index:-1;
   left:14%;
   right:13%;
   bottom:.2rem;
   padding:.34rem .5rem .3rem;
   background:var(--orange);
   clip-path:polygon(2% 14%,16% 4%,34% 11%,50% 0,68% 10%,84% 3%,99% 17%,96% 88%,80% 96%,62% 89%,46% 100%,28% 91%,4% 97%);
   color:var(--cream);
   font:900 1.25rem/.95 var(--display);
   font-style:italic;
   letter-spacing:.09em;
   text-align:center;
   text-shadow:1px 2px 0 #541b08;
   transform:rotate(-1.5deg)
}

/* Sponsoren */
.nav-sponsor,.sponsor-button {
   border-color:var(--orange)!important;
   color:var(--cream)!important;
   background:#e4641818!important
}

.nav-sponsor {
   padding:.7rem .95rem!important;
   border:1px solid var(--orange)
}

.nav-sponsor:hover,.nav-sponsor:focus-visible,.sponsor-button:hover,.sponsor-button:focus-visible {
   background:var(--orange)!important;
   color:#090909!important;
   outline:none
}

.sponsor-page {
   background:radial-gradient(circle at 75% 12%,#48200f 0,transparent 26%),var(--black)
}

.sponsor-header {
   position:relative;
   background:#090909e8
}

.sponsor-header .brand img {
   width:clamp(180px,18vw,270px)
}

.sponsor-page .sponsor-header nav {
   position:static;
   inset:auto;
   transform:none;
   background:transparent;
   flex-direction:row;
   justify-content:flex-end;
   gap:clamp(.7rem,2vw,2rem)
}

.sponsor-page .sponsor-header nav a {
   font:700 .78rem var(--body);
   letter-spacing:.1em
}

.sponsor-page .sponsor-header nav .button {
   min-height:44px;
   padding:.55rem 1rem;
   font-size:.88rem
}

.sponsor-intro {
   max-width:1440px;
   margin:auto;
   padding:clamp(4.5rem,8vw,8rem) clamp(1.2rem,5vw,5rem) 4rem
}

.sponsor-intro-copy {
   max-width:900px
}

.sponsor-intro h1 {
   font-size:clamp(5rem,11vw,11rem)
}

.sponsor-intro-copy>p:last-child {
   max-width:720px;
   color:#c0b6ad;
   font-size:clamp(1rem,1.6vw,1.25rem)
}

.sponsor-package-visual {
   margin:4rem 0 0
}

.sponsor-package-visual>a {
   display:block;
   border:1px solid #e4641880;
   background:#32170c;
   box-shadow:0 30px 90px #0009
}

.sponsor-package-visual img {
   display:block;
   width:100%;
   height:auto
}

.sponsor-package-visual figcaption {
   display:flex;
   justify-content:space-between;
   gap:1rem;
   padding:1rem 0;
   color:#9f958c;
   font-size:.78rem
}

.sponsor-package-visual figcaption a {
   color:var(--orange);
   font-weight:800
}

.sponsor-contact-link {
   min-height:112px;
   margin-top:2rem;
   padding:1.2rem 1.5rem;
   display:grid;
   grid-template-columns:170px 1fr auto;
   align-items:center;
   gap:1.5rem;
   border:1px solid var(--orange);
   background:linear-gradient(105deg,#e464182b,#110e0c);
   transition:background .2s,color .2s
}

.sponsor-contact-link span {
   color:var(--sand);
   font-size:.9rem;
   font-weight:700;
   text-transform:uppercase;
   letter-spacing:.14em
}

.sponsor-contact-link strong {
   font:800 clamp(1.55rem,3vw,2.7rem)/1 var(--display)
}

.sponsor-contact-link b {
   color:var(--orange);
   font-size:2rem
}

.sponsor-contact-link:hover,.sponsor-contact-link:focus-visible {
   background:var(--orange);
   color:#090909;
   outline:none
}

.sponsor-contact-link:hover span,.sponsor-contact-link:focus-visible span,.sponsor-contact-link:hover b,.sponsor-contact-link:focus-visible b {
   color:#090909
}

.sponsor-contact {
   max-width:none;
   padding-inline:max(5vw,calc((100vw - 1440px)/2 + 5rem));
   display:grid;
   grid-template-columns:minmax(280px,.72fr) minmax(430px,1.28fr);
   gap:clamp(3rem,7vw,7rem);
   background:linear-gradient(120deg,#0d0c0b,#1e110a)
}

.sponsor-contact-copy h2,.sponsor-showcase h2 {
   font-size:clamp(3.5rem,7vw,7rem)
}

.sponsor-contact-copy>p:nth-of-type(2) {
   color:#b8aea5
}

.sponsor-contact-copy a {
   color:var(--orange);
   text-decoration:underline
}

.sponsor-contact-person {
   margin-top:2.5rem;
   padding:1.2rem;
   border-left:3px solid var(--orange);
   background:#e4641812
}

.sponsor-contact-person small,.sponsor-contact-person strong,.sponsor-contact-person a {
   display:block
}

.sponsor-contact-person small {
   color:var(--sand);
   text-transform:uppercase;
   letter-spacing:.1em
}

.sponsor-contact-person strong {
   font:800 1.8rem var(--display)
}

.sponsor-form {
   padding:clamp(1.25rem,3vw,2.5rem);
   border:1px solid #e464185f;
   background:#090909d9
}

.sponsor-form-grid {
   display:grid;
   grid-template-columns:1fr 1fr;
   gap:1.2rem
}

.sponsor-form label>span {
   display:block;
   margin-bottom:.4rem;
   color:var(--cream);
   font-size:.9rem;
   font-weight:750
}

.sponsor-form input,.sponsor-form select,.sponsor-form textarea {
   width:100%;
   border:1px solid #f0dfc03d;
   border-radius:0;
   background:#17130f;
   color:var(--white);
   padding:.85rem .9rem;
   font:1rem/1.4 var(--body)
}

.sponsor-form input,.sponsor-form select {
   min-height:52px
}

.sponsor-form textarea {
   resize:vertical
}

.sponsor-form input:focus,.sponsor-form select:focus,.sponsor-form textarea:focus {
   border-color:var(--orange);
   outline:2px solid #e4641845;
   outline-offset:1px
}

.sponsor-form select option {
   background:#17130f
}

.sponsor-form .form-wide {
   grid-column:1/-1
}

.sponsor-privacy {
   display:grid!important;
   grid-template-columns:22px 1fr;
   align-items:start;
   gap:.7rem;
   margin:1.3rem 0
}

.sponsor-privacy input {
   width:20px;
   height:20px;
   min-height:0;
   margin:.2rem 0 0;
   accent-color:var(--orange)
}

.sponsor-privacy a {
   color:var(--orange);
   text-decoration:underline
}

.sponsor-form>.button {
   font-size:.9rem
}

.form-hint {
   margin:.9rem 0 0;
   color:#9f958c;
   font-size:.88rem
}

.sponsor-showcase {
   padding-top:7rem
}

.sponsor-showcase-grid {
   display:grid;
   grid-template-columns:repeat(3,1fr);
   border-top:1px solid var(--line);
   border-left:1px solid var(--line)
}

.sponsor-showcase-grid article {
   min-height:220px;
   padding:2rem;
   display:flex;
   flex-direction:column;
   align-items:center;
   justify-content:center;
   text-align:center;
   border-right:1px solid var(--line);
   border-bottom:1px solid var(--line);
   background:#0d0c0b
}

.sponsor-showcase-grid span {
   color:var(--orange);
   font-size:2rem
}

.sponsor-showcase-grid strong {
   font:800 1.7rem var(--display);
   text-transform:uppercase
}

.sponsor-showcase-grid small {
   color:#948a82;
   font-size:.82rem;
   text-transform:uppercase;
   letter-spacing:.08em
}

.sponsor-showcase>.button {
   margin-top:2rem;
   font-size:.9rem
}

@media(max-width:900px) {
   .sponsor-page .sponsor-header nav {
     display:flex
  }

   .sponsor-contact {
     grid-template-columns:1fr
  }

   .sponsor-showcase-grid {
     grid-template-columns:1fr
  }

   .sponsor-showcase-grid article {
     min-height:150px
  }

}

@media(max-width:700px) {
   .sponsor-header {
     padding-inline:1rem
  }

   .sponsor-page .sponsor-header nav>a:not(.button) {
     display:none
  }

   .sponsor-page .sponsor-header nav .button {
     font-size:.76rem;
     padding:.5rem .7rem
  }

   .sponsor-header .brand img {
     width:145px
  }

   .sponsor-intro {
     padding-top:3.5rem
  }

   .sponsor-intro h1 {
     font-size:clamp(4.5rem,20vw,7rem)
  }

   .sponsor-package-visual {
     margin-top:2.5rem;
     overflow:hidden
  }

   .sponsor-package-visual>a {
     overflow-x:auto
  }

   .sponsor-package-visual img {
     width:850px;
     max-width:none
  }

   .sponsor-package-visual figcaption {
     display:block
  }

   .sponsor-package-visual figcaption a {
     display:block;
     margin-top:.45rem
  }

   .sponsor-contact-link {
     grid-template-columns:1fr auto;
     gap:.25rem 1rem
  }

   .sponsor-contact-link span {
     grid-column:1
  }

   .sponsor-contact-link strong {
     font-size:1.45rem
  }

   .sponsor-contact-link b {
     grid-column:2;
     grid-row:1/3
  }

   .sponsor-contact {
     padding-inline:1.2rem
  }

   .sponsor-form-grid {
     grid-template-columns:1fr
  }

   .sponsor-form .form-wide {
     grid-column:auto
  }

   .sponsor-form {
     padding:1.1rem
  }

}

.consent-open {
   overflow:hidden
}

.cookie-consent[hidden] {
   display:none
}

.cookie-consent {
   position:fixed;
   inset:0;
   z-index:10000;
   display:grid;
   place-items:end center;
   padding:clamp(1rem,3vw,2rem);
   background:#000b
}

.cookie-consent__panel {
   width:min(100%,980px);
   max-height:calc(100vh - 2rem);
   overflow:auto;
   padding:clamp(1.4rem,4vw,2.5rem);
   border:1px solid #e464187a;
   background:#100e0cf5;
   box-shadow:0 1.5rem 5rem #000b;
   color:var(--white)
}

.cookie-consent__panel:focus {
   outline:2px solid var(--orange);
   outline-offset:2px
}

.cookie-consent__panel h2 {
   margin:.4rem 0 1rem;
   font-size:clamp(2.25rem,5vw,4.5rem)
}

.cookie-consent__panel>p:not(.eyebrow) {
   max-width:800px;
   color:#c7bfb7
}

.cookie-consent__categories {
   display:grid;
   grid-template-columns:repeat(2,minmax(0,1fr));
   gap:.75rem;
   margin:1.5rem 0
}

.cookie-consent__category {
   display:grid;
   grid-template-columns:1fr auto;
   align-items:start;
   gap:1rem;
   padding:1rem;
   border:1px solid var(--line);
   background:#18130f
}

.cookie-consent__category strong,
.cookie-consent__category small {
   display:block
}

.cookie-consent__category strong {
   margin-bottom:.4rem;
   font-family:var(--display);
   font-size:1.2rem;
   text-transform:uppercase
}

.cookie-consent__category small {
   color:#aaa098;
   line-height:1.5
}

.cookie-consent__category input {
   width:1.25rem;
   height:1.25rem;
   margin:.15rem 0 0;
   accent-color:var(--orange)
}

.cookie-consent__details {
   font-size:.82rem
}

.cookie-consent__details a {
   color:var(--orange);
   text-decoration:underline
}

.cookie-consent__actions {
   display:flex;
   flex-wrap:wrap;
   gap:.65rem;
   margin-top:1.5rem
}

.cookie-consent__actions .button {
   min-height:48px
}

.cookie-consent__actions .ghost {
   border-color:#f0dfc066;
   background:#090909c7;
   color:var(--cream)
}

.cookie-consent__actions .ghost:hover,
.cookie-consent__actions .ghost:focus-visible {
   border-color:var(--orange);
   color:var(--white)
}

.cookie-settings-trigger {
   grid-column:1/-1;
   width:max-content;
   padding:0;
   border:0;
   border-bottom:1px solid currentColor;
   background:transparent;
   color:#8c8178;
   font:inherit;
   font-size:.72rem;
   cursor:pointer
}

.cookie-settings-trigger--fixed {
   position:fixed;
   right:1rem;
   bottom:1rem;
   z-index:50;
   padding:.55rem .7rem;
   border:1px solid var(--line);
   background:#100e0eee
}

@media(max-width:600px) {
   .cookie-consent {
     padding:.5rem
  }

   .cookie-consent__panel {
     max-height:calc(100vh - 1rem);
     padding:1.2rem
  }

   .cookie-consent__categories {
     grid-template-columns:1fr
  }

   .cookie-consent__actions {
     display:grid
  }

   .cookie-consent__actions .button {
     width:100%
  }

   .cookie-settings-trigger--fixed {
     bottom:4.8rem
  }

   .legal-main section h2 {
     overflow-wrap:anywhere
  }
}

.merch-coming-page {
   min-height:100vh;
   background:#090909
}

.merch-coming-page header {
   position:absolute;
   background:#090909a8
}

.merch-coming-page .brand img {
   width:clamp(150px,17vw,245px);
   height:auto
}

.merch-coming-page header>a:last-child {
   color:var(--cream);
   font:700 .82rem var(--body);
   letter-spacing:.08em;
   text-transform:uppercase
}

.merch-coming {
   min-height:100vh;
   position:relative;
   display:flex;
   align-items:center;
   overflow:hidden
}

.merch-coming>img,
.merch-coming__shade {
   position:absolute;
   inset:0;
   width:100%;
   height:100%
}

.merch-coming>img {
   object-fit:cover;
   object-position:center
}

.merch-coming__shade {
   background:linear-gradient(90deg,#090909f5 8%,#090909d9 45%,#09090952 78%),linear-gradient(0deg,#090909c9,transparent 55%)
}

.merch-coming__content {
   position:relative;
   z-index:1;
   width:min(760px,90vw);
   margin-left:clamp(1.2rem,8vw,9rem);
   padding:8rem 0 5rem
}

.merch-coming__content h1 {
   margin:.6rem 0 1rem;
   font:900 clamp(5rem,13vw,12rem)/.78 var(--display);
   letter-spacing:-.025em
}

.merch-coming__content h1 span {
   color:var(--orange)
}

.merch-coming__content>p:not(.eyebrow) {
   margin:0 0 2rem;
   color:#d2c7bd;
   font-size:clamp(1rem,2vw,1.25rem)
}

@media(max-width:600px) {
   .merch-coming-page header {
     padding-inline:1rem
  }

   .merch-coming-page .brand img {
     width:145px
  }

   .merch-coming-page header>a:last-child {
     font-size:.68rem
  }

   .merch-coming__shade {
     background:linear-gradient(0deg,#090909f7 10%,#090909b8 68%,#09090982)
  }

   .merch-coming__content {
     align-self:flex-end;
     margin:0;
     padding:8rem 1.2rem 6rem
  }

   .merch-coming__content h1 {
     font-size:clamp(5rem,26vw,7rem)
  }
}
