:root {
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
  --summary-panel-inline-padding: 18px;
  --summary-panel-font-size: clamp(15px, 4.3vw, 22px);
  --summary-panel-heading-font-size: 22px;
  --summary-panel-prompt-font-size: 20px;
  --summary-panel-action-font-size: 20px;
  --summary-panel-compact-action-font-size: 15px;
  --summary-panel-row-font-size: 16px;
  --summary-panel-status-font-size: 16px;
  --summary-panel-caption-font-size: 13px;
  --summary-goal-date-column-min: 78px;
  --bg-top: #324b61;
  --bg-bottom: #0c1825;
  --bg-accent: rgba(123, 193, 255, 0.2);
  --bg-accent-soft: rgba(74, 113, 161, 0.18);
  --hud-color: rgba(208, 220, 236, 0.72);
  --hud-solid: rgb(176, 185, 198);
  --level-shadow: rgba(123, 193, 255, 0.16);
  --ball-highlight: #fff2b4;
  --ball-mid: #f4c542;
  --ball-dark: #cc8c05;
  --ball-glow: rgba(244, 197, 66, 0.34);
  --trail-color: rgba(244, 197, 66, 0.5);
  --block-light: #f7d754;
  --block-mid: #f1c40f;
  --block-dark: #c79607;
  --block-sheen: rgba(255, 255, 255, 0.18);
  --block-shadow: rgba(0, 0, 0, 0.28);
  --knocked-light: #566a7f;
  --knocked-mid: #34495e;
  --knocked-dark: #233240;
  --knocked-sheen: rgba(255, 255, 255, 0.08);
  --edge-color: rgba(244, 197, 66, 0.34);
  --level-fore-color: var(--block-mid);
  --level-ball-color: var(--ball-mid);
  --level-border-color: color-mix(in srgb, var(--block-mid) 82%, transparent);
  --level-border-accent-color: color-mix(in srgb, var(--block-mid) 92%, transparent);
  --playfield-border-color: rgba(241, 196, 15, 0.82);
  --flash-color: rgba(123, 193, 255, 0.22);
  --record-color-soft: rgba(241, 196, 15, 0.15);
  --record-color-solid: rgba(241, 196, 15, 0.92);
  --sphere-light-x: 35%;
  --sphere-light-y: 30%;
  --block-light-angle: 145deg;
  --ball-shadow-x: 5px;
  --ball-shadow-y: 6px;
  --block-shadow-x: 3px;
  --block-shadow-y: 5px;
  --knocked-shadow-x: 2px;
  --knocked-shadow-y: 3px;
  --ball-inset-shadow-x: -10px;
  --ball-inset-shadow-y: -10px;
  --ball-inset-light-x: 5px;
  --ball-inset-light-y: 5px;
  --block-inset-shadow-x: -4px;
  --block-inset-shadow-y: -4px;
  --block-inset-light-x: 2px;
  --block-inset-light-y: 2px;
  --sphere-inset-shadow-x: -7px;
  --sphere-inset-shadow-y: -8px;
  --sphere-inset-light-x: 3px;
  --sphere-inset-light-y: 3px;
}

html,
body {
  margin: 0;
  padding: 0;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  overflow: visible;
  background-color: #000;
  touch-action: none;
  overscroll-behavior: none;
  transition: background-color 0.9s ease;
}

html {
  background: #000;
  color-scheme: dark;
}

body {
  color: white;
  font-family:
    system-ui,
    -apple-system,
    sans-serif;
  font-weight: 200;
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
}

#gameArea {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  background: transparent;
}

body,
body * {
  user-select: none;
  -webkit-user-select: none;
}

body :where(input, textarea, [contenteditable='true']) {
  user-select: text;
  -webkit-user-select: text;
}

:where(
  .runSummaryNavButton,
  #mobileVersionLink,
  #mobileShareLink,
  #bonusGameBackButton,
  #motionJoystickPeek,
  .hudIconButton,
  .communityGamesTab,
  .communityGameItem,
  .communityGameTitleButton,
  .communityGameShareButton,
  .communityGameNewButton,
  .communityEditorBackButton,
  .communityEditorSaveButton,
  .communityEditorModeButton,
  .communityEditorTitleButton,
  .communityEditorTool,
  .communityEditorAction,
  .communityEditorThemeSwatch,
  .communityEditorBall,
  .communityEditorObject,
  .playerRenameButton,
  .todayBonusGameButton,
  .accountScreenButton,
  .multiplayerRoomCode,
  .multiplayerActionButton,
  .multiplayerBackButton,
  .multiplayerRoomButton
) {
  appearance: none;
  font: inherit;
  -webkit-tap-highlight-color: transparent;
}

:where(.communityGameList, .multiplayerRoomList, .multiplayerPlayerList, .multiplayerRankingList, .multiplayerRoundHistoryList) {
  margin: 0;
  padding: 0;
  list-style: none;
}

:where(
  .leaderboardName,
  .communityGameTitleButton,
  .communityEditorTitleButton,
  .communityEditorTitleText,
  .goalLabel,
  .multiplayerInviteLink,
  .multiplayerRoomItemCode,
  .multiplayerPlayerName,
  .multiplayerRankingName
) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

:where(.playerRenameButton, .shareIcon, .goalStatusIcon, .communityGameLikeIcon, .multiplayerRoomCodeShareIcon) svg {
  display: block;
  width: 100%;
  height: 100%;
}

:where(.shareIcon, .communityGameLikeIcon, .multiplayerRoomCodeShareIcon) svg {
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

#safeAreaProbe {
  position: fixed;
  inset: 0;
  width: 0;
  height: 0;
  visibility: hidden;
  pointer-events: none;
  padding-top: env(safe-area-inset-top, 0px);
  padding-right: env(safe-area-inset-right, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
  padding-left: env(safe-area-inset-left, 0px);
  box-sizing: border-box;
}

#levelIndicator {
  font-weight: 700;
  color: rgba(255, 255, 255, 0.15);
  pointer-events: none;
  transition:
    color 0.35s ease,
    text-shadow 0.35s ease;
  display: none;
}

#levelIndicator.new-best {
  color: var(--record-color-soft);
}

#levelIndicator.milestone {
  text-shadow: 0 0 36px var(--level-shadow);
}

#levelIndicator.game-over {
  color: var(--hud-solid);
  opacity: 1;
}

#levelIndicator.game-over.new-best {
  color: var(--record-color-solid);
}

@keyframes levelLighten {
  0% {
    filter: brightness(1);
  }
  30% {
    filter: brightness(2.15);
  }
  100% {
    filter: brightness(1);
  }
}

#edgeGlow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
  overflow: hidden;
  border-radius: 0;
}

#playfieldBorder {
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  box-sizing: border-box;
  border: 4px solid rgba(241, 196, 15, 0.82);
  border-radius: 0;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.08) inset,
    0 0 28px rgba(123, 193, 255, 0.12);
  opacity: 0;
  pointer-events: none;
  z-index: 2;
  transition:
    opacity 120ms linear,
    border-color 140ms ease,
    box-shadow 140ms ease,
    border-width 120ms linear;
}

body.is-multiplayer-room:not(.is-multiplayer-mode) #playfieldBorder {
  border-color: var(--multiplayer-board-color, var(--playfield-border-color)) !important;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--multiplayer-board-color, #f4c542) 34%, transparent) inset,
    0 0 24px color-mix(in srgb, var(--multiplayer-board-color, #f4c542) 28%, transparent) !important;
}

#edgeThreatOverlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  pointer-events: none;
  z-index: 3;
  overflow: visible;
  border-radius: 0;
}

.edgeThreatCutout {
  position: absolute;
  opacity: 0;
  transition: opacity 0.08s linear;
  will-change: opacity;
}

.edgeThreatTop,
.edgeThreatBottom {
  left: 0;
  width: 100%;
  height: 40px;
}

.edgeThreatLeft,
.edgeThreatRight {
  top: 0;
  width: 40px;
  height: 100%;
}

.edgeThreatTop {
  top: -28px;
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 1) 0%,
    rgba(0, 0, 0, 0.98) 32%,
    rgba(0, 0, 0, 0.72) 58%,
    rgba(0, 0, 0, 0.2) 78%,
    rgba(0, 0, 0, 0) 100%
  );
}

.edgeThreatBottom {
  bottom: -28px;
  background: linear-gradient(
    0deg,
    rgba(0, 0, 0, 1) 0%,
    rgba(0, 0, 0, 0.98) 32%,
    rgba(0, 0, 0, 0.72) 58%,
    rgba(0, 0, 0, 0.2) 78%,
    rgba(0, 0, 0, 0) 100%
  );
}

.edgeThreatLeft {
  left: -28px;
  background: linear-gradient(
    90deg,
    rgba(0, 0, 0, 1) 0%,
    rgba(0, 0, 0, 0.98) 32%,
    rgba(0, 0, 0, 0.72) 58%,
    rgba(0, 0, 0, 0.2) 78%,
    rgba(0, 0, 0, 0) 100%
  );
}

.edgeThreatRight {
  right: -28px;
  background: linear-gradient(
    270deg,
    rgba(0, 0, 0, 1) 0%,
    rgba(0, 0, 0, 0.98) 32%,
    rgba(0, 0, 0, 0.72) 58%,
    rgba(0, 0, 0, 0.2) 78%,
    rgba(0, 0, 0, 0) 100%
  );
}

#playfieldTint {
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0;
  border-radius: 0;
  mix-blend-mode: normal;
  background: var(--bg-top);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.04) inset;
  will-change: left, top, width, height, border-radius, opacity, background;
}

#outsideGlow {
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  pointer-events: none;
  z-index: 1;
  opacity: 0;
  border-radius: 0;
  background: transparent;
  will-change: left, top, width, height, border-radius, opacity, box-shadow;
}

.edgeGlowSide {
  position: absolute;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.12s linear;
}

.edgeGlowTop,
.edgeGlowBottom {
  left: 0;
  width: 100%;
  height: 20vh;
  height: 20dvh;
}

.edgeGlowTop {
  top: 0;
  background: linear-gradient(180deg, var(--edge-color) 0%, transparent 100%);
}

.edgeGlowBottom {
  bottom: 0;
  background: linear-gradient(0deg, var(--edge-color) 0%, transparent 100%);
}

.edgeGlowLeft,
.edgeGlowRight {
  top: 0;
  width: 20vw;
  height: 100%;
}

.edgeGlowLeft {
  left: 0;
  background: linear-gradient(90deg, var(--edge-color) 0%, transparent 100%);
}

.edgeGlowRight {
  right: 0;
  background: linear-gradient(270deg, var(--edge-color) 0%, transparent 100%);
}

#trailContainer,
#particleContainer,
#transitionFlash {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

#trailContainer {
  z-index: 3;
}

.trailGhost {
  position: absolute;
  width: 50px;
  height: 50px;
  margin-left: -25px;
  margin-top: -25px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.42) 0%, var(--trail-color) 58%, transparent 100%);
  filter: blur(2px);
  opacity: 0;
  transform: translate(-9999px, -9999px) scale(0.7);
  will-change: transform, opacity;
}

#particleContainer {
  z-index: 6;
}

.impactParticle {
  position: absolute;
  width: 10px;
  height: 10px;
  margin-left: -5px;
  margin-top: -5px;
  border-radius: 999px;
  background: var(--trail-color);
  opacity: 0;
  will-change: transform, opacity;
}

#transitionFlash {
  z-index: 7;
  opacity: 0;
  background: radial-gradient(circle at 50% 50%, var(--flash-color) 0%, transparent 56%);
  will-change: opacity;
}

body.is-low-performance-mode #edgeGlow,
body.is-low-performance-mode #outsideGlow,
body.is-low-performance-mode #particleContainer,
body.is-low-performance-mode #trailContainer,
body.is-low-performance-mode #transitionFlash {
  display: none;
}

body.is-low-performance-mode #playfieldTint {
  box-shadow: none;
}

#ballCallout {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  pointer-events: none;
  z-index: 8;
  white-space: nowrap;
  color: rgba(255, 247, 225, 0.96);
  font-size: 18px;
  letter-spacing: 0.03em;
  font-weight: 400;
  text-shadow:
    0 0 4px var(--bg-bottom),
    0 0 12px var(--bg-bottom);
  transform: translate(-9999px, -9999px);
  transform-origin: left center;
  will-change: transform, opacity;
}

#thumbControl {
  position: fixed;
  top: 0;
  left: 0;
  display: none;
  box-sizing: border-box;
  border: 2px solid var(--playfield-border-color);
  border-radius: 50%;
  background: transparent;
  box-shadow: 0 0 18px color-mix(in srgb, var(--playfield-border-color) 24%, transparent);
  opacity: 0;
  pointer-events: none;
  touch-action: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transform: translate(-9999px, -9999px);
  transition: opacity 140ms ease;
  z-index: 2147483000;
}

#thumbControl.is-visible {
  display: block;
  opacity: 1;
  pointer-events: auto;
}

body.is-multiplayer-mode #thumbControl {
  z-index: 2147483000;
}

#thumbControl.is-desktop-pointer {
  background: var(--bg-top);
  pointer-events: none;
}

body.is-pointer-cursor-hidden,
body.is-pointer-cursor-hidden * {
  cursor: none !important;
}

#thumbControlKnob,
#thumbControlFinger {
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
}

.thumbControlTrailGhost {
  z-index: 1;
  filter: blur(1px);
}

#thumbControlKnob {
  z-index: 3;
  border-radius: 50%;
  background: radial-gradient(
    circle at var(--sphere-light-x) var(--sphere-light-y),
    var(--ball-highlight) 0%,
    var(--ball-mid) 58%,
    var(--ball-dark) 100%
  );
  box-shadow:
    0 0 16px var(--ball-glow),
    inset calc(var(--ball-inset-shadow-x) * 0.45) calc(var(--ball-inset-shadow-y) * 0.45) 10px rgba(0, 0, 0, 0.3),
    inset calc(var(--ball-inset-light-x) * 0.42) calc(var(--ball-inset-light-y) * 0.42) 6px rgba(255, 255, 255, 0.22),
    calc(var(--ball-shadow-x) * 0.42) calc(var(--ball-shadow-y) * 0.42) 8px rgba(0, 0, 0, 0.34);
  transform: translate(-9999px, -9999px);
  will-change: transform;
}

#thumbControlFinger {
  z-index: 2;
  height: 28px;
  opacity: 0;
  transform: translate(-9999px, -9999px);
  transform-origin: 0 50%;
  will-change: transform, opacity, width;
}

#mouseOriginCrosshair {
  position: fixed;
  display: none !important;
  top: 0;
  left: 0;
  width: 20px;
  height: 20px;
  margin: -10px 0 0 -10px;
  opacity: 0;
  pointer-events: none;
  z-index: 2147483000;
  transform: translate(-9999px, -9999px);
}

#mouseOriginLine {
  position: fixed;
  display: none !important;
  top: 0;
  left: 0;
  height: 1px;
  width: 0;
  opacity: 0;
  pointer-events: none;
  z-index: 2147483000;
  background: color-mix(in srgb, var(--multiplayer-control-color, #ffbe5c) 72%, transparent);
  transform-origin: 0 50%;
  transform: translate(-9999px, -9999px);
}

#mouseOriginLine::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  width: 0;
  height: 0;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 8px solid color-mix(in srgb, var(--multiplayer-control-color, #ffda88) 86%, white);
  transform: translateY(-50%);
}

#mouseOriginCrosshair::before,
#mouseOriginCrosshair::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  background: color-mix(in srgb, var(--multiplayer-control-color, #e8f0ff) 70%, transparent);
  transform: translate(-50%, -50%);
}

#mouseOriginCrosshair::before {
  width: 20px;
  height: 1px;
}

#mouseOriginCrosshair::after {
  width: 1px;
  height: 20px;
}

#blockContainer {
  position: absolute;
  inset: 0;
}

#bonusGameContainer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 3;
}

.bonusGameZone {
  position: absolute;
  box-sizing: border-box;
  pointer-events: none;
  opacity: 0.92;
  transform-origin: center;
  transition:
    opacity 0.18s ease,
    filter 0.18s ease,
    background 0.18s ease,
    border-color 0.18s ease;
}

.bonusGameZone.portal {
  border: 3px solid rgba(153, 241, 255, 0.92);
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(153, 241, 255, 0.18) 0%, rgba(153, 241, 255, 0.08) 44%, rgba(153, 241, 255, 0) 70%),
    conic-gradient(from 40deg, rgba(153, 241, 255, 0), rgba(153, 241, 255, 0.44), rgba(153, 241, 255, 0));
  box-shadow:
    0 0 18px rgba(153, 241, 255, 0.24),
    inset 0 0 18px rgba(153, 241, 255, 0.18);
}

.bonusGameZone.portal.is-active {
  filter: brightness(1.7);
}

.bonusGameZone.cracked-tile {
  border: 0;
  border-radius: 4px;
  background:
    linear-gradient(45deg, transparent 46%, rgba(255, 224, 130, 0.68) 47%, rgba(255, 224, 130, 0.68) 49%, transparent 50%),
    linear-gradient(110deg, transparent 58%, rgba(255, 241, 214, 0.54) 59%, rgba(255, 241, 214, 0.54) 61%, transparent 62%),
    linear-gradient(16deg, transparent 36%, rgba(255, 190, 115, 0.42) 37%, rgba(255, 190, 115, 0.42) 39%, transparent 40%);
  filter: drop-shadow(0 0 7px rgba(255, 224, 130, 0.18));
}

.bonusGameZone.cracked-tile.is-cracked {
  border: 0;
  background:
    linear-gradient(45deg, transparent 39%, rgba(255, 224, 130, 0.88) 40%, rgba(255, 224, 130, 0.88) 43%, transparent 44%),
    linear-gradient(110deg, transparent 52%, rgba(255, 241, 214, 0.7) 53%, rgba(255, 241, 214, 0.7) 56%, transparent 57%),
    linear-gradient(162deg, transparent 28%, rgba(255, 190, 115, 0.62) 29%, rgba(255, 190, 115, 0.62) 32%, transparent 33%);
}

.bonusGameZone.cracked-tile.is-open {
  border: 1px solid rgba(255, 224, 130, 0.24);
  border-radius: 50%;
  background:
    radial-gradient(
      circle at 50% 54%,
      rgba(0, 0, 0, 0.98) 0%,
      rgba(0, 0, 0, 0.94) 54%,
      rgba(255, 224, 130, 0.18) 56%,
      rgba(255, 224, 130, 0) 70%
    ),
    radial-gradient(circle, rgba(0, 0, 0, 0.92), rgba(0, 0, 0, 0));
  box-shadow:
    inset 0 0 18px rgba(0, 0, 0, 0.84),
    0 0 12px rgba(255, 224, 130, 0.1);
  filter: none;
}

