:root {
  color-scheme: dark;
  --control-bg: rgb(10 10 10 / 72%);
  --control-border: rgb(255 255 255 / 26%);
  --control-text: #f9f7ef;
  --control-focus: #f5b51b;
  --goofy-yellow: #f5b51b;
  --paper: #f9f4e8;
  --slide-width: 1672;
  --slide-height: 941;
}

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

html,
body {
  min-height: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

body {
  margin: 0;
  width: 100%;
  overflow: hidden;
  background: #020202;
  font-family:
    Inter,
    ui-sans-serif,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
}

body.modal-open {
  overflow: hidden;
}

button:disabled {
  cursor: not-allowed;
}

button {
  font: inherit;
}

.presentation {
  position: relative;
  display: grid;
  min-height: 100vh;
  place-items: center;
  background: #020202;
}

.presentation[hidden] {
  display: none;
}

.slide-frame {
  display: grid;
  width: 100vw;
  height: 100vh;
  place-items: center;
}

.slide-canvas {
  position: relative;
  width: min(100vw, calc(100vh * var(--slide-width) / var(--slide-height)));
  height: min(100vh, calc(100vw * var(--slide-height) / var(--slide-width)));
  overflow: hidden;
  background-color: #020202;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.slide-content-layer {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.slide-canvas--app-demo {
  background:
    linear-gradient(90deg, rgb(245 181 27 / 8%) 1px, transparent 1px),
    linear-gradient(180deg, rgb(255 255 255 / 5%) 1px, transparent 1px),
    #050505;
  background-size: 64px 64px;
}

.app-demo-preview {
  display: grid;
  height: 100%;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 34%);
  align-items: center;
  gap: clamp(28px, 5vw, 76px);
  padding: clamp(32px, 6vw, 90px);
  color: var(--paper);
}

.app-demo-preview__copy {
  display: grid;
  max-width: 680px;
  gap: 20px;
}

.app-demo-kicker {
  margin: 0;
  color: var(--goofy-yellow);
  font-size: clamp(13px, 1.5vw, 20px);
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.app-demo-preview h1 {
  margin: 0;
  color: var(--paper);
  font-size: clamp(54px, 8vw, 126px);
  font-weight: 950;
  line-height: 0.9;
  text-transform: uppercase;
}

.app-demo-preview p:not(.app-demo-kicker) {
  max-width: 560px;
  margin: 0;
  color: rgb(249 244 232 / 78%);
  font-size: clamp(18px, 2.1vw, 30px);
  font-weight: 750;
  line-height: 1.18;
}

.app-demo-launch,
.app-demo-primary,
.demo-shop-link {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  justify-self: start;
  padding: 0 18px;
  color: #050505;
  cursor: pointer;
  border: 1px solid #050505;
  border-radius: 6px;
  background: var(--goofy-yellow);
  font-size: 15px;
  font-weight: 950;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
}

.app-demo-launch:hover,
.app-demo-primary:hover,
.demo-shop-link:hover {
  background: #ffd568;
}

.app-demo-preview__phone {
  display: grid;
  gap: 16px;
  min-height: 520px;
  padding: 20px;
  border: 1px solid rgb(245 181 27 / 58%);
  border-radius: 8px;
  background: #0a0a0a;
  box-shadow: 0 32px 90px rgb(0 0 0 / 55%);
}

.app-demo-preview__phone-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: rgb(249 244 232 / 72%);
  font-size: 13px;
  font-weight: 850;
  text-transform: uppercase;
}

.app-demo-preview__phone-header strong {
  color: var(--goofy-yellow);
}

.app-demo-preview__cards {
  display: grid;
  gap: 12px;
}

.app-demo-preview__cards span {
  display: grid;
  min-height: 86px;
  align-items: end;
  padding: 14px;
  color: var(--paper);
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 8px;
  background: rgb(255 255 255 / 6%);
  font-size: 18px;
  font-weight: 900;
}

.hotspot-layer {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.hotspot {
  position: absolute;
  display: block;
  padding: 0;
  pointer-events: auto;
  cursor: pointer;
  border: 2px solid transparent;
  background: transparent;
}

.hotspot--cta {
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  color: #ffb21a;
  font-size: clamp(12px, 1.1vw, 18px);
  font-weight: 950;
  line-height: 1.08;
  letter-spacing: 0;
  text-align: center;
  text-decoration-line: underline;
  text-decoration-thickness: 0.12em;
  text-underline-offset: 0.18em;
  text-transform: uppercase;
  text-shadow:
    0 2px 4px rgb(0 0 0 / 88%),
    0 0 14px rgb(245 181 27 / 34%);
  border: 1px solid rgb(245 181 27 / 48%);
  border-radius: 6px;
  background: rgb(0 0 0 / 54%);
  box-shadow: 0 12px 22px rgb(0 0 0 / 38%);
  transition:
    transform 160ms ease,
    border-color 160ms ease,
    color 160ms ease,
    background 160ms ease;
}

.hotspot--fixed-cta {
  position: fixed;
  top: max(18px, env(safe-area-inset-top));
  right: max(22px, env(safe-area-inset-right));
  left: auto !important;
  width: auto !important;
  height: auto !important;
}

.hotspot--toy-cta {
  align-items: center;
  min-width: 0;
  min-height: 0;
  color: #ffc12a;
  font-size: clamp(11px, 0.95vw, 16px);
  white-space: nowrap;
  border-color: rgb(245 181 27 / 34%);
  background: rgb(0 0 0 / 28%);
  box-shadow: none;
}

.hotspot--cta:hover {
  transform: translateY(-2px);
  color: #ffd568;
  border-color: rgb(245 181 27 / 86%);
  background: rgb(0 0 0 / 72%);
}

.hotspot:focus-visible {
  outline: none;
  border-color: var(--control-focus);
  box-shadow: 0 0 0 4px rgb(245 181 27 / 28%);
}

.deck-controls {
  position: fixed;
  right: max(16px, env(safe-area-inset-right));
  bottom: max(16px, env(safe-area-inset-bottom));
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px;
  border: 1px solid var(--control-border);
  border-radius: 999px;
  background: var(--control-bg);
  backdrop-filter: blur(14px);
  box-shadow: 0 16px 40px rgb(0 0 0 / 42%);
}

.icon-button {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  padding: 0;
  color: var(--control-text);
  cursor: pointer;
  border: 1px solid rgb(255 255 255 / 18%);
  border-radius: 50%;
  background: rgb(255 255 255 / 8%);
}

.icon-button span {
  display: block;
  translate: 0 -1px;
  font-size: 32px;
  line-height: 1;
}

.icon-button:hover {
  background: rgb(255 255 255 / 16%);
}

.icon-button:focus-visible {
  outline: 2px solid var(--control-focus);
  outline-offset: 3px;
}

.icon-button:disabled {
  cursor: default;
  opacity: 0.42;
}

.slide-count {
  min-width: 40px;
  color: var(--control-text);
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
}

.landing-mode {
  overflow-x: hidden;
  overflow-y: hidden;
  background: #050505;
}

.landing-mode .presentation {
  display: block;
  width: 100%;
  max-width: 100vw;
  height: 100dvh;
  min-height: 100dvh;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgb(245 181 27 / 7%) 1px, transparent 1px),
    linear-gradient(180deg, rgb(255 255 255 / 4%) 1px, transparent 1px),
    #050505;
  background-size: 56px 56px;
}

.slide-frame[hidden],
.deck-controls[hidden],
.landing-page[hidden] {
  display: none;
}

.landing-page {
  --landing-nav-height: 0px;
  position: relative;
  width: 100%;
  max-width: 100vw;
  height: 100dvh;
  color: var(--paper);
  overflow: hidden;
}

.landing-nav {
  position: sticky;
  top: 0;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 66px;
  padding: 12px clamp(18px, 4vw, 64px);
  border-bottom: 1px solid rgb(255 255 255 / 10%);
  background: rgb(5 5 5 / 90%);
  backdrop-filter: blur(16px);
}

.landing-page .landing-nav {
  display: none;
}

.landing-brand,
.landing-secondary {
  color: inherit;
  text-decoration: none;
}

.landing-brand {
  display: grid;
  gap: 2px;
  line-height: 0.86;
  text-transform: uppercase;
}

.landing-brand span,
.landing-kicker,
.landing-nav-context {
  color: var(--goofy-yellow);
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.landing-nav-context {
  margin: 0;
  color: rgb(249 244 232 / 72%);
  letter-spacing: 0;
  white-space: nowrap;
}

.landing-brand strong {
  color: var(--paper);
  font-size: 28px;
  font-weight: 950;
  letter-spacing: 0;
}

.landing-nav-cta,
.landing-primary,
.landing-secondary {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  cursor: pointer;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.landing-nav-cta,
.landing-primary {
  color: #050505;
  border: 1px solid #050505;
  background: var(--goofy-yellow);
}

.landing-secondary {
  color: var(--paper);
  border: 1px solid rgb(255 255 255 / 18%);
  background: rgb(255 255 255 / 7%);
}

.landing-nav-cta:hover,
.landing-primary:hover {
  background: #ffd568;
}

.landing-secondary:hover {
  border-color: rgb(245 181 27 / 42%);
  background: rgb(245 181 27 / 12%);
}

.landing-hero,
.landing-brief,
.landing-segments,
.segment-showcase,
.landing-app-flow,
.landing-final {
  position: relative;
  padding: clamp(58px, 7vw, 112px) clamp(18px, 5vw, 84px);
}

.landing-page > .landing-panel {
  position: absolute;
  inset: 0;
  display: grid;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  opacity: 0;
  pointer-events: none;
  transform: translate3d(22px, 0, 0) scale(0.985);
  transition:
    opacity 260ms ease,
    transform 320ms ease;
}

.landing-page > .landing-panel.is-active {
  opacity: 1;
  pointer-events: auto;
  transform: translate3d(0, 0, 0) scale(1);
}

.landing-hero {
  min-height: 0;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "copy";
  align-items: stretch;
  align-content: stretch;
  padding: clamp(18px, 3.2vw, 42px) clamp(18px, 5vw, 84px) max(18px, env(safe-area-inset-bottom));
  background: #050505;
}

.landing-hero__copy {
  grid-area: copy;
  width: min(760px, 100%);
  max-width: 760px;
  height: min(100%, 100dvh);
  min-height: min(100%, 100dvh);
  justify-self: center;
  grid-template-rows: minmax(118px, 22dvh) auto auto auto minmax(0, 1fr);
  align-content: start;
  gap: 12px;
}

.landing-hero__copy,
.landing-section-head,
.segment-card__copy,
.landing-app-flow,
.landing-final {
  display: grid;
  gap: 16px;
}

.landing-hero h1,
.landing-section-head h2,
.segment-card h3,
.app-flow-grid h3,
.landing-final h2 {
  margin: 0;
  color: var(--paper);
  font-weight: 950;
  letter-spacing: 0;
  text-transform: uppercase;
}

.landing-hero h1 {
  max-width: 950px;
  font-size: clamp(48px, 6.1vw, 92px);
  line-height: 0.9;
}

.landing-hero-lede {
  font-size: clamp(15px, 1.25vw, 19px);
  justify-self: center;
  text-align: center;
}

.landing-hero-logo {
  display: grid;
  min-height: min(230px, 23dvh);
  place-items: center;
  margin: 0;
}

.landing-hero-logo img {
  display: block;
  width: min(430px, 74vw);
  max-height: min(215px, 22dvh);
  object-fit: contain;
}

.landing-hero-lede,
.landing-section-head p:not(.landing-kicker),
.segment-card p,
.app-flow-grid p,
.landing-final p {
  max-width: 780px;
  margin: 0;
  color: rgb(249 244 232 / 78%);
  font-size: clamp(18px, 1.85vw, 30px);
  font-weight: 760;
  line-height: 1.22;
}

.landing-hero__copy {
  gap: 12px;
}

.landing-hero-lede {
  font-size: clamp(15px, 1.25vw, 19px);
  line-height: 1.2;
}

@media (min-width: 641px) {
  .landing-mode .presentation {
    display: grid;
    place-items: center;
    background: #050505;
    background-size: auto;
  }

  .landing-page {
    width: min(390px, 100vw);
    max-width: 390px;
    min-height: 100dvh;
    background: #050505;
  }

  .landing-page > .landing-panel {
    width: 100%;
  }

  .landing-hero,
  .landing-brief,
  .segment-showcase,
  .landing-app-flow,
  .landing-final {
    padding: clamp(28px, 5svh, 54px) 20px max(22px, env(safe-area-inset-bottom));
  }

  .landing-hero {
    min-height: 100dvh;
    align-content: stretch;
  }

  .landing-hero__copy {
    width: 100%;
    max-width: none;
    height: calc(100dvh - 56px);
    min-height: calc(100dvh - 56px);
    grid-template-rows: minmax(168px, 27svh) auto auto auto minmax(0, 1fr);
    align-content: start;
    gap: clamp(16px, 2.4svh, 28px);
  }

  .landing-hero-logo {
    min-height: min(268px, 27svh);
  }

  .landing-hero-logo img {
    width: min(345px, 100%);
    max-height: min(250px, 26svh);
  }

  .landing-hero-lede {
    max-width: 30rem;
    color: rgb(249 244 232 / 72%);
    font-size: clamp(17px, 2.35vh, 22px);
    line-height: 1.16;
  }

  .landing-page .landing-flow-list {
    align-self: start;
    gap: clamp(9px, 1.25svh, 13px);
    margin-top: 0;
    padding-right: 1px;
    overflow: visible;
    overscroll-behavior: contain;
  }

  .landing-page .landing-experience-list {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .landing-page .landing-experience-card {
    min-height: clamp(66px, 7.7svh, 84px);
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 8px;
    padding: 10px;
  }

  .landing-page .landing-experience-card span {
    width: 36px;
    font-size: 12px;
  }

  .landing-page .landing-experience-card strong {
    font-size: 12.5px;
    line-height: 1;
  }

  body.landing-mode .modal-shell {
    padding: 12px;
  }

  body.landing-mode .landing-flow-modal {
    width: min(390px, calc(100vw - 24px));
    max-width: min(390px, calc(100vw - 24px));
    max-height: calc(100dvh - 24px);
    gap: 14px;
    padding: 16px;
  }

  body.landing-mode .modal-header h2 {
    font-size: 30px;
    line-height: 0.98;
  }

  body.landing-mode .landing-flow-carousel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 8px;
  }

  body.landing-mode .landing-flow-slide {
    grid-column: 1 / -1;
    order: 1;
    min-height: 0;
    max-height: calc(100dvh - 156px);
    gap: 12px;
    overflow: auto;
    padding: 0 2px;
    scrollbar-color: rgb(245 181 27 / 72%) rgb(255 255 255 / 8%);
  }

  body.landing-mode #previousLandingFlowItem {
    order: 2;
    justify-self: end;
  }

  body.landing-mode #nextLandingFlowItem {
    order: 3;
    justify-self: start;
  }

  body.landing-mode .landing-flow-slide__copy {
    gap: 10px;
  }

  body.landing-mode .landing-flow-slide__copy h3 {
    font-size: clamp(28px, 4.2svh, 36px);
    line-height: 0.92;
  }

  body.landing-mode .landing-flow-slide__copy > p:not(:first-child) {
    font-size: 14px;
    line-height: 1.2;
  }

  body.landing-mode .landing-flow-key-info {
    display: none;
  }

  body.landing-mode .landing-flow-visual {
    height: min(220px, 28dvh);
  }

  body.landing-mode #landingFlowModal[data-segment="matrimony"] .landing-flow-modal {
    width: min(390px, calc(100vw - 24px));
  }

  body.landing-mode #landingFlowModal[data-segment="matrimony"] .landing-flow-slide__copy {
    grid-template-columns: 1fr;
    width: min(390px, 100%);
    justify-self: center;
  }

  body.landing-mode #landingFlowModal[data-segment="matrimony"] .landing-flow-visual {
    grid-column: 1;
    grid-row: auto;
    justify-self: center;
    width: min(220px, 68vw);
    height: min(205px, 31dvh);
    aspect-ratio: 4 / 5;
  }

  body.landing-mode .landing-flow-modal-action {
    width: 100%;
    min-height: 44px;
    font-size: 12px;
  }
}

.landing-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: clamp(10px, 1.2vw, 16px);
}

.landing-flow-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  width: min(780px, 100%);
  margin-top: clamp(8px, 1.5vw, 18px);
}

.landing-experience-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: min(640px, 100%);
}

.landing-experience-card {
  display: grid;
  min-height: 50px;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 10px 11px;
  color: var(--paper);
  cursor: pointer;
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgb(245 181 27 / 10%), transparent 48%),
    rgb(255 255 255 / 5%);
  font: inherit;
  text-align: left;
  transition:
    transform 160ms ease,
    border-color 160ms ease,
    background 160ms ease;
}

.landing-experience-card span {
  display: grid;
  width: 30px;
  aspect-ratio: 1;
  place-items: center;
  color: #050505;
  border-radius: 50%;
  background: var(--goofy-yellow);
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
}

.landing-experience-card strong {
  min-width: 0;
  color: var(--paper);
  font-size: clamp(14px, 1vw, 18px);
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.landing-experience-card:hover,
.landing-experience-card:focus-visible {
  transform: translateY(-2px);
  border-color: rgb(245 181 27 / 54%);
  outline: none;
  background:
    linear-gradient(135deg, rgb(245 181 27 / 18%), transparent 48%),
    rgb(255 255 255 / 8%);
}

.landing-experience-card.is-complete {
  border-color: rgb(41 211 165 / 58%);
  background:
    linear-gradient(135deg, rgb(41 211 165 / 14%), transparent 48%),
    rgb(255 255 255 / 6%);
}

.landing-experience-card.is-complete span {
  background: rgb(41 211 165);
}

.landing-demo-cta {
  display: inline-flex;
  width: 100%;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  justify-self: stretch;
  padding: 0 16px;
  color: #050505;
  cursor: pointer;
  border: 1px solid #050505;
  border-radius: 8px;
  background: var(--goofy-yellow);
  box-shadow: 0 14px 34px rgb(245 181 27 / 18%);
  font: inherit;
  text-align: center;
  transition:
    transform 160ms ease,
    filter 160ms ease;
}

.landing-demo-cta strong {
  color: #050505;
  font-size: 14px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.landing-demo-cta:hover,
.landing-demo-cta:focus-visible {
  transform: translateY(-2px);
  filter: brightness(1.06);
  outline: none;
}

.landing-demo-cta:focus-visible {
  box-shadow:
    0 0 0 3px rgb(245 181 27 / 72%),
    0 14px 34px rgb(245 181 27 / 18%);
}

.landing-demo-cta:disabled {
  color: rgb(249 244 232 / 45%);
  cursor: not-allowed;
  border-color: rgb(255 255 255 / 12%);
  background: rgb(255 255 255 / 8%);
  box-shadow: none;
  transform: none;
  filter: none;
}

.landing-demo-cta:disabled strong {
  color: rgb(249 244 232 / 45%);
}

.landing-chat-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: center;
  gap: 7px;
  margin-top: clamp(18px, 4svh, 34px);
  align-self: end;
  color: var(--paper);
  text-decoration: none;
  font-size: clamp(17px, 4.2vw, 21px);
  font-weight: 950;
  line-height: 1;
  text-align: center;
}

.landing-chat-link img {
  display: block;
  width: 1.18em;
  height: 1.18em;
  object-fit: cover;
  border-radius: 50%;
}

.landing-chat-link svg {
  display: block;
  width: 1.15em;
  height: 1.15em;
  fill: #fff;
}

.landing-chat-link:hover,
.landing-chat-link:focus-visible {
  color: #fff;
  outline: none;
}

.landing-chat-link:focus-visible {
  box-shadow: 0 0 0 3px rgb(245 181 27 / 72%);
}

.landing-flow-cta {
  display: grid;
  min-height: 0;
  grid-template-columns: auto minmax(0, 1fr);
  align-content: start;
  gap: 8px 10px;
  padding: 12px;
  color: var(--paper);
  text-align: left;
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgb(245 181 27 / 13%), transparent 48%),
    rgb(255 255 255 / 5%);
  box-shadow: 0 16px 38px rgb(0 0 0 / 24%);
  transition:
    transform 160ms ease,
    border-color 160ms ease,
    background 160ms ease;
}

.landing-flow-cta span {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  color: #050505;
  border-radius: 50%;
  background: var(--goofy-yellow);
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
}

.landing-flow-cta strong {
  min-width: 0;
  color: var(--paper);
  font-size: clamp(17px, 1.35vw, 22px);
  font-weight: 950;
  line-height: 0.94;
  text-transform: uppercase;
}

.landing-flow-cta small {
  grid-column: 1 / -1;
  color: rgb(249 244 232 / 68%);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.22;
}

.landing-flow-cta:hover {
  transform: translateY(-2px);
  border-color: rgb(245 181 27 / 54%);
  background:
    linear-gradient(135deg, rgb(245 181 27 / 18%), transparent 48%),
    rgb(255 255 255 / 8%);
}

.landing-flow-cta:focus-visible {
  outline: 2px solid var(--control-focus);
  outline-offset: 4px;
}

.landing-module-links {
  display: grid;
  grid-column: 1 / -1;
  gap: 7px;
  margin-top: 2px;
}

.landing-module-links button {
  display: flex;
  min-height: 34px;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  padding: 7px 9px;
  color: var(--paper);
  cursor: pointer;
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 7px;
  background: rgb(0 0 0 / 32%);
  font-size: 12px;
  font-weight: 950;
  line-height: 1.08;
  text-align: left;
  text-transform: uppercase;
}

.landing-module-links button:hover,
.landing-module-links button:focus-visible {
  color: #050505;
  border-color: var(--goofy-yellow);
  outline: none;
  background: var(--goofy-yellow);
}

.landing-primary:disabled {
  color: rgb(249 244 232 / 45%);
  border-color: rgb(255 255 255 / 12%);
  background: rgb(255 255 255 / 8%);
  box-shadow: none;
  transform: none;
}

.landing-hero__visual {
  position: relative;
  grid-area: visual;
  min-height: min(360px, 40svh);
}

.hero-stage,
.hero-phone {
  position: absolute;
  display: grid;
  gap: 10px;
  border: 1px solid rgb(245 181 27 / 42%);
  border-radius: 8px;
  box-shadow: 0 28px 90px rgb(0 0 0 / 50%);
}

