@font-face {
  font-family: Fredoka;
  src: url("../fonts/fredoka.woff2") format("woff2");
  font-weight: 300 900;
  font-display: swap;
}
@font-face {
  font-family: Lilita;
  src: url("../fonts/lilita.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}
[hidden] {
  display: none !important;
}
body,
html {
  margin: 0;
  overflow: hidden;
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: default;
}
#scene-root {
  position: fixed;
  inset: 0;
  background: #eac58c;
  overflow: hidden;
  z-index: 0;
}
#scene-stage {
  position: absolute;
  left: 0;
  top: 0;
  width: 1672px;
  height: 941px;
  transform-origin: 0 0;
  overflow: hidden;
}
.scene-art {
  position: absolute;
  left: 0;
  width: 1672px;
  user-select: none;
  pointer-events: none;
  object-fit: fill;
}
.scene-canyon {
  z-index: 0;
}
.scene-mesa {
  z-index: 1;
}
.scene-farm {
  z-index: 2;
}
#farm-canvas {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 3;
  touch-action: none;
  outline: none;
}
#sunny-hud {
  position: fixed;
  inset: 0;
  z-index: 10;
  pointer-events: none;
  color: #fff7dc;
  font-family: Fredoka, sans-serif;
  font-weight: 600;
}
#sunny-hud * {
  box-sizing: border-box;
}
#sunny-hud button {
  font-family: inherit;
  color: inherit;
  pointer-events: auto;
  border: 0;
  background-color: transparent;
  text-shadow: 0 2px 2px #18321a99;
}
#sunny-hud button:focus-visible {
  outline: 3px solid #fff5a5;
  outline-offset: 2px;
  border-radius: 24px;
}
.hud-design {
  position: absolute;
  left: var(--hud-left, 0px);
  top: var(--hud-top, 0px);
  width: 1672px;
  height: 941px;
  transform: scale(var(--hud-scale, 1));
  transform-origin: 0 0;
  pointer-events: none;
}
.sunny-icon {
  display: inline-block;
  width: 44px;
  height: 44px;
  object-fit: contain;
  flex-shrink: 0;
  vertical-align: middle;
  pointer-events: none;
  filter: drop-shadow(0 2px 1px #5a321832);
}
.sunny-profile {
  position: absolute;
  left: 16px;
  top: 17px;
  width: 397px;
  height: 150px;
  background: none center/100% 100% no-repeat;
  padding: 0;
  display: flex;
  align-items: center;
  text-align: left;
  gap: 14px;
}
.sunny-avatar {
  width: 113px;
  height: 119px;
  margin-left: 26px;
  border: 3px solid #ffd17d;
  border-radius: 50%;
  background: linear-gradient(140deg, #daee9a, #579248);
  overflow: hidden;
  box-shadow: 0 3px 5px #43260560;
  flex-shrink: 0;
}
.sunny-avatar img {
  width: 100%;
  height: 128%;
  object-fit: contain;
  object-position: center top;
  transform: scale(1.18);
  transform-origin: center 55%;
}
.profile-copy {
  width: 213px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding-top: 3px;
}
.profile-copy > strong {
  font-family: Lilita, Fredoka, sans-serif;
  font-size: 31px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 400;
  line-height: 1.2;
}
.profile-level {
  font-size: 21px;
  color: #ffe665;
  display: flex;
  align-items: center;
  gap: 4px;
}
.profile-level .sunny-icon {
  width: 28px;
  height: 26px;
}
.profile-copy > small {
  font-size: 14px;
  margin-left: 9px;
}
.xp-track,
.storage-track {
  display: block;
  height: 13px;
  border: 1px solid #a8c283;
  border-radius: 12px;
  background: #142c22;
  box-shadow: inset 0 2px 3px #0005;
  overflow: hidden;
  margin: 3px 0 1px;
}
.xp-track i,
.storage-track i,
.quest-track i {
  display: block;
  height: 100%;
  background: linear-gradient(#fff789, #ffd237 56%, #f0a823);
  border-radius: 12px;
  border: 1px solid #ffefa1;
  transition: width 0.25s;
}
.sunny-resources {
  position: absolute;
  left: 513px;
  top: 25px;
  display: flex;
  gap: 10px;
}
.sunny-resource {
  width: 223px;
  height: 73px;
  background: none center/100% 100% no-repeat;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 19px 14px 28px;
}
.sunny-resource:nth-child(n + 2) {
  width: 191px;
}
.sunny-resource > .sunny-icon {
  width: 48px;
  height: 48px;
}
.sunny-resource > strong {
  font-size: 25px;
  text-shadow: 0 2px 3px #162215;
  flex: 1;
  letter-spacing: 0.2px;
}
#sunny-hud .sunny-resource button {
  font-size: 32px;
  font-weight: 700;
  width: 44px;
  height: 44px;
  background: none center/100% 100% no-repeat;
  padding: 0 0 10px;
  line-height: 1;
  flex-shrink: 0;
}
.sunny-help {
  position: absolute;
  left: 17px;
  top: 169px;
  width: 416px;
  height: 80px;
  display: flex;
  align-items: center;
  gap: 10px;
  background: none center/100% 100% no-repeat;
  padding: 13px 25px 20px !important;
  color: #492c1c !important;
  text-shadow: none !important;
  text-align: left;
}
.sunny-help > .sunny-icon {
  width: 44px;
  height: 46px;
}
.sunny-help span {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
}
.sunny-help strong {
  font-size: 19px;
}
.sunny-help small {
  font-size: 13px;
  white-space: nowrap;
}
.sunny-help > b {
  font-size: 40px;
  line-height: 1;
}
.sunny-menu {
  position: absolute;
  left: 1289px;
  top: 23px;
  width: 197px;
  height: 74px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  background: none center/100% 100% no-repeat;
  padding: 9px 19px 18px !important;
  font-size: 23px;
  font-weight: 700;
}
.sunny-menu > .sunny-icon {
  width: 43px;
  height: 43px;
}
#sunny-hud kbd {
  font:
    600 15px/1 Fredoka,
    sans-serif;
  background: linear-gradient(#544d2f, #302b1c);
  border: 2px solid #ecd6a2;
  border-radius: 7px;
  padding: 3px 5px;
  box-shadow: 0 2px 3px #24190e80;
  color: #fff8e3;
  text-shadow: 0 1px #000;
}
.sunny-minimap {
  position: absolute;
  right: 9px;
  top: 14px;
  width: 204px;
  height: 226px;
  pointer-events: auto;
}
.minimap-open {
  position: relative;
  width: 204px;
  height: 204px;
  padding: 0;
  isolation: isolate;
}
.minimap-open canvas {
  position: absolute;
  left: 24px;
  top: 26px;
  width: 156px;
  height: 151px;
  border-radius: 50%;
  background: #b2dc6d;
}
.minimap-rim {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.minimap-open > b {
  position: absolute;
  top: 18px;
  left: 93px;
  font-size: 15px;
  width: 23px;
  height: 26px;
  background: #503e24;
  border: 1px solid #ffc971;
  border-radius: 9px;
  z-index: 3;
  display: grid;
  place-items: center;
}
.minimap-tools {
  position: absolute;
  top: 164px;
  left: 11px;
  display: flex;
  gap: 0;
}
.minimap-tools .sunny-round {
  width: 58px;
  height: 62px;
}
.minimap-tools .sunny-icon {
  width: 29px;
  height: 29px;
  margin-top: -7px;
}
.sunny-round {
  position: relative;
  width: 113px;
  height: 119px;
  background: none center/100% 100% no-repeat !important;
  display: grid;
  place-items: center;
  padding: 0 !important;
  transition:
    filter 0.12s,
    translate 0.12s;
  touch-action: none;
  user-select: none;
}
.sunny-round:hover,
.sunny-round.held {
  filter: brightness(1.1);
  translate: 0 -2px;
}
.sunny-round:active {
  translate: 0 2px;
  filter: brightness(0.92);
}
.sunny-round > .sunny-icon {
  width: 63px;
  height: 65px;
  margin-top: -15px;
}
.sunny-round > kbd {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translate(-50%, 0);
  min-width: 29px;
  text-align: center;
  font-size: 20px !important;
}
.sunny-shortcuts {
  position: absolute;
  right: 18px;
  top: 245px;
  display: flex;
  flex-direction: column;
  gap: 1px;
  pointer-events: auto;
}
.sunny-shortcuts .sunny-round {
  width: 86px;
  height: 86px;
}
.sunny-shortcuts .sunny-icon {
  width: 44px;
  height: 44px;
  margin-top: -12px;
}
.sunny-shortcuts kbd {
  left: auto !important;
  right: -4px;
  bottom: 5px;
  transform: none !important;
  font-size: 13px !important;
  min-width: 24px;
  border-width: 1px !important;
}
.sunny-movement {
  position: absolute;
  left: 17px;
  bottom: 43px;
  width: 299px;
  height: 276px;
  pointer-events: auto;
}
.sunny-movement .sunny-round {
  position: absolute;
  width: 126px;
  height: 132px;
}
.move-w {
  left: 84px;
  top: 0;
}
.move-a {
  left: 0;
  top: 85px;
}
.move-d {
  left: 169px;
  top: 85px;
}
.move-s {
  left: 84px;
  top: 163px;
}
.movement-arrow {
  color: #fff7c8;
  font:
    700 83px/1 Fredoka,
    sans-serif;
  text-shadow:
    0 3px #ad8033,
    0 0 2px #553921;
  margin-top: -28px;
}
.move-w .movement-arrow {
  margin-top: 5px;
}
.move-s .movement-arrow {
  margin-top: -23px;
}
.sunny-storage {
  position: absolute;
  left: 582px;
  bottom: 32px;
  width: 527px;
  height: 121px;
  background: none center/100% 100% no-repeat;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 17px 26px 25px !important;
  text-align: left;
}
.sunny-storage > .sunny-icon {
  width: 74px;
  height: 77px;
}
.storage-copy {
  flex: 1;
}
.storage-copy > strong {
  font-size: 22px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  white-space: nowrap;
}
.storage-copy > strong > small {
  font-size: 17px;
  color: #ffe46b;
}
.storage-track {
  height: 18px;
  margin: 5px 0;
}
.storage-copy > small {
  font-size: 16px;
}
.storage-toggle {
  font-size: 29px;
  color: #fff0b0;
  margin: 0 1px 0 5px;
}
.sunny-actions {
  position: absolute;
  right: 22px;
  bottom: 35px;
  display: flex;
  gap: 16px;
  pointer-events: auto;
}
.sunny-actions .sunny-round {
  width: 123px;
  height: 130px;
}
.sunny-actions > .sunny-round:after {
  content: attr(aria-label);
  position: absolute;
  left: 50%;
  bottom: 20px;
  transform: translateX(-50%);
  font-size: 17px;
  color: #fff8d4;
  background: linear-gradient(#6c512a, #443922);
  border: 2px solid #ffcb72;
  border-radius: 10px;
  padding: 2px 9px;
  line-height: 1.15;
  box-shadow: 0 2px 3px #54230c50;
  white-space: nowrap;
}
.sunny-actions .sunny-icon {
  width: 67px;
  height: 70px;
  margin-top: -26px;
}
.sunny-actions kbd {
  bottom: -5px;
}
#sunny-inspector {
  position: fixed;
  z-index: 13;
  left: 50%;
  bottom: clamp(125px, 16vh, 164px);
  transform: translateX(-50%);
  width: 310px;
  border: 2px solid #ffcd76;
  background: linear-gradient(145deg, #385c30ed, #173d2aed);
  border-radius: 20px;
  color: #fff8d6;
  padding: 12px;
  box-shadow: 0 7px 20px #4e241936;
  font:
    500 14px Fredoka,
    sans-serif;
}
.inspector-heading {
  display: flex;
  align-items: center;
  gap: 9px;
}
.inspector-heading .sunny-icon {
  width: 28px;
  height: 28px;
}
.inspector-heading strong {
  flex: 1;
  font-size: 19px;
}
.inspector-heading button {
  border: 0;
  background: none;
  color: #fff2c5;
  font: 24px Fredoka;
  cursor: pointer;
}
.crop-statuses {
  display: flex;
  justify-content: space-around;
  gap: 8px;
  margin: 9px 0;
}
.crop-statuses > span {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-size: 19px;
  color: #ffe28c;
}
.crop-statuses small {
  font-size: 10px;
  color: #efeedc;
}
.crop-actions {
  display: flex;
  gap: 8px;
}
.crop-actions .sunny-button {
  flex: 1;
  min-height: 41px;
  padding: 4px;
}
.crop-actions .sunny-icon {
  width: 27px;
  height: 27px;
}
.inspector-seeds {
  display: block;
  text-align: center;
  font-size: 11px;
  margin-top: 7px;
}
#sunny-placement {
  position: fixed;
  z-index: 13;
  left: 50%;
  top: 115px;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  background: #22452eef;
  border: 2px solid #ffcc76;
  border-radius: 20px;
  color: #fff4d4;
  font: 500 14px Fredoka;
}
.sunny-button {
  border: 1px solid #e8b363;
  border-radius: 12px;
  padding: 8px 15px;
  background: linear-gradient(#608239, #365831);
  color: #fff5cf;
  font:
    500 15px Fredoka,
    sans-serif;
  box-shadow:
    inset 0 1px #e3eeaa45,
    0 2px 2px #26251136;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  cursor: pointer;
}
.sunny-button:hover:not(:disabled) {
  filter: brightness(1.14);
}
.sunny-button:disabled {
  opacity: 0.4;
}
.sunny-button .sunny-icon {
  width: 24px;
  height: 24px;
}
#sunny-dialog {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #281c1842;
  backdrop-filter: blur(4px);
  padding: 22px;
  font-family: Fredoka, sans-serif;
  color: #3a4d2a;
  box-sizing: border-box;
}
.sunny-modal-card {
  width: min(790px, 100%);
  max-height: var(--dialog-height, calc(100dvh - 44px));
  display: flex;
  flex-direction: column;
  background: linear-gradient(135deg, #fffae6, #f5e7bd);
  border: 3px solid #f8cc77;
  border-radius: 26px;
  box-shadow:
    0 15px 60px #36190655,
    inset 0 0 0 2px #fff5d5;
  overflow: hidden;
}
.sunny-modal-card > header {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 13px 20px;
  color: #fff6d4;
  background: linear-gradient(110deg, #486934, #203f2b);
  border-bottom: 3px solid #e9b664;
  flex-shrink: 0;
}
.sunny-modal-card h2 {
  font-size: 26px;
  font-weight: 600;
  margin: 0;
  flex: 1;
}
.sunny-modal-card > header .sunny-icon {
  width: 44px;
  height: 44px;
}
.dialog-close {
  border: 1px solid #e8bd7f;
  background: #a67539;
  color: #fff9d9;
  font-size: 25px;
  border-radius: 12px;
  width: 36px;
  height: 36px;
  padding: 0;
  cursor: pointer;
}
.sunny-modal-body {
  padding: 20px;
  overflow: auto;
  min-height: 0;
  overscroll-behavior: contain;
}
.sunny-modal-card > footer {
  padding: 12px 20px;
  border-top: 1px solid #bca667;
  background: #e5d6a5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-size: 14px;
}
.sunny-modal-card > footer .sunny-icon {
  width: 24px;
  height: 24px;
}
.sunny-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.sunny-item-card {
  border: 1px solid #cebd87;
  border-radius: 16px;
  padding: 13px;
  background: #fffceeaa;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  min-width: 0;
}
.sunny-item-card > .sunny-icon {
  width: 66px;
  height: 66px;
}
.sunny-item-card > strong {
  font-size: 17px;
  line-height: 1.15;
}
.sunny-item-card > p {
  font-size: 13px;
  line-height: 1.6;
  margin: 0;
}
.card-actions {
  margin-top: auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 5px;
}
.card-actions .sunny-button {
  font-size: 12px;
  padding: 6px 9px;
  min-height: 34px;
}
.card-note {
  font-size: 12px;
  color: #8a7e54;
}
.cost-item {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  white-space: nowrap;
  font-size: 13px;
}
.cost-item .sunny-icon {
  width: 21px;
  height: 21px;
}
.sunny-prop-preview {
  display: block;
  width: 100%;
  height: 104px;
  max-width: 165px;
  background-repeat: no-repeat;
  flex-shrink: 0;
}
.quest-track {
  display: block;
  height: 8px;
  width: 130px;
  max-width: 100%;
  border: 1px solid #b0b87d;
  background: #a3a971;
  border-radius: 12px;
  overflow: hidden;
  margin: 3px auto 5px;
}
.quest-track i {
  background: #74a546;
  border: 0;
}
.building-detail {
  display: flex;
  align-items: center;
  gap: 28px;
}
.building-detail > .sunny-prop-preview {
  width: 46%;
  height: 225px;
  max-width: none;
}
.building-detail > div {
  flex: 1;
}
.building-detail .sunny-button {
  margin: 6px;
}
.building-detail h3 {
  font-size: 25px;
  margin: 0 0 14px;
}
.building-detail p {
  font-size: 15px;
}
.large-farm-map {
  position: relative;
  aspect-ratio: 1672/941;
  border-radius: 17px;
  overflow: hidden;
  cursor: pointer;
}
.large-farm-map > img,
.large-farm-map > canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.camera-preview img {
  width: 100%;
  border-radius: 15px;
}
.camera-options {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin-top: 14px;
}
.settings-fields {
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.settings-fields label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 17px;
}
.settings-fields input[type="range"] {
  width: 55%;
  accent-color: #619148;
}
.settings-fields input[type="checkbox"] {
  accent-color: #619148;
  width: 20px;
  height: 20px;
}
.settings-saves {
  margin-top: 27px;
}
.settings-saves > .sunny-button {
  margin: 0 6px 6px 0;
}
.import-save {
  position: relative;
  overflow: hidden;
}
.import-save input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  width: 100%;
}
.name-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 17px;
  margin-bottom: 20px;
}
.name-field input,
.profile-form input {
  font:
    500 18px Fredoka,
    sans-serif;
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
  color: #3b4e2b;
  padding: 10px;
  border: 1px solid #afae75;
  border-radius: 10px;
  background: #fffcef;
}
.profile-form {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
}
.profile-form > img {
  width: 100px;
  height: 115px;
  object-fit: contain;
}
.profile-form > label {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.profile-form > span {
  width: 100%;
  font-size: 16px;
}
.farm-record > div {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #d3c796;
  padding: 9px;
}
.farm-guide {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.farm-guide > div {
  display: flex;
  align-items: center;
  gap: 15px;
}
.farm-guide p {
  font-size: 15px;
  line-height: 1.5;
  margin: 0;
}
.farm-guide .sunny-icon {
  width: 42px;
  height: 42px;
}
#photo-exit {
  position: fixed;
  z-index: 15;
  right: 20px;
  bottom: 20px;
  font: 500 15px Fredoka;
  color: #fff3ca;
  background: #345631df;
  border: 2px solid #ffd28b;
  border-radius: 17px;
  padding: 10px 15px;
  display: flex;
  align-items: center;
  gap: 8px;
}
#photo-exit .sunny-icon {
  width: 32px;
  height: 32px;
}
#cod-toast {
  z-index: 90 !important;
  bottom: 190px !important;
  top: auto !important;
  font-family: Fredoka !important;
  font-size: 16px !important;
  letter-spacing: 0 !important;
  background: #24452feb !important;
  color: #fff5d4 !important;
  border: 1px solid #f2c97f !important;
  border-radius: 17px !important;
  padding: 11px 22px !important;
  max-width: calc(100vw - 32px);
  text-transform: none !important;
  pointer-events: none;
  transition:
    opacity 0.2s,
    transform 0.2s;
}
#cod-toast.show {
  opacity: 1 !important;
  transform: translateX(-50%) !important;
}
:is(#cod-lobby, #farm-overview-ui) .tile-hero {
  background:
    linear-gradient(90deg, #154635ed 0%, #15463544 52%, #15463522),
    url("../assets/sunny/loader-background.webp") center/cover !important;
}
:is(#cod-lobby, #farm-overview-ui) .setup-poster {
  background-image:
    linear-gradient(90deg, #113f33ec, #113f3368),
    url("../assets/sunny/loader-background.webp") !important;
  background-position: center;
  background-size: cover;
}
#snooker-best-of small {
  display: block;
  font-size: 11px;
  margin-top: 5px;
}
#lobby-record {
  font-size: 12px;
}
.compact-hud .hud-design {
  inset: 0;
  width: 100%;
  height: 100%;
  transform: none;
}
.compact-hud .sunny-profile {
  left: 8px;
  top: 8px;
  width: 234px;
  height: 90px;
  gap: 5px;
}
.compact-hud .sunny-avatar {
  width: 66px;
  height: 69px;
  margin-left: 15px;
  border-width: 2px;
}
.compact-hud .profile-copy {
  width: 124px;
  padding-top: 0;
}
.compact-hud .profile-copy > strong {
  font-size: 19px;
}
.compact-hud .profile-level {
  font-size: 13px;
}
.compact-hud .profile-level .sunny-icon {
  width: 16px;
  height: 16px;
}
.compact-hud .profile-copy > small {
  font-size: 8px;
  margin-left: 3px;
}
.compact-hud .xp-track {
  height: 8px;
  margin: 2px 0;
}
.compact-hud .sunny-resources {
  left: 50%;
  top: 8px;
  transform: translateX(-50%);
  gap: 1px;
}
.compact-hud .sunny-resource {
  width: 126px;
  height: 47px;
  padding: 5px 9px 11px 15px;
  gap: 4px;
}
.compact-hud .sunny-resource:nth-child(n + 2) {
  width: 98px;
}
.compact-hud .sunny-resource > .sunny-icon {
  width: 29px;
  height: 29px;
}
.compact-hud .sunny-resource > strong {
  font-size: 16px;
}
.compact-hud .sunny-resource > button {
  width: 27px !important;
  height: 27px !important;
  font-size: 23px !important;
  padding-bottom: 6px !important;
}
.compact-hud .sunny-menu {
  left: auto;
  right: 106px;
  top: 6px;
  width: 96px;
  height: 46px;
  gap: 4px;
  padding: 6px 9px 12px !important;
}
.compact-hud .sunny-menu span {
  font-size: 14px;
}
.compact-hud .sunny-menu .sunny-icon {
  width: 24px;
  height: 24px;
}
.compact-hud .sunny-menu kbd {
  display: none;
}
.compact-hud .sunny-minimap {
  right: 4px;
  top: 2px;
  width: 110px;
  height: 125px;
}
.compact-hud .minimap-open {
  width: 110px;
  height: 110px;
}
.compact-hud .minimap-open canvas {
  left: 13px;
  top: 14px;
  width: 85px;
  height: 82px;
}
.compact-hud .minimap-open > b {
  left: 51px;
  top: 10px;
  width: 14px;
  height: 16px;
  font-size: 9px;
}
.compact-hud .minimap-tools {
  top: 89px;
  left: 3px;
}
.compact-hud .minimap-tools .sunny-round {
  width: 35px;
  height: 37px;
}
.compact-hud .minimap-tools .sunny-icon {
  width: 18px;
  height: 18px;
  margin-top: -4px;
}
.compact-hud .sunny-help {
  left: 10px;
  top: 96px;
  width: 258px;
  height: 50px;
  padding: 8px 16px 13px !important;
  gap: 5px;
}
.compact-hud .sunny-help > .sunny-icon {
  width: 28px;
  height: 28px;
}
.compact-hud .sunny-help strong {
  font-size: 12px;
}
.compact-hud .sunny-help small {
  font-size: 8px;
}
.compact-hud .sunny-help b {
  font-size: 25px;
}
.compact-hud .sunny-shortcuts {
  right: 8px;
  top: 137px;
  gap: 0;
}
.compact-hud .sunny-shortcuts .sunny-round {
  width: 54px;
  height: 55px;
}
.compact-hud .sunny-shortcuts .sunny-icon {
  width: 29px;
  height: 29px;
  margin-top: -7px;
}
.compact-hud .sunny-shortcuts kbd {
  display: none;
}
.compact-hud .sunny-movement {
  left: 4px;
  bottom: 17px;
  width: 160px;
  height: 161px;
}
.compact-hud .sunny-movement .sunny-round {
  width: 72px;
  height: 76px;
}
.compact-hud .move-w {
  left: 47px;
  top: 0;
}
.compact-hud .move-a {
  left: 0;
  top: 48px;
}
.compact-hud .move-d {
  left: 96px;
  top: 48px;
}
.compact-hud .move-s {
  left: 47px;
  top: 92px;
}
.compact-hud .movement-arrow {
  font-size: 50px;
  margin-top: -16px;
}
.compact-hud .move-w .movement-arrow {
  margin-top: 5px;
}
.compact-hud .move-s .movement-arrow {
  margin-top: -13px;
}
.compact-hud .sunny-movement kbd {
  font-size: 12px !important;
  padding: 2px 4px;
  min-width: 20px;
  border-width: 1px;
}
.compact-hud .sunny-actions {
  right: 8px;
  bottom: 18px;
  gap: 0;
}
.compact-hud .sunny-actions .sunny-round {
  width: 75px;
  height: 81px;
}
.compact-hud .sunny-actions .sunny-icon {
  width: 42px;
  height: 43px;
  margin-top: -17px;
}
.compact-hud .sunny-actions > .sunny-round:after {
  font-size: 10px;
  bottom: 14px;
  padding: 2px 5px;
  border-width: 1px;
}
.compact-hud .sunny-actions kbd {
  font-size: 12px !important;
  padding: 2px 4px;
  min-width: 20px;
  border-width: 1px;
  bottom: -3px;
}
.compact-hud .sunny-storage {
  left: 50%;
  bottom: 19px;
  width: 300px;
  height: 74px;
  transform: translateX(-50%);
  gap: 5px;
  padding: 12px 18px 16px !important;
}
.compact-hud .sunny-storage > .sunny-icon {
  width: 45px;
  height: 45px;
}
.compact-hud .storage-copy > strong {
  font-size: 14px;
}
.compact-hud .storage-copy > strong > small {
  font-size: 11px;
}
.compact-hud .storage-track {
  height: 11px;
  margin: 3px 0;
}
.compact-hud .storage-copy > small {
  font-size: 10px;
}
.compact-hud .storage-toggle {
  font-size: 17px;
}
@media (max-width: 760px) {
  .compact-hud .sunny-resources {
    left: 8px;
    top: 93px;
    transform: none;
  }
  .compact-hud .sunny-help {
    display: none;
  }
  .compact-hud .sunny-menu {
    right: 108px;
    top: 11px;
  }
  .compact-hud .sunny-storage {
    bottom: 110px;
    width: 250px;
    height: 65px;
  }
  .compact-hud .sunny-storage > .sunny-icon {
    width: 34px;
    height: 36px;
  }
  .compact-hud .sunny-storage .storage-copy > small {
    font-size: 9px;
  }
  .sunny-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .sunny-modal-body {
    padding: 13px;
  }
  .sunny-item-card {
    padding: 10px;
  }
  .sunny-modal-card h2 {
    font-size: 22px;
  }
  .sunny-modal-card > header {
    padding: 9px 13px;
  }
  .sunny-modal-card > header > .sunny-icon {
    width: 33px;
    height: 33px;
  }
  .building-detail {
    gap: 12px;
  }
  .building-detail > .sunny-prop-preview {
    height: 150px;
  }
  .camera-options {
    flex-wrap: wrap;
  }
  #sunny-inspector {
    bottom: 188px;
    width: 280px;
  }
  #cod-toast {
    bottom: 190px !important;
    font-size: 13px !important;
  }
  #sunny-placement {
    top: 153px;
    width: min(310px, calc(100vw - 38px));
    flex-wrap: wrap;
    justify-content: center;
  }
}
@media (max-height: 540px) and (min-width: 761px) {
  .compact-hud .sunny-profile {
    width: 195px;
    height: 78px;
  }
  .compact-hud .sunny-avatar {
    width: 54px;
    height: 58px;
  }
  .compact-hud .profile-copy {
    width: 102px;
  }
  .compact-hud .profile-copy > strong {
    font-size: 16px;
  }
  .compact-hud .sunny-help {
    display: none;
  }
  .compact-hud .sunny-shortcuts {
    top: 130px;
    right: 10px;
    display: grid;
    grid-template-columns: repeat(2, 43px);
  }
  .compact-hud .sunny-shortcuts .sunny-round {
    width: 44px;
    height: 46px;
  }
  .compact-hud .sunny-shortcuts .sunny-icon {
    width: 24px;
    height: 24px;
  }
  .compact-hud .sunny-movement {
    transform: scale(0.79);
    transform-origin: bottom left;
  }
  .compact-hud .sunny-actions .sunny-round {
    width: 65px;
    height: 72px;
  }
  .compact-hud .sunny-actions .sunny-icon {
    width: 37px;
    height: 38px;
  }
  .compact-hud .sunny-storage {
    width: 265px;
    height: 68px;
  }
  .compact-hud .sunny-resource {
    width: 116px;
  }
  .compact-hud .sunny-resource:nth-child(n + 2) {
    width: 86px;
  }
  .sunny-card-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  #sunny-inspector {
    bottom: 105px;
    left: 43%;
    width: 270px;
    padding: 9px;
  }
  .sunny-modal-body {
    padding: 12px;
  }
  .sunny-modal-card > header {
    padding: 8px 15px;
  }
  .sunny-modal-card > header .sunny-icon {
    width: 31px;
    height: 31px;
  }
  .sunny-modal-card h2 {
    font-size: 21px;
  }
  #cod-toast {
    bottom: 100px !important;
  }
}
@media (max-width: 760px) and (max-height: 540px) {
  .compact-hud .sunny-profile {
    width: 190px;
    height: 73px;
  }
  .compact-hud .sunny-avatar {
    width: 54px;
    height: 58px;
  }
  .compact-hud .profile-copy {
    width: 100px;
  }
  .compact-hud .profile-copy > strong {
    font-size: 16px;
  }
  .compact-hud .sunny-resources {
    top: 78px;
    gap: 0;
  }
  .compact-hud .sunny-resource {
    width: 115px;
    height: 39px;
    padding: 4px 9px 9px 14px;
  }
  .compact-hud .sunny-resource:nth-child(n + 2) {
    width: 91px;
  }
  .compact-hud .sunny-resource > .sunny-icon {
    width: 23px;
    height: 24px;
  }
  .compact-hud .sunny-resource > strong {
    font-size: 14px;
  }
  .compact-hud .sunny-resource > button {
    width: 23px !important;
    height: 23px !important;
    font-size: 19px !important;
  }
  .compact-hud .sunny-storage {
    bottom: 7px;
    width: 205px;
    height: 53px;
    left: 48%;
    padding: 9px 14px 13px !important;
  }
  .compact-hud .storage-copy > strong {
    font-size: 10px;
  }
  .compact-hud .storage-copy > strong > small {
    font-size: 9px;
  }
  .compact-hud .sunny-storage > .sunny-icon {
    width: 26px;
    height: 28px;
  }
  .compact-hud .storage-copy > small {
    font-size: 7px !important;
  }
  .compact-hud .storage-toggle {
    display: none;
  }
  .compact-hud .sunny-movement {
    transform: scale(0.7);
    transform-origin: bottom left;
    bottom: 7px;
  }
  .compact-hud .sunny-actions {
    bottom: 8px;
    right: 5px;
  }
  .compact-hud .sunny-actions .sunny-round {
    width: 59px;
    height: 65px;
  }
  .compact-hud .sunny-actions .sunny-icon {
    width: 32px;
    height: 35px;
    margin-top: -16px;
  }
  .compact-hud .sunny-actions:after {
    display: none;
  }
  .compact-hud .sunny-shortcuts {
    top: 129px;
    display: grid;
    grid-template-columns: repeat(2, 40px);
  }
  .compact-hud .sunny-shortcuts .sunny-round {
    width: 42px;
    height: 45px;
  }
  .compact-hud .sunny-shortcuts .sunny-icon {
    width: 23px;
    height: 24px;
  }
  .sunny-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .sunny-item-card > .sunny-icon {
    width: 42px;
    height: 42px;
  }
  .sunny-prop-preview {
    height: 65px;
  }
  .sunny-item-card > strong {
    font-size: 14px;
  }
  #sunny-inspector {
    bottom: 75px;
    width: 235px;
    padding: 8px;
    left: 45%;
  }
  .crop-statuses {
    margin: 5px 0;
  }
  .crop-statuses > span {
    font-size: 14px;
  }
  .crop-actions .sunny-button {
    min-height: 30px;
  }
  .crop-actions .sunny-icon {
    width: 21px;
    height: 21px;
  }
  .inspector-seeds {
    font-size: 9px;
  }
  #cod-toast {
    bottom: 85px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto !important;
  }
  .sunny-round {
    transition: none;
  }
  .xp-track i,
  .storage-track i {
    transition: none;
  }
}
#sunny-hud .sunny-round,
#sunny-hud .sunny-resource button {
  background-image: none !important;
  background-size: 100% auto !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
}
.sunny-profile .profile-copy {
  width: 194px;
}
.sunny-profile .profile-copy > strong {
  font-size: 30px;
}
.sunny-profile .xp-track {
  width: 194px;
}
.sunny-profile .profile-copy > small {
  margin-left: 3px;
  font-size: 13px;
}
.compact-hud .sunny-profile .profile-copy {
  width: 120px;
}
.compact-hud .sunny-profile .profile-copy > strong {
  font-size: 19px;
}
.compact-hud .sunny-profile .xp-track {
  width: 120px;
}
.compact-hud .sunny-profile .profile-copy > small {
  font-size: 8px;
}
@media (max-height: 540px) {
  .compact-hud .sunny-profile .profile-copy {
    width: 100px;
  }
  .compact-hud .sunny-profile .profile-copy > strong {
    font-size: 16px;
  }
  .compact-hud .sunny-profile .xp-track {
    width: 100px;
  }
}
@media (max-width: 760px) {
  .compact-hud .sunny-profile {
    width: min(214px, calc(100vw - 170px));
    height: 84px;
  }
  .compact-hud .sunny-profile .sunny-avatar {
    width: 58px;
    height: 64px;
  }
  .compact-hud .sunny-profile .profile-copy {
    width: 111px;
  }
  .compact-hud .sunny-profile .profile-copy > strong {
    font-size: 17px;
  }
  .compact-hud .sunny-profile .xp-track {
    width: 111px;
  }
  .compact-hud .sunny-menu {
    right: 116px;
    width: 44px;
    height: 49px;
    top: 10px;
    background-image: none !important;
    background-size: 100% auto !important;
    padding: 0 !important;
  }
  .compact-hud .sunny-menu span {
    display: none;
  }
  .compact-hud .sunny-menu > .sunny-icon {
    width: 26px;
    height: 26px;
  }
  .compact-hud .sunny-actions .sunny-round {
    width: 69px;
    height: 77px;
  }
}
@media (max-width: 760px) and (min-height: 541px) {
  .compact-hud .sunny-movement {
    transform: scale(0.82);
    transform-origin: bottom left;
  }
  .compact-hud .sunny-storage {
    bottom: 192px;
  }
  #sunny-inspector {
    bottom: 270px;
  }
}
#sunny-hud .sunny-movement .move-w {
  background-image: none !important;
}
#sunny-hud .sunny-movement .move-a {
  background-image: none !important;
}
#sunny-hud .sunny-movement .move-s {
  background-image: none !important;
}
#sunny-hud .sunny-movement .move-d {
  background-image: none !important;
}
.sunny-prop-preview {
  object-fit: contain;
  object-position: center;
}
#sunny-dialog :is(h2, h3, p, strong, button, label, input, span) {
  font-family: Fredoka, sans-serif;
  letter-spacing: normal;
  text-transform: none;
  font-style: normal;
}