.bonusGameZone.sticky-zone {
  border-radius: 999px;
  background:
    radial-gradient(circle at 35% 28%, rgba(0, 0, 0, 0.42), rgba(14, 48, 92, 0.48) 52%, rgba(4, 18, 39, 0.78)), rgba(3, 14, 31, 0.7);
  box-shadow:
    inset 0 0 20px rgba(0, 0, 0, 0.38),
    0 0 16px rgba(18, 79, 145, 0.16);
}

.bonusGameZone.conveyor-strip {
  border-radius: 8px;
  border: 1px solid rgba(228, 255, 251, 0.34);
  background:
    repeating-linear-gradient(90deg, rgba(228, 255, 251, 0.2) 0 10px, rgba(228, 255, 251, 0.06) 10px 20px), rgba(12, 24, 37, 0.28);
  color: rgba(228, 255, 251, 0.72);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}

.bonusGameZone.conveyor-strip[data-direction='left'] {
  transform: rotate(180deg);
}

.bonusGameZone.conveyor-strip[data-direction='up'] {
  transform: rotate(-90deg);
}

.bonusGameZone.conveyor-strip[data-direction='down'] {
  transform: rotate(90deg);
}

.bonusGameZone.wind-field {
  border: 0;
  color: rgba(220, 252, 255, 0.16);
  display: grid;
  place-items: center;
  font-size: 42px;
  font-weight: 800;
  line-height: 1;
  text-shadow:
    0 0 18px rgba(120, 232, 242, 0.2),
    0 0 42px rgba(120, 232, 242, 0.18);
  background:
    repeating-linear-gradient(0deg, rgba(120, 232, 242, 0.07) 0 2px, transparent 2px 34px),
    repeating-linear-gradient(90deg, rgba(120, 232, 242, 0.05) 0 2px, transparent 2px 44px);
}

.bonusGameZone.wind-field[data-direction='left'] {
  transform: rotate(180deg);
}

.bonusGameZone.wind-field[data-direction='up'] {
  transform: rotate(-90deg);
}

.bonusGameZone.wind-field[data-direction='down'] {
  transform: rotate(90deg);
}

.bonusGameZone.one-way-gate {
  border-radius: 8px;
  border: 1px solid rgba(232, 255, 232, 0.5);
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.04)), rgba(105, 208, 160, 0.32);
  color: rgba(244, 255, 238, 0.82);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.44);
  box-shadow:
    0 0 16px rgba(105, 208, 160, 0.14),
    inset 0 0 12px rgba(255, 255, 255, 0.12);
}

.bonusGameZone.one-way-gate.is-active {
  filter: brightness(1.55);
}

.bonusGameZone.one-way-gate[data-direction='left'] {
  transform: rotate(180deg);
}

.bonusGameZone.one-way-gate[data-direction='up'] {
  transform: rotate(-90deg);
}

.bonusGameZone.one-way-gate[data-direction='down'] {
  transform: rotate(90deg);
}

.bonusGameZone.hard-triangle {
  border: 0;
  background: transparent;
  filter: drop-shadow(var(--block-shadow-x) var(--block-shadow-y) 8px rgba(0, 0, 0, 0.3));
}

.bonusGameZone.hard-triangle::before,
.bonusGameZone.hard-triangle::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.bonusGameZone.hard-triangle::before {
  background: linear-gradient(var(--block-light-angle), var(--block-light) 0%, var(--block-mid) 58%, var(--block-dark) 100%);
  box-shadow:
    inset var(--block-inset-shadow-x) var(--block-inset-shadow-y) 10px rgba(0, 0, 0, 0.34),
    inset var(--block-inset-light-x) var(--block-inset-light-y) 5px var(--block-sheen);
}

.bonusGameZone.hard-triangle::after {
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.28), transparent 34%), linear-gradient(315deg, rgba(0, 0, 0, 0.26), transparent 42%);
  opacity: 0.8;
}

.bonusGameZone.hard-triangle.is-active {
  filter: brightness(1.28) drop-shadow(0 0 14px rgba(224, 232, 245, 0.34))
    drop-shadow(var(--block-shadow-x) var(--block-shadow-y) 8px rgba(0, 0, 0, 0.3));
}

.bonusGameZone.hard-triangle[data-direction='right'] {
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}

.bonusGameZone.hard-triangle[data-direction='left'] {
  clip-path: polygon(100% 0, 0 50%, 100% 100%);
}

.bonusGameZone.hard-triangle[data-direction='up'] {
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
}

.bonusGameZone.hard-triangle[data-direction='down'] {
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

#ball {
  position: absolute;
  top: 0;
  left: 0;
  width: 50px;
  height: 50px;
  background: radial-gradient(
    circle at var(--sphere-light-x) var(--sphere-light-y),
    var(--ball-highlight) 0%,
    var(--ball-mid) 58%,
    var(--ball-dark) 100%
  );
  border-radius: 50%;
  box-shadow:
    0 0 28px var(--ball-glow),
    inset var(--ball-inset-shadow-x) var(--ball-inset-shadow-y) 20px rgba(0, 0, 0, 0.28),
    inset var(--ball-inset-light-x) var(--ball-inset-light-y) 10px rgba(255, 255, 255, 0.24),
    var(--ball-shadow-x) var(--ball-shadow-y) 15px rgba(0, 0, 0, 0.36);
  display: none;
  z-index: 5;
  transform-origin: center;
  will-change: transform;
}

#startBallSlot {
  order: 2;
  display: none;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 126px;
  pointer-events: none;
}

#startBallSlot #ball {
  position: relative;
  top: auto;
  left: auto;
  flex: 0 0 auto;
}

#multiplayerBoard {
  position: relative;
  display: none;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  flex: 0 0 auto;
  margin: 0 auto;
  padding: clamp(22px, 7%, 54px);
  border: 2px solid var(--multiplayer-board-color, rgba(241, 196, 15, 0.82));
  border-radius: 28px;
  background: var(--bg-top);
  background-clip: padding-box;
  overflow: hidden;
  pointer-events: none;
  z-index: 3;
  transform-origin: center;
}

#multiplayerBoard[hidden] {
  display: none !important;
}

#multiplayerSphereContainer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 7;
}

.multiplayerSphere {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  border-radius: 50%;
  background: radial-gradient(
    circle at 34% 28%,
    #ffffff 0%,
    color-mix(in srgb, var(--sphere-color) 68%, #ffffff) 18%,
    var(--sphere-color) 62%,
    color-mix(in srgb, var(--sphere-color) 62%, #000000) 100%
  );
  transform-origin: center;
  will-change: transform;
  transition: opacity 0.18s ease;
}

.multiplayerTrailGhost {
  z-index: 1;
  background: radial-gradient(
    circle at 35% 30%,
    rgba(255, 255, 255, 0.34) 0%,
    color-mix(in srgb, var(--sphere-color) 62%, transparent) 58%,
    transparent 100%
  );
}

.multiplayerSphere.is-local {
  outline: 0;
}

.multiplayerSphere.is-out {
  opacity: 1;
}

.multiplayerSphere.is-round-winner {
  z-index: 2;
}

.multiplayerSphere.is-round-intro::after {
  content: '';
  position: absolute;
  inset: -18%;
  border: 2px solid rgba(255, 255, 255, 0.92);
  border-radius: 999px;
  box-shadow:
    0 0 18px rgba(255, 255, 255, 0.78),
    inset 0 0 16px rgba(255, 255, 255, 0.34);
  pointer-events: none;
  animation: multiplayerSphereIntroRing 0.95s ease-out both;
}

.multiplayerCountdown {
  position: absolute;
  inset: 0;
  z-index: 9;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(245, 249, 255, 0.94);
  font-size: clamp(58px, 18vmin, 128px);
  font-weight: 800;
  line-height: 1;
  pointer-events: none;
  text-shadow:
    0 0 8px rgba(6, 13, 22, 0.86),
    0 0 30px color-mix(in srgb, var(--multiplayer-board-color, #f4c542) 58%, transparent);
}

.multiplayerCountdown[hidden] {
  display: none;
}

.multiplayerCountdown.is-running {
  animation: multiplayerCountdownPulse 0.36s ease-out both;
}

.multiplayerCountdown.is-result {
  display: grid;
  place-items: center;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  max-width: 100%;
  padding: 0 clamp(18px, 7vw, 72px);
  font-size: clamp(28px, 8.4vmin, 64px);
  letter-spacing: 0;
  line-height: 1.06;
  text-align: center;
  white-space: pre-line;
  overflow-wrap: normal;
  word-break: normal;
  text-shadow:
    0 1px 1px rgba(0, 0, 0, 0.42),
    0 -1px 1px rgba(0, 0, 0, 0.24),
    1px 0 1px rgba(0, 0, 0, 0.24),
    -1px 0 1px rgba(0, 0, 0, 0.24);
}

.multiplayerImpactParticle {
  position: absolute;
  top: 0;
  left: 0;
  border-radius: 999px;
  filter: drop-shadow(0 0 7px currentColor);
  opacity: 0;
  pointer-events: none;
  will-change: opacity, transform;
}

body.is-low-performance-mode .multiplayerTrailGhost,
body.is-low-performance-mode .multiplayerImpactParticle {
  display: none;
}

.block {
  position: absolute;
  border-radius: 4px;
  background: transparent;
  filter: drop-shadow(var(--block-shadow-x) var(--block-shadow-y) 8px var(--block-shadow));
  transition:
    opacity 0.3s ease,
    filter 0.15s ease;
  z-index: 4;
  transform-origin: center;
  will-change: transform;
}

.block.game-over-fade {
  opacity: 0;
  transition:
    opacity 0.55s ease,
    filter 0.15s ease;
}

.block::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 4px;
  background: linear-gradient(var(--block-light-angle), var(--block-light) 0%, var(--block-mid) 58%, var(--block-dark) 100%);
  box-shadow:
    inset var(--block-inset-shadow-x) var(--block-inset-shadow-y) 8px rgba(0, 0, 0, 0.25),
    inset var(--block-inset-light-x) var(--block-inset-light-y) 4px var(--block-sheen);
  transition:
    background 0.1s,
    box-shadow 0.1s;
}

body.is-low-performance-mode .block {
  filter: none;
  transition: opacity 0.16s ease;
}

body.is-low-performance-mode .block::before {
  box-shadow: none;
  transition: background 0.1s;
}

.block.is-delayed-spawn-pulse::before {
  animation: delayedSpawnBlockPulse 0.52s cubic-bezier(0.2, 0.78, 0.2, 1) both;
  transform-origin: center;
  will-change: transform, filter, opacity;
}

@keyframes delayedSpawnBlockPulse {
  0% {
    opacity: 0.64;
    transform: scale(0.7);
    filter: brightness(1.55);
  }

  42% {
    opacity: 1;
    transform: scale(1.18);
    filter: brightness(1.22);
  }

  100% {
    opacity: 1;
    transform: scale(1);
    filter: brightness(1);
  }
}

.block.bonus-game-sphere,
.block.bonus-game-sphere::before {
  border-radius: 50%;
}

.block.bonus-game-sphere::before {
  background: radial-gradient(
    circle at var(--sphere-light-x) var(--sphere-light-y),
    #ffffff 0%,
    var(--block-light) 18%,
    var(--block-mid) 58%,
    var(--block-dark) 100%
  );
  box-shadow:
    inset var(--sphere-inset-shadow-x) var(--sphere-inset-shadow-y) 12px rgba(0, 0, 0, 0.27),
    inset var(--sphere-inset-light-x) var(--sphere-inset-light-y) 5px rgba(255, 255, 255, 0.22);
}

.block.bonus-game-sphere::after {
  content: '';
  position: absolute;
  inset: 18% 52% 52% 18%;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.38);
  filter: blur(1px);
  pointer-events: none;
}

.block.bonus-game-invisible {
  filter: none;
}

.block.bonus-game-invisible::before {
  opacity: 0;
}

.block.bonus-game-invisible.bonus-game-revealed,
.block.bonus-game-invisible.knocked {
  filter: drop-shadow(var(--block-shadow-x) var(--block-shadow-y) 8px var(--block-shadow));
}

.block.bonus-game-invisible.bonus-game-revealed::before,
.block.bonus-game-invisible.knocked::before {
  opacity: 1;
}

.block.bonus-game-shielded::after,
.block.is-shielded::after {
  content: '';
  position: absolute;
  inset: -6px;
  border: 2px solid rgba(222, 239, 255, 0.74);
  border-radius: 8px;
  box-shadow:
    0 0 14px rgba(167, 206, 255, 0.28),
    inset 0 0 10px rgba(255, 255, 255, 0.16);
  pointer-events: none;
  transition:
    border-color 0.16s ease,
    opacity 0.16s ease,
    transform 0.16s ease;
}

.block.bonus-game-shielded.bonus-game-shield-cracked::after,
.block.is-shielded.is-shield-cracked::after {
  border-style: dashed;
  border-color: rgba(255, 212, 122, 0.78);
  opacity: 0.72;
  transform: scale(0.94);
}

.block.bonus-game-shielded.knocked::after,
.block.is-shielded.knocked::after {
  opacity: 0;
}

.block.bonus-game-target-order::after {
  content: attr(data-target-order);
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: rgba(35, 22, 11, 0.84);
  font-size: 18px;
  font-weight: 800;
  line-height: 1;
  pointer-events: none;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.22);
}

.block.bonus-game-target-order.is-next-target {
  filter: drop-shadow(0 0 14px rgba(255, 196, 112, 0.42)) drop-shadow(var(--block-shadow-x) var(--block-shadow-y) 8px var(--block-shadow));
}

.block.bonus-game-target-order.is-next-target::before {
  box-shadow:
    0 0 0 3px rgba(255, 246, 218, 0.52),
    inset var(--block-inset-shadow-x) var(--block-inset-shadow-y) 8px rgba(0, 0, 0, 0.25),
    inset var(--block-inset-light-x) var(--block-inset-light-y) 4px var(--block-sheen);
}

.block.bonus-game-target-order.knocked::after {
  opacity: 0.34;
}

.knocked {
  filter: drop-shadow(var(--knocked-shadow-x) var(--knocked-shadow-y) 5px rgba(0, 0, 0, 0.18));
}

.knocked::before {
  background: linear-gradient(var(--block-light-angle), var(--knocked-light) 0%, var(--knocked-mid) 58%, var(--knocked-dark) 100%);
  box-shadow:
    inset var(--block-inset-shadow-x) var(--block-inset-shadow-y) 8px rgba(0, 0, 0, 0.25),
    inset var(--block-inset-light-x) var(--block-inset-light-y) 4px var(--knocked-sheen);
}

.block.bonus-game-sphere.knocked::before {
  background: radial-gradient(
    circle at var(--sphere-light-x) var(--sphere-light-y),
    var(--knocked-light) 0%,
    var(--knocked-mid) 58%,
    var(--knocked-dark) 100%
  );
  box-shadow:
    inset var(--sphere-inset-shadow-x) var(--sphere-inset-shadow-y) 12px rgba(0, 0, 0, 0.24),
    inset var(--sphere-inset-light-x) var(--sphere-inset-light-y) 5px var(--knocked-sheen);
}

.block.bonus-game-sphere-fell {
  filter: drop-shadow(0 0 16px rgba(255, 180, 196, 0.4));
}

#startPrompt,
#bestScoreDisplay,
#roundPrompt,
#mobileVersionLinkWrap,
#mobileShareWrap,
#desktopQrPanel {
  box-sizing: border-box;
  font-size: 20px;
  color: var(--hud-color);
  text-align: center;
  pointer-events: none;
  line-height: 1.4;
  font-weight: inherit;
}

#achievementSummary {
  box-sizing: border-box;
  display: none;
  text-align: center;
  font-size: 20px;
  color: var(--hud-color);
  line-height: 1.16;
  font-weight: inherit;
  pointer-events: none;
  white-space: normal;
}

#achievementSummary .achievement-line {
  margin-top: 1px;
}

#achievementSummary .achievement-line:first-child {
  margin-top: 0;
}

#achievementSummary .achievement-line.record {
  color: var(--record-color-solid);
}

#titleLogo {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) scale(var(--overlay-text-scale, 1));
  transform-origin: center top;
  width: calc(100vw - 32px);
  max-width: 560px;
  padding: 0 calc(16px + var(--safe-right)) 0 calc(16px + var(--safe-left));
  box-sizing: border-box;
  text-align: center;
  pointer-events: none;
  z-index: 1002;
  display: none;
  color: rgba(255, 255, 255, 0.96);
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.28);
  transition:
    color 140ms ease,
    text-shadow 140ms ease;
}

#titleLogo .logo {
  line-height: 1;
  white-space: nowrap;
  user-select: none;
  letter-spacing: -0.04em;
  font-size: var(--title-logo-font-size, clamp(42px, 11vw, 88px));
  display: inline-flex;
  align-items: baseline;
  gap: 0.16em;
}

#titleLogo .logo-mark {
  display: inline-block;
  font-size: 0.72em;
  line-height: 1;
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.28));
  transform: translateY(-0.02em);
}

#titleLogo .tilt {
  display: inline-block;
  font-style: italic;
  font-weight: 300;
  transform: skewX(-7deg);
  margin-right: 0.05em;
}

#titleLogo .bump {
  display: inline-block;
  font-weight: 700;
}

#titleLogo .bump span {
  display: inline-block;
  transition: transform 160ms cubic-bezier(0.22, 0.78, 0.2, 1);
  will-change: transform;
}

#titleLogo .bump .letter-u {
  transform: translate3d(var(--logo-u-x, 0px), var(--logo-u-y, 0px), 0);
}

#titleLogo .bump .letter-m {
  transform: translate3d(var(--logo-m-x, 0px), var(--logo-m-y, 0px), 0);
}

#titleLogo .bump .letter-p {
  transform: translate3d(var(--logo-p-x, 0px), var(--logo-p-y, 0px), 0);
}

#titleLogo .bump span:nth-child(1) {
  margin-right: 0.04em;
}
#titleLogo .bump span:nth-child(2) {
  margin-right: 0.08em;
}
#titleLogo .bump span:nth-child(3) {
  margin-right: 0.13em;
}

.runSummaryNav {
  position: absolute;
  left: 50%;
  display: none;
  grid-template-columns: repeat(5, var(--nav-slot-size));
  grid-template-rows: var(--nav-slot-size);
  justify-content: center;
  justify-items: center;
  align-items: center;
  column-gap: var(--nav-gap);
  --nav-slot-size: 46px;
  --nav-gap: clamp(18px, 5vw, 34px);
  --nav-icon-size: 28px;
  width: calc(100vw - 32px);
  max-width: 560px;
  padding: 0 calc(16px + var(--safe-right)) 0 calc(16px + var(--safe-left));
  box-sizing: border-box;
  transform: translateX(-50%) scale(var(--overlay-text-scale, 1));
  transform-origin: center top;
  z-index: 1102;
  pointer-events: auto;
  touch-action: none;
}