.hero-stage {
  inset: 8% 3% 13% 0;
  align-content: end;
  padding: clamp(18px, 2vw, 28px);
  overflow: hidden;
  z-index: 0;
  background:
    linear-gradient(180deg, transparent 0 40%, rgb(0 0 0 / 72%) 76%),
    linear-gradient(90deg, rgb(245 181 27 / 18%) 0 1px, transparent 1px),
    linear-gradient(180deg, #18100a 0 42%, #100f10 42% 100%);
  background-size: auto, 42px 42px, auto;
}

.hero-stage__lights {
  position: absolute;
  inset: 0 0 auto;
  height: 34%;
  background:
    linear-gradient(90deg, transparent 0 6%, #f5b51b 6% 10%, transparent 10% 22%, #ef476f 22% 26%, transparent 26% 44%, #f5b51b 44% 48%, transparent 48% 68%, #27d6a3 68% 72%, transparent 72% 100%);
  opacity: 0.5;
}

.hero-stage > p,
.hero-stage > strong,
.hero-stage > span {
  position: relative;
  z-index: 1;
  max-width: 38%;
}

.hero-stage p,
.hero-phone span,
.app-flow-grid span,
.brief-grid span {
  margin: 0;
  color: var(--goofy-yellow);
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.hero-stage strong,
.hero-phone strong {
  color: var(--paper);
  font-size: clamp(32px, 4.2vw, 56px);
  font-weight: 950;
  line-height: 0.88;
  text-transform: uppercase;
}

.hero-stage strong {
  font-size: clamp(24px, 2.45vw, 36px);
  line-height: 0.92;
}

.hero-stage span,
.hero-phone small {
  color: rgb(249 244 232 / 72%);
  font-size: 15px;
  font-weight: 800;
  line-height: 1.2;
}

.hero-phone {
  width: min(200px, 42vw);
  min-height: 320px;
  padding: 18px;
  align-content: start;
  background:
    linear-gradient(180deg, rgb(255 255 255 / 9%), rgb(255 255 255 / 3%)),
    #090909;
}

.hero-phone strong {
  font-size: clamp(25px, 2.5vw, 34px);
  line-height: 0.9;
  overflow-wrap: anywhere;
}

.hero-phone--front {
  right: 4%;
  bottom: 0;
  z-index: 2;
  rotate: 4deg;
}

.landing-brief,
.landing-app-flow {
  align-content: center;
  background:
    linear-gradient(180deg, rgb(255 255 255 / 4%), transparent 28%),
    #090909;
}

.landing-section-head {
  max-width: 980px;
  margin-bottom: clamp(26px, 4vw, 48px);
}

.landing-section-head h2,
.landing-final h2 {
  font-size: clamp(46px, 6vw, 94px);
  line-height: 0.86;
}

.brief-grid,
.app-flow-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.brief-grid article,
.app-flow-grid article {
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 210px;
  padding: clamp(16px, 2vw, 24px);
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgb(255 255 255 / 7%), rgb(255 255 255 / 3%)),
    #080808;
}

.brief-grid h3,
.app-flow-grid h3 {
  margin: 0;
  color: var(--paper);
  font-size: clamp(28px, 3vw, 44px);
  font-weight: 950;
  line-height: 0.9;
  text-transform: uppercase;
}

.brief-grid p,
.app-flow-grid p {
  font-size: 15px;
}

.landing-segments {
  background:
    linear-gradient(135deg, rgb(239 71 111 / 10%) 0 22%, transparent 22% 100%),
    #050505;
}

.segment-showcase {
  grid-template-columns: minmax(320px, 0.82fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(28px, 4vw, 68px);
  background:
    linear-gradient(135deg, rgb(239 71 111 / 10%) 0 24%, transparent 24% 100%),
    #050505;
}

.segment-showcase__media {
  min-height: min(560px, 62dvh);
  border: 1px solid rgb(245 181 27 / 30%);
  border-radius: 8px;
  background-color: #111;
  background-repeat: no-repeat;
  box-shadow: 0 28px 90px rgb(0 0 0 / 48%);
}

.segment-showcase__copy {
  display: grid;
  max-width: 720px;
  gap: 16px;
}

.segment-showcase h2 {
  margin: 0;
  color: var(--paper);
  font-size: clamp(56px, 7vw, 116px);
  font-weight: 950;
  line-height: 0.82;
  text-transform: uppercase;
}

.segment-showcase p:not(.landing-kicker) {
  max-width: 680px;
  margin: 0;
  color: rgb(249 244 232 / 78%);
  font-size: clamp(16px, 1.35vw, 21px);
  font-weight: 760;
  line-height: 1.26;
}

.segment-showcase ul {
  display: grid;
  gap: 8px;
  margin: 4px 0 0;
  padding: 0;
  list-style: none;
}

.segment-showcase li {
  padding: 10px 12px;
  color: rgb(249 244 232 / 78%);
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 8px;
  background: rgb(255 255 255 / 5%);
  font-size: 13px;
  font-weight: 850;
  line-height: 1.18;
}

.segment-showcase .landing-secondary {
  justify-self: start;
  margin-top: 4px;
}

.segment-showcase--census .segment-showcase__media {
  background-image:
    linear-gradient(90deg, transparent, rgb(0 0 0 / 48%)),
    url("/assets/slides/slide-05.png");
  background-position: 100% 45%;
  background-size: 380%;
}

.segment-showcase--toys .segment-showcase__media {
  background-image:
    linear-gradient(180deg, transparent, rgb(0 0 0 / 55%)),
    url("/assets/slides/slide-03.png");
  background-position: 66% 40%;
  background-size: 300%;
}

.segment-showcase--matrimony .segment-showcase__media {
  background-image:
    linear-gradient(180deg, transparent, rgb(0 0 0 / 50%)),
    url("/assets/slides/goofy-matrimony.png");
  background-position: 68% 44%;
  background-size: 230%;
}

.segment-showcase--forgive .segment-showcase__media {
  background-image:
    linear-gradient(180deg, transparent, rgb(0 0 0 / 50%)),
    url("/assets/slides/forgive-me-morgan.png");
  background-position: 70% 44%;
  background-size: 230%;
}

.segment-showcase--talent .segment-showcase__media {
  background-image:
    linear-gradient(180deg, transparent, rgb(0 0 0 / 50%)),
    url("/assets/slides/slide-06.png");
  background-position: 63% 58%;
  background-size: 230%;
}

.segment-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(16px, 2.2vw, 28px);
}

.segment-card {
  display: grid;
  min-height: 100%;
  grid-template-rows: 250px minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgb(255 255 255 / 13%);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgb(255 255 255 / 7%), rgb(255 255 255 / 3%)),
    #080808;
}

.segment-card--census {
  grid-column: 1 / -1;
  grid-template-columns: minmax(320px, 0.85fr) minmax(0, 1fr);
  grid-template-rows: auto;
}

.segment-card__media {
  min-height: 250px;
  background-color: #111;
  background-repeat: no-repeat;
  background-size: 155%;
  filter: saturate(1.08) contrast(1.03);
}

.segment-card--census .segment-card__media {
  background-image:
    linear-gradient(90deg, transparent, rgb(0 0 0 / 45%)),
    url("/assets/slides/slide-05.png");
  background-position: 100% 45%;
  background-size: 380%;
}

.segment-card--toys .segment-card__media {
  background-image:
    linear-gradient(180deg, transparent, rgb(0 0 0 / 55%)),
    url("/assets/slides/slide-03.png");
  background-position: 52% 42%;
  background-size: 185%;
}

.segment-card--matrimony .segment-card__media {
  background-image:
    linear-gradient(180deg, transparent, rgb(0 0 0 / 52%)),
    url("/assets/slides/goofy-matrimony.png");
  background-position: 62% 42%;
  background-size: 172%;
}

.segment-card--forgive .segment-card__media {
  background-image:
    linear-gradient(180deg, transparent, rgb(0 0 0 / 52%)),
    url("/assets/slides/forgive-me-morgan.png");
  background-position: 66% 42%;
  background-size: 172%;
}

.segment-card--talent .segment-card__media {
  background-image:
    linear-gradient(180deg, transparent, rgb(0 0 0 / 52%)),
    url("/assets/slides/slide-06.png");
  background-position: 60% 52%;
  background-size: 170%;
}

.segment-card__copy {
  align-content: start;
  padding: clamp(18px, 2.4vw, 30px);
}

.segment-card h3 {
  font-size: clamp(42px, 5.2vw, 76px);
  line-height: 0.83;
}

.segment-card ul {
  display: grid;
  gap: 8px;
  margin: 4px 0 0;
  padding: 0;
  list-style: none;
}

.segment-card li {
  padding: 10px 12px;
  color: rgb(249 244 232 / 78%);
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 8px;
  background: rgb(255 255 255 / 5%);
  font-size: 13px;
  font-weight: 850;
  line-height: 1.18;
}

.segment-card .landing-secondary {
  justify-self: start;
  margin-top: 4px;
}

.landing-app-flow {
  display: grid;
}

.landing-app-flow .landing-primary {
  justify-self: start;
  margin-top: clamp(18px, 3vw, 34px);
}

.landing-final {
  min-height: 66vh;
  align-content: center;
  place-items: center;
  justify-items: center;
  text-align: center;
  background:
    linear-gradient(90deg, rgb(245 181 27 / 7%) 1px, transparent 1px),
    linear-gradient(180deg, rgb(255 255 255 / 4%) 1px, transparent 1px),
    #050505;
  background-size: 56px 56px;
}

.landing-final p {
  margin-inline: auto;
}

.landing-panel-controls {
  position: absolute;
  right: clamp(14px, 3vw, 42px);
  bottom: max(4px, env(safe-area-inset-bottom));
  z-index: 5;
  display: grid;
  grid-template-columns: 34px minmax(104px, 190px) auto 34px;
  align-items: center;
  gap: 8px;
  padding: 5px;
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 999px;
  background: rgb(5 5 5 / 74%);
  backdrop-filter: blur(16px);
  box-shadow: 0 18px 42px rgb(0 0 0 / 36%);
}

.landing-panel-arrow {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  padding: 0;
  color: var(--paper);
  cursor: pointer;
  border: 1px solid rgb(255 255 255 / 18%);
  border-radius: 50%;
  background: rgb(255 255 255 / 8%);
}

.landing-panel-arrow span {
  translate: 0 -2px;
  font-size: 28px;
  line-height: 1;
}

.landing-panel-arrow:hover {
  background: rgb(255 255 255 / 16%);
}

.landing-panel-arrow:disabled {
  cursor: default;
  opacity: 0.36;
}

.landing-progress {
  width: 100%;
  height: 4px;
  overflow: hidden;
  border-radius: 999px;
  background: rgb(255 255 255 / 14%);
}

.landing-progress span {
  display: block;
  width: 12.5%;
  height: 100%;
  border-radius: inherit;
  background: var(--goofy-yellow);
  transition: width 260ms ease;
}

.landing-panel-status {
  min-width: 44px;
  margin: 0;
  color: rgb(249 244 232 / 72%);
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
}

.modal-shell {
  position: fixed;
  inset: 0;
  z-index: 30;
  display: grid;
  width: 100%;
  max-width: 100vw;
  place-items: center;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 24px;
  overscroll-behavior: contain;
}

.modal-shell[hidden] {
  display: none;
}

.modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgb(0 0 0 / 78%);
  backdrop-filter: blur(8px);
}

.carousel-modal,
.landing-flow-modal,
.survey-modal,
.image-preview-modal,
.puzzle-audience-modal {
  position: relative;
  display: grid;
  width: min(980px, calc(100vw - 32px));
  max-width: calc(100vw - 32px);
  max-height: min(880px, calc(100dvh - 32px));
  min-width: 0;
  min-height: 0;
  gap: 18px;
  padding: clamp(18px, 2.2vw, 28px);
  overflow: hidden;
  color: var(--paper);
  border: 1px solid rgb(245 181 27 / 72%);
  border-radius: 8px;
  background: rgb(4 4 4 / 94%);
  box-shadow: 0 28px 80px rgb(0 0 0 / 65%);
}

.image-preview-modal {
  width: min(1320px, calc(100vw - 32px));
}

.landing-flow-modal {
  grid-template-rows: auto minmax(0, 1fr) auto;
  width: min(860px, calc(100vw - 32px));
}

.image-preview-modal img {
  display: block;
  width: 100%;
  max-height: calc(100dvh - 150px);
  object-fit: contain;
  border: 1px solid rgb(245 181 27 / 28%);
  border-radius: 8px;
  background: #050505;
}

.survey-modal {
  grid-template-rows: auto minmax(0, 1fr);
  width: min(820px, calc(100vw - 32px));
  height: min(760px, calc(100dvh - 32px));
}

.puzzle-audience-modal {
  width: min(520px, calc(100vw - 32px));
}

.modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
}

.modal-header > div {
  min-width: 0;
}

.modal-header h2 {
  margin: 0;
  color: var(--goofy-yellow);
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 950;
  line-height: 0.95;
  letter-spacing: 0;
  text-transform: uppercase;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.close-button,
.carousel-arrow {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  padding: 0;
  color: var(--paper);
  cursor: pointer;
  border: 1px solid rgb(255 255 255 / 20%);
  border-radius: 50%;
  background: rgb(255 255 255 / 8%);
}

.close-button {
  width: 42px;
  height: 42px;
}

.close-button span {
  translate: 0 -1px;
  font-size: 34px;
  line-height: 1;
}

.carousel-stage {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) 54px;
  align-items: center;
  gap: 16px;
}

.carousel-arrow {
  width: 54px;
  height: 54px;
}

.carousel-arrow span {
  translate: 0 -2px;
  font-size: 46px;
  line-height: 1;
}

.close-button:hover,
.carousel-arrow:hover {
  background: rgb(255 255 255 / 16%);
}

.close-button:focus-visible,
.carousel-arrow:focus-visible {
  outline: 2px solid var(--control-focus);
  outline-offset: 3px;
}

.carousel-arrow:disabled {
  cursor: default;
  opacity: 0.38;
}

.carousel-figure {
  display: grid;
  min-width: 0;
  gap: 14px;
  margin: 0;
}

.carousel-image-wrap {
  --image-padding: 16px;
  position: relative;
  display: grid;
  height: min(62vh, 600px);
  min-height: 320px;
  place-items: center;
  overflow: hidden;
  padding: var(--image-padding);
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgb(255 255 255 / 8%), transparent 38%),
    #0b0b0b;
}

#carouselImage {
  display: block;
  position: absolute;
  inset: var(--image-padding);
  width: calc(100% - (var(--image-padding) * 2));
  height: calc(100% - (var(--image-padding) * 2));
  min-width: 0;
  min-height: 0;
  max-width: calc(100% - (var(--image-padding) * 2));
  max-height: calc(100% - (var(--image-padding) * 2));
  object-fit: contain;
}

.carousel-empty {
  margin: 0;
  color: rgb(249 244 232 / 70%);
  font-size: clamp(18px, 2vw, 26px);
  font-weight: 800;
  text-transform: uppercase;
}

#carouselName {
  min-height: 36px;
  color: var(--paper);
  font-size: clamp(22px, 2.8vw, 38px);
  font-weight: 900;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
}

.carousel-position {
  min-height: 18px;
  margin: 0;
  color: rgb(249 244 232 / 62%);
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
}

.landing-flow-modal-kicker {
  margin: 0 0 6px;
  color: rgb(249 244 232 / 64%);
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.landing-flow-carousel {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) 54px;
  align-items: center;
  gap: 16px;
  min-height: 0;
}

.landing-flow-slide {
  display: grid;
  grid-column: 2;
  min-height: min(500px, calc(100dvh - 210px));
  min-width: 0;
  place-items: center;
}

.landing-flow-slide__copy {
  display: grid;
  width: min(680px, 100%);
  min-width: 0;
  align-content: center;
  gap: 16px;
}

.landing-flow-visual {
  display: grid;
  width: 100%;
  height: min(320px, 36dvh);
  place-items: center;
  overflow: hidden;
  margin: 0;
  border: 1px solid rgb(245 181 27 / 34%);
  border-radius: 8px;
  background: #050505;
}

.landing-flow-visual img {
  display: block;
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: contain;
}

#landingFlowModal[data-segment="matrimony"] .landing-flow-modal {
  width: min(700px, calc(100vw - 32px));
}

#landingFlowModal[data-segment="matrimony"] .landing-flow-slide__copy {
  width: min(560px, 100%);
  max-width: 560px;
  align-content: start;
  justify-self: center;
  gap: 10px;
}

#landingFlowModal[data-segment="matrimony"] .landing-flow-visual {
  justify-self: center;
  width: min(305px, 100%);
  height: min(340px, 40dvh);
  aspect-ratio: 4 / 5;
}

#landingFlowModal[data-segment="matrimony"] .landing-flow-visual img {
  height: 100%;
  max-height: none;
  object-fit: cover;
  object-position: center bottom;
  transform: scale(1.34);
  transform-origin: center bottom;
}

#landingFlowModal[data-segment="matrimony"] .landing-flow-slide__copy > p:not(:first-child),
#landingFlowModal[data-segment="matrimony"] .landing-flow-key-info,
#landingFlowModal[data-segment="matrimony"] .landing-flow-modal-action,
#landingFlowModal[data-segment="matrimony"] .landing-flow-beats {
  grid-column: 1;
}

#landingFlowModal[data-segment="matrimony"] .landing-flow-modal-action {
  order: 5;
  position: static;
  justify-self: stretch;
}

#landingFlowModal[data-segment="matrimony"] .landing-flow-beats {
  order: 4;
}

#landingFlowModal[data-segment="matrimony"] .landing-flow-beats {
  gap: 6px;
}

#landingFlowModal[data-segment="matrimony"] .landing-flow-beats li {
  padding: 8px 10px;
  font-size: 12px;
  line-height: 1.14;
}

