@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;500;600&display=swap');
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:78px}
body{margin:0;background:#100f0e;color:#f6eee3;font:500 1.35rem/1.4 "Barlow Condensed","Arial Narrow",sans-serif}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:.2em}
a:focus-visible{outline:2px solid #ffbc83;outline-offset:5px}
header{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;min-height:72px;padding:8px 5%;background:#100f0ef5}
header img{display:block;width:100px;height:auto}
nav{display:flex;gap:clamp(20px,4vw,55px)}
nav a{padding:8px 0}
.hero{position:relative;isolation:isolate;min-height:calc(100svh - 72px);display:flex;align-items:end;padding:10vh 5% 7vh;background:#17120f}
.hero img,.hero::after{position:absolute;inset:0;width:100%;height:100%;z-index:-1;object-fit:cover;object-position:center}
.hero::after{content:"";background:linear-gradient(transparent 55%,#0b0806bf)}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-weight:600;line-height:1}
.hero h1{font-size:clamp(2.65rem,5vw,5.25rem);font-variant-caps:small-caps;margin-bottom:18px}
.wrap{width:min(90%,1440px);margin:auto}
#work,.inquiry,.detail{padding-block:clamp(44px,8vw,100px)}
h2,.detail h1{font-size:clamp(3rem,7vw,6rem);margin-bottom:25px}
.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 22px}
.feature{grid-column:1/-1}
.tile{display:block}
.tile-image{overflow:hidden;background:#211b16}
.tile img,.detail img{display:block;width:100%;object-fit:cover;aspect-ratio:1.85}
.feature img{aspect-ratio:3.6;object-position:center 46%}
.tile img{transition:transform .3s}
.tile:hover img{transform:scale(1.025)}
.caption{display:flex;justify-content:space-between;gap:10px;padding-top:8px;font-size:clamp(1.4rem,2.5vw,2rem)}
.inquiry{border-top:1px solid #453b34}
.inquiry p,.detail p{max-width:55ch;margin-bottom:24px}
.button{display:inline-block;padding:9px 22px;border:1px solid currentColor}
.detail img{aspect-ratio:2.35;margin-bottom:26px}
.back{display:inline-block;margin-bottom:22px}
footer{padding:20px 5%;color:#c6b6aa;border-top:1px solid #453b34}
@media(max-width:680px){.work-grid{grid-template-columns:1fr;gap:24px}.feature img,.detail img{aspect-ratio:1.55}.hero{min-height:calc(82svh - 72px);padding-bottom:40px}.hero img{object-position:50% 50%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.tile img{transition:none}}

.artist-hero h1 {
  font-size: clamp(3.4rem, 9vw, 8rem);
  font-variant-caps: normal;
  margin-bottom: 0;
}
.artist-hero::after {
  background: linear-gradient(transparent 48%, #100907e6);
}
.artist-story {
  padding: clamp(24px, 6vw, 96px) 5% clamp(48px, 12vw, 180px);
}
.artist-bio-panel {
  max-width: 680px;
  padding: clamp(20px, 4vw, 48px);
  border: 1px solid #f6eee35c;
  background: #100c0ce0;
}
.artist-kicker {
  color: #ff8176;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.artist-bio-panel h2 {
  margin: 10px 0 24px;
  font-size: clamp(2.8rem, 8vw, 6rem);
  text-transform: uppercase;
}
.artist-bio-panel h2::after {
  display: block;
  width: 64px;
  height: 4px;
  margin-top: 24px;
  background: #e65349;
  content: "";
}
.artist-bio-panel p:not(.artist-kicker) {
  margin-bottom: 18px;
  font: 400 1rem/1.65 system-ui, sans-serif;
}

.artist-extras {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  max-width: 1680px;
  margin: auto;
  padding: clamp(18px, 4vw, 64px) 3%;
}
.artist-feature {
  min-width: 0;
  padding: clamp(20px, 2.6vw, 44px);
  background: radial-gradient(ellipse at 100% 0%, #691c21 0%, transparent 45%), #160f10;
}
.artist-feature h2 {
  margin-bottom: 26px;
  font-size: clamp(2.4rem, 4.2vw, 4.6rem);
  text-transform: uppercase;
}
.artist-feature h2::before {
  display: block;
  width: 48px;
  height: 4px;
  margin-bottom: 14px;
  background: #ff4f55;
  content: "";
}
.artist-listen iframe {
  display: block;
  border: 0;
  margin-bottom: 18px;
  background: #191213;
}
.artist-action {
  display: block;
  border-top: 1px solid #684348;
  padding: 10px 0;
}
.artist-shows ul {
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.show-card {
  border: 1px solid #60272b;
  background: #1b1113;
}
.show-card summary {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  align-content: center;
  min-height: 138px;
  padding: 20px 42px 20px 20px;
  cursor: pointer;
  list-style: none;
  background: linear-gradient(90deg, #100b0cf0, #190b10b0 46%, transparent 92%), var(--show-art) center / cover no-repeat;
}
.show-card summary::-webkit-details-marker { display: none; }
.show-card summary::after {
  content: "+";
  position: absolute;
  right: 14px;
  top: 12px;
  color: #ff9b91;
  line-height: 1;
}
.show-card[open] summary::after { content: "−"; }
.show-card summary:hover, .show-card summary:focus-visible {
  box-shadow: inset 0 0 0 2px #ff726d;
}
.show-card p {
  padding: 14px 20px;
  border-top: 1px solid #60272b;
}
.show-card--glow {
  --show-art: url("assets/show-glow.jpg");
}
.show-card--moon {
  --show-art: url("assets/show-moon.jpg");
}
.show-card--firefly {
  --show-art: url("assets/show-firefly.webp");
}
.show-card--preakness {
  --show-art: url("assets/show-preakness-crowd.webp");
}
.artist-shows strong {
  font-size: clamp(1.8rem, 3vw, 3.2rem);
  line-height: .95;
  text-transform: uppercase;
}
.artist-shows span {
  margin-top: 7px;
  color: #f4c9c3;
  font-size: 1rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.artist-kit-cover {
  display: grid;
  aspect-ratio: 1.15;
  place-items: center;
  margin: 0 auto 18px;
  background: linear-gradient(152deg, #171315 48%, #812027 49% 66%, #290f14 67%);
}
.artist-kit-cover img {
  width: 80%;
  height: auto;
}
.artist-download {
  display: block;
  margin-bottom: 12px;
  border-color: #ff4f55;
  text-align: center;
  text-transform: uppercase;
}
@media (max-width: 900px) {
  .artist-extras { grid-template-columns: 1fr; }
  .artist-kit-cover { max-width: 420px; }
}

.artist {
  isolation: isolate;
}
.artist-backdrop {
  position: fixed;
  inset: 72px 0 0;
  width: 100%;
  height: calc(100% - 72px);
  object-fit: cover;
  object-position: center;
  z-index: -1;
  pointer-events: none;
}
.artist-hero {
  background: transparent;
}
.artist + footer {
  position: relative;
  background: #100f0e;
}

.page-tv {
  position: fixed;
  inset: 0;
  z-index: 101;
  pointer-events: none;
  background: #080607;
  animation: tv-shutter .8s linear both;
}
.page-tv-in {
  animation-direction: reverse;
}
.page-tv::after {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(transparent 0 2px, #0009 2px 4px);
  opacity: .32;
}
.page-tv-out-active body > :is(header, main, footer),
.page-tv-in-active body > :is(header, main, footer) {
  animation: tv-rgb .8s steps(1, end) both;
}
.page-tv-in-active body > :is(header, main, footer) {
  animation-direction: reverse;
}
@keyframes tv-shutter {
  0%, 48% { background: transparent; box-shadow: inset 0 0 0 #080607; }
  68% { background: transparent; box-shadow: inset 0 42vh #080607, inset 0 -42vh #080607; }
  78% { background: transparent; box-shadow: inset 0 49.6vh #080607, inset 0 -49.6vh #080607, inset 0 0 14px 2px #d0c3de; }
  84%, 100% { background: #080607; box-shadow: none; }
}
@keyframes tv-rgb {
  0%, 34%, 48%, 100% { filter: none; }
  12%, 40% { filter: drop-shadow(-6px 0 #f62859) drop-shadow(7px 0 #18d6f288) saturate(1.4); }
  24%, 54% { filter: drop-shadow(4px 0 #fa355f) drop-shadow(-5px 0 #25cfe991) contrast(1.2); }
}
@media (prefers-reduced-motion: reduce) {
  .page-tv, .page-transition { display: none; }
  .page-tv-out-active body > :is(header, main, footer),
  .page-tv-in-active body > :is(header, main, footer) { animation: none; }
}
.page-transition-image .page-transition-mark {
  background: url("assets/transition-r.png") center / contain no-repeat;
}

.page-transition {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  background: #080607;
  perspective: 700px;
}
.page-transition-mark {
  position: relative;
  width: min(48vw, 200px);
  aspect-ratio: 1;
  transform-style: preserve-3d;
  animation: transition-turn .58s ease-in-out both;
}
.page-transition-mark span {
  position: absolute;
  inset: 0;
  -webkit-mask: var(--r-mask) center / contain no-repeat;
  mask: var(--r-mask) center / contain no-repeat;
  transform: translate3d(calc(var(--depth) * .6px), calc(var(--depth) * .5px), calc(var(--depth) * -2px));
  background: #501018;
}
.page-transition-mark span:last-child {
  background: linear-gradient(110deg, #960a18, #ff283b 55%, #ad0917) bottom / 100% 0% no-repeat, #342327;
  animation: transition-fill .46s .07s ease-out forwards;
}
@keyframes transition-turn { from { transform: rotateY(-30deg) rotateZ(-6deg); } to { transform: rotateY(17deg) rotateZ(0); } }
@keyframes transition-fill { to { background-size: 100% 100%, auto; } }

.supported-scroll {
  display: grid;
  gap: 14px;
  max-height: 602px;
  overflow-y: auto;
  margin: 0;
  padding: 0 8px 0 0;
  list-style: none;
  scrollbar-color: #aa424a #1b1113;
  overflow-anchor: none;
}
.supported-artist {
  display: flex;
  align-items: center;
  min-height: 140px;
  padding: 20px;
  border: 1px solid #60272b;
  background: linear-gradient(110deg, #170e10, #3a171e);
}
.supported-artist strong {
  font-size: clamp(1.8rem, 3vw, 3.2rem);
  line-height: .95;
  text-transform: uppercase;
}

.show-card--skrillex {
  --show-art: url("assets/artist-skrillex.jpg");
}
.artist-photo-credit {
  display: grid;
  color: inherit;
  text-decoration: none;
  align-content: center;
  min-height: 138px;
  padding: 20px;
  background: linear-gradient(90deg, #100b0cf0, #190b10b0 46%, transparent 92%), var(--show-art) center 35% / cover no-repeat;
}
a.artist-photo-credit:focus-visible {
  outline: 2px solid #f4c9c3;
  outline-offset: -4px;
}
.artist-photo-credit strong {
  font-size: clamp(1.8rem, 3vw, 3.2rem);
  line-height: .95;
  text-transform: uppercase;
}
.artist-photo-credit span {
  margin-top: 7px;
  color: #f4c9c3;
  font-size: 1rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.show-card--diplo {
  --show-art: url("assets/artist-diplo-gold.jpg");
}

.show-card--zedd {
  --show-art: url("assets/artist-zedd.jpg");
}
.show-card--aoki {
  --show-art: url("assets/artist-aoki.jpg");
}
.show-card--aoki .artist-photo-credit {
  background-position: center, center 15%;
}

.show-card--deadmau5 {
  --show-art: url("assets/artist-deadmau5.jpg");
}

.show-card--griz {
  --show-art: url("assets/artist-griz.webp");
}

.show-card--subtronics {
  --show-art: url("assets/artist-subtronics.jpg");
}
.show-card--subtronics .artist-photo-credit {
  background-position: center, center 14%;
}

.young-cult-hero {
  justify-content: center;
  align-items: center;
  padding: clamp(36px, 8vw, 100px) 5%;
  text-align: center;
}
.young-cult-hero img {
  object-position: center 65%;
}
.young-cult-hero::after {
  background: radial-gradient(ellipse at center, #100e17aa, #100e1755);
}
.young-cult-intro {
  width: min(100%, 850px);
}
.young-cult-kicker {
  color: #e1d5ff;
  font-size: clamp(.9rem, 2vw, 1.15rem);
  letter-spacing: .15em;
  text-transform: uppercase;
}
.young-cult-hero h1 {
  margin: 12px 0 20px;
  font-size: clamp(2.7rem, 8vw, 7.5rem);
  font-variant-caps: normal;
  line-height: .92;
  text-transform: uppercase;
}
.young-cult-lead {
  max-width: 48ch;
  margin-inline: auto;
  font: 400 clamp(.95rem, 2vw, 1.15rem)/1.55 system-ui, sans-serif;
}

.hospitality-hero {
  background: transparent;
}
.hospitality-page {
  isolation: isolate;
}
.hospitality-video {
  position: fixed;
  overflow: hidden;
  background: #100f0e;
  inset: 0;
  z-index: 0;
  container-type: size;
  pointer-events: none;
}
.hospitality-video::after {
  position: absolute;
  inset: 0;
  background: #10090778;
  content: "";
}
.hospitality-page main > section,
.hospitality-page footer {
  position: relative;
  z-index: 1;
}
.hospitality-page footer {
  background: #100f0ed9;
}
.hospitality-video video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hospitality-roles {
  margin-block: clamp(32px, 6vw, 72px);
}
.hospitality-archive {
  margin-top: 28px;
}
.hospitality-archive > summary {
  padding: 16px 22px;
  border: 1px solid #81404a;
  background: #29181c;
  font-size: clamp(1.7rem, 4vw, 2.7rem);
  cursor: pointer;
}
.hospitality-year {
  margin-top: 32px;
}
.hospitality-year h2 {
  margin-bottom: 12px;
  color: #ffaaa2;
  font-size: clamp(2rem, 5vw, 3.5rem);
}
.hospitality-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
  align-items: center;
  gap: clamp(14px, 3vw, 36px);
  padding: clamp(12px, 2vw, 22px);
  margin-bottom: 12px;
  border: 1px solid #674047;
  background: #211519ed;
}
.hospitality-entry:nth-of-type(even) {
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
}
.hospitality-entry:nth-of-type(even) a {
  order: 1;
}
.hospitality-entry img {
  display: block;
  width: 100%;
  height: clamp(130px, 21vw, 235px);
  object-fit: contain;
}
.hospitality-entry h3 {
  font-size: clamp(2.2rem, 5vw, 4.6rem);
}
.hospitality-entry p {
  margin-top: 8px;
}
.hospitality-role {
  font-size: clamp(1.25rem, 2.7vw, 2.2rem);
  line-height: 1.1;
  color: #ffaaa2;
}
@media (max-width: 560px) {
  .hospitality-entry, .hospitality-entry:nth-of-type(even) {
    grid-template-columns: minmax(75px, 32%) minmax(0, 1fr);
  }
  .hospitality-entry:nth-of-type(even) a {
    order: 0;
  }
}

.home-intro {
  position: relative;
  isolation: isolate;
  clip-path: inset(0);
  background: #17120f;
}
.home-backdrop {
  position: fixed;
  inset: 72px 0 0;
  z-index: -1;
  pointer-events: none;
}
.home-backdrop img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.home-intro .hero {
  background: transparent;
}
.home-cta {
  display: grid;
  align-items: center;
  min-height: min(680px, calc(100svh - 72px));
  padding-block: clamp(4rem, 9vw, 8rem);
  background:
    linear-gradient(0deg, #100c0a45, transparent 30%, transparent 90%, #0b0806bf),
    linear-gradient(90deg, #100c0af7, #100c0adb 54%, #100c0a40);
}
.home-cta h2 {
  font-size: clamp(2.9rem, 6vw, 5.25rem);
}
.home-cta p {
  max-width: 62ch;
  margin-bottom: 1.15rem;
  font: 400 clamp(1rem, 1.35vw, 1.125rem)/1.65 system-ui, sans-serif;
}
.home-cta .button {
  margin-top: .75rem;
  background: #f6eee3;
  color: #17120f;
}
.home-cta .button span {
  margin-left: .5em;
}
@media (max-width: 680px) {
  .home-cta {
    background:
      linear-gradient(0deg, #100c0a45, transparent 23%, transparent 91%, #0b0806bf),
      linear-gradient(#100c0ac9, #100c0ad9);
  }
}

.home-work {
  background: linear-gradient(to bottom, #100c0a99 0%, #100c0a70 30%, #100c0a99 80%, #100f0e 100%);
}
.home-work .caption,
.home-work h2 {
  text-shadow: 0 2px 12px #0b0806;
}

.home-bio {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
}
.home-headshot {
  display: block;
  width: min(100%, 440px);
  height: auto;
  justify-self: center;
  filter: sepia(54%) saturate(125%) hue-rotate(-9deg);
  mask-image:
    linear-gradient(to right, transparent, #000 7%, #000 93%, transparent),
    linear-gradient(to bottom, transparent, #000 6%, #000 94%, transparent);
  mask-composite: intersect;
}
@media (max-width: 760px) {
  .home-bio {
    grid-template-columns: 1fr;
  }
  .home-headshot {
    justify-self: start;
  }
}

.wedding-page {
  position: relative;
  isolation: isolate;
  clip-path: inset(0);
  background: #100f0e;
}
.wedding-page::before {
  content: "";
  position: fixed;
  inset: 72px 0 0;
  z-index: -1;
  pointer-events: none;
  background: url("assets/wedding.png") center 46% / cover;
}
.wedding-page + footer {
  background: #100f0e;
}
.wedding-hero {
  display: grid;
  align-items: center;
  min-height: min(700px, calc(100svh - 72px));
  padding-block: clamp(4rem, 10vw, 8rem);
  background: linear-gradient(100deg, #100c0af5, #100c0ad9 42%, #100c0a40);
}
.wedding-hero + .wedding-setlist {
  width: 100%;
  padding-inline: max(5%, calc((100% - 1440px) / 2));
  background: linear-gradient(100deg, #100c0ad9, #100c0aa8);
}
.wedding-kicker {
  color: #f2b88c;
  font-size: 1.05rem;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.wedding-hero h1 {
  max-width: 13ch;
  margin-block: .12em .26em;
  font-size: clamp(3.75rem, 8vw, 8rem);
  text-wrap: balance;
}
.wedding-lead,
.wedding-copy,
.wedding-tracks p {
  font: 400 1rem/1.65 system-ui, sans-serif;
}
.wedding-lead {
  max-width: 48ch;
}
.wedding-cta {
  margin-top: 1.5rem;
  background: #f6eee3;
  color: #17120f;
}
.wedding-setlist {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: start;
  gap: clamp(2rem, 6vw, 6rem);
  padding-block: clamp(2.5rem, 7vw, 6rem);
}
.wedding-setlist h2 {
  font-size: clamp(2.75rem, 5vw, 5rem);
}
.wedding-copy {
  max-width: 60ch;
}
.wedding-tracks {
  margin: 0;
  padding-left: 2.5rem;
  list-style: decimal-leading-zero;
  border-top: 1px solid #6d4f40;
}
.wedding-tracks li {
  padding: 1rem .85rem 1.15rem .4rem;
  border-bottom: 1px solid #6d4f40;
  background: linear-gradient(90deg, #241912, transparent);
}
.wedding-tracks li::marker {
  color: #f2b88c;
  font-variant-numeric: tabular-nums;
}
.wedding-tracks h3 {
  margin-bottom: .35rem;
  font-size: clamp(1.65rem, 3vw, 2.35rem);
}
.wedding-tracks p {
  color: #e1d1c3;
}
@media (max-width: 720px) {
  .wedding-setlist {
    grid-template-columns: 1fr;
  }
  .wedding-hero {
    background: linear-gradient(#100c0a99, #100c0ad9);
  }
  .wedding-page::before {
    background-position: 60% center;
  }
}

.wedding-logistics {
  padding-block: 0 clamp(3rem, 7vw, 6rem);
  background: linear-gradient(100deg, #100c0ad9, #100c0aa8);
}
.wedding-disclosure {
  border-top: 1px solid #8e6956;
  background: #17110ed9;
}
.wedding-disclosure:last-of-type {
  border-bottom: 1px solid #8e6956;
}
.wedding-disclosure summary {
  padding: .75rem 1rem;
  color: #f6eee3;
  font-size: clamp(1.7rem, 4vw, 2.5rem);
  font-weight: 600;
  cursor: pointer;
}
.wedding-disclosure summary::marker {
  color: #f2b88c;
}
.wedding-disclosure summary:focus-visible {
  outline: 2px solid #f2b88c;
  outline-offset: -3px;
}
.wedding-disclosure dl,
.wedding-disclosure > p {
  max-width: 70ch;
  margin: 0;
  padding: 0 1rem 1.25rem;
  font: 400 1rem/1.65 system-ui, sans-serif;
}
.wedding-disclosure dt {
  font-weight: 650;
}
.wedding-disclosure dd {
  margin: .2rem 0 1rem;
  color: #e1d1c3;
}
.wedding-disclosure dd:last-child {
  margin-bottom: 0;
}

.wedding-review {
  max-width: 70ch;
  margin: 0;
  padding: 0 1rem 1.25rem;
  font: 400 1rem/1.65 system-ui, sans-serif;
}
.wedding-review-rating {
  color: #f2b88c;
  letter-spacing: .14em;
}
.wedding-review blockquote {
  margin: .55rem 0 .9rem;
}
.wedding-review figcaption {
  color: #e1d1c3;
}

.inquiry-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  max-width: 44rem;
}
.inquiry-form label { display: block; }
.inquiry-form input:not([type=hidden]):not([hidden]),
.inquiry-form textarea {
  display: block;
  width: 100%;
  min-height: 44px;
  padding: .65rem;
  margin-top: .25rem;
  border: 1px solid #8e6956;
  border-radius: 0;
  background: #17110e;
  color: #f6eee3;
  color-scheme: dark;
  font: 1rem system-ui, sans-serif;
}
.inquiry-form textarea { resize: vertical; }
.inquiry-wide { grid-column: 1 / -1; }
.inquiry-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.inquiry-actions button { font: inherit; color: #17110e; background: #f6eee3; cursor: pointer; }
.inquiry-actions a { text-decoration: underline; }
.inquiry-form [role=status]:empty { display: none; }
.wedding-inquiry { margin-top: 2rem; }
@media (max-width: 600px) {
  .inquiry-form { grid-template-columns: 1fr; }
}

.equipment-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: .8rem;
}
.equipment-actions .button {
  font: inherit;
  color: inherit;
  background: #241912;
  cursor: pointer;
}
.setup-dialog {
  width: min(92vw, 64rem);
  max-height: 85dvh;
  padding: 0;
  border: 0;
  background: transparent;
  overflow: hidden;
}
.setup-dialog::backdrop { background: #080607e8; }
.setup-strip {
  display: flex;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.setup-strip::-webkit-scrollbar { display: none; }
.setup-strip figure {
  flex: 0 0 100%;
  min-width: 0;
  margin: 0;
  display: grid;
  place-items: center;
  scroll-snap-align: start;
}
.setup-strip img {
  display: block;
  width: 100%;
  height: min(78dvh, 48rem);
  object-fit: contain;
}
@media (prefers-reduced-motion: no-preference) {
  .setup-strip { scroll-behavior: smooth; }
}
.equipment-list h2 { font-size: 2rem; margin: 1.5rem 0 .5rem; }
.equipment-list ul { margin: 0; }
.equipment-list a { text-decoration: underline; }