.runSummaryNavButton {
  position: relative;
  width: var(--nav-slot-size);
  height: var(--nav-slot-size);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(232, 240, 255, 0.78);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  user-select: none;
  transform-origin: center;
  transition: color 140ms ease;
  animation: none;
}

.runSummaryNavButton.is-collapsible {
  display: none;
}

.runSummaryMenuIcon,
.runSummaryNavLabel,
#accountMenuButton {
  display: none;
}

#scoreTab {
  grid-column: 1;
}

#runSummaryNavMore,
#leaderboardTab {
  grid-column: 2;
}

#goalsTab {
  grid-column: 3;
  --nav-pop-offset: calc(-1 * (var(--nav-slot-size) + var(--nav-gap)));
}

#multiplayerTab {
  grid-column: 4;
  --nav-pop-offset: calc(-1 * (var(--nav-slot-size) + var(--nav-gap) + var(--nav-slot-size) + var(--nav-gap)));
}

#communityTab {
  grid-column: 5;
  --nav-pop-offset: calc(
    -1 * (var(--nav-slot-size) + var(--nav-gap) + var(--nav-slot-size) + var(--nav-gap) + var(--nav-slot-size) + var(--nav-gap))
  );
}

#communityTab[hidden] {
  display: none !important;
}

#scoreTab,
#runSummaryNavMore,
#leaderboardTab,
#goalsTab,
#multiplayerTab,
#communityTab {
  grid-row: 1;
}

#leaderboardTab {
  --nav-pop-offset: 0px;
}

.runSummaryNav.is-expanded .runSummaryNavButton.is-collapsible {
  display: inline-flex;
  animation: runSummaryNavExpandRight 280ms cubic-bezier(0.18, 0.9, 0.22, 1.18) both;
}

.runSummaryNav.is-collapsing .runSummaryNavButton.is-collapsible {
  display: inline-flex;
  pointer-events: none;
  animation: runSummaryNavCollapseLeft 300ms cubic-bezier(0.5, 0, 0.7, 0.2) both;
}

.runSummaryNav.is-expanded .runSummaryNavMoreButton {
  display: none;
}

.runSummaryNav.is-collapsing .runSummaryNavMoreButton {
  display: none;
}

.runSummaryNavMoreButton {
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 0;
}

.runSummaryNavMoreButton span {
  display: block;
  transform: translateY(0);
}

.runSummaryNavButton:not([aria-selected='true']) {
  animation: none;
}

.runSummaryNavButton[aria-selected='true'] {
  color: var(--record-color-solid);
}

.runSummaryNavButton.has-daily-bonus-notification::after {
  content: '';
  position: absolute;
  top: 6px;
  right: 6px;
  width: 13px;
  height: 13px;
  border: 2px solid var(--bg-top);
  border-radius: 50%;
  box-sizing: border-box;
  background: var(--record-color-solid);
  pointer-events: none;
}

#scoreTab .playIconFill {
  display: none;
}

#scoreTab[aria-selected='true'] .playIconOutline {
  display: none;
}

#scoreTab[aria-selected='true'] .playIconFill {
  display: block;
}

.runSummaryNavButton:focus,
.runSummaryNavButton:focus-visible,
.runSummaryNavButton:active {
  outline: none;
}

@media (hover: hover) and (pointer: fine) {
  .runSummaryNavButton:hover {
    color: var(--record-color-solid);
  }
}

.runSummaryNavButton svg {
  width: var(--nav-icon-size);
  height: var(--nav-icon-size);
  transform: scale(1);
  transform-origin: center;
  animation: none;
  will-change: transform;
  fill: currentColor;
  stroke: none;
}

.runSummaryNavButton[aria-selected='true'] svg {
  animation: runSummaryNavSelect 280ms cubic-bezier(0.22, 0.78, 0.2, 1);
  animation-iteration-count: 1;
  animation-fill-mode: none;
}

@media (prefers-reduced-motion: reduce) {
  .runSummaryNavButton {
    transition: none;
  }

  .runSummaryNav.is-expanded .runSummaryNavButton.is-collapsible {
    animation: none;
  }

  .runSummaryNav.is-collapsing .runSummaryNavButton.is-collapsible {
    animation: none;
  }

  .runSummaryNavButton[aria-selected='true'] {
    animation: none;
  }

  .runSummaryNavButton[aria-selected='true'] svg {
    animation: none;
  }
}

@keyframes runSummaryNavSelect {
  0% {
    transform: scale(1);
  }

  45% {
    transform: scale(1.3);
  }

  100% {
    transform: scale(1);
  }
}

@keyframes runSummaryNavExpandRight {
  0% {
    opacity: 0;
    transform: translateX(var(--nav-pop-offset, 0px)) scale(0.64);
  }

  68% {
    opacity: 1;
    transform: translateX(3px) scale(1.12);
  }

  100% {
    opacity: 1;
    transform: translateX(0) scale(1);
  }
}

@keyframes runSummaryNavCollapseLeft {
  0% {
    opacity: 1;
    transform: translateX(0) scale(1);
  }

  35% {
    opacity: 1;
    transform: translateX(3px) scale(1.08);
  }

  100% {
    opacity: 0;
    transform: translateX(var(--nav-pop-offset, 0px)) scale(0.64);
  }
}

body.is-top-left-menu-nav .runSummaryNav {
  grid-template-columns: minmax(0, 1fr);
  grid-auto-rows: auto;
  grid-template-rows: none;
  justify-content: start;
  justify-items: start;
  align-content: start;
  align-items: start;
  row-gap: 0;
  column-gap: 0;
  --nav-slot-size: 46px;
  --nav-icon-size: 26px;
  --nav-board-radius: 0px;
  --nav-board-background: var(--bg-top);
  --nav-board-border-width: 4px;
  --nav-board-border-top-color: var(--playfield-border-color);
  --nav-board-border-right-color: var(--playfield-border-color);
  --nav-board-border-bottom-color: var(--playfield-border-color);
  --nav-board-border-left-color: var(--playfield-border-color);
  --nav-board-shadow: 0 0 0 1px rgba(255, 255, 255, 0.04) inset;
  --nav-selected-color: var(--level-fore-color);
  --nav-menu-inset: 10px;
  max-width: none;
  padding: var(--nav-menu-inset);
  border-style: solid;
  border-width: var(--nav-board-border-width);
  border-color: transparent;
  border-radius: var(--nav-board-radius);
  background: transparent;
  box-sizing: border-box;
  overflow: hidden;
  pointer-events: none;
  transform: none;
  transform-origin: left top;
  touch-action: none;
}

body.is-top-left-menu-nav .runSummaryNavButton {
  grid-column: 1;
  grid-row: auto;
  width: 100%;
  height: 56px;
  gap: 14px;
  justify-content: flex-start;
  padding: 0 12px;
  border: 0;
  background: transparent;
  box-shadow: none;
  color: rgba(235, 242, 255, 0.86);
  font-size: 22px;
  font-weight: 400;
  line-height: 1.18;
  text-align: left;
  text-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transition: color 140ms ease;
}

body.is-top-left-menu-nav #scoreTab,
body.is-top-left-menu-nav #runSummaryNavMore,
body.is-top-left-menu-nav #leaderboardTab,
body.is-top-left-menu-nav #goalsTab,
body.is-top-left-menu-nav #multiplayerTab,
body.is-top-left-menu-nav #communityTab,
body.is-top-left-menu-nav #accountMenuButton {
  grid-column: 1;
  grid-row: auto;
  --nav-pop-offset: 0px;
}

body.is-top-left-menu-nav .runSummaryNavButton.is-collapsible,
body.is-top-left-menu-nav #scoreTab,
body.is-top-left-menu-nav #accountMenuButton {
  display: none;
}

body.is-top-left-menu-nav #runSummaryNavMore {
  display: inline-flex;
  width: var(--nav-slot-size);
  height: var(--nav-slot-size);
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: rgba(235, 242, 255, 0.88);
  pointer-events: auto;
}

body.is-top-left-menu-nav .runSummaryNav.is-expanded #runSummaryNavMore {
  display: inline-flex;
  border-radius: 6px;
  margin-bottom: 8px;
}

body.is-top-left-menu-nav .runSummaryNav.is-expanded {
  background: var(--nav-board-background);
  border-top-color: var(--nav-board-border-top-color);
  border-right-color: var(--nav-board-border-right-color);
  border-bottom-color: var(--nav-board-border-bottom-color);
  border-left-color: var(--nav-board-border-left-color);
  box-shadow: var(--nav-board-shadow);
  pointer-events: auto;
}

body.is-top-left-menu-nav .runSummaryNav.is-expanded .runSummaryNavButton.is-collapsible,
body.is-top-left-menu-nav .runSummaryNav.is-expanded #scoreTab,
body.is-top-left-menu-nav .runSummaryNav.is-expanded #accountMenuButton {
  display: flex;
  pointer-events: auto;
  animation: none;
}

body.is-top-left-menu-nav .runSummaryNav.is-expanded #scoreTab {
  border-radius: 6px 6px 0 0;
}

body.is-top-left-menu-nav .runSummaryNav.is-expanded #accountMenuButton {
  border-radius: 0 0 6px 6px;
}

body.is-top-left-menu-nav .runSummaryNav.is-expanded .runSummaryNavMoreButton,
body.is-top-left-menu-nav .runSummaryNav.is-collapsing .runSummaryNavMoreButton {
  display: inline-flex;
}

body.is-top-left-menu-nav .runSummaryNav.is-collapsing .runSummaryNavButton.is-collapsible {
  display: none;
}

body.is-top-left-menu-nav .runSummaryMoreDots {
  display: none;
}

body.is-top-left-menu-nav .runSummaryMenuIcon {
  display: block;
}

body.is-top-left-menu-nav .runSummaryMenuIcon,
body.is-top-left-menu-nav .accountMenuIcon {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.is-top-left-menu-nav .runSummaryNavButton svg {
  flex: 0 0 auto;
  width: var(--nav-icon-size);
  height: var(--nav-icon-size);
  animation: none;
}

body.is-top-left-menu-nav #runSummaryNavMore .runSummaryMenuIcon {
  width: 28px;
  height: 28px;
}

body.is-top-left-menu-nav .runSummaryMenuIcon path {
  opacity: 1;
  transform-box: view-box;
  transform-origin: 12px 12px;
  transition:
    opacity 150ms ease,
    transform 170ms ease;
}

body.is-top-left-menu-nav .runSummaryMenuIcon .runSummaryMenuCloseStroke {
  opacity: 0;
  transform: scale(0.78);
}

body.is-top-left-menu-nav .runSummaryNav.is-expanded .runSummaryMenuStrokeTop {
  opacity: 0;
  transform: translateY(5px) scaleX(0.48);
}

body.is-top-left-menu-nav .runSummaryNav.is-expanded .runSummaryMenuStrokeMiddle {
  opacity: 0;
  transform: scaleX(0.32);
}

body.is-top-left-menu-nav .runSummaryNav.is-expanded .runSummaryMenuStrokeBottom {
  opacity: 0;
  transform: translateY(-5px) scaleX(0.48);
}

body.is-top-left-menu-nav .runSummaryNav.is-expanded .runSummaryMenuCloseStroke {
  opacity: 1;
  transform: scale(1);
}

body.is-top-left-menu-nav .runSummaryNavLabel {
  display: block;
  min-width: 0;
  letter-spacing: 0;
  line-height: 1.18;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.is-top-left-menu-nav .runSummaryNavButton[aria-selected='true'] {
  color: var(--nav-selected-color, var(--hud-solid));
}

body.is-top-left-menu-nav .runSummaryNavButton.has-daily-bonus-notification::after {
  top: 14px;
  right: 12px;
  width: 10px;
  height: 10px;
  border-width: 1px;
}

body.is-top-left-menu-nav #accountButton {
  display: none;
}

body.is-top-left-menu-nav .runSummaryPanelViewport {
  overflow: hidden;
  scroll-snap-type: none;
  touch-action: pan-y;
}

body.is-top-left-menu-nav .runSummaryPanelTrack {
  position: relative;
  display: block;
  overflow: hidden;
  touch-action: pan-y;
}

body.is-top-left-menu-nav .runSummaryPanel {
  position: absolute;
  inset: 0;
  flex: none;
  width: 100%;
  overflow: hidden;
  overscroll-behavior: none;
  scroll-snap-align: none;
  touch-action: none;
}

body.is-top-left-menu-nav .runSummaryPanel.is-scrollable {
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;
}

body.is-top-left-menu-nav .runSummaryPanel[aria-hidden='true'] {
  display: none !important;
}

@media (hover: hover) and (pointer: fine) {
  body.is-top-left-menu-nav .runSummaryNavButton:hover {
    color: rgba(255, 255, 255, 0.96);
  }
}

.runSummaryPanelViewport {
  position: absolute;
  left: 50%;
  display: none;
  width: calc(100vw - 32px);
  max-width: 560px;
  padding: 0;
  box-sizing: border-box;
  transform: translateX(-50%) scale(var(--overlay-text-scale, 1));
  transform-origin: center top;
  z-index: 1101;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  pointer-events: auto;
  touch-action: pan-x;
  -webkit-overflow-scrolling: touch;
}

.runSummaryPanelViewport::-webkit-scrollbar {
  display: none;
}

.runSummaryPanelViewport.is-score-only {
  overflow-x: hidden;
  scroll-snap-type: none;
}

.runSummaryPanelViewport.is-account-panel {
  overflow-x: hidden;
  scroll-snap-type: none;
  touch-action: pan-y;
}

.runSummaryPanelViewport.is-gameplay-score-hud {
  z-index: 1;
}

.runSummaryPanelTrack {
  display: none;
  align-items: stretch;
  height: 100%;
  min-height: 0;
}

.runSummaryPanel {
  position: relative;
  display: none;
  flex: 0 0 100%;
  width: 100%;
  max-width: none;
  max-height: min(65vh, 520px);
  max-height: min(65dvh, 520px);
  padding: 0 calc(var(--summary-panel-inline-padding) + var(--safe-right)) 0 calc(var(--summary-panel-inline-padding) + var(--safe-left));
  box-sizing: border-box;
  color: rgba(232, 240, 255, 0.9);
  font-size: var(--summary-panel-font-size);
  line-height: 1.25;
  transform: none;
  transform-origin: center top;
  z-index: 1101;
  overflow-x: hidden;
  overflow-y: hidden;
  overflow-y: clip;
  overscroll-behavior: none;
  scrollbar-width: none;
  pointer-events: auto;
  touch-action: pan-x;
  scroll-snap-align: center;
  scroll-snap-stop: always;
}

.runSummaryPanel[aria-hidden='true'] {
  pointer-events: none;
}

.runSummaryPanel.is-scrollable {
  overflow-y: auto;
  overscroll-behavior: contain;
  touch-action: pan-x pan-y;
}

#leaderboardPanel,
#dailyGoalsPanel,
#communityPanel {
  padding-top: clamp(18px, 3.6vh, 34px);
}

.runSummaryPanel::-webkit-scrollbar {
  display: none;
}

.runSummaryScorePanel {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(4px, 0.8vh, 8px);
  overflow: hidden;
  padding-top: clamp(12px, 2.8vh, 28px);
  pointer-events: none;
}

.runSummaryScorePanel.is-scrollable {
  overflow-y: auto;
  padding-bottom: clamp(12px, 2.4vh, 24px);
  overscroll-behavior: contain;
  pointer-events: auto;
  touch-action: pan-x pan-y;
}

.runSummaryScorePanel.is-start-screen {
  gap: clamp(22px, 4vh, 36px);
  padding-top: clamp(48px, 9vh, 96px);
}

.runSummaryScorePanel.is-start-screen #roundPrompt {
  margin-top: clamp(8px, 2vh, 20px);
}

.runSummaryPanelViewport.is-share-capture,
.runSummaryPanelViewport.is-share-capture .runSummaryPanel {
  overflow: visible;
}

.runSummaryScorePanel.is-share-capture {
  gap: clamp(7px, 1.7vh, 14px);
  overflow: visible;
  padding-top: clamp(26px, 7vh, 70px);
}

.runSummaryScorePanel.is-share-capture #levelIndicator {
  font-size: clamp(132px, 30dvh, 230px);
  line-height: 0.9;
}

.runSummaryScorePanel.is-share-capture #levelIndicator.is-bonus-game-stage {
  font-size: clamp(30px, 8dvh, 48px);
  line-height: 1;
}

.runSummaryScorePanel #startPrompt,
.runSummaryScorePanel #bonusGameRunTitle,
.runSummaryScorePanel #levelIndicator,
.runSummaryScorePanel #bestScoreDisplay,
.runSummaryScorePanel #achievementSummary,
.runSummaryScorePanel #roundPrompt,
.runSummaryScorePanel #bonusGameBackButton,
.runSummaryScorePanel #mobileVersionLinkWrap,
.runSummaryScorePanel #mobileShareWrap {
  position: relative;
  top: auto !important;
  left: auto !important;
  transform: none;
  width: 100%;
  max-width: none;
  padding-right: calc(var(--summary-panel-inline-padding) + var(--safe-right));
  padding-left: calc(var(--summary-panel-inline-padding) + var(--safe-left));
}

.runSummaryScorePanel #startPrompt {
  order: 0;
  font-size: var(--summary-panel-prompt-font-size);
  line-height: 1.25;
  margin-top: 0;
}

.runSummaryScorePanel #bonusGameRunTitle {
  order: -1;
  display: none;
  color: var(--record-color-solid);
  font-size: var(--summary-panel-heading-font-size);
  font-weight: 300;
  line-height: 1.15;
  margin-top: 0;
  text-align: center;
}

.runSummaryScorePanel #roundPrompt {
  order: 5;
  font-size: var(--summary-panel-prompt-font-size);
  line-height: 1.25;
  margin-top: 0;
}

.runSummaryScorePanel #roundPrompt.is-mobile-game-over-reserve::after {
  content: '\00a0';
  display: block;
  visibility: hidden;
}

.runSummaryScorePanel #roundPrompt .bonusGameRetryPrompt {
  font-weight: 400;
}

.runSummaryScorePanel #roundPrompt.is-bonus-game-failed {
  color: rgba(232, 240, 255, 0.86);
  font-size: clamp(22px, 5.7vw, 30px);
  line-height: 1.12;
  margin-top: clamp(8px, 2vh, 20px);
  margin-bottom: clamp(8px, 1.8vh, 18px);
}

.runSummaryScorePanel #roundPrompt.is-bonus-game-failed .bonusGameRetryPrompt {
  display: block;
  color: rgba(255, 255, 255, 0.98);
  font-size: clamp(24px, 6.1vw, 34px);
  font-weight: 400;
  line-height: 1.08;
  margin-top: clamp(18px, 4vh, 34px);
  white-space: nowrap;
}

