@font-face {
  font-family: Anybody;
  font-style: normal;
  font-weight: 400 900;
  font-stretch: 50% 150%;
  font-display: swap;
  src: url("../fonts/anybody-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Roboto;
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/roboto-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Roboto Slab";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/roboto-slab-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/roboto-condensed-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Pinyon Script";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/pinyon-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@property --hov {
  syntax: "<number>";
  inherits: false;
  initial-value: 0;
}

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
[hidden] { display: none !important; }

body.shd {
  margin: 0;
  background: rgb(252, 246, 249);
  color: #000;
  font-family: "Roboto Condensed", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

*, *::before, *::after { box-sizing: border-box; }

a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: rgb(215, 48, 113); }
button { font: inherit; color: inherit; }
::selection { background: rgb(250, 228, 82); color: #000; }

.mark { position: relative; container-type: inline-size; }
.mark-fit {
  position: absolute;
  left: 0;
  top: 0;
  transform-origin: 0 0;
  transform: scale(calc(100cqw / var(--mw)));
}

.loc-track { scrollbar-width: none; }
.loc-track::-webkit-scrollbar { display: none; }
.loc-nav { display: none; }
.loc-slide { align-items: start; }

@media (min-width: 768px) {
  .loc-bleed { margin-right: 0 !important; }
  .loc-track {
    grid-auto-columns: 100% !important;
    gap: 48px !important;
    padding-right: 0 !important;
  }
  .loc-slide { align-items: center; }
  .loc-nav { display: flex; }
  .modal { align-items: center !important; padding: 24px !important; }
  .modal-card { border-radius: 20px !important; }
}

.pill-nav:hover { background: #000; color: rgb(250, 228, 82); }
.pill-hero:hover { transform: translateY(-2px); background: #fff; }
.tag:hover { transform: rotate(-3deg) scale(1.05); background: #000; color: rgb(250, 228, 82); }
.zoom-img { transition: transform 1s cubic-bezier(.2, .7, .2, 1); }
.zoom-img:hover { transform: scale(1.04); }
.btn-dark:hover { background: rgb(250, 228, 82); color: #000; transform: translateY(-2px); }
.arrow-btn:hover { transform: scale(1.08); }
.tt-event:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0, 0, 0, .12); background: #fff; }
.prog-item { --hov: 0; transition: --hov .45s ease; }
.prog-item:hover { --hov: 1; }
.hero-item { --hov: 0; background-color: rgba(250, 228, 82, var(--hov)); transition: --hov .45s ease; }
.hero-item:hover { --hov: 1; }
.partner-hit:hover { background: rgba(255, 255, 255, .14); outline: 4px solid rgba(255, 255, 255, .14); }
.social-hit:hover { background: rgba(255, 255, 255, .18); }
.modal-x:hover { transform: rotate(90deg); background: rgb(250, 228, 82); }
.field:focus { box-shadow: 0 0 0 3px rgb(250, 228, 82); }
.step-minus:hover { background: rgba(255, 255, 255, .12); }
.step-plus:hover { transform: scale(1.06); }
.submit:hover { transform: translateY(-2px); background: #fff; }
.submit-ghost:hover { background: #fff; color: #000; }

.citymap .map-links {
  position: absolute;
  z-index: 2;
  left: 16px;
  right: 16px;
  top: 16px;
  margin: 0;
  padding: 12px 14px;
  list-style: none;
  background: rgba(252, 246, 249, .94);
  border-radius: 10px;
}
.citymap.is-live .map-links { display: none; }
#ot-sdk-btn.privacy-settings {
  all: unset;
  cursor: pointer;
  font-family: "Roboto Slab", serif;
  font-size: 12px;
  letter-spacing: 0.02em;
  color: rgb(252, 246, 249);
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  line-height: 1.2 !important;
  height: auto !important;
  width: auto !important;
  min-width: 0 !important;
  border-radius: 0 !important;
  position: static !important;
  display: inline !important;
  box-shadow: none !important;
  white-space: normal !important;
}
#ot-sdk-btn.privacy-settings:hover { color: rgb(250, 228, 82) !important; }

.citymap [data-map-card] {
  left: 0;
  right: 0;
  width: min(720px, calc(100% - 32px));
  margin-inline: auto;
}
.citymap .maplibregl-map { width: 100%; height: 100%; font-family: "Roboto Condensed", sans-serif; }
.citymap .maplibregl-ctrl-top-left { top: 10px; left: 10px; }
.citymap .maplibregl-ctrl-attrib.maplibregl-compact {
  margin: 0;
  width: 24px;
  height: 24px;
  min-height: 0;
  padding: 0;
  border-radius: 50%;
  background: rgba(252, 246, 249, .92);
  box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
}
.citymap .maplibregl-ctrl-attrib.maplibregl-compact-show {
  width: auto;
  height: auto;
  padding: 4px 8px 4px 28px;
  border-radius: 8px;
  background: rgba(252, 246, 249, .94);
  font-size: 10px;
}
.map-zoom {
  position: absolute;
  z-index: 4;
  top: 12px;
  right: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.map-zoom button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #000;
  color: rgb(250, 228, 82);
  font: 700 22px/1 "Roboto Condensed", sans-serif;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .25);
}
.map-zoom button span {
  display: block;
  transform: translateY(-2px);
}
.map-zoom button:hover { background: rgb(215, 48, 113); color: #fff; }
.map-star {
  width: 46px;
  height: 46px;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}
.map-star svg {
  display: block;
  width: 46px;
  height: 46px;
  overflow: visible;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, .25));
  animation: map-twinkle 3.2s ease-in-out infinite;
  transform-origin: 50% 50%;
}
@keyframes map-twinkle {
  50% { transform: scale(1.14) rotate(18deg); }
}

.hp {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.form-error { margin: 0; color: rgb(250, 228, 82); font-size: 15px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0s !important;
    animation-iteration-count: 1 !important;
    transition: none !important;
  }
  html { scroll-behavior: auto; }
}

@keyframes smg-marquee { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }
@keyframes smg-spin { to { transform: rotate(360deg); } }
@keyframes smg-drop { from { opacity: 0; transform: translateY(-24px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes smg-rise { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: none; } }
@keyframes smg-parallax { from { transform: translateY(0) scale(1.08); } to { transform: translateY(18%) scale(1.08); } }
@keyframes smg-twinkle {
  0%, 100% { transform: translate(-50%, -50%) scale(1) rotate(0); }
  50% { transform: translate(-50%, -50%) scale(1.18) rotate(45deg); }
}
@keyframes smg-pop { from { opacity: 0; transform: translateY(16px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes smg-fade { from { opacity: 0; } to { opacity: 1; } }