.landing-flow-slide__copy > p:first-child {
  margin: 0;
  color: var(--goofy-yellow);
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.landing-flow-slide__copy h3 {
  margin: 0;
  color: var(--paper);
  font-size: clamp(42px, 5vw, 78px);
  font-weight: 950;
  line-height: 0.84;
  text-transform: uppercase;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.landing-flow-slide__copy > p:not(:first-child) {
  margin: 0;
  color: rgb(249 244 232 / 78%);
  font-size: clamp(16px, 1.55vw, 22px);
  font-weight: 760;
  line-height: 1.25;
}

.landing-flow-key-info {
  display: grid;
  gap: 8px;
  padding: clamp(14px, 2vw, 18px);
  border: 1px solid rgb(245 181 27 / 30%);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgb(245 181 27 / 14%), transparent 54%),
    rgb(255 255 255 / 5%);
}

.landing-flow-key-info span {
  color: var(--goofy-yellow);
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.landing-flow-key-info p {
  margin: 0;
  color: rgb(249 244 232 / 82%);
  font-size: clamp(15px, 1.35vw, 19px);
  font-weight: 820;
  line-height: 1.28;
}

.landing-flow-beats {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.landing-flow-beats li {
  padding: 10px 12px;
  color: rgb(249 244 232 / 78%);
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 8px;
  background: rgb(255 255 255 / 5%);
  font-size: 13px;
  font-weight: 850;
  line-height: 1.18;
}

.landing-flow-beats.is-numbered {
  counter-reset: landing-flow-step;
}

.landing-flow-beats.is-numbered li {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
}

.landing-flow-beats.is-numbered li::before {
  display: grid;
  width: 26px;
  aspect-ratio: 1;
  place-items: center;
  color: #050505;
  border-radius: 50%;
  background: var(--goofy-yellow);
  content: counter(landing-flow-step);
  counter-increment: landing-flow-step;
  font-size: 11px;
  font-weight: 950;
}

.landing-questionnaire-domains {
  width: 100%;
  min-width: 0;
}

.landing-questionnaire-domains > li {
  padding: 0;
  overflow: hidden;
}

.landing-questionnaire-card {
  min-width: 0;
}

.landing-questionnaire-summary {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  color: var(--paper);
  cursor: pointer;
  list-style: none;
}

.landing-questionnaire-summary::-webkit-details-marker {
  display: none;
}

.landing-questionnaire-summary::after {
  flex: 0 0 auto;
  color: var(--goofy-yellow);
  font-size: 18px;
  font-weight: 950;
  content: "+";
}

.landing-questionnaire-card[open] .landing-questionnaire-summary::after {
  content: "-";
}

.landing-questionnaire-summary strong {
  min-width: 0;
  color: var(--paper);
  font-size: clamp(15px, 1.25vw, 18px);
  font-weight: 950;
  line-height: 1;
  overflow-wrap: anywhere;
  text-transform: uppercase;
}

.landing-questionnaire-summary span {
  flex: 0 0 auto;
  color: rgb(249 244 232 / 56%);
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
}

.landing-question-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0 12px 12px;
  list-style: none;
}

.landing-question-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border-color: rgb(255 255 255 / 8%);
  background: rgb(0 0 0 / 28%);
}

.landing-question-list p {
  min-width: 0;
  margin: 0;
  color: rgb(249 244 232 / 80%);
  font-size: 12px;
  font-weight: 790;
  line-height: 1.22;
  overflow-wrap: anywhere;
}

.landing-question-choices {
  display: grid;
  grid-template-columns: repeat(2, minmax(42px, auto));
  gap: 6px;
}

.landing-question-choices button {
  min-height: 30px;
  padding: 0 9px;
  color: var(--paper);
  cursor: pointer;
  border: 1px solid rgb(245 181 27 / 34%);
  border-radius: 999px;
  background: rgb(245 181 27 / 10%);
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.landing-question-choices button:hover,
.landing-question-choices button:focus-visible {
  color: #050505;
  outline: none;
  background: var(--goofy-yellow);
}

.landing-open-prompts {
  display: grid;
  gap: 8px;
  padding: 0 12px 14px;
}

.landing-open-prompts label {
  display: grid;
  gap: 6px;
}

.landing-open-prompts span {
  color: rgb(249 244 232 / 72%);
  font-size: 12px;
  font-weight: 850;
  line-height: 1.18;
  overflow-wrap: anywhere;
}

.landing-open-prompts textarea {
  width: 100%;
  min-width: 0;
  resize: vertical;
  padding: 10px;
  color: var(--paper);
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 8px;
  background: rgb(0 0 0 / 30%);
  font: inherit;
  font-size: 13px;
  font-weight: 760;
}

.landing-flow-modal-action {
  display: inline-flex;
  position: sticky;
  bottom: 0;
  z-index: 2;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  justify-self: start;
  padding: 0 16px;
  color: #050505;
  cursor: pointer;
  border: 1px solid #050505;
  border-radius: 8px;
  background: var(--goofy-yellow);
  font-size: 13px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.landing-flow-modal-action:hover {
  background: #ffd568;
}

.landing-flow-modal-action:focus-visible {
  outline: 2px solid var(--control-focus);
  outline-offset: 4px;
}

@media (min-width: 641px) and (max-height: 760px) {
  .landing-flow-list {
    margin-top: 8px;
  }

  .landing-flow-cta {
    min-height: 64px;
    align-content: center;
    padding: 10px 12px;
  }

  .landing-flow-cta strong {
    font-size: clamp(16px, 1.25vw, 20px);
    line-height: 0.96;
  }

  .landing-flow-cta small {
    display: none;
  }

  .landing-actions {
    margin-top: 8px;
  }
}

.survey-picker {
  display: grid;
  gap: 8px;
}

.survey-content {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 14px;
  min-height: 0;
}

.survey-picker label {
  color: var(--goofy-yellow);
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
}

.survey-picker select {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  color: var(--paper);
  font: inherit;
  font-size: 16px;
  font-weight: 800;
  border: 1px solid rgb(245 181 27 / 62%);
  border-radius: 6px;
  background: #0b0b0b;
}

.survey-picker select:focus-visible {
  outline: 2px solid var(--control-focus);
  outline-offset: 3px;
}

.survey-panel {
  display: grid;
  gap: 18px;
  min-height: 0;
  height: 100%;
  padding: clamp(18px, 2vw, 26px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgb(255 255 255 / 8%), transparent 44%),
    #0b0b0b;
}

.survey-panel h3 {
  margin: 0;
  color: var(--goofy-yellow);
  font-size: clamp(22px, 3vw, 36px);
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.survey-section {
  display: grid;
  gap: 10px;
}

.survey-section h4 {
  margin: 0;
  color: rgb(249 244 232 / 72%);
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
}

.survey-questions {
  display: grid;
  gap: 12px;
  margin: 0;
  padding-left: 1.4em;
}

.survey-questions li,
.survey-open-prompts li {
  display: grid;
  gap: 8px;
  color: var(--paper);
  font-size: clamp(16px, 2vw, 24px);
  font-weight: 750;
  line-height: 1.22;
}

.survey-open-prompts {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.survey-open-prompts li {
  display: grid;
  gap: 8px;
  padding: 12px 14px;
  border: 1px solid rgb(245 181 27 / 32%);
  border-radius: 6px;
  background: rgb(245 181 27 / 7%);
}

.app-demo-shell {
  position: fixed;
  inset: 0;
  z-index: 20;
  display: grid;
  width: 100%;
  max-width: 100vw;
  place-items: center;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 18px;
  background: #020202;
}

.app-demo-shell[hidden] {
  display: none;
}

.app-demo {
  display: grid;
  width: min(1180px, calc(100vw - 28px));
  max-width: calc(100vw - 28px);
  height: min(840px, calc(100dvh - 28px));
  min-width: 0;
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 16px;
  padding: clamp(16px, 2vw, 26px);
  color: var(--paper);
  border: 1px solid rgb(245 181 27 / 66%);
  border-radius: 8px;
  background:
    linear-gradient(90deg, rgb(245 181 27 / 7%) 1px, transparent 1px),
    #050505;
  background-size: 46px 46px;
}

.app-demo-header,
.demo-phone-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.app-demo-header p,
.demo-phone-header p,
.demo-section-head p,
.demo-hero p {
  margin: 0;
  color: var(--goofy-yellow);
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.app-demo-header h2,
.demo-phone-header h3,
.app-demo-city h3,
.demo-section-head h4,
.demo-hero h4 {
  margin: 0;
  color: var(--paper);
  font-weight: 950;
  line-height: 0.95;
  text-transform: uppercase;
}

.app-demo-header h2 {
  font-size: clamp(28px, 4vw, 54px);
}

.app-demo-city {
  display: grid;
  place-items: center;
  align-content: center;
  gap: 18px;
  min-height: 0;
  padding: 22px;
  text-align: center;
}

.app-demo-city[hidden],
.app-demo-dashboard[hidden] {
  display: none;
}

.city-radar {
  position: relative;
  display: grid;
  width: clamp(120px, 18vw, 190px);
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgb(245 181 27 / 58%);
  border-radius: 50%;
  background:
    linear-gradient(90deg, transparent 49%, rgb(245 181 27 / 22%) 50%, transparent 51%),
    linear-gradient(180deg, transparent 49%, rgb(245 181 27 / 22%) 50%, transparent 51%),
    #080808;
}

.city-radar span {
  width: 26%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--goofy-yellow);
  box-shadow: 0 0 24px rgb(245 181 27 / 58%);
}

.app-demo-city h3 {
  font-size: clamp(42px, 6vw, 86px);
}

.app-demo-city > p:not(.app-demo-kicker) {
  max-width: 520px;
  margin: 0;
  color: rgb(249 244 232 / 76%);
  font-size: clamp(18px, 2vw, 26px);
  font-weight: 800;
  line-height: 1.2;
}

.city-shortcuts {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  max-width: 540px;
}

.city-shortcuts button {
  min-height: 38px;
  padding: 0 12px;
  color: var(--paper);
  cursor: pointer;
  border: 1px solid rgb(245 181 27 / 42%);
  border-radius: 999px;
  background: rgb(255 255 255 / 7%);
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
}

.city-shortcuts button:hover {
  background: rgb(245 181 27 / 14%);
}

.app-demo-dashboard {
  display: grid;
  min-height: 0;
  place-items: center;
}

.app-demo-phone {
  display: grid;
  width: min(430px, 100%);
  height: min(700px, 100%);
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgb(245 181 27 / 58%);
  border-radius: 8px;
  background: #090909;
  box-shadow: 0 28px 90px rgb(0 0 0 / 58%);
}

.demo-phone-header {
  padding: 4px 2px 8px;
}

.demo-phone-header h3 {
  margin-top: 6px;
  color: var(--goofy-yellow);
  font-size: 32px;
}

.demo-tab-panel {
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 0;
  overflow: auto;
  padding-right: 2px;
  -webkit-overflow-scrolling: touch;
}

.demo-hero,
.demo-section-head,
.demo-upload-card,
.demo-row-card,
.demo-show-card {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 8px;
  background: rgb(255 255 255 / 6%);
}

.demo-hero h4,
.demo-section-head h4 {
  font-size: 26px;
}

.demo-stat-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.demo-stat-row span,
.demo-shop-tabs span {
  display: grid;
  gap: 4px;
  padding: 10px;
  color: rgb(249 244 232 / 72%);
  border: 1px solid rgb(245 181 27 / 22%);
  border-radius: 6px;
  background: rgb(0 0 0 / 28%);
  font-size: 11px;
  font-weight: 850;
  line-height: 1.1;
  text-transform: uppercase;
}

.demo-stat-row strong {
  color: var(--paper);
  font-size: 18px;
}

.demo-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.demo-card-grid button,
.demo-tabbar button {
  font: inherit;
}

.demo-card-grid button {
  display: grid;
  min-height: 118px;
  align-content: end;
  gap: 6px;
  padding: 12px;
  color: var(--paper);
  cursor: pointer;
  border: 1px solid rgb(245 181 27 / 28%);
  border-radius: 8px;
  background: rgb(245 181 27 / 7%);
  text-align: left;
}

.demo-card-grid button:hover {
  border-color: rgb(245 181 27 / 68%);
  background: rgb(245 181 27 / 12%);
}

.demo-card-grid span,
.demo-upload-card span,
.demo-row-card span,
.demo-show-card span {
  color: var(--goofy-yellow);
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}

.demo-card-grid strong,
.demo-upload-card strong,
.demo-row-card strong,
.demo-show-card strong {
  color: var(--paper);
  font-size: 18px;
  line-height: 1.05;
}

.demo-question-list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding-left: 1.3em;
  color: var(--paper);
  font-size: 17px;
  font-weight: 800;
  line-height: 1.18;
}

.demo-note,
.demo-upload-card small,
.demo-show-card small {
  color: rgb(249 244 232 / 66%);
  font-size: 13px;
  font-weight: 750;
  line-height: 1.25;
}

.demo-show-card.is-selected {
  border-color: rgb(245 181 27 / 62%);
}

.demo-shop-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.demo-shop-link {
  justify-self: stretch;
}

.demo-tabbar {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
  padding-top: 10px;
  border-top: 1px solid rgb(255 255 255 / 12%);
}

.demo-tabbar button {
  min-height: 42px;
  padding: 0 4px;
  color: rgb(249 244 232 / 72%);
  cursor: pointer;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  font-size: 11px;
  font-weight: 950;
  text-transform: uppercase;
}

.demo-tabbar button.is-active {
  color: #050505;
  border-color: var(--goofy-yellow);
  background: var(--goofy-yellow);
}

.morgan-route {
  overflow: hidden;
  background: #101014;
}

.morgan-game {
  position: fixed;
  inset: 0;
  display: grid;
  min-height: 100dvh;
  overflow: hidden;
  color: #fbf7ec;
  background:
    linear-gradient(135deg, rgb(239 71 111 / 14%), transparent 34%),
    linear-gradient(225deg, rgb(6 214 160 / 12%), transparent 40%),
    linear-gradient(180deg, #11131d, #161111 48%, #0b0d12);
}

.morgan-game[hidden] {
  display: none;
}

.morgan-game__shell {
  display: grid;
  min-height: 100dvh;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 14px;
  padding: clamp(12px, 2vw, 22px);
}

.morgan-game__header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
}

.morgan-game__title,
.morgan-clue-card {
  min-width: 0;
}

.morgan-game__kicker {
  margin: 0 0 7px;
  color: #ffd166;
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.morgan-game__title h1 {
  margin: 0;
  color: #fff7e1;
  font-size: clamp(34px, 5vw, 74px);
  font-weight: 950;
  letter-spacing: 0;
  line-height: 0.9;
  text-transform: uppercase;
}

.morgan-hud {
  display: flex;
  flex-wrap: wrap;
  justify-content: end;
  gap: 8px;
}

.morgan-hud__stat {
  display: grid;
  min-width: 82px;
  gap: 3px;
  padding: 9px 11px;
  border: 1px solid rgb(255 255 255 / 18%);
  border-radius: 8px;
  background: rgb(5 7 14 / 72%);
  box-shadow: 0 14px 32px rgb(0 0 0 / 20%);
}

.morgan-hud__stat strong {
  color: #fff7e1;
  font-size: 20px;
  font-weight: 950;
  line-height: 1;
}

.morgan-hud__stat small {
  color: rgb(251 247 236 / 65%);
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
}

.morgan-action,
.morgan-icon-button,
.morgan-result button {
  min-height: 42px;
  color: #061015;
  cursor: pointer;
  border: 1px solid rgb(5 5 5 / 72%);
  border-radius: 8px;
  background: #ffd166;
  font-size: 13px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.morgan-action {
  padding: 0 14px;
}

.morgan-action--hint {
  background: #06d6a0;
}

.morgan-action:hover,
.morgan-icon-button:hover,
.morgan-result button:hover {
  filter: brightness(1.08);
}

.morgan-action:focus-visible,
.morgan-icon-button:focus-visible,
.morgan-result button:focus-visible,
.morgan-person:focus-visible {
  outline: 3px solid #4cc9f0;
  outline-offset: 3px;
}

.morgan-game__layout {
  display: grid;
  min-height: 0;
  grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
  gap: 14px;
}

.morgan-clue-card {
  display: grid;
  align-content: start;
  gap: 14px;
  padding: 16px;
  overflow: auto;
  border: 1px solid rgb(255 255 255 / 18%);
  border-radius: 8px;
  background: rgb(6 10 18 / 82%);
  box-shadow: 0 24px 58px rgb(0 0 0 / 30%);
}

.morgan-clue-card h2 {
  margin: 0;
  color: #fff7e1;
  font-size: clamp(24px, 3vw, 42px);
  font-weight: 950;
  line-height: 0.95;
  text-transform: uppercase;
}

.morgan-clue-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.morgan-clue-list li {
  min-height: 38px;
  padding: 10px 12px;
  color: #fbf7ec;
  border: 1px solid rgb(255 209 102 / 28%);
  border-radius: 8px;
  background: rgb(255 255 255 / 7%);
  font-size: 14px;
  font-weight: 900;
  line-height: 1.1;
  text-transform: uppercase;
}

.morgan-hint-text,
.morgan-status {
  margin: 0;
  color: rgb(251 247 236 / 74%);
  font-size: 15px;
  font-weight: 800;
  line-height: 1.3;
}

.morgan-status {
  color: #9bf6ff;
}

.morgan-stage-shell {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgb(255 255 255 / 18%);
  border-radius: 8px;
  background: #080a10;
  box-shadow: 0 24px 58px rgb(0 0 0 / 30%);
}

.morgan-stage-toolbar {
  display: grid;
  grid-template-columns: 42px minmax(120px, 280px) 42px auto;
  align-items: center;
  gap: 8px;
  padding: 10px;
  border-bottom: 1px solid rgb(255 255 255 / 13%);
  background: rgb(8 10 16 / 82%);
}

.morgan-icon-button {
  display: grid;
  width: 42px;
  padding: 0;
  place-items: center;
  font-size: 22px;
}

#morganZoomRange {
  width: 100%;
  accent-color: #06d6a0;
}

.morgan-zoom-value {
  color: rgb(251 247 236 / 72%);
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.morgan-viewport {
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  background:
    linear-gradient(90deg, rgb(255 255 255 / 5%) 1px, transparent 1px),
    linear-gradient(180deg, rgb(255 255 255 / 5%) 1px, transparent 1px),
    #12151d;
  background-size: 48px 48px;
  -webkit-overflow-scrolling: touch;
}

.morgan-scene-size {
  position: relative;
  min-width: 928px;
  min-height: 522px;
}

.morgan-scene {
  position: absolute;
  top: 0;
  left: 0;
  width: 1600px;
  height: 900px;
  overflow: hidden;
  transform-origin: 0 0;
  background:
    radial-gradient(circle at 80% 20%, rgb(255 209 102 / 24%), transparent 14%),
    radial-gradient(circle at 22% 30%, rgb(76 201 240 / 20%), transparent 17%),
    linear-gradient(180deg, #243447 0 45%, #1f2f3a 45% 46%, #322f2f 46% 100%);
}

.morgan-scene::before {
  position: absolute;
  inset: 400px 0 0;
  content: "";
  background:
    linear-gradient(90deg, rgb(255 255 255 / 8%) 1px, transparent 1px),
    linear-gradient(180deg, rgb(0 0 0 / 12%) 1px, transparent 1px),
    linear-gradient(135deg, #ff8fab 0 12%, #2ec4b6 12% 24%, #ffd166 24% 36%, #4361ee 36% 48%, #ef476f 48% 60%, #06d6a0 60% 72%, #f4a261 72% 84%, #4cc9f0 84%);
  background-size: 70px 70px, 70px 70px, 420px 420px;
  opacity: 0.62;
}

.morgan-scene::after {
  position: absolute;
  right: 48px;
  bottom: 28px;
  width: 430px;
  height: 150px;
  content: "";
  border-radius: 50%;
  background: rgb(0 0 0 / 18%);
  filter: blur(10px);
}

.morgan-prop,
.morgan-confetti {
  position: absolute;
  pointer-events: none;
}

.morgan-prop {
  z-index: 3;
  display: grid;
  place-items: center;
  color: #101014;
  border: 3px solid rgb(8 10 16 / 62%);
  border-radius: 8px;
  font-size: 18px;
  font-weight: 950;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
  box-shadow: 0 16px 26px rgb(0 0 0 / 22%);
}

.morgan-prop--banner {
  color: #fff7e1;
  background: #ef476f;
  font-size: 34px;
  text-shadow: 0 3px 0 rgb(0 0 0 / 22%);
}

.morgan-prop--dj {
  z-index: 7;
  color: #fbf7ec;
  background:
    radial-gradient(circle at 30% 44%, #4cc9f0 0 14%, transparent 15%),
    radial-gradient(circle at 70% 44%, #06d6a0 0 14%, transparent 15%),
    #151722;
}

.morgan-prop--snack {
  z-index: 8;
  align-items: start;
  padding-top: 18px;
  color: #3b2116;
  background:
    linear-gradient(180deg, #ffd166 0 40%, #f78c6b 40% 100%);
}

.morgan-prop--photo {
  color: #fbf7ec;
  background:
    linear-gradient(90deg, rgb(255 255 255 / 20%) 1px, transparent 1px),
    linear-gradient(180deg, rgb(255 255 255 / 20%) 1px, transparent 1px),
    #4361ee;
  background-size: 34px 34px;
}

.morgan-prop--sign {
  color: #081018;
  background: #9bf6ff;
  transform: rotate(-6deg);
}

.morgan-prop--speaker {
  background:
    radial-gradient(circle at 50% 28%, #101014 0 22%, transparent 23%),
    radial-gradient(circle at 50% 72%, #101014 0 26%, transparent 27%),
    #2ec4b6;
}

.morgan-prop--table {
  color: #fbf7ec;
  background: #8338ec;
}

.morgan-prop--balloons {
  border: 0;
  background:
    radial-gradient(circle at 24% 24%, #ef476f 0 18%, transparent 19%),
    radial-gradient(circle at 58% 18%, #ffd166 0 20%, transparent 21%),
    radial-gradient(circle at 72% 46%, #06d6a0 0 18%, transparent 19%),
    linear-gradient(180deg, transparent 0 72%, rgb(255 255 255 / 55%) 73% 75%, transparent 76%);
  box-shadow: none;
}

.morgan-prop--balloons-alt {
  filter: hue-rotate(80deg);
}

.morgan-confetti {
  z-index: 9;
  width: 12px;
  height: 5px;
  border-radius: 2px;
  background: var(--confetti-color);
}

.morgan-person {
  position: absolute;
  z-index: 5;
  width: 64px;
  height: 118px;
  padding: 0;
  cursor: pointer;
  border: 0;
  background: transparent;
  transform: scale(var(--person-scale)) rotate(var(--person-rotate));
  transform-origin: 50% 100%;
}

.morgan-person:hover {
  filter: brightness(1.08);
}

.morgan-person > span {
  position: absolute;
  display: block;
  pointer-events: none;
}

.morgan-person__shadow {
  left: 8px;
  bottom: 0;
  width: 48px;
  height: 13px;
  border-radius: 50%;
  background: rgb(0 0 0 / 24%);
}

.morgan-person__legs {
  left: 20px;
  top: 86px;
  width: 9px;
  height: 25px;
  border-radius: 7px;
  background: var(--pants);
  box-shadow: 16px 0 0 var(--pants);
}

.morgan-person__body {
  left: 12px;
  top: 50px;
  width: 40px;
  height: 43px;
  border: 2px solid rgb(0 0 0 / 24%);
  border-radius: 16px 16px 12px 12px;
  background: var(--shirt);
  box-shadow:
    -11px 11px 0 -4px var(--shirt),
    11px 11px 0 -4px var(--shirt);
}

.morgan-person__head {
  left: 18px;
  top: 19px;
  width: 28px;
  height: 31px;
  border: 2px solid rgb(0 0 0 / 20%);
  border-radius: 48% 48% 45% 45%;
  background: #d79a72;
}

.morgan-person__hair {
  left: 16px;
  top: 15px;
  width: 32px;
  height: 18px;
  border-radius: 16px 16px 8px 8px;
  background: var(--hair);
}

.morgan-person__hat {
  left: 13px;
  top: 6px;
  width: 38px;
  height: 18px;
  border-radius: 16px 16px 8px 8px;
  background: var(--hat);
  box-shadow: 0 9px 0 -5px rgb(0 0 0 / 22%);
}

.morgan-person__headphones {
  left: 12px;
  top: 26px;
  width: 40px;
  height: 20px;
  border-top: 4px solid #101014;
  border-radius: 18px 18px 0 0;
}

.morgan-person__headphones::before,
.morgan-person__headphones::after {
  position: absolute;
  top: 8px;
  width: 8px;
  height: 14px;
  content: "";
  border-radius: 5px;
  background: #101014;
}

.morgan-person__headphones::before {
  left: 0;
}

.morgan-person__headphones::after {
  right: 0;
}

.morgan-person__coffee {
  right: 3px;
  top: 62px;
  width: 13px;
  height: 23px;
  border: 2px solid #3b2116;
  border-radius: 3px 3px 6px 6px;
  background:
    linear-gradient(180deg, #f7fff7 0 34%, #b08968 35% 100%);
}

.morgan-person__coffee::after {
  position: absolute;
  top: -13px;
  left: 6px;
  width: 3px;
  height: 15px;
  content: "";
  border-radius: 2px;
  background: #ef476f;
  rotate: -12deg;
}

.morgan-person--target {
  z-index: 6;
}

.morgan-person--target.is-found,
.morgan-person--target.is-hinting {
  z-index: 11;
}

.morgan-person--target.is-hinting::after,
.morgan-person--target.is-found::after {
  position: absolute;
  inset: -14px -10px -8px;
  content: "";
  border: 4px solid #06d6a0;
  border-radius: 50%;
  box-shadow: 0 0 28px rgb(6 214 160 / 70%);
  animation: morganPulse 900ms ease-in-out infinite;
}

.morgan-person--target.is-found::after {
  border-color: #ffd166;
  animation: none;
}

.morgan-hint-zone {
  position: absolute;
  z-index: 4;
  left: 1000px;
  top: 380px;
  width: 470px;
  height: 340px;
  pointer-events: none;
  border: 5px solid rgb(6 214 160 / 80%);
  border-radius: 50%;
  box-shadow:
    0 0 0 999px rgb(6 10 18 / 8%),
    0 0 32px rgb(6 214 160 / 48%);
}

.morgan-hint-zone[hidden] {
  display: none;
}

.morgan-result {
  position: absolute;
  inset: 52px 0 0;
  z-index: 20;
  display: grid;
  place-items: center;
  padding: 16px;
  pointer-events: none;
  background: rgb(7 10 16 / 42%);
  backdrop-filter: blur(2px);
}

.morgan-result[hidden] {
  display: none;
}

.morgan-result__panel {
  display: grid;
  min-width: min(360px, calc(100vw - 48px));
  gap: 12px;
  padding: 22px;
  pointer-events: auto;
  border: 1px solid rgb(255 255 255 / 24%);
  border-radius: 8px;
  background: #10141e;
  box-shadow: 0 28px 80px rgb(0 0 0 / 42%);
  text-align: center;
}

.morgan-result__panel p,
.morgan-result__panel span {
  margin: 0;
  color: #06d6a0;
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.morgan-result__panel h2 {
  margin: 0;
  color: #fff7e1;
  font-size: 56px;
  font-weight: 950;
  line-height: 0.95;
}

.morgan-result__panel span {
  color: rgb(251 247 236 / 76%);
  line-height: 1.25;
}

.morgan-result button {
  justify-self: center;
  padding: 0 18px;
}

.morgan-miss .morgan-stage-shell {
  animation: morganShake 170ms linear;
}

@keyframes morganPulse {
  0%,
  100% {
    scale: 1;
  }

  50% {
    scale: 1.08;
  }
}

@keyframes morganShake {
  0%,
  100% {
    transform: translateX(0);
  }

  33% {
    transform: translateX(-5px);
  }

  66% {
    transform: translateX(5px);
  }
}

@media (max-width: 980px) {
  .landing-nav {
    align-items: center;
  }

  .landing-hero,
  .segment-showcase {
    grid-template-columns: 1fr;
  }

  .landing-hero {
    min-height: 0;
    grid-template-areas: "copy";
    align-content: stretch;
  }

  .landing-hero__visual {
    display: none;
  }

  .brief-grid,
  .app-flow-grid {
    grid-template-columns: 1fr;
  }

  .landing-flow-list {
    grid-template-columns: 1fr;
    max-width: 640px;
  }

  .landing-experience-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .brief-grid article,
  .app-flow-grid article {
    min-height: 0;
  }

  .segment-showcase {
    align-content: center;
    gap: 18px;
  }

  .segment-showcase__media {
    min-height: min(260px, 30dvh);
  }

  .landing-flow-slide {
    grid-template-columns: 1fr;
    overflow: auto;
    padding-right: 2px;
  }
}

@media (max-width: 640px) {
  .landing-page {
    --landing-nav-height: 0px;
    background:
      radial-gradient(circle at 12% 12%, rgb(245 181 27 / 16%), transparent 28%),
      linear-gradient(180deg, #060606 0%, #020202 74%);
  }

  .landing-nav {
    display: none;
    min-height: 62px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 22px 10px;
    border-bottom-color: rgb(255 255 255 / 7%);
    background: rgb(3 3 3 / 94%);
  }

  .landing-brand {
    gap: 1px;
  }

  .landing-brand span {
    font-size: 9px;
  }

  .landing-brand strong {
    font-size: 23px;
    line-height: 0.85;
  }

  .landing-nav-context {
    font-size: 10px;
  }

  .landing-hero,
  .landing-brief,
  .segment-showcase,
  .landing-app-flow,
  .landing-final {
    padding: clamp(28px, 5svh, 54px) 20px max(22px, env(safe-area-inset-bottom));
  }

  .landing-page > .landing-panel {
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .landing-hero {
    min-height: 100dvh;
    align-content: stretch;
    background: #050505;
  }

  .landing-hero__copy {
    height: calc(100dvh - 56px);
    min-height: calc(100dvh - 56px);
    align-content: start;
    grid-template-rows: minmax(168px, 27svh) auto auto auto minmax(0, 1fr);
    gap: clamp(16px, 2.4svh, 28px);
  }

  .landing-hero-logo {
    min-height: min(268px, 27svh);
  }

  .landing-hero-logo img {
    width: min(345px, 78vw);
    max-height: min(250px, 26svh);
  }

  .landing-hero h1 {
    max-width: 8.2em;
    font-size: clamp(41px, 11.5vw, 54px);
    line-height: 0.94;
  }

  .landing-actions {
    display: grid;
    grid-row: auto;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    margin-top: 0;
  }

  .landing-flow-list {
    align-self: start;
    min-height: 0;
    gap: clamp(9px, 1.25svh, 13px);
    overflow: visible;
    padding-right: 1px;
    overscroll-behavior: contain;
  }

  .landing-flow-cta {
    gap: 6px 9px;
    padding: 11px;
  }

  .landing-experience-card {
    min-height: clamp(66px, 7.7svh, 84px);
    padding: 12px;
    gap: 12px;
  }

  .landing-experience-card span {
    width: clamp(38px, 9.4vw, 46px);
    font-size: clamp(13px, 3.1vw, 16px);
  }

  .landing-experience-card strong {
    font-size: clamp(14px, 3.45vw, 17px);
    line-height: 0.96;
  }

  .landing-flow-cta span {
    width: 26px;
    height: 26px;
    font-size: 10px;
  }

  .landing-flow-cta strong {
    font-size: 16px;
    line-height: 0.96;
  }

  .landing-flow-cta small {
    font-size: 11px;
    line-height: 1.15;
  }

  .landing-module-links {
    gap: 6px;
  }

  .landing-module-links button {
    min-height: 32px;
    padding: 6px 8px;
    font-size: 11px;
  }

  .landing-primary,
  .landing-secondary {
    width: 100%;
  }

  .landing-actions .landing-primary,
  .landing-actions .landing-secondary {
    min-height: clamp(66px, 8svh, 82px);
    padding-inline: 14px;
    border-radius: 8px;
    font-size: clamp(13px, 3.15vw, 16px);
    letter-spacing: 0;
  }

  .landing-actions .landing-primary {
    box-shadow:
      0 14px 34px rgb(245 181 27 / 16%),
      inset 0 -1px 0 rgb(0 0 0 / 20%);
  }

  .landing-kicker {
    font-size: 12px;
  }

  .landing-section-head h2,
  .segment-showcase h2,
  .landing-final h2 {
    font-size: clamp(34px, 10vw, 52px);
    line-height: 0.84;
  }

  .landing-section-head {
    margin-bottom: 16px;
  }

  .brief-grid article,
  .app-flow-grid article {
    min-height: 0;
    gap: 6px;
    padding: 12px;
  }

  .brief-grid h3,
  .app-flow-grid h3 {
    font-size: 22px;
    line-height: 0.95;
  }

  .brief-grid p,
  .app-flow-grid p {
    font-size: 12px;
    line-height: 1.2;
  }

  .segment-showcase {
    gap: 14px;
  }

  .segment-showcase__media {
    min-height: min(150px, 19dvh);
  }

  .segment-showcase__copy {
    gap: 10px;
  }

  .segment-showcase ul {
    gap: 6px;
  }

  .segment-showcase li {
    padding: 8px 10px;
    font-size: 12px;
  }

  .landing-hero-lede,
  .landing-section-head p:not(.landing-kicker),
  .segment-showcase p:not(.landing-kicker),
  .app-flow-grid p,
  .landing-final p {
    font-size: 15px;
    line-height: 1.2;
  }

  .landing-hero-lede {
    max-width: 30rem;
    color: rgb(249 244 232 / 72%);
    font-size: clamp(17px, 4.55vw, 22px);
    line-height: 1.16;
  }

  .landing-panel-controls {
    right: 12px;
    left: 12px;
    bottom: max(10px, env(safe-area-inset-bottom));
    grid-template-columns: 36px minmax(54px, 1fr) 40px 36px;
    gap: 7px;
    padding: 7px;
  }

  .landing-panel-arrow {
    width: 36px;
    height: 36px;
  }

  .landing-panel-status {
    min-width: 42px;
    font-size: 11px;
  }
}

@media (max-width: 640px) and (max-height: 720px) {
  .landing-page {
    --landing-nav-height: 0px;
  }

  .landing-nav {
    display: none;
    min-height: 54px;
    padding-block: 9px 8px;
  }

  .landing-brand span {
    font-size: 8px;
  }

  .landing-brand strong {
    font-size: 18px;
  }

  .landing-nav-context {
    font-size: 8.5px;
  }

  .landing-hero,
  .landing-brief,
  .segment-showcase,
  .landing-app-flow,
  .landing-final {
    padding: 24px 18px max(18px, env(safe-area-inset-bottom));
  }

  .landing-hero {
    min-height: 100dvh;
  }

  .landing-hero__copy {
    height: calc(100dvh - 44px);
    min-height: calc(100dvh - 44px);
    grid-template-rows: minmax(170px, 28svh) auto auto auto minmax(0, 1fr);
    gap: 12px;
  }

  .landing-hero-logo {
    min-height: min(230px, 28svh);
  }

  .landing-hero-logo img {
    width: min(320px, 76vw);
    max-height: min(205px, 27svh);
  }

  .landing-kicker {
    font-size: 10px;
  }

  .landing-hero h1 {
    font-size: clamp(36px, 10.2vw, 44px);
    line-height: 0.94;
  }

  .landing-hero-lede {
    font-size: clamp(16px, 4.2vw, 19px);
    line-height: 1.15;
  }

  .landing-actions {
    gap: 6px;
  }

  .landing-flow-list {
    gap: 10px;
  }

  .landing-experience-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .landing-experience-card {
    min-height: 64px;
    padding: 11px;
  }

  .landing-flow-cta {
    padding: 9px;
  }

  .landing-flow-cta small {
    font-size: 10px;
  }

  .landing-actions .landing-primary,
  .landing-actions .landing-secondary {
    min-height: 62px;
    font-size: 13px;
  }

  .landing-panel-controls {
    bottom: max(6px, env(safe-area-inset-bottom));
    grid-template-columns: 32px minmax(54px, 1fr) 38px 32px;
    padding: 5px;
  }

  .landing-panel-arrow {
    width: 32px;
    height: 32px;
  }
}

@media (max-width: 860px) {
  .morgan-game__shell {
    overflow: auto;
  }

  .morgan-game__header {
    align-items: start;
    flex-direction: column;
  }

  .morgan-hud {
    justify-content: start;
  }

  .morgan-game__layout {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(520px, 1fr);
  }

  .morgan-clue-card {
    max-height: none;
  }
}

@media (max-width: 520px) {
  .deck-controls {
    right: 50%;
    bottom: max(12px, env(safe-area-inset-bottom));
    translate: 50% 0;
  }

  .icon-button {
    width: 36px;
    height: 36px;
  }

  .hotspot--cta {
    max-width: min(260px, calc(100vw - 24px));
    font-size: 11px;
  }

  .hotspot--fixed-cta {
    right: 12px;
  }

  .hotspot--toy-cta {
    min-width: 160px;
    min-height: 36px;
  }

  .app-demo-preview {
    grid-template-columns: 1fr;
    align-content: center;
    gap: 20px;
    padding: 24px;
  }

  .app-demo-preview h1 {
    font-size: clamp(46px, 16vw, 74px);
  }

  .app-demo-preview p:not(.app-demo-kicker) {
    font-size: 17px;
  }

  .app-demo-preview__phone {
    display: none;
  }

  .modal-shell {
    max-width: 100vw;
    overflow-x: hidden;
    padding: 12px;
  }

  .carousel-modal,
  .landing-flow-modal,
  .survey-modal,
  .image-preview-modal,
  .puzzle-audience-modal {
    width: calc(100vw - 24px);
    max-width: calc(100vw - 24px);
    min-width: 0;
    max-height: calc(100dvh - 24px);
    gap: 14px;
    padding: 16px;
  }

  .survey-modal {
    height: calc(100dvh - 24px);
  }

  .carousel-stage {
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    gap: 10px;
  }

  .landing-flow-carousel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 8px;
  }

  .carousel-arrow {
    width: 42px;
    height: 42px;
  }

  .landing-flow-arrow {
    width: min(112px, 100%);
    height: 38px;
    border-radius: 8px;
  }

  .carousel-arrow span {
    font-size: 36px;
  }

  .landing-flow-slide {
    grid-column: 1 / -1;
    order: 1;
    min-height: 0;
    max-height: calc(100dvh - 156px);
    gap: 12px;
    overflow: auto;
    padding: 0 2px;
    scrollbar-color: rgb(245 181 27 / 72%) rgb(255 255 255 / 8%);
  }

  #previousLandingFlowItem {
    order: 2;
    justify-self: end;
  }

  #nextLandingFlowItem {
    order: 3;
    justify-self: start;
  }

  .landing-flow-slide__copy {
    gap: 10px;
  }

  .landing-flow-visual {
    height: min(220px, 28dvh);
  }

  #landingFlowModal[data-segment="matrimony"] .landing-flow-modal {
    width: calc(100vw - 24px);
  }

  #landingFlowModal[data-segment="matrimony"] .landing-flow-slide__copy {
    grid-template-columns: 1fr;
    width: min(390px, 100%);
    justify-self: center;
  }

  #landingFlowModal[data-segment="matrimony"] .landing-flow-visual {
    grid-column: 1;
    grid-row: auto;
    justify-self: center;
    width: min(220px, 68vw);
    height: min(205px, 31dvh);
    aspect-ratio: 4 / 5;
  }

  #landingFlowModal[data-segment="matrimony"] .landing-flow-slide__copy > p:not(:first-child),
  #landingFlowModal[data-segment="matrimony"] .landing-flow-key-info,
  #landingFlowModal[data-segment="matrimony"] .landing-flow-modal-action,
  #landingFlowModal[data-segment="matrimony"] .landing-flow-beats {
    grid-column: 1;
  }

  .landing-flow-slide__copy h3 {
    font-size: clamp(30px, 9vw, 44px);
    line-height: 0.88;
  }

  .landing-flow-slide__copy > p:not(:first-child) {
    font-size: 14px;
    line-height: 1.2;
  }

  .landing-flow-key-info {
    display: none;
  }

  .landing-flow-beats {
    gap: 6px;
  }

  .landing-flow-beats li {
    padding: 8px 10px;
    font-size: 12px;
    line-height: 1.16;
  }

  .landing-questionnaire-summary {
    gap: 8px;
    padding: 11px 12px;
  }

  .landing-questionnaire-summary span {
    font-size: 10px;
  }

  .landing-question-list li {
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 8px;
  }

  .landing-question-choices {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .landing-flow-modal-action {
    width: 100%;
    min-height: 44px;
    font-size: 12px;
  }

  .carousel-image-wrap {
    --image-padding: 10px;
    height: min(58vh, 480px);
    min-height: 220px;
  }

  .survey-panel {
    min-height: 0;
  }

  .app-demo-shell {
    padding: 10px;
  }

  .app-demo {
    width: calc(100vw - 20px);
    height: calc(100dvh - 20px);
    gap: 12px;
    padding: 14px;
  }

  .app-demo-header h2 {
    font-size: 30px;
  }

  .app-demo-city {
    padding: 8px;
  }

  .app-demo-city h3 {
    font-size: 42px;
  }

  .app-demo-city > p:not(.app-demo-kicker) {
    font-size: 17px;
  }

  .app-demo-phone {
    width: 100%;
    height: 100%;
    padding: 12px;
  }

  .demo-phone-header h3 {
    font-size: 26px;
  }

  .demo-card-grid,
  .demo-stat-row {
    grid-template-columns: 1fr;
  }

  .demo-card-grid button {
    min-height: 86px;
  }

  .demo-tabbar {
    gap: 4px;
  }

  .demo-tabbar button {
    font-size: 10px;
  }

  .morgan-game__shell {
    gap: 10px;
    padding: 10px;
  }

  .morgan-game__title h1 {
    font-size: 38px;
  }

  .morgan-hud__stat {
    min-width: 76px;
    padding: 8px;
  }

  .morgan-action {
    min-height: 38px;
    padding: 0 10px;
  }

  .morgan-game__layout {
    grid-template-rows: auto minmax(460px, 1fr);
  }

  .morgan-clue-card {
    gap: 10px;
    padding: 12px;
  }

  .morgan-clue-card h2 {
    font-size: 26px;
  }

  .morgan-clue-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .morgan-clue-list li {
    min-height: 34px;
    padding: 8px;
    font-size: 12px;
  }

  .morgan-hint-text,
  .morgan-status {
    font-size: 13px;
  }

  .morgan-stage-toolbar {
    grid-template-columns: 38px minmax(96px, 1fr) 38px 44px;
    padding: 8px;
  }

  .morgan-icon-button {
    width: 38px;
    min-height: 38px;
  }

  .morgan-result__panel {
    min-width: min(300px, calc(100vw - 36px));
    padding: 18px;
  }

  .morgan-result__panel h2 {
    font-size: 44px;
  }
}

/* Polished mobile app demo */
.slide-canvas--app-demo {
  background:
    linear-gradient(135deg, rgb(245 181 27 / 18%), transparent 26%),
    linear-gradient(225deg, rgb(41 211 165 / 12%), transparent 34%),
    linear-gradient(180deg, #070707 0%, #101014 56%, #050505 100%);
}

.app-demo-preview {
  position: relative;
  grid-template-columns: minmax(0, 1fr) minmax(310px, 360px);
  gap: clamp(34px, 6vw, 92px);
  padding: clamp(40px, 6vw, 88px);
}

.app-demo-preview::before {
  position: absolute;
  inset: 8% 5%;
  content: "";
  pointer-events: none;
  border: 1px solid rgb(245 181 27 / 12%);
  background:
    linear-gradient(90deg, rgb(255 255 255 / 4%) 1px, transparent 1px),
    linear-gradient(180deg, rgb(255 255 255 / 4%) 1px, transparent 1px);
  background-size: 54px 54px;
  mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);
}

.app-demo-preview__copy,
.app-demo-preview__device {
  position: relative;
  z-index: 1;
}

.app-demo-preview__copy {
  max-width: 760px;
  gap: 22px;
}

.app-demo-preview h1 {
  max-width: 760px;
  font-size: clamp(58px, 8.2vw, 132px);
  line-height: 0.86;
}

.app-demo-preview p:not(.app-demo-kicker) {
  max-width: 660px;
  color: rgb(249 244 232 / 82%);
}

.app-demo-preview__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}

.app-demo-preview__actions span {
  color: rgb(249 244 232 / 64%);
  font-size: 14px;
  font-weight: 850;
  line-height: 1.2;
  text-transform: uppercase;
}

.app-demo-preview__device {
  display: grid;
  align-content: start;
  gap: 14px;
  min-height: 560px;
  padding: 18px;
  border: 8px solid #171717;
  border-radius: 34px;
  background:
    linear-gradient(180deg, #15161c, #07080c);
  box-shadow:
    0 32px 90px rgb(0 0 0 / 58%),
    inset 0 0 0 1px rgb(255 255 255 / 9%);
}

.app-demo-preview__device::before {
  justify-self: center;
  width: 96px;
  height: 18px;
  content: "";
  border-radius: 0 0 14px 14px;
  background: #060608;
}

.demo-statusbar {
  display: flex;
  justify-content: space-between;
  color: rgb(249 244 232 / 72%);
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
}

.app-preview-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 8px;
}

.app-preview-topline span,
.app-preview-hero-card span,
.app-preview-grid span,
.app-preview-hero-card small {
  color: rgb(249 244 232 / 66%);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.1;
  text-transform: uppercase;
}

.app-preview-topline strong {
  display: inline-grid;
  min-height: 30px;
  align-items: center;
  padding: 0 10px;
  color: #050505;
  border-radius: 8px;
  background: var(--goofy-yellow);
  font-size: 12px;
  font-weight: 950;
}

.app-preview-hero-card,
.app-preview-grid span,
.app-preview-feed span {
  border: 1px solid rgb(255 255 255 / 11%);
  border-radius: 8px;
  background: rgb(255 255 255 / 7%);
}

.app-preview-hero-card {
  display: grid;
  gap: 12px;
  margin-top: 8px;
  padding: 18px;
  background:
    linear-gradient(135deg, rgb(245 181 27 / 18%), rgb(255 255 255 / 6%));
}

.app-preview-hero-card strong {
  color: var(--paper);
  font-size: 28px;
  font-weight: 950;
  line-height: 0.98;
  text-transform: uppercase;
}

.app-preview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.app-preview-grid span {
  display: grid;
  gap: 8px;
  min-height: 96px;
  align-content: end;
  padding: 12px;
}

.app-preview-grid strong {
  color: var(--paper);
  font-size: 18px;
  font-weight: 950;
}

.app-preview-feed {
  display: grid;
  gap: 10px;
  margin-top: 4px;
}

.app-preview-feed span {
  height: 52px;
}

.app-demo-shell {
  place-items: center;
  overflow-x: hidden;
  overflow-y: auto;
  background:
    linear-gradient(135deg, #050505, #111113 50%, #050505),
    #050505;
}

.app-demo {
  position: relative;
  width: min(430px, calc(100vw - 28px));
  max-width: calc(100vw - 28px);
  height: min(884px, calc(100dvh - 28px));
  min-width: 0;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 8px solid #171717;
  border-radius: 34px;
  background:
    linear-gradient(180deg, #15161c, #07080c 58%, #050608);
  box-shadow:
    0 28px 90px rgb(0 0 0 / 70%),
    inset 0 0 0 1px rgb(255 255 255 / 10%);
}

.app-demo::before {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 3;
  width: 118px;
  height: 24px;
  content: "";
  border-radius: 0 0 16px 16px;
  background: #050506;
  transform: translateX(-50%);
}

.app-demo-header {
  position: relative;
  z-index: 2;
  min-height: 86px;
  align-items: end;
  padding: 28px 18px 12px;
  border-bottom: 1px solid rgb(255 255 255 / 8%);
  background: rgb(10 11 16 / 92%);
}

.app-demo-header p {
  color: rgb(249 244 232 / 58%);
  font-size: 10px;
}

.app-demo-header h2 {
  margin-top: 5px;
  color: var(--goofy-yellow);
  font-size: 24px;
  letter-spacing: 0;
}

.app-demo .close-button {
  width: 38px;
  height: 38px;
  min-height: 38px;
  border-radius: 8px;
  background: rgb(255 255 255 / 8%);
}

.app-demo-city {
  gap: 14px;
  align-content: start;
  padding: 34px 20px 24px;
  overflow: auto;
  background:
    linear-gradient(180deg, rgb(245 181 27 / 8%), transparent 38%),
    #090a0f;
}

.city-radar {
  width: min(180px, 54vw);
  margin-top: 10px;
  border-color: rgb(245 181 27 / 44%);
  background:
    linear-gradient(90deg, transparent 49%, rgb(245 181 27 / 20%) 50%, transparent 51%),
    linear-gradient(180deg, transparent 49%, rgb(245 181 27 / 20%) 50%, transparent 51%),
    repeating-radial-gradient(circle, rgb(245 181 27 / 14%) 0 1px, transparent 1px 31px),
    #0c0d12;
}

.city-radar::after {
  position: absolute;
  inset: 18%;
  content: "";
  border: 1px solid rgb(41 211 165 / 42%);
  border-radius: 50%;
}

.city-radar span {
  background: #29d3a5;
  box-shadow: 0 0 28px rgb(41 211 165 / 62%);
}

.app-demo-city h3 {
  font-size: clamp(34px, 10vw, 54px);
}

.app-demo-city > p:not(.app-demo-kicker) {
  max-width: 330px;
  font-size: 16px;
}

.city-shortcuts {
  margin-top: 4px;
}

.city-shortcuts button {
  border-radius: 8px;
  background: rgb(255 255 255 / 8%);
}

.app-demo-dashboard {
  height: 100%;
  min-height: 0;
  overflow: hidden;
  place-items: stretch;
  background: #07080c;
}

.app-demo-phone {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr) max-content;
  gap: 0;
  overflow: hidden;
  padding: 0;
  border: 0;
  border-radius: 0;
  background:
    linear-gradient(180deg, #12131a 0%, #07080c 46%, #050608 100%);
  box-shadow: none;
}

.demo-phone-header {
  align-items: end;
  padding: 18px 18px 14px;
  border-bottom: 1px solid rgb(255 255 255 / 8%);
}

.demo-phone-header[hidden] {
  display: none;
}

.demo-phone-header p {
  color: rgb(249 244 232 / 58%);
  font-size: 10px;
}

.demo-phone-header h3 {
  margin-top: 5px;
  color: var(--paper);
  font-size: 30px;
  letter-spacing: 0;
  text-transform: none;
}

.demo-tab-panel {
  gap: 12px;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 14px 14px 18px;
}

.demo-city-context[hidden] {
  display: none;
}

.demo-home-summary {
  display: grid;
  gap: 9px;
  padding: 15px;
  border: 1px solid rgb(245 181 27 / 30%);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgb(245 181 27 / 20%), rgb(41 211 165 / 11%)),
    rgb(255 255 255 / 7%);
}

.demo-home-summary p,
.demo-home-summary h4,
.demo-home-summary span {
  margin: 0;
}

.demo-home-summary p {
  color: var(--goofy-yellow);
  font-size: 10px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.demo-home-summary h4 {
  color: var(--paper);
  font-size: 27px;
  font-weight: 950;
  line-height: 0.96;
  text-transform: uppercase;
}

.demo-home-summary span {
  color: rgb(249 244 232 / 70%);
  font-size: 13px;
  font-weight: 760;
  line-height: 1.25;
}

.demo-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
}

.demo-dashboard-card {
  display: grid;
  min-height: 76px;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px 12px;
  padding: 12px 13px;
  color: var(--paper);
  cursor: pointer;
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 8px;
  background: rgb(255 255 255 / 7%);
  font: inherit;
  text-align: left;
}

.demo-dashboard-card:hover,
.demo-dashboard-card:focus-visible {
  border-color: rgb(245 181 27 / 55%);
  background: rgb(245 181 27 / 12%);
  outline: none;
}

.demo-dashboard-card span,
.demo-ticket-open span,
.demo-ticket-date span {
  grid-column: 1;
  color: var(--goofy-yellow);
  font-size: 10px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.demo-dashboard-card strong {
  grid-column: 1;
  color: var(--paper);
  font-size: 17px;
  font-weight: 950;
  line-height: 0.98;
  text-transform: uppercase;
}

.demo-dashboard-card small {
  grid-column: 1;
  color: rgb(249 244 232 / 62%);
  font-size: 11px;
  font-weight: 760;
  line-height: 1.18;
}

.demo-dashboard-card em {
  display: inline-flex;
  grid-row: 1 / span 2;
  grid-column: 2;
  min-height: 26px;
  align-items: center;
  justify-content: center;
  justify-self: end;
  padding: 0 9px;
  color: #050505;
  border-radius: 999px;
  background: var(--goofy-yellow);
  font-size: 10px;
  font-style: normal;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.demo-back-button {
  justify-self: start;
  min-height: 32px;
  padding: 0 10px;
  color: var(--paper);
  cursor: pointer;
  border: 1px solid rgb(245 181 27 / 34%);
  border-radius: 999px;
  background: rgb(255 255 255 / 7%);
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.demo-back-button:hover,
.demo-back-button:focus-visible {
  color: #050505;
  border-color: var(--goofy-yellow);
  background: var(--goofy-yellow);
  outline: none;
}

.demo-catalog-list,
.demo-profile-form {
  display: grid;
  gap: 10px;
}

.demo-catalog-card,
.demo-file-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px 12px;
  min-height: 82px;
  padding: 13px;
  color: var(--paper);
  cursor: pointer;
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 8px;
  background: rgb(255 255 255 / 7%);
  font: inherit;
  text-align: left;
}

.demo-catalog-card:hover,
.demo-catalog-card:focus-visible,
.demo-file-card:hover,
.demo-file-card:focus-visible {
  border-color: rgb(245 181 27 / 55%);
  background: rgb(245 181 27 / 11%);
  outline: none;
}

.demo-catalog-card span,
.demo-file-card span,
.demo-field span,
.demo-status-pill {
  color: var(--goofy-yellow);
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.demo-catalog-card strong,
.demo-file-card strong {
  color: var(--paper);
  font-size: 18px;
  font-weight: 950;
  line-height: 1.02;
  text-transform: uppercase;
}

.demo-catalog-card small,
.demo-file-card small {
  color: rgb(249 244 232 / 62%);
  font-size: 12px;
  font-weight: 760;
  line-height: 1.2;
}

.demo-catalog-card span,
.demo-catalog-card strong,
.demo-catalog-card small,
.demo-file-card span,
.demo-file-card strong,
.demo-file-card small {
  grid-column: 1;
}

.demo-catalog-card em {
  display: inline-flex;
  grid-row: 1 / span 3;
  grid-column: 2;
  min-height: 28px;
  align-items: center;
  justify-content: center;
  justify-self: end;
  padding: 0 10px;
  color: #050505;
  border-radius: 999px;
  background: var(--goofy-yellow);
  font-size: 10px;
  font-style: normal;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.demo-field {
  display: grid;
  gap: 8px;
}

.demo-field input,
.demo-field textarea {
  width: 100%;
  color: var(--paper);
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 8px;
  background: rgb(0 0 0 / 22%);
  font: inherit;
  font-size: 14px;
  line-height: 1.25;
  padding: 11px;
}

.demo-field textarea {
  resize: vertical;
}

.demo-field input::placeholder,
.demo-field textarea::placeholder {
  color: rgb(249 244 232 / 38%);
}

.demo-status-pill {
  margin: 0;
  color: rgb(249 244 232 / 54%);
  text-align: center;
}

.demo-doorway-stack {
  display: grid;
  gap: 10px;
}

.demo-doorway-group {
  display: grid;
  overflow: hidden;
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 8px;
  background: rgb(255 255 255 / 6%);
}

.demo-doorway-group summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 64px;
  padding: 14px;
  cursor: pointer;
  list-style: none;
}

.demo-doorway-group summary::-webkit-details-marker {
  display: none;
}

.demo-doorway-group summary:hover,
.demo-doorway-group summary:focus-visible {
  background: rgb(245 181 27 / 9%);
  outline: none;
}

.demo-doorway-group summary strong {
  color: var(--paper);
  font-size: 22px;
  font-weight: 950;
  line-height: 0.96;
  text-transform: uppercase;
}

.demo-doorway-group summary em {
  grid-row: 1;
  grid-column: 2;
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  color: #050505;
  border-radius: 999px;
  background: var(--goofy-yellow);
  font-size: 18px;
  font-style: normal;
  font-weight: 950;
  line-height: 1;
}

.demo-doorway-group[open] summary em {
  transform: rotate(45deg);
}

.demo-doorway-grid {
  display: grid;
  gap: 8px;
  padding: 0 10px 10px;
}

.demo-doorway-card {
  display: flex;
  min-height: 66px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 14px;
  color: var(--paper);
  cursor: pointer;
  border: 1px solid rgb(255 255 255 / 11%);
  border-radius: 8px;
  background: rgb(255 255 255 / 7%);
  font: inherit;
  text-align: left;
}

.demo-doorway-card:hover,
.demo-doorway-card:focus-visible {
  border-color: rgb(245 181 27 / 55%);
  background: rgb(245 181 27 / 11%);
  outline: none;
}

.demo-doorway-card span {
  display: grid;
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  place-items: center;
  color: var(--goofy-yellow);
  border: 1px solid rgb(245 181 27 / 38%);
  border-radius: 999px;
  font-size: 18px;
  font-weight: 950;
  line-height: 1;
}

.demo-doorway-card strong {
  display: block;
  min-width: 0;
  overflow: hidden;
  color: var(--paper);
  font-size: 18px;
  font-weight: 950;
  line-height: 1.02;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.demo-segment-modal {
  position: absolute;
  inset: 0;
  z-index: 6;
  display: grid;
  align-items: end;
  padding: 14px;
  overflow: hidden;
}

.demo-segment-modal[hidden] {
  display: none;
}

.demo-segment-backdrop {
  position: absolute;
  inset: 0;
  background: rgb(0 0 0 / 66%);
  backdrop-filter: blur(8px);
}

.demo-segment-sheet {
  position: relative;
  z-index: 1;
  display: grid;
  width: 100%;
  min-width: 0;
  max-height: min(560px, calc(100% - 28px));
  gap: 14px;
  padding: 16px;
  overflow: auto;
  color: var(--paper);
  border: 1px solid rgb(245 181 27 / 64%);
  border-radius: 16px 16px 8px 8px;
  background:
    linear-gradient(180deg, rgb(245 181 27 / 12%), transparent 34%),
    #090a0f;
  box-shadow: 0 -18px 50px rgb(0 0 0 / 42%);
}

.demo-segment-sheet header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
}

.demo-segment-sheet header div {
  display: grid;
  min-width: 0;
  gap: 6px;
}

.demo-segment-sheet p,
.demo-segment-sheet h4,
.demo-segment-body p,
.demo-segment-body ul,
.demo-segment-body ol,
.demo-segment-body figure {
  margin: 0;
}

.demo-segment-sheet header p {
  color: var(--goofy-yellow);
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.demo-segment-sheet h4 {
  color: var(--paper);
  font-size: 23px;
  font-weight: 950;
  line-height: 0.96;
  text-transform: uppercase;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.demo-segment-body {
  display: grid;
  gap: 13px;
}

.demo-segment-visual {
  overflow: hidden;
  border: 1px solid rgb(245 181 27 / 34%);
  border-radius: 8px;
  background: #050505;
}

.demo-segment-visual img {
  display: block;
  width: 100%;
  max-height: min(240px, 34dvh);
  object-fit: contain;
}

.demo-segment-modal[data-segment="matrimony"] .demo-segment-sheet {
  max-height: min(680px, calc(100% - 16px));
  gap: 10px;
  padding: 12px;
}

.demo-segment-modal[data-segment="matrimony"] .demo-segment-visual {
  height: min(250px, 32dvh);
}

.demo-segment-modal[data-segment="matrimony"] .demo-segment-visual img {
  height: 100%;
  max-height: none;
  object-fit: cover;
  object-position: center bottom;
}

.demo-segment-modal[data-segment="matrimony"] .demo-segment-body {
  gap: 9px;
}

.demo-segment-modal[data-segment="matrimony"] .demo-segment-action {
  order: 5;
  position: static;
}

.demo-segment-modal[data-segment="matrimony"] .demo-segment-steps {
  order: 4;
}

.demo-segment-modal[data-segment="matrimony"] .demo-segment-body p {
  font-size: 12px;
  line-height: 1.2;
}

.demo-segment-modal[data-segment="matrimony"] .demo-segment-body li {
  padding: 8px 9px;
  font-size: 11px;
  line-height: 1.12;
}

.demo-segment-body p {
  color: rgb(249 244 232 / 78%);
  font-size: 14px;
  font-weight: 760;
  line-height: 1.28;
}

.demo-segment-body ul {
  display: grid;
  gap: 8px;
  padding: 0;
  list-style: none;
}

.demo-segment-steps {
  display: grid;
  gap: 8px;
  padding: 0;
  counter-reset: demo-segment-step;
  list-style: none;
}

.demo-segment-body li {
  padding: 10px 11px;
  color: rgb(249 244 232 / 76%);
  border: 1px solid rgb(255 255 255 / 11%);
  border-radius: 8px;
  background: rgb(255 255 255 / 6%);
  font-size: 12px;
  font-weight: 850;
  line-height: 1.18;
}

.demo-segment-steps li {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 9px;
  align-items: center;
}

.demo-segment-steps li::before {
  display: grid;
  width: 24px;
  aspect-ratio: 1;
  place-items: center;
  color: #050505;
  border-radius: 50%;
  background: var(--goofy-yellow);
  content: counter(demo-segment-step);
  counter-increment: demo-segment-step;
  font-size: 11px;
  font-weight: 950;
}

.demo-segment-action {
  display: inline-flex;
  position: sticky;
  bottom: 0;
  z-index: 2;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  justify-self: stretch;
  padding: 0 14px;
  color: #050505;
  cursor: pointer;
  border: 0;
  border-radius: 8px;
  background: var(--goofy-yellow);
  font-size: 13px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.demo-segment-action:hover,
.demo-segment-action:focus-visible {
  background: #ffd568;
  outline: none;
}

.demo-ticket-open {
  display: grid;
  min-height: 170px;
  align-content: end;
  gap: 9px;
  padding: 16px;
  color: var(--paper);
  cursor: pointer;
  border: 1px solid rgb(245 181 27 / 36%);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgb(245 181 27 / 24%), rgb(41 211 165 / 14%) 54%, rgb(255 255 255 / 8%)),
    rgb(255 255 255 / 7%);
  font: inherit;
  text-align: left;
}

.demo-ticket-open:hover,
.demo-ticket-open:focus-visible {
  border-color: rgb(245 181 27 / 72%);
  background:
    linear-gradient(135deg, rgb(245 181 27 / 30%), rgb(41 211 165 / 18%) 54%, rgb(255 255 255 / 10%)),
    rgb(255 255 255 / 8%);
  outline: none;
}

.demo-ticket-open strong {
  color: var(--paper);
  font-size: 33px;
  font-weight: 950;
  line-height: 0.92;
  text-transform: uppercase;
}

.demo-ticket-open small {
  color: rgb(249 244 232 / 68%);
  font-size: 12px;
  font-weight: 760;
  line-height: 1.2;
}

.demo-ticket-modal {
  position: absolute;
  inset: 0;
  z-index: 7;
  display: grid;
  align-items: end;
  padding: 14px;
  overflow: hidden;
}

.demo-ticket-modal[hidden] {
  display: none;
}

.demo-ticket-backdrop {
  position: absolute;
  inset: 0;
  background: rgb(0 0 0 / 70%);
  backdrop-filter: blur(8px);
}

.demo-ticket-sheet {
  position: relative;
  z-index: 1;
  display: grid;
  width: 100%;
  min-width: 0;
  max-height: min(600px, calc(100% - 28px));
  grid-template-rows: auto minmax(0, 1fr);
  gap: 12px;
  padding: 16px;
  color: var(--paper);
  border: 1px solid rgb(41 211 165 / 62%);
  border-radius: 16px 16px 8px 8px;
  background:
    linear-gradient(180deg, rgb(41 211 165 / 13%), transparent 34%),
    #090a0f;
  box-shadow: 0 -18px 50px rgb(0 0 0 / 42%);
}

.demo-ticket-sheet header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
}

.demo-ticket-sheet p,
.demo-ticket-sheet h4 {
  margin: 0;
}

.demo-ticket-sheet p {
  color: #29d3a5;
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.demo-ticket-sheet h4 {
  color: var(--paper);
  font-size: 28px;
  font-weight: 950;
  line-height: 0.96;
  text-transform: uppercase;
}

.demo-ticket-list {
  display: grid;
  gap: 9px;
  min-height: 0;
  overflow: auto;
  padding-right: 2px;
  -webkit-overflow-scrolling: touch;
}

.demo-ticket-list--page {
  overflow: visible;
  padding-right: 0;
}

.goofy-camera-modal {
  position: absolute;
  inset: 0;
  z-index: 8;
  display: grid;
  align-items: end;
  padding: 12px;
  overflow: hidden;
}

.goofy-camera-modal[hidden] {
  display: none;
}

.goofy-camera-backdrop {
  position: absolute;
  inset: 0;
  background: rgb(0 0 0 / 76%);
  backdrop-filter: blur(8px);
}

.goofy-camera-sheet {
  position: relative;
  z-index: 1;
  display: grid;
  width: 100%;
  min-width: 0;
  max-height: calc(100% - 16px);
  grid-template-rows: auto minmax(0, 1fr) auto auto auto;
  gap: 12px;
  padding: 14px;
  overflow: auto;
  color: var(--paper);
  border: 1px solid rgb(245 181 27 / 64%);
  border-radius: 16px 16px 8px 8px;
  background:
    linear-gradient(180deg, rgb(245 181 27 / 14%), transparent 36%),
    #07080c;
  box-shadow: 0 -20px 56px rgb(0 0 0 / 48%);
}

.goofy-camera-sheet header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
}

.goofy-camera-sheet header div {
  display: grid;
  min-width: 0;
  gap: 6px;
}

.goofy-camera-sheet p,
.goofy-camera-sheet h4 {
  margin: 0;
}

.goofy-camera-sheet header p {
  color: var(--goofy-yellow);
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.goofy-camera-sheet h4 {
  color: var(--paper);
  font-size: 25px;
  font-weight: 950;
  line-height: 0.96;
  text-transform: uppercase;
}

.goofy-camera-stage {
  position: relative;
  overflow: hidden;
  min-height: 330px;
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 8px;
  background: #050505;
}

.goofy-camera-stage canvas {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 330px;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}

.goofy-camera-fallback {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 50% 36%, rgb(245 181 27 / 28%), transparent 34%),
    linear-gradient(145deg, rgb(239 71 111 / 18%), rgb(41 211 165 / 10%)),
    #050505;
}

.goofy-camera-fallback[hidden] {
  display: none;
}

.goofy-camera-fallback span {
  display: grid;
  width: 88px;
  aspect-ratio: 1;
  place-items: center;
  color: #050505;
  border-radius: 50%;
  background: var(--goofy-yellow);
  font-size: 28px;
  font-weight: 950;
  line-height: 1;
}

.goofy-camera-status {
  min-height: 18px;
  color: rgb(249 244 232 / 72%);
  font-size: 12px;
  font-weight: 820;
  line-height: 1.22;
}

.goofy-camera-consent {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  color: rgb(249 244 232 / 66%);
  font-size: 11px;
  font-weight: 760;
  line-height: 1.25;
}

.goofy-camera-consent input {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--goofy-yellow);
}

.goofy-camera-consent a {
  color: var(--goofy-yellow);
}

.goofy-camera-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.goofy-camera-primary,
.goofy-camera-secondary,
.demo-camera-button {
  min-height: 46px;
  color: #050505;
  cursor: pointer;
  border: 0;
  border-radius: 8px;
  background: var(--goofy-yellow);
  font-size: 13px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.goofy-camera-secondary {
  color: var(--paper);
  border: 1px solid rgb(255 255 255 / 14%);
  background: rgb(255 255 255 / 8%);
}

.goofy-camera-primary:disabled,
.goofy-camera-secondary:disabled,
.demo-camera-button:disabled {
  color: rgb(249 244 232 / 42%);
  cursor: not-allowed;
  background: rgb(255 255 255 / 8%);
}

.demo-photo-picker {
  display: grid;
  gap: 10px;
}

.demo-photo-preview {
  display: grid;
  min-height: 190px;
  margin: 0;
  overflow: hidden;
  place-items: center;
  border: 1px solid rgb(245 181 27 / 28%);
  border-radius: 8px;
  background:
    radial-gradient(circle at 50% 30%, rgb(245 181 27 / 18%), transparent 30%),
    #050505;
}

.demo-photo-preview img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 190px;
  object-fit: cover;
}

.demo-photo-preview span {
  display: grid;
  width: 74px;
  aspect-ratio: 1;
  place-items: center;
  color: #050505;
  border-radius: 50%;
  background: var(--goofy-yellow);
  font-size: 24px;
  font-weight: 950;
  line-height: 1;
}

.demo-ticket-row {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 10px;
  padding: 11px;
  border: 1px solid rgb(255 255 255 / 11%);
  border-radius: 8px;
  background: rgb(255 255 255 / 7%);
}

.demo-ticket-date,
.demo-ticket-info {
  display: grid;
  align-content: start;
  gap: 6px;
  min-width: 0;
}

.demo-ticket-date strong,
.demo-ticket-info strong {
  color: var(--paper);
  font-size: 13px;
  font-weight: 950;
  line-height: 1.05;
}

.demo-ticket-info span,
.demo-ticket-info em {
  color: rgb(249 244 232 / 64%);
  font-size: 11px;
  font-style: normal;
  font-weight: 760;
  line-height: 1.18;
}

.demo-ticket-row .is-available {
  color: #29d3a5;
}

.demo-ticket-row .is-waitlist {
  color: #ffce53;
}

.matrimony-swipe-head {
  border-color: rgb(239 71 111 / 32%);
  background:
    linear-gradient(135deg, rgb(239 71 111 / 18%), rgb(245 181 27 / 10%)),
    rgb(255 255 255 / 7%);
}

.matrimony-swipe-deck {
  position: relative;
  display: grid;
  min-height: 330px;
  place-items: center;
  overflow: hidden;
}

.matrimony-swipe-card {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 8px;
  background: #050505;
  box-shadow: 0 24px 56px rgb(0 0 0 / 44%);
}

.matrimony-swipe-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.matrimony-swipe-card--back {
  transform: translateY(18px) scale(0.9) rotate(-4deg);
  opacity: 0.34;
}

.matrimony-swipe-card--middle {
  transform: translateY(10px) scale(0.95) rotate(3deg);
  opacity: 0.62;
}

.matrimony-swipe-card--front {
  transform: rotate(-1deg);
}

.matrimony-profile-copy {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  gap: 6px;
  padding: 54px 14px 14px;
  background: linear-gradient(180deg, transparent, rgb(0 0 0 / 86%));
}

.matrimony-profile-copy strong {
  color: var(--paper);
  font-size: 27px;
  font-weight: 950;
  line-height: 0.96;
}

.matrimony-profile-copy p {
  margin: 0;
  color: rgb(249 244 232 / 82%);
  font-size: 12px;
  font-weight: 820;
  line-height: 1.2;
}

.matrimony-swipe-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.matrimony-swipe-actions button {
  min-height: 48px;
  color: var(--paper);
  cursor: pointer;
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 999px;
  background: rgb(255 255 255 / 8%);
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}

.matrimony-swipe-actions button:last-child {
  color: #050505;
  border-color: var(--goofy-yellow);
  background: var(--goofy-yellow);
}

.matrimony-swipe-actions button:hover,
.matrimony-swipe-actions button:focus-visible {
  outline: 2px solid var(--control-focus);
  outline-offset: 3px;
}

.demo-hero {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 14px;
  min-height: 154px;
  padding: 16px;
  border-color: rgb(245 181 27 / 34%);
  background:
    linear-gradient(135deg, rgb(245 181 27 / 24%), rgb(239 71 111 / 14%) 54%, rgb(255 255 255 / 7%));
}

.demo-hero > div {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.demo-hero h4,
.demo-section-head h4 {
  font-size: 25px;
  line-height: 0.98;
}

.demo-hero span,
.demo-section-head span {
  color: rgb(249 244 232 / 68%);
  font-size: 13px;
  font-weight: 760;
  line-height: 1.25;
}

.demo-hero button {
  flex: 0 0 auto;
  min-height: 40px;
  padding: 0 12px;
  color: #050505;
  cursor: pointer;
  border: 0;
  border-radius: 8px;
  background: var(--goofy-yellow);
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}

.demo-stat-row {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.demo-stat-row span {
  min-height: 74px;
  align-content: space-between;
  border-color: rgb(255 255 255 / 10%);
  background: rgb(255 255 255 / 7%);
}

.demo-stat-row strong {
  font-size: 19px;
}

.demo-live-card,
.demo-poll-card,
.demo-prompt-card,
.demo-section-head,
.demo-upload-card,
.demo-row-card,
.demo-show-card,
.demo-qr-card,
.demo-product-grid article {
  display: grid;
  gap: 10px;
  padding: 14px;
  color: var(--paper);
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 8px;
  background: rgb(255 255 255 / 7%);
}

.demo-live-card {
  grid-template-columns: minmax(0, 1fr) 78px;
  align-items: end;
  cursor: pointer;
  text-align: left;
  font: inherit;
}

.demo-live-card:hover,
.demo-card-grid button:hover {
  border-color: rgb(245 181 27 / 55%);
  background: rgb(245 181 27 / 11%);
}

.demo-live-card span,
.demo-poll-card span,
.demo-prompt-card span,
.demo-upload-card span,
.demo-row-card span,
.demo-show-card span,
.demo-qr-card span,
.demo-product-grid span {
  color: var(--goofy-yellow);
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.demo-live-card strong,
.demo-poll-card strong,
.demo-prompt-card strong,
.demo-upload-card strong,
.demo-row-card strong,
.demo-show-card strong,
.demo-qr-card strong,
.demo-product-grid strong {
  color: var(--paper);
  font-size: 18px;
  font-weight: 950;
  line-height: 1.05;
}

.demo-live-card small,
.demo-prompt-card small,
.demo-upload-card small,
.demo-row-card small,
.demo-show-card small,
.demo-qr-card small {
  color: rgb(249 244 232 / 62%);
  font-size: 12px;
  font-weight: 760;
  line-height: 1.25;
}

.demo-mini-chart {
  display: flex;
  height: 72px;
  align-items: end;
  gap: 6px;
}

.demo-mini-chart i {
  flex: 1;
  min-width: 14px;
  border-radius: 7px 7px 3px 3px;
  background: var(--goofy-yellow);
}

.demo-card-grid {
  grid-template-columns: 1fr;
}

.demo-card-grid button {
  min-height: 92px;
  gap: 8px;
  align-content: center;
  border-color: rgb(255 255 255 / 11%);
  background: rgb(255 255 255 / 7%);
}

.demo-card-grid small {
  color: rgb(249 244 232 / 58%);
  font-size: 12px;
  font-weight: 760;
  line-height: 1.2;
}

.demo-choice-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.demo-choice-row em {
  display: grid;
  min-height: 42px;
  place-items: center;
  color: #050505;
  border-radius: 8px;
  background: var(--goofy-yellow);
  font-size: 13px;
  font-style: normal;
  font-weight: 950;
  text-transform: uppercase;
}

.demo-choice-row em + em {
  color: var(--paper);
  background: rgb(255 255 255 / 10%);
}

.demo-choice-row button {
  display: grid;
  min-height: 42px;
  place-items: center;
  color: var(--paper);
  cursor: pointer;
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 8px;
  background: rgb(255 255 255 / 8%);
  font-size: 13px;
  font-weight: 950;
  text-transform: uppercase;
}

.demo-choice-row button:hover,
.demo-choice-row button:focus-visible {
  color: #050505;
  border-color: var(--goofy-yellow);
  background: var(--goofy-yellow);
}

.demo-upload-card,
.demo-qr-card {
  grid-template-columns: 76px minmax(0, 1fr);
  align-items: center;
}

.demo-upload-ring {
  display: grid;
  width: 64px;
  aspect-ratio: 1;
  place-items: center;
  color: #050505;
  border-radius: 50%;
  background: conic-gradient(var(--goofy-yellow) 0 82%, rgb(255 255 255 / 16%) 82% 100%);
  font-size: 17px;
  font-weight: 950;
}

.demo-talent-stack {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
}

.demo-talent-stack span {
  flex: 0 0 auto;
  padding: 11px 12px;
  color: var(--paper);
  border: 1px solid rgb(255 255 255 / 11%);
  border-radius: 8px;
  background: rgb(255 255 255 / 7%);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.demo-domain-card {
  display: grid;
  gap: 13px;
  padding: 14px;
  color: var(--paper);
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 8px;
  background: rgb(255 255 255 / 7%);
}

.demo-domain-card header {
  display: grid;
  gap: 6px;
}

.demo-domain-card header span,
.demo-open-prompts label > span {
  color: var(--goofy-yellow);
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.demo-domain-card header strong {
  color: var(--paper);
  font-size: 20px;
  font-weight: 950;
  line-height: 1;
}

.demo-questionnaire-list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.demo-questionnaire-list li {
  display: grid;
  gap: 9px;
  padding: 12px;
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 8px;
  background: rgb(0 0 0 / 22%);
}

.demo-questionnaire-list p {
  margin: 0;
  color: var(--paper);
  font-size: 14px;
  font-weight: 850;
  line-height: 1.2;
}

.demo-open-prompts {
  display: grid;
  gap: 10px;
}

.demo-open-prompts label {
  display: grid;
  gap: 8px;
}

.demo-open-prompts textarea {
  width: 100%;
  min-height: 72px;
  resize: vertical;
  color: var(--paper);
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 8px;
  background: rgb(0 0 0 / 22%);
  font: inherit;
  font-size: 13px;
  line-height: 1.25;
  padding: 10px;
}

.demo-open-prompts textarea::placeholder {
  color: rgb(249 244 232 / 38%);
}

.demo-upload-button {
  min-height: 48px;
  color: #050505;
  cursor: pointer;
  border: 0;
  border-radius: 8px;
  background: var(--goofy-yellow);
  font-size: 13px;
  font-weight: 950;
  text-transform: uppercase;
}

.demo-upload-button:disabled {
  color: rgb(249 244 232 / 45%);
  cursor: not-allowed;
  background: rgb(255 255 255 / 10%);
}

.demo-show-card.is-selected {
  border-color: rgb(41 211 165 / 62%);
  background: rgb(41 211 165 / 10%);
}

.demo-qr-grid {
  display: grid;
  width: 64px;
  aspect-ratio: 1;
  grid-template-columns: repeat(3, 1fr);
  gap: 5px;
  padding: 8px;
  border-radius: 8px;
  background: var(--paper);
}

.demo-qr-grid i {
  background: #050505;
}

.demo-shop-tabs span.is-active {
  color: #050505;
  background: var(--goofy-yellow);
}

.demo-product-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.demo-product-grid article {
  min-height: 110px;
  align-content: end;
}

.demo-shop-link {
  min-height: 46px;
  border: 0;
  border-radius: 8px;
}

.demo-tabbar {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-self: end;
  gap: 0;
  min-height: 0;
  max-height: calc(78px + env(safe-area-inset-bottom));
  overflow: hidden;
  padding: 8px 10px max(10px, env(safe-area-inset-bottom));
  border-top: 1px solid rgb(255 255 255 / 9%);
  background: rgb(8 9 13 / 96%);
}

.app-demo-dashboard[data-active-tab="matrimony"] .demo-tabbar {
  display: none !important;
}

.demo-tabbar button {
  display: grid;
  min-height: 56px;
  place-items: center;
  gap: 4px;
  color: rgb(249 244 232 / 55%);
  border-radius: 8px;
  background: transparent;
}

.demo-tabbar button span {
  display: grid;
  width: 28px;
  height: 24px;
  place-items: center;
  color: inherit;
  border-radius: 8px;
  background: rgb(255 255 255 / 7%);
  font-size: 10px;
  font-weight: 950;
  line-height: 1;
}

.demo-tabbar button strong {
  color: inherit;
  font-size: 10px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.demo-tabbar button.is-active {
  color: #050505;
  background: transparent;
}

.demo-tabbar button.is-active span {
  background: var(--goofy-yellow);
}

.demo-tabbar button.is-active strong {
  color: var(--goofy-yellow);
}

.demo-live-card > div:first-child,
.demo-upload-card > div,
.demo-qr-card > div {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.demo-live-card span,
.demo-live-card strong,
.demo-live-card small,
.demo-poll-card span,
.demo-poll-card strong,
.demo-prompt-card span,
.demo-prompt-card strong,
.demo-prompt-card small,
.demo-upload-card span,
.demo-upload-card strong,
.demo-upload-card small,
.demo-row-card span,
.demo-row-card strong,
.demo-show-card span,
.demo-show-card strong,
.demo-show-card small,
.demo-qr-card span,
.demo-qr-card strong,
.demo-qr-card small,
.demo-product-grid span,
.demo-product-grid strong {
  display: block;
}

.demo-tab-panel {
  padding-bottom: 28px;
}

@media (max-width: 720px) {
  .app-demo-preview {
    grid-template-columns: 1fr;
    padding: 28px;
  }

  .app-demo-preview__device {
    display: none;
  }
}

@media (max-width: 520px) {
  .app-demo-shell {
    padding: 0;
  }

  .app-demo {
    width: 100vw;
    height: 100dvh;
    border-width: 0;
    border-radius: 0;
  }

  .app-demo::before {
    display: none;
  }

  .app-demo-header {
    min-height: 64px;
    padding: max(12px, env(safe-area-inset-top)) 14px 10px;
  }

  .app-demo-header h2 {
    margin-top: 2px;
    font-size: 22px;
  }

  .app-demo .close-button {
    width: 34px;
    height: 34px;
    min-height: 34px;
  }

  .app-demo-city {
    gap: 10px;
    padding: 16px 14px max(16px, env(safe-area-inset-bottom));
  }

  .city-radar {
    width: min(132px, 42vw);
    margin-top: 0;
  }

  .app-demo-city h3 {
    font-size: clamp(32px, 9vw, 42px);
    line-height: 0.9;
  }

  .app-demo-city > p:not(.app-demo-kicker) {
    font-size: 14px;
    line-height: 1.2;
  }

  .app-demo-primary {
    width: 100%;
    min-height: 44px;
  }

  .city-shortcuts {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .city-shortcuts button {
    width: 100%;
    min-height: 40px;
    padding: 0 8px;
    font-size: 11px;
  }

  .demo-phone-header {
    padding: max(12px, env(safe-area-inset-top)) 14px 10px;
  }

  .demo-phone-header h3 {
    font-size: 24px;
  }

  .demo-tab-panel {
    gap: 10px;
    padding: 10px 10px 12px;
  }

  .demo-hero {
    min-height: 126px;
    padding: 12px;
  }

  .demo-hero h4,
  .demo-section-head h4 {
    font-size: 22px;
  }

  .demo-stat-row span {
    min-height: 58px;
    padding: 10px;
  }

  .demo-tabbar {
    padding: 6px 8px max(8px, env(safe-area-inset-bottom));
  }

  .demo-tabbar button {
    min-height: 48px;
  }

  .demo-tabbar button strong {
    font-size: 9px;
  }
}

.puzzle-mode {
  overflow: hidden;
  background: #050505;
}

.voice-mode {
  overflow: hidden;
  background: #050505;
}

.puzzle-game {
  min-height: 100dvh;
  color: var(--paper);
  background:
    radial-gradient(circle at 24% 12%, rgb(245 181 27 / 13%), transparent 34%),
    linear-gradient(135deg, rgb(255 255 255 / 5%) 0 1px, transparent 1px 18px),
    #050505;
}

.puzzle-game[hidden] {
  display: none;
}

.voice-lab {
  min-height: 100dvh;
  color: var(--paper);
  background:
    radial-gradient(circle at 72% 14%, rgb(239 71 111 / 16%), transparent 32%),
    radial-gradient(circle at 20% 26%, rgb(245 181 27 / 15%), transparent 34%),
    linear-gradient(135deg, rgb(255 255 255 / 5%) 0 1px, transparent 1px 18px),
    #050505;
}

.voice-lab[hidden] {
  display: none;
}

.puzzle-shell {
  display: grid;
  height: 100dvh;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 14px;
  padding: clamp(12px, 2vw, 22px);
}

.voice-shell {
  display: grid;
  height: 100dvh;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 14px;
  padding: clamp(12px, 2vw, 22px);
}

.puzzle-header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
  padding: 12px clamp(12px, 2vw, 20px);
  border: 1px solid rgb(245 181 27 / 28%);
  border-radius: 8px;
  background: rgb(0 0 0 / 58%);
  box-shadow: 0 20px 70px rgb(0 0 0 / 42%);
}

.puzzle-back-action {
  display: none;
  width: 42px;
  min-width: 42px;
  min-height: 42px;
  padding: 0;
  border-radius: 50%;
}

.puzzle-back-action span {
  display: block;
  translate: -1px -1px;
  font-size: 34px;
  line-height: 1;
}

.puzzle-header:not(.is-playing) {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 42px;
  align-items: center;
  padding-right: clamp(12px, 2vw, 20px);
}

.puzzle-header:not(.is-playing) .puzzle-header-actions {
  position: static;
  grid-column: 3;
  justify-self: end;
}

.voice-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
  padding: 12px clamp(12px, 2vw, 20px);
  border: 1px solid rgb(245 181 27 / 28%);
  border-radius: 8px;
  background: rgb(0 0 0 / 62%);
  box-shadow: 0 20px 70px rgb(0 0 0 / 42%);
}

.puzzle-header-copy {
  display: grid;
  min-width: 0;
  justify-items: center;
  text-align: center;
}

.puzzle-header:not(.is-playing) .puzzle-header-copy {
  grid-column: 2;
  justify-self: center;
}

.puzzle-header.is-playing {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 42px;
  align-items: center;
}

.puzzle-header.is-playing .puzzle-header-copy {
  display: none;
}

.puzzle-header.is-playing .puzzle-back-action {
  display: inline-flex;
}

.puzzle-header.is-playing .puzzle-header-actions {
  justify-self: end;
}

.puzzle-header-metrics {
  display: none;
}

.puzzle-header:not(.is-playing) .puzzle-header-metrics {
  display: none !important;
}

.puzzle-header.is-playing .puzzle-header-metrics {
  display: grid;
  width: min(420px, 100%);
  justify-self: center;
}

.puzzle-close-action {
  width: 42px;
  min-width: 42px;
  min-height: 42px;
  padding: 0;
  border-radius: 50%;
}

.puzzle-close-action span {
  display: block;
  translate: 0 -1px;
  font-size: 31px;
  line-height: 1;
}

.voice-header > div:first-child {
  min-width: 0;
}

.puzzle-kicker,
.puzzle-panel-label,
.voice-kicker,
.voice-panel-label {
  margin: 0;
  color: var(--goofy-yellow);
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.puzzle-header h1 {
  margin: 4px 0 0;
  color: var(--paper);
  font-size: clamp(28px, 4vw, 56px);
  font-weight: 950;
  line-height: 0.92;
  text-transform: uppercase;
}

.voice-header h1 {
  margin: 4px 0 0;
  color: var(--paper);
  font-size: clamp(34px, 5vw, 68px);
  font-weight: 950;
  line-height: 0.88;
  text-transform: uppercase;
}

.puzzle-active-meta {
  max-width: 34rem;
  margin: 0;
  color: rgb(249 244 232 / 68%);
  font-size: 13px;
  font-weight: 850;
  line-height: 1.2;
  text-align: center;
}

.puzzle-setup-instructions {
  width: min(100%, 34rem);
  justify-self: center;
}

.voice-active-meta {
  margin: 7px 0 0;
  color: rgb(249 244 232 / 68%);
  font-size: 13px;
  font-weight: 850;
  line-height: 1.2;
}

.puzzle-header-actions,
.puzzle-builder-actions,
.voice-header-actions,
.voice-stage-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.puzzle-button,
.puzzle-file-button,
.voice-button {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  padding: 0 14px;
  color: #050505;
  cursor: pointer;
  border: 1px solid #050505;
  border-radius: 7px;
  background: var(--goofy-yellow);
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
}

.puzzle-button--ghost {
  color: var(--paper);
  border-color: rgb(245 181 27 / 38%);
  background: rgb(255 255 255 / 7%);
}

.voice-button--ghost {
  color: var(--paper);
  border-color: rgb(245 181 27 / 38%);
  background: rgb(255 255 255 / 7%);
}

.puzzle-button:hover,
.puzzle-file-button:hover,
.puzzle-button:focus-visible,
.puzzle-file-button:focus-visible,
.voice-button:hover,
.voice-button:focus-visible {
  outline: 2px solid rgb(245 181 27 / 56%);
  outline-offset: 2px;
  filter: brightness(1.08);
}

.puzzle-button:disabled {
  cursor: not-allowed;
  opacity: 0.52;
  filter: none;
}

.puzzle-button.puzzle-close-action {
  width: 42px;
  height: 42px;
  min-width: 42px;
  min-height: 42px;
  padding: 0;
  border-radius: 50%;
}

.puzzle-file-button + input,
.puzzle-file-drop + input,
.puzzle-file-label + input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  clip-path: inset(50%);
}

.puzzle-setup {
  display: grid;
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr) auto auto;
  gap: 14px;
  align-items: center;
  justify-items: center;
  padding: clamp(14px, 2.4vw, 24px);
  border: 1px solid rgb(245 181 27 / 24%);
  border-radius: 8px;
  background:
    radial-gradient(circle at 50% 34%, rgb(245 181 27 / 10%), transparent 44%),
    rgb(0 0 0 / 58%);
  box-shadow: 0 22px 70px rgb(0 0 0 / 34%);
}

.puzzle-setup[hidden] {
  display: none;
}

.puzzle-setup-copy {
  display: grid;
  gap: 8px;
  justify-items: center;
  text-align: center;
}

.puzzle-setup-copy h2 {
  margin: 0;
  color: var(--paper);
  font-size: clamp(36px, 5vw, 76px);
  font-weight: 950;
  line-height: 0.9;
  text-transform: uppercase;
}

.puzzle-setup-preview {
  display: grid;
  min-height: 0;
  max-height: 100%;
  align-content: center;
  place-items: center;
  place-self: center;
  justify-self: center;
  width: min(100%, max(220px, calc((100dvh - 360px) * var(--puzzle-aspect, 0.72))));
  max-width: 780px;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 10px;
  margin: 0;
  padding: 12px;
  border: 1px solid rgb(245 181 27 / 28%);
  border-radius: 8px;
  background: rgb(255 255 255 / 6%);
}

.puzzle-setup-preview figcaption {
  display: grid;
  gap: 4px;
  min-width: 0;
  text-align: center;
}

.puzzle-completed-board {
  position: relative;
  display: grid;
  align-self: center;
  justify-self: center;
  width: min(100%, calc((100dvh - 430px) * var(--puzzle-aspect, 0.72)));
  min-width: 0;
  max-width: 100%;
  max-height: calc(100dvh - 430px);
  aspect-ratio: var(--puzzle-aspect, 0.72);
  grid-template-columns: repeat(var(--puzzle-cols, 10), minmax(0, 1fr));
  grid-template-rows: repeat(var(--puzzle-rows, 10), minmax(0, 1fr));
  border: 2px solid rgb(245 181 27 / 62%);
  border-radius: 8px;
  background:
    radial-gradient(circle at 50% 38%, rgb(245 181 27 / 8%), transparent 42%),
    rgb(255 255 255 / 5%);
  box-shadow:
    inset 0 0 0 1px rgb(0 0 0 / 72%),
    0 22px 70px rgb(0 0 0 / 52%);
  pointer-events: none;
}

.puzzle-completed-board .puzzle-slot {
  cursor: default;
}

.puzzle-setup-preview span {
  color: var(--goofy-yellow);
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.puzzle-setup-preview strong {
  color: var(--paper);
  font-size: 14px;
  font-weight: 950;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.puzzle-setup-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 220px));
  gap: 10px;
  justify-content: center;
}

.puzzle-layout {
  display: grid;
  min-height: 0;
  grid-template-columns: minmax(420px, 1fr) minmax(280px, 0.34fr);
  gap: 14px;
}

.voice-layout {
  display: grid;
  min-height: 0;
  grid-template-columns: minmax(280px, 0.82fr) minmax(360px, 1.2fr) minmax(270px, 0.8fr);
  gap: 14px;
}

.voice-panel,
.voice-stage {
  min-height: 0;
  border: 1px solid rgb(245 181 27 / 24%);
  border-radius: 8px;
  background: rgb(0 0 0 / 62%);
  box-shadow: 0 22px 70px rgb(0 0 0 / 34%);
}

.voice-panel {
  display: grid;
  align-content: start;
  gap: 14px;
  overflow: auto;
  padding: 16px;
  scrollbar-color: rgb(245 181 27 / 72%) rgb(255 255 255 / 8%);
}

.voice-panel h2,
.voice-preset-card h2 {
  margin: 0;
  color: var(--paper);
  font-size: clamp(28px, 3vw, 46px);
  font-weight: 950;
  line-height: 0.92;
  text-transform: uppercase;
}

.voice-mode-toggle,
.voice-audience-options {
  display: grid;
  gap: 8px;
}

.voice-mode-toggle {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.voice-mode-toggle label,
.voice-audience-options label {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 9px;
  align-items: center;
  min-height: 42px;
  padding: 10px;
  color: rgb(249 244 232 / 78%);
  cursor: pointer;
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 7px;
  background: rgb(255 255 255 / 5%);
  font-size: 12px;
  font-weight: 920;
  line-height: 1.08;
}

.voice-mode-toggle input,
.voice-audience-options input {
  accent-color: var(--goofy-yellow);
}

.voice-mode-toggle label:has(input:checked),
.voice-audience-options label:has(input:checked) {
  color: var(--paper);
  border-color: rgb(245 181 27 / 54%);
  background: rgb(245 181 27 / 11%);
}

.voice-field {
  display: grid;
  gap: 7px;
}

.voice-field span {
  color: var(--goofy-yellow);
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.voice-field input {
  width: 100%;
  min-height: 42px;
  padding: 0 12px;
  color: var(--paper);
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 7px;
  background: rgb(0 0 0 / 36%);
  font: inherit;
  font-size: 14px;
  font-weight: 850;
}

.voice-field input:disabled {
  cursor: not-allowed;
  opacity: 0.48;
}

.voice-field input:focus-visible {
  outline: 2px solid rgb(245 181 27 / 62%);
  outline-offset: 2px;
}

.voice-record-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(82px, auto) auto;
  gap: 8px;
  align-items: center;
}

.voice-record-button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  color: #050505;
  cursor: pointer;
  border: 0;
  border-radius: 7px;
  background: #ef476f;
  font-size: 13px;
  font-weight: 950;
  text-transform: uppercase;
}

.voice-record-button:disabled,
.voice-button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.voice-timer {
  color: var(--goofy-yellow);
  font-variant-numeric: tabular-nums;
  font-size: 18px;
  font-weight: 950;
  line-height: 1;
}

.voice-status {
  margin: 0;
  color: rgb(249 244 232 / 70%);
  font-size: 13px;
  font-weight: 820;
  line-height: 1.25;
}

.voice-stage {
  display: grid;
  min-width: 0;
  grid-template-rows: minmax(160px, 1fr) auto auto auto auto;
  gap: 14px;
  overflow: auto;
  padding: clamp(14px, 2vw, 22px);
  background:
    linear-gradient(90deg, rgb(245 181 27 / 8%) 1px, transparent 1px),
    linear-gradient(180deg, rgb(255 255 255 / 5%) 1px, transparent 1px),
    rgb(0 0 0 / 64%);
  background-size: 34px 34px;
  scrollbar-color: rgb(245 181 27 / 72%) rgb(255 255 255 / 8%);
}

.voice-waveform {
  display: flex;
  min-height: 190px;
  align-items: center;
  justify-content: center;
  gap: min(1vw, 10px);
  padding: 18px;
  overflow: hidden;
  border: 1px solid rgb(245 181 27 / 26%);
  border-radius: 8px;
  background:
    radial-gradient(circle at 50% 50%, rgb(239 71 111 / 18%), transparent 40%),
    rgb(255 255 255 / 5%);
}

.voice-waveform span {
  display: block;
  width: clamp(6px, 1vw, 12px);
  height: calc(22px + (var(--bar-index, 1) * 7px));
  border-radius: 999px;
  background: linear-gradient(180deg, #ef476f, var(--goofy-yellow));
  opacity: 0.72;
  transform-origin: center;
}

.voice-waveform span:nth-child(1) { --bar-index: 2; }
.voice-waveform span:nth-child(2) { --bar-index: 5; }
.voice-waveform span:nth-child(3) { --bar-index: 9; }
.voice-waveform span:nth-child(4) { --bar-index: 4; }
.voice-waveform span:nth-child(5) { --bar-index: 11; }
.voice-waveform span:nth-child(6) { --bar-index: 7; }
.voice-waveform span:nth-child(7) { --bar-index: 13; }
.voice-waveform span:nth-child(8) { --bar-index: 6; }
.voice-waveform span:nth-child(9) { --bar-index: 15; }
.voice-waveform span:nth-child(10) { --bar-index: 8; }
.voice-waveform span:nth-child(11) { --bar-index: 14; }
.voice-waveform span:nth-child(12) { --bar-index: 6; }
.voice-waveform span:nth-child(13) { --bar-index: 12; }
.voice-waveform span:nth-child(14) { --bar-index: 5; }
.voice-waveform span:nth-child(15) { --bar-index: 10; }
.voice-waveform span:nth-child(16) { --bar-index: 4; }
.voice-waveform span:nth-child(17) { --bar-index: 8; }
.voice-waveform span:nth-child(18) { --bar-index: 3; }
.voice-waveform span:nth-child(19) { --bar-index: 6; }
.voice-waveform span:nth-child(20) { --bar-index: 2; }

.voice-waveform.is-recording span {
  animation: voicePulse 760ms ease-in-out infinite alternate;
}

.voice-waveform.is-recording span:nth-child(2n) {
  animation-delay: 110ms;
}

.voice-waveform.is-recording span:nth-child(3n) {
  animation-delay: 220ms;
}

@keyframes voicePulse {
  from {
    scale: 1 0.36;
    opacity: 0.44;
  }

  to {
    scale: 1 1.18;
    opacity: 1;
  }
}

.voice-player {
  width: 100%;
  accent-color: var(--goofy-yellow);
}

.voice-presets {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.voice-presets button {
  min-height: 54px;
  padding: 8px;
  color: rgb(249 244 232 / 76%);
  cursor: pointer;
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 7px;
  background: rgb(255 255 255 / 6%);
  font-size: 11px;
  font-weight: 950;
  line-height: 1.08;
  text-transform: uppercase;
}

.voice-presets button:hover,
.voice-presets button:focus-visible,
.voice-presets button.is-active {
  color: #050505;
  border-color: var(--goofy-yellow);
  background: var(--goofy-yellow);
}

.voice-tune-controls {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  padding: 12px;
  border: 1px solid rgb(245 181 27 / 20%);
  border-radius: 8px;
  background: rgb(255 255 255 / 5%);
}

.voice-field select {
  width: 100%;
  min-height: 42px;
  padding: 0 34px 0 12px;
  color: var(--paper);
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 7px;
  background:
    linear-gradient(45deg, transparent 50%, var(--goofy-yellow) 50%) calc(100% - 17px) 17px / 6px 6px no-repeat,
    linear-gradient(135deg, var(--goofy-yellow) 50%, transparent 50%) calc(100% - 12px) 17px / 6px 6px no-repeat,
    rgb(0 0 0 / 36%);
  font: inherit;
  font-size: 13px;
  font-weight: 900;
  appearance: none;
}

.voice-field select:focus-visible {
  outline: 2px solid rgb(245 181 27 / 62%);
  outline-offset: 2px;
}

.voice-range-field {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.voice-range-field span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: var(--goofy-yellow);
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.voice-range-field strong {
  color: var(--paper);
  font-variant-numeric: tabular-nums;
}

.voice-range-field input {
  width: 100%;
  accent-color: var(--goofy-yellow);
}

.voice-preset-card {
  display: grid;
  gap: 8px;
  padding: 16px;
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 8px;
  background: rgb(255 255 255 / 6%);
}

.voice-preset-card p:not(.voice-panel-label) {
  margin: 0;
  color: rgb(249 244 232 / 70%);
  font-size: 14px;
  font-weight: 780;
  line-height: 1.3;
}

.voice-stage-actions {
  justify-content: stretch;
}

.voice-stage-actions > * {
  flex: 1 1 0;
}

.voice-clip-list {
  display: grid;
  gap: 10px;
}

.voice-clip-empty {
  margin: 0;
  color: rgb(249 244 232 / 58%);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.25;
}

.voice-clip-item {
  display: grid;
  gap: 10px;
  padding: 11px;
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 8px;
  background: rgb(255 255 255 / 6%);
}

.voice-clip-item div:first-child {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.voice-clip-item strong,
.voice-clip-item span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.voice-clip-item strong {
  color: var(--paper);
  font-size: 14px;
  font-weight: 950;
}

.voice-clip-item span {
  color: rgb(249 244 232 / 58%);
  font-size: 11px;
  font-weight: 830;
}

.voice-clip-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.voice-clip-actions button {
  min-height: 34px;
  color: #050505;
  cursor: pointer;
  border: 0;
  border-radius: 6px;
  background: var(--goofy-yellow);
  font-size: 10px;
  font-weight: 950;
  text-transform: uppercase;
}

.puzzle-sidebar,
.puzzle-tray-panel {
  display: grid;
  min-height: 0;
  gap: 12px;
}

.puzzle-sidebar {
  align-content: start;
  overflow: auto;
  padding-right: 2px;
  scrollbar-color: rgb(245 181 27 / 72%) rgb(255 255 255 / 8%);
}

.puzzle-panel,
.puzzle-tray-panel,
.puzzle-stage {
  border: 1px solid rgb(245 181 27 / 24%);
  border-radius: 8px;
  background: rgb(0 0 0 / 58%);
  box-shadow: 0 22px 70px rgb(0 0 0 / 34%);
}

.puzzle-panel {
  display: grid;
  gap: 12px;
  padding: 16px;
}

.puzzle-builder-panel {
  gap: 14px;
}

.puzzle-panel h2 {
  margin: 0;
  color: var(--paper);
  font-size: clamp(24px, 2.8vw, 40px);
  font-weight: 950;
  line-height: 0.96;
  text-transform: uppercase;
}

.puzzle-panel p:not(.puzzle-panel-label),
.puzzle-tray-header p:not(.puzzle-panel-label) {
  margin: 0;
  color: rgb(249 244 232 / 72%);
  font-size: 14px;
  font-weight: 740;
  line-height: 1.35;
}

.puzzle-flow-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.puzzle-flow-steps li {
  min-width: 0;
}

.puzzle-flow-steps button {
  display: grid;
  width: 100%;
  min-height: 34px;
  place-items: center;
  color: rgb(249 244 232 / 58%);
  cursor: pointer;
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 7px;
  background: rgb(255 255 255 / 5%);
  font-size: 10px;
  font-weight: 950;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
}

.puzzle-flow-steps li.is-complete button {
  color: rgb(249 244 232 / 86%);
  border-color: rgb(41 211 165 / 28%);
  background: rgb(41 211 165 / 10%);
}

.puzzle-flow-steps li.is-active button {
  color: #050505;
  border-color: var(--goofy-yellow);
  background: var(--goofy-yellow);
}

.puzzle-flow-steps button:hover,
.puzzle-flow-steps button:focus-visible {
  outline: 2px solid rgb(245 181 27 / 56%);
  outline-offset: 2px;
}

.puzzle-step-panels {
  display: grid;
  min-height: 0;
}

.puzzle-step-panel {
  display: grid;
  gap: 12px;
  min-height: 0;
}

.puzzle-step-panel[hidden] {
  display: none;
}

.puzzle-source-preview {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  margin: 0;
  padding: 8px;
  border: 1px solid rgb(245 181 27 / 24%);
  border-radius: 8px;
  background: rgb(255 255 255 / 6%);
}

.puzzle-source-preview img {
  display: block;
  width: 58px;
  aspect-ratio: var(--puzzle-aspect, 0.72);
  object-fit: contain;
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 7px;
  background: #050505;
}

.puzzle-source-preview figcaption {
  display: grid;
  gap: 4px;
}

.puzzle-source-preview span {
  color: var(--goofy-yellow);
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.puzzle-source-preview strong {
  color: var(--paper);
  font-size: 13px;
  font-weight: 950;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.puzzle-file-label {
  width: 100%;
}

.puzzle-field {
  display: grid;
  gap: 7px;
}

.puzzle-field span,
.puzzle-file-drop span {
  color: var(--goofy-yellow);
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.puzzle-field input {
  width: 100%;
  min-height: 42px;
  padding: 0 12px;
  color: var(--paper);
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 7px;
  background: rgb(0 0 0 / 36%);
  font: inherit;
  font-size: 14px;
  font-weight: 850;
}

.puzzle-field input:disabled {
  cursor: not-allowed;
  opacity: 0.48;
}

.puzzle-field input:focus-visible {
  outline: 2px solid rgb(245 181 27 / 62%);
  outline-offset: 2px;
}

.puzzle-file-drop {
  display: grid;
  gap: 7px;
  min-height: 92px;
  align-content: center;
  padding: 13px;
  cursor: pointer;
  border: 1px dashed rgb(245 181 27 / 48%);
  border-radius: 8px;
  background: rgb(245 181 27 / 8%);
}

.puzzle-file-drop strong,
.puzzle-file-drop small {
  display: block;
}

.puzzle-file-drop strong {
  color: var(--paper);
  font-size: 15px;
  font-weight: 950;
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.puzzle-file-drop small {
  color: rgb(249 244 232 / 62%);
  font-size: 12px;
  font-weight: 760;
  line-height: 1.2;
}

.puzzle-file-drop:hover,
.puzzle-file-drop:focus-within {
  border-color: var(--goofy-yellow);
  background: rgb(245 181 27 / 13%);
}

.puzzle-builder-actions {
  justify-content: stretch;
}

.puzzle-builder-actions > * {
  flex: 1 1 92px;
}

.puzzle-audience-options {
  display: grid;
  gap: 8px;
}

.puzzle-audience-options label {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-height: 42px;
  padding: 10px;
  color: rgb(249 244 232 / 78%);
  cursor: pointer;
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 7px;
  background: rgb(255 255 255 / 5%);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.1;
}

.puzzle-audience-options input {
  accent-color: var(--goofy-yellow);
}

.puzzle-audience-options label:has(input:checked) {
  color: var(--paper);
  border-color: rgb(245 181 27 / 52%);
  background: rgb(245 181 27 / 11%);
}

.puzzle-audience-modal-body {
  display: grid;
  gap: 14px;
}

.puzzle-modal-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.puzzle-button--publish {
  width: 100%;
}

.puzzle-publish-status {
  margin: 0;
  color: rgb(249 244 232 / 70%);
  font-size: 13px;
  font-weight: 820;
  line-height: 1.25;
}

.puzzle-published-list {
  display: grid;
  gap: 8px;
  max-height: min(260px, 30dvh);
  overflow: auto;
  padding-right: 2px;
  scrollbar-color: rgb(245 181 27 / 72%) rgb(255 255 255 / 8%);
}

.puzzle-published-empty {
  margin: 0;
  color: rgb(249 244 232 / 58%);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.25;
}

.puzzle-published-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px;
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 7px;
  background: rgb(255 255 255 / 5%);
}

.puzzle-published-item div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.puzzle-published-item strong,
.puzzle-published-item span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.puzzle-published-item strong {
  color: var(--paper);
  font-size: 13px;
  font-weight: 950;
  line-height: 1.1;
}

.puzzle-published-item span {
  color: rgb(249 244 232 / 58%);
  font-size: 11px;
  font-weight: 820;
  line-height: 1.1;
}

.puzzle-mini-button {
  min-height: 32px;
  padding: 0 10px;
  color: #050505;
  cursor: pointer;
  border: 0;
  border-radius: 6px;
  background: var(--goofy-yellow);
  font-size: 11px;
  font-weight: 950;
  text-transform: uppercase;
}

.puzzle-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.puzzle-metrics span {
  display: grid;
  gap: 4px;
  min-height: 62px;
  align-content: center;
  padding: 10px;
  color: rgb(249 244 232 / 72%);
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 7px;
  background: rgb(255 255 255 / 6%);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.puzzle-metrics strong {
  color: var(--goofy-yellow);
  font-size: 26px;
  font-weight: 950;
  line-height: 0.9;
}

.puzzle-stage {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 0;
  overflow: auto;
  place-items: center;
  padding: clamp(12px, 2vw, 20px);
  background:
    radial-gradient(circle at 50% 36%, rgb(245 181 27 / 10%), transparent 42%),
    rgb(0 0 0 / 62%);
  scrollbar-color: rgb(245 181 27 / 72%) rgb(255 255 255 / 8%);
}

.puzzle-board-wrap {
  position: relative;
  display: grid;
  width: min(100%, calc((100dvh - 250px) * var(--puzzle-aspect, 0.72)));
  height: min(100%, calc(100dvh - 250px));
  place-items: center;
  padding: clamp(10px, 1.8vw, 18px);
}

.puzzle-board {
  position: relative;
  display: grid;
  width: 100%;
  aspect-ratio: var(--puzzle-aspect, 0.72);
  grid-template-columns: repeat(var(--puzzle-cols, 10), minmax(0, 1fr));
  grid-template-rows: repeat(var(--puzzle-rows, 10), minmax(0, 1fr));
  border: 2px solid rgb(245 181 27 / 62%);
  border-radius: 8px;
  background: rgb(255 255 255 / 5%);
  box-shadow:
    inset 0 0 0 1px rgb(0 0 0 / 72%),
    0 28px 90px rgb(0 0 0 / 58%);
}

.puzzle-slot {
  position: relative;
  min-width: 0;
  min-height: 0;
  padding: 0;
  overflow: visible;
  cursor: pointer;
  border: 1px solid transparent;
  background: transparent;
}

.puzzle-slot:not(.is-static):hover,
.puzzle-slot:not(.is-static):focus-visible {
  z-index: 6;
  outline: 2px solid rgb(245 181 27 / 72%);
  outline-offset: -2px;
  background: rgb(245 181 27 / 6%);
}

.puzzle-slot.is-target::before {
  position: absolute;
  inset: 1px;
  z-index: 2;
  border: 2px solid var(--goofy-yellow);
  border-radius: 6px;
  background: rgb(245 181 27 / 18%);
  content: "";
  pointer-events: none;
  box-shadow:
    inset 0 0 0 1px rgb(0 0 0 / 60%),
    0 0 18px rgb(245 181 27 / 62%);
}

.puzzle-slot.is-static {
  cursor: default;
}

.puzzle-slot.is-filled {
  border-color: transparent;
  background: transparent;
}

.puzzle-slot.is-locked-corner::after {
  position: absolute;
  right: 2px;
  bottom: 2px;
  z-index: 8;
  display: grid;
  width: 9px;
  aspect-ratio: 1;
  place-items: center;
  color: #050505;
  border-radius: 50%;
  background: var(--goofy-yellow);
  content: "";
  box-shadow: 0 0 0 2px rgb(0 0 0 / 54%);
}

.puzzle-slot.is-locked-corner {
  z-index: 5;
}

.puzzle-slot.is-locked-corner .puzzle-piece-image {
  filter:
    drop-shadow(0 8px 10px rgb(0 0 0 / 46%))
    drop-shadow(0 0 8px rgb(245 181 27 / 42%));
}

.puzzle-piece-image {
  display: block;
  max-width: 100%;
  height: auto;
  user-select: none;
  pointer-events: none;
}

.puzzle-slot .puzzle-piece-image {
  position: absolute;
  z-index: 4;
  left: calc(0px - var(--puzzle-overhang-x, 18%));
  top: calc(0px - var(--puzzle-overhang-y, 13%));
  width: calc(100% + var(--puzzle-overhang-x, 18%) + var(--puzzle-overhang-x, 18%));
  max-width: none;
  height: calc(100% + var(--puzzle-overhang-y, 13%) + var(--puzzle-overhang-y, 13%));
  object-fit: fill;
  filter: drop-shadow(0 8px 10px rgb(0 0 0 / 46%));
}

.puzzle-tray-panel {
  grid-template-rows: auto minmax(0, 1fr);
  min-width: 0;
  padding: 14px;
}

.puzzle-tray-header {
  display: grid;
  gap: 8px;
}

.puzzle-tray {
  display: grid;
  min-height: 0;
  align-content: start;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  overflow: auto;
  padding: 3px;
  scrollbar-color: rgb(245 181 27 / 72%) rgb(255 255 255 / 8%);
}

.puzzle-tray-piece {
  display: grid;
  min-width: 0;
  min-height: 82px;
  place-items: center;
  padding: 7px;
  overflow: visible;
  cursor: grab;
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 8px;
  background:
    radial-gradient(circle at 50% 35%, rgb(245 181 27 / 13%), transparent 42%),
    rgb(255 255 255 / 6%);
}

.puzzle-tray-piece:active {
  cursor: grabbing;
}

.puzzle-tray-piece:hover,
.puzzle-tray-piece:focus-visible,
.puzzle-tray-piece.is-selected {
  z-index: 3;
  outline: 2px solid rgb(245 181 27 / 72%);
  outline-offset: 2px;
  border-color: rgb(245 181 27 / 54%);
  background: rgb(245 181 27 / 12%);
}

.puzzle-tray-piece .puzzle-piece-image {
  width: min(100%, 74px);
  max-height: 78px;
  object-fit: contain;
  filter: drop-shadow(0 12px 16px rgb(0 0 0 / 56%));
}

.puzzle-tray-empty {
  margin: 0;
  padding: 18px;
  color: rgb(249 244 232 / 68%);
  border: 1px dashed rgb(255 255 255 / 18%);
  border-radius: 8px;
  background: rgb(255 255 255 / 5%);
  font-size: 13px;
  font-weight: 850;
  line-height: 1.25;
  text-align: center;
}

.karaoke-mode {
  overflow: hidden;
  background: #050505;
}

.karaoke-lab {
  min-height: 100dvh;
  color: var(--paper);
  background:
    radial-gradient(circle at 78% 13%, rgb(36 214 200 / 16%), transparent 32%),
    radial-gradient(circle at 18% 22%, rgb(239 71 111 / 14%), transparent 30%),
    linear-gradient(135deg, rgb(255 255 255 / 5%) 0 1px, transparent 1px 18px),
    #050505;
}

.karaoke-lab[hidden] {
  display: none;
}

.karaoke-shell {
  display: grid;
  height: 100dvh;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 14px;
  padding: clamp(12px, 2vw, 22px);
}

.karaoke-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
  padding: 12px clamp(12px, 2vw, 20px);
  border: 1px solid rgb(36 214 200 / 30%);
  border-radius: 8px;
  background: rgb(0 0 0 / 64%);
  box-shadow: 0 20px 70px rgb(0 0 0 / 42%);
}

.karaoke-header > div:first-child {
  min-width: 0;
}

.karaoke-kicker,
.karaoke-panel-label {
  margin: 0;
  color: #24d6c8;
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.karaoke-header h1 {
  margin: 4px 0 0;
  color: var(--paper);
  font-size: 54px;
  font-weight: 950;
  line-height: 0.9;
  text-transform: uppercase;
}

.karaoke-active-meta {
  margin: 7px 0 0;
  color: rgb(249 244 232 / 70%);
  font-size: 13px;
  font-weight: 850;
  line-height: 1.2;
}

.karaoke-header-actions,
.karaoke-player-actions,
.karaoke-editor-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.karaoke-button {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  padding: 0 14px;
  color: #050505;
  cursor: pointer;
  border: 1px solid #050505;
  border-radius: 7px;
  background: var(--goofy-yellow);
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
}

.karaoke-button--ghost {
  color: var(--paper);
  border-color: rgb(255 255 255 / 22%);
  background: rgb(255 255 255 / 9%);
}

.karaoke-button--publish {
  background: #24d6c8;
}

.karaoke-button:hover,
.karaoke-button:focus-visible {
  border-color: rgb(255 255 255 / 58%);
  outline: none;
  transform: translateY(-1px);
}

.karaoke-layout {
  display: grid;
  min-height: 0;
  grid-template-columns: minmax(225px, 18%) minmax(0, 1fr) minmax(250px, 21%);
  gap: 12px;
}

.karaoke-panel,
.karaoke-player-card,
.karaoke-editor-card {
  min-width: 0;
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 8px;
  background: rgb(0 0 0 / 64%);
  box-shadow: 0 18px 58px rgb(0 0 0 / 32%);
}

.karaoke-panel {
  display: grid;
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 10px;
  padding: 12px;
}

.karaoke-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.karaoke-panel-head strong {
  color: rgb(249 244 232 / 70%);
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
}

.karaoke-song-list,
.karaoke-published-list {
  display: grid;
  align-content: start;
  gap: 8px;
  min-height: 0;
  overflow: auto;
  scrollbar-color: rgb(36 214 200 / 72%) rgb(255 255 255 / 8%);
}

.karaoke-song-item,
.karaoke-published-item {
  display: grid;
  gap: 5px;
  width: 100%;
  min-width: 0;
  padding: 11px;
  color: var(--paper);
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 7px;
  background: rgb(255 255 255 / 6%);
  text-align: left;
}

.karaoke-song-item {
  cursor: pointer;
}

.karaoke-song-item:hover,
.karaoke-song-item:focus-visible,
.karaoke-song-item.is-active {
  border-color: rgb(36 214 200 / 72%);
  outline: none;
  background: rgb(36 214 200 / 11%);
}

.karaoke-song-item strong,
.karaoke-published-item strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 14px;
  font-weight: 950;
  line-height: 1.1;
}

.karaoke-song-item span,
.karaoke-song-item small,
.karaoke-published-item span {
  min-width: 0;
  color: rgb(249 244 232 / 62%);
  overflow-wrap: anywhere;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
}

.karaoke-stage {
  display: grid;
  min-height: 0;
  grid-template-rows: minmax(0, 1fr) minmax(245px, 34%);
  gap: 12px;
}

.karaoke-player-card {
  display: grid;
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr) auto auto auto auto;
  gap: 10px;
  padding: 14px;
}

.karaoke-now {
  display: grid;
  gap: 5px;
}

.karaoke-now h2 {
  margin: 0;
  color: var(--paper);
  font-size: 28px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.karaoke-now span {
  color: rgb(249 244 232 / 65%);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
}

.karaoke-file-drop {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 3px;
  padding: 9px 11px;
  color: var(--paper);
  cursor: pointer;
  border: 1px dashed rgb(36 214 200 / 42%);
  border-radius: 7px;
  background: rgb(36 214 200 / 7%);
}

.karaoke-file-drop span {
  color: #24d6c8;
  font-size: 10px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.karaoke-file-drop strong,
.karaoke-file-drop small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.karaoke-file-drop strong {
  font-size: 13px;
  font-weight: 950;
  line-height: 1.1;
}

.karaoke-file-drop small {
  color: rgb(249 244 232 / 62%);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.1;
}

.karaoke-file-drop:hover,
.karaoke-file-drop:focus-within {
  border-color: rgb(36 214 200 / 72%);
  background: rgb(36 214 200 / 12%);
}

.karaoke-file-drop + input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.karaoke-screen {
  display: grid;
  min-height: 0;
  overflow: hidden;
  place-items: center;
  padding: 18px;
  border: 1px solid rgb(245 181 27 / 28%);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgb(245 181 27 / 9%), transparent 42%),
    #030303;
}

.karaoke-lyric-stack {
  display: grid;
  align-content: center;
  gap: 8px;
  width: 100%;
  max-width: 880px;
  min-height: 100%;
}

.karaoke-lyric {
  margin: 0;
  color: rgb(249 244 232 / 26%);
  font-size: 19px;
  font-weight: 850;
  line-height: 1.12;
  overflow-wrap: anywhere;
  text-align: center;
  transition: color 160ms ease, font-size 160ms ease, opacity 160ms ease, transform 160ms ease;
}

.karaoke-lyric.is-past {
  opacity: 0.45;
}

.karaoke-lyric.is-next {
  color: rgb(249 244 232 / 56%);
}

.karaoke-lyric.is-active {
  color: var(--goofy-yellow);
  font-size: 36px;
  font-weight: 950;
  line-height: 1;
  opacity: 1;
  text-shadow: 0 4px 24px rgb(245 181 27 / 30%);
  transform: scale(1.01);
}

.karaoke-progress {
  width: 100%;
  height: 24px;
  margin: 0;
  cursor: pointer;
  border: 0;
  background: transparent;
  appearance: none;
  -webkit-appearance: none;
}

.karaoke-progress:focus-visible {
  outline: 2px solid rgb(36 214 200 / 62%);
  outline-offset: 3px;
}

.karaoke-progress::-webkit-slider-runnable-track {
  height: 8px;
  border-radius: 999px;
  background:
    linear-gradient(90deg, var(--goofy-yellow) var(--karaoke-progress-percent, 0%), rgb(255 255 255 / 12%) 0);
}

.karaoke-progress::-webkit-slider-thumb {
  width: 20px;
  height: 20px;
  margin-top: -6px;
  border: 3px solid #050505;
  border-radius: 50%;
  background: #24d6c8;
  box-shadow: 0 0 0 2px rgb(255 255 255 / 18%);
  appearance: none;
  -webkit-appearance: none;
}

.karaoke-progress::-moz-range-track {
  height: 8px;
  border-radius: 999px;
  background: rgb(255 255 255 / 12%);
}

.karaoke-progress::-moz-range-progress {
  height: 8px;
  border-radius: 999px;
  background: var(--goofy-yellow);
}

.karaoke-progress::-moz-range-thumb {
  width: 16px;
  height: 16px;
  border: 3px solid #050505;
  border-radius: 50%;
  background: #24d6c8;
}

.karaoke-time-row {
  display: flex;
  justify-content: space-between;
  color: rgb(249 244 232 / 66%);
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
}

.karaoke-status,
.karaoke-published-empty {
  margin: 0;
  color: rgb(249 244 232 / 68%);
  font-size: 13px;
  font-weight: 850;
  line-height: 1.25;
}

.karaoke-editor-card {
  display: grid;
  min-height: 0;
  grid-template-rows: minmax(0, 1fr) auto auto;
  gap: 10px;
  padding: 12px;
}

.karaoke-field {
  display: grid;
  min-width: 0;
  gap: 7px;
}

.karaoke-field span {
  color: rgb(249 244 232 / 72%);
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.karaoke-field input,
.karaoke-field textarea {
  width: 100%;
  min-width: 0;
  color: var(--paper);
  border: 1px solid rgb(255 255 255 / 16%);
  border-radius: 7px;
  background: rgb(255 255 255 / 7%);
  font: inherit;
  font-size: 13px;
  font-weight: 780;
  line-height: 1.28;
}

.karaoke-field input {
  min-height: 40px;
  padding: 0 12px;
}

.karaoke-field input:disabled {
  color: rgb(249 244 232 / 38%);
  background: rgb(255 255 255 / 4%);
}

.karaoke-field textarea {
  min-height: 100%;
  padding: 12px;
  resize: none;
}

.karaoke-field input:focus-visible,
.karaoke-field textarea:focus-visible {
  border-color: rgb(36 214 200 / 72%);
  outline: 2px solid rgb(36 214 200 / 28%);
  outline-offset: 2px;
}

.karaoke-editor-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(170px, 0.8fr);
  gap: 10px;
}

.karaoke-scope-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}

.karaoke-scope-options label {
  display: grid;
  min-height: 40px;
  place-items: center;
  padding: 0 8px;
  color: rgb(249 244 232 / 72%);
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 7px;
  background: rgb(255 255 255 / 6%);
  font-size: 10px;
  font-weight: 950;
  line-height: 1.05;
  text-align: center;
  text-transform: uppercase;
}

.karaoke-scope-options input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.karaoke-scope-options label:has(input:checked) {
  color: #050505;
  border-color: #24d6c8;
  background: #24d6c8;
}

.karaoke-editor-actions {
  justify-content: stretch;
}

.karaoke-editor-actions > * {
  flex: 1 1 0;
}

.karaoke-published-item {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.karaoke-published-item div {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.karaoke-published-item button {
  min-height: 34px;
  padding: 0 10px;
  color: #050505;
  cursor: pointer;
  border: 1px solid #050505;
  border-radius: 6px;
  background: #24d6c8;
  font-size: 11px;
  font-weight: 950;
  text-transform: uppercase;
}

.karaoke-simple {
  display: grid;
  min-height: 0;
  grid-template-rows: auto auto auto;
  gap: 12px;
}

.karaoke-mode {
  overflow: auto;
}

.karaoke-lab {
  overflow: auto;
}

.karaoke-shell {
  height: auto;
  min-height: 100dvh;
}

.karaoke-control-row {
  display: grid;
  align-items: end;
  grid-template-columns: minmax(210px, 280px) minmax(0, 1fr) auto;
  gap: 12px;
  padding: 12px;
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 8px;
  background: rgb(0 0 0 / 64%);
}

.karaoke-track-count {
  align-self: center;
  color: rgb(249 244 232 / 68%);
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.karaoke-field select {
  width: 100%;
  min-height: 42px;
  min-width: 0;
  padding: 0 12px;
  color: var(--paper);
  border: 1px solid rgb(36 214 200 / 42%);
  border-radius: 7px;
  background: rgb(255 255 255 / 8%);
  font: inherit;
  font-size: 14px;
  font-weight: 900;
}

.karaoke-player-card--simple {
  grid-template-rows: minmax(0, 1fr) auto auto auto auto;
  min-height: 320px;
}

.karaoke-player-card--simple .karaoke-screen {
  min-height: 210px;
}

.karaoke-workflow {
  display: grid;
  min-height: 260px;
  grid-template-columns: minmax(250px, 0.86fr) minmax(0, 1.2fr) minmax(235px, 0.72fr);
  gap: 12px;
}

.karaoke-line-editor-card {
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.karaoke-line-editor-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.karaoke-line-editor-head strong {
  color: var(--goofy-yellow);
  font-size: 13px;
  font-weight: 950;
  line-height: 1;
}

.karaoke-current-line-field textarea {
  min-height: 100%;
  font-size: 18px;
  font-weight: 900;
  line-height: 1.18;
}

.karaoke-line-list-panel,
.karaoke-publish-panel {
  min-height: 0;
}

.karaoke-line-list-panel {
  max-height: 360px;
}

.karaoke-line-list {
  display: grid;
  align-content: start;
  gap: 7px;
  min-height: 0;
  max-height: 295px;
  overflow: auto;
  padding-right: 2px;
  scrollbar-color: rgb(36 214 200 / 72%) rgb(255 255 255 / 8%);
}

.karaoke-line-item {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 9px;
  align-items: center;
  width: 100%;
  min-width: 0;
  padding: 9px;
  color: var(--paper);
  cursor: pointer;
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 7px;
  background: rgb(255 255 255 / 6%);
  text-align: left;
}

.karaoke-line-item:hover,
.karaoke-line-item:focus-visible,
.karaoke-line-item.is-selected {
  border-color: rgb(36 214 200 / 72%);
  outline: none;
  background: rgb(36 214 200 / 11%);
}

.karaoke-line-item.is-current {
  box-shadow: inset 3px 0 0 var(--goofy-yellow);
}

.karaoke-line-item span {
  color: #24d6c8;
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
}

.karaoke-line-item strong {
  min-width: 0;
  color: rgb(249 244 232 / 84%);
  overflow: hidden;
  font-size: 13px;
  font-weight: 850;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.karaoke-publish-panel {
  gap: 10px;
}

.karaoke-lyric {
  cursor: pointer;
  border: 0;
  background: transparent;
}

.karaoke-lyric:focus-visible {
  outline: 2px solid rgb(36 214 200 / 68%);
  outline-offset: 4px;
}

.karaoke-button:disabled {
  cursor: not-allowed;
  opacity: 0.42;
  transform: none;
}

body.karaoke-mode .karaoke-lab {
  background: #050505;
}

.karaoke-shell--minimal {
  display: grid;
  min-height: 100dvh;
  height: auto;
  grid-template-rows: auto;
  justify-items: center;
  gap: 14px;
  padding: 14px;
}

.karaoke-hub {
  position: relative;
  display: grid;
  width: min(390px, calc(100vw - 28px));
  min-height: calc(100dvh - 28px);
  align-content: center;
  gap: 12px;
}

.karaoke-hub-close {
  position: absolute;
  top: 0;
  right: 0;
}

.karaoke-hub-instructions {
  display: grid;
  gap: 8px;
  margin-bottom: 4px;
  color: #f9f4e8;
  text-align: left;
}

.karaoke-hub-instructions strong {
  font-size: 18px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.karaoke-hub-instructions p {
  max-width: 34ch;
  margin: 0;
  color: rgb(249 244 232 / 68%);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
}

.karaoke-hub-button {
  display: flex;
  width: 100%;
  min-height: 58px;
  align-items: center;
  justify-content: center;
  color: #050505;
  cursor: pointer;
  border: 1px solid var(--goofy-yellow);
  border-radius: 8px;
  background: var(--goofy-yellow);
  font: inherit;
  font-size: 15px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.karaoke-hub-button:disabled {
  color: rgb(249 244 232 / 36%);
  cursor: not-allowed;
  border-color: rgb(255 255 255 / 10%);
  background: rgb(255 255 255 / 6%);
}

.karaoke-minimal-top {
  display: grid;
  width: min(390px, calc(100vw - 28px));
  grid-template-columns: minmax(0, 1fr) 44px;
  gap: 8px;
  align-items: end;
}

.karaoke-minimal-top .karaoke-field {
  gap: 6px;
}

.karaoke-back-button {
  min-height: 44px;
}

.karaoke-fan-top {
  display: none;
  width: min(390px, calc(100vw - 28px));
  grid-template-columns: 44px minmax(0, 1fr) 44px;
  gap: 8px;
  align-items: center;
}

.karaoke-shell--minimal.is-fan-view .karaoke-fan-top {
  display: grid;
}

.karaoke-button.karaoke-fan-back {
  display: grid;
  width: 44px;
  min-width: 44px;
  min-height: 44px;
  place-items: center;
  padding: 0;
  border-radius: 50%;
  font-size: 32px;
  line-height: 1;
}

.karaoke-button.karaoke-fan-back span {
  display: block;
  translate: -1px -2px;
}

#karaokeFanClose {
  grid-column: 3;
}

.karaoke-close-action {
  width: 44px;
  min-width: 44px;
  padding: 0;
  border-radius: 50%;
}

.karaoke-close-action span {
  display: block;
  translate: 0 -1px;
  font-size: 31px;
  line-height: 1;
}

.karaoke-minimal-top .karaoke-field span {
  color: rgb(249 244 232 / 64%);
  font-size: 10px;
  letter-spacing: 0;
}

.karaoke-minimal-top .karaoke-field select {
  min-height: 44px;
  color: #f9f4e8;
  border-color: rgb(36 214 200 / 40%);
  background: #101010;
  box-shadow: 0 10px 32px rgb(0 0 0 / 24%);
}

.karaoke-shell--minimal.is-hub-view .karaoke-minimal-top,
.karaoke-shell--minimal.is-hub-view .karaoke-phone-player,
.karaoke-shell--minimal.is-hub-view .karaoke-timing-map,
.karaoke-shell--minimal.is-edit-view .karaoke-hub,
.karaoke-shell--minimal.is-edit-view .karaoke-minimal-top,
.karaoke-shell--minimal.is-edit-view .karaoke-phone-player,
.karaoke-shell--minimal.is-fan-view .karaoke-hub,
.karaoke-shell--minimal.is-fan-view .karaoke-minimal-top {
  display: none !important;
}

.karaoke-shell--minimal.is-edit-view,
.karaoke-shell--minimal.is-fan-view {
  grid-template-rows: auto;
}

.karaoke-shell--minimal.is-fan-view .karaoke-timing-map,
.karaoke-shell--minimal.is-fan-view .karaoke-timing-sync,
.karaoke-shell--minimal.is-fan-view #karaokePreviewFull,
.karaoke-shell--minimal.is-fan-view #karaokePublish,
.karaoke-shell--minimal.is-fan-view .karaoke-inline-editor {
  display: none !important;
}

.karaoke-shell--minimal.is-fan-view .karaoke-phone-frame {
  height: min(680px, calc(100dvh - 88px));
  min-height: min(560px, calc(100dvh - 88px));
  grid-template-rows: auto minmax(0, 1fr) auto auto;
}

.karaoke-shell--minimal.is-fan-view .karaoke-player-actions--phone {
  grid-template-columns: 1fr;
}

.karaoke-phone-player {
  display: grid;
  width: 100%;
  min-height: 0;
  place-items: start center;
}

.karaoke-phone-frame {
  display: grid;
  width: min(390px, calc(100vw - 28px));
  height: min(760px, calc(100dvh - 104px));
  min-height: 560px;
  grid-template-rows: auto minmax(0, 1fr) auto auto auto auto;
  gap: 12px;
  padding: 17px;
  overflow: hidden;
  border: 1px solid rgb(255 255 255 / 16%);
  border-radius: 30px;
  background: #0d0d0d;
  box-shadow: 0 24px 80px rgb(0 0 0 / 46%);
}

.karaoke-step-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.karaoke-step-list li {
  display: grid;
  min-height: 28px;
  place-items: center;
  padding: 0 5px;
  color: rgb(249 244 232 / 48%);
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 6px;
  background: rgb(255 255 255 / 5%);
  font-size: 9px;
  font-weight: 950;
  line-height: 1.05;
  text-align: center;
  text-transform: uppercase;
}

.karaoke-step-list li.is-active {
  color: #050505;
  border-color: var(--goofy-yellow);
  background: var(--goofy-yellow);
}

.karaoke-phone-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  color: rgb(249 244 232 / 64%);
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
}

.karaoke-phone-status strong {
  min-width: 0;
  color: #f9f4e8;
  overflow: hidden;
  font-size: 17px;
  font-weight: 950;
  line-height: 1.1;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.karaoke-shell--minimal .karaoke-screen {
  position: relative;
  min-height: 0;
  padding: 18px 14px;
  border-color: rgb(245 181 27 / 24%);
  border-radius: 23px;
  background:
    linear-gradient(180deg, rgb(245 181 27 / 10%), transparent 34%),
    #030303;
}

.karaoke-shell--minimal .karaoke-lyric-stack {
  max-width: none;
  min-height: 100%;
  align-content: center;
  gap: 7px;
}

.karaoke-cdg-canvas {
  display: block;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 25 / 18;
  object-fit: contain;
  border-radius: 12px;
  background: #000;
  image-rendering: pixelated;
}

.karaoke-cdg-canvas[hidden] {
  display: none;
}

.karaoke-screen.is-showing-cdg {
  padding: 10px;
}

.karaoke-screen.is-showing-cdg .karaoke-lyric-stack {
  display: none;
}

.karaoke-standby {
  display: grid;
  gap: 10px;
  margin: 0;
  color: var(--goofy-yellow);
  text-align: center;
  text-transform: none;
}

.karaoke-standby strong {
  font-size: 31px;
  font-weight: 950;
  line-height: 0.95;
}

.karaoke-standby span {
  color: rgb(249 244 232 / 72%);
  font-size: 13px;
  font-weight: 850;
  line-height: 1.2;
}

.karaoke-prelude {
  display: grid;
  grid-template-rows: 76px 76px;
  align-content: center;
  gap: 10px;
  height: 162px;
  width: 100%;
  color: var(--goofy-yellow);
  text-align: center;
}

.karaoke-prelude strong {
  display: grid;
  min-height: 0;
  place-items: center;
  overflow: hidden;
  color: var(--goofy-yellow);
  font-size: 21px;
  font-weight: 950;
  line-height: 1.08;
  text-wrap: balance;
}

.karaoke-shell--minimal .karaoke-lyric {
  display: grid;
  min-height: 54px;
  width: 100%;
  place-items: center;
  padding: 6px;
  color: rgb(249 244 232 / 30%);
  font-size: 16px;
  font-weight: 850;
  line-height: 1.15;
}

.karaoke-shell--minimal .karaoke-lyric.is-next {
  color: rgb(249 244 232 / 58%);
}

.karaoke-shell--minimal .karaoke-lyric.is-active {
  color: var(--goofy-yellow);
  font-size: 31px;
  line-height: 1.03;
}

.karaoke-shell--minimal .karaoke-lyric.is-sync-target {
  color: #f9f4e8;
  text-shadow: 0 0 22px rgb(36 214 200 / 38%);
}

.karaoke-shell--minimal .karaoke-lyric.is-locked {
  color: rgb(249 244 232 / 54%);
  cursor: not-allowed;
}

.karaoke-shell--minimal .karaoke-lyric.is-active.is-locked {
  color: rgb(249 244 232 / 66%);
  font-size: 25px;
  text-shadow: none;
}

.karaoke-shell--minimal .karaoke-lyric.is-empty {
  color: rgb(249 244 232 / 42%);
  font-style: italic;
}

.karaoke-shell--minimal .karaoke-lyric.is-active.is-empty {
  color: rgb(245 181 27 / 74%);
}

.karaoke-lock-note {
  display: block;
  color: rgb(36 214 200 / 76%);
  font-size: 10px;
  font-weight: 950;
  line-height: 1.1;
  text-align: center;
  text-transform: uppercase;
}

.karaoke-inline-editor {
  position: absolute;
  z-index: 4;
  right: 14px;
  bottom: 14px;
  left: 14px;
  width: auto;
  min-height: 124px;
  max-height: 44%;
  padding: 13px;
  color: #f9f4e8;
  border: 1px solid rgb(36 214 200 / 62%);
  border-radius: 12px;
  background: rgb(5 5 5 / 94%);
  box-shadow: 0 18px 54px rgb(0 0 0 / 45%);
  font: inherit;
  font-size: 18px;
  font-weight: 900;
  line-height: 1.18;
  resize: none;
}

.karaoke-inline-editor[hidden],
.karaoke-hidden-controls {
  display: none !important;
}

.karaoke-inline-editor:focus-visible {
  outline: 2px solid rgb(36 214 200 / 32%);
  outline-offset: 2px;
}

.karaoke-shell--minimal .karaoke-progress {
  height: 24px;
}

.karaoke-sync-row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 7px;
  align-items: center;
}

.karaoke-sync-row span {
  min-width: 72px;
  color: rgb(249 244 232 / 58%);
  font-size: 10px;
  font-weight: 950;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
}

.karaoke-sync-button {
  min-height: 30px;
  padding: 0 8px;
  color: rgb(249 244 232 / 72%);
  cursor: pointer;
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 6px;
  background: rgb(255 255 255 / 7%);
  font-size: 9px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.karaoke-sync-button--mark {
  color: #050505;
  border-color: var(--goofy-yellow);
  background: var(--goofy-yellow);
}

.karaoke-sync-button.is-active {
  color: #050505;
  border-color: rgb(36 214 200 / 72%);
  background: rgb(36 214 200);
}

.karaoke-sync-button:disabled {
  cursor: not-allowed;
  opacity: 0.42;
}

.karaoke-sync-button:hover,
.karaoke-sync-button:focus-visible {
  color: #050505;
  border-color: var(--goofy-yellow);
  outline: none;
  background: var(--goofy-yellow);
}

.karaoke-player-actions--phone {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  justify-content: stretch;
}

.karaoke-player-actions--phone .karaoke-button {
  width: 100%;
  min-height: 44px;
  padding: 0 8px;
}

.karaoke-timing-sync {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid rgb(255 255 255 / 11%);
  border-radius: 10px;
  background: rgb(255 255 255 / 5%);
}

.karaoke-timing-sync.is-syncing {
  border-color: rgb(36 214 200 / 52%);
  background: rgb(36 214 200 / 8%);
}

.karaoke-timing-readout {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.karaoke-timing-readout span {
  color: rgb(249 244 232 / 56%);
  overflow: hidden;
  font-size: 10px;
  font-weight: 950;
  line-height: 1.1;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.karaoke-timing-readout strong {
  color: #f9f4e8;
  overflow: hidden;
  font-size: 13px;
  font-weight: 950;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.karaoke-timing-actions {
  display: grid;
  grid-template-columns: 1.05fr 0.9fr 1.15fr 0.9fr 0.95fr;
  gap: 6px;
}

.karaoke-status--phone {
  min-height: 16px;
  overflow: visible;
  color: rgb(249 244 232 / 64%);
  font-size: 11px;
  line-height: 1.2;
  text-align: center;
  white-space: normal;
}

.karaoke-timing-map {
  display: grid;
  width: min(760px, calc(100vw - 28px));
  max-height: min(560px, 70dvh);
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 12px;
  background: #0d0d0d;
}

.karaoke-shell--minimal.is-edit-view .karaoke-timing-map {
  width: min(920px, calc(100vw - 28px));
  height: calc(100dvh - 28px);
  max-height: calc(100dvh - 28px);
}

.karaoke-timing-map-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px;
  border-bottom: 1px solid rgb(255 255 255 / 10%);
}

.karaoke-timing-map-head strong {
  color: #f9f4e8;
  font-size: 13px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.karaoke-timing-map-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

.karaoke-map-clock {
  display: inline-flex;
  min-width: 132px;
  min-height: 34px;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
  color: var(--goofy-yellow);
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 8px;
  background: rgb(255 255 255 / 6%);
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
}

.karaoke-map-scrubber {
  flex: 1 0 100%;
  width: 100%;
  margin: 2px 0 0;
}

.karaoke-timing-map-head .karaoke-button {
  min-height: 34px;
  padding: 0 12px;
  font-size: 10px;
}

.karaoke-timing-map-head .karaoke-close-action {
  width: 34px;
  min-width: 34px;
  padding: 0;
}

.karaoke-timing-map-head .karaoke-close-action span {
  font-size: 24px;
}

.karaoke-timing-map-list {
  display: grid;
  align-content: start;
  overflow: auto;
}

.karaoke-map-row {
  display: grid;
  min-width: 0;
  grid-template-columns: 34px 82px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  padding: 8px 10px;
  border-bottom: 1px solid rgb(255 255 255 / 7%);
}

.karaoke-map-row.is-selected {
  background: rgb(36 214 200 / 7%);
}

.karaoke-map-row > span {
  color: rgb(249 244 232 / 44%);
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
  text-align: right;
}

.karaoke-map-row input {
  width: 100%;
  min-height: 32px;
  padding: 0 8px;
  color: #f9f4e8;
  border: 1px solid rgb(255 255 255 / 15%);
  border-radius: 6px;
  background: rgb(255 255 255 / 6%);
  font: inherit;
  font-size: 12px;
  font-weight: 900;
}

.karaoke-map-row .karaoke-map-lyric-input {
  min-width: 0;
  font-weight: 850;
}

.karaoke-map-row .is-time-locked,
.karaoke-map-row .is-lyric-locked {
  cursor: not-allowed;
  color: rgb(249 244 232 / 46%);
  border-color: rgb(255 255 255 / 10%);
  background: rgb(255 255 255 / 3%);
}

.karaoke-map-row .is-time-locked {
  color: rgb(249 244 232 / 64%);
}

.karaoke-map-row.is-locked .karaoke-map-lyric-input {
  text-decoration: none;
}

.karaoke-map-row input:focus-visible {
  border-color: rgb(36 214 200 / 72%);
  outline: none;
  box-shadow: 0 0 0 2px rgb(36 214 200 / 18%);
}

.karaoke-map-row input.is-invalid {
  border-color: rgb(255 86 86 / 82%);
  background: rgb(255 86 86 / 11%);
}

.karaoke-map-row:focus-within {
  background: rgb(36 214 200 / 7%);
}

@media (max-width: 980px) {
  .karaoke-simple {
    grid-template-rows: auto auto auto;
  }

  .karaoke-control-row,
  .karaoke-workflow {
    grid-template-columns: 1fr;
  }

  .karaoke-track-count {
    justify-self: start;
  }

  .karaoke-line-list {
    max-height: 240px;
  }
}

@media (max-width: 1060px) {
  .voice-shell {
    gap: 10px;
    padding: 10px;
  }

  .voice-layout {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(0, 1fr) minmax(145px, 22dvh);
  }

  .voice-recorder-panel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }

  .voice-recorder-panel h2,
  .voice-recorder-panel > .voice-panel-label,
  .voice-status {
    grid-column: 1 / -1;
  }

  .voice-stage {
    grid-row: 2;
  }

  .voice-tune-controls {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .voice-clips-panel {
    max-height: 22dvh;
  }

  .voice-clip-list {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 2px;
  }

  .voice-clip-item {
    flex: 0 0 250px;
  }

  .puzzle-shell {
    gap: 10px;
    padding: 10px;
  }

  .puzzle-layout {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(0, 1fr) minmax(150px, 26dvh);
  }

  .puzzle-stage {
    order: 1;
  }

  .puzzle-sidebar {
    order: 2;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    max-height: 28dvh;
  }

  .puzzle-tray-panel {
    order: 2;
  }

  .puzzle-panel {
    padding: 12px;
  }

  .puzzle-builder-actions {
    align-content: center;
    align-items: center;
  }

  .puzzle-board-wrap {
    width: min(100%, calc((100dvh - 285px) * var(--puzzle-aspect, 0.72)));
    height: min(100%, calc(100dvh - 285px));
  }

  .puzzle-tray {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
  }

  .puzzle-tray-piece {
    flex: 0 0 74px;
    min-height: 78px;
  }

  .puzzle-tray-piece .puzzle-piece-image {
    width: 64px;
    max-height: 70px;
  }

  .karaoke-shell {
    gap: 10px;
    padding: 10px;
  }

  .karaoke-layout {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(0, 1fr) minmax(130px, 21dvh) minmax(120px, 19dvh);
  }

  .karaoke-stage {
    order: 1;
    grid-template-rows: minmax(0, 1fr) minmax(205px, 32dvh);
  }

  .karaoke-catalog-panel {
    order: 2;
  }

  .karaoke-published-panel {
    order: 3;
  }

  .karaoke-song-list,
  .karaoke-published-list {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 2px;
  }

  .karaoke-song-item {
    flex: 0 0 245px;
  }

  .karaoke-published-item {
    flex: 0 0 260px;
  }

  .karaoke-editor-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .voice-header {
    align-items: stretch;
    padding: 10px;
  }

  .voice-header h1 {
    font-size: 34px;
  }

  .voice-button {
    min-height: 36px;
    padding: 0 10px;
    font-size: 10px;
  }

  .voice-layout {
    grid-template-rows: 255px minmax(0, 1fr) 104px;
    gap: 8px;
  }

  .voice-panel,
  .voice-stage {
    padding: 10px;
  }

  .voice-recorder-panel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: none;
    overflow: auto;
  }

  .voice-stage {
    grid-template-rows: minmax(96px, 1fr) auto auto auto auto;
    gap: 8px;
  }

  .voice-recorder-panel h2 {
    font-size: 24px;
  }

  .voice-recorder-panel > .voice-panel-label,
  .voice-recorder-panel h2,
  .voice-mode-toggle,
  .voice-record-controls,
  .voice-status,
  .voice-audience-options {
    grid-column: 1 / -1;
  }

  .voice-mode-toggle {
    order: 3;
  }

  .voice-record-controls {
    order: 4;
  }

  .voice-status {
    order: 5;
  }

  .voice-recorder-panel .voice-field:first-of-type {
    order: 6;
  }

  .voice-audience-options {
    order: 7;
  }

  .voice-recorder-panel .voice-field:last-of-type {
    order: 8;
  }

  .voice-waveform {
    min-height: 112px;
    gap: 4px;
  }

  .voice-presets {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .voice-presets button {
    min-height: 42px;
  }

  .voice-tune-controls {
    display: flex;
    gap: 7px;
    align-items: stretch;
    min-height: 86px;
    overflow-x: auto;
    overflow-y: visible;
    padding: 9px;
    scrollbar-color: rgb(245 181 27 / 72%) rgb(255 255 255 / 8%);
  }

  .voice-tune-controls > * {
    flex: 0 0 146px;
  }

  .voice-stage-actions {
    order: 4;
  }

  .voice-tune-controls {
    order: 5;
  }

  .voice-preset-card {
    order: 6;
  }

  .voice-field select {
    min-height: 38px;
    font-size: 12px;
  }

  .voice-preset-card {
    padding: 10px;
  }

  .voice-preset-card h2 {
    font-size: 24px;
  }

  .voice-preset-card p:not(.voice-panel-label) {
    font-size: 12px;
  }

  .puzzle-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    padding: 8px;
    gap: 8px;
  }

  .puzzle-header:not(.is-playing) {
    grid-template-columns: 38px minmax(0, 1fr) 38px;
  }

  .puzzle-header.is-playing {
    grid-template-columns: 38px minmax(0, 1fr) 38px;
  }

  .puzzle-header.is-playing .puzzle-header-metrics {
    width: 100%;
    gap: 6px;
  }

  .puzzle-back-action,
  .puzzle-close-action {
    width: 38px;
    min-width: 38px;
    min-height: 38px;
  }

  .puzzle-header.is-playing .puzzle-metrics span {
    min-height: 38px;
    padding: 6px 8px;
    font-size: 9px;
  }

  .puzzle-header.is-playing .puzzle-metrics strong {
    font-size: 18px;
  }

  .puzzle-header h1 {
    font-size: 24px;
    line-height: 0.88;
  }

  .puzzle-kicker {
    font-size: 10px;
  }

  .puzzle-active-meta {
    margin-top: 0;
    font-size: 11px;
    line-height: 1.08;
  }

  .puzzle-setup {
    gap: 10px;
    padding: 10px;
  }

  .puzzle-setup-copy h2 {
    font-size: 34px;
  }

  .puzzle-setup-preview {
    width: min(100%, max(180px, calc((100dvh - 318px) * var(--puzzle-aspect, 0.72))));
    max-height: calc(100dvh - 228px);
    padding: 8px;
  }

  .puzzle-completed-board {
    width: min(100%, calc((100dvh - 340px) * var(--puzzle-aspect, 0.72)));
    max-height: calc(100dvh - 340px);
  }

  .puzzle-setup-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .puzzle-setup-actions .puzzle-file-label {
    grid-area: auto;
    min-height: 44px;
  }

  .puzzle-header-actions {
    display: grid;
    align-content: stretch;
    gap: 6px;
  }

  .puzzle-close-action {
    width: 36px;
    min-width: 36px;
    min-height: 36px;
  }

  .puzzle-close-action span {
    font-size: 27px;
  }

  .puzzle-button,
  .puzzle-file-button {
    min-height: 34px;
    padding: 0 10px;
    font-size: 10px;
  }

  .puzzle-button.puzzle-close-action {
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
    padding: 0;
  }

  .puzzle-layout {
    grid-template-rows: minmax(0, 1fr) 150px;
    gap: 8px;
  }

  .puzzle-sidebar {
    order: 3;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    max-height: 58px;
    overflow: visible;
  }

  .puzzle-panel {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas: "thumb upload publish";
    align-items: stretch;
    gap: 8px;
    min-height: 0;
    padding: 7px;
    overflow: hidden;
  }

  .puzzle-layout {
    grid-template-rows: minmax(0, calc(100dvh - 286px)) minmax(184px, 1fr);
  }

  .puzzle-panel > .puzzle-panel-label,
  .puzzle-panel h2,
  .puzzle-panel .puzzle-metrics,
  .puzzle-publish-status {
    display: none;
  }

  .puzzle-source-preview {
    grid-area: thumb;
    grid-template-columns: 1fr;
    gap: 0;
    width: 46px;
    min-width: 0;
    padding: 0;
  }

  .puzzle-source-preview img {
    width: 44px;
    height: 44px;
    aspect-ratio: 1;
    object-fit: cover;
  }

  .puzzle-source-preview figcaption {
    display: none;
  }

  .puzzle-file-label {
    grid-area: upload;
    min-height: 44px;
  }

  .puzzle-builder-actions {
    grid-area: publish;
    justify-content: stretch;
  }

  .puzzle-builder-actions > * {
    flex: 1 1 0;
    min-height: 44px;
  }

  .puzzle-flow-steps {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .puzzle-flow-steps li {
    min-height: 28px;
  }

  .puzzle-field input,
  .puzzle-file-drop {
    min-height: 34px;
  }

  .puzzle-stage,
  .puzzle-tray-panel {
    padding: 8px;
  }

  .puzzle-stage {
    order: 1;
    overflow: hidden;
    place-items: center;
  }

  .puzzle-board-wrap {
    width: min(100%, calc((100dvh - 336px) * var(--puzzle-aspect, 0.72)));
    height: min(100%, calc(100dvh - 336px));
    max-height: 100%;
    padding: 13px;
  }

  .puzzle-board {
    border-width: 2px;
  }

  .puzzle-slot {
    touch-action: manipulation;
  }

  .puzzle-tray-header {
    display: grid;
    gap: 5px;
  }

  .puzzle-tray-header p:not(.puzzle-panel-label) {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: 12px;
    line-height: 1.12;
    overflow-wrap: anywhere;
    white-space: normal;
  }

  .puzzle-tray-panel {
    order: 2;
    grid-template-rows: auto minmax(0, 1fr);
    min-height: 0;
  }

  .puzzle-tray {
    align-items: stretch;
    gap: 7px;
    padding: 3px 3px 7px;
  }

  .puzzle-tray-piece {
    flex-basis: 76px;
    min-height: 80px;
    padding: 6px;
  }

  .puzzle-tray-piece .puzzle-piece-image {
    width: 66px;
    max-height: 70px;
  }

  .puzzle-tray-empty {
    min-width: 210px;
    padding: 12px;
  }

  .karaoke-header {
    align-items: stretch;
    padding: 10px;
  }

  .karaoke-mode {
    overflow: auto;
  }

  .karaoke-lab {
    overflow: auto;
  }

  .karaoke-shell {
    height: auto;
    min-height: 100dvh;
  }

  .karaoke-header h1 {
    font-size: 32px;
  }

  .karaoke-header-actions {
    align-content: center;
  }

  .karaoke-button {
    min-height: 36px;
    padding: 0 10px;
    font-size: 10px;
  }

  .karaoke-layout {
    grid-template-rows: auto auto auto;
    gap: 8px;
  }

  .karaoke-stage {
    gap: 8px;
    grid-template-rows: auto auto;
  }

  .karaoke-panel,
  .karaoke-player-card,
  .karaoke-editor-card {
    padding: 9px;
  }

  .karaoke-now h2 {
    font-size: 21px;
  }

  .karaoke-screen {
    min-height: 108px;
    padding: 10px;
  }

  .karaoke-lyric-stack {
    gap: 5px;
  }

  .karaoke-lyric {
    font-size: 14px;
  }

  .karaoke-lyric.is-active {
    font-size: 25px;
  }

  .karaoke-player-card {
    gap: 7px;
  }

  .karaoke-editor-card {
    grid-template-rows: minmax(0, 1fr) auto auto;
    gap: 8px;
  }

  .karaoke-field textarea {
    min-height: 116px;
  }

  .karaoke-scope-options {
    display: flex;
    overflow-x: auto;
  }

  .karaoke-scope-options label {
    flex: 0 0 124px;
  }

  .karaoke-song-item {
    flex-basis: 210px;
  }

  .karaoke-published-item {
    flex-basis: 235px;
  }

  .karaoke-catalog-panel,
  .karaoke-published-panel {
    min-height: 124px;
    max-height: 190px;
  }
}

.proposal-mode {
  overflow-x: hidden;
  overflow-y: auto;
  background: #050505;
}

.proposal-page {
  min-height: 100vh;
  color: var(--paper);
  background:
    linear-gradient(90deg, rgb(245 181 27 / 6%) 1px, transparent 1px),
    linear-gradient(180deg, rgb(255 255 255 / 4%) 1px, transparent 1px),
    #050505;
  background-size: 58px 58px;
}

.proposal-nav {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 10;
  display: flex;
  min-height: 66px;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 12px clamp(18px, 4vw, 64px);
  border-bottom: 1px solid rgb(255 255 255 / 10%);
  background: rgb(5 5 5 / 86%);
  backdrop-filter: blur(16px);
}

.proposal-brand {
  color: var(--paper);
  text-decoration: none;
}

.proposal-nav-link,
.proposal-primary,
.proposal-secondary {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 950;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
}

.proposal-nav-link,
.proposal-secondary {
  color: var(--paper);
  border: 1px solid rgb(255 255 255 / 18%);
  background: rgb(255 255 255 / 7%);
}

.proposal-primary {
  color: #050505;
  border: 1px solid #050505;
  background: var(--goofy-yellow);
}

.proposal-nav-link:hover,
.proposal-secondary:hover {
  border-color: rgb(245 181 27 / 42%);
  background: rgb(245 181 27 / 12%);
}

.proposal-primary:hover {
  background: #ffd568;
}

.proposal-hero {
  display: grid;
  min-height: 88dvh;
  align-items: end;
  padding: 116px clamp(20px, 6vw, 92px) clamp(54px, 9vw, 106px);
  background:
    linear-gradient(90deg, rgb(0 0 0 / 86%) 0 39%, rgb(0 0 0 / 46%) 62%, rgb(0 0 0 / 84%) 100%),
    linear-gradient(180deg, rgb(0 0 0 / 8%) 0%, #050505 100%),
    url("/assets/slides/goofy-matrimony.png") center / cover no-repeat;
}

.proposal-hero__copy {
  display: grid;
  max-width: 920px;
  gap: 18px;
}

.proposal-kicker {
  margin: 0;
  color: var(--goofy-yellow);
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.proposal-hero h1,
.proposal-section-head h2,
.proposal-feature-copy h2,
.proposal-close h2 {
  margin: 0;
  color: var(--paper);
  font-weight: 950;
  letter-spacing: 0;
  text-transform: uppercase;
}

.proposal-hero h1 {
  max-width: 940px;
  font-size: clamp(48px, 7vw, 112px);
  line-height: 0.88;
}

.proposal-hero p:not(.proposal-kicker),
.proposal-section-head p,
.proposal-feature-copy p,
.proposal-close p {
  max-width: 780px;
  margin: 0;
  color: rgb(249 244 232 / 78%);
  font-size: clamp(18px, 1.8vw, 28px);
  font-weight: 760;
  line-height: 1.22;
}

.proposal-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 10px;
}

.proposal-band,
.proposal-close {
  padding: clamp(54px, 7vw, 104px) clamp(20px, 6vw, 92px);
}

.proposal-band--intro,
.proposal-band--scope {
  background:
    linear-gradient(180deg, rgb(255 255 255 / 4%), transparent 30%),
    #080808;
}

.proposal-band--visual {
  display: grid;
  grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1fr);
  gap: clamp(24px, 5vw, 74px);
  align-items: center;
  background: #050505;
}

.proposal-section-head,
.proposal-feature-copy,
.proposal-close {
  display: grid;
  gap: 16px;
}

.proposal-section-head {
  max-width: 1040px;
  margin-bottom: clamp(24px, 4vw, 48px);
}

.proposal-section-head h2,
.proposal-feature-copy h2,
.proposal-close h2 {
  max-width: 960px;
  font-size: clamp(40px, 5.8vw, 88px);
  line-height: 0.86;
}

.proposal-metric-row,
.proposal-price-grid,
.proposal-scope-grid,
.proposal-terms-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.proposal-metric-row article,
.proposal-price-card,
.proposal-scope-grid article,
.proposal-terms-grid article {
  display: grid;
  gap: 10px;
  align-content: start;
  min-height: 172px;
  padding: 18px;
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgb(245 181 27 / 12%), transparent 54%),
    rgb(255 255 255 / 5%);
  box-shadow: 0 18px 44px rgb(0 0 0 / 26%);
}

.proposal-metric-row span,
.proposal-price-card span {
  color: var(--goofy-yellow);
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.proposal-metric-row strong,
.proposal-price-card strong,
.proposal-terms-grid strong {
  color: var(--paper);
  font-size: clamp(26px, 3.4vw, 52px);
  font-weight: 950;
  line-height: 0.9;
  text-transform: uppercase;
}

.proposal-metric-row p,
.proposal-price-card p,
.proposal-scope-grid p,
.proposal-terms-grid p,
.proposal-feature-image figcaption,
.proposal-check-list li {
  margin: 0;
  color: rgb(249 244 232 / 72%);
  font-size: 15px;
  font-weight: 760;
  line-height: 1.28;
}

.proposal-feature-image {
  display: grid;
  gap: 12px;
  margin: 0;
}

.proposal-feature-image img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid rgb(245 181 27 / 26%);
  border-radius: 8px;
  box-shadow: 0 28px 80px rgb(0 0 0 / 48%);
}

.proposal-check-list {
  display: grid;
  gap: 8px;
  padding: 0;
  margin: 10px 0 0;
  list-style: none;
}

.proposal-check-list li {
  padding: 10px 12px;
  border-left: 4px solid var(--goofy-yellow);
  background: rgb(255 255 255 / 6%);
}

.proposal-price-card--primary {
  border-color: rgb(245 181 27 / 64%);
  background:
    linear-gradient(135deg, rgb(245 181 27 / 22%), transparent 56%),
    rgb(255 255 255 / 7%);
}

.proposal-scope-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.proposal-scope-grid h3 {
  margin: 0;
  color: var(--paper);
  font-size: clamp(22px, 2vw, 34px);
  font-weight: 950;
  line-height: 0.96;
  text-transform: uppercase;
}

.proposal-band--terms {
  background:
    linear-gradient(135deg, rgb(239 71 111 / 12%), transparent 40%),
    #080808;
}

.proposal-close {
  min-height: 70dvh;
  align-content: center;
  background:
    linear-gradient(135deg, rgb(245 181 27 / 15%), transparent 36%),
    linear-gradient(315deg, rgb(39 214 163 / 12%), transparent 34%),
    #050505;
}

.proposal-close .proposal-primary {
  width: fit-content;
  margin-top: 10px;
}

@media (max-width: 980px) {
  .proposal-band--visual,
  .proposal-metric-row,
  .proposal-price-grid,
  .proposal-terms-grid {
    grid-template-columns: 1fr;
  }

  .proposal-scope-grid {
    grid-template-columns: 1fr;
  }

  .proposal-feature-image img {
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 640px) {
  .proposal-nav {
    min-height: 62px;
    padding: 11px 20px;
  }

  .proposal-nav-link {
    min-height: 38px;
    padding-inline: 12px;
    font-size: 11px;
  }

  .proposal-hero {
    min-height: 86dvh;
    align-items: end;
    padding: 94px 22px 42px;
    background:
      linear-gradient(180deg, rgb(0 0 0 / 44%) 0%, rgb(0 0 0 / 82%) 58%, #050505 100%),
      url("/assets/slides/goofy-matrimony.png") center top / cover no-repeat;
  }

  .proposal-hero__copy {
    gap: 13px;
  }

  .proposal-kicker {
    font-size: 11px;
  }

  .proposal-hero h1 {
    max-width: 8.4em;
    font-size: clamp(40px, 11.5vw, 58px);
    line-height: 0.92;
  }

  .proposal-hero p:not(.proposal-kicker),
  .proposal-section-head p,
  .proposal-feature-copy p,
  .proposal-close p {
    font-size: 16px;
    line-height: 1.24;
  }

  .proposal-hero__actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .proposal-primary,
  .proposal-secondary {
    width: 100%;
    min-height: 50px;
    font-size: 12px;
  }

  .proposal-band,
  .proposal-close {
    padding: 42px 22px;
  }

  .proposal-section-head {
    margin-bottom: 18px;
  }

  .proposal-section-head h2,
  .proposal-feature-copy h2,
  .proposal-close h2 {
    font-size: clamp(34px, 10vw, 52px);
    line-height: 0.88;
  }

  .proposal-metric-row article,
  .proposal-price-card,
  .proposal-scope-grid article,
  .proposal-terms-grid article {
    min-height: 0;
    padding: 14px;
  }

  .proposal-metric-row strong,
  .proposal-price-card strong,
  .proposal-terms-grid strong {
    font-size: 30px;
  }

  .proposal-metric-row p,
  .proposal-price-card p,
  .proposal-scope-grid p,
  .proposal-terms-grid p,
  .proposal-feature-image figcaption,
  .proposal-check-list li {
    font-size: 13px;
  }

  .proposal-close {
    min-height: 62dvh;
  }

  .proposal-close .proposal-primary {
    width: 100%;
  }
}