.runSummaryScorePanel #roundPrompt.is-bonus-game-complete {
  order: 0;
  color: rgba(232, 240, 255, 0.92);
  font-size: clamp(28px, 7.4vw, 40px);
  line-height: 1.05;
  margin-top: clamp(2px, 0.6vh, 6px);
}

.runSummaryScorePanel #bestScoreDisplay {
  order: 1;
  font-size: var(--summary-panel-heading-font-size);
  line-height: 1.2;
  margin-top: 0;
}

.runSummaryScorePanel #levelIndicator {
  order: 2;
  font-size: 154px;
  line-height: 0.82;
  text-align: center;
  transform: scale(var(--level-indicator-scale, 1));
  transform-origin: center center;
}

.runSummaryScorePanel #levelIndicator.is-bonus-game-stage {
  font-size: clamp(28px, 8vw, 44px);
  line-height: 1;
  font-weight: 650;
  margin: clamp(2px, 0.5vh, 6px) 0;
}

.runSummaryScorePanel #levelIndicator.pop {
  animation:
    scorePanelLevelPop 0.6s cubic-bezier(0.2, 0.8, 0.2, 1),
    levelLighten 0.6s ease-out;
}

@keyframes scorePanelLevelPop {
  0% {
    transform: scale(calc(var(--level-indicator-scale, 1) * 0.92));
    opacity: 0.8;
  }
  45% {
    transform: scale(calc(var(--level-indicator-scale, 1) * 1.08));
  }
  100% {
    transform: scale(var(--level-indicator-scale, 1));
    opacity: 1;
  }
}

.runSummaryScorePanel #achievementSummary {
  order: 3;
  font-size: var(--summary-panel-prompt-font-size);
  line-height: 1.1;
}

.runSummaryScorePanel #mobileShareWrap {
  order: 4;
  margin-top: clamp(4px, 1vh, 10px);
}

.runSummaryScorePanel #mobileVersionLinkWrap {
  order: 6;
}

.runSummaryScorePanel.is-no-nav-game-over #startPrompt {
  order: 0;
  margin-top: 0;
}

.runSummaryScorePanel.is-no-nav-game-over #bestScoreDisplay {
  order: 1;
}

.runSummaryScorePanel.is-no-nav-game-over #levelIndicator {
  order: 2;
}

.runSummaryScorePanel.is-no-nav-game-over #achievementSummary {
  order: 3;
}

.runSummaryScorePanel.is-no-nav-game-over #bonusGameBackButton {
  order: 5;
}

.runSummaryScorePanel.is-no-nav-game-over #roundPrompt {
  order: 5;
  margin-top: clamp(6px, 1.2vh, 12px);
}

.runSummaryScorePanel.is-no-nav-game-over #roundPrompt.is-bonus-game-complete {
  order: 0;
  margin-top: clamp(2px, 0.6vh, 6px);
}

.runSummaryScorePanel.is-no-nav-game-over #roundPrompt.is-bonus-game-failed {
  margin-top: clamp(8px, 2vh, 20px);
}

.panelMeta,
.panelEmpty {
  text-align: center;
  color: rgba(208, 220, 236, 0.72);
}

.panelEmpty {
  display: none;
  margin-top: 30px;
}

.leaderboardList {
  list-style: none;
  display: grid;
  gap: 7px;
  margin: 20px 0 0;
  padding: 0;
}

.leaderboardItem,
.leaderboardPlayerRow {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 28px;
}

.leaderboardItem.is-player,
.leaderboardPlayerRow {
  color: var(--record-color-solid);
}

.leaderboardPlayerRow {
  margin-top: 16px;
}

.leaderboardPlayerRow.is-hidden {
  display: none;
}

.leaderboardHistory {
  display: grid;
  gap: 18px;
  margin-top: 24px;
  padding-bottom: 4px;
}

.leaderboardHistorySection {
  display: grid;
  gap: 14px;
  opacity: 0.56;
}

.leaderboardHistoryHeader {
  display: flex;
  align-items: baseline;
  justify-content: center;
  padding-top: 8px;
  color: rgba(232, 240, 255, 0.86);
  text-align: center;
}

.leaderboardHistoryTitle {
  color: rgba(208, 220, 236, 0.66);
  font-size: 0.82em;
  font-weight: 700;
}

.leaderboardHistoryList {
  gap: 5px;
  margin-top: 2px;
}

.leaderboardHistoryPlayerRow {
  margin-top: 6px;
}

.leaderboardRank,
.leaderboardScore {
  font-variant-numeric: tabular-nums;
}

.leaderboardRank {
  text-align: right;
}

.leaderboardNameGroup {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.leaderboardNameGroup.is-editing {
  gap: 0;
}

.leaderboardName {
  min-width: 0;
}

.communityGames,
.communityEditor {
  display: grid;
  gap: 12px;
  padding-bottom: 10px;
}

.communityGamesHeader,
.communityEditorHeader {
  display: grid;
  align-items: center;
  gap: 10px;
}

.communityGamesHeader {
  grid-template-columns: minmax(0, 1fr);
}

.communityGamesTitle {
  min-height: 26px;
  margin: 0;
  color: var(--record-color-solid);
  font-size: inherit;
  font-weight: inherit;
  line-height: 1.25;
  text-align: center;
}

.communityGamesTabs {
  display: grid;
  grid-template-columns: repeat(var(--community-tab-count, 3), minmax(0, 1fr));
  border-radius: 8px;
}

.communityGamesTabs.is-withFilterTab {
  grid-template-columns: minmax(0, 0.83fr) minmax(118px, 1.34fr) minmax(0, 0.83fr);
}

.communityGamesTab,
.communityGamesFilterButton,
.communityGamesFilterOption,
.communityGamesFilterToggle,
.communityGameItem,
.communityGameTitleButton,
.communityGameShareButton,
.communityGameNewButton,
.communityEditorBackButton,
.communityEditorSaveButton,
.communityEditorModeButton,
.communityEditorTitleButton,
.communityEditorTool,
.communityEditorAction,
.communityEditorThemeSwatch,
.communityEditorBall,
.communityEditorObject {
  border: 0;
}

.communityGamesTab {
  position: relative;
  min-height: 34px;
  min-width: 0;
  border: 2px solid rgba(116, 133, 150, 0.7);
  border-left-width: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(208, 220, 236, 0.7);
  font-size: var(--summary-panel-row-font-size);
  font-weight: 300;
}

.communityGamesTabs > .communityGamesTab:first-child {
  border-left-width: 2px;
  border-radius: 8px 0 0 8px;
}

.communityGamesTabs > .communityGamesTab:last-child {
  border-radius: 0 8px 8px 0;
}

.communityGamesTab[aria-selected='true'] {
  z-index: 1;
  margin-left: -2px;
  border-color: var(--record-color-solid);
  border-left-width: 2px;
  background: transparent;
  color: var(--record-color-solid);
  box-shadow: none;
}

.communityGamesTabs > .communityGamesTab:first-child[aria-selected='true'] {
  margin-left: 0;
}

.communityGamesFilterTab {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px;
  align-items: stretch;
  min-width: 0;
  padding: 0;
}

.communityGamesFilterButton {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  width: 100%;
  padding: 0 6px;
  background: transparent;
  color: inherit;
  font: inherit;
}

.communityGamesFilterToggle {
  display: grid;
  min-width: 0;
  padding: 0;
  place-items: center;
  border-left: 1px solid rgba(116, 133, 150, 0.45);
  background: transparent;
  color: inherit;
}

.communityGamesFilterButton:focus-visible,
.communityGamesFilterToggle:focus-visible {
  color: rgba(255, 255, 255, 0.98);
  outline: none;
}

.communityGamesFilterLabel {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.communityGamesFilterChevron {
  flex: 0 0 auto;
  width: 0;
  height: 0;
  border-top: 5px solid currentColor;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
  opacity: 0.86;
}

.communityGamesFilterMenu {
  position: absolute;
  z-index: 6;
  top: calc(100% + 6px);
  right: 0;
  left: 0;
  display: grid;
  gap: 2px;
  min-width: 120px;
  padding: 6px;
  border: 1px solid rgba(116, 133, 150, 0.5);
  border-radius: 8px;
  background: rgba(12, 21, 33, 0.96);
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.28);
}

.communityGamesFilterOption {
  min-height: 28px;
  padding: 4px 8px;
  border-radius: 5px;
  background: transparent;
  color: rgba(232, 240, 255, 0.82);
  font-size: var(--summary-panel-caption-font-size);
  font-weight: 300;
  text-align: left;
}

.communityGamesFilterOption:hover,
.communityGamesFilterOption:focus-visible,
.communityGamesFilterOption[aria-current='true'] {
  background: rgba(116, 133, 150, 0.18);
  color: rgba(255, 255, 255, 0.96);
  outline: none;
}

.communityGameList {
  display: grid;
  gap: 8px;
  margin: 4px 0 0;
}

.communityGameListItem {
  display: block;
  min-width: 0;
}

.communityGameItem {
  display: grid;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 30px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--community-game-core-color, rgba(232, 240, 255, 0.92));
  text-align: left;
}

.communityGameTitleButton {
  cursor: pointer;
}

.communityGameTitleButton:focus-visible,
.communityGameShareButton:focus-visible,
.communityGameLikes.is-likeButton:focus-visible {
  color: rgba(255, 255, 255, 0.98);
  outline: none;
}

.communityGameItem.is-all,
.communityGameItem.is-unfinished,
.communityGameItem.is-mine {
  grid-template-columns: minmax(0, 1fr) minmax(140px, auto);
}

.communityGameTitleWrap {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

.communityGameTitleButton {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  overflow: hidden;
  padding: 0;
  background: transparent;
  color: inherit;
  font-size: var(--summary-panel-row-font-size);
  font-weight: 300;
  line-height: 1.25;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.communityGameShareButton {
  display: grid;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  padding: 3px;
  place-items: center;
  border-radius: 999px;
  background: transparent;
  color: inherit;
  opacity: 0.82;
}

.communityGameShareButton:hover,
.communityGameShareButton:focus-visible {
  opacity: 1;
}

.communityGameShareButton .shareIcon {
  display: block;
  width: 14px;
  height: 14px;
}

.communityGameLikes {
  color: inherit;
  text-align: right;
}

.communityGameLikes.is-likeButton {
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font-family: inherit;
  font-size: var(--summary-panel-caption-font-size);
}

.communityGameLikes.is-unavailable,
.communityGameMetric.is-unreached {
  opacity: 0.52;
}

.communityGameLikes.is-liked {
  color: inherit;
}

.communityGameLikes.is-liked .communityGameLikeIcon svg {
  fill: currentColor;
}

.communityGameStats {
  display: grid;
  grid-template-columns: repeat(3, minmax(42px, 46px));
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
  color: inherit;
}

.communityGameMetric {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 14px;
  align-items: center;
  gap: 4px;
  min-width: 0;
  color: inherit;
  font-size: var(--summary-panel-caption-font-size);
  font-variant-numeric: tabular-nums;
  justify-content: flex-end;
  justify-items: end;
  line-height: 1;
  white-space: nowrap;
}

.communityGameMetricCount {
  min-width: 0;
  overflow: hidden;
  text-align: right;
}

.communityGameLikeIcon {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
}

.communityGameStatus {
  color: inherit;
}

.communityGameStatus.is-finished {
  color: inherit;
}

.communityGameMetric .goalStatusIcon {
  width: 14px;
  height: 14px;
}

.communityGameMetric .communityGameLikeIcon {
  width: 14px;
  height: 14px;
}

.communityGameNewControl {
  display: flex;
  justify-content: center;
  min-height: auto;
  margin-bottom: 4px;
}

.communityGameNewButton {
  min-height: 34px;
  padding: 6px 22px 7px;
  border: 2px solid var(--playfield-border-color);
  border-radius: 999px;
  background: rgba(12, 24, 37, 0.08);
  color: rgba(232, 240, 255, 0.92);
  font-size: var(--summary-panel-compact-action-font-size);
  font-weight: 300;
  line-height: 1.1;
}

.communityGameNewButton:hover,
.communityGameNewButton:focus-visible {
  border-color: var(--record-color-solid);
  color: rgba(255, 255, 255, 0.98);
  outline: none;
}

.communityEditor {
  gap: 10px;
}

body.is-community-editor {
  overflow: hidden;
}

body.is-community-editor #titleLogo,
body.is-community-editor:not(.is-top-left-menu-nav) #runSummaryNav,
body.is-community-editor #accountButton {
  display: none !important;
}

body.is-community-editor.is-top-left-menu-nav #runSummaryNav {
  z-index: 1502;
}

body.is-community-editor:not(.is-community-editor-play-mode) #muteToggle,
body.is-community-editor #thumbControl,
body.is-community-editor #motionJoystickPeek {
  display: none !important;
}

body.is-community-editor-play-mode #muteToggle {
  display: inline-flex !important;
  top: calc(var(--community-editor-frame-top, calc(var(--safe-top) + 10px)) + 18px);
  right: auto;
  left: calc(
    var(--community-editor-frame-left, calc(var(--safe-left) + 10px)) +
      var(--community-editor-frame-width, calc(100vw - var(--safe-left) - var(--safe-right) - 20px)) - 52px
  );
  z-index: 1501;
}

body.is-community-editor #runSummaryPanelViewport {
  position: fixed !important;
  inset: 0 !important;
  left: 0 !important;
  top: 0 !important;
  width: 100vw !important;
  max-width: none !important;
  height: 100vh !important;
  height: 100dvh !important;
  max-height: none !important;
  transform: none !important;
  z-index: 1400;
  overflow: hidden;
  scroll-snap-type: none;
  touch-action: none;
}

body.is-community-editor #runSummaryPanelTrack {
  display: block !important;
  height: 100%;
}

body.is-community-editor #runSummaryPanelTrack > .runSummaryPanel:not(#communityPanel) {
  display: none !important;
}

body.is-community-editor #communityPanel {
  position: fixed !important;
  inset: 0 !important;
  display: block !important;
  width: auto !important;
  height: 100vh !important;
  height: 100dvh !important;
  max-height: none !important;
  padding: 0;
  background: #000;
  z-index: 1401;
  overflow: hidden;
  pointer-events: auto !important;
  touch-action: none;
}

body.is-community-editor .communityEditor {
  position: fixed;
  left: var(--community-editor-frame-left, calc(var(--safe-left) + 10px));
  top: var(--community-editor-frame-top, calc(var(--safe-top) + 10px));
  width: var(--community-editor-frame-width, calc(100vw - var(--safe-left) - var(--safe-right) - 20px));
  height: var(--community-editor-frame-height, calc(100dvh - var(--safe-top) - var(--safe-bottom) - 20px));
  display: block;
  padding-bottom: 0;
}

.communityEditorHeader {
  position: absolute;
  top: 10px;
  left: clamp(16px, 4vw, 24px);
  right: clamp(16px, 4vw, 24px);
  z-index: 6;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  pointer-events: none;
}

.communityEditorActions {
  position: absolute;
  left: var(--community-editor-action-inset, clamp(18px, 4vw, 28px));
  right: var(--community-editor-action-inset, clamp(18px, 4vw, 28px));
  bottom: 14px;
  z-index: 7;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: end;
  gap: var(--community-editor-action-gap, 10px);
  pointer-events: none;
}

.communityEditorHeaderCenter {
  display: grid;
  justify-items: center;
  gap: 4px;
  min-width: 0;
  pointer-events: auto;
}

.communityEditorTitleRow {
  position: relative;
  display: block;
  width: max-content;
  max-width: min(180px, calc(48vw - 28px));
  min-width: 0;
  pointer-events: auto;
}

.communityEditorBackButton,
.communityEditorSaveButton,
.communityEditorModeButton {
  box-sizing: border-box;
  width: var(--community-editor-action-min-width, auto);
  min-width: 0;
  min-height: 34px;
  border-radius: 8px;
}

.communityEditorBackButton {
  justify-self: start;
  padding: 6px var(--community-editor-action-padding-x, 14px) 7px;
  flex: 0 0 auto;
  border: 2px solid var(--community-border-color);
  border-radius: 999px;
  background: transparent;
  color: rgba(232, 240, 255, 0.92);
  font-size: var(--community-editor-action-font-size, var(--summary-panel-compact-action-font-size));
  font-weight: 300;
  line-height: 1.1;
  pointer-events: auto;
}

.communityEditorTitleButton,
.communityEditorTitleText {
  display: block;
  max-width: min(180px, calc(48vw - 28px));
  min-height: 20px;
  padding: 0 4px;
  color: rgba(232, 240, 255, 0.94);
  font-size: var(--summary-panel-caption-font-size);
  font-weight: 300;
  line-height: 1.12;
  text-align: center;
}

.communityEditorTitleButton {
  background: transparent;
  pointer-events: auto;
}

.communityEditorShareButton {
  position: absolute;
  top: calc(50% - 2px);
  left: calc(100% + 1px);
  display: grid;
  place-items: center;
  width: 20px;
  height: 22px;
  padding: 3px;
  color: rgba(232, 240, 255, 0.9);
  line-height: 0;
  transform: translateY(-50%);
}

.communityEditorShareButton .shareIcon {
  width: 13px;
  height: 13px;
}

.communityEditorModeButton {
  justify-self: center;
  padding: 6px var(--community-editor-action-padding-x, 16px) 7px;
  border: 2px solid var(--community-border-color);
  border-radius: 999px;
  background: transparent;
  color: rgba(232, 240, 255, 0.92);
  font-size: var(--community-editor-action-font-size, var(--summary-panel-compact-action-font-size));
  font-weight: 300;
  line-height: 1.1;
  pointer-events: auto;
}

.communityEditorModeButton[aria-pressed='true'] {
  background: transparent;
  color: color-mix(in srgb, var(--community-border-color) 72%, #ffffff);
}

.communityEditorModeButton.is-needs-target {
  color: color-mix(in srgb, rgba(232, 240, 255, 0.86) 72%, var(--community-border-color));
}

.communityEditorModeButton.is-target-hint {
  animation: communityEditorTargetHintPulse 920ms ease-out both;
}

.communityEditorBackButton:hover,
.communityEditorBackButton:focus-visible,
.communityEditorModeButton:hover,
.communityEditorModeButton:focus-visible,
.communityEditorTitleButton:hover,
.communityEditorTitleButton:focus-visible {
  border-color: color-mix(in srgb, var(--community-border-color) 72%, #ffffff);
  color: rgba(255, 255, 255, 0.98);
  outline: none;
}

.communityEditorModeButton:disabled,
.communityEditorSaveButton:disabled {
  cursor: default;
  opacity: 0.38;
}

.communityEditorSaveButton {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  justify-self: end;
  padding: 6px var(--community-editor-action-padding-x, 16px) 7px;
  border: 2px solid var(--community-border-color);
  border-radius: 999px;
  background: transparent;
  color: rgba(232, 240, 255, 0.92);
  font-size: var(--community-editor-action-font-size, var(--summary-panel-compact-action-font-size));
  font-weight: 300;
  line-height: 1.1;
  pointer-events: auto;
}

.communityEditorSaveHint {
  display: block;
  font-size: 10px;
  line-height: 0.95;
  opacity: 0.9;
}

.communityEditorSaveLabel {
  display: block;
  line-height: 1.05;
}

.communityEditorSaveButton:hover,
.communityEditorSaveButton:focus-visible {
  border-color: color-mix(in srgb, var(--community-border-color) 72%, #ffffff);
  color: rgba(255, 255, 255, 0.98);
  outline: none;
}

.communityEditorBoard {
  --community-ball-size: 50px;
  --community-object-size: 45px;
  --community-tool-icon-size: var(--community-editor-tool-icon-size, 45px);
  --community-hard-border-color: color-mix(in srgb, var(--community-board-color) 52%, var(--community-border-color));
  --community-hard-highlight-color: color-mix(in srgb, var(--community-border-color) 48%, #ffffff);
  --community-crack-color: color-mix(in srgb, var(--community-border-color) 46%, rgba(255, 255, 255, 0.72));
  --community-sphere-color: #d6e4cf;
  --community-sticky-color: color-mix(in srgb, var(--community-foreground-color) 45%, #a7f3d0);
  --community-oily-color: color-mix(in srgb, var(--community-foreground-color) 42%, #ffd84a);
  --community-bomb-color: #050505;
  position: relative;
  width: 100%;
  height: 100%;
  justify-self: center;
  box-sizing: border-box;
  border: 4px solid var(--community-border-color, var(--playfield-border-color));
  border-radius: 0;
  background:
    radial-gradient(
      circle at var(--playfield-light-x, 44%) var(--playfield-light-y, 34%),
      rgba(255, 255, 255, var(--playfield-light-glow-opacity, 0.12)) 0%,
      rgba(255, 255, 255, var(--playfield-light-glow-mid-opacity, 0.046)) 24%,
      rgba(255, 255, 255, 0) 58%
    ),
    linear-gradient(
      var(--playfield-shade-angle, 145deg),
      rgba(255, 255, 255, var(--playfield-shade-opacity, 0.055)) 0%,
      rgba(255, 255, 255, 0) 46%
    ),
    var(--community-board-color);
  background-clip: padding-box;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--community-border-color) 18%, transparent) inset,
    0 0 28px color-mix(in srgb, var(--community-border-color) 18%, transparent);
  overflow: hidden;
  touch-action: manipulation;
  transition:
    border-color 0.12s linear,
    box-shadow 0.12s ease;
}

.communityEditorBoard.has-transparent-edge {
  box-shadow: none;
}

.communityEditorBoard.is-play-mode {
  cursor: crosshair;
}

.communityEditorBoard.is-target-hint {
  animation: communityEditorBoardTargetHint 920ms ease-out both;
}

body.is-community-editor .communityEditorBoard {
  width: 100%;
  height: 100%;
  max-height: 100%;
  border-radius: var(--community-editor-frame-radius, clamp(22px, 6vw, 34px));
  aspect-ratio: auto;
}

.communityEditorBoardOverlay {
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: calc(62px + var(--community-editor-toolbar-offset, 0px));
  z-index: 4;
  pointer-events: none;
  transform: translateX(var(--community-editor-toolbar-x-offset, 0px));
}

.communityEditorBoardOverlay.is-auto-moving {
  transition:
    bottom 0.18s ease,
    transform 0.18s ease;
}

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

.communityEditorTrailGhost {
  width: var(--community-ball-size);
  height: var(--community-ball-size);
  margin-left: calc(var(--community-ball-size) * -0.5);
  margin-top: calc(var(--community-ball-size) * -0.5);
  background: radial-gradient(
    circle at 35% 30%,
    rgba(255, 255, 255, 0.38) 0%,
    color-mix(in srgb, var(--community-foreground-color) 58%, transparent) 58%,
    transparent 100%
  );
  pointer-events: none;
}

.communityEditorParticleLayer {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
}

body.is-low-performance-mode .communityEditorTrail,
body.is-low-performance-mode .communityEditorParticleLayer {
  display: none;
}

.communityEditorBall,
.communityEditorObject {
  --community-editor-play-angle: 0deg;
  --community-editor-play-scale: 1;
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--community-object-size);
  height: var(--community-object-size);
  padding: 0;
  background: transparent;
  transform: translate(-50%, -50%) rotate(var(--community-editor-play-angle)) scale(var(--community-editor-play-scale));
  z-index: 2;
}

.communityEditorObject.is-play-body {
  transform: rotate(var(--community-editor-play-angle)) scale(var(--community-editor-play-scale));
  transition: none;
  will-change: transform;
}

.communityEditorBall {
  --community-editor-ball-scale: 1;
  width: var(--community-ball-size);
  height: var(--community-ball-size);
  border-radius: 50%;
  background: radial-gradient(
    circle at var(--sphere-light-x) var(--sphere-light-y),
    color-mix(in srgb, var(--community-foreground-color) 24%, #ffffff) 0%,
    color-mix(in srgb, var(--community-foreground-color) 72%, #ffffff) 20%,
    var(--community-foreground-color) 58%,
    color-mix(in srgb, var(--community-foreground-color) 72%, #000000) 100%
  );
  box-shadow:
    0 0 24px color-mix(in srgb, var(--community-foreground-color) 38%, transparent),
    inset var(--ball-inset-shadow-x) var(--ball-inset-shadow-y) 18px rgba(0, 0, 0, 0.28),
    inset var(--ball-inset-light-x) var(--ball-inset-light-y) 9px rgba(255, 255, 255, 0.24),
    var(--ball-shadow-x) var(--ball-shadow-y) 12px rgba(0, 0, 0, 0.34);
  transform: translate(-50%, -50%) scale(var(--community-editor-ball-scale));
}

.communityEditorObject.is-selected {
  outline: 0;
}

.communityEditorObject {
  width: var(--community-object-size);
  height: var(--community-object-size);
  border: 0;
  border-radius: 6px;
  background: transparent;
  filter: drop-shadow(var(--block-shadow-x) var(--block-shadow-y) 8px var(--block-shadow));
  isolation: isolate;
  overflow: visible;
}

.communityEditorSelectionOutline {
  position: absolute;
  inset: -8px;
  z-index: 8;
  border: 3px solid rgba(232, 240, 255, 0.94);
  border-radius: 8px;
  pointer-events: none;
}

.communityEditorObject::before,
.communityEditorObject::after {
  content: '';
  position: absolute;
  pointer-events: none;
}

.communityEditorObject::before {
  inset: 0;
  z-index: 1;
  border-radius: 4px;
  background: linear-gradient(
    var(--block-light-angle),
    color-mix(in srgb, var(--community-foreground-color) 58%, #ffffff) 0%,
    var(--community-foreground-color) 58%,
    color-mix(in srgb, var(--community-foreground-color) 72%, #000000) 100%
  );
  box-shadow:
    inset var(--block-inset-shadow-x) var(--block-inset-shadow-y) 8px rgba(0, 0, 0, 0.25),
    inset var(--block-inset-light-x) var(--block-inset-light-y) 4px var(--block-sheen);
}

.communityEditorObject.is-sphere,
.communityEditorObject.is-sphere::before {
  border-radius: 50%;
}

.communityEditorObject.is-sphere::before {
  background: radial-gradient(
    circle at var(--sphere-light-x) var(--sphere-light-y),
    #ffffff 0%,
    color-mix(in srgb, var(--community-sphere-color) 58%, #ffffff) 18%,
    var(--community-sphere-color) 58%,
    color-mix(in srgb, var(--community-sphere-color) 72%, #000000) 100%
  );
  box-shadow:
    inset var(--sphere-inset-shadow-x) var(--sphere-inset-shadow-y) 12px rgba(0, 0, 0, 0.27),
    inset var(--sphere-inset-light-x) var(--sphere-inset-light-y) 5px rgba(255, 255, 255, 0.22);
}

.communityEditorObject.is-sphere::after {
  inset: 18% 52% 52% 18%;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.38);
  filter: blur(1px);
}

.communityEditorObject.is-portal {
  filter: none;
}

.communityEditorObject.is-portal::before {
  inset: 0;
  border: 3px solid rgba(153, 241, 255, 0.92);
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(153, 241, 255, 0.18) 0%, rgba(153, 241, 255, 0.08) 44%, rgba(153, 241, 255, 0) 70%),
    conic-gradient(from 40deg, rgba(153, 241, 255, 0), rgba(153, 241, 255, 0.44), rgba(153, 241, 255, 0));
  box-shadow:
    0 0 18px rgba(153, 241, 255, 0.24),
    inset 0 0 18px rgba(153, 241, 255, 0.18);
}

.communityEditorObject.is-sticky-patch,
.communityEditorObject.is-oily-patch {
  width: calc(var(--community-object-size) * 1.16);
  height: calc(var(--community-object-size) * 1.16);
  filter: none;
  z-index: 1;
}

.communityEditorObject.is-sticky-patch::before {
  inset: 3px;
  border-radius: 12px;
  background:
    repeating-linear-gradient(
      135deg,
      color-mix(in srgb, var(--community-sticky-color) 46%, transparent) 0 4px,
      color-mix(in srgb, var(--community-sticky-color) 18%, transparent) 4px 8px
    ),
    color-mix(in srgb, var(--community-sticky-color) 22%, var(--community-board-color));
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--community-sticky-color) 42%, transparent) inset,
    0 0 13px color-mix(in srgb, var(--community-sticky-color) 16%, transparent);
}

.communityEditorObject.is-sticky-patch::after {
  inset: 13px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--community-sticky-color) 34%, transparent);
  filter: blur(2px);
}

.communityEditorObject.is-oily-patch::before {
  inset: 3px;
  border-radius: 999px;
  background:
    linear-gradient(
      132deg,
      transparent 0 20%,
      color-mix(in srgb, var(--community-oily-color) 54%, transparent) 22% 30%,
      transparent 32% 100%
    ),
    radial-gradient(circle at 34% 28%, rgba(255, 255, 255, 0.36), transparent 28%),
    color-mix(in srgb, var(--community-oily-color) 36%, var(--community-board-color));
  box-shadow:
    inset 0 0 14px rgba(255, 249, 181, 0.12),
    0 0 13px color-mix(in srgb, var(--community-oily-color) 24%, transparent);
}

.communityEditorObject.is-oily-patch::after {
  inset: 11px 15px 18px 11px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.48), color-mix(in srgb, var(--community-oily-color) 38%, transparent));
  filter: blur(2px);
  transform: rotate(-16deg);
}

.communityEditorObject.is-bomb {
  border-radius: 50%;
  filter: drop-shadow(var(--block-shadow-x) var(--block-shadow-y) 10px rgba(0, 0, 0, 0.42));
}

.communityEditorObject.is-bomb::before {
  inset: 4px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 26%, rgba(255, 255, 255, 0.34), transparent 0 15%, transparent 16%),
    radial-gradient(circle at 58% 62%, #111111, var(--community-bomb-color) 70%), var(--community-bomb-color);
  box-shadow:
    inset var(--sphere-inset-shadow-x) var(--sphere-inset-shadow-y) 10px rgba(0, 0, 0, 0.42),
    inset var(--sphere-inset-light-x) var(--sphere-inset-light-y) 5px rgba(255, 255, 255, 0.2),
    0 0 0 1px color-mix(in srgb, var(--community-border-color) 28%, #000000);
}

.communityEditorObject.is-bomb::after {
  top: 1px;
  left: 50%;
  width: 15px;
  height: 11px;
  border-top: 3px solid color-mix(in srgb, var(--community-border-color) 72%, #ffffff);
  border-radius: 50%;
  transform: translateX(-12%) rotate(34deg);
}

.communityEditorObject.is-bomb.is-play-knocked {
  opacity: 0.42;
}

.communityEditorObject.is-bomb.is-play-knocked::before {
  background: radial-gradient(circle, color-mix(in srgb, var(--community-border-color) 42%, transparent) 0 34%, transparent 65%);
  box-shadow: 0 0 18px color-mix(in srgb, var(--community-border-color) 24%, transparent);
}

.communityEditorObject.is-bomb.is-play-knocked::after {
  left: 50%;
  top: 50%;
  width: calc(var(--community-object-size) * 2.9);
  height: calc(var(--community-object-size) * 2.9);
  border: 2px solid color-mix(in srgb, var(--community-border-color) 72%, transparent);
  border-radius: 50%;
  background: transparent;
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.24);
  animation: communityEditorBombRipple 620ms ease-out both;
}

.communityEditorObject.is-bomb.is-play-knocked.is-play-result::after {
  opacity: 0;
  animation: none;
}

@keyframes communityEditorBombRipple {
  0% {
    opacity: 0.72;
    transform: translate(-50%, -50%) scale(0.24);
  }

  72% {
    opacity: 0.28;
  }

  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(1);
  }
}

.communityEditorObject.is-cracked-tile {
  filter: none;
  z-index: 1;
}

.communityEditorObject.is-cracked-tile::before {
  inset: 5px;
  border-radius: 6px;
  background: transparent;
  box-shadow: none;
}

.communityEditorObject.is-cracked-tile::after {
  inset: 8px;
  z-index: 2;
  border-radius: 2px;
  background:
    linear-gradient(58deg, transparent 0 39%, var(--community-crack-color) 40% 47%, transparent 48%),
    linear-gradient(122deg, transparent 0 47%, var(--community-crack-color) 48% 55%, transparent 56%),
    linear-gradient(18deg, transparent 0 53%, var(--community-crack-color) 54% 59%, transparent 60%);
  opacity: 0.78;
  filter: none;
}

.communityEditorObject.is-cracked-tile.is-play-open::before {
  inset: -9px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 0, 0, 0.98) 0 64%, rgba(0, 0, 0, 0.78) 76%, transparent 88%);
  box-shadow:
    inset 0 0 16px rgba(0, 0, 0, 0.94),
    0 0 15px rgba(0, 0, 0, 0.38);
}

.communityEditorObject.is-cracked-tile.is-play-open::after {
  opacity: 0;
}

.communityEditorObject.is-triangle {
  width: calc(var(--community-object-size) * 1.08);
  height: calc(var(--community-object-size) * 1.08);
  filter: drop-shadow(var(--block-shadow-x) var(--block-shadow-y) 9px rgba(0, 0, 0, 0.38));
}

.communityEditorObject.is-triangle::before,
.communityEditorObject.is-triangle::after {
  content: none;
}

.communityEditorTriangleIcon {
  position: absolute;
  inset: -3px;
  width: calc(100% + 6px);
  height: calc(100% + 6px);
  overflow: visible;
  pointer-events: none;
}

.communityEditorTriangleOuter {
  fill: none;
  stroke: rgba(232, 240, 255, 0.94);
  stroke-linejoin: round;
  stroke-width: 2.2px;
}

.communityEditorTriangleInner {
  fill: color-mix(in srgb, var(--community-board-color) 78%, var(--community-hard-highlight-color));
  stroke: rgba(0, 0, 0, 0.42);
  stroke-linejoin: round;
  stroke-width: 1.1px;
  filter: drop-shadow(var(--block-shadow-x) var(--block-shadow-y) 5px rgba(0, 0, 0, 0.34));
}

.communityEditorObject.is-triangle.is-selected {
  filter: drop-shadow(var(--block-shadow-x) var(--block-shadow-y) 9px rgba(0, 0, 0, 0.38));
}

.communityEditorObject.is-triangle.is-selected .communityEditorTriangleOuter {
  stroke: rgba(232, 240, 255, 0.94);
  filter: none;
}

.communityEditorObject.is-shielded-block::after {
  inset: -7px;
  border: 2px solid rgba(232, 240, 255, 0.62);
  border-radius: 9px;
}

.communityEditorObject.is-hard-block {
  filter: drop-shadow(var(--block-shadow-x) var(--block-shadow-y) 9px rgba(0, 0, 0, 0.36));
}

.communityEditorObject.is-hard-block::before {
  background: linear-gradient(
    var(--block-light-angle),
    color-mix(in srgb, var(--community-board-color) 70%, var(--community-hard-highlight-color)) 0%,
    color-mix(in srgb, var(--community-board-color) 88%, var(--community-hard-highlight-color)) 58%,
    color-mix(in srgb, var(--community-board-color) 76%, #000000) 100%
  );
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, 0.42),
    0 0 0 1px rgba(0, 0, 0, 0.2),
    inset var(--block-inset-shadow-x) var(--block-inset-shadow-y) 8px rgba(0, 0, 0, 0.3),
    inset var(--block-inset-light-x) var(--block-inset-light-y) 4px rgba(255, 255, 255, 0.12);
}

.communityEditorObject.is-hard-block::after {
  inset: 3px;
  border-radius: 3px;
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--community-border-color) 22%, transparent) 0%,
    transparent 42%,
    rgba(0, 0, 0, 0.18) 100%
  );
}

.communityEditorObject.is-play-cracked::after {
  border-style: dashed;
  opacity: 0.78;
}

.communityEditorObject.is-shielded-block.is-play-cracked::after {
  border-style: dashed;
  border-color: rgba(255, 212, 122, 0.82);
  opacity: 0.8;
}

.communityEditorObject.is-shielded-block.is-play-knocked::after {
  opacity: 0;
}

.communityEditorObject.is-play-knocked {
  opacity: 0.78;
  pointer-events: none;
  transition:
    opacity 0.18s ease,
    transform 0.18s ease;
}

.communityEditorObject.is-play-body.is-play-knocked {
  transition: opacity 0.18s ease;
}

.communityEditorControls {
  display: grid;
  gap: var(--community-editor-tool-gap, 8px);
  box-sizing: border-box;
  padding: var(--community-editor-control-padding, 8px);
  border: 1px solid color-mix(in srgb, var(--community-border-color) 32%, transparent);
  border-radius: 12px;
  background: color-mix(in srgb, var(--community-board-color) 46%, #000000);
  pointer-events: auto;
  cursor: grab;
  touch-action: none;
  user-select: none;
}

.communityEditorTools {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  grid-auto-rows: var(--community-editor-tool-size, 61px);
  gap: var(--community-editor-tool-gap, 8px);
}

.communityEditorTool,
.communityEditorAction {
  position: relative;
  width: min(var(--community-editor-tool-size, 61px), 100%);
  height: min(var(--community-editor-tool-size, 61px), 100%);
  aspect-ratio: 1;
  min-height: 0;
  justify-self: center;
  box-sizing: border-box;
  border: 2px solid transparent;
  border-radius: 8px;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
}

.communityEditorTool.is-target-hint {
  animation: communityEditorTargetHintPulse 920ms ease-out both;
}

.communityEditorTool:focus,
.communityEditorTool:focus-visible,
.communityEditorAction:focus,
.communityEditorAction:focus-visible {
  outline: none;
}

.communityEditorTool::before,
.communityEditorTool::after,
.communityEditorAction::before,
.communityEditorAction::after {
  content: '';
  position: absolute;
}

.communityEditorTool.is-block::before,
.communityEditorTool.is-shielded-block::before,
.communityEditorTool.is-hard-block::before {
  left: 50%;
  top: 50%;
  width: min(
    var(--community-tool-icon-size),
    calc(100% - var(--community-editor-tool-icon-inset, 8px) - var(--community-editor-tool-icon-inset, 8px))
  );
  height: min(
    var(--community-tool-icon-size),
    calc(100% - var(--community-editor-tool-icon-inset, 8px) - var(--community-editor-tool-icon-inset, 8px))
  );
  border-radius: 4px;
  background: linear-gradient(
    var(--block-light-angle),
    color-mix(in srgb, var(--community-foreground-color) 58%, #ffffff) 0%,
    var(--community-foreground-color) 58%,
    color-mix(in srgb, var(--community-foreground-color) 72%, #000000) 100%
  );
  box-shadow:
    inset var(--block-inset-shadow-x) var(--block-inset-shadow-y) 6px rgba(0, 0, 0, 0.24),
    inset var(--block-inset-light-x) var(--block-inset-light-y) 3px var(--block-sheen);
  transform: translate(-50%, -50%);
}

.communityEditorTool.is-sphere::before {
  left: 50%;
  top: 50%;
  width: min(
    var(--community-tool-icon-size),
    calc(100% - var(--community-editor-tool-icon-inset, 8px) - var(--community-editor-tool-icon-inset, 8px))
  );
  height: min(
    var(--community-tool-icon-size),
    calc(100% - var(--community-editor-tool-icon-inset, 8px) - var(--community-editor-tool-icon-inset, 8px))
  );
  border-radius: 50%;
  background: radial-gradient(
    circle at var(--sphere-light-x) var(--sphere-light-y),
    #ffffff 0%,
    color-mix(in srgb, var(--community-sphere-color) 58%, #ffffff) 18%,
    var(--community-sphere-color) 58%,
    color-mix(in srgb, var(--community-sphere-color) 72%, #000000) 100%
  );
  box-shadow:
    inset var(--sphere-inset-shadow-x) var(--sphere-inset-shadow-y) 8px rgba(0, 0, 0, 0.24),
    inset var(--sphere-inset-light-x) var(--sphere-inset-light-y) 4px rgba(255, 255, 255, 0.22);
  transform: translate(-50%, -50%);
}

.communityEditorTool.is-sphere::after {
  left: calc(50% - 13px);
  top: calc(50% - 13px);
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.36);
  filter: blur(1px);
}

.communityEditorTool.is-portal::before {
  left: 50%;
  top: 50%;
  width: min(
    var(--community-tool-icon-size),
    calc(100% - var(--community-editor-tool-icon-inset, 8px) - var(--community-editor-tool-icon-inset, 8px))
  );
  height: min(
    var(--community-tool-icon-size),
    calc(100% - var(--community-editor-tool-icon-inset, 8px) - var(--community-editor-tool-icon-inset, 8px))
  );
  border: 3px solid rgba(153, 241, 255, 0.94);
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(153, 241, 255, 0.18) 0%, rgba(153, 241, 255, 0.08) 44%, rgba(153, 241, 255, 0) 70%),
    conic-gradient(from 40deg, rgba(153, 241, 255, 0), rgba(153, 241, 255, 0.44), rgba(153, 241, 255, 0));
  box-shadow:
    0 0 12px rgba(153, 241, 255, 0.22),
    inset 0 0 12px rgba(153, 241, 255, 0.18);
  transform: translate(-50%, -50%);
}

.communityEditorTool.is-triangle::before,
.communityEditorTool.is-triangle::after {
  content: none;
}

.communityEditorTool .communityEditorTriangleIcon {
  inset: var(--community-editor-tool-icon-inset, 8px);
  width: calc(100% - var(--community-editor-tool-icon-inset, 8px) - var(--community-editor-tool-icon-inset, 8px));
  height: calc(100% - var(--community-editor-tool-icon-inset, 8px) - var(--community-editor-tool-icon-inset, 8px));
}

.communityEditorTool.is-shielded-block::after {
  left: 50%;
  top: 50%;
  width: min(calc(var(--community-tool-icon-size) + 10px), calc(100% - 8px));
  height: min(calc(var(--community-tool-icon-size) + 10px), calc(100% - 8px));
  border: 2px solid rgba(232, 240, 255, 0.58);
  border-radius: 7px;
  transform: translate(-50%, -50%);
}

.communityEditorTool.is-hard-block::before {
  background: linear-gradient(
    var(--block-light-angle),
    color-mix(in srgb, var(--community-board-color) 70%, var(--community-hard-highlight-color)) 0%,
    color-mix(in srgb, var(--community-board-color) 88%, var(--community-hard-highlight-color)) 58%,
    color-mix(in srgb, var(--community-board-color) 76%, #000000) 100%
  );
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, 0.42),
    0 0 0 1px rgba(0, 0, 0, 0.2),
    inset var(--block-inset-shadow-x) var(--block-inset-shadow-y) 6px rgba(0, 0, 0, 0.3),
    inset var(--block-inset-light-x) var(--block-inset-light-y) 3px rgba(255, 255, 255, 0.12),
    var(--block-shadow-x) var(--block-shadow-y) 8px rgba(0, 0, 0, 0.22);
}

.communityEditorTool.is-sticky-patch::before {
  left: 50%;
  top: 50%;
  width: min(calc(var(--community-tool-icon-size) * 1.14), calc(100% - 10px));
  height: min(calc(var(--community-tool-icon-size) * 1.14), calc(100% - 10px));
  border-radius: 12px;
  background:
    repeating-linear-gradient(
      135deg,
      color-mix(in srgb, var(--community-sticky-color) 46%, transparent) 0 4px,
      color-mix(in srgb, var(--community-sticky-color) 18%, transparent) 4px 8px
    ),
    color-mix(in srgb, var(--community-sticky-color) 22%, var(--community-board-color));
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--community-sticky-color) 42%, transparent) inset,
    0 0 10px color-mix(in srgb, var(--community-sticky-color) 14%, transparent);
  transform: translate(-50%, -50%);
}

.communityEditorTool.is-sticky-patch::after {
  left: 50%;
  top: 50%;
  width: min(21px, calc(100% - 28px));
  height: min(21px, calc(100% - 28px));
  border-radius: 999px;
  background: color-mix(in srgb, var(--community-sticky-color) 34%, transparent);
  filter: blur(2px);
  transform: translate(-50%, -50%);
}

.communityEditorTool.is-oily-patch::before {
  left: 50%;
  top: 50%;
  width: min(calc(var(--community-tool-icon-size) * 1.14), calc(100% - 10px));
  height: min(calc(var(--community-tool-icon-size) * 1.14), calc(100% - 10px));
  border-radius: 999px;
  background:
    linear-gradient(
      132deg,
      transparent 0 20%,
      color-mix(in srgb, var(--community-oily-color) 42%, transparent) 22% 30%,
      transparent 32% 100%
    ),
    radial-gradient(circle at 34% 28%, rgba(255, 255, 255, 0.28), transparent 28%),
    color-mix(in srgb, var(--community-oily-color) 24%, var(--community-board-color));
  box-shadow:
    inset 0 0 12px rgba(255, 255, 255, 0.08),
    0 0 10px color-mix(in srgb, var(--community-oily-color) 14%, transparent);
  transform: translate(-50%, -50%);
}

.communityEditorTool.is-oily-patch::after {
  left: 50%;
  top: 50%;
  width: min(24px, calc(100% - 26px));
  height: min(16px, calc(100% - 32px));
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.42), color-mix(in srgb, var(--community-oily-color) 28%, transparent));
  filter: blur(1.5px);
  transform: translate(-50%, -50%) rotate(-16deg);
}

.communityEditorTool.is-bomb::before {
  left: 50%;
  top: 50%;
  width: min(
    var(--community-tool-icon-size),
    calc(100% - var(--community-editor-tool-icon-inset, 8px) - var(--community-editor-tool-icon-inset, 8px))
  );
  height: min(
    var(--community-tool-icon-size),
    calc(100% - var(--community-editor-tool-icon-inset, 8px) - var(--community-editor-tool-icon-inset, 8px))
  );
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 26%, rgba(255, 255, 255, 0.34), transparent 0 15%, transparent 16%),
    radial-gradient(circle at 58% 62%, #111111, var(--community-bomb-color) 70%), var(--community-bomb-color);
  box-shadow:
    inset var(--sphere-inset-shadow-x) var(--sphere-inset-shadow-y) 8px rgba(0, 0, 0, 0.4),
    inset var(--sphere-inset-light-x) var(--sphere-inset-light-y) 4px rgba(255, 255, 255, 0.18),
    0 0 0 1px color-mix(in srgb, var(--community-border-color) 28%, #000000),
    var(--block-shadow-x) var(--block-shadow-y) 8px rgba(0, 0, 0, 0.24);
  transform: translate(-50%, -50%);
}

.communityEditorTool.is-bomb::after {
  left: calc(50% + 7px);
  top: calc(50% - 24px);
  width: 14px;
  height: 10px;
  border-top: 3px solid color-mix(in srgb, var(--community-border-color) 72%, #ffffff);
  border-radius: 50%;
  transform: rotate(34deg);
}

.communityEditorTool.is-cracked-tile::before {
  left: 50%;
  top: 50%;
  width: min(
    var(--community-tool-icon-size),
    calc(100% - var(--community-editor-tool-icon-inset, 8px) - var(--community-editor-tool-icon-inset, 8px))
  );
  height: min(
    var(--community-tool-icon-size),
    calc(100% - var(--community-editor-tool-icon-inset, 8px) - var(--community-editor-tool-icon-inset, 8px))
  );
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  transform: translate(-50%, -50%);
}

.communityEditorTool.is-cracked-tile::after {
  left: 50%;
  top: 50%;
  width: min(36px, calc(100% - var(--community-editor-tool-icon-inset, 8px) - var(--community-editor-tool-icon-inset, 8px)));
  height: min(36px, calc(100% - var(--community-editor-tool-icon-inset, 8px) - var(--community-editor-tool-icon-inset, 8px)));
  border-radius: 2px;
  background:
    linear-gradient(58deg, transparent 0 38%, var(--community-crack-color) 39% 47%, transparent 48%),
    linear-gradient(122deg, transparent 0 47%, var(--community-crack-color) 48% 56%, transparent 57%),
    linear-gradient(18deg, transparent 0 52%, var(--community-crack-color) 53% 60%, transparent 61%);
  opacity: 0.96;
  filter: drop-shadow(0 0 4px color-mix(in srgb, var(--community-crack-color) 46%, transparent));
  transform: translate(-50%, -50%);
}

.communityEditorThemeControls {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--community-editor-theme-gap, 7px);
}

.communityEditorThemeSwatch {
  width: var(--community-editor-theme-swatch-size, 44px);
  height: var(--community-editor-theme-swatch-size, 44px);
  justify-self: center;
  border: 4px solid currentColor;
  border-radius: 50%;
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.42) inset,
    0 0 0 1px rgba(232, 240, 255, 0.18);
}

.communityEditorThemeSwatch[aria-selected='true'] {
  box-shadow:
    0 0 0 2px rgba(232, 240, 255, 0.92),
    0 0 0 1px rgba(0, 0, 0, 0.5) inset;
}

.communityEditorPlayControl {
  --community-editor-play-input-x: 0px;
  --community-editor-play-input-y: 0px;
  position: absolute;
  right: 16px;
  bottom: 16px;
  z-index: 5;
  width: clamp(72px, 19vw, 96px);
  height: clamp(72px, 19vw, 96px);
  border: 2px solid var(--community-border-color);
  border-radius: 50%;
  background: transparent;
  box-shadow: 0 0 18px color-mix(in srgb, var(--community-border-color) 24%, transparent);
  opacity: 0.68;
  pointer-events: none;
  transition: opacity 0.16s ease;
}

.communityEditorPlayControl.is-active {
  opacity: 0.94;
}

.communityEditorPlayControl.is-desktop-pointer {
  position: fixed;
  top: 0;
  right: auto;
  bottom: auto;
  left: 0;
  z-index: 2147483000;
  background: var(--community-board-color);
}

.communityEditorPlayControlKnob {
  position: absolute;
  left: 50%;
  top: 50%;
  width: clamp(22px, 5.8vw, 30px);
  height: clamp(22px, 5.8vw, 30px);
  border-radius: 50%;
  background: radial-gradient(
    circle at var(--sphere-light-x) var(--sphere-light-y),
    color-mix(in srgb, var(--community-foreground-color) 24%, #ffffff) 0%,
    color-mix(in srgb, var(--community-foreground-color) 72%, #ffffff) 20%,
    var(--community-foreground-color) 58%,
    color-mix(in srgb, var(--community-foreground-color) 72%, #000000) 100%
  );
  box-shadow:
    0 0 16px color-mix(in srgb, var(--community-foreground-color) 28%, transparent),
    inset calc(var(--ball-inset-shadow-x) * 0.45) calc(var(--ball-inset-shadow-y) * 0.45) 10px rgba(0, 0, 0, 0.3),
    inset calc(var(--ball-inset-light-x) * 0.42) calc(var(--ball-inset-light-y) * 0.42) 6px rgba(255, 255, 255, 0.22),
    calc(var(--ball-shadow-x) * 0.42) calc(var(--ball-shadow-y) * 0.42) 8px rgba(0, 0, 0, 0.34);
  transform: translate(calc(-50% + var(--community-editor-play-input-x)), calc(-50% + var(--community-editor-play-input-y)));
}

.communityEditorPlayControl.is-desktop-pointer .communityEditorPlayControlKnob {
  top: 0;
  left: 0;
}

.communityEditorPlayPauseOverlay {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 7;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 64px;
  height: 64px;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.communityEditorPlayPauseOverlay .pauseBar {
  width: 10px;
  height: 42px;
  border-radius: 999px;
  background: rgba(235, 244, 255, 0.78);
  box-shadow:
    0 0 10px rgba(12, 24, 37, 0.22),
    0 0 24px color-mix(in srgb, var(--community-border-color) 14%, transparent);
}

.communityEditorPlayResult {
  position: absolute;
  inset: 0;
  z-index: 7;
  display: grid;
  place-items: center;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(232, 240, 255, 0.94);
  font-size: clamp(38px, 11vw, 62px);
  font-weight: 300;
  line-height: 0.96;
  text-align: center;
  text-shadow:
    0 1px 1px var(--community-board-color),
    0 -1px 1px var(--community-board-color),
    1px 0 1px var(--community-board-color),
    -1px 0 1px var(--community-board-color),
    0 0 14px color-mix(in srgb, var(--community-board-color) 82%, #000000),
    0 0 32px color-mix(in srgb, var(--community-border-color) 30%, transparent);
  text-transform: uppercase;
  pointer-events: none;
}

.communityEditorPlayResultLabel {
  --community-result-label-offset: 0px;
  grid-area: 1 / 1;
  display: block;
  animation: communityEditorResultPulse 1.45s ease-out both;
}

.communityEditorPlayResult.has-like-action .communityEditorPlayResultLabel {
  --community-result-label-offset: -48px;
}

.communityEditorPlayResult.is-won {
  color: var(--community-border-color);
}

.communityEditorPlayResult.is-lost {
  color: rgba(232, 240, 255, 0.9);
}

.communityEditorResultLikeButton {
  grid-area: 1 / 1;
  align-self: center;
  justify-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-width: 74px;
  min-height: 38px;
  margin-top: 108px;
  padding: 7px 12px;
  border: 1px solid color-mix(in srgb, var(--community-border-color) 62%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--community-board-color) 72%, #000000);
  color: rgba(232, 240, 255, 0.94);
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
  text-transform: none;
  text-shadow: none;
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.24) inset,
    0 0 14px color-mix(in srgb, var(--community-border-color) 16%, transparent);
  pointer-events: auto;
}

.communityEditorResultLikeButton svg {
  width: 18px;
  height: 18px;
}

.communityEditorResultLikeButton.is-liked {
  color: var(--community-border-color);
  pointer-events: none;
}

@keyframes communityEditorResultPulse {
  0% {
    opacity: 0;
    transform: translateY(var(--community-result-label-offset)) scale(0.9);
  }

  18% {
    opacity: 1;
    transform: translateY(var(--community-result-label-offset)) scale(1.03);
  }

  58% {
    opacity: 1;
    transform: translateY(var(--community-result-label-offset)) scale(1);
  }

  100% {
    opacity: 0.94;
    transform: translateY(var(--community-result-label-offset)) scale(1);
  }
}

@keyframes communityEditorTargetHintPulse {
  0%,
  100% {
    border-color: rgba(232, 240, 255, 0.94);
    box-shadow: none;
  }

  40% {
    border-color: #ffffff;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--community-border-color) 30%, transparent);
  }
}

@keyframes communityEditorBoardTargetHint {
  0%,
  100% {
    box-shadow:
      0 0 0 1px color-mix(in srgb, var(--community-border-color) 18%, transparent) inset,
      0 0 28px color-mix(in srgb, var(--community-border-color) 18%, transparent);
  }

  40% {
    box-shadow:
      0 0 0 2px color-mix(in srgb, var(--community-border-color) 62%, transparent) inset,
      0 0 34px color-mix(in srgb, var(--community-border-color) 34%, transparent);
  }
}

.playerRenameButton svg,
.goalStatusIcon svg {
  fill: currentColor;
  stroke: none;
}

.playerRenameButton {
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  padding: 2px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: currentColor;
  cursor: pointer;
}

.playerRenameButton:hover,
.playerRenameButton:focus-visible {
  color: rgba(255, 255, 255, 0.98);
  outline: none;
}

.playerNameInput {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  padding: 1px 2px 2px;
  border: 0;
  border-bottom: 1px solid currentColor;
  border-radius: 0;
  background: rgba(255, 242, 0, 0.08);
  color: var(--record-color-solid);
  font: inherit;
  line-height: inherit;
  outline: none;
  box-sizing: border-box;
}

.goalStreak {
  min-height: 26px;
  margin-bottom: 14px;
  color: var(--record-color-solid);
  text-align: center;
}

.goalList {
  display: grid;
  gap: 10px;
}

.goalItem {
  display: grid;
  grid-template-columns: 28px minmax(var(--summary-goal-date-column-min), 0.64fr) minmax(0, 1fr) 28px;
  align-items: center;
  gap: 10px;
  min-height: 28px;
  transition: opacity 0.16s ease;
}

.goalItem.is-after-streak {
  opacity: 0.42;
}

.goalDate {
  color: rgba(232, 240, 255, 0.84);
}

.goalLabel {
  color: rgba(232, 240, 255, 0.92);
}

.goalCalendarIcon,
.goalStatusIcon {
  color: rgba(232, 240, 255, 0.8);
}

.goalCalendarIcon svg {
  width: 26px;
  height: 26px;
  stroke-width: 1.45;
  stroke: currentColor;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.goalStatusIcon {
  width: 26px;
  height: 26px;
}

.goalStatusIcon.is-complete {
  color: var(--record-color-solid);
}

.goalStatusIcon.is-pending {
  color: transparent;
}

.communityGameStatus.goalStatusIcon,
.communityGameMetric .goalStatusIcon {
  color: inherit;
}

.dailyBonusGameSlot {
  display: none;
  margin-bottom: 18px;
  text-align: center;
}

.dailyBonusGameSlot.is-visible {
  display: block;
}

.todayBonusGameButton {
  min-height: 48px;
  padding: 8px 18px 9px;
  border: 1.5px solid var(--playfield-border-color);
  border-radius: 18px;
  box-sizing: border-box;
  background: rgba(12, 24, 37, 0.08);
  color: rgba(232, 240, 255, 0.92);
  font-size: 0.92em;
  font-weight: 300;
  line-height: 1;
  text-align: center;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
  max-width: min(100%, 280px);
  cursor: pointer;
}

.todayBonusGameButton:hover,
.todayBonusGameButton:focus-visible {
  color: rgba(255, 255, 255, 0.98);
  border-color: var(--record-color-solid);
  outline: none;
}

.todayBonusGameIcon {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  color: var(--record-color-solid);
}

.todayBonusGameIcon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: currentColor;
  stroke: none;
}

.todayBonusGameText {
  display: grid;
  gap: 3px;
  min-width: 0;
  text-align: left;
}

.todayBonusGameLabel {
  color: rgba(232, 240, 255, 0.68);
  font-size: 0.82em;
  font-weight: 300;
  line-height: 1;
  white-space: nowrap;
}

.todayBonusGameName {
  color: currentColor;
  font-size: 1em;
  font-weight: 300;
  line-height: 1.12;
  overflow-wrap: anywhere;
}

.todayBonusGameComplete {
  margin-top: 8px;
  color: var(--record-color-solid);
  font-size: 1em;
  font-weight: 300;
  line-height: 1.15;
  text-align: center;
}

.todayBonusGameNote {
  margin-top: 7px;
  color: var(--record-color-solid);
  font-size: 1em;
  line-height: 1.3;
  text-align: center;
}

#startPrompt {
  display: none;
}

#startPrompt.game-over {
  color: var(--hud-solid);
}

#roundPrompt .roundPromptRestartAction,
#startPrompt .roundPromptRestartAction {
  color: var(--record-color-solid);
}

#startPrompt.is-level-restart,
#startPrompt.is-level-restart .roundPromptRestartAction,
#leaderboardReset.is-countdown {
  color: var(--record-color-solid);
  opacity: 1;
}

#leaderboardReset.is-countdown {
  min-height: 26px;
}

#bestScoreDisplay {
  color: rgba(255, 255, 255, 0.15);
  display: none;
}

#bestScoreDisplay.new-high-score {
  color: var(--record-color-soft);
}

#bestScoreDisplay.game-over {
  color: var(--hud-solid);
}

#bestScoreDisplay.game-over.new-high-score {
  color: var(--record-color-solid);
}

#roundPrompt {
  display: none;
  white-space: normal;
}

#bonusGameBackButton {
  display: none;
}

#mobileVersionLinkWrap {
  display: none;
}

#mobileVersionLink,
#mobileShareLink,
#bonusGameBackButton {
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 116px;
  min-height: 40px;
  padding: 7px 24px 8px;
  border: 2px solid var(--playfield-border-color);
  border-radius: 999px;
  box-sizing: border-box;
  background: rgba(12, 24, 37, 0.08);
  color: rgba(232, 240, 255, 0.92);
  font-size: var(--summary-panel-action-font-size);
  font-weight: 300;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
}

#mobileVersionLink {
  min-width: 206px;
  font-size: var(--summary-panel-prompt-font-size);
  white-space: nowrap;
}

#bonusGameBackButton {
  display: none;
  min-width: 190px;
  position: fixed;
  top: calc(24px + var(--safe-top));
  left: calc(12px + var(--safe-left));
  z-index: 1200;
  width: auto;
  max-width: min(270px, calc(100vw - 24px - var(--safe-left) - var(--safe-right)));
  padding-right: 22px;
  padding-left: 22px;
  border: 0;
  font-size: clamp(15px, 4vw, 18px);
  margin-top: 0;
  white-space: nowrap;
}

#mobileShareWrap {
  display: none;
}

#mobileVersionLink:hover,
#mobileVersionLink:focus-visible,
#mobileShareLink:hover,
#mobileShareLink:focus-visible,
#bonusGameBackButton:hover,
#bonusGameBackButton:focus-visible {
  border-color: var(--record-color-solid);
  color: rgba(255, 255, 255, 0.98);
  outline: none;
}

#desktopQrPanel {
  position: fixed;
  top: 50%;
  left: 50%;
  display: none;
  transform: translate(-50%, -50%);
  box-sizing: border-box;
  text-align: center;
  color: rgba(208, 220, 236, 0.86);
  pointer-events: none;
  z-index: 1400;
}

#desktopQrCard {
  pointer-events: auto;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 16px;
  border-radius: 18px;
  background: rgba(12, 24, 37, 0.72);
  box-shadow:
    0 12px 32px rgba(0, 0, 0, 0.36),
    inset 0 0 0 1px rgba(255, 255, 255, 0.07);
  text-decoration: none;
  color: inherit;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

#desktopQrCard:hover,
#desktopQrCard:focus-visible {
  box-shadow:
    0 14px 36px rgba(0, 0, 0, 0.42),
    inset 0 0 0 1px rgba(255, 255, 255, 0.12);
  outline: none;
}

#desktopQrImage {
  width: min(42vw, 180px);
  height: min(42vw, 180px);
  border-radius: 12px;
  background: white;
  display: block;
}

#desktopQrCaption {
  font-size: 15px;
  line-height: 1.35;
  color: rgba(232, 240, 255, 0.82);
}

@media (max-height: 500px) {
  #desktopQrImage {
    width: min(28vw, 132px);
    height: min(28vw, 132px);
  }

  .runSummaryPanelViewport {
    --summary-panel-font-size: clamp(13px, 3.8vw, 16px);
    --summary-panel-heading-font-size: clamp(15px, 4.2vw, 17px);
    --summary-panel-prompt-font-size: clamp(14px, 4vw, 16px);
    --summary-panel-action-font-size: 15px;
    --summary-panel-compact-action-font-size: 13px;
    --summary-panel-row-font-size: clamp(14px, 4vw, 16px);
    --summary-panel-status-font-size: clamp(14px, 4vw, 16px);
    --summary-panel-caption-font-size: 12px;
    --summary-goal-date-column-min: 64px;
  }

  .runSummaryPanel {
    max-height: min(67vh, 340px);
    max-height: min(67dvh, 340px);
  }

  #leaderboardPanel,
  #dailyGoalsPanel,
  #communityPanel {
    padding-top: clamp(12px, 2.6vh, 22px);
  }

  .leaderboardList {
    gap: 5px;
    margin-top: 14px;
  }

  .leaderboardItem,
  .leaderboardPlayerRow {
    grid-template-columns: 28px minmax(0, 1fr) auto;
    gap: 8px;
    min-height: 26px;
  }

  .leaderboardPlayerRow {
    margin-top: 10px;
  }

  .leaderboardHistory {
    gap: 14px;
    margin-top: 18px;
  }

  .leaderboardHistorySection {
    gap: 10px;
  }

  .leaderboardHistoryHeader {
    padding-top: 6px;
  }

  .goalList {
    gap: 7px;
  }

  .goalStreak {
    margin-bottom: 9px;
  }

  .goalItem {
    grid-template-columns: 24px minmax(var(--summary-goal-date-column-min), 0.58fr) minmax(0, 1fr) 24px;
    gap: 8px;
    min-height: 24px;
  }

  .goalCalendarIcon svg,
  .goalStatusIcon {
    width: 24px;
    height: 24px;
  }

  .dailyBonusGameSlot {
    margin-bottom: 13px;
  }

  .todayBonusGameButton {
    min-height: 46px;
    padding: 7px 16px 8px;
    gap: 7px;
  }

  .todayBonusGameIcon {
    width: 19px;
    height: 19px;
  }

  .todayBonusGameComplete {
    margin-top: 7px;
    font-size: 0.92em;
  }
}

@media (max-height: 500px) and (orientation: landscape) {
  #titleLogo {
    max-width: 480px;
  }

  #titleLogo .logo {
    gap: 0.12em;
    letter-spacing: 0;
    font-size: clamp(34px, 13vh, 56px);
    font-size: clamp(34px, 13dvh, 56px);
  }

  .runSummaryNav {
    --nav-slot-size: 40px;
    --nav-gap: clamp(8px, 4vw, 24px);
    --nav-icon-size: 24px;
    max-width: 500px;
  }

  .runSummaryPanelViewport {
    --summary-panel-font-size: clamp(13px, 3.5vh, 15px);
    --summary-panel-font-size: clamp(13px, 3.5dvh, 15px);
    --summary-panel-heading-font-size: clamp(15px, 4.2vh, 17px);
    --summary-panel-heading-font-size: clamp(15px, 4.2dvh, 17px);
    --summary-panel-prompt-font-size: clamp(14px, 4vh, 16px);
    --summary-panel-prompt-font-size: clamp(14px, 4dvh, 16px);
    --summary-panel-action-font-size: 15px;
    --summary-panel-compact-action-font-size: 13px;
    --summary-panel-row-font-size: clamp(14px, 4vh, 16px);
    --summary-panel-row-font-size: clamp(14px, 4dvh, 16px);
    --summary-panel-status-font-size: clamp(14px, 4vh, 16px);
    --summary-panel-status-font-size: clamp(14px, 4dvh, 16px);
    --summary-panel-caption-font-size: 12px;
    --summary-goal-date-column-min: 64px;
  }

  .runSummaryPanel {
    line-height: 1.2;
  }

  .runSummaryScorePanel {
    gap: clamp(2px, 0.9vh, 5px);
    gap: clamp(2px, 0.9dvh, 5px);
    padding-top: clamp(6px, 2vh, 12px);
    padding-top: clamp(6px, 2dvh, 12px);
  }

  .runSummaryScorePanel.is-no-nav-game-over {
    padding-top: clamp(12px, 3.2vh, 18px);
    padding-top: clamp(12px, 3.2dvh, 18px);
  }

  .runSummaryScorePanel.is-start-screen {
    gap: clamp(10px, 3vh, 18px);
    gap: clamp(10px, 3dvh, 18px);
    padding-top: clamp(28px, 7vh, 40px);
    padding-top: clamp(28px, 7dvh, 40px);
  }

  .runSummaryScorePanel.is-start-screen #roundPrompt {
    margin-top: 0;
  }

  #startBallSlot {
    min-height: clamp(64px, 19vh, 84px);
    min-height: clamp(64px, 19dvh, 84px);
  }

  .runSummaryScorePanel #startPrompt,
  .runSummaryScorePanel #roundPrompt,
  .runSummaryScorePanel #achievementSummary,
  .runSummaryScorePanel #bonusGameRunTitle,
  .runSummaryScorePanel #bestScoreDisplay {
    line-height: 1.15;
  }

  .runSummaryScorePanel #levelIndicator {
    font-size: clamp(82px, 24vh, 108px);
    font-size: clamp(82px, 24dvh, 108px);
    line-height: 0.78;
  }

  .runSummaryScorePanel #levelIndicator.is-bonus-game-stage {
    font-size: clamp(22px, 6.5vh, 30px);
    font-size: clamp(22px, 6.5dvh, 30px);
    line-height: 1;
  }

  .runSummaryScorePanel #roundPrompt.is-bonus-game-failed {
    font-size: clamp(18px, 5vh, 24px);
    font-size: clamp(18px, 5dvh, 24px);
    margin-top: clamp(4px, 1.4vh, 10px);
    margin-top: clamp(4px, 1.4dvh, 10px);
    margin-bottom: clamp(4px, 1.2vh, 9px);
    margin-bottom: clamp(4px, 1.2dvh, 9px);
  }

  .runSummaryScorePanel #roundPrompt.is-bonus-game-failed .bonusGameRetryPrompt {
    font-size: clamp(20px, 5.8vh, 26px);
    font-size: clamp(20px, 5.8dvh, 26px);
    margin-top: clamp(10px, 3vh, 18px);
    margin-top: clamp(10px, 3dvh, 18px);
    white-space: normal;
  }

  .runSummaryScorePanel #roundPrompt.is-bonus-game-complete {
    font-size: clamp(20px, 6vh, 28px);
    font-size: clamp(20px, 6dvh, 28px);
  }

  .runSummaryScorePanel #mobileShareWrap {
    margin-top: clamp(2px, 0.7vh, 5px);
    margin-top: clamp(2px, 0.7dvh, 5px);
  }

  #mobileVersionLink,
  #mobileShareLink,
  #bonusGameBackButton {
    min-height: 34px;
    padding: 6px 18px 7px;
  }
}

#pauseOverlay {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  transform: translate(-50%, -50%);
  opacity: 0;
  pointer-events: none;
  z-index: 1200;
  transition: opacity 0.16s linear;
}

#pauseOverlay .pauseBar {
  width: 10px;
  height: 42px;
  border-radius: 999px;
  background: rgba(235, 244, 255, 0.78);
  box-shadow:
    0 0 10px rgba(12, 24, 37, 0.22),
    0 0 24px rgba(255, 255, 255, 0.08);
}

#motionJoystickPeek {
  position: fixed;
  top: 0;
  left: 0;
  display: block;
  box-sizing: border-box;
  padding: 0;
  border: 2px solid var(--playfield-border-color);
  border-radius: 50%;
  background: var(--bg-top);
  box-shadow: 0 0 18px color-mix(in srgb, var(--playfield-border-color) 24%, transparent);
  cursor: pointer;
  z-index: 2147483001;
  touch-action: manipulation;
  transform: translate(-9999px, -9999px);
}

#motionJoystickPeek[hidden] {
  display: none;
}

.hudIconButton,
.hudStatusIcon {
  position: absolute;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.68);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  z-index: 1100;
  cursor: pointer;
  text-shadow:
    0 0 4px var(--bg-bottom),
    0 0 10px var(--bg-bottom);
}

.hudStatusIcon {
  pointer-events: none;
  color: rgba(241, 196, 15, 0.92);
}

.hudStatusIcon[hidden] {
  display: none;
}

.hudIconButton:hover,
.hudIconButton:focus-visible {
  color: rgba(255, 255, 255, 0.96);
  outline: none;
}

.hudIconButton svg,
.hudStatusIcon svg {
  width: 22px;
  height: 22px;
  display: block;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 0 1px var(--bg-bottom)) drop-shadow(0 0 6px var(--bg-bottom));
}

#offlineIndicator {
  top: calc(var(--safe-top) + 24px);
  left: calc(var(--safe-left) + 28px);
}

#muteToggle {
  top: calc(var(--safe-top) + 24px);
  right: calc(var(--safe-right) + 28px);
}

#accountButton {
  top: calc(var(--safe-top) + 24px);
  left: calc(var(--safe-left) + 28px);
}

.hudIconButton[hidden] {
  display: none;
}

#accountButton.is-authenticated {
  color: var(--playfield-border-color);
}

#accountButton.is-authenticated svg {
  stroke-width: 2;
}

#accountButton .accountIconPlay {
  display: none;
}

#accountButton.is-account-screen-open .accountIconPerson {
  display: none;
}

#accountButton.is-account-screen-open .accountIconPlay {
  display: block;
}

@media (hover: hover) and (pointer: fine) {
  #muteToggle:not(.is-position-ready),
  #accountButton:not(.is-position-ready) {
    visibility: hidden;
    pointer-events: none;
  }
}

#muteToggle .icon-muted {
  display: none;
}

#muteToggle[aria-pressed='true'] .icon-on {
  display: none;
}

#muteToggle[aria-pressed='true'] .icon-muted {
  display: block;
}

.accountScreen {
  height: 100%;
  min-height: 0;
  max-height: none;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding-top: clamp(18px, 3.6vh, 34px);
  padding-bottom: clamp(8px, 1.8vh, 18px);
  text-align: center;
  touch-action: pan-y;
}

.accountScreen[hidden] {
  display: none !important;
}

.accountScreenFrame {
  width: 100%;
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
  margin: 0 auto;
}

.accountScreenInner {
  width: 100%;
  min-height: 0;
  flex: 1 1 auto;
  display: grid;
  align-content: start;
  gap: 12px;
  margin: 0 auto;
  padding-bottom: clamp(8px, 1.4vh, 14px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: none;
}

.accountScreenInner::-webkit-scrollbar {
  display: none;
}

.accountScreenTitle {
  min-height: 26px;
  margin: 0;
  color: var(--record-color-solid);
  font: inherit;
  font-size: inherit;
  font-weight: 300;
  line-height: 1.15;
  letter-spacing: 0;
  text-transform: lowercase;
}

.accountScreenText,
.accountScreenStatus {
  margin: 0;
  color: var(--hud-color);
  font-size: 0.92em;
  font-weight: 300;
  line-height: 1.25;
}

.accountScreenStatus {
  min-height: 1.25em;
  color: var(--record-color-solid);
}

.accountLegalLinks {
  flex: 0 0 auto;
  margin: auto 0 0;
  padding-bottom: clamp(2px, 0.8vh, 8px);
  color: rgba(208, 220, 236, 0.56);
  font-size: 12px;
  font-weight: 300;
  line-height: 1.2;
  text-align: center;
}

.accountLegalLinks a {
  color: inherit;
  text-decoration-color: currentColor;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.accountLegalLinks a:hover,
.accountLegalLinks a:focus-visible {
  color: rgba(232, 240, 255, 0.86);
  outline: none;
}

.accountLegalLinks .accountFeedbackLink {
  color: rgba(255, 255, 255, 0.92);
  font-weight: 400;
}

.accountLegalLinks .accountFeedbackLink:hover,
.accountLegalLinks .accountFeedbackLink:focus-visible {
  color: rgba(255, 255, 255, 0.98);
}

.accountScreenField {
  width: 100%;
  min-height: 38px;
  justify-self: center;
  padding: 5px 8px 6px;
  border: 0;
  border-bottom: 1.5px solid color-mix(in srgb, var(--playfield-border-color) 72%, transparent);
  border-radius: 0;
  background: rgba(255, 242, 0, 0.08);
  color: rgba(255, 255, 255, 0.96);
  font: inherit;
  font-size: 0.92em;
  font-weight: 300;
  line-height: 1.1;
  outline: none;
  box-sizing: border-box;
  text-align: center;
}

.accountCodeField {
  width: min(190px, 100%);
}

.accountScreenField:focus {
  border-color: var(--playfield-border-color);
}

.accountScreenButton {
  width: 100%;
  min-height: 34px;
  justify-self: center;
  padding: 5px 16px 6px;
  border: 2px solid var(--record-color-solid);
  border-radius: 999px;
  background: rgba(12, 24, 37, 0.08);
  color: rgba(232, 240, 255, 0.92);
  font-size: var(--summary-panel-row-font-size);
  font-weight: 300;
  line-height: 1.1;
  cursor: pointer;
  transition:
    border-color 140ms ease,
    color 140ms ease,
    background-color 140ms ease;
}

.accountScreenButton.secondary {
  border-color: var(--record-color-solid);
  background: rgba(12, 24, 37, 0.04);
  color: var(--hud-color);
}

.accountScreenButton:hover:not(:disabled),
.accountScreenButton:focus-visible {
  border-color: var(--record-color-solid);
  color: rgba(255, 255, 255, 0.98);
  outline: none;
}

.accountScreenButton:disabled,
.accountScreenField:disabled {
  cursor: default;
  opacity: 0.58;
}

.accountProfileHeader {
  display: grid;
  justify-items: center;
  gap: 6px;
  margin-bottom: 4px;
}

.accountProfileIdentity {
  color: var(--hud-color);
  font-size: 0.82em;
  overflow-wrap: anywhere;
}

.accountProfileActions {
  display: grid;
  justify-items: center;
  gap: 8px;
  width: 100%;
}

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

.accountControlModeButtons {
  width: 100%;
  justify-self: center;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: 6px;
}

.accountScreenButton.accountAudioToggleButton {
  width: 100%;
  min-height: 32px;
  padding-inline: 8px;
  font-size: var(--summary-panel-compact-action-font-size);
}

.accountScreenButton.accountControlModeButton {
  width: 100%;
  min-height: 31px;
  padding-inline: 6px;
  font-size: var(--summary-panel-compact-action-font-size);
}

.accountScreenButton.accountControlModeButton[aria-pressed='true'] {
  background: color-mix(in srgb, var(--record-color-solid) 18%, rgba(12, 24, 37, 0.16));
  color: rgba(255, 255, 255, 0.98);
}

.accountScreenButton.accountAudioToggleButton[aria-pressed='false'] {
  border-color: rgba(208, 220, 236, 0.44);
  color: rgba(208, 220, 236, 0.74);
}

.accountScreenButton.accountControlModeButton[aria-pressed='false'] {
  border-color: rgba(208, 220, 236, 0.44);
  color: rgba(208, 220, 236, 0.74);
}

.accountProfileNameGroup {
  justify-content: center;
  max-width: 100%;
  color: var(--record-color-solid);
}

.accountProfileName {
  margin: 0;
  color: var(--record-color-solid);
  font: inherit;
  font-size: inherit;
  font-weight: 300;
  line-height: 1.15;
}

.accountProfileNameInput {
  max-width: min(260px, 100%);
  text-align: center;
}

.accountStats {
  display: grid;
  gap: 7px;
  width: 100%;
  max-width: none;
  justify-self: center;
  margin: 8px 0 2px;
  padding: 0 clamp(18px, 5vw, 34px);
  list-style: none;
  text-align: left;
  box-sizing: border-box;
}

.accountStatRow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 10px;
  min-height: 28px;
  color: rgba(232, 240, 255, 0.8);
  font-size: 0.86em;
}

.accountStatRow strong {
  color: rgba(255, 255, 255, 0.94);
  font-weight: 300;
}

.multiplayerPanel {
  position: relative;
  flex: 0 0 100%;
  width: 100%;
  min-width: 0;
  max-height: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-content: start;
  justify-items: stretch;
  gap: 14px;
  overflow-x: hidden;
  overflow-y: auto;
  box-sizing: border-box;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(232, 240, 255, 0.9);
  z-index: 2;
  font-weight: 300;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  scrollbar-width: none;
  touch-action: pan-x pan-y;
  pointer-events: auto;
  -webkit-overflow-scrolling: touch;
}

.multiplayerPanel::-webkit-scrollbar {
  display: none;
}

.multiplayerPanel[hidden] {
  display: none;
}

.multiplayerRoomCode,
.multiplayerInviteLink,
.multiplayerBackButton,
.multiplayerPlayerList,
.multiplayerRankingList,
.multiplayerStatus {
  grid-column: 1 / -1;
}

.multiplayerActions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  grid-column: 2;
  justify-self: end;
}

.multiplayerRoomCode {
  display: none;
  align-items: center;
  gap: 8px;
  min-height: 28px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--multiplayer-control-color, rgba(255, 255, 255, 0.96));
  font-size: var(--summary-panel-row-font-size);
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.08em;
  align-self: center;
  justify-self: start;
  text-align: left;
  cursor: pointer;
  transition: color 140ms ease;
}

.multiplayerRoomCode:hover:not(:disabled),
.multiplayerRoomCode:focus-visible {
  color: rgba(255, 255, 255, 0.98);
  outline: none;
}

.multiplayerRoomCode:disabled {
  cursor: default;
}

.multiplayerRoomCodeShareIcon {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  letter-spacing: 0;
  transform: translate(-3px, -1px);
}

.multiplayerRoomCodeText {
  min-width: 0;
}

.multiplayerInviteLink {
  display: none;
  min-height: 19px;
  margin-top: 10px;
  color: rgba(208, 220, 236, 0.62);
  font-size: var(--summary-panel-caption-font-size);
  line-height: 1.35;
  transition: color 140ms ease;
}

.multiplayerActionButton {
  min-height: 40px;
  padding: 7px 22px 8px;
  border: 2px solid var(--playfield-border-color);
  border-radius: 999px;
  background: rgba(12, 24, 37, 0.08);
  color: rgba(232, 240, 255, 0.92);
  font-size: var(--summary-panel-action-font-size);
  font-weight: 300;
  line-height: 1.1;
  cursor: pointer;
  transition:
    border-color 140ms ease,
    color 140ms ease,
    background-color 140ms ease;
}

.multiplayerHomeActions .multiplayerActionButton,
.multiplayerActions .multiplayerActionButton {
  min-height: 34px;
  padding: 6px 16px 7px;
  font-size: var(--summary-panel-compact-action-font-size);
}

.multiplayerHomeActions .multiplayerActionButton {
  border-color: var(--level-border-color);
}

.multiplayerActionButton:disabled {
  border-color: rgba(232, 240, 255, 0.12);
  color: rgba(208, 220, 236, 0.34);
  cursor: default;
}

.multiplayerActionButton:hover:not(:disabled),
.multiplayerActionButton:focus-visible {
  border-color: var(--record-color-solid);
  color: rgba(255, 255, 255, 0.98);
  outline: none;
}

.multiplayerHomeActions .multiplayerActionButton:hover:not(:disabled),
.multiplayerHomeActions .multiplayerActionButton:focus-visible {
  border-color: var(--level-border-accent-color);
}

#multiplayerInviteButton {
  grid-column: 1;
  justify-self: start;
  min-height: 34px;
  padding: 6px 16px 7px;
  font-size: var(--summary-panel-compact-action-font-size);
}

.multiplayerBackButton {
  justify-self: start;
  min-height: 28px;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(208, 220, 236, 0.68);
  font-size: var(--summary-panel-compact-action-font-size);
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
  transition: color 140ms ease;
}

.multiplayerNavPanel {
  contain: paint;
  overflow: hidden;
  touch-action: pan-x pan-y;
  padding-top: clamp(18px, 3.6vh, 34px);
  padding-top: clamp(18px, 3.6dvh, 34px);
}

.multiplayerPaneTrack {
  display: flex;
  width: min(420px, 100%);
  height: 100%;
  margin: 0 auto;
  overflow-x: hidden;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  touch-action: pan-x pan-y;
  -webkit-overflow-scrolling: touch;
}

.multiplayerPaneTrack.is-room-open {
  overflow-x: auto;
}

.multiplayerPaneTrack:not(.is-room-open) {
  scroll-snap-type: none;
}

.multiplayerPaneTrack::-webkit-scrollbar {
  display: none;
}

.multiplayerPaneTrack:not(.is-room-open) .multiplayerPanel,
.multiplayerPaneTrack.is-room-open .multiplayerHome {
  pointer-events: none;
}

.multiplayerPaneTrack.is-room-open .multiplayerHome {
  clip-path: inset(0 8px 0 0);
}

.multiplayerHome {
  display: grid;
  flex: 0 0 100%;
  width: 100%;
  min-width: 0;
  max-height: 100%;
  margin: 0;
  gap: 16px;
  align-content: start;
  overflow: auto;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  scrollbar-width: none;
}

.multiplayerHome::-webkit-scrollbar {
  display: none;
}

.multiplayerHome[hidden] {
  display: none;
}

.multiplayerHomeHeading {
  min-height: 26px;
  margin-bottom: -2px;
  color: var(--record-color-solid);
  text-align: center;
}

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

.multiplayerRoomList {
  display: grid;
  gap: 8px;
}

.multiplayerRoomButton {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 34px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--multiplayer-room-player-color, rgba(232, 240, 255, 0.9));
  text-align: left;
  cursor: pointer;
  transition: color 140ms ease;
}

.multiplayerRoomButton:hover,
.multiplayerRoomButton:focus,
.multiplayerRoomButton:focus-visible,
.multiplayerRoomButton:active {
  color: var(--multiplayer-room-player-color, rgba(232, 240, 255, 0.9));
  outline: none;
}

.multiplayerRoomButton:disabled {
  color: color-mix(in srgb, var(--multiplayer-room-player-color, rgba(232, 240, 255, 0.9)) 42%, transparent);
  cursor: default;
}

.multiplayerRoomButton:disabled .multiplayerRoomItemMeta {
  color: rgba(208, 220, 236, 0.44);
}

.multiplayerRoomItemCode {
  font-weight: 300;
  letter-spacing: 0.08em;
  text-decoration: none;
}

.multiplayerRoomItemMeta,
.multiplayerRoomEmpty {
  color: rgba(208, 220, 236, 0.58);
  font-size: var(--summary-panel-compact-action-font-size);
  transition: color 140ms ease;
}

.multiplayerPlayerList,
.multiplayerRankingList {
  display: grid;
  gap: 8px;
}

.multiplayerRankingList {
  display: none;
}

.multiplayerPanel.is-room:not(.is-playing) .multiplayerRoomCode {
  display: inline-flex;
  grid-column: 1;
  font-weight: 300;
}

.multiplayerPanel.is-finished .multiplayerRankingList {
  display: grid;
  order: 1;
}

.multiplayerPanel.is-finished .multiplayerPlayerList,
.multiplayerPanel.is-finished #multiplayerInviteButton,
.multiplayerPanel.is-playing:not(.is-spectating) .multiplayerPlayerList,
.multiplayerPanel.is-playing #multiplayerInviteButton,
.multiplayerPanel.is-playing .multiplayerInviteLink,
.multiplayerPanel.is-playing .multiplayerActions,
.multiplayerPanel.is-playing:not(.is-spectating) .multiplayerStatus {
  display: none;
}

.multiplayerPanel.is-playing.is-spectating {
  align-content: start;
  justify-items: stretch;
}

.multiplayerPanel.is-playing.is-spectating .multiplayerStatus {
  text-align: center;
}

.multiplayerPanel.is-finished .multiplayerActions {
  grid-column: 1 / -1;
  order: 2;
}

.multiplayerPanel.is-finished .multiplayerStatus {
  order: 3;
}

.multiplayerPanel.is-finished .multiplayerRoundHistory {
  grid-column: 1 / -1;
  order: 4;
}

.multiplayerPlayer,
.multiplayerRanking {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  min-height: 30px;
  color: rgba(232, 240, 255, 0.88);
  font-size: var(--summary-panel-row-font-size);
  transition: color 140ms ease;
}

.multiplayerRanking {
  grid-template-columns: auto auto minmax(0, 1fr) auto;
  font-size: var(--summary-panel-row-font-size);
}

.multiplayerRanking.is-last-winner .multiplayerRankingName,
.multiplayerRanking.is-last-winner .multiplayerRankingWins,
.multiplayerRankingName.is-last-winner,
.multiplayerRankingWins.is-last-winner {
  color: #fff !important;
  font-weight: inherit;
}

.multiplayerPlayerSwatch {
  width: 12px;
  height: 12px;
  border-radius: 50%;
}

.multiplayerPlayerName,
.multiplayerRankingName {
  font-size: var(--summary-panel-row-font-size);
  transition: color 140ms ease;
}

.multiplayerPlayerState {
  color: rgba(208, 220, 236, 0.58);
  font-size: var(--summary-panel-row-font-size);
  transition: color 140ms ease;
}

.multiplayerRankingRank {
  min-width: 2ch;
  color: rgba(208, 220, 236, 0.58);
  font-size: var(--summary-panel-row-font-size);
  font-weight: 300;
  line-height: 1.2;
  text-align: right;
  transition: color 140ms ease;
}

.multiplayerRankingWins {
  color: rgba(208, 220, 236, 0.62);
  font-size: var(--summary-panel-row-font-size);
  white-space: nowrap;
  transition: color 140ms ease;
}

.multiplayerStatus {
  min-height: 18px;
  color: rgba(208, 220, 236, 0.62);
  font-size: var(--summary-panel-caption-font-size);
  line-height: 1.35;
  transition: color 140ms ease;
}

.multiplayerStatus.is-tap-ready {
  color: var(--multiplayer-control-color, rgba(255, 255, 255, 0.96));
  font-size: var(--summary-panel-status-font-size);
  text-align: center;
}

.multiplayerStatus.is-tap-ready.has-ready-instruction {
  display: grid;
  gap: 4px;
}

.multiplayerStatusInstruction {
  color: rgba(208, 220, 236, 0.72);
  font-size: var(--summary-panel-caption-font-size);
  white-space: pre-line;
}

.multiplayerStatusPrompt {
  display: block;
}

.multiplayerStatus.is-waiting-players {
  text-align: center;
}

.multiplayerRoundHistory {
  display: grid;
  gap: 16px;
  margin-top: 4px;
}

.multiplayerRoundHistory[hidden] {
  display: none;
}

.multiplayerRoundHistorySection {
  display: grid;
  gap: 8px;
  opacity: 0.56;
}

.multiplayerRoundHistoryHeader {
  color: rgba(208, 220, 236, 0.66);
  font-size: var(--summary-panel-caption-font-size);
  font-weight: 700;
  text-align: center;
}

.multiplayerRoundHistoryEmpty {
  color: rgba(208, 220, 236, 0.64);
  font-size: var(--summary-panel-caption-font-size);
  line-height: 1.3;
  text-align: center;
}

.multiplayerRoundHistoryList {
  display: grid;
  gap: 5px;
}

.multiplayerRoundHistory .multiplayerRanking {
  min-height: 26px;
  color: rgba(232, 240, 255, 0.72);
  font-size: var(--summary-panel-compact-action-font-size);
}

.multiplayerRoundHistory .multiplayerRankingName,
.multiplayerRoundHistory .multiplayerRankingRank,
.multiplayerRoundHistory .multiplayerRankingWins {
  font-size: var(--summary-panel-compact-action-font-size);
}

body.is-multiplayer-mode #multiplayerBoard {
  display: flex;
  overflow: visible;
  animation: multiplayerBoardEnter 0.24s ease-out both;
}

body.is-multiplayer-mode #runSummaryNav,
body.is-multiplayer-mode .multiplayerBackButton,
body.is-multiplayer-mode .multiplayerPanel.is-board-active {
  display: none !important;
}

body.is-multiplayer-mode .multiplayerNavPanel {
  display: flex !important;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding-top: 0;
}

body.is-multiplayer-mode .multiplayerPaneTrack {
  display: none;
}

body.is-multiplayer-mode .hudIconButton,
body.is-multiplayer-mode .hudStatusIcon {
  text-shadow: none;
}

body.is-multiplayer-mode .hudIconButton svg,
body.is-multiplayer-mode .hudStatusIcon svg {
  filter: none;
}

body.is-multiplayer-mode #ball,
body.is-multiplayer-mode #ballCallout,
body.is-multiplayer-mode #bestScoreDisplay,
body.is-multiplayer-mode #blockContainer,
body.is-multiplayer-mode #edgeGlow,
body.is-multiplayer-mode #edgeThreatOverlay,
body.is-multiplayer-mode #startPrompt,
body.is-multiplayer-mode #levelIndicator,
body.is-multiplayer-mode #mobileShareWrap,
body.is-multiplayer-mode #mobileVersionLinkWrap,
body.is-multiplayer-mode #particleContainer,
body.is-multiplayer-mode #playfieldTint,
body.is-multiplayer-mode #playfieldBorder,
body.is-multiplayer-mode #roundPrompt,
body.is-multiplayer-mode #bonusGameBackButton,
body.is-multiplayer-mode #bonusGameContainer,
body.is-multiplayer-mode #titleLogo,
body.is-multiplayer-mode #trailContainer {
  display: none !important;
}

@keyframes multiplayerSphereIntroRing {
  0% {
    opacity: 0;
    transform: scale(0.68);
  }

  24% {
    opacity: 1;
    transform: scale(1);
  }

  100% {
    opacity: 0;
    transform: scale(1.72);
  }
}

@keyframes multiplayerCountdownPulse {
  0% {
    opacity: 0;
    transform: scale(0.78);
  }

  28% {
    opacity: 1;
    transform: scale(1.04);
  }

  100% {
    opacity: 0.86;
    transform: scale(1);
  }
}

@media (max-width: 480px) and (orientation: portrait) {
  .multiplayerCountdown.is-result {
    padding: 0 20px;
    font-size: clamp(24px, 8.6vmin, 46px);
  }
}

@keyframes multiplayerBoardEnter {
  from {
    opacity: 0;
    transform: scale(0.94);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.is-multiplayer-mode #multiplayerBoard {
    animation: none;
  }
}

@media (max-width: 640px) {
  .multiplayerPaneTrack {
    width: min(360px, 100%);
  }

  .multiplayerPanel {
    width: 100%;
  }

  .multiplayerPanel.is-playing {
    max-height: 100%;
  }

  .multiplayerRoomCode {
    font-size: var(--summary-panel-row-font-size);
  }
}
