:root {
  /* PostHog Design Tokens */
  --primary-color: #f7a501; /* PostHog Yellow */
  --primary-pressed: #dd9001;
  --on-primary: #23251d;
  --bg-canvas: #eeefe9; /* Cream Canvas */
  --ink: #23251d; /* Headlines / Deep Olive */
  --body-text: #4d4f46; /* Body text */
  --surface-card: #ffffff; /* White cards */
  --surface-soft: #e5e7e0;
  --border-hairline: #bfc1b7; /* Thin borders */
  --font-main: "Pretendard Variable", Pretendard, "Noto Sans KR", "Noto Sans CJK KR", "SamsungOne", "Samsung Sans", Roboto, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
  
  --spacing-section: 80px;
  --spacing-lg: 16px;
  --spacing-xl: 24px;
  
  --radius-md: 6px;
  --radius-lg: 8px;
  --radius-full: 9999px;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  height: 100%;
  height: 100dvh;
  overflow: hidden;
}

body {
  font-family: var(--font-main);
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  background-color: var(--bg-canvas);
  color: var(--body-text);
  height: 100%;
  height: 100dvh;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  padding: env(safe-area-inset-top) env(safe-area-inset-right)
    env(safe-area-inset-bottom) env(safe-area-inset-left);
}

#game-container {
  width: 100%;
  height: 100%;
  height: 100dvh;
  background: #fff;
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.screen {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  width: 100%;
  height: 100%;
  background-color: var(--bg-canvas) !important;
  color: var(--body-text);
  font-family: var(--font-main);
}

.hidden {
  display: none !important;
}

/* --- Standard Components --- */
.res-btn {
  background-color: var(--primary-color);
  color: var(--on-primary);
  font-family: var(--font-main);
  font-weight: 700;
  font-size: 14px;
  padding: 10px 24px;
  border-radius: var(--radius-md);
  border: 1px solid var(--primary-pressed);
  cursor: pointer;
  transition: all 0.2s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: none !important;
}

.res-btn:hover {
  background-color: var(--primary-pressed);
  transform: translateY(-1px);
}

.res-btn:active {
  transform: translateY(0);
}

.res-btn-secondary {
  background-color: var(--surface-soft);
  color: var(--ink);
  font-family: var(--font-main);
  font-weight: 600;
  font-size: 14px;
  padding: 10px 24px;
  border-radius: var(--radius-md);
  border: 1px solid var(--border-hairline);
  cursor: pointer;
  transition: all 0.2s ease;
}

.hud-pill {
  background-color: var(--surface-card);
  padding: 6px 14px;
  border-radius: var(--radius-full);
  border: 1px solid var(--border-hairline);
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  color: var(--ink);
  font-size: 14px;
}

.hud-pill.primary {
  border-color: var(--primary-color);
  background-color: var(--surface-card);
}

button:disabled {
  background: var(--surface-soft) !important;
  color: #9b9c92 !important;
  border: 1px solid var(--border-hairline) !important;
  cursor: not-allowed !important;
  transform: none !important;
}

/* Splash Screen Styles - PostHog Style */
#splash-screen {
  background-color: var(--bg-canvas);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
  overflow: hidden;
}

.splash-effects {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
}

.effect-burst {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1200px;
  height: 1200px;
  transform: translate(-50%, -50%);
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.4;
}

.burst-1 {
  background-image: url("assets/stage_desing_resources/effect_burst_pink.png");
  animation: rotateClockwise 20s linear infinite;
}

.burst-2 {
  background-image: url("assets/stage_desing_resources/effect_burst_yellow.png");
  animation: rotateCounterClockwise 15s linear infinite;
  mix-blend-mode: overlay;
}

.effect-sparkles {
  position: absolute;
  width: 100%;
  height: 100%;
  background-size: cover;
  opacity: 0.6;
}

.sparkle-1 {
  background-image: url("assets/stage_desing_resources/effect_sparkle_yellow_1.png");
  animation: slowFloat 8s ease-in-out infinite;
}

.sparkle-2 {
  background-image: url("assets/stage_desing_resources/effect_sparkle_yellow_2.png");
  animation: slowFloat 12s ease-in-out infinite reverse;
}

.sparkle-3 {
  background-image: url("assets/stage_desing_resources/effect_sparkle_blue.png");
  animation: slowFloat 10s ease-in-out infinite;
  mix-blend-mode: screen;
}

@keyframes rotateClockwise {
  from {
    transform: translate(-50%, -50%) rotate(0deg);
  }

  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}

@keyframes rotateCounterClockwise {
  from {
    transform: translate(-50%, -50%) rotate(0deg);
  }

  to {
    transform: translate(-50%, -50%) rotate(-360deg);
  }
}

@keyframes slowFloat {
  0%,
  100% {
    transform: scale(1) translateY(0);
    opacity: 0.4;
  }

  50% {
    transform: scale(1.1) translateY(-30px);
    opacity: 0.8;
  }
}

.splash-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  height: 100%;
}

.splash-logo img {
  width: 400px;
  filter: none;
  animation: floating 3s ease-in-out infinite;
  border-radius: 24px;
}

.splash-title {
  font-size: 3rem;
  color: var(--ink);
  font-weight: 800;
  letter-spacing: -1px;
  margin: 20px 0 10px;
}

.splash-subtitle {
  color: var(--body-text);
  font-size: 1.2rem;
  margin-top: 15px;
  margin-bottom: 40px;
  font-weight: bold;
  text-shadow: none;
}

#guest-login-container {
  margin-top: 20px;
}

.splash-start-btn {
  padding: 18px 70px;
  font-size: 2rem;
  font-weight: 900;
  color: #1a3c7a;
  background: #fff;
  border: 2px solid #1a3c7a;
  border-radius: 50px;
  cursor: pointer;
  box-shadow: none;
  transition: all 0.2s;
  font-family: inherit;
  animation: pulse 2s infinite;
}

.splash-start-btn:active {
  transform: translateY(4px);
  box-shadow: none;
}

/* Deco Elements */
.splash-deco {
  position: absolute;
  pointer-events: none;
  z-index: 1;
  filter: none;
}

.splash-deco img {
  width: 280px;
  /* ?¬ê¸° ?€???•ë? */
  height: auto;
  opacity: 0.5;
  /* ?¬ê¸°ê°€ ì»¤ì§„ ë§Œí¼ ?¬ëª…?„ë? ?´ì§ ????¶¤ */
  border-radius: 15px;
  box-shadow: none;
}

.deco-1 {
  top: 5%;
  left: 2%;
  animation: floating 6s ease-in-out infinite;
}

.deco-2 {
  top: 2%;
  right: 2%;
  animation: floating 7s ease-in-out infinite reverse;
}

.deco-3 {
  bottom: 8%;
  left: 5%;
  animation: floating 8s ease-in-out infinite;
}

.deco-4 {
  bottom: 2%;
  right: 5%;
  animation: floating 6.5s ease-in-out infinite reverse;
}

.deco-5 {
  top: 35%;
  left: -5%;
  animation: floating 9s ease-in-out infinite;
}

.deco-6 {
  top: 30%;
  right: -5%;
  animation: floating 7.5s ease-in-out infinite reverse;
}

.deco-7 {
  bottom: 35%;
  left: 2%;
  animation: floating 8.5s ease-in-out infinite reverse;
}

.deco-8 {
  top: 12%;
  right: 20%;
  animation: floating 10s ease-in-out infinite;
}

@keyframes floating {
  0%,
  100% {
    transform: translateY(0) rotate(0deg);
  }

  50% {
    transform: translateY(-30px) rotate(10deg);
  }
}

@keyframes pulse {
  0% {
    transform: scale(1);
    box-shadow: none;
  }

  50% {
    transform: scale(1.05);
    box-shadow: none;
  }

  100% {
    transform: scale(1);
    box-shadow: none;
  }
}

/* Play Screen Layout */
#game-screen {
  justify-content: flex-start;
  padding: 0;
}

.main-play-area {
  flex: 1;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f8f9fa;
  padding: 10px;
}

.image-wrapper {
  display: flex;
  gap: 5px;
  width: 100%;
  height: 100%;
  justify-content: center;
  align-items: center;
}

.canvas-container {
  background: #fff;
  border: 1px solid #ddd;
  position: relative;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

canvas {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 250px);
}

/* Progress Section */
.progress-section {
  width: 100%;
  height: 24px;
  background: #3c2423;
  /* ê°ˆìƒ‰ ë°°ê²½ */
  position: relative;
  border-radius: 12px;
  margin-top: 20px;
}

.progress-container {
  width: 100%;
  height: 100%;
  position: relative;
}

.star-thresholds {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.star-marker {
  position: absolute;
  top: -18px; /* ë°??„ìª½?¼ë¡œ ë³??„ì¹˜ */
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 10;
}

.star-marker .star-icon {
  width: 26px;
  height: 26px;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  color: #ffca28;
  text-shadow: 0 0 2px rgba(0,0,0,0.5);
  backdrop-filter: blur(2px);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.star-marker .marker-line {
  width: 2px;
  height: 24px;
  background: rgba(255, 255, 255, 0.4);
  margin-top: 1px;
}

.progress-bar {
  height: 100%;
  background: #f7e018;
  /* ??ˆ˜ ?¸ë???*/
  width: 100%;
  transition: width 1s linear;
}

.timer-bubble {
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  background: #2d1b1a;
  color: #fff;
  padding: 2px 10px;
  border-radius: 12px;
  font-size: 1.2rem;
  font-weight: bold;
  border: 1px solid #5a3c3a;
}

/* Bottom HUD */
.bottom-hud {
  width: 100%;
  height: 140px;
  background: #fff;
  display: flex;
  align-items: center;
  padding: 0 30px;
  border-top: 1px solid #eee;
}

.hud-left {
  flex: 1.5;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.stars {
  color: #ffd700;
  font-size: 1.5rem;
  margin-bottom: 5px;
}

.stage-info {
  text-align: center;
}

#level-num {
  font-size: 2.5rem;
  font-weight: 800;
  color: #333;
  line-height: 1;
}

.stage-info .label {
  font-size: 0.9rem;
  color: #666;
}

.hud-center-left {
  flex: 1;
  display: flex;
  justify-content: center;
}

.icon-btn {
  background: none;
  border: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  font-size: 0.9rem;
  color: #333;
  font-family: inherit;
}

.pause-icon {
  width: 45px;
  height: 45px;
  background: #f0e1a1;
  border-radius: 10px;
  position: relative;
  margin-bottom: 5px;
}

.pause-icon::before,
.pause-icon::after {
  content: "";
  position: absolute;
  width: 6px;
  height: 20px;
  background: #fff;
  top: 50%;
  transform: translateY(-50%);
}

.pause-icon::before {
  left: 14px;
}

.pause-icon::after {
  right: 14px;
}

.hud-center {
  flex: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 15px;
}

.find-indicators {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin: 10px 0 5px 0;
  z-index: 10;
}

.indicator {
  width: 35px;
  height: 35px;
  border: 2px dashed #ccc;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  font-weight: bold;
  color: #ccc;
}

.indicator.found {
  border: 2px solid #ff8c00;
  color: #ff8c00;
}

.hearts {
  font-size: 1.5rem;
}

.hud-right {
  flex: 2;
  display: flex;
  justify-content: flex-end;
  gap: 20px;
}

.item-btn {
  background: none;
  border: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  font-size: 0.9rem;
  color: #333;
  font-family: inherit;
  position: relative;
}

.item-btn .item-label {
  display: none !important;
}

.item-icon {
  width: 50px;
  height: 50px;
  background: #f0e1a1;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  margin-bottom: 3px;
  box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.1);
}

.item-btn .item-count {
  position: absolute;
  top: -3px;
  left: 50%;
  transform: translateX(10px);
  background: #ff4757;
  color: white;
  font-size: 0.72rem !important;
  font-weight: 800;
  padding: 1px 5px !important;
  border-radius: 10px;
  border: 1.5px solid white;
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
  line-height: 1.2;
  white-space: nowrap;
  pointer-events: none;
  margin: 0 !important;
  z-index: 10;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes shake {
  0%,
  100% {
    transform: translateX(0);
  }

  25% {
    transform: translateX(-5px);
  }

  75% {
    transform: translateX(5px);
  }
}

.shake {
  animation: shake 0.2s ease-in-out infinite;
}

.circle {
  position: fixed;
  border: 5px solid #ff4757;
  border-radius: 50%;
  pointer-events: none;
  z-index: 1000;
}

.found-circle {
  position: absolute;
  border: 4px solid #ff8c00;
  border-radius: 50%;
  pointer-events: none;
  z-index: 10;
  background: rgba(255, 140, 0, 0.2);
  /* ? ë‹ˆë©”ì´?˜ì? scaleë§??¬ìš©?˜ë„ë¡?ì¡°ì •?˜ì—¬ ?„ì¹˜ ë³´ì¡´ */
  animation: popCenter 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.hint-effect {
  position: absolute;
  border: 5px dashed #f7e018;
  /* ??ˆ˜ ?¸ë???*/
  border-radius: 50%;
  pointer-events: none;
  z-index: 15;
  background: rgba(247, 224, 24, 0.2);
  transform: translate(-50%, -50%);
  animation: blink 0.5s ease-in-out infinite;
}

@keyframes blink {
  0%,
  100% {
    opacity: 0.3;
    transform: translate(-50%, -50%) scale(1);
  }

  50% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.1);
  }
}

.shield-effect {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 20px solid rgba(82, 172, 255, 0.5);
  box-shadow: inset 0 0 100px rgba(82, 172, 255, 0.3);
  z-index: 2000;
  pointer-events: none;
  animation: shieldFlash 0.5s ease-out;
}

@keyframes shieldFlash {
  0% {
    opacity: 0;
    filter: brightness(2);
  }

  50% {
    opacity: 1;
    filter: brightness(1);
  }

  100% {
    opacity: 0;
  }
}

@keyframes pop {
  0% {
    transform: scale(0);
    opacity: 0;
  }

  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes popCenter {
  0% {
    transform: translate(-50%, -50%) scale(0);
    opacity: 0;
  }

  100% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
  }
}

/* Stage Selection Screen */
#stage-selection-screen {
  background-color: #ffffff;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 10px 20px 10px;
  box-sizing: border-box;
  overflow: hidden;
  height: 100vh;
  height: 100dvh;
}

.stage-sel-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--surface-card);
  padding: 12px 24px;
  border-bottom: 1px solid var(--border-hairline);
  box-shadow: 0 1px 2px rgba(0,0,0,0.05);
  flex-shrink: 0;
  z-index: 99999;
  width: 100%;
}

.top-menu {
  display: flex;
  gap: 8px;
}

.menu-btn {
  font-family: var(--font-main);
  font-size: 0.95rem;
  font-weight: 600;
  padding: 8px 16px;
  border-radius: var(--radius-md);
  background: var(--surface-soft);
  color: var(--ink);
  border: 1px solid var(--border-hairline);
  cursor: pointer;
  transition: all 0.2s ease;
}

.menu-btn:hover {
  background: rgba(0,0,0,0.03);
  box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}

.menu-btn:active {
  transform: translateY(1px);
}

.menu-btn.active {
  background: var(--surface-card);
  border-color: var(--ink);
  font-weight: 800;
  box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

/* Specific colored backgrounds removed for a clean, unified top bar */

/* PostHog Styled Cards */
.inventory-item {
  background: var(--surface-card) !important;
  border: 1px solid var(--border-hairline) !important;
  border-radius: 6px !important;
  padding: 24px !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  transition: transform 0.1s ease !important;
  position: relative;
  box-shadow: none !important;
}

.inventory-item:hover {
  border-color: var(--ink) !important;
  transform: translateY(-2px);
}

.inventory-item .icon {
  width: 64px;
  height: 64px;
  background: var(--bg-canvas);
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.inventory-item .name {
  color: var(--ink) !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  font-family: var(--font-main);
}

.inventory-item .badge {
  position: absolute;
  top: 12px;
  right: 12px;
  background: var(--ink) !important;
  color: white !important;
  padding: 2px 8px !important;
  border-radius: 4px !important;
  font-size: 0.75rem !important;
  font-weight: 800 !important;
}

.collection-card {
  background: var(--surface-card) !important;
  border: 1px solid var(--border-hairline) !important;
  border-radius: 6px !important;
  padding: 24px !important;
  display: flex;
  gap: 24px;
  align-items: center;
}

.selection-title {
  font-family: var(--font-main);
  font-weight: 800;
  font-size: 24px;
  letter-spacing: -0.6px;
  color: var(--ink);
  margin: 24px 0;
}

.sub-nav-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 24px;
  background: var(--bg-canvas);
  border-bottom: 1px solid var(--border-hairline);
  position: sticky;
  top: 0;
  z-index: 100;
  width: 100%;
}

.nav-tabs {
  display: flex;
  gap: 4px;
}

.nav-tab {
  background: none;
  border: none;
  padding: 8px 16px;
  color: var(--body-text);
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  border-radius: 6px;
  transition: all 0.2s ease;
}

.nav-tab.active {
  background: var(--surface-card);
  color: var(--ink);
  box-shadow: 0 1px 2px rgba(0,0,0,0.05);
  border: 1px solid var(--border-hairline);
}

.nav-tab:hover:not(.active) {
  background: rgba(0,0,0,0.03);
}

.nav-tabs {
  display: flex;
  gap: 10px;
  flex: 1;
  justify-content: center;
}


.nav-close-btn {
  width: 36px;
  height: 36px;
  background: var(--bg-canvas);
  border: 1px solid var(--border-hairline);
  color: var(--ink);
  font-size: 1.4rem;
  font-weight: 400;
  cursor: pointer;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

.nav-close-btn:hover {
  background: var(--surface-card);
  border-color: var(--ink);
}

/* Inventory Grid Styles */
.inventory-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  gap: 20px;
  width: 100%;
  padding: 10px;
  box-sizing: border-box;
}

.inventory-item {
  background: white;
  border: 2px solid #eee;
  border-radius: 15px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 15px 10px;
  position: relative;
  transition: all 0.2s;
  box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.inventory-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 15px rgba(0,0,0,0.1);
  border-color: #f7e018;
}

.inventory-item .icon {
  font-size: 3rem;
  margin-bottom: 10px;
}

.inventory-item .name {
  font-size: 0.9rem;
  font-weight: bold;
  color: #333;
  text-align: center;
  word-break: keep-all;
}

.inventory-item .count {
  position: absolute;
  top: -10px;
  right: -10px;
  background: #ff4757;
  color: white;
  font-size: 0.8rem;
  font-weight: bold;
  padding: 4px 8px;
  border-radius: 20px;
  border: 2px solid white;
}

.top-status-right {
  display: flex;
  gap: 12px;
  align-items: center;
}

.hud-points, .hud-attempts {
  display: flex;
  align-items: center;
  gap: 8px;
}

.hud-points #point-count, .hud-attempts #daily-attempts-display {
  font-weight: 800;
  color: var(--ink);
  font-size: 1.1rem;
}

.stage-main-area {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin-top: 2%;
  padding-bottom: 10px;
}


.selection-header {
  background-color: var(--bg-canvas);
  border-bottom: 1px solid var(--border-hairline);
  padding: 16px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

.selection-hud {
  display: flex;
  gap: 12px;
  align-items: center;
}

.selection-hud .hud-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  font-size: 1rem;
  color: var(--ink);
  background: var(--surface-card);
  padding: 4px 10px;
  border-radius: 4px;
  border: 1px solid var(--border-hairline);
}

.selection-title {
  font-size: 1.8rem;
  color: #333;
  font-weight: 900;
  text-align: center;
  margin: 30px 0;
  /* ?œëª© ?„ì•„??ê°„ê²© */
}

/* 2. ?¤í…Œ?´ì? ?´ë?ì§€ ?ì—­ */
.stage-slider-container {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 100%;
  max-width: 95vw;
  max-height: 55vh;
  margin: 0;
  margin-bottom: 15px;
  padding: 10px 0;
  box-shadow: 0 6px 18px rgba(0,0,0,0.12);
  background: rgba(255,255,255,0.6);
  border-radius: 0 0 16px 16px;
}

.slider-arrow {
  position: absolute;
  top: 50%;
  margin-top: -25px;
  background: rgba(255, 71, 87, 0.9);
  border: 2px solid #fff;
  font-size: 2rem;
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
  z-index: 100;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  box-shadow: 0 3px 10px rgba(255, 71, 87, 0.4);
}

#prev-stage {
  left: 10px;
}

#next-stage {
  right: 10px;
}

.slider-arrow:hover {
  background: #ff0000;
  transform: scale(1.15);
}

.stage-cards-wrapper {
  flex: 1;
  overflow: hidden;
  height: 100%;
  margin: 0;
  display: flex;
  align-items: center;
  user-select: none;
  cursor: grab;
  min-width: 0;
  touch-action: pan-y;
}

.stage-cards-wrapper:active {
  cursor: grabbing;
}

.stage-cards-wrapper.is-dragging {
  cursor: grabbing;
}

.stage-cards {
  display: flex;
  gap: 40px;
  transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1);
  padding: 20px 50px;
  will-change: transform;
  touch-action: pan-y;
}

.stage-cards.is-dragging {
  transition: none !important;
}

.stage-card-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 15px;
  flex-shrink: 0;
}

.stage-card {
  width: 500px;
  height: 282px;
  background-color: var(--surface-card);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-md);
  overflow: hidden;
  position: relative;
  cursor: pointer;
  transition: all 0.2s;
}

.stage-card:hover {
  transform: translateY(-4px);
  border-color: var(--primary-color);
  box-shadow: 0 8px 16px rgba(0,0,0,0.05);
}

.stage-card.selected {
  border-color: var(--primary-color);
  border-width: 2px;
}

.test-stage-btn {
  padding: 5px 10px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  background: #3498db;
  color: #fff;
  border: 0;
  border-radius: 5px;
}

.test-stage-btn.active {
  background: #e67e22;
}

.stage-card .thumb {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
}

.stage-card .stars-overlay {
  position: absolute;
  bottom: 12px;
  left: 12px;
  display: flex;
  gap: 4px;
  background: rgba(0, 0, 0, 0.4);
  padding: 4px 10px;
  border-radius: 20px;
  backdrop-filter: blur(2px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  z-index: 2;
}

.stage-card .star {
  font-size: 1.4rem;
  color: rgba(200, 200, 200, 0.5);
  /* ?´ë¦¬???? ?°í•œ ?Œìƒ‰ */
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
  transition: color 0.3s ease;
}

.stage-card .star.filled {
  color: #ffca28;
  /* ?´ë¦¬???? ë°ì? ?¸ë???*/
  text-shadow: 0 1px 5px rgba(255, 202, 40, 0.5);
}

.stage-card .match-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  color: #fff;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 0.9rem;
  font-weight: 700;
  pointer-events: none;
  border: 1px solid rgba(255, 255, 255, 0.2);
  z-index: 2;
}

.stage-card-item .stage-title {
  font-size: 1.6rem;
  font-weight: 800;
  color: #333;
}

/* Locked Overlay */
.stage-card.locked::after {
  content: attr(data-lock-msg);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 30px;
  text-align: center;
  font-weight: 800;
  color: #333;
  font-size: 1.1rem;
  box-sizing: border-box;
  backdrop-filter: blur(2px);
}

/* 3. ?œì´??? íƒ ?ì—­ (?´ë” ???¤í??? */
.difficulty-tabs {
  display: flex;
  gap: 4px;
  background-color: var(--surface-soft);
  padding: 4px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border-hairline);
  margin-bottom: 24px;
}

.diff-tab {
  flex: 1;
  padding: 10px 24px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--body-text);
  font-weight: 600;
  font-size: 1rem;
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
}

.diff-tab.active {
  background-color: var(--surface-card);
  border-color: var(--border-hairline);
  color: var(--ink);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

/* 4. ?˜ë‹¨ ë©”ë‰´ ë²„íŠ¼ ?ì—­ */
.selection-footer {
  display: flex;
  justify-content: center;
  gap: 15px;
  padding-bottom: 20px;
}

.footer-btn {
  padding: 10px 30px;
  border: 1px solid #ddd;
  border-radius: 25px;
  background: #fff;
  font-weight: 700;
  color: #666;
  cursor: pointer;
  font-size: 1.1rem;
  transition: all 0.2s;
}

.footer-btn.primary {
  background-color: #1a3c7a;
  /* ?œì•ˆ??ì§„í•œ ?¤ì´ë¹?*/
  color: #ffca28;
  /* ?œì•ˆ???¸ë????ìŠ¤??*/
  border: none;
  cursor: default;
  /* ?´ë¦­ ë¶ˆê? ?œì‹œ (ì¹´í…Œê³ ë¦¬ ??• ) */
}

.footer-btn.primary:hover {
  background-color: #1a3c7a;
  /* ?¸ë²„ ?¨ê³¼ ?œê±° */
}

#stage-ready-screen {
  background-color: #fcfcfc;
  display: flex;
  flex-direction: column;
  padding: 1vh 2vw;
  height: 100vh;
  box-sizing: border-box;
  overflow: hidden;
}

.ready-content {
  flex: 1;
  display: flex;
  gap: 2vw;
  padding: 1vh 0;
  align-items: center;
  min-height: 0;
}

.ready-main {
  flex: 1.8;
  background: #fff;
  border-radius: 20px;
  padding: 1vh;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
  max-height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ready-image-container {
  width: 100%;
  position: relative;
  border-radius: 15px;
  overflow: hidden;
  aspect-ratio: 16/9;
  max-height: 50vh;
}

.ready-image-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ready-side {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.goal-box h2 {
  font-size: 1.5rem;
  color: #444;
  margin-bottom: 0.5vh;
}

.stars-attain {
  display: flex;
  gap: 0.5vw;
  justify-content: center;
  font-size: 2rem;
}

.stars-attain .star {
  color: #eee;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}

.stars-attain .star.filled {
  color: #ffca28;
  text-shadow: 0 1px 5px rgba(255, 202, 40, 0.5);
}

.goal-box p {
  font-size: 1.1rem;
  color: #888;
  margin-top: 1vh;
}

.reward-block {
  background: #fffdf5;
  border: 2px dashed #f1c40f;
  padding: 10px 15px;
  border-radius: 12px;
  margin-top: 15px;
}

.reward-block h3 {
  color: #e67e22;
  margin-bottom: 8px;
  font-size: 1.1rem;
  text-align: center;
}

.reward-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.reward-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.95rem;
  font-weight: bold;
  color: #555;
  background: #fff;
  padding: 5px 12px;
  border-radius: 8px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.reward-list .stars {
  letter-spacing: 2px;
}

.reward-list .pts {
  color: #e74c3c;
  font-size: 1.05rem;
}

.ready-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5vh 0;
  border-top: 1px solid #f0f0f0;
  width: 100%;
  box-sizing: border-box;
}

.item-shop-row {
  display: flex;
  gap: 1.5vw;
  align-items: center;
}

.buy-item-card {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 12px;
  width: 100px;
  padding: 1vh 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1vh;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.03);
  position: relative;
}

.buy-item-card .item-name {
  display: none !important;
}

.item-icon-box {
  width: 45px;
  height: 45px;
  background: #fff5d7;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
}

.buy-item-card .owned-count {
  position: absolute;
  top: 5px;
  left: 50%;
  transform: translateX(8px);
  background: #ff4757;
  color: white;
  font-size: 0.72rem !important;
  font-weight: 800;
  padding: 1px 5px !important;
  border-radius: 10px;
  border: 1.5px solid white;
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
  line-height: 1.2;
  white-space: nowrap;
  pointer-events: none;
  margin: 0 !important;
  z-index: 10;
}

.buy-btn {
  width: 100%;
  background: #ffcc00;
  border: none;
  border-radius: 6px;
  padding: 0.8vh 0;
  font-weight: 800;
  color: #333;
  font-size: 0.85rem;
  cursor: pointer;
  transition: all 0.2s;
}

.buy-btn:hover {
  background: #ffb300;
}

.shop-shortcut {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5vh;
  font-weight: 800;
  color: #555;
}

.shop-shortcut img {
  width: 100px;
  cursor: pointer;
  transition: transform 0.2s;
}

.shop-shortcut img:hover {
  transform: scale(1.05);
}

.start-action {
  display: flex;
  align-items: center;
}

.start-btn-large {
  background: #ffcc00;
  border: none;
  border-radius: 12px;
  width: 160px;
  height: 70px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 6px 0 #e6b800;
}

.start-btn-large:active {
  transform: translateY(4px);
  box-shadow: 0 2px 0 #e6b800;
}

.start-btn-large .t1 {
  font-size: 1.4rem;
  font-weight: 900;
  color: #333;
}

.ticket-cost {
  background: #fff;
  border-radius: 8px;
  padding: 2px 10px;
  display: flex;
  align-items: center;
  gap: 5px;
  font-weight: 900;
  margin-top: 3px;
  font-size: 0.9rem;
}

/* Cooldown Overlay (ë¯¸ë¦¬ ?•ì˜) */
.cooldown-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  border-radius: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 900;
  pointer-events: none;
}

.close-btn-container {
  display: flex;
  justify-content: flex-end;
}

.close-btn {
  background: none;
  border: none;
  font-size: 2.2rem;
  color: #bbb;
  cursor: pointer;
  transition: all 0.2s;
  line-height: 1;
}

/* Animation Effects System */
.effect-text-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 6000;
  pointer-events: none;
}

.ready-start-text {
  font-size: 8rem;
  font-weight: 900;
  color: #ffcc00;
  -webkit-text-stroke: 3px #000;
  text-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  white-space: nowrap;
  animation: readyStartAni 1.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

@keyframes readyStartAni {
  0% {
    transform: scale(0) rotate(-10deg);
    opacity: 0;
  }

  20% {
    transform: scale(1.2) rotate(0deg);
    opacity: 1;
  }

  80% {
    transform: scale(1) rotate(0deg);
    opacity: 1;
  }

  100% {
    transform: scale(2);
    opacity: 0;
  }
}

.correct-mark {
  position: absolute;
  font-size: 5rem;
  color: #4cd137;
  font-weight: 900;
  text-shadow: 0 0 20px rgba(76, 209, 55, 0.8);
  pointer-events: none;
  z-index: 20;
  animation: popAndFade 0.6s ease-out forwards;
}

.wrong-mark {
  position: absolute;
  font-size: 5rem;
  color: #e84118;
  font-weight: 900;
  text-shadow: 0 0 20px rgba(232, 65, 24, 0.8);
  pointer-events: none;
  z-index: 20;
  animation: popAndFade 0.6s ease-out forwards;
}

@keyframes popAndFade {
  0% {
    transform: translate(-50%, -50%) scale(0.5);
    opacity: 0;
  }

  50% {
    transform: translate(-50%, -50%) scale(1.2);
    opacity: 1;
  }

  100% {
    transform: translate(-50%, -100%) scale(1);
    opacity: 0;
  }
}

/* Effect Overlay (Result State UI) */
#effect-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 5000;
  display: flex;
  justify-content: center;
  align-items: center;
  pointer-events: none;
}

#effect-overlay:not(.hidden) {
  pointer-events: auto;
}

.effect-backdrop {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
  transition: background 0.3s;
  z-index: -1;
}

.effect-backdrop.transparent {
  background: rgba(0, 0, 0, 0);
}

.effect-container {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}

#effect-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  color: #fff;
  text-shadow: 0 4px 15px rgba(0, 0, 0, 0.8);
  z-index: 5002;
  animation: resultPop 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

@keyframes resultPop {
  0% {
    transform: scale(0.5);
    opacity: 0;
  }

  100% {
    transform: scale(1);
    opacity: 1;
  }
}

#effect-title {
  font-size: 6rem;
  font-weight: 900;
  margin: 20px 0;
  color: #ffcc00;
}

#effect-msg {
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: 40px;
}

.effect-actions {
  display: flex;
  gap: 30px;
}

.res-btn {
  padding: 20px 50px;
  font-size: 1.8rem;
  font-weight: 900;
  border: none;
  border-radius: 60px;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.2s;
  box-shadow: 0 8px 0 rgba(0, 0, 0, 0.3);
}

.res-btn.primary {
  background: #ffcc00;
  color: #333;
}

.res-btn.secondary {
  background: #fff;
  color: #333;
}

.res-btn:hover {
  transform: translateY(-5px) scale(1.05);
}

.res-btn:active {
  transform: translateY(3px);
  box-shadow: 0 3px 0 rgba(0, 0, 0, 0.3);
}

/* --- Mobile Landscape Optimization ( orientation: landscape and height <= 600px ) --- */
@media screen and (orientation: landscape) and (max-height: 600px) {
  /* 1. Global Scaling */
  html {
    font-size: 14px;
    /* ê¸°ë³¸ ?°íŠ¸ ?¬ê¸° ì¶•ì†Œ */
  }

  #game-container {
    height: 100vh;
  }

  /* 2. Splash Screen */
  .splash-logo img {
    width: 30vh;
    /* ?’ì´ ë¹„ë?ë¡?ì¶•ì†Œ */
  }

  .splash-start-btn {
    padding: 10px 40px;
    font-size: 1.4rem;
    box-shadow: none !important;
    border: 2px solid #1a3c7a !important;
  }

  /* 3. Stage Selection */
  .stage-sel-header {
    padding: 8px 15px;
  }

  .top-menu {
    gap: 8px;
  }

  .menu-btn {
    font-size: 1rem;
    padding: 6px 14px;
    border-radius: 10px;
  }

  .top-status-right {
    gap: 8px;
  }

  .hud-points,
  .hud-attempts {
    padding: 6px 14px;
    border-radius: 16px;
  }

  .hud-points .icon {
    font-size: 1.2rem;
  }

  .hud-points #point-count {
    font-size: 1.2rem;
  }

  .hud-attempts-label {
    font-size: 0.9rem;
  }

  .hud-attempts #daily-attempts-display {
    font-size: 1.2rem;
  }

  .stage-main-area {
    margin-top: 10px;
  }

  .difficulty-tabs {
    gap: 10px;
    margin-bottom: 2vh;
  }

  .diff-tab {
    font-size: 1rem;
    padding: 8px 20px;
  }

  /* ì¹´ë“œ ?¬ê¸° ì¶•ì†Œ: 420px -> 280px */
  .stage-card {
    width: 280px;
    height: 200px;
    border-width: 4px;
  }

  .stage-card .stars-overlay {
    bottom: 8px !important;
    left: 8px !important;
    padding: 2px 8px !important;
    gap: 2px !important;
  }

  .stage-card .star {
    font-size: 1rem !important;
  }

  .stage-card .match-badge {
    top: 8px !important;
    right: 8px !important;
    padding: 2px 8px !important;
    font-size: 0.75rem !important;
  }

  .stage-card-item .stage-title {
    font-size: 1.1rem;
  }

  .selection-footer {
    padding-bottom: 5px;
    gap: 10px;
  }

  .footer-btn {
    padding: 5px 20px;
    font-size: 0.9rem;
  }

  /* ?”ì‚´???¬ê¸° ì¡°ì • */
  .slider-arrow {
    font-size: 4rem;
    color: #ffcc00;
    /* ?©ê¸ˆ?‰ìœ¼ë¡?ë³€ê²½í•˜???œì¸???•ë³´ */
    padding: 0 5px;
  }

  /* 4. Stage Ready */
  #stage-ready-screen {
    padding: 5px 10px;
  }

  .ready-header .title-box h1 {
    font-size: 1.5rem;
  }

  .ready-content {
    gap: 10px;
  }

  .ready-image-container {
    max-height: calc(100vh - 120px);
    height: 55vh;
  }

  .info-area {
    gap: 1vh;
  }

  .info-block h3 {
    font-size: 0.9rem;
  }

  .info-value,
  .stars-attain {
    font-size: 1.3rem;
  }

  #ready-goal-text {
    font-size: 0.85rem;
    padding: 4px 10px;
  }

  .ready-footer {
    padding: 5px 0;
    width: 100% !important;
    box-sizing: border-box !important;
    gap: 30px !important;
  }

  .item-shop-row {
    gap: 1vw;
  }

  .buy-item-card {
    width: 65px;
    padding: 4px;
    gap: 4px;
  }

  .item-icon-box {
    width: 32px;
    height: 32px;
    font-size: 1.1rem;
  }

  .buy-btn {
    font-size: 0.75rem;
  }

  .shop-shortcut img {
    width: 70px;
  }

  .start-btn-large {
    width: 130px;
    height: 55px;
    box-shadow: 0 4px 0 #e6b800;
  }

  .start-btn-large .t1 {
    font-size: 1.1rem;
  }

  /* 5. Game Screen */
  .image-wrapper {
    height: 75vh;
    gap: 8px;
    padding: 0 10px;
  }

  .canvas-container {
    flex: 1;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  canvas {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
  }

  .canvas-label {
    font-size: 0.8rem;
    padding: 2px 8px;
    top: 5px;
  }

  .progress-section {
    margin: 3px auto;
    width: 80%;
    height: 12px !important;
  }

  .progress-container {
    height: 12px !important;
  }

  .timer-bubble {
    padding: 1px 8px !important;
    font-size: 0.8rem !important;
    top: -9px !important;
  }

  .star-marker {
    top: -14px !important;
  }

  .star-marker .star-icon {
    width: 20px !important;
    height: 20px !important;
    font-size: 0.75rem !important;
  }

  .star-marker .marker-line {
    height: 12px !important;
  }

  .bottom-hud {
    padding: 2px 2vw;
  }

  .hud-left {
    gap: 10px;
  }

  .profile-info img {
    width: 32px;
    height: 32px;
  }

  .nickname {
    font-size: 0.8rem;
  }

  .item-icon {
    width: 35px;
    height: 35px;
    font-size: 1rem;
  }

  .item p {
    font-size: 0.7rem;
  }

  .count-badge {
    width: 16px;
    height: 16px;
    font-size: 0.65rem;
  }

  /* 6. Result Overlay / Effects */
  #effect-title {
    font-size: 3.5rem;
    margin: 10px 0;
  }

  #effect-msg {
    font-size: 1.3rem;
    margin-bottom: 20px;
  }

  .res-btn {
    padding: 10px 35px;
    font-size: 1.3rem;
    border-radius: 40px;
    box-shadow: 0 4px 0 rgba(0, 0, 0, 0.3);
  }

  .ready-start-text {
    font-size: 4.5rem;
  }

  /* --- Debug Panel Overlap Prevention for all mobile landscape --- */
  #debug-panel {
    top: 5px !important;
    bottom: auto !important;
    left: 5px !important;
    transform: scale(0.8) !important;
    transform-origin: top left !important;
    opacity: 0.15 !important;
  }

  #debug-panel:hover {
    opacity: 1 !important;
  }
}

/* ===== Very Small Landscape (iPhone SE etc, height <= 400px) ===== */
@media screen and (orientation: landscape) and (max-height: 400px) {
  html {
    font-size: 12px;
  }

  /* --- Stage Selection Screen --- */
  #stage-selection-screen {
    padding: 0 !important;
    overflow-y: auto !important;
  }

  .stage-sel-header {
    padding: 4px 8px !important;
    gap: 4px;
    min-height: 0 !important;
  }

  .top-menu {
    gap: 6px !important;
  }

  .menu-btn {
    font-size: 0.7rem !important;
    padding: 3px 7px !important;
    border-width: 2px !important;
    border-radius: 8px !important;
  }

  .top-status-right {
    gap: 6px !important;
  }

  .hud-points,
  .hud-attempts {
    padding: 3px 8px !important;
    border-width: 2px !important;
    border-radius: 12px !important;
    gap: 4px !important;
  }

  .hud-points .icon {
    font-size: 0.8rem !important;
    width: auto !important;
    height: auto !important;
  }

  .hud-points #point-count {
    font-size: 0.8rem !important;
  }

  .hud-attempts-label {
    font-size: 0.65rem !important;
  }

  .hud-attempts #daily-attempts-display {
    font-size: 0.8rem !important;
  }

  .stage-main-area {
    margin-top: 2% !important;
    min-height: 0 !important;
  }

  .difficulty-tabs {
    padding-left: 10px !important;
    gap: 3px !important;
    margin-bottom: 0 !important;
  }

  .diff-tab {
    font-size: 0.7rem !important;
    padding: 3px 10px !important;
    border-radius: 6px 6px 0 0 !important;
  }

  .stage-slider-container {
    margin-bottom: 0 !important;
    padding: 3px 0 !important;
    border-radius: 0 0 6px 6px !important;
    max-height: 45vh !important;
  }

  .stage-cards {
    gap: 12px !important;
    padding: 5px 25px !important;
  }

  .stage-card {
    width: 180px !important;
    height: 100px !important;
    border-radius: 6px !important;
  }

  .stage-card-item {
    gap: 4px !important;
  }

  .stage-card-item .stage-title {
    font-size: 0.85rem !important;
  }

  .slider-arrow {
    width: 28px !important;
    height: 28px !important;
    font-size: 1rem !important;
    margin-top: -14px !important;
    border-width: 1.5px !important;
    box-shadow: 0 2px 6px rgba(255,71,87,0.3) !important;
  }

  /* --- Stage Ready Screen --- */
  #stage-ready-screen {
    padding: 2px 8px !important;
  }

  #stage-ready-screen .selection-header {
    padding: 4px 8px !important;
    min-height: 0 !important;
    border-bottom: 1px solid var(--border-hairline) !important;
    background: var(--surface-card) !important;
  }

  #ready-stage-title {
    font-size: 0.95rem !important;
    font-weight: 800 !important;
    margin: 0 !important;
  }

  #stage-ready-screen .hud-pill {
    padding: 3px 8px !important;
    border-width: 2px !important;
    border-radius: 12px !important;
    font-size: 0.8rem !important;
    gap: 4px !important;
  }

  #stage-ready-screen .hud-pill .icon {
    font-size: 0.8rem !important;
  }

  #ready-point-count {
    font-size: 0.8rem !important;
    font-weight: 800 !important;
  }

  #stage-ready-screen #back-to-selection {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    margin-top: 0 !important;
    width: 28px !important;
    height: 28px !important;
    font-size: 0.9rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    box-shadow: none !important;
    border: 1px solid var(--border-hairline) !important;
    background: var(--surface-soft) !important;
    color: var(--ink) !important;
  }

  .ready-content {
    gap: 8px !important;
    padding: 2px 0 !important;
  }

  .ready-image-container {
    max-height: 40vh !important;
  }

  .ready-side {
    max-height: 50vh !important;
    overflow: visible !important;
  }

  .info-area {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 4px !important;
    width: 100% !important;
    max-width: 260px !important;
  }

  .info-block {
    padding: 2px 4px !important;
    margin: 0 !important;
    background: #fff !important;
    border-radius: 6px !important;
    border: 1px solid #eee !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
  }

  .info-block h3 {
    font-size: 0.7rem !important;
    margin-bottom: 1px !important;
  }

  .info-value {
    font-size: 0.85rem !important;
  }

  .stars-attain {
    font-size: 0.85rem !important;
  }

  .info-block:nth-child(3) {
    grid-column: span 2 !important;
    padding: 2px 4px !important;
  }

  #ready-goal-text {
    font-size: 0.7rem !important;
  }

  .reward-block {
    grid-column: span 2 !important;
    padding: 3px 4px !important;
    margin-top: 0 !important;
  }

  .reward-block h3 {
    font-size: 0.7rem !important;
    margin-bottom: 2px !important;
  }

  .reward-list span {
    font-size: 0.7rem !important;
  }

  .reward-list li {
    font-size: 0.65rem !important;
    padding: 1px 4px !important;
  }

  .ready-footer {
    padding: 3px 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    box-sizing: border-box !important;
    gap: 20px !important;
  }

  .item-shop-row {
    gap: 6px !important;
  }

  .buy-item-card {
    width: 62px !important;
    padding: 3px 2px !important;
    gap: 1px !important;
    border-radius: 8px !important;
    box-sizing: border-box !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.03) !important;
  }

  .buy-item-card .item-name {
    font-size: 0.65rem !important;
  }

  .item-icon-box {
    width: 28px !important;
    height: 28px !important;
    background: #fff5d7 !important;
    border-radius: 6px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.9rem !important;
  }

  .item-icon-box img {
    width: 20px !important;
    height: 20px !important;
    object-fit: contain !important;
  }

  .buy-item-card .owned-count {
    font-size: 0.6rem !important;
    padding: 0px 4px !important;
    top: 2px !important;
    left: 50% !important;
    transform: translateX(4px) !important;
    border-width: 1px !important;
    margin: 0 !important;
  }

  .buy-btn {
    width: 100% !important;
    padding: 2px 0 !important;
    font-size: 0.65rem !important;
    border-radius: 4px !important;
  }

  .start-btn-large {
    width: 130px !important;
    height: 46px !important;
    border-radius: 8px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 2px 0 !important;
    gap: 1px !important;
    box-shadow: 0 3px 0 #e6b800 !important;
  }

  .start-btn-large .t1 {
    font-size: 0.9rem !important;
    line-height: 1 !important;
  }

  .ticket-cost {
    font-size: 0.65rem !important;
    padding: 1px 4px !important;
    margin-left: 0 !important;
    margin-top: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 2px !important;
    border-radius: 6px !important;
    line-height: 1 !important;
    background: rgba(0, 0, 0, 0.1) !important;
  }

  .ticket-cost img {
    width: 12px !important;
    height: 12px !important;
  }

  /* --- Game Screen --- */
  .image-wrapper {
    height: calc(100vh - 120px) !important;
  }

  .progress-section {
    margin: 2px auto !important;
    width: 80% !important;
    height: 8px !important;
  }

  .progress-container {
    height: 8px !important;
  }

  .timer-bubble {
    padding: 1px 6px !important;
    font-size: 0.7rem !important;
    top: -9px !important;
  }

  .star-marker {
    top: -12px !important;
  }

  .star-marker .star-icon {
    width: 16px !important;
    height: 16px !important;
    font-size: 0.65rem !important;
  }

  .star-marker .marker-line {
    height: 8px !important;
  }

  .bottom-hud {
    height: 80px !important;
    padding: 2px 10px !important;
  }

  #level-num {
    font-size: 1.5rem !important;
  }

  .stars {
    font-size: 1rem !important;
  }

  .indicator {
    width: 22px !important;
    height: 22px !important;
    font-size: 0.8rem !important;
  }

  .find-indicators {
    gap: 5px !important;
    margin: 4px 0 2px 0 !important;
  }

  .item-icon {
    width: 30px !important;
    height: 30px !important;
    font-size: 0.9rem !important;
  }

  .item-btn .item-count {
    font-size: 0.55rem !important;
    padding: 0px 4px !important;
    top: -2px !important;
    left: 50% !important;
    transform: translateX(6px) !important;
    border-width: 1px !important;
    margin: 0 !important;
  }

  /* --- Debug Panel Overlap Prevention --- */
  #debug-panel {
    top: auto !important;
    bottom: 5px !important;
    left: 5px !important;
    transform: scale(0.8) !important;
    transform-origin: bottom left !important;
    opacity: 0.15 !important;
  }

  #debug-panel:hover {
    opacity: 1 !important;
  }

  /* --- Splash Screen --- */
  .splash-content {
    gap: 5px !important;
    padding: 0 10px !important;
  }

  .splash-title {
    font-size: 1.8rem !important;
  }

  .splash-subtitle {
    font-size: 0.8rem !important;
    margin-top: 5px !important;
  }

  .sns-login-row {
    gap: 8px !important;
    margin-top: 15px !important;
  }

  .sns-btn {
    width: 45px !important;
    height: 45px !important;
    border-radius: 10px !important;
  }

  .sns-btn svg {
    width: 22px !important;
    height: 22px !important;
  }

  #guest-login-container {
    margin-top: 10px !important;
  }

  .splash-start-btn {
    padding: 8px 30px !important;
    font-size: 1.2rem !important;
    margin-top: 10px !important;
  }

  /* --- Result Overlay --- */
  #effect-title {
    font-size: 2.5rem !important;
    margin: 5px 0 !important;
  }

  #effect-msg {
    font-size: 1rem !important;
    margin-bottom: 10px !important;
  }

  .res-btn {
    padding: 8px 25px !important;
    font-size: 1rem !important;
    border-radius: 30px !important;
  }

  .effect-actions {
    gap: 15px !important;
  }

  /* --- Sub Nav Toolbar --- */
  .sub-nav-toolbar {
    padding: 8px 12px !important;
  }

  .nav-tab {
    padding: 6px 15px !important;
    font-size: 0.85rem !important;
  }

  .nav-close-btn {
    width: 35px !important;
    height: 35px !important;
    font-size: 1.4rem !important;
  }

  /* --- Inventory Screen --- */
  .inventory-grid {
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
    gap: 10px !important;
  }

  .inventory-item {
    padding: 6px 12px !important;
    border-radius: 8px !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 10px !important;
  }

  .inventory-item .icon {
    width: 32px !important;
    height: 32px !important;
    margin-bottom: 0 !important;
  }

  .inventory-item .name {
    font-size: 0.75rem !important;
  }

  .ready-start-text {
    font-size: 3rem !important;
  }

  /* --- Close / Back buttons --- */
  #roulette-screen .close-btn,
  #collection-screen .close-btn,
  #settings-screen .close-btn {
    font-size: 1.5rem !important;
    width: 32px !important;
    height: 32px !important;
    top: 5px !important;
    right: 5px !important;
    border-width: 2px !important;
    padding-bottom: 1px !important;
  }

  #back-to-selection {
    width: 32px !important;
    height: 32px !important;
    font-size: 1.2rem !important;
    top: 5px !important;
    left: 5px !important;
    padding-right: 3px !important;
  }

  /* --- Roulette Screen --- */
  #roulette-wheel {
    font-size: 5rem !important;
    width: 100px !important;
    height: 100px !important;
  }

  #spin-roulette-btn {
    font-size: 1rem !important;
    padding: 8px 25px !important;
    margin-top: 10px !important;
  }

  /* --- Collection Screen --- */
  .selection-title {
    font-size: 1.1rem !important;
    margin: 5px 0 !important;
  }

  #collection-list-container {
    gap: 10px !important;
    padding: 8px 10px !important;
  }

  #collection-list-container .collection-card {
    gap: 12px !important;
    padding: 12px !important;
  }

  #collection-list-container .collection-card > div:first-child {
    min-width: 104px !important;
    padding-right: 12px !important;
  }

  #collection-list-container .collection-card > div:first-child strong {
    font-size: 0.82rem !important;
    margin-bottom: 8px !important;
  }

  #collection-list-container .collection-card > div:first-child > div {
    width: 48px !important;
    height: 48px !important;
    margin-bottom: 8px !important;
  }

  #collection-list-container .combine-btn {
    font-size: 0.72rem !important;
    padding: 6px 10px !important;
  }

  #collection-list-container .collection-card > div:last-child {
    grid-template-columns: repeat(auto-fill, minmax(58px, 1fr)) !important;
    gap: 7px !important;
  }

  #collection-list-container .collection-card > div:last-child > div {
    padding: 6px 4px !important;
  }

  #collection-list-container .collection-card > div:last-child > div > div:first-child {
    width: 28px !important;
    height: 28px !important;
    margin-bottom: 4px !important;
  }

  #collection-list-container .collection-card > div:last-child > div > div:first-child img,
  #collection-list-container .collection-card > div:last-child > div > div:first-child svg {
    max-width: 28px !important;
    max-height: 28px !important;
  }

  #collection-list-container .collection-card > div:last-child > div > div:nth-child(2) {
    font-size: 0.58rem !important;
    margin-bottom: 2px !important;
  }

  #collection-list-container .collection-card > div:last-child > div > div:nth-child(3) {
    font-size: 0.72rem !important;
  }
}

/* --- Portrait Orientation Warning --- */

#portrait-warning {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: #f7e018;
  /* ??ˆ˜ ?¸ëž‘ */
  z-index: 9999;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  color: #333;
}

.warning-content {
  animation: rotateBounce 2s infinite ease-in-out;
}

.rotate-icon {
  font-size: 5rem;
  margin-bottom: 20px;
}

#portrait-warning p {
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.4;
  padding: 0 20px;
}

@keyframes rotateBounce {
  0%,
  100% {
    transform: scale(1) rotate(0deg);
  }

  50% {
    transform: scale(1.1) rotate(15deg);
  }
}

/* ëª¨ë“  ?¸ë¡œ ëª¨ë“œ(orientation: portrait)?ì„œ ê²½ê³ ì°??œì‹œ ë°?ê²Œìž„ ì°¨ë‹¨ */
@media screen and (orientation: portrait) {
  #portrait-warning {
    display: flex;
  }

  #game-container {
    display: none !important;
  }
}

/* ???”ë©´ ì¶”ê? ?ˆë‚´ ë°°ë„ˆ */
#install-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 99999;
  padding: 10px 16px;
  background: rgba(0, 0, 0, 0.85);
  animation: slideUpBanner 0.4s ease-out;
}

#install-banner .install-banner-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #fff;
  font-size: 0.95rem;
  gap: 12px;
}

#install-banner .install-banner-content strong {
  color: #ffcc00;
}

#install-banner-close {
  background: none;
  border: none;
  color: #aaa;
  font-size: 1.4rem;
  cursor: pointer;
  padding: 4px 8px;
  flex-shrink: 0;
}

@keyframes slideUpBanner {
  from {
    transform: translateY(100%);
    opacity: 0;
  }

  to {
    transform: translateY(0);
    opacity: 1;
  }
}

/* Social Login Row */
.sns-login-row {
  display: flex;
  justify-content: center;
  gap: 15px;
  margin-top: 30px;
}

.sns-btn {
  width: 65px;
  height: 65px;
  border-radius: 12px;
  border: 1px solid var(--border-hairline);
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  transition: transform 0.2s;
  box-shadow: none;
}

.sns-btn:hover {
  transform: translateY(-3px);
  box-shadow: none;
}

.sns-btn:active {
  transform: translateY(1px);
  box-shadow: none;
}

.sns-btn.kakao {
  background-color: #fee500;
}

.sns-btn.naver {
  background-color: #03c75a;
}

.sns-btn.apple {
  background-color: #ffffff;
}

.sns-btn.google {
  background-color: #ffffff;
}

.sns-btn svg {
  width: 30px;
  height: 30px;
}

/* ?˜ê???ë²„íŠ¼ (ëª¨ë“  ?”ë©´ ê³µí†µ) */
.close-btn {
  font-size: 2.5rem !important;
  width: 50px !important;
  height: 50px !important;
  background-color: #ff4757 !important;
  color: white !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 4px 15px rgba(255, 71, 87, 0.5) !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
  position: absolute !important;
  top: 15px !important;
  right: 15px !important;
  z-index: 9999 !important;
  border: 3px solid white !important;
  line-height: 1 !important;
  padding-bottom: 3px !important;
}
.close-btn:hover {
  transform: scale(1.15) !important;
  background-color: #ff0000 !important;
}

/* ì¤€ë¹??”ë©´???¤ë¡œê°€ê¸?ë²„íŠ¼ */
#back-to-selection {
  position: absolute !important;
  top: 15px !important;
  left: 15px !important;
  width: 50px !important;
  height: 50px !important;
  font-size: 2rem !important;
  margin: 0 !important;
  z-index: 9999 !important;
  transform: none !important;
  box-shadow: 0 4px 15px rgba(255, 71, 87, 0.5) !important;
  padding-right: 4px !important;
}

/* ?€?€?€?€?€?€?€?€?€?€?€ Animations ?€?€?€?€?€?€?€?€?€?€?€ */
@keyframes boxShake {
    0% { transform: translate(2px, 1px) rotate(0deg); }
    10% { transform: translate(-1px, -2px) rotate(-5deg); }
    20% { transform: translate(-3px, 0px) rotate(5deg); }
    30% { transform: translate(3px, 2px) rotate(0deg); }
    40% { transform: translate(1px, -1px) rotate(5deg); }
    50% { transform: translate(-1px, 2px) rotate(-5deg); }
    60% { transform: translate(-3px, 1px) rotate(0deg); }
    70% { transform: translate(3px, 1px) rotate(-5deg); }
    80% { transform: translate(-1px, -1px) rotate(5deg); }
    90% { transform: translate(1px, 2px) rotate(0deg); }
    100% { transform: translate(1px, -2px) rotate(-5deg); }
}

.shake-anim {
    animation: boxShake 0.2s infinite;
}

/* --- Modals & Overlays (PostHog Style) --- */
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(35, 37, 29, 0.4);
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
}

.modal-card {
  background-color: var(--surface-card);
  padding: 32px;
  border-radius: var(--radius-md);
  text-align: center;
  border: 1px solid var(--border-hairline);
  max-width: 340px;
  width: 90%;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.1);
}

.modal-title {
  font-size: 24px;
  font-weight: 800;
  color: var(--ink);
  margin-bottom: 24px;
}

.modal-message {
  font-size: 16px;
  font-weight: 500;
  color: var(--body-text);
  margin-bottom: 24px;
  line-height: 1.5;
}

.modal-icon-container {
  margin-bottom: 24px;
  display: flex;
  justify-content: center;
}

/* --- Inventory (My Bag) Grid Layout --- */
.inventory-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
  width: 100%;
  padding: 10px;
  box-sizing: border-box;
}

.inventory-item {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  padding: 12px 16px !important;
  background: #ffffff !important;
  border-radius: 12px !important;
  border: 1px solid var(--border-hairline) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04) !important;
  text-align: left !important;
  gap: 16px !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}

.inventory-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08) !important;
}

.inventory-item .icon {
  width: 48px !important;
  height: 48px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
}

.inventory-item .icon img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

.inventory-item .name {
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  color: var(--ink) !important;
  line-height: 1.3 !important;
  margin: 0 !important;
  word-break: keep-all !important;
}

/* =========================================================
   Casual Pastel Game Theme + Responsive Polish
   ========================================================= */
:root {
  --primary-color: #ffd84d;
  --primary-pressed: #ffb84d;
  --on-primary: #5a3f00;
  --bg-canvas: #fff7dc;
  --ink: #283653;
  --body-text: #56627a;
  --surface-card: #ffffff;
  --surface-soft: #fff0b8;
  --border-hairline: #f4dba3;
  --accent-pink: #ff8fc7;
  --accent-mint: #86e7cb;
  --accent-sky: #90d8ff;
  --accent-lavender: #c8b8ff;
  --accent-coral: #ff9d89;
  --shadow-soft: 0 14px 30px rgba(93, 78, 44, 0.14);
  --shadow-button: 0 5px 0 rgba(190, 128, 35, 0.35);
  --radius-md: 14px;
  --radius-lg: 20px;
  --font-main: "Pretendard Variable", Pretendard, "Noto Sans KR", "Noto Sans CJK KR", "SamsungOne", "Samsung Sans", Roboto, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
}

body {
  background:
    radial-gradient(circle at 12% 16%, rgba(144, 216, 255, 0.55), transparent 24%),
    radial-gradient(circle at 82% 12%, rgba(255, 143, 199, 0.38), transparent 22%),
    radial-gradient(circle at 70% 88%, rgba(134, 231, 203, 0.38), transparent 26%),
    linear-gradient(135deg, #fff7dc 0%, #fff1f8 45%, #eaf8ff 100%);
}

#game-container,
.screen {
  background:
    radial-gradient(circle at 10% 15%, rgba(255, 216, 77, 0.28), transparent 23%),
    radial-gradient(circle at 90% 18%, rgba(144, 216, 255, 0.34), transparent 24%),
    linear-gradient(180deg, #fffaf0 0%, #f2fbff 100%) !important;
}

.screen::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    radial-gradient(circle, rgba(255, 184, 77, 0.26) 0 4px, transparent 5px),
    radial-gradient(circle, rgba(144, 216, 255, 0.28) 0 3px, transparent 4px);
  background-size: 86px 86px, 112px 112px;
  background-position: 12px 18px, 42px 46px;
  opacity: 0.55;
}

.screen > * {
  position: relative;
  z-index: 1;
}

.res-btn,
.splash-start-btn,
.menu-btn,
.diff-tab,
.buy-btn,
.item-btn,
.footer-btn,
.slider-arrow {
  border-radius: 18px !important;
  border: 2px solid rgba(90, 63, 0, 0.14) !important;
  box-shadow: var(--shadow-button) !important;
  transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease !important;
}

.res-btn:hover,
.splash-start-btn:hover,
.menu-btn:hover,
.diff-tab:hover,
.buy-btn:hover,
.item-btn:hover,
.footer-btn:hover {
  transform: translateY(-2px) scale(1.02) !important;
  filter: saturate(1.05);
}

.res-btn:active,
.splash-start-btn:active,
.menu-btn:active,
.diff-tab:active,
.buy-btn:active,
.item-btn:active,
.footer-btn:active {
  transform: translateY(3px) !important;
  box-shadow: 0 2px 0 rgba(190, 128, 35, 0.35) !important;
}

.selection-header,
#global-top-bar,
.stage-sel-header {
  background: rgba(255, 255, 255, 0.76) !important;
  border-bottom: 2px solid rgba(255, 216, 77, 0.58) !important;
  box-shadow: 0 10px 24px rgba(72, 91, 128, 0.08) !important;
  backdrop-filter: blur(12px);
}

.menu-btn {
  background: #ffffff !important;
  color: var(--ink) !important;
  min-height: 38px;
}

.menu-btn.active,
.diff-tab.active,
.res-btn.primary,
.start-btn-large,
#spin-roulette-btn {
  background: linear-gradient(180deg, #ffe87a 0%, #ffc85c 100%) !important;
  color: var(--on-primary) !important;
}

.hud-pill {
  background: rgba(255, 255, 255, 0.9) !important;
  border: 2px solid rgba(255, 216, 77, 0.72) !important;
  box-shadow: 0 8px 16px rgba(72, 91, 128, 0.08) !important;
  color: var(--ink) !important;
}

#splash-screen {
  background:
    radial-gradient(circle at 18% 24%, rgba(255, 143, 199, 0.34), transparent 24%),
    radial-gradient(circle at 76% 28%, rgba(134, 231, 203, 0.42), transparent 26%),
    linear-gradient(135deg, #fff5c7 0%, #ffeef8 48%, #e6f7ff 100%) !important;
}

.splash-content {
  width: min(92vw, 780px);
  min-height: 100%;
  padding: clamp(18px, 4vh, 44px);
  gap: clamp(10px, 2vh, 18px);
}

.splash-title {
  color: var(--ink) !important;
  font-size: clamp(2rem, 6vw, 4.3rem) !important;
  line-height: 1.05 !important;
  letter-spacing: 0 !important;
  text-align: center;
  text-shadow: 0 4px 0 rgba(255, 216, 77, 0.7);
}

.splash-subtitle {
  width: min(92vw, 620px);
  color: #5f6e86 !important;
  font-size: clamp(1rem, 2.2vw, 1.45rem) !important;
  line-height: 1.35 !important;
  text-align: center;
  margin: 4px 0 20px !important;
}

.splash-start-btn {
  background: linear-gradient(180deg, #ffffff 0%, #fff0a7 100%) !important;
  color: var(--ink) !important;
  border-color: rgba(255, 184, 77, 0.9) !important;
  font-size: clamp(1.25rem, 3.4vw, 2.1rem) !important;
  padding: clamp(12px, 2.4vh, 18px) clamp(34px, 8vw, 72px) !important;
}

.sns-login-row {
  flex-wrap: wrap;
  gap: 12px !important;
}

.sns-btn {
  border-radius: 22px !important;
  box-shadow: 0 8px 18px rgba(72, 91, 128, 0.14) !important;
}

.main-play-area {
  background:
    linear-gradient(180deg, rgba(255, 250, 240, 0.86), rgba(233, 248, 255, 0.86)) !important;
  padding: clamp(6px, 1.6vw, 16px) !important;
}

.image-wrapper {
  gap: clamp(6px, 1.2vw, 14px) !important;
}

.canvas-container,
.stage-card,
.ready-image-container,
.info-block,
.buy-item-card,
.collection-card,
.inventory-item,
.modal-card {
  background: rgba(255, 255, 255, 0.92) !important;
  border: 3px solid rgba(255, 216, 77, 0.66) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-soft) !important;
}

.canvas-container {
  overflow: hidden;
}

.stage-main-area {
  width: 100%;
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.difficulty-tabs {
  flex-wrap: wrap;
  justify-content: center;
  padding: 0 12px;
}

.diff-tab {
  background: #fff !important;
  color: var(--ink) !important;
  min-width: 86px;
}

.stage-cards-wrapper {
  min-height: 0;
  width: min(100%, 1180px);
}

.stage-card {
  width: clamp(220px, 28vw, 360px) !important;
  height: clamp(150px, 20vw, 250px) !important;
  overflow: hidden;
}

.stage-card:hover,
.stage-card.selected {
  transform: translateY(-5px) rotate(-1deg) !important;
  border-color: var(--accent-pink) !important;
}

.stage-card .match-badge {
  background: linear-gradient(180deg, #ff9d89, #ff7ba8) !important;
  color: #fff !important;
  border-radius: 999px !important;
  border: 2px solid rgba(255, 255, 255, 0.76) !important;
}

.stage-card .stars-overlay {
  background: rgba(255, 255, 255, 0.86) !important;
  border-radius: 999px !important;
  border: 2px solid rgba(255, 216, 77, 0.66) !important;
}

.stars-attain {
  border: none !important;
  box-shadow: none !important;
}

.stage-card-item .stage-title,
.selection-title,
#ready-stage-title {
  color: var(--ink) !important;
  letter-spacing: 0 !important;
  text-shadow: 0 3px 0 rgba(255, 216, 77, 0.45);
}

.ready-content {
  width: min(96vw, 1180px) !important;
  min-height: 0;
}

.ready-side,
.info-area {
  min-width: 0;
}

.ready-footer {
  background: rgba(255, 255, 255, 0.78) !important;
  border-top: 2px solid rgba(255, 216, 77, 0.48) !important;
  box-shadow: 0 -8px 18px rgba(72, 91, 128, 0.06);
}

.item-shop-row {
  flex-wrap: wrap;
}

.buy-item-card {
  min-width: 90px;
}

.bottom-hud {
  background: rgba(255, 255, 255, 0.82) !important;
  border-top: 2px solid rgba(255, 216, 77, 0.58) !important;
  box-shadow: 0 -10px 24px rgba(72, 91, 128, 0.08);
  gap: 10px;
}

.progress-section {
  background: #d9ecff !important;
  border: 2px solid #ffffff;
  box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.9), 0 8px 16px rgba(72, 91, 128, 0.08);
}

.progress-bar {
  background: linear-gradient(90deg, #86e7cb, #ffd84d, #ff8fc7) !important;
}

.timer-bubble {
  background: #ffffff !important;
  color: var(--ink) !important;
  border: 2px solid var(--accent-sky) !important;
  box-shadow: 0 8px 16px rgba(72, 91, 128, 0.12) !important;
}

#roulette-screen,
#collection-screen,
#inventory-screen,
#settings-screen {
  background:
    radial-gradient(circle at 15% 20%, rgba(200, 184, 255, 0.25), transparent 24%),
    radial-gradient(circle at 85% 12%, rgba(134, 231, 203, 0.24), transparent 20%),
    linear-gradient(135deg, #fff8df, #edf9ff) !important;
}

.inventory-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)) !important;
  gap: clamp(10px, 1.8vw, 18px) !important;
}

.inventory-item {
  border-color: rgba(144, 216, 255, 0.62) !important;
}

.modal-overlay {
  background: rgba(40, 54, 83, 0.28) !important;
  backdrop-filter: blur(8px);
}

#portrait-warning {
  background:
    radial-gradient(circle at 20% 20%, rgba(255, 143, 199, 0.28), transparent 26%),
    radial-gradient(circle at 82% 76%, rgba(144, 216, 255, 0.34), transparent 28%),
    linear-gradient(135deg, #fff5c7, #eaf8ff) !important;
  color: var(--ink) !important;
}

#portrait-warning .warning-content {
  background: rgba(255, 255, 255, 0.88);
  border: 3px solid rgba(255, 216, 77, 0.72);
  border-radius: 24px;
  padding: 28px 22px;
  width: min(86vw, 420px);
  box-shadow: var(--shadow-soft);
}

@media screen and (max-width: 900px) {
  html {
    font-size: 14px;
  }

  #game-container {
    height: 100dvh !important;
  }

  .selection-header,
  #global-top-bar {
    padding: 8px 10px !important;
    gap: 8px !important;
    flex-wrap: wrap;
    justify-content: center !important;
  }

  .top-menu {
    width: 100%;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px !important;
  }

  .top-status-right {
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px !important;
  }

  .menu-btn,
  .hud-pill {
    font-size: 0.86rem !important;
    padding: 6px 10px !important;
  }

  .stage-card-item {
    width: clamp(210px, 42vw, 300px) !important;
  }

  .stage-card {
    width: 100% !important;
    height: clamp(145px, 28vw, 205px) !important;
  }

  .ready-content {
    gap: 10px !important;
  }

  .ready-image-container {
    min-width: 0 !important;
  }
}

@media screen and (orientation: portrait) {
  #portrait-warning {
    display: flex !important;
  }

  #game-container {
    display: none !important;
  }
}

@media screen and (max-width: 640px) {
  .splash-title {
    font-size: clamp(1.85rem, 9vw, 3rem) !important;
  }

  .splash-subtitle {
    margin-bottom: 12px !important;
  }

  .sns-btn {
    width: 52px !important;
    height: 52px !important;
  }

  .selection-title {
    font-size: clamp(1.35rem, 6vw, 2rem) !important;
    margin: 8px 0 !important;
  }

  .inventory-grid {
    grid-template-columns: 1fr !important;
  }

  #debug-panel {
    transform: scale(0.72) !important;
    transform-origin: bottom left !important;
  }
}

@media screen and (orientation: landscape) and (max-height: 520px) {
  .selection-header,
  #global-top-bar {
    padding: 5px 10px !important;
  }

  .stage-card {
    height: clamp(130px, 36vh, 180px) !important;
  }

  .ready-image-container {
    height: 46vh !important;
  }

  .canvas-container {
    border-width: 2px !important;
  }

  .bottom-hud {
    padding: 3px 10px !important;
  }

  .item-label {
    display: none;
  }
}

/* =========================================================
   Quiet UI Pass
   ========================================================= */
:root {
  --primary-color: #f2c94c;
  --primary-pressed: #deb53f;
  --on-primary: #2f2f28;
  --bg-canvas: #f5f4ee;
  --ink: #28313f;
  --body-text: #58606e;
  --surface-card: #ffffff;
  --surface-soft: #ecebe4;
  --border-hairline: #d8d6cc;
  --accent-pink: #d98aa8;
  --accent-mint: #82c9b8;
  --accent-sky: #8fb9dd;
  --accent-lavender: #aaa3d4;
  --accent-coral: #d9907d;
  --shadow-soft: 0 8px 20px rgba(38, 43, 52, 0.08);
  --shadow-button: 0 2px 4px rgba(38, 43, 52, 0.08);
  --radius-md: 8px;
  --radius-lg: 10px;
  --font-main: "Pretendard Variable", Pretendard, "Noto Sans KR", "Noto Sans CJK KR", "SamsungOne", "Samsung Sans", Roboto, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
}

body,
#game-container,
.screen,
#splash-screen,
.main-play-area,
#inventory-screen,
#collection-screen,
#settings-screen,
#roulette-screen {
  background: var(--bg-canvas) !important;
}

.screen::before,
.splash-effects,
.effect-burst,
.effect-sparkles {
  display: none !important;
}

.selection-header,
#global-top-bar,
.stage-sel-header,
.sub-nav-toolbar {
  background: rgba(255, 255, 255, 0.94) !important;
  border-bottom: 1px solid var(--border-hairline) !important;
  box-shadow: 0 2px 10px rgba(38, 43, 52, 0.05) !important;
  backdrop-filter: blur(8px);
}

.res-btn,
.splash-start-btn,
.menu-btn,
.diff-tab,
.buy-btn,
.item-btn,
.footer-btn,
.slider-arrow,
.sns-btn {
  border-radius: var(--radius-md) !important;
  border: 1px solid var(--border-hairline) !important;
  box-shadow: none !important;
  transform: none !important;
  filter: none !important;
}

.res-btn:hover,
.splash-start-btn:hover,
.menu-btn:hover,
.diff-tab:hover,
.buy-btn:hover,
.item-btn:hover,
.footer-btn:hover,
.slider-arrow:hover,
.sns-btn:hover {
  transform: none !important;
  filter: none !important;
  box-shadow: 0 2px 8px rgba(38, 43, 52, 0.08) !important;
}

.res-btn:active,
.splash-start-btn:active,
.menu-btn:active,
.diff-tab:active,
.buy-btn:active,
.item-btn:active,
.footer-btn:active,
.slider-arrow:active,
.sns-btn:active {
  transform: none !important;
  box-shadow: none !important;
}

.menu-btn.active,
.diff-tab.active,
.res-btn.primary,
.start-btn-large,
#spin-roulette-btn {
  background: var(--primary-color) !important;
  color: var(--on-primary) !important;
}

.splash-start-btn,
.res-btn,
.buy-btn,
.footer-btn.primary {
  background: var(--surface-card) !important;
  color: var(--ink) !important;
}

.start-btn-large,
#spin-roulette-btn {
  background: var(--primary-color) !important;
}

.hud-pill,
.timer-bubble {
  background: var(--surface-card) !important;
  border: 1px solid var(--border-hairline) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
}

.canvas-container,
.stage-card,
.ready-image-container,
.info-block,
.buy-item-card,
.collection-card,
.inventory-item,
.modal-card,
.reward-block {
  background: var(--surface-card) !important;
  border: 1px solid var(--border-hairline) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-soft) !important;
}

.stage-card:hover,
.stage-card.selected {
  transform: none !important;
  border-color: var(--primary-pressed) !important;
  box-shadow: 0 8px 22px rgba(38, 43, 52, 0.1) !important;
}

.stage-card .match-badge {
  background: rgba(255, 255, 255, 0.92) !important;
  color: var(--ink) !important;
  border: 1px solid var(--border-hairline) !important;
  border-radius: 999px !important;
}

.stage-card .stars-overlay {
  background: rgba(255, 255, 255, 0.9) !important;
  border: 1px solid var(--border-hairline) !important;
}

.splash-title,
.selection-title,
#ready-stage-title,
.stage-card-item .stage-title,
.ready-start-text,
#effect-title,
.result-title {
  color: var(--ink) !important;
  text-shadow: none !important;
  letter-spacing: 0 !important;
}

.splash-subtitle,
#effect-msg,
.stage-info .label,
.info-block h3 {
  color: var(--body-text) !important;
  text-shadow: none !important;
}

.progress-shell {
  background: #e6e8e2 !important;
  border: 1px solid var(--border-hairline) !important;
  box-shadow: none !important;
}

.progress-bar {
  background: var(--primary-color) !important;
}

.find-indicators .indicator,
.indicator {
  border: 1px solid var(--border-hairline) !important;
  box-shadow: none !important;
}

.item-icon,
.item-btn .item-count,
.wrong-circle,
.correct-circle {
  box-shadow: none !important;
}

/* =========================================================
   Apple-Inspired UI Pass
   ========================================================= */
:root {
  --primary-color: #007aff;
  --primary-pressed: #0066d6;
  --on-primary: #ffffff;
  --bg-canvas: #f5f5f7;
  --ink: #1d1d1f;
  --body-text: #6e6e73;
  --surface-card: #ffffff;
  --surface-soft: #f2f2f7;
  --border-hairline: rgba(0, 0, 0, 0.12);
  --accent-pink: #ff2d55;
  --accent-mint: #34c759;
  --accent-sky: #5ac8fa;
  --accent-lavender: #af52de;
  --accent-coral: #ff9500;
  --shadow-soft: 0 10px 30px rgba(0, 0, 0, 0.07);
  --shadow-button: none;
  --radius-md: 8px;
  --radius-lg: 8px;
  --font-main: "Pretendard Variable", Pretendard, "Noto Sans KR", "Noto Sans CJK KR", "SamsungOne", "Samsung Sans", Roboto, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
}

body,
#game-container,
.screen,
#splash-screen,
.main-play-area,
#inventory-screen,
#collection-screen,
#settings-screen,
#roulette-screen {
  background: var(--bg-canvas) !important;
  color: var(--body-text) !important;
}

.selection-header,
#global-top-bar,
.stage-sel-header,
.sub-nav-toolbar {
  background: rgba(245, 245, 247, 0.82) !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
  box-shadow: none !important;
  backdrop-filter: saturate(180%) blur(18px);
}

.canvas-container,
.stage-card,
.ready-image-container,
.info-block,
.buy-item-card,
.collection-card,
.inventory-item,
.modal-card,
.reward-block,
.inventory-grid > *,
.nfc-tag-card {
  background: rgba(255, 255, 255, 0.92) !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06) !important;
}

.res-btn,
.splash-start-btn,
.menu-btn,
.diff-tab,
.buy-btn,
.item-btn,
.footer-btn,
.slider-arrow,
.sns-btn,
.nav-tab {
  background: rgba(255, 255, 255, 0.86) !important;
  color: var(--ink) !important;
  border: 1px solid rgba(0, 0, 0, 0.1) !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

.res-btn:hover,
.splash-start-btn:hover,
.menu-btn:hover,
.diff-tab:hover,
.buy-btn:hover,
.item-btn:hover,
.footer-btn:hover,
.slider-arrow:hover,
.sns-btn:hover,
.nav-tab:hover {
  background: #ffffff !important;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08) !important;
}

.menu-btn.active,
.diff-tab.active,
.nav-tab.active,
.res-btn.primary,
.start-btn-large,
#spin-roulette-btn,
.footer-btn.primary {
  background: var(--primary-color) !important;
  border-color: var(--primary-color) !important;
  color: #ffffff !important;
}

.splash-start-btn,
.start-btn-large,
#spin-roulette-btn {
  min-height: 44px;
}

.hud-pill,
.timer-bubble {
  background: rgba(255, 255, 255, 0.78) !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
  border-radius: 999px !important;
  color: var(--ink) !important;
  backdrop-filter: saturate(180%) blur(14px);
}

.splash-title,
.selection-title,
#ready-stage-title,
.stage-card-item .stage-title,
.ready-start-text,
#effect-title,
.result-title,
#level-num,
.info-value,
.inventory-item .name {
  color: var(--ink) !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  text-shadow: none !important;
}

.splash-subtitle,
#effect-msg,
.stage-info .label,
.info-block h3,
#ready-goal-text,
.reward-list,
.stage-title,
.item-label {
  color: var(--body-text) !important;
  text-shadow: none !important;
}

.stage-card .match-badge {
  background: rgba(255, 255, 255, 0.86) !important;
  color: var(--ink) !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
  backdrop-filter: saturate(180%) blur(12px);
}

.stage-card .stars-overlay {
  background: rgba(255, 255, 255, 0.82) !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
  backdrop-filter: saturate(180%) blur(12px);
}

.star,
.stars,
.stars-attain .star.filled,
.stage-card .star.filled {
  color: #ffcc00 !important;
}

.stage-card:hover,
.stage-card.selected {
  border-color: rgba(0, 122, 255, 0.55) !important;
  box-shadow: 0 12px 32px rgba(0, 122, 255, 0.12) !important;
}

.progress-shell {
  background: rgba(118, 118, 128, 0.16) !important;
  border: none !important;
}

.progress-bar {
  background: var(--primary-color) !important;
}

.find-indicators .indicator,
.indicator {
  background: rgba(255, 255, 255, 0.86) !important;
  border: 1px solid rgba(0, 0, 0, 0.1) !important;
  color: var(--ink) !important;
}

.indicator.found {
  background: var(--primary-color) !important;
  border-color: var(--primary-color) !important;
  color: #ffffff !important;
}

.item-icon {
  background: rgba(255, 255, 255, 0.86) !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
  border-radius: 8px !important;
}

.item-btn .item-count {
  background: var(--primary-color) !important;
  color: #ffffff !important;
  border: 1px solid #ffffff !important;
}

.close-btn,
.nav-close-btn,
#back-to-selection {
  background: rgba(255, 255, 255, 0.86) !important;
  color: var(--ink) !important;
  border: 1px solid rgba(0, 0, 0, 0.1) !important;
  box-shadow: none !important;
}

/* =========================================================
   iOS App UI Pass
   ========================================================= */
:root {
  --primary-color: #0a84ff;
  --primary-pressed: #0071e3;
  --on-primary: #ffffff;
  --bg-canvas: #f2f2f7;
  --ink: #1c1c1e;
  --body-text: #6c6c70;
  --surface-card: #ffffff;
  --surface-soft: #e5e5ea;
  --border-hairline: rgba(60, 60, 67, 0.16);
  --shadow-soft: 0 1px 2px rgba(0, 0, 0, 0.04);
  --radius-md: 12px;
  --radius-lg: 16px;
  --font-main: "Pretendard Variable", Pretendard, "Noto Sans KR", "Noto Sans CJK KR", "SamsungOne", "Samsung Sans", Roboto, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
}

body,
#game-container,
.screen,
#splash-screen,
.main-play-area,
#inventory-screen,
#collection-screen,
#settings-screen,
#roulette-screen {
  background: var(--bg-canvas) !important;
}

.selection-header,
#global-top-bar,
.stage-sel-header,
.sub-nav-toolbar {
  min-height: 52px;
  background: rgba(242, 242, 247, 0.78) !important;
  border-bottom: 0.5px solid rgba(60, 60, 67, 0.18) !important;
  box-shadow: none !important;
  backdrop-filter: saturate(180%) blur(22px);
}

.selection-title,
#ready-stage-title,
.splash-title {
  font-weight: 700 !important;
  color: var(--ink) !important;
}

.splash-title {
  font-size: clamp(2rem, 5vw, 3.8rem) !important;
}

.splash-subtitle {
  color: var(--body-text) !important;
  font-weight: 400 !important;
}

.canvas-container,
.stage-card,
.ready-image-container,
.info-block,
.buy-item-card,
.collection-card,
.inventory-item,
.modal-card,
.reward-block {
  background: var(--surface-card) !important;
  border: 0.5px solid var(--border-hairline) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-soft) !important;
}

.res-btn,
.splash-start-btn,
.buy-btn,
.footer-btn,
.start-btn-large,
#spin-roulette-btn {
  min-height: 44px;
  padding: 10px 18px !important;
  border-radius: 12px !important;
  border: none !important;
  background: var(--primary-color) !important;
  color: #ffffff !important;
  box-shadow: none !important;
  font-weight: 600 !important;
}

.res-btn:hover,
.splash-start-btn:hover,
.buy-btn:hover,
.footer-btn:hover,
.start-btn-large:hover,
#spin-roulette-btn:hover {
  background: var(--primary-pressed) !important;
  box-shadow: none !important;
}

.menu-btn,
.diff-tab,
.nav-tab {
  min-height: 34px;
  padding: 6px 12px !important;
  border: none !important;
  border-radius: 10px !important;
  background: transparent !important;
  color: var(--primary-color) !important;
  box-shadow: none !important;
  font-weight: 600 !important;
}

.menu-btn.active,
.diff-tab.active,
.nav-tab.active {
  background: var(--surface-card) !important;
  color: var(--ink) !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08) !important;
}

.top-menu,
.difficulty-tabs,
.nav-tabs {
  background: rgba(118, 118, 128, 0.14) !important;
  border-radius: 12px !important;
  padding: 2px !important;
  gap: 2px !important;
}

.hud-pill,
.timer-bubble {
  min-height: 34px;
  padding: 6px 12px !important;
  background: rgba(255, 255, 255, 0.72) !important;
  border: 0.5px solid rgba(60, 60, 67, 0.16) !important;
  border-radius: 999px !important;
  backdrop-filter: saturate(180%) blur(18px);
}

.stage-card {
  border-radius: 18px !important;
  overflow: hidden;
}

.stage-card:hover,
.stage-card.selected {
  border-color: rgba(10, 132, 255, 0.45) !important;
  box-shadow: 0 0 0 3px rgba(10, 132, 255, 0.14) !important;
}

.stage-card .match-badge,
.stage-card .stars-overlay {
  background: rgba(255, 255, 255, 0.78) !important;
  border: 0.5px solid rgba(60, 60, 67, 0.16) !important;
  border-radius: 999px !important;
  backdrop-filter: saturate(180%) blur(18px);
}

.info-block h3,
.stage-info .label,
.item-label,
.reward-list,
#ready-goal-text {
  color: var(--body-text) !important;
  font-size: 0.86rem;
  font-weight: 500 !important;
}

.info-value,
#level-num {
  color: var(--ink) !important;
  font-weight: 700 !important;
}

.ready-diff-count {
  display: inline-block;
  margin-left: 6px;
  color: var(--body-text);
  font-size: 0.78em;
  font-weight: 500;
  white-space: nowrap;
}

.progress-shell {
  background: rgba(120, 120, 128, 0.2) !important;
  border-radius: 999px !important;
}

.progress-bar {
  background: var(--primary-color) !important;
  border-radius: 999px !important;
}

.indicator {
  background: var(--surface-card) !important;
  border: 0.5px solid rgba(60, 60, 67, 0.16) !important;
  border-radius: 50% !important;
}

.indicator.found {
  background: var(--primary-color) !important;
  color: #ffffff !important;
}

.item-icon,
.close-btn,
.nav-close-btn,
#back-to-selection,
.slider-arrow,
.sns-btn {
  background: rgba(255, 255, 255, 0.78) !important;
  border: 0.5px solid rgba(60, 60, 67, 0.16) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  backdrop-filter: saturate(180%) blur(18px);
}

.collection-card,
.inventory-item,
.buy-item-card {
  border-radius: 16px !important;
}

/* =========================================================
   Material Components / Material 3 UI Pass
   ========================================================= */
:root {
  --primary-color: #6750a4;
  --primary-pressed: #4f378b;
  --on-primary: #ffffff;
  --primary-container: #eaddff;
  --on-primary-container: #21005d;
  --secondary-container: #e8def8;
  --on-secondary-container: #1d192b;
  --tertiary-container: #ffd8e4;
  --on-tertiary-container: #31111d;
  --bg-canvas: #fffbfe;
  --ink: #1d1b20;
  --body-text: #49454f;
  --surface-card: #fffbfe;
  --surface-soft: #f3edf7;
  --surface-container-low: #f7f2fa;
  --surface-container: #f3edf7;
  --surface-container-high: #ece6f0;
  --surface-container-highest: #e6e0e9;
  --border-hairline: #cac4d0;
  --outline-variant: #cac4d0;
  --shadow-soft: 0 1px 2px rgba(29, 27, 32, 0.3), 0 1px 3px 1px rgba(29, 27, 32, 0.15);
  --radius-md: 20px;
  --radius-lg: 12px;
  --font-main: "Pretendard Variable", Pretendard, "Noto Sans KR", "Noto Sans CJK KR", "SamsungOne", "Samsung Sans", Roboto, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
}

body,
#game-container,
.screen,
#splash-screen,
.main-play-area,
#inventory-screen,
#collection-screen,
#settings-screen,
#roulette-screen {
  background: var(--bg-canvas) !important;
  color: var(--body-text) !important;
}

.selection-header,
#global-top-bar,
.stage-sel-header,
.sub-nav-toolbar {
  min-height: 64px;
  background: var(--surface-card) !important;
  border-bottom: 1px solid var(--outline-variant) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

.canvas-container,
.ready-image-container,
.modal-card {
  background: var(--surface-container-low) !important;
  border: none !important;
  border-radius: 16px !important;
  box-shadow: var(--shadow-soft) !important;
}

.stage-card,
.info-block,
.buy-item-card,
.collection-card,
.inventory-item,
.reward-block,
.inventory-grid > *,
.nfc-tag-card {
  background: var(--surface-card) !important;
  border: 1px solid var(--outline-variant) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
}

.stage-card:hover,
.stage-card.selected {
  background: var(--surface-container-low) !important;
  border-color: var(--primary-color) !important;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary-color) 18%, transparent) !important;
}

.res-btn,
.splash-start-btn,
.buy-btn,
.footer-btn,
.start-btn-large,
#spin-roulette-btn {
  min-height: 40px;
  padding: 10px 24px !important;
  border: none !important;
  border-radius: 999px !important;
  background: var(--primary-color) !important;
  color: var(--on-primary) !important;
  box-shadow: 0 1px 2px rgba(29, 27, 32, 0.3), 0 1px 3px 1px rgba(29, 27, 32, 0.15) !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

.res-btn:hover,
.splash-start-btn:hover,
.buy-btn:hover,
.footer-btn:hover,
.start-btn-large:hover,
#spin-roulette-btn:hover {
  background: var(--primary-pressed) !important;
  box-shadow: 0 2px 6px 2px rgba(29, 27, 32, 0.16) !important;
}

.res-btn.secondary,
.res-btn-secondary,
.footer-btn.secondary {
  background: var(--secondary-container) !important;
  color: var(--on-secondary-container) !important;
  box-shadow: none !important;
}

.menu-btn,
.diff-tab,
.nav-tab {
  min-height: 40px;
  padding: 8px 18px !important;
  border: none !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: var(--body-text) !important;
  box-shadow: none !important;
  font-weight: 600 !important;
}

.menu-btn.active,
.diff-tab.active,
.nav-tab.active {
  background: var(--secondary-container) !important;
  color: var(--on-secondary-container) !important;
  box-shadow: none !important;
}

.top-menu,
.difficulty-tabs,
.nav-tabs {
  background: var(--surface-container-highest) !important;
  border-radius: 999px !important;
  padding: 4px !important;
  gap: 2px !important;
}

.hud-pill,
.timer-bubble {
  min-height: 40px;
  padding: 8px 16px !important;
  background: var(--surface-container) !important;
  border: none !important;
  border-radius: 999px !important;
  color: var(--ink) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

.splash-title,
.selection-title,
#ready-stage-title,
.stage-card-item .stage-title,
.ready-start-text,
#effect-title,
.result-title,
#level-num,
.info-value,
.inventory-item .name {
  color: var(--ink) !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  text-shadow: none !important;
}

.splash-subtitle,
#effect-msg,
.stage-info .label,
.info-block h3,
#ready-goal-text,
.reward-list,
.stage-title,
.item-label {
  color: var(--body-text) !important;
  font-weight: 500 !important;
  text-shadow: none !important;
}

.stage-card .match-badge {
  background: var(--tertiary-container) !important;
  color: var(--on-tertiary-container) !important;
  border: none !important;
  border-radius: 999px !important;
  backdrop-filter: none !important;
}

.stage-card .stars-overlay {
  background: var(--surface-container) !important;
  border: none !important;
  border-radius: 999px !important;
  backdrop-filter: none !important;
}

.stars-attain {
  background: transparent !important;
  border: none !important;
}

.star,
.stars,
.stars-attain .star.filled,
.stage-card .star.filled {
  color: #ffb300 !important;
}

.progress-shell {
  background: var(--surface-container-highest) !important;
  border: none !important;
  border-radius: 999px !important;
}

.progress-bar {
  background: var(--primary-color) !important;
  border-radius: 999px !important;
}

.indicator {
  background: var(--surface-container) !important;
  border: none !important;
  border-radius: 999px !important;
  color: var(--body-text) !important;
  box-shadow: none !important;
}

.indicator.found {
  background: var(--primary-container) !important;
  color: var(--on-primary-container) !important;
}

.item-icon,
.close-btn,
.nav-close-btn,
#back-to-selection,
.slider-arrow,
.sns-btn {
  background: var(--surface-container) !important;
  border: none !important;
  border-radius: 999px !important;
  color: var(--ink) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

.item-btn .item-count {
  background: var(--primary-color) !important;
  color: var(--on-primary) !important;
  border: none !important;
}

.inventory-grid .empty-msg {
  grid-column: 1 / -1;
  justify-self: stretch;
  width: 100%;
  margin: 0;
  padding: 32px 16px;
  text-align: center;
  color: var(--body-text);
  background: var(--surface-card);
  border: 1px solid var(--outline-variant);
  border-radius: 12px;
}

/* =========================================================
   Material Type Scale Cleanup
   ========================================================= */
:root {
  --font-main: "Pretendard Variable", Pretendard, "Noto Sans KR", "Noto Sans CJK KR", "SamsungOne", "Samsung Sans", Roboto, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
  --type-display: 32px;
  --type-headline: 24px;
  --type-title: 18px;
  --type-label: 14px;
  --type-body: 15px;
  --type-body-small: 13px;
  --type-caption: 12px;
}

body,
button,
input,
select,
textarea {
  font-family: var(--font-main) !important;
  font-size: var(--type-body);
  letter-spacing: 0 !important;
}

.splash-title {
  font-size: var(--type-display) !important;
  line-height: 1.15 !important;
  font-weight: 700 !important;
}

.selection-title,
#ready-stage-title,
#effect-title,
.result-title {
  font-size: var(--type-headline) !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
}

.stage-card-item .stage-title,
.info-value,
#level-num,
.inventory-item .name,
.collection-card strong {
  font-size: var(--type-title) !important;
  line-height: 1.25 !important;
  font-weight: 600 !important;
}

.splash-subtitle,
#effect-msg,
#ready-goal-text,
.reward-list,
.stage-info .label,
.info-block h3,
.item-label,
.stage-title {
  font-size: var(--type-body) !important;
  line-height: 1.4 !important;
  font-weight: 400 !important;
}

.res-btn,
.splash-start-btn,
.menu-btn,
.diff-tab,
.nav-tab,
.buy-btn,
.footer-btn,
.start-btn-large,
#spin-roulette-btn,
.hud-pill,
.timer-bubble {
  font-size: var(--type-label) !important;
  line-height: 1.2 !important;
  font-weight: 600 !important;
}

.stage-card .match-badge,
.stage-card .stars-overlay,
.indicator,
.item-btn .item-count,
.owned-count,
.inventory-item .badge {
  font-size: var(--type-caption) !important;
  line-height: 1.2 !important;
  font-weight: 600 !important;
}

.stars,
.stars-attain {
  font-size: 22px !important;
  line-height: 1 !important;
}

.stage-card .star {
  font-size: 14px !important;
  line-height: 1 !important;
}

.item-icon {
  font-size: 18px !important;
}

.ready-start-text {
  font-size: 40px !important;
  line-height: 1.1 !important;
  font-weight: 700 !important;
}

@media screen and (max-width: 900px), screen and (orientation: landscape) and (max-height: 600px) {
  :root {
    --type-display: 26px;
    --type-headline: 20px;
    --type-title: 16px;
    --type-body: 13px;
    --type-label: 12px;
    --type-body-small: 12px;
    --type-caption: 11px;
  }

  .stars,
  .stars-attain {
    font-size: 18px !important;
  }

  .stage-card .star {
    font-size: 12px !important;
  }

  .ready-start-text {
    font-size: 32px !important;
  }
}

@media screen and (orientation: landscape) and (max-height: 420px) {
  :root {
    --type-display: 22px;
    --type-headline: 18px;
    --type-title: 14px;
    --type-body: 12px;
    --type-label: 11px;
    --type-caption: 10px;
  }
}

/* Difficulty selected state */
.difficulty-tabs {
  border: 1px solid var(--outline-variant) !important;
}

.difficulty-tabs .diff-tab {
  border: 1px solid transparent !important;
}

.difficulty-tabs .diff-tab.active {
  background: var(--primary-color) !important;
  color: var(--on-primary) !important;
  border-color: var(--primary-color) !important;
  box-shadow: 0 2px 6px rgba(103, 80, 164, 0.24) !important;
}

/* Top menu selected state */
.top-menu {
  border: 1px solid var(--outline-variant) !important;
}

.top-menu .menu-btn {
  border: 1px solid transparent !important;
}

.top-menu .menu-btn.active {
  background: var(--primary-color) !important;
  color: var(--on-primary) !important;
  border-color: var(--primary-color) !important;
  box-shadow: 0 2px 6px rgba(103, 80, 164, 0.24) !important;
}

/* Warm primary palette */
:root {
  --primary-color: #f9a825;
  --primary-pressed: #ef8f00;
  --on-primary: #211400;
  --primary-container: #ffe6a6;
  --on-primary-container: #241700;
  --secondary-container: #fff1c2;
  --on-secondary-container: #241900;
  --tertiary-container: #ffe7bd;
  --on-tertiary-container: #251800;
}

.difficulty-tabs .diff-tab.active,
.top-menu .menu-btn.active,
.stage-card:hover,
.stage-card.selected {
  box-shadow: 0 2px 6px rgba(249, 168, 37, 0.28) !important;
}

/* Stage Ready Detail Spacing */
#stage-ready-screen {
  padding: clamp(12px, 2.4vh, 24px) clamp(14px, 3vw, 34px) !important;
  gap: clamp(10px, 1.8vh, 18px) !important;
}

#stage-ready-screen .selection-header {
  padding: 0 !important;
  gap: clamp(10px, 2vw, 18px) !important;
}

#ready-stage-title {
  margin: 0 !important;
  line-height: 1.18 !important;
}

.ready-content {
  width: min(100%, 1180px) !important;
  margin: 0 auto !important;
  padding: clamp(4px, 1vh, 10px) 0 !important;
  gap: clamp(14px, 2.4vw, 28px) !important;
  align-items: stretch !important;
}

.ready-main {
  padding: clamp(10px, 1.8vw, 20px) !important;
  border-radius: 18px !important;
}

.ready-image-container {
  border-radius: 14px !important;
  max-height: min(52vh, 520px) !important;
}

.ready-side {
  align-items: stretch !important;
  justify-content: center !important;
  max-height: none !important;
}

.ready-side .info-area {
  width: 100% !important;
  max-width: 360px !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(10px, 1.6vw, 14px) !important;
  align-self: center !important;
}

.info-block {
  min-height: 76px !important;
  padding: clamp(12px, 1.8vw, 18px) !important;
  margin: 0 !important;
  border-radius: 14px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
}

.info-block h3 {
  margin: 0 !important;
  font-size: 0.8rem !important;
  line-height: 1.2 !important;
}

.info-value,
#ready-goal-text,
.reward-list span {
  margin: 0 !important;
  line-height: 1.28 !important;
}

.stars-attain {
  line-height: 1 !important;
  gap: 3px !important;
}

.ready-side .info-block:nth-child(3),
.ready-side .reward-block {
  grid-column: 1 / -1 !important;
}

.ready-side .info-block:first-child,
.ready-side .info-block:nth-child(2) {
  grid-column: 1 / -1 !important;
}

.ready-side .info-block:nth-child(3) {
  display: none !important;
}

.ready-side .reward-block {
  padding-block: clamp(12px, 1.6vw, 16px) !important;
}

.ready-footer {
  padding: clamp(10px, 1.8vh, 18px) 0 0 !important;
  gap: clamp(12px, 2vw, 24px) !important;
}

.item-shop-row {
  gap: clamp(8px, 1.4vw, 14px) !important;
}

.buy-item-card {
  padding: 10px 12px !important;
  gap: 8px !important;
}

@media (max-width: 760px), (orientation: portrait) {
  #stage-ready-screen {
    padding: 12px !important;
    overflow-y: auto !important;
  }

  .ready-content {
    flex-direction: column !important;
    gap: 12px !important;
    align-items: center !important;
  }

  .ready-main {
    width: 100% !important;
    padding: 10px !important;
  }

  .ready-image-container {
    max-height: none !important;
  }

  .ready-side {
    width: 100% !important;
  }

  .ready-side .info-area {
    max-width: none !important;
    gap: 8px !important;
  }

  .info-block {
    min-height: 62px !important;
    padding: 10px !important;
  }

  .ready-footer {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .item-shop-row {
    justify-content: center !important;
  }
}

/* Ready Item Purchase Controls */
.ready-footer .item-shop-row {
  align-items: stretch !important;
}

.ready-footer .buy-item-card {
  width: auto !important;
  min-width: 92px !important;
  padding: 10px 10px 9px !important;
  gap: 7px !important;
  border-radius: 14px !important;
}

.ready-footer .item-icon-box {
  width: 42px !important;
  height: 42px !important;
  border-radius: 12px !important;
  background: var(--secondary-container) !important;
}

.ready-footer .item-icon-box img {
  width: 34px !important;
  height: 34px !important;
  object-fit: contain !important;
}

.ready-footer .buy-item-card .owned-count {
  position: static !important;
  transform: none !important;
  min-width: 48px !important;
  padding: 3px 8px !important;
  margin: -1px 0 0 !important;
  border-radius: 999px !important;
  background: var(--primary-container) !important;
  color: var(--on-primary-container) !important;
  border: 1px solid rgba(249, 168, 37, 0.38) !important;
  box-shadow: none !important;
  font-size: 0.86rem !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  text-align: center !important;
}

.ready-footer .buy-item-card .owned-count span {
  font-size: inherit !important;
  font-weight: inherit !important;
  color: inherit !important;
  white-space: nowrap !important;
}

.ready-footer .buy-btn {
  width: 100% !important;
  min-width: 68px !important;
  min-height: 32px !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  font-size: 0.82rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

@media (max-width: 760px), (orientation: portrait) {
  .ready-footer .item-shop-row {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .ready-footer .buy-item-card {
    min-width: 0 !important;
  }
}

/* =========================================================
   Responsive Orientation Unlock
   ========================================================= */
#portrait-warning {
  display: none !important;
}

html,
body {
  overscroll-behavior: none;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

body.is-standalone,
body.is-mobile-browser {
  position: fixed;
  inset: 0;
  width: 100%;
}

#game-container {
  display: flex !important;
  width: 100%;
  height: 100%;
  height: 100dvh !important;
}

.screen {
  min-width: 0;
  min-height: 0;
}

#game-screen {
  overflow: hidden !important;
}

#game-screen.hidden,
#game-container .screen.hidden {
  display: none !important;
}

#game-screen:not(.hidden) {
  display: flex !important;
}

#game-screen .main-play-area {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  padding: clamp(6px, 1.4vmin, 14px) !important;
}

#game-screen .image-wrapper {
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: minmax(0, 1fr);
  gap: clamp(6px, 1.4vmin, 12px) !important;
  align-items: stretch !important;
  justify-items: stretch !important;
  padding: 0 !important;
}

#game-screen .canvas-container {
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  padding: clamp(2px, 0.7vmin, 6px) !important;
}

#game-screen canvas {
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
}

#game-screen .find-indicators {
  flex: 0 0 auto !important;
  padding: clamp(5px, 1vmin, 10px) clamp(8px, 2vw, 18px) !important;
}

#game-screen .progress-section {
  flex: 0 0 auto !important;
  width: min(92%, 980px) !important;
  height: clamp(10px, 1.6vmin, 18px) !important;
  margin: clamp(3px, 0.8vmin, 8px) auto !important;
}

#game-screen .progress-container {
  height: 100% !important;
}

#game-screen .bottom-hud {
  flex: 0 0 auto !important;
  min-height: 0 !important;
  padding: clamp(6px, 1.2vmin, 12px) clamp(8px, 2vw, 18px) !important;
}

#game-screen .hud-right {
  min-width: 0;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(6px, 1.2vmin, 10px) !important;
}

#game-screen .item-btn {
  min-width: clamp(58px, 12vmin, 86px) !important;
}

#game-screen .item-icon {
  width: clamp(32px, 6.2vmin, 46px) !important;
  height: clamp(32px, 6.2vmin, 46px) !important;
}

@media (orientation: portrait) {
  html,
  body {
    overflow: hidden !important;
  }

  #portrait-warning {
    display: none !important;
  }

  #game-container {
    display: flex !important;
  }

  #game-screen .image-wrapper {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
  }

  #game-screen .bottom-hud {
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 6px !important;
  }

  #game-screen .hud-left,
  #game-screen .hud-center {
    display: none !important;
  }

  #game-screen .item-label {
    display: none !important;
  }

  #stage-ready-screen {
    height: 100dvh !important;
  }
}

@media (max-width: 760px) and (orientation: portrait) {
  #global-top-bar,
  .selection-header {
    min-height: 0 !important;
  }

  #game-screen .indicator {
    width: clamp(22px, 7vw, 32px) !important;
    height: clamp(22px, 7vw, 32px) !important;
  }

  #game-screen .item-btn {
    min-height: 54px !important;
    padding: 5px 8px !important;
  }
}

@media (orientation: landscape) and (max-height: 520px) {
  #game-screen .find-indicators {
    padding-block: 3px !important;
  }

  #game-screen .main-play-area {
    padding: 4px 8px !important;
  }

  #game-screen .progress-section {
    width: min(84%, 860px) !important;
    height: 8px !important;
    margin-block: 2px !important;
  }

  #game-screen .timer-bubble {
    min-height: 22px !important;
    padding: 2px 7px !important;
  }

  #game-screen .bottom-hud {
    padding: 3px 10px !important;
  }

  #game-screen .item-label {
    display: none !important;
  }

  #game-screen .item-btn {
    min-height: 44px !important;
  }

  #game-screen .item-icon {
    width: 32px !important;
    height: 32px !important;
  }
}

/* Compact mobile top navigation */
@media screen and (max-width: 900px), screen and (hover: none) and (pointer: coarse) {
  #global-top-bar.stage-sel-header,
  #global-top-bar.selection-header {
    min-height: 38px !important;
    padding: 4px 8px !important;
    gap: 6px !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
  }

  #global-top-bar .top-menu {
    width: auto !important;
    min-width: 0 !important;
    flex: 1 1 auto !important;
    display: flex !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 3px !important;
    overflow-x: auto !important;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
  }

  #global-top-bar .top-menu::-webkit-scrollbar {
    display: none;
  }

  #global-top-bar .top-status-right {
    width: auto !important;
    min-width: max-content !important;
    flex: 0 0 auto !important;
    display: flex !important;
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;
    gap: 4px !important;
  }

  #global-top-bar .menu-btn {
    min-height: 28px !important;
    padding: 4px 8px !important;
    font-size: 11px !important;
    line-height: 1 !important;
    border-radius: 999px !important;
    flex: 0 0 auto !important;
    white-space: nowrap !important;
  }

  #global-top-bar .hud-pill {
    min-height: 28px !important;
    padding: 4px 7px !important;
    gap: 3px !important;
    font-size: 11px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  #global-top-bar .hud-pill .icon,
  #global-top-bar #point-count,
  #global-top-bar #daily-attempts-display {
    font-size: 11px !important;
    line-height: 1 !important;
  }
}

@media screen and (max-width: 430px) and (orientation: portrait) {
  #global-top-bar.stage-sel-header,
  #global-top-bar.selection-header {
    padding-inline: 6px !important;
  }

  #global-top-bar .menu-btn {
    padding-inline: 7px !important;
  }

  #global-top-bar .hud-attempts-label {
    display: none !important;
  }

  #global-top-bar .hud-pill {
    padding-inline: 6px !important;
  }
}

/* Stage selection card polish */
.difficulty-tabs {
  margin-bottom: clamp(16px, 3vmin, 34px) !important;
}

.stage-slider-container {
  margin-top: 0 !important;
}

.stage-card-item {
  gap: 0 !important;
}

.stage-card-item .stage-title {
  display: none !important;
}

.stage-card .stage-number-badge {
  position: absolute;
  right: clamp(10px, 2.1vmin, 18px);
  bottom: clamp(10px, 2.1vmin, 18px);
  z-index: 3;
  width: clamp(34px, 6vmin, 54px);
  height: clamp(34px, 6vmin, 54px);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  color: var(--ink);
  border: 1px solid var(--outline-variant, var(--border-hairline));
  box-shadow: 0 4px 12px rgba(29, 27, 32, 0.18);
  font-size: clamp(15px, 2.8vmin, 22px);
  font-weight: 800;
  line-height: 1;
  pointer-events: none;
}

@media screen and (max-width: 900px), screen and (hover: none) and (pointer: coarse) {
  .difficulty-tabs {
    margin-bottom: clamp(18px, 4.2vmin, 30px) !important;
  }

  .stage-card .stage-number-badge {
    width: clamp(30px, 8vmin, 44px);
    height: clamp(30px, 8vmin, 44px);
    font-size: clamp(13px, 3.8vmin, 18px);
  }
}

.stage-slider-container {
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.stage-card.locked::after {
  content: "" !important;
  background: rgba(255, 255, 255, 0.62) !important;
  backdrop-filter: blur(2px);
  padding: 0 !important;
}

.stage-card.locked::before {
  content: "" !important;
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  background-color: rgba(29, 27, 32, 0.78);
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 9h-1V7a4 4 0 0 0-8 0v2H7a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2Zm-7-2a2 2 0 0 1 4 0v2h-4V7Zm3 8.73V18h-2v-2.27A2 2 0 1 1 13 15.73Z'/%3E%3C/svg%3E") center / clamp(42px, 9vmin, 72px) clamp(42px, 9vmin, 72px) no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 9h-1V7a4 4 0 0 0-8 0v2H7a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2Zm-7-2a2 2 0 0 1 4 0v2h-4V7Zm3 8.73V18h-2v-2.27A2 2 0 1 1 13 15.73Z'/%3E%3C/svg%3E") center / clamp(42px, 9vmin, 72px) clamp(42px, 9vmin, 72px) no-repeat;
}

/* Mobile stage-ready layout */
@media screen and (max-width: 900px), screen and (hover: none) and (pointer: coarse) {
  #stage-ready-screen {
    overflow: hidden !important;
    padding: clamp(6px, 1.8vmin, 12px) !important;
    gap: clamp(5px, 1.4vmin, 10px) !important;
  }

  #stage-ready-screen .selection-header {
    position: relative !important;
    z-index: 20 !important;
    flex: 0 0 auto !important;
    min-height: 34px !important;
    padding: 2px 4px !important;
  }

  #stage-ready-screen #back-to-selection {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: 32px !important;
    height: 32px !important;
    margin: 0 !important;
    font-size: 1rem !important;
  }

  #stage-ready-screen .ready-content {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    width: 100% !important;
    padding: 0 !important;
    gap: clamp(6px, 1.5vmin, 10px) !important;
    overflow: hidden !important;
  }

  #stage-ready-screen .ready-main {
    min-height: 0 !important;
    padding: clamp(4px, 1.2vmin, 8px) !important;
    flex: 1 1 auto !important;
  }

  #stage-ready-screen .ready-image-container {
    max-height: min(42dvh, 360px) !important;
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
  }

  #stage-ready-screen .ready-side {
    flex: 0 1 auto !important;
    min-height: 0 !important;
  }

  #stage-ready-screen .ready-side .info-area {
    gap: 6px !important;
  }

  #stage-ready-screen .info-block {
    min-height: 46px !important;
    padding: 7px 8px !important;
  }

  #stage-ready-screen .reward-block {
    display: none !important;
  }

  #stage-ready-screen .ready-footer {
    flex: 0 0 auto !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    width: 100% !important;
    padding: 4px 0 0 !important;
    gap: 8px !important;
    border-top: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  #stage-ready-screen .ready-footer .item-shop-row {
    width: auto !important;
    flex: 0 1 auto !important;
    display: flex !important;
    grid-template-columns: none !important;
    justify-content: flex-start !important;
    align-items: flex-end !important;
    gap: 5px !important;
  }

  #stage-ready-screen .ready-footer .buy-item-card {
    width: 58px !important;
    min-width: 58px !important;
    padding: 5px 4px !important;
    gap: 3px !important;
    border-radius: 10px !important;
    position: relative !important;
  }

  #stage-ready-screen .ready-footer .item-icon-box {
    width: 28px !important;
    height: 28px !important;
    border-radius: 8px !important;
  }

  #stage-ready-screen .ready-footer .item-icon-box img {
    width: 22px !important;
    height: 22px !important;
  }

  #stage-ready-screen .ready-footer .buy-item-card .owned-count {
    position: absolute !important;
    top: -5px !important;
    right: -5px !important;
    transform: none !important;
    min-width: 18px !important;
    height: 18px !important;
    padding: 0 5px !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 10px !important;
    line-height: 1 !important;
    border-radius: 999px !important;
  }

  #stage-ready-screen .ready-footer .buy-btn {
    min-width: 0 !important;
    min-height: 22px !important;
    padding: 4px 5px !important;
    font-size: 10px !important;
  }

  #stage-ready-screen .start-action {
    flex: 0 0 auto !important;
    align-self: flex-end !important;
  }

  #stage-ready-screen .start-btn-large {
    width: clamp(112px, 32vw, 148px) !important;
    height: 48px !important;
    min-height: 48px !important;
    padding: 0 14px !important;
    font-size: 1rem !important;
    border-radius: 14px !important;
  }

  #stage-ready-screen .start-btn-large .t1 {
    font-size: 1rem !important;
    line-height: 1 !important;
  }
}

@media screen and (orientation: landscape) and (max-height: 520px) {
  #stage-ready-screen .ready-content {
    flex-direction: row !important;
    align-items: stretch !important;
    padding-top: clamp(6px, 1.5dvh, 12px) !important;
    padding-bottom: clamp(8px, 1.8dvh, 14px) !important;
  }

  #stage-ready-screen .ready-image-container {
    max-height: calc(100dvh - 104px) !important;
  }

  #stage-ready-screen .ready-side .info-area {
    max-width: 250px !important;
  }
}

@media screen and (orientation: portrait) and (max-width: 520px) {
  #stage-ready-screen .ready-content {
    flex-direction: column !important;
  }

  #stage-ready-screen .ready-image-container {
    max-height: min(34dvh, 260px) !important;
  }
}

/* In-game start text and item alignment */
.ready-start-text {
  font-size: clamp(3.15rem, 9.8vw, 7rem) !important;
  font-weight: 1000 !important;
  color: #90d8ff !important;
  -webkit-text-stroke: 0 !important;
  text-shadow:
    1px 0 0 rgba(29, 27, 32, 0.78),
    -1px 0 0 rgba(29, 27, 32, 0.78),
    0 1px 0 rgba(29, 27, 32, 0.78),
    0 -1px 0 rgba(29, 27, 32, 0.78),
    1px 1px 0 rgba(29, 27, 32, 0.64),
    -1px -1px 0 rgba(29, 27, 32, 0.64),
    1px -1px 0 rgba(29, 27, 32, 0.64),
    -1px 1px 0 rgba(29, 27, 32, 0.64) !important;
}

#game-screen .hud-right {
  align-items: center !important;
  align-self: center !important;
}

#game-screen .item-btn {
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: center !important;
  text-align: center !important;
}

#game-screen .item-icon {
  margin: 0 auto !important;
}

#effect-title {
  color: #ffffff !important;
  text-shadow: 0 4px 18px rgba(0, 0, 0, 0.75) !important;
}

#effect-content,
#effect-content #effect-msg,
#effect-content #effect-stars,
#effect-content .star,
#effect-content .stars-attain .star,
#effect-content .stars-attain .star.filled {
  color: #ffffff !important;
}

#retry-btn-overlay {
  color: #111111 !important;
}

/* In-game surface cleanup */
#game-screen .canvas-container {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

#game-screen canvas {
  border: 1px solid rgba(29, 27, 32, 0.28) !important;
  border-radius: 8px !important;
  background: transparent !important;
}

#game-screen .progress-section {
  margin-top: clamp(16px, 3vmin, 26px) !important;
  margin-bottom: clamp(2px, 0.7vmin, 6px) !important;
  border: 0 !important;
  background: rgba(0, 0, 0, 0.42) !important;
  overflow: visible !important;
  z-index: 5 !important;
}

#game-screen .progress-container,
#game-screen .star-thresholds {
  overflow: visible !important;
}

#game-screen .star-marker {
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
}

#game-screen .star-marker .star-icon {
  width: clamp(18px, 3.8vmin, 26px) !important;
  height: clamp(18px, 3.8vmin, 26px) !important;
  background: rgba(0, 0, 0, 0.48) !important;
  color: #ffb300 !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  text-shadow: none !important;
  overflow: visible !important;
}

#game-screen .star-marker .marker-line {
  display: none !important;
}

#game-screen .bottom-hud {
  border-top: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  z-index: 1 !important;
}

#game-screen .timer-bubble {
  left: 50% !important;
  right: auto !important;
  top: calc(100% + 7px) !important;
  transform: translateX(-50%) !important;
  background: #ffffff !important;
  color: var(--ink) !important;
  border: 2px solid var(--accent-sky) !important;
  width: auto !important;
  min-width: 58px !important;
  max-width: none !important;
  height: 26px !important;
  min-height: 26px !important;
  padding: 3px 10px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  line-height: 1 !important;
}

@media (orientation: portrait) {
  #game-screen .timer-bubble {
    min-width: 54px !important;
    height: 24px !important;
    min-height: 24px !important;
    padding: 3px 8px !important;
    font-size: 0.82rem !important;
  }
}

/* Collection layout */
#collection-list-container .collection-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 14px !important;
  padding: 14px !important;
}

.collection-reward-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  width: 100%;
}

.collection-reward-name {
  min-width: 0;
  color: var(--ink);
  font-size: 0.86rem;
  font-weight: 700;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.collection-reward-icon {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.collection-reward-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.collection-materials {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
  gap: 8px;
  width: 100%;
}

.collection-material {
  min-width: 0;
  text-align: center;
  background: var(--bg-canvas);
  padding: 8px 5px;
  border-radius: 8px;
  border: 1px solid var(--border-hairline);
  display: flex;
  flex-direction: column;
  align-items: center;
}

.collection-material-icon {
  width: 34px;
  height: 34px;
  aspect-ratio: 1 / 1;
  flex: 0 0 34px;
  margin-bottom: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.collection-material-icon img,
.collection-material-icon svg {
  width: 100% !important;
  height: 100% !important;
  max-width: 34px !important;
  max-height: 34px !important;
  object-fit: contain !important;
}

.collection-material-icon > div {
  width: 34px !important;
  height: 34px !important;
  max-width: 34px !important;
  max-height: 34px !important;
}

.collection-material-name {
  width: 100%;
  color: var(--body-text);
  font-size: 0.7rem;
  font-weight: 600;
  line-height: 1.15;
  margin-bottom: 3px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.collection-material-count {
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1;
}

#collection-list-container .combine-btn {
  min-height: 34px !important;
  padding: 7px 12px !important;
  font-size: 0.78rem !important;
  white-space: nowrap !important;
}

#collection-list-container .combine-btn:not(:disabled) {
  background: var(--primary-color) !important;
  color: var(--ink) !important;
  cursor: pointer !important;
}

#collection-list-container .combine-btn:disabled {
  background: var(--bg-canvas) !important;
  color: var(--body-text) !important;
  cursor: not-allowed !important;
}

@media screen and (orientation: portrait), screen and (max-width: 760px) {
  #collection-list-container {
    width: 100% !important;
    gap: 10px !important;
    padding: 8px !important;
  }

  .collection-reward-row {
    grid-template-columns: minmax(0, 1fr) 42px auto;
    gap: 8px;
  }

  .collection-reward-icon {
    width: 42px;
    height: 42px;
  }

  .collection-reward-name {
    font-size: 0.76rem;
  }

  .collection-materials {
    grid-template-columns: repeat(auto-fill, minmax(58px, 1fr));
    gap: 6px;
  }

  .collection-material {
    padding: 6px 4px;
  }

  .collection-material-icon {
    width: 28px;
    height: 28px;
    flex-basis: 28px;
    margin-bottom: 4px;
  }

  .collection-material-icon img,
  .collection-material-icon svg {
    max-width: 28px !important;
    max-height: 28px !important;
  }

  .collection-material-icon > div {
    width: 28px !important;
    height: 28px !important;
    max-width: 28px !important;
    max-height: 28px !important;
  }

  .collection-material-name {
    font-size: 0.58rem;
  }

  .collection-material-count {
    font-size: 0.72rem;
  }
}

@media (orientation: landscape) and (max-height: 520px) {
  #game-screen .progress-section {
    margin-top: 12px !important;
    margin-bottom: 2px !important;
  }
}

/* Stage ready attempt count */
#stage-ready-screen .start-action {
  position: relative !important;
}

#stage-ready-screen .ready-attempts-pill {
  position: absolute !important;
  right: 8px !important;
  top: -24px !important;
  z-index: 3 !important;
  min-width: 42px !important;
  height: 32px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 12px !important;
  border: 2px solid rgba(38, 34, 26, 0.92) !important;
  border-radius: 999px !important;
  background: #fffdf0 !important;
  color: var(--ink) !important;
  box-shadow: 0 3px 0 rgba(38, 34, 26, 0.24) !important;
  pointer-events: none !important;
}

#stage-ready-screen .ready-attempts-pill::after {
  display: none !important;
  content: none !important;
}

#ready-attempts-count {
  font-size: 0.95rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

@media screen and (max-width: 900px), screen and (hover: none) and (pointer: coarse) {
  #stage-ready-screen .ready-attempts-pill {
    right: 7px !important;
    top: -22px !important;
    min-width: 38px !important;
    height: 30px !important;
    padding: 0 11px !important;
  }

  #ready-attempts-count {
    font-size: 0.92rem !important;
  }
}

/* Compact difficulty tabs */
.difficulty-tabs {
  gap: 3px !important;
  padding: 3px !important;
  margin-bottom: clamp(10px, 2vmin, 18px) !important;
  border-radius: 10px !important;
}

.difficulty-tabs .diff-tab {
  min-height: 32px !important;
  padding: 6px 16px !important;
  font-size: 0.86rem !important;
  line-height: 1 !important;
  border-radius: 8px !important;
}

@media screen and (max-width: 900px), screen and (hover: none) and (pointer: coarse) {
  .difficulty-tabs {
    gap: 2px !important;
    padding: 2px !important;
    margin-bottom: clamp(8px, 2.2vmin, 14px) !important;
  }

  .difficulty-tabs .diff-tab {
    min-height: 28px !important;
    padding: 5px 12px !important;
    font-size: 0.78rem !important;
  }
}

/* Portrait play area balance */
@media (orientation: portrait) {
  #game-screen {
    padding-top: max(8px, env(safe-area-inset-top)) !important;
    padding-bottom: max(10px, env(safe-area-inset-bottom)) !important;
  }

  #game-screen .main-play-area {
    flex: 1 1 100% !important;
    padding: 5px 8px 4px !important;
  }

  #game-screen .image-wrapper {
    gap: 4px !important;
  }

  #game-screen .find-indicators {
    padding: 6px 8px 4px !important;
  }

  #game-screen .progress-section {
    height: 8px !important;
    margin-top: 8px !important;
    margin-bottom: 0 !important;
    width: min(88%, 420px) !important;
  }

  #game-screen .bottom-hud {
    flex: 0 0 48px !important;
    min-height: 48px !important;
    padding: 4px 8px 8px !important;
    gap: 4px !important;
    align-items: center !important;
  }

  #game-screen .hud-right {
    gap: 5px !important;
  }

  #game-screen .item-btn {
    min-width: 48px !important;
    min-height: 40px !important;
    padding: 2px 5px !important;
    border-radius: 10px !important;
  }

  #game-screen .item-icon {
    width: 28px !important;
    height: 28px !important;
  }
}

@media (max-width: 430px) and (orientation: portrait) {
  #game-screen .bottom-hud {
    flex-basis: 48px !important;
    min-height: 48px !important;
    padding-bottom: 8px !important;
  }

  #game-screen .item-btn {
    min-height: 38px !important;
  }

  #game-screen .item-icon {
    width: 26px !important;
    height: 26px !important;
  }
}

/* Unified numeric count badges */
.item-btn .item-count,
.owned-count,
.buy-item-card .owned-count,
.inventory-item .count,
.count-badge,
.collection-material-count,
#daily-attempts-display {
  min-width: 24px !important;
  height: 24px !important;
  min-height: 24px !important;
  padding: 3px 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  color: var(--ink) !important;
  border: 2px solid var(--accent-sky) !important;
  box-shadow: none !important;
  font-size: 0.82rem !important;
  font-weight: 900 !important;
  font-family: var(--font-main) !important;
  line-height: 1 !important;
  text-align: center !important;
  white-space: nowrap !important;
  letter-spacing: 0 !important;
}

#stage-ready-screen .ready-attempts-pill {
  min-width: 38px !important;
  height: 30px !important;
  min-height: 30px !important;
  padding: 0 11px !important;
  background: #ffffff !important;
  color: var(--ink) !important;
  border: 2px solid var(--accent-sky) !important;
  box-shadow: none !important;
}

#stage-ready-screen .ready-footer .buy-item-card .owned-count {
  position: absolute !important;
  top: -6px !important;
  right: -6px !important;
  transform: none !important;
  margin: 0 !important;
}

#game-screen .item-btn .item-count {
  position: absolute !important;
  top: -6px !important;
  right: -6px !important;
  left: auto !important;
  transform: none !important;
  z-index: 10 !important;
}

@media (orientation: portrait) {
  .item-btn .item-count,
  .owned-count,
  .buy-item-card .owned-count,
  .inventory-item .count,
  .count-badge,
  .collection-material-count,
  #daily-attempts-display {
    min-width: 22px !important;
    height: 22px !important;
    min-height: 22px !important;
    padding: 2px 7px !important;
    font-size: 0.76rem !important;
  }
}

#ready-attempts-count {
  color: inherit !important;
  font-size: 0.92rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

.coin-icon {
  width: 1.15em !important;
  height: 1.15em !important;
  min-width: 1.15em !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  background: var(--primary-color) !important;
  border: 1px solid var(--primary-pressed) !important;
  color: var(--ink) !important;
  font-size: 1em !important;
  line-height: 1 !important;
  vertical-align: middle !important;
}

.coin-icon::before {
  content: "P" !important;
  font-size: 0.62em !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

/* Font-independent star icons and mobile viewport fit */
html,
body,
#game-container,
.screen {
  height: var(--app-height, 100dvh) !important;
  min-height: var(--app-height, 100dvh) !important;
}

.stars-overlay .star,
.stars-attain .star,
#effect-stars .star,
#game-screen .threshold-star {
  width: 1em !important;
  height: 1em !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: transparent !important;
  font-size: inherit !important;
  line-height: 1 !important;
  text-shadow: none !important;
}

.stars-overlay .star::before,
.stars-attain .star::before,
#effect-stars .star::before,
#game-screen .threshold-star::before,
#game-screen .star-marker .star-icon::before {
  content: "" !important;
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  background: rgba(160, 166, 176, 0.78) !important;
  clip-path: polygon(50% 3%, 61% 36%, 96% 36%, 68% 56%, 79% 91%, 50% 70%, 21% 91%, 32% 56%, 4% 36%, 39% 36%) !important;
}

.stars-overlay .star.filled::before,
.stars-attain .star.filled::before,
#effect-stars .star.filled::before {
  background: #ffb300 !important;
}

#game-screen .star-marker .star-icon {
  display: inline-flex !important;
  gap: 1px !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 0 !important;
}

#game-screen .star-marker .star-icon::before {
  display: none !important;
}

#game-screen .threshold-star {
  width: clamp(7px, 1.7vmin, 11px) !important;
  height: clamp(7px, 1.7vmin, 11px) !important;
}

#game-screen .threshold-star::before {
  background: #ffb300 !important;
}

@media (orientation: landscape) and (hover: none) and (pointer: coarse) {
  #game-screen {
    height: var(--app-height, 100dvh) !important;
  }

  #game-screen .find-indicators {
    padding: 2px 8px !important;
  }

  #game-screen .main-play-area {
    padding: 2px 6px !important;
  }

  #game-screen .image-wrapper {
    gap: 4px !important;
  }

  #game-screen .progress-section {
    width: min(86%, 760px) !important;
    height: 7px !important;
    margin-top: 7px !important;
    margin-bottom: 0 !important;
  }

  #game-screen .timer-bubble {
    height: 22px !important;
    min-height: 22px !important;
    padding: 2px 8px !important;
    font-size: 0.78rem !important;
  }

  #game-screen .bottom-hud {
    flex: 0 0 42px !important;
    min-height: 42px !important;
    padding: 1px 8px 2px !important;
  }

  #game-screen .item-btn {
    min-width: 46px !important;
    min-height: 36px !important;
    padding: 1px 5px !important;
  }

  #game-screen .item-icon {
    width: 26px !important;
    height: 26px !important;
  }
}

/* Gentle motion layer */
@keyframes appScreenIn {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.992);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes appPanelIn {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.98);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes appFadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

#game-container > .screen:not(.hidden) {
  animation: appScreenIn 180ms ease-out both;
}

#game-screen:not(.hidden) {
  animation-duration: 120ms;
}

.modal-overlay:not(.hidden),
#effect-overlay:not(.hidden) {
  animation: appFadeIn 160ms ease-out both;
}

.modal-overlay:not(.hidden) .modal-card,
#effect-overlay:not(.hidden) #effect-content:not(.hidden),
#install-banner {
  animation: appPanelIn 220ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.stage-card,
.collection-card,
.inventory-item,
.buy-item-card,
.item-btn,
.res-btn,
.menu-btn,
.buy-btn,
.combine-btn,
.diff-tab,
.slider-arrow {
  transition:
    transform 140ms ease,
    box-shadow 140ms ease,
    background-color 140ms ease,
    border-color 140ms ease,
    opacity 140ms ease !important;
}

.stage-card:active,
.collection-card:active,
.inventory-item:active,
.buy-item-card:active,
.item-btn:active,
.res-btn:active,
.menu-btn:active,
.buy-btn:active,
.combine-btn:active,
.diff-tab:active,
.slider-arrow:active {
  transform: translateY(1px) scale(0.985) !important;
}

.stage-card:not(.locked):hover,
.collection-card:hover,
.inventory-item:hover,
.buy-item-card:hover {
  transform: translateY(-2px) !important;
}

.effect-text-overlay {
  animation: appFadeIn 90ms ease-out both;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 1ms !important;
  }
}

/* Portrait gameplay HUD collision guard */
@media (orientation: portrait) {
  #game-screen {
    --portrait-hud-height: clamp(72px, 9.5dvh, 86px);
    --portrait-edge-x: max(10px, env(safe-area-inset-left));
    position: relative !important;
    padding-top: max(10px, env(safe-area-inset-top)) !important;
    padding-bottom: max(8px, env(safe-area-inset-bottom)) !important;
  }

  #game-screen .find-indicators {
    position: absolute !important;
    left: max(10px, env(safe-area-inset-left)) !important;
    bottom: calc(max(8px, env(safe-area-inset-bottom)) + 32px) !important;
    z-index: 25 !important;
    max-width: min(46vw, 184px) !important;
    padding: 0 !important;
    gap: 3px !important;
    justify-content: flex-start !important;
    pointer-events: none !important;
  }

  #game-screen .indicator {
    width: clamp(16px, 4.8vw, 23px) !important;
    height: clamp(16px, 4.8vw, 23px) !important;
    flex: 0 0 auto !important;
  }

  #game-screen .main-play-area {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    padding: 6px 8px 3px !important;
  }

  #game-screen .image-wrapper {
    gap: 5px !important;
  }

  #game-screen .progress-section {
    flex: 0 0 auto !important;
    width: min(82%, 390px) !important;
    height: 8px !important;
    margin: 6px auto calc(var(--portrait-hud-height) + 6px) !important;
  }

  #game-screen .timer-bubble {
    position: fixed !important;
    left: max(10px, env(safe-area-inset-left)) !important;
    right: auto !important;
    top: auto !important;
    bottom: max(8px, env(safe-area-inset-bottom)) !important;
    z-index: 26 !important;
    width: auto !important;
    min-width: 56px !important;
    height: 26px !important;
    min-height: 26px !important;
    padding: 2px 8px !important;
    transform: none !important;
    font-size: 0.82rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  #game-screen .bottom-hud {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 24 !important;
    height: var(--portrait-hud-height) !important;
    min-height: var(--portrait-hud-height) !important;
    flex: none !important;
    display: grid !important;
    grid-template-columns: minmax(112px, 1fr) auto !important;
    align-items: end !important;
    gap: 8px !important;
    padding: 8px max(10px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left)) !important;
    background: transparent !important;
  }

  #game-screen .hud-left,
  #game-screen .hud-center {
    display: none !important;
  }

  #game-screen .hud-right {
    grid-column: 2 !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-end !important;
    align-items: flex-end !important;
    gap: 6px !important;
    min-width: 0 !important;
  }

  #game-screen .item-btn {
    min-width: clamp(44px, 12vw, 54px) !important;
    min-height: 44px !important;
    height: 44px !important;
    padding: 2px 5px !important;
    border-radius: 10px !important;
  }

  #game-screen .item-icon {
    width: clamp(24px, 7vw, 30px) !important;
    height: clamp(24px, 7vw, 30px) !important;
  }

  #game-screen .item-btn .item-count {
    top: -7px !important;
    right: -7px !important;
    min-width: 21px !important;
    height: 21px !important;
    min-height: 21px !important;
    padding: 2px 6px !important;
    font-size: 0.72rem !important;
  }
}

@media (orientation: portrait) and (max-height: 700px) {
  #game-screen {
    --portrait-hud-height: 68px;
    padding-top: max(8px, env(safe-area-inset-top)) !important;
  }

  #game-screen .main-play-area {
    padding-top: 4px !important;
    padding-bottom: 2px !important;
  }

  #game-screen .progress-section {
    width: min(80%, 360px) !important;
    margin-top: 4px !important;
    margin-bottom: calc(var(--portrait-hud-height) + 4px) !important;
  }

  #game-screen .find-indicators {
    bottom: calc(max(7px, env(safe-area-inset-bottom)) + 29px) !important;
  }

  #game-screen .timer-bubble {
    height: 24px !important;
    min-height: 24px !important;
    min-width: 54px !important;
    font-size: 0.78rem !important;
  }

  #game-screen .item-btn {
    min-width: 42px !important;
    min-height: 41px !important;
    height: 41px !important;
  }

  #game-screen .item-icon {
    width: 25px !important;
    height: 25px !important;
  }
}

@media (orientation: portrait) and (max-height: 600px) {
  #game-screen {
    --portrait-hud-height: 62px;
  }

  #game-screen .progress-section {
    height: 7px !important;
    margin-top: 3px !important;
    margin-bottom: calc(var(--portrait-hud-height) + 3px) !important;
  }

  #game-screen .find-indicators {
    max-width: 44vw !important;
    bottom: calc(max(6px, env(safe-area-inset-bottom)) + 27px) !important;
  }

  #game-screen .indicator {
    width: clamp(14px, 4.4vw, 19px) !important;
    height: clamp(14px, 4.4vw, 19px) !important;
  }

  #game-screen .timer-bubble {
    height: 23px !important;
    min-height: 23px !important;
    min-width: 50px !important;
    padding-inline: 7px !important;
    font-size: 0.74rem !important;
  }

  #game-screen .item-btn {
    min-width: 39px !important;
    min-height: 38px !important;
    height: 38px !important;
    padding: 1px 4px !important;
  }

  #game-screen .item-icon {
    width: 23px !important;
    height: 23px !important;
  }
}

@media (orientation: portrait) and (max-width: 360px) {
  #game-screen .find-indicators {
    max-width: 42vw !important;
    gap: 2px !important;
  }

  #game-screen .bottom-hud {
    grid-template-columns: minmax(96px, 1fr) auto !important;
    padding-inline: 8px !important;
  }

  #game-screen .hud-right {
    gap: 4px !important;
  }

  #game-screen .item-btn {
    min-width: 38px !important;
  }
}

/* Portrait-first stage selection tuning */
@media screen and (orientation: portrait) {
  #portrait-warning {
    display: none !important;
  }

  #game-container {
    display: flex !important;
  }

  #stage-selection-screen {
    justify-content: flex-start !important;
    padding: max(6px, env(safe-area-inset-top)) 10px max(8px, env(safe-area-inset-bottom)) !important;
  }

  #stage-selection-screen .stage-main-area {
    position: relative !important;
    justify-content: center !important;
    gap: 0 !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    min-height: 0 !important;
  }

  #stage-selection-screen .difficulty-tabs {
    position: absolute !important;
    left: 50% !important;
    top: 25% !important;
    z-index: 5 !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    width: min(92vw, 360px) !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    transform: translate(-50%, -50%) !important;
  }

  #stage-selection-screen .difficulty-tabs .diff-tab {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    white-space: nowrap !important;
    padding-inline: clamp(8px, 3vw, 14px) !important;
  }

  #stage-selection-screen .stage-slider-container {
    position: absolute !important;
    left: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    align-items: center !important;
    flex: none !important;
    height: min(56vw, 270px) !important;
    max-height: none !important;
    min-height: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  #stage-selection-screen .stage-cards-wrapper {
    align-items: center !important;
    width: 100% !important;
    height: 100% !important;
  }

  #stage-selection-screen .stage-cards {
    gap: clamp(10px, 2.8vw, 18px) !important;
    --stage-card-slot-width: min(90vw, 440px);
    padding: 0 max(0px, calc((100% - var(--stage-card-slot-width)) / 2)) !important;
    align-items: center !important;
  }

  #stage-selection-screen .stage-card-item {
    width: var(--stage-card-slot-width) !important;
    align-items: center !important;
  }

  #stage-selection-screen .stage-card {
    width: calc(100% - clamp(14px, 4vw, 24px)) !important;
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
  }
}

@media screen and (orientation: landscape) {
  #stage-selection-screen .stage-main-area {
    justify-content: flex-start !important;
    margin-top: 0 !important;
    padding-top: clamp(8px, 2dvh, 18px) !important;
  }

  #stage-selection-screen .difficulty-tabs {
    margin-top: clamp(6px, 1.6dvh, 14px) !important;
    margin-bottom: clamp(8px, 2dvh, 16px) !important;
    transform: translateY(4px) !important;
  }

  #stage-selection-screen .stage-slider-container {
    max-height: none !important;
  }

  #stage-selection-screen .stage-cards {
    gap: clamp(28px, 4vw, 52px) !important;
    padding: 10px 54px !important;
  }

  #stage-selection-screen .stage-card-item {
    width: clamp(300px, 34vw, 460px) !important;
    align-items: center !important;
  }

  #stage-selection-screen .stage-card {
    width: calc(100% - clamp(12px, 2vw, 22px)) !important;
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
  }
}

/* Portrait stage-ready layout: image first, details below, actions lifted */
@media screen and (orientation: portrait) {
  #stage-ready-screen {
    padding:
      max(8px, env(safe-area-inset-top))
      12px
      max(28px, calc(env(safe-area-inset-bottom) + 22px)) !important;
    gap: 8px !important;
    overflow: hidden !important;
  }

  #stage-ready-screen .selection-header {
    flex: 0 0 auto !important;
    min-height: 42px !important;
    padding: 2px 4px !important;
  }

  #stage-ready-screen .ready-content {
    flex: 1 1 auto !important;
    width: 100% !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: clamp(8px, 1.6dvh, 12px) !important;
    padding: clamp(4px, 1dvh, 8px) 0 0 !important;
    overflow: hidden !important;
  }

  #stage-ready-screen .ready-main {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 520px !important;
    padding: 0 !important;
    align-items: flex-start !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  #stage-ready-screen .ready-image-container {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
    max-height: min(31dvh, 248px) !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  #stage-ready-screen .ready-side {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 520px !important;
  }

  #stage-ready-screen .ready-side .info-area {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  #stage-ready-screen .info-block {
    min-height: 54px !important;
    padding: 8px 10px !important;
  }

  #stage-ready-screen .info-block h3 {
    margin-bottom: 4px !important;
    font-size: 0.72rem !important;
    line-height: 1 !important;
  }

  #stage-ready-screen #ready-diff-display {
    font-size: 0.92rem !important;
    line-height: 1.15 !important;
  }

  #stage-ready-screen .stars-attain {
    gap: 4px !important;
    font-size: 1.05rem !important;
  }

  #stage-ready-screen .info-block:nth-child(3),
  #stage-ready-screen .reward-block {
    display: none !important;
  }

  #stage-ready-screen .ready-footer {
    flex: 0 0 auto !important;
    width: 100% !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 10px !important;
    padding: 6px 0 0 !important;
    margin-bottom: clamp(10px, 2.4dvh, 18px) !important;
    border-top: 0 !important;
    background: transparent !important;
  }

  #stage-ready-screen .ready-footer .item-shop-row {
    flex: 0 1 auto !important;
    display: flex !important;
    gap: 6px !important;
    align-items: flex-end !important;
    justify-content: flex-start !important;
  }

  #stage-ready-screen .ready-footer .buy-item-card {
    width: clamp(62px, 18vw, 74px) !important;
    min-width: clamp(62px, 18vw, 74px) !important;
    padding: 6px 5px !important;
  }

  #stage-ready-screen .ready-footer .buy-item-card .owned-count {
    min-width: 24px !important;
    width: auto !important;
    height: 24px !important;
    min-height: 24px !important;
    padding: 3px 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    color: var(--ink) !important;
    border: 2px solid var(--accent-sky) !important;
    box-shadow: none !important;
    font-size: 0.82rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
  }

  #stage-ready-screen .start-action {
    flex: 0 0 auto !important;
  }

  #stage-ready-screen .start-btn-large {
    width: clamp(132px, 38vw, 164px) !important;
    height: 50px !important;
    min-height: 50px !important;
  }
}

/* Portrait gameplay bottom-safe layout */
@media screen and (orientation: portrait) {
  #game-screen {
    --play-bottom-safe: max(28px, calc(env(safe-area-inset-bottom) + 24px));
    --portrait-hud-height: clamp(68px, 8.4dvh, 78px);
    padding-top: max(36px, calc(env(safe-area-inset-top) + 30px)) !important;
    padding-bottom: var(--play-bottom-safe) !important;
  }

  #game-screen .main-play-area {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    align-items: center !important;
    padding: 4px 8px 2px !important;
  }

  #game-screen .image-wrapper {
    height: 90% !important;
    max-height: 90% !important;
    align-self: center !important;
  }

  #game-screen .progress-section {
    width: min(82%, 390px) !important;
    height: 8px !important;
    margin: 4px auto calc(var(--portrait-hud-height) + var(--play-bottom-safe) + 2px) !important;
  }

  #game-screen .find-indicators {
    bottom: calc(var(--play-bottom-safe) + 31px) !important;
  }

  #game-screen .find-indicators .indicator,
  #game-screen .indicator {
    width: clamp(22px, 5.8vw, 28px) !important;
    height: clamp(22px, 5.8vw, 28px) !important;
    min-width: clamp(22px, 5.8vw, 28px) !important;
    min-height: clamp(22px, 5.8vw, 28px) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    color: var(--ink) !important;
    border: 2px solid var(--accent-sky) !important;
    box-shadow: none !important;
    font-size: 0.78rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
  }

  #game-screen .indicator.found {
    background: #ffffff !important;
    color: var(--accent-sky) !important;
    border-color: var(--accent-sky) !important;
  }

  #game-screen .timer-bubble {
    position: fixed !important;
    left: 50% !important;
    top: max(8px, calc(env(safe-area-inset-top) + 6px)) !important;
    right: auto !important;
    bottom: auto !important;
    transform: translateX(-50%) !important;
    z-index: 100 !important;
  }

  #game-screen .bottom-hud {
    bottom: var(--play-bottom-safe) !important;
    height: var(--portrait-hud-height) !important;
    min-height: var(--portrait-hud-height) !important;
    padding-bottom: 0 !important;
  }
}

@media screen and (orientation: portrait) and (max-height: 700px) {
  #game-screen {
    --play-bottom-safe: max(24px, calc(env(safe-area-inset-bottom) + 20px));
    --portrait-hud-height: 64px;
    padding-top: max(32px, calc(env(safe-area-inset-top) + 26px)) !important;
  }

  #game-screen .image-wrapper {
    height: 90% !important;
    max-height: 90% !important;
  }

  #game-screen .progress-section {
    margin-bottom: calc(var(--portrait-hud-height) + var(--play-bottom-safe) + 1px) !important;
  }
}

@media screen and (orientation: portrait) and (max-height: 600px) {
  #game-screen {
    --play-bottom-safe: max(20px, calc(env(safe-area-inset-bottom) + 16px));
    --portrait-hud-height: 58px;
    padding-top: max(28px, calc(env(safe-area-inset-top) + 22px)) !important;
  }
}

/* Difficulty tab transition */
.difficulty-tabs {
  position: relative;
}

.difficulty-tabs .diff-tab {
  will-change: transform, background-color, color;
}

.difficulty-tabs.diff-switching .diff-tab.active {
  animation: diffTabPop 220ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.difficulty-tabs.diff-switch-forward .diff-tab.active {
  animation-name: diffTabSlideInForward;
}

.difficulty-tabs.diff-switch-back .diff-tab.active {
  animation-name: diffTabSlideInBack;
}

@keyframes diffTabPop {
  0% {
    transform: scale(0.96);
  }

  100% {
    transform: scale(1);
  }
}

@keyframes diffTabSlideInForward {
  0% {
    transform: translateX(-10px) scale(0.96);
    opacity: 0.72;
  }

  100% {
    transform: translateX(0) scale(1);
    opacity: 1;
  }
}

@keyframes diffTabSlideInBack {
  0% {
    transform: translateX(10px) scale(0.96);
    opacity: 0.72;
  }

  100% {
    transform: translateX(0) scale(1);
    opacity: 1;
  }
}

/* Landscape gameplay bottom-safe layout */
@media screen and (orientation: landscape) {
  #game-screen {
    --landscape-bottom-safe: max(18px, calc(env(safe-area-inset-bottom) + 14px));
    --landscape-hud-height: clamp(40px, 9.5dvh, 56px);
    position: relative !important;
    padding-top: max(8px, env(safe-area-inset-top)) !important;
    padding-bottom: var(--landscape-bottom-safe) !important;
  }

  #game-screen .main-play-area {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    align-items: flex-start !important;
    padding: 4px 8px 1px !important;
  }

  #game-screen .image-wrapper {
    height: 90% !important;
    max-height: 90% !important;
    align-self: flex-start !important;
  }

  #game-screen .find-indicators {
    position: absolute !important;
    left: max(10px, env(safe-area-inset-left)) !important;
    right: auto !important;
    bottom: calc(var(--landscape-bottom-safe) + 8px) !important;
    z-index: 28 !important;
    padding: 0 !important;
    justify-content: flex-start !important;
    pointer-events: none !important;
  }

  #game-screen .find-indicators .indicator,
  #game-screen .indicator {
    width: clamp(20px, 4.6dvh, 26px) !important;
    height: clamp(20px, 4.6dvh, 26px) !important;
    min-width: clamp(20px, 4.6dvh, 26px) !important;
    min-height: clamp(20px, 4.6dvh, 26px) !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    color: var(--ink) !important;
    border: 2px solid var(--accent-sky) !important;
    font-size: 0.72rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
  }

  #game-screen .progress-section {
    width: min(76%, 760px) !important;
    height: 7px !important;
    margin: 2px auto calc(var(--landscape-hud-height) + var(--landscape-bottom-safe) + 2px) !important;
  }

  #game-screen .bottom-hud {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: var(--landscape-bottom-safe) !important;
    height: var(--landscape-hud-height) !important;
    min-height: var(--landscape-hud-height) !important;
    padding: 0 max(10px, env(safe-area-inset-right)) 0 max(10px, env(safe-area-inset-left)) !important;
    align-items: flex-end !important;
    background: transparent !important;
  }

  #game-screen .hud-left,
  #game-screen .hud-center {
    display: none !important;
  }

  #game-screen .hud-right {
    justify-content: flex-end !important;
    align-items: flex-end !important;
    gap: 6px !important;
  }

  #game-screen .item-btn {
    min-width: 44px !important;
    min-height: 36px !important;
    height: 36px !important;
    padding: 1px 5px !important;
  }

  #game-screen .item-icon {
    width: 26px !important;
    height: 26px !important;
  }
}

@media screen and (orientation: landscape) and (max-height: 520px) {
  #game-screen {
    --landscape-bottom-safe: max(14px, calc(env(safe-area-inset-bottom) + 10px));
    --landscape-hud-height: 42px;
  }

  #game-screen .progress-section {
    margin-bottom: calc(var(--landscape-hud-height) + var(--landscape-bottom-safe) + 1px) !important;
  }
}

/* Landscape stage-ready: large image left, controls right */
@media screen and (orientation: landscape) {
  #stage-ready-screen {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(230px, 30vw) !important;
    grid-template-rows: 44px minmax(0, 1fr) !important;
    column-gap: clamp(14px, 2.4vw, 28px) !important;
    row-gap: clamp(6px, 1.4dvh, 12px) !important;
    padding: max(8px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left)) !important;
    overflow: hidden !important;
  }

  #stage-ready-screen .selection-header {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    padding: 0 !important;
  }

  #stage-ready-screen .ready-content {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    display: contents !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #stage-ready-screen .ready-main {
    grid-column: 1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: clamp(10px, 2.6dvh, 18px) 0 clamp(12px, 3dvh, 22px) !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    align-items: center !important;
    justify-content: center !important;
  }

  #stage-ready-screen .ready-image-container {
    width: 100% !important;
    height: 88% !important;
    max-height: calc(100dvh - 124px) !important;
    aspect-ratio: 16 / 9 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  #stage-ready-screen .ready-side {
    grid-column: 2 !important;
    grid-row: 2 !important;
    align-self: start !important;
    width: 100% !important;
    min-width: 0 !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    padding-top: clamp(10px, 2dvh, 16px) !important;
    padding-bottom: clamp(118px, 28dvh, 176px) !important;
  }

  #stage-ready-screen .ready-side .info-area {
    width: 100% !important;
    max-width: none !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: clamp(6px, 1.3dvh, 10px) !important;
  }

  #stage-ready-screen .ready-side .info-block:first-child,
  #stage-ready-screen .ready-side .info-block:nth-child(2) {
    grid-column: auto !important;
  }

  #stage-ready-screen .info-block {
    min-height: clamp(52px, 13dvh, 72px) !important;
    padding: clamp(8px, 1.5dvh, 12px) !important;
  }

  #stage-ready-screen .reward-block,
  #stage-ready-screen .ready-side .info-block:nth-child(3) {
    display: none !important;
  }

  #stage-ready-screen .ready-footer {
    grid-column: 2 !important;
    grid-row: 2 !important;
    align-self: end !important;
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: clamp(8px, 1.8dvh, 12px) !important;
    padding: 0 !important;
    margin: clamp(10px, 2dvh, 16px) 0 clamp(10px, 2dvh, 16px) !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  #stage-ready-screen .ready-footer .item-shop-row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
  }

  #stage-ready-screen .ready-footer .buy-item-card {
    width: 100% !important;
    min-width: 0 !important;
    padding: 8px 6px !important;
  }

  #stage-ready-screen .start-action {
    width: 100% !important;
  }

  #stage-ready-screen .start-btn-large {
    width: 100% !important;
    height: clamp(44px, 10dvh, 56px) !important;
    min-height: clamp(44px, 10dvh, 56px) !important;
  }
}

@media screen and (orientation: landscape) and (max-height: 520px) {
  #stage-ready-screen {
    grid-template-columns: minmax(0, 1fr) minmax(214px, 28vw) !important;
  }

  #stage-ready-screen .ready-content {
    grid-template-columns: minmax(0, 1fr) minmax(214px, 28vw) !important;
  }

  #stage-ready-screen .ready-image-container {
    max-height: calc(100dvh - 96px) !important;
  }

  #stage-ready-screen .info-block {
    min-height: 46px !important;
    padding: 6px !important;
  }
}

/* Landscape collection reward header alignment */
@media screen and (orientation: landscape) {
  .collection-reward-row {
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    justify-items: start !important;
  }

  .collection-reward-icon {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 46px !important;
    height: 46px !important;
  }

  .collection-reward-name {
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-self: center !important;
    text-align: left !important;
  }

  #collection-list-container .combine-btn {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
  }
}

/* Landscape roulette scale */
@media screen and (orientation: landscape) {
  #roulette-screen > div {
    flex-direction: row !important;
    justify-content: center !important;
    align-items: center !important;
    gap: clamp(28px, 7vw, 96px) !important;
    width: min(92vw, 980px) !important;
    margin: 0 auto !important;
  }

  #roulette-screen > div > div {
    margin-bottom: 0 !important;
    flex: 0 0 auto !important;
  }

  #roulette-wheel {
    width: clamp(210px, 38dvh, 360px) !important;
    height: clamp(210px, 38dvh, 360px) !important;
    font-size: inherit !important;
  }

  #roulette-wheel img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
  }

  #spin-roulette-btn {
    flex: 0 0 auto !important;
    margin-top: 0 !important;
    min-width: clamp(150px, 18vw, 220px) !important;
    height: clamp(48px, 10dvh, 64px) !important;
  }
}

/* Roulette bottom safe padding */
#roulette-screen {
  padding-bottom: max(18px, calc(env(safe-area-inset-bottom) + 14px)) !important;
}

@media screen and (orientation: landscape) {
  #roulette-screen {
    padding-bottom: max(50px, calc(env(safe-area-inset-bottom) + 46px)) !important;
  }
}

#spin-roulette-btn {
  font-size: clamp(1.2rem, 3.2vmin, 1.45rem) !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

/* Stage detail attainment stars spacing */
#stage-ready-screen #attain-stars,
#stage-ready-screen .stars-attain {
  gap: 1px !important;
}

/* Stage detail owned item count badges */
#stage-ready-screen .buy-item-card .owned-count:has(#ready-hint-count),
#stage-ready-screen .buy-item-card .owned-count:has(#ready-time-count) {
  min-width: 24px !important;
  width: auto !important;
  height: 24px !important;
  min-height: 24px !important;
  padding: 3px 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  color: var(--ink) !important;
  border: 2px solid var(--accent-sky) !important;
  box-shadow: none !important;
  font-size: 0.82rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  text-align: center !important;
  white-space: nowrap !important;
}

#stage-ready-screen #ready-hint-count,
#stage-ready-screen #ready-time-count {
  color: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}

/* Stage detail owned item icons */
#stage-ready-screen .ready-footer .item-icon-box {
  width: clamp(38px, 8.6vw, 48px) !important;
  height: clamp(38px, 8.6vw, 48px) !important;
}

#stage-ready-screen .ready-footer .item-icon-box img {
  width: 82% !important;
  height: 82% !important;
  object-fit: contain !important;
}

@media screen and (orientation: landscape) {
  #stage-ready-screen .ready-footer .item-icon-box {
    width: clamp(34px, 7.6dvh, 44px) !important;
    height: clamp(34px, 7.6dvh, 44px) !important;
  }
}

/* Keep item icon containers square across pages */
.item-icon,
.item-icon-box,
.inventory-item .icon,
.collection-material-icon,
.collection-reward-icon,
#stage-ready-screen .ready-footer .item-icon-box,
#game-screen .item-icon {
  aspect-ratio: 1 / 1 !important;
  flex: 0 0 auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
}

.item-icon img,
.item-icon-box img,
.inventory-item .icon img,
.collection-material-icon img,
.collection-material-icon svg,
.collection-reward-icon img,
#stage-ready-screen .ready-footer .item-icon-box img,
#game-screen .item-icon img {
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
}

#stage-ready-screen .ready-footer .item-icon-box {
  width: var(--ready-item-icon-size, clamp(38px, 8.6vw, 48px)) !important;
  height: var(--ready-item-icon-size, clamp(38px, 8.6vw, 48px)) !important;
}

#game-screen .item-icon {
  width: var(--game-item-icon-size, clamp(24px, 7vw, 30px)) !important;
  height: var(--game-item-icon-size, clamp(24px, 7vw, 30px)) !important;
}

@media screen and (orientation: landscape) {
  #stage-ready-screen .ready-footer .item-icon-box {
    --ready-item-icon-size: clamp(34px, 7.6dvh, 44px);
  }

  #game-screen .item-icon {
    --game-item-icon-size: 26px;
  }
}

/* Landscape debug/test buttons at the bottom */
@media screen and (orientation: landscape) {
  #debug-panel {
    top: auto !important;
    left: 50% !important;
    right: auto !important;
    bottom: max(8px, env(safe-area-inset-bottom)) !important;
    transform: translateX(-50%) scale(0.86) !important;
    transform-origin: bottom center !important;
    max-width: calc(100vw - 24px) !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    opacity: 0.35 !important;
  }

  #debug-panel:hover {
    opacity: 1 !important;
  }
}

/* Stage detail difficulty/attainment cards */
#stage-ready-screen .ready-side .info-block:first-child,
#stage-ready-screen .ready-side .info-block:nth-child(2) {
  position: relative !important;
  overflow: hidden !important;
  background: linear-gradient(180deg, #ffffff 0%, rgba(144, 216, 255, 0.14) 100%) !important;
  border: 2px solid rgba(144, 216, 255, 0.82) !important;
  box-shadow: 0 4px 0 rgba(144, 216, 255, 0.22) !important;
}

#stage-ready-screen .ready-side .info-block:first-child::before,
#stage-ready-screen .ready-side .info-block:nth-child(2)::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 4px !important;
  background: var(--accent-sky) !important;
  opacity: 0.85 !important;
}

#stage-ready-screen .ready-side .info-block:first-child h3,
#stage-ready-screen .ready-side .info-block:nth-child(2) h3 {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 20px !important;
  padding: 3px 8px !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  border: 1.5px solid var(--accent-sky) !important;
  color: var(--ink) !important;
  font-size: 0.68rem !important;
  font-weight: 900 !important;
}

#stage-ready-screen #ready-diff-display {
  color: var(--ink) !important;
  font-weight: 900 !important;
}

#stage-ready-screen #attain-stars {
  transform: translateY(1px) !important;
}

/* Portrait stage detail difficulty/attainment compact pair */
@media screen and (orientation: portrait) {
  #stage-ready-screen .ready-side {
    align-items: center !important;
  }

  #stage-ready-screen .ready-side .info-area {
    width: min(100%, 340px) !important;
    max-width: 340px !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    justify-content: stretch !important;
    gap: 6px !important;
  }

  #stage-ready-screen .ready-side .info-block:first-child,
  #stage-ready-screen .ready-side .info-block:nth-child(2) {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 58px !important;
    padding: 8px 9px !important;
  }

  #stage-ready-screen .ready-side .info-block:first-child {
    grid-column: 1 !important;
  }

  #stage-ready-screen .ready-side .info-block:nth-child(2) {
    grid-column: 2 !important;
  }
}

/* Stage detail owned item cards should not stretch in landscape */
@media screen and (orientation: landscape) {
  #stage-ready-screen .ready-footer .item-shop-row {
    grid-template-columns: repeat(2, max-content) !important;
    justify-content: start !important;
    align-items: start !important;
    width: auto !important;
  }

  #stage-ready-screen .ready-footer .buy-item-card {
    width: clamp(72px, 15dvh, 92px) !important;
    min-width: clamp(72px, 15dvh, 92px) !important;
    max-width: clamp(72px, 15dvh, 92px) !important;
    aspect-ratio: 1 / 1 !important;
    align-items: center !important;
    justify-content: center !important;
  }
}

/* Stage detail screen breathing room */
@media screen and (orientation: portrait) {
  #stage-ready-screen {
    padding-top: max(8px, env(safe-area-inset-top)) !important;
    padding-bottom: max(5dvh, calc(env(safe-area-inset-bottom) + 22px)) !important;
  }
}

@media screen and (orientation: landscape) {
  #stage-ready-screen {
    padding-top: max(8px, env(safe-area-inset-top)) !important;
    padding-bottom: max(5dvh, calc(env(safe-area-inset-bottom) + 12px)) !important;
  }
}

/* Stage detail representative image top gap */
@media screen and (orientation: portrait) {
  #stage-ready-screen .ready-image-container {
    margin-top: clamp(8px, 1.8dvh, 14px) !important;
  }
}

@media screen and (orientation: landscape) {
  #stage-ready-screen .ready-image-container {
    margin-top: clamp(4px, 1dvh, 8px) !important;
  }
}

/* Dynamic motion polish */
@keyframes softPopIn {
  0% {
    opacity: 0;
    transform: translateY(14px) scale(0.94);
  }

  62% {
    opacity: 1;
    transform: translateY(-2px) scale(1.025);
  }

  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes stageCardCascade {
  0% {
    opacity: 0;
    transform: translateY(18px) scale(0.92) rotate(-1deg);
  }

  70% {
    opacity: 1;
    transform: translateY(-3px) scale(1.02) rotate(0.25deg);
  }

  100% {
    opacity: 1;
    transform: translateY(0) scale(1) rotate(0);
  }
}

@keyframes selectedStagePulse {
  0%,
  100% {
    filter: brightness(1);
  }

  50% {
    filter: brightness(1.08);
  }
}

@keyframes readyImageEnter {
  0% {
    opacity: 0;
    transform: translateY(12px) scale(0.965);
    filter: saturate(0.9);
  }

  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: saturate(1);
  }
}

@keyframes ctaBreath {
  0%,
  100% {
    transform: translateY(0) scale(1);
  }

  50% {
    transform: translateY(-1px) scale(1.018);
  }
}

@keyframes foundIndicatorPop {
  0% {
    transform: scale(0.72) rotate(-12deg);
  }

  52% {
    transform: scale(1.24) rotate(6deg);
  }

  100% {
    transform: scale(1) rotate(0);
  }
}

@keyframes rewardIconPop {
  0% {
    opacity: 0;
    transform: translateY(10px) scale(0.72) rotate(-8deg);
  }

  65% {
    opacity: 1;
    transform: translateY(-4px) scale(1.12) rotate(4deg);
  }

  100% {
    opacity: 1;
    transform: translateY(0) scale(1) rotate(0);
  }
}

@keyframes boxIdleBounce {
  0%,
  100% {
    transform: translateY(0) rotate(0);
  }

  50% {
    transform: translateY(-5px) rotate(-1.4deg);
  }
}

@keyframes pointBadgeTick {
  0%,
  100% {
    transform: translateY(0) scale(1);
  }

  50% {
    transform: translateY(-1px) scale(1.04);
  }
}

#stage-selection-screen:not(.hidden) .stage-card-item {
  animation: stageCardCascade 340ms cubic-bezier(0.18, 0.9, 0.22, 1.12) both;
}

#stage-selection-screen:not(.hidden) .stage-card-item:nth-child(2) {
  animation-delay: 35ms;
}

#stage-selection-screen:not(.hidden) .stage-card-item:nth-child(3) {
  animation-delay: 70ms;
}

#stage-selection-screen:not(.hidden) .stage-card-item:nth-child(4) {
  animation-delay: 105ms;
}

#stage-selection-screen:not(.hidden) .stage-card-item:nth-child(5) {
  animation-delay: 140ms;
}

.stage-card.selected {
  animation: selectedStagePulse 880ms ease-out 1;
}

#stage-ready-screen:not(.hidden) .ready-image-container {
  animation: readyImageEnter 260ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

#stage-ready-screen:not(.hidden) .ready-side .info-block:first-child {
  animation: softPopIn 220ms cubic-bezier(0.2, 0.8, 0.2, 1) 70ms both;
}

#stage-ready-screen:not(.hidden) .ready-side .info-block:nth-child(2) {
  animation: softPopIn 220ms cubic-bezier(0.2, 0.8, 0.2, 1) 105ms both;
}

#stage-ready-screen:not(.hidden) .ready-footer {
  animation: softPopIn 240ms cubic-bezier(0.2, 0.8, 0.2, 1) 135ms both;
}

#stage-ready-screen .start-btn-large,
#spin-roulette-btn {
  animation: ctaBreath 2.6s ease-in-out infinite;
}

#stage-ready-screen .start-btn-large:active,
#spin-roulette-btn:active {
  animation: none;
}

#game-screen:not(.hidden) .timer-bubble,
#game-screen:not(.hidden) .progress-section,
#game-screen:not(.hidden) .bottom-hud {
  animation: softPopIn 220ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

#game-screen .indicator.just-found,
#game-screen .indicator.found.just-found {
  animation: foundIndicatorPop 520ms cubic-bezier(0.18, 0.9, 0.22, 1.25) both;
}

#game-screen .item-btn:not(:disabled):hover .item-icon,
#game-screen .item-btn:not(:disabled):active .item-icon {
  transform: scale(1.08) rotate(-3deg);
  transition: transform 140ms ease !important;
}

#roulette-screen:not(.hidden) #roulette-wheel:not(.shake-anim) {
  animation: boxIdleBounce 2.2s ease-in-out infinite;
}

#reward-modal:not(.hidden) #reward-icon-container {
  animation: rewardIconPop 360ms cubic-bezier(0.18, 0.9, 0.22, 1.18) 80ms both;
}

#global-top-bar .hud-pill,
#stage-ready-screen .ready-attempts-pill,
#roulette-point-display {
  animation: pointBadgeTick 2.8s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  #stage-ready-screen .start-btn-large,
  #spin-roulette-btn,
  #roulette-screen:not(.hidden) #roulette-wheel:not(.shake-anim),
  #global-top-bar .hud-pill,
  #stage-ready-screen .ready-attempts-pill,
  #roulette-point-display {
    animation: none !important;
  }
}

/* Treasure box theme inspired by assets/resources/ui/box_close.webp */
:root {
  --primary-color: #ffc83d;
  --primary-pressed: #f39a19;
  --on-primary: #27170a;
  --primary-container: #ffe8a7;
  --on-primary-container: #2d1a08;
  --bg-canvas: #fff3c8;
  --bg-canvas-deep: #ffe6a3;
  --ink: #171820;
  --body-text: #343348;
  --surface-card: #fffaf0;
  --surface-soft: #ffe9b8;
  --border-hairline: #171820;
  --treasure-navy: #102947;
  --treasure-navy-2: #193b63;
  --treasure-gold: #ffc83d;
  --treasure-gold-dark: #e48a17;
  --treasure-red: #ff3f34;
  --treasure-sky: #45c9ff;
  --treasure-star: #fff06b;
  --accent-pink: #ff6f9f;
  --accent-mint: #72e5bd;
  --accent-sky: #45c9ff;
  --accent-lavender: #b6a6ff;
  --accent-coral: #ff8c5e;
}

body,
#game-container,
.screen {
  background:
    radial-gradient(circle at 14% 13%, rgba(69, 201, 255, 0.2) 0 9%, transparent 10%),
    radial-gradient(circle at 84% 11%, rgba(255, 63, 52, 0.12) 0 8%, transparent 9%),
    linear-gradient(180deg, #fff8dd 0%, var(--bg-canvas) 46%, #ffefbd 100%) !important;
  color: var(--body-text) !important;
}

#game-container::after {
  content: "" !important;
  position: fixed !important;
  inset: 0 !important;
  pointer-events: none !important;
  z-index: 1 !important;
  background:
    radial-gradient(circle at 9% 22%, var(--treasure-star) 0 3px, transparent 4px),
    radial-gradient(circle at 91% 24%, var(--treasure-sky) 0 3px, transparent 4px),
    radial-gradient(circle at 83% 82%, rgba(255, 240, 107, 0.85) 0 3px, transparent 4px),
    radial-gradient(circle at 17% 78%, rgba(69, 201, 255, 0.65) 0 2px, transparent 3px);
  opacity: 0.42 !important;
}

#game-container > * {
  position: relative;
  z-index: 2;
}

.res-btn,
.footer-btn.primary,
.start-btn-large,
#spin-roulette-btn,
.buy-btn,
.combine-btn {
  background: linear-gradient(180deg, #ffe781 0%, var(--treasure-gold) 52%, var(--primary-pressed) 100%) !important;
  color: var(--on-primary) !important;
  border: 2.5px solid var(--ink) !important;
  border-radius: 10px !important;
  box-shadow:
    0 4px 0 var(--treasure-gold-dark),
    0 8px 0 rgba(23, 24, 32, 0.14) !important;
  font-weight: 900 !important;
}

.res-btn:hover,
.footer-btn.primary:hover,
.start-btn-large:hover,
#spin-roulette-btn:hover,
.buy-btn:hover,
.combine-btn:hover {
  filter: saturate(1.08) brightness(1.02) !important;
  box-shadow:
    0 5px 0 var(--treasure-gold-dark),
    0 10px 0 rgba(23, 24, 32, 0.14) !important;
}

.res-btn:active,
.footer-btn.primary:active,
.start-btn-large:active,
#spin-roulette-btn:active,
.buy-btn:active,
.combine-btn:active {
  transform: translateY(3px) scale(0.985) !important;
  box-shadow:
    0 1px 0 var(--treasure-gold-dark),
    0 4px 0 rgba(23, 24, 32, 0.14) !important;
}

.res-btn.secondary,
.res-btn-secondary,
.footer-btn,
.menu-btn,
.slider-arrow {
  background: #fffaf0 !important;
  color: var(--ink) !important;
  border: 2px solid var(--ink) !important;
  border-radius: 10px !important;
  box-shadow: 0 3px 0 rgba(23, 24, 32, 0.18) !important;
  font-weight: 900 !important;
}

.menu-btn.active,
.diff-tab.active {
  background: linear-gradient(180deg, var(--treasure-navy-2), var(--treasure-navy)) !important;
  color: #fff7c7 !important;
  border-color: var(--ink) !important;
  box-shadow:
    inset 0 0 0 2px rgba(255, 200, 61, 0.55),
    0 3px 0 rgba(23, 24, 32, 0.24) !important;
}

.hud-pill,
.ready-attempts-pill,
.timer-bubble,
.item-btn .item-count,
.buy-item-card .owned-count,
#stage-ready-screen .buy-item-card .owned-count:has(#ready-hint-count),
#stage-ready-screen .buy-item-card .owned-count:has(#ready-time-count) {
  background: #fffaf0 !important;
  color: var(--ink) !important;
  border: 2px solid var(--treasure-sky) !important;
  border-radius: 999px !important;
  box-shadow:
    0 0 0 2px #ffffff,
    0 3px 0 rgba(23, 24, 32, 0.12) !important;
  font-weight: 900 !important;
}

.stage-card,
.info-block,
.buy-item-card,
.collection-card,
.inventory-item,
.modal-card,
.nfc-tag-card {
  background:
    linear-gradient(#fffaf0, #fffaf0) padding-box,
    linear-gradient(180deg, var(--treasure-gold), var(--treasure-gold-dark)) border-box !important;
  border: 3px solid transparent !important;
  border-radius: 12px !important;
  box-shadow:
    0 5px 0 rgba(23, 24, 32, 0.24),
    0 12px 20px rgba(16, 41, 71, 0.12) !important;
  color: var(--ink) !important;
}

.stage-card::before,
.info-block::before,
.buy-item-card::before,
.collection-card::before {
  border-radius: inherit !important;
}

.stage-card:hover,
.stage-card.selected,
.collection-card:hover,
.inventory-item:hover,
.buy-item-card:hover {
  border-color: transparent !important;
  box-shadow:
    0 6px 0 rgba(23, 24, 32, 0.28),
    0 0 0 4px rgba(69, 201, 255, 0.34),
    0 14px 24px rgba(16, 41, 71, 0.16) !important;
}

.stage-card.selected {
  background:
    linear-gradient(#fffaf0, #fffaf0) padding-box,
    linear-gradient(180deg, var(--treasure-sky), var(--treasure-gold)) border-box !important;
}

.stage-card .match-badge,
.stage-card .stars-overlay,
.stage-card .stage-number-badge,
.diff-count-badge {
  background: linear-gradient(180deg, var(--treasure-navy-2), var(--treasure-navy)) !important;
  color: #fff6b5 !important;
  border: 2px solid var(--ink) !important;
  box-shadow: 0 2px 0 rgba(23, 24, 32, 0.25) !important;
}

.stage-card .star.filled,
.threshold-star,
#attain-stars .star,
.stars-attain .star {
  color: var(--treasure-star) !important;
  text-shadow: 0 2px 0 var(--ink), 0 0 8px rgba(255, 240, 107, 0.65) !important;
}

#stage-selection-screen .difficulty-tabs,
#global-top-bar,
.top-menu {
  background: rgba(255, 250, 240, 0.92) !important;
  border: 2px solid var(--ink) !important;
  box-shadow: 0 4px 0 rgba(23, 24, 32, 0.18) !important;
}

.diff-tab {
  background: #fffaf0 !important;
  color: var(--ink) !important;
  border: 2px solid transparent !important;
  font-weight: 900 !important;
}

.ready-image-container,
#game-screen .image-wrapper,
#game-screen .canvas-container {
  background: linear-gradient(180deg, #fffaf0, #ffeab0) !important;
  border: 3px solid var(--ink) !important;
  border-radius: 12px !important;
  box-shadow:
    0 5px 0 rgba(23, 24, 32, 0.22),
    inset 0 0 0 3px rgba(255, 200, 61, 0.45) !important;
}

#stage-ready-screen .ready-image-container,
#stage-ready-screen .ready-image-container img {
  border: 0 !important;
}

#stage-ready-screen .ready-side .info-block:first-child,
#stage-ready-screen .ready-side .info-block:nth-child(2) {
  background:
    linear-gradient(180deg, var(--treasure-navy-2), var(--treasure-navy)) padding-box,
    linear-gradient(180deg, var(--treasure-gold), var(--treasure-gold-dark)) border-box !important;
  color: #fff7c7 !important;
  border: 3px solid transparent !important;
}

#stage-ready-screen .ready-side .info-block:first-child h3,
#stage-ready-screen .ready-side .info-block:nth-child(2) h3 {
  background: var(--treasure-gold) !important;
  color: var(--ink) !important;
  border: 2px solid var(--ink) !important;
}

#stage-ready-screen #ready-diff-display,
#stage-ready-screen #attain-stars {
  color: #fff7c7 !important;
}

#game-screen .progress-container,
#game-screen .progress-shell,
.progress-container,
.progress-shell {
  background: #fffaf0 !important;
  border: 2px solid var(--ink) !important;
  box-shadow: inset 0 2px 0 rgba(16, 41, 71, 0.16), 0 3px 0 rgba(23, 24, 32, 0.13) !important;
}

#game-screen .progress-bar,
.progress-bar {
  background: linear-gradient(90deg, var(--treasure-red), var(--treasure-gold), var(--treasure-sky)) !important;
  box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.35) !important;
}

#roulette-wheel {
  filter:
    drop-shadow(0 7px 0 rgba(23, 24, 32, 0.22))
    drop-shadow(0 16px 18px rgba(16, 41, 71, 0.18)) !important;
}

#reward-modal .modal-card {
  background:
    linear-gradient(#fffaf0, #fffaf0) padding-box,
    linear-gradient(180deg, var(--treasure-gold), var(--treasure-sky)) border-box !important;
}

#debug-panel {
  background: rgba(16, 41, 71, 0.82) !important;
  border: 2px solid var(--treasure-gold) !important;
}
/* Stage list menu/tabs container alignment */
#stage-selection-screen #global-top-bar,
#stage-selection-screen #global-top-bar.stage-sel-header,
#stage-selection-screen #global-top-bar.selection-header {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

#stage-selection-screen #global-top-bar .top-menu,
#stage-selection-screen .difficulty-tabs {
  border: 2px solid var(--treasure-sky) !important;
  border-radius: 999px !important;
  padding: 4px 7px !important;
  gap: 5px !important;
  background: rgba(255, 250, 240, 0.92) !important;
  box-shadow:
    0 0 0 2px #ffffff,
    0 3px 0 rgba(23, 24, 32, 0.12) !important;
  overflow: hidden !important;
}

#stage-selection-screen #global-top-bar .menu-btn,
#stage-selection-screen .difficulty-tabs .diff-tab {
  border-radius: 999px !important;
  min-height: 32px !important;
  border-width: 0 !important;
  box-shadow: none !important;
}

#stage-selection-screen #global-top-bar .menu-btn.active,
#stage-selection-screen .difficulty-tabs .diff-tab.active {
  border-radius: 999px !important;
  box-shadow:
    inset 0 0 0 2px rgba(255, 200, 61, 0.55),
    0 2px 0 rgba(23, 24, 32, 0.18) !important;
}

@media screen and (orientation: portrait) {
  #stage-selection-screen #global-top-bar .top-menu,
  #stage-selection-screen .difficulty-tabs {
    padding-inline: 8px !important;
  }
}
/* Stage top menu button pill fix */
#global-top-bar .top-menu .menu-btn,
#stage-selection-screen #global-top-bar .top-menu .menu-btn,
#stage-selection-screen #global-top-bar.stage-sel-header .top-menu .menu-btn {
  border-radius: 999px !important;
  overflow: hidden !important;
  padding-inline: 13px !important;
}

#global-top-bar .top-menu .menu-btn.active,
#stage-selection-screen #global-top-bar .top-menu .menu-btn.active,
#stage-selection-screen #global-top-bar.stage-sel-header .top-menu .menu-btn.active {
  border-radius: 999px !important;
}
/* Stage top menu outer padding fix */
#global-top-bar .top-menu,
#stage-selection-screen #global-top-bar .top-menu,
#stage-selection-screen #global-top-bar.stage-sel-header .top-menu {
  padding-left: 12px !important;
  padding-right: 12px !important;
}

@media screen and (orientation: portrait) {
  #global-top-bar .top-menu,
  #stage-selection-screen #global-top-bar .top-menu,
  #stage-selection-screen #global-top-bar.stage-sel-header .top-menu {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
}
/* Stage top menu button gap fix */
#global-top-bar .top-menu,
#stage-selection-screen #global-top-bar .top-menu,
#stage-selection-screen #global-top-bar.stage-sel-header .top-menu {
  gap: clamp(6px, 1.1vw, 10px) !important;
  column-gap: clamp(6px, 1.1vw, 10px) !important;
}

@media screen and (orientation: portrait) {
  #global-top-bar .top-menu,
  #stage-selection-screen #global-top-bar .top-menu,
  #stage-selection-screen #global-top-bar.stage-sel-header .top-menu {
    gap: 7px !important;
    column-gap: 7px !important;
  }
}
/* Stage ready header/detail fixes */
#stage-ready-screen .selection-header {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

#stage-ready-screen #back-to-selection,
#stage-ready-screen #back-to-selection.slider-arrow {
  background: #fffaf0 !important;
  color: var(--ink) !important;
  border: 2px solid var(--ink) !important;
  border-radius: 10px !important;
  box-shadow: 0 3px 0 rgba(23, 24, 32, 0.18) !important;
  min-width: 38px !important;
  min-height: 38px !important;
  padding: 0 !important;
}

#stage-ready-screen #ready-stage-title {
  flex: 0 1 auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: min(58vw, 360px) !important;
  margin: 0 auto !important;
  padding: 6px 14px !important;
  border: 2px solid var(--ink) !important;
  border-radius: 999px !important;
  background: rgba(255, 250, 240, 0.94) !important;
  color: var(--ink) !important;
  box-shadow: 0 3px 0 rgba(23, 24, 32, 0.14) !important;
  font-size: clamp(0.92rem, 2.4vmin, 1.12rem) !important;
  font-weight: 900 !important;
  line-height: 1.1 !important;
  text-align: center !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

#stage-ready-screen #ready-diff-display,
#stage-ready-screen #ready-diff-display .ready-diff-count {
  color: #fff7c7 !important;
  text-shadow: 0 1px 0 var(--ink), 0 0 5px rgba(255, 200, 61, 0.3) !important;
}

#stage-ready-screen #ready-diff-display .ready-diff-count {
  display: block !important;
  margin-top: 3px !important;
  font-size: 0.74em !important;
  font-weight: 900 !important;
}

@media screen and (orientation: landscape) {
  #stage-ready-screen #ready-stage-title {
    max-width: min(34vw, 320px) !important;
    padding: 5px 12px !important;
    font-size: clamp(0.82rem, 2.3dvh, 1rem) !important;
  }
}
/* Collection material and disabled exchange button fixes */
#collection-screen .collection-material,
#collection-screen .collection-material-card,
#collection-screen .collection-material-item {
  border: 3px solid var(--ink) !important;
  box-shadow: 0 3px 0 rgba(23, 24, 32, 0.16) !important;
}

#collection-screen .collection-material-icon {
  border-width: 3px !important;
}

#collection-list-container .combine-btn,
#collection-list-container .combine-btn:not(:disabled),
#collection-list-container .combine-btn:disabled {
  border: 2.5px solid var(--ink) !important;
  border-radius: 10px !important;
  font-weight: 900 !important;
}

#collection-list-container .combine-btn:disabled {
  background: linear-gradient(180deg, #e8e8e8 0%, #cfcfcf 100%) !important;
  color: #6f6f6f !important;
  box-shadow: 0 4px 0 #a9a9a9, 0 8px 0 rgba(23, 24, 32, 0.1) !important;
  opacity: 1 !important;
}
/* Stage ready title size matches point pill */
#stage-ready-screen #ready-stage-title {
  min-height: 32px !important;
  height: 32px !important;
  padding: 4px 22px !important;
  font-size: 0.86rem !important;
  line-height: 1 !important;
}

@media screen and (orientation: portrait) {
  #stage-ready-screen #ready-stage-title {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}

@media screen and (orientation: landscape) {
  #stage-ready-screen #ready-stage-title {
    min-height: 30px !important;
    height: 30px !important;
    padding: 4px 20px !important;
    font-size: 0.82rem !important;
  }
}
/* Top status pills equal height */
#global-top-bar .top-status-right .hud-pill,
#global-top-bar .top-status-right .hud-pill.primary,
#global-top-bar .top-status-right .hud-points,
#global-top-bar .top-status-right .hud-attempts {
  height: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  padding-left: 12px !important;
  padding-right: 12px !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}

#global-top-bar .top-status-right .hud-pill .icon,
#global-top-bar .top-status-right .hud-attempts-label,
#global-top-bar .top-status-right #point-count,
#global-top-bar .top-status-right #daily-attempts-display {
  line-height: 1 !important;
}
/* Global top bar transparent background */
#global-top-bar,
#global-top-bar.selection-header,
#global-top-bar.stage-sel-header {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
/* Global top bar no background at all */
#global-top-bar,
#global-top-bar.selection-header,
#global-top-bar.stage-sel-header,
.selection-header#global-top-bar,
.stage-sel-header#global-top-bar {
  background: none !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

#global-top-bar::before,
#global-top-bar::after,
#global-top-bar.selection-header::before,
#global-top-bar.selection-header::after,
#global-top-bar.stage-sel-header::before,
#global-top-bar.stage-sel-header::after {
  content: none !important;
  display: none !important;
  background: none !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}
/* Splash/login app launch treasure theme */
#splash-screen {
  justify-content: center !important;
  align-items: center !important;
  padding: calc(env(safe-area-inset-top) + clamp(16px, 4vmin, 34px)) clamp(18px, 5vw, 48px) calc(env(safe-area-inset-bottom) + clamp(20px, 5vmin, 42px)) !important;
  background:
    radial-gradient(circle at 50% 18%, rgba(255, 215, 102, 0.22) 0 18%, transparent 42%),
    linear-gradient(180deg, #fff7dc 0%, #f6ddb1 54%, #d3eff7 100%) !important;
}

#splash-screen .splash-effects {
  opacity: 0.38 !important;
  filter: saturate(0.9) contrast(0.95) !important;
}

#splash-screen .effect-burst {
  width: min(112vmax, 980px) !important;
  height: min(112vmax, 980px) !important;
  opacity: 0.22 !important;
}

#splash-screen .effect-sparkles {
  opacity: 0.26 !important;
}

#splash-screen .splash-content {
  position: relative !important;
  z-index: 2 !important;
  width: min(92vw, 520px) !important;
  height: auto !important;
  min-height: min(620px, 84dvh) !important;
  justify-content: center !important;
  gap: clamp(10px, 2.1vmin, 16px) !important;
  padding: clamp(16px, 4.2vmin, 34px) clamp(18px, 5vw, 34px) !important;
}

#splash-screen .splash-content::before {
  content: "" !important;
  display: block !important;
  width: clamp(132px, 30vmin, 206px) !important;
  aspect-ratio: 1 / 0.82 !important;
  margin: 0 auto clamp(2px, 1vmin, 8px) !important;
  background: url("assets/resources/ui/box_close.webp") center / contain no-repeat !important;
  filter: drop-shadow(0 10px 0 rgba(23, 24, 32, 0.1)) drop-shadow(0 16px 18px rgba(84, 48, 16, 0.2)) !important;
  animation: splashBoxFloat 3.2s ease-in-out infinite !important;
}

#splash-screen .splash-title {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  padding: clamp(8px, 2vmin, 12px) clamp(16px, 4vw, 28px) !important;
  color: #17233f !important;
  background: rgba(255, 250, 240, 0.94) !important;
  border: 2px solid #17233f !important;
  border-radius: 999px !important;
  box-shadow: 0 4px 0 rgba(23, 24, 32, 0.16) !important;
  font-size: clamp(1.34rem, 5.2vmin, 2.35rem) !important;
  font-weight: 950 !important;
  line-height: 1.08 !important;
  letter-spacing: 0 !important;
  white-space: normal !important;
  text-align: center !important;
}

#splash-screen .splash-subtitle {
  max-width: min(92vw, 390px) !important;
  margin: clamp(2px, 1vmin, 6px) auto clamp(8px, 2vmin, 16px) !important;
  color: #31415c !important;
  font-size: clamp(0.88rem, 2.4vmin, 1.05rem) !important;
  font-weight: 850 !important;
  line-height: 1.4 !important;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.72) !important;
}

#splash-screen .sns-login-row {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-wrap: nowrap !important;
  gap: clamp(8px, 2vw, 12px) !important;
  margin: clamp(4px, 1.5vmin, 10px) auto 0 !important;
  padding: 7px 10px !important;
  width: auto !important;
  max-width: 100% !important;
  border: 2px solid #62c4df !important;
  border-radius: 999px !important;
  background: rgba(255, 250, 240, 0.92) !important;
  box-shadow: 0 0 0 2px #ffffff, 0 4px 0 rgba(23, 24, 32, 0.12) !important;
}

#splash-screen .sns-btn {
  width: clamp(44px, 10.5vmin, 56px) !important;
  height: clamp(44px, 10.5vmin, 56px) !important;
  min-width: clamp(44px, 10.5vmin, 56px) !important;
  padding: 0 !important;
  border: 2px solid #17233f !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  box-shadow: 0 3px 0 rgba(23, 24, 32, 0.18) !important;
  overflow: hidden !important;
  transform: translateY(0) !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease !important;
}

#splash-screen .sns-btn:hover {
  transform: translateY(-2px) !important;
  filter: brightness(1.03) !important;
  box-shadow: 0 5px 0 rgba(23, 24, 32, 0.16) !important;
}

#splash-screen .sns-btn:active {
  transform: translateY(2px) !important;
  box-shadow: 0 1px 0 rgba(23, 24, 32, 0.2) !important;
}

#splash-screen .sns-btn svg {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}

#splash-screen #guest-login-container {
  margin: clamp(8px, 2.2vmin, 16px) 0 0 !important;
}

#splash-screen #btn-login-guest,
#splash-screen #btn-login-test {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 34px !important;
  padding: 7px 16px !important;
  color: #17233f !important;
  background: rgba(255, 250, 240, 0.72) !important;
  border: 2px solid rgba(23, 35, 63, 0.7) !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  font-size: clamp(0.82rem, 2vmin, 0.95rem) !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  box-shadow: 0 3px 0 rgba(23, 24, 32, 0.1) !important;
}

#splash-screen #btn-login-test {
  margin-top: 8px !important;
  color: #2d6ca3 !important;
  border-color: rgba(98, 196, 223, 0.9) !important;
}

#splash-screen .splash-start-btn {
  min-width: min(86vw, 370px) !important;
  min-height: clamp(50px, 8.8vmin, 64px) !important;
  margin-top: clamp(12px, 3vmin, 22px) !important;
  padding: 0 clamp(24px, 7vw, 44px) !important;
  color: #17233f !important;
  background: linear-gradient(180deg, #ffe070 0%, #ffc83d 50%, #f09a35 100%) !important;
  border: 2px solid #17233f !important;
  border-radius: 999px !important;
  box-shadow: 0 6px 0 #b75f24, 0 10px 0 rgba(23, 24, 32, 0.12) !important;
  font-size: clamp(1rem, 3.2vmin, 1.28rem) !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  animation: splashStartPulse 1.9s ease-in-out infinite !important;
}

#splash-screen .splash-start-btn:active {
  transform: translateY(5px) !important;
  box-shadow: 0 1px 0 #b75f24, 0 4px 0 rgba(23, 24, 32, 0.12) !important;
}

@keyframes splashBoxFloat {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-7px) rotate(1deg); }
}

@keyframes splashStartPulse {
  0%, 100% { transform: translateY(0) scale(1); filter: brightness(1); }
  50% { transform: translateY(-2px) scale(1.018); filter: brightness(1.05); }
}

@media screen and (orientation: landscape) {
  #splash-screen {
    padding-top: calc(env(safe-area-inset-top) + 12px) !important;
    padding-bottom: calc(env(safe-area-inset-bottom) + 18px) !important;
  }

  #splash-screen .splash-content {
    width: min(68vw, 660px) !important;
    min-height: auto !important;
    gap: 8px !important;
    padding: 10px 22px !important;
  }

  #splash-screen .splash-content::before {
    width: clamp(110px, 26dvh, 176px) !important;
    margin-bottom: 2px !important;
  }

  #splash-screen .splash-title {
    font-size: clamp(1.25rem, 5dvh, 2rem) !important;
    padding: 7px 24px !important;
  }

  #splash-screen .splash-subtitle {
    margin-bottom: 8px !important;
    font-size: clamp(0.78rem, 2.6dvh, 0.98rem) !important;
  }

  #splash-screen .sns-login-row {
    padding: 6px 9px !important;
  }

  #splash-screen .sns-btn {
    width: clamp(40px, 10dvh, 50px) !important;
    height: clamp(40px, 10dvh, 50px) !important;
    min-width: clamp(40px, 10dvh, 50px) !important;
  }

  #splash-screen .splash-start-btn {
    min-height: clamp(44px, 9dvh, 56px) !important;
    margin-top: 8px !important;
    font-size: clamp(0.92rem, 3dvh, 1.12rem) !important;
  }
}
/* Splash/login simplified intro frame removal */
#splash-screen .splash-content::before {
  content: none !important;
  display: none !important;
  background: none !important;
  animation: none !important;
}

#splash-screen .splash-title {
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

#splash-screen .sns-login-row {
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

#splash-screen .splash-content {
  min-height: auto !important;
  padding-top: clamp(20px, 5vmin, 42px) !important;
}
/* Splash/login social icon inner padding */
#splash-screen .sns-btn {
  padding: clamp(6px, 1.5vmin, 9px) !important;
}

#splash-screen .sns-btn svg {
  width: 100% !important;
  height: 100% !important;
  border-radius: 999px !important;
}
/* Stage list uses parent background to avoid repeated top-bar backdrop */
#stage-selection-screen {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}

#stage-selection-screen::before,
#stage-selection-screen::after {
  content: none !important;
  display: none !important;
  background: none !important;
  background-image: none !important;
}
/* Stage ready header status sizing */
#stage-ready-screen .selection-header {
  gap: clamp(8px, 1.6vw, 14px) !important;
  align-items: center !important;
}

#stage-ready-screen .ready-header-status {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: clamp(6px, 1.1vw, 10px) !important;
  flex: 0 0 auto !important;
  min-width: 0 !important;
}

#stage-ready-screen .ready-header-status .hud-pill,
#stage-ready-screen .ready-header-status .hud-pill.primary,
#stage-ready-screen .ready-header-status .hud-attempts {
  height: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  padding: 0 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  font-size: 0.88rem !important;
}

#stage-ready-screen .ready-header-status .hud-pill .icon,
#stage-ready-screen .ready-header-status .hud-attempts-label,
#stage-ready-screen .ready-header-status #ready-point-count,
#stage-ready-screen .ready-header-status #ready-header-attempts-count {
  line-height: 1 !important;
}

#stage-ready-screen #ready-stage-title {
  height: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  padding: 0 24px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}

@media screen and (orientation: landscape) {
  #stage-ready-screen .ready-header-status .hud-pill,
  #stage-ready-screen .ready-header-status .hud-pill.primary,
  #stage-ready-screen .ready-header-status .hud-attempts,
  #stage-ready-screen #ready-stage-title {
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
  }
}

@media screen and (max-width: 520px) {
  #stage-ready-screen .ready-header-status {
    gap: 5px !important;
  }

  #stage-ready-screen .ready-header-status .hud-pill,
  #stage-ready-screen .ready-header-status .hud-pill.primary,
  #stage-ready-screen .ready-header-status .hud-attempts {
    padding: 0 9px !important;
    font-size: 0.78rem !important;
  }

  #stage-ready-screen .ready-header-status .hud-attempts-label {
    display: none !important;
  }

  #stage-ready-screen #ready-stage-title {
    padding: 0 16px !important;
  }
}
/* Game play feedback and gauge polish */
.ready-start-text {
  -webkit-text-stroke: clamp(2px, 0.32vmin, 4px) #17233f !important;
  paint-order: stroke fill !important;
  text-shadow:
    0 4px 0 rgba(23, 24, 32, 0.24),
    0 10px 22px rgba(16, 41, 71, 0.34) !important;
}

#game-screen .progress-section {
  height: clamp(18px, 3.1vmin, 26px) !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 999px !important;
  overflow: visible !important;
}

#game-screen .progress-container,
#game-screen .progress-shell,
.progress-container,
.progress-shell {
  height: 100% !important;
  border: 3px solid var(--ink) !important;
  border-radius: 999px !important;
  overflow: hidden !important;
  background: #fffaf0 !important;
  box-shadow:
    inset 0 2px 0 rgba(16, 41, 71, 0.16),
    0 0 0 2px #ffffff,
    0 4px 0 rgba(23, 24, 32, 0.16) !important;
}

#game-screen .progress-bar,
.progress-bar {
  height: 100% !important;
  border-radius: 999px 0 0 999px !important;
  background: linear-gradient(90deg, var(--treasure-red), var(--treasure-gold), var(--treasure-sky)) !important;
  box-shadow:
    inset 0 2px 0 rgba(255, 255, 255, 0.45),
    inset 0 -2px 0 rgba(23, 24, 32, 0.12) !important;
}

#game-screen .progress-bar[style*="100%"] {
  border-radius: 999px !important;
}

#game-screen .star-thresholds {
  overflow: visible !important;
  z-index: 3 !important;
}

#game-screen .star-marker {
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  z-index: 5 !important;
}

#game-screen .star-marker .star-icon {
  width: clamp(22px, 4.5vmin, 31px) !important;
  height: clamp(22px, 4.5vmin, 31px) !important;
  padding: 4px !important;
  background: linear-gradient(180deg, #fffaf0 0%, #ffe9a3 100%) !important;
  border: 2px solid var(--ink) !important;
  border-radius: 999px !important;
  box-shadow:
    0 0 0 2px rgba(255, 255, 255, 0.95),
    0 3px 0 rgba(23, 24, 32, 0.18) !important;
  backdrop-filter: none !important;
  overflow: visible !important;
}

#game-screen .threshold-star {
  width: 100% !important;
  height: 100% !important;
  filter: drop-shadow(0 1px 0 #17233f) !important;
}

#game-screen .threshold-star::before {
  background: var(--treasure-gold) !important;
}

#game-screen .star-marker .marker-line {
  display: none !important;
}

#effect-content .effect-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: clamp(10px, 2.4vw, 18px) !important;
}

#effect-content .effect-actions .res-btn,
#retry-btn-overlay,
#select-btn-overlay {
  width: clamp(132px, 22vw, 190px) !important;
  min-width: clamp(132px, 22vw, 190px) !important;
  height: clamp(46px, 8vmin, 60px) !important;
  min-height: clamp(46px, 8vmin, 60px) !important;
  padding: 0 18px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: clamp(1rem, 2.6vmin, 1.25rem) !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

#select-btn-overlay {
  color: var(--ink) !important;
}

@media screen and (max-width: 520px) {
  #effect-content .effect-actions {
    gap: 9px !important;
  }

  #effect-content .effect-actions .res-btn,
  #retry-btn-overlay,
  #select-btn-overlay {
    width: min(42vw, 158px) !important;
    min-width: min(42vw, 158px) !important;
    padding-inline: 10px !important;
  }
}
/* In-game canvas-only image framing */
#game-screen .image-wrapper,
#game-screen .canvas-container {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

#game-screen .canvas-container {
  padding: 0 !important;
  overflow: hidden !important;
}

#game-screen #base-canvas,
#game-screen #diff-canvas {
  box-sizing: border-box !important;
  border: 3px solid var(--ink) !important;
  border-radius: 10px !important;
  box-shadow:
    0 0 0 2px #ffffff,
    0 4px 0 rgba(23, 24, 32, 0.16) !important;
  background: transparent !important;
  touch-action: none !important;
  user-select: none !important;
  -webkit-user-select: none !important;
  -webkit-touch-callout: none !important;
}
/* In-game gauge overlay visibility fix */
#game-screen .progress-section {
  position: relative !important;
  overflow: visible !important;
  z-index: 20 !important;
}

#game-screen .progress-container,
#game-screen .progress-shell,
.progress-container,
.progress-shell {
  position: relative !important;
  overflow: visible !important;
  z-index: 1 !important;
}

#game-screen .progress-bar,
.progress-bar {
  position: relative !important;
  z-index: 1 !important;
  overflow: hidden !important;
}

#game-screen .star-thresholds {
  position: absolute !important;
  inset: 0 !important;
  overflow: visible !important;
  z-index: 12 !important;
  pointer-events: none !important;
}

#game-screen .star-marker {
  z-index: 15 !important;
  pointer-events: none !important;
}

#game-screen .star-marker .star-icon {
  position: relative !important;
  z-index: 16 !important;
}

#game-screen .timer-bubble {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  z-index: 18 !important;
  pointer-events: none !important;
}
/* In-game progress fill rounded trailing edge */
#game-screen .progress-bar,
.progress-bar {
  border-radius: 999px !important;
  min-width: 0 !important;
}
/* Top menu container chrome removal across breakpoints */
.top-menu,
#global-top-bar .top-menu,
#global-top-bar.stage-sel-header .top-menu,
#global-top-bar.selection-header .top-menu,
#stage-selection-screen #global-top-bar .top-menu,
#stage-selection-screen #global-top-bar.stage-sel-header .top-menu,
#stage-selection-screen #global-top-bar.selection-header .top-menu {
  background: none !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.top-menu::before,
.top-menu::after,
#global-top-bar .top-menu::before,
#global-top-bar .top-menu::after,
#stage-selection-screen #global-top-bar .top-menu::before,
#stage-selection-screen #global-top-bar .top-menu::after {
  content: none !important;
  display: none !important;
  background: none !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

@media screen and (max-width: 900px),
       screen and (hover: none) and (pointer: coarse),
       screen and (orientation: landscape),
       screen and (orientation: landscape) and (max-height: 600px),
       screen and (orientation: landscape) and (max-height: 520px),
       screen and (orientation: landscape) and (max-height: 420px),
       screen and (orientation: portrait) {
  .top-menu,
  #global-top-bar .top-menu,
  #global-top-bar.stage-sel-header .top-menu,
  #global-top-bar.selection-header .top-menu,
  #stage-selection-screen #global-top-bar .top-menu,
  #stage-selection-screen #global-top-bar.stage-sel-header .top-menu,
  #stage-selection-screen #global-top-bar.selection-header .top-menu {
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}
/* Top menu container overflow unclipped */
.top-menu,
#global-top-bar .top-menu,
#global-top-bar.stage-sel-header .top-menu,
#global-top-bar.selection-header .top-menu,
#stage-selection-screen #global-top-bar .top-menu,
#stage-selection-screen #global-top-bar.stage-sel-header .top-menu,
#stage-selection-screen #global-top-bar.selection-header .top-menu {
  overflow: visible !important;
  overflow-x: visible !important;
  overflow-y: visible !important;
  overscroll-behavior: auto !important;
  overscroll-behavior-inline: auto !important;
  scrollbar-width: auto !important;
}

@media screen and (max-width: 900px),
       screen and (hover: none) and (pointer: coarse),
       screen and (orientation: landscape),
       screen and (orientation: landscape) and (max-height: 600px),
       screen and (orientation: landscape) and (max-height: 520px),
       screen and (orientation: landscape) and (max-height: 420px),
       screen and (orientation: portrait) {
  .top-menu,
  #global-top-bar .top-menu,
  #global-top-bar.stage-sel-header .top-menu,
  #global-top-bar.selection-header .top-menu,
  #stage-selection-screen #global-top-bar .top-menu,
  #stage-selection-screen #global-top-bar.stage-sel-header .top-menu,
  #stage-selection-screen #global-top-bar.selection-header .top-menu {
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    overscroll-behavior: auto !important;
    overscroll-behavior-inline: auto !important;
    scrollbar-width: auto !important;
  }
}
/* Global top bar full container chrome removal final guard */
#game-container > #global-top-bar,
header#global-top-bar,
#global-top-bar,
#global-top-bar.selection-header,
#global-top-bar.stage-sel-header,
#global-top-bar.selection-header.stage-sel-header,
.selection-header#global-top-bar,
.stage-sel-header#global-top-bar {
  background: none !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-top: 0 !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  border-left: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

#game-container > #global-top-bar::before,
#game-container > #global-top-bar::after,
header#global-top-bar::before,
header#global-top-bar::after,
#global-top-bar::before,
#global-top-bar::after,
#global-top-bar.selection-header::before,
#global-top-bar.selection-header::after,
#global-top-bar.stage-sel-header::before,
#global-top-bar.stage-sel-header::after,
#global-top-bar.selection-header.stage-sel-header::before,
#global-top-bar.selection-header.stage-sel-header::after {
  content: none !important;
  display: none !important;
  background: none !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

@media screen and (max-width: 900px),
       screen and (hover: none) and (pointer: coarse),
       screen and (orientation: landscape),
       screen and (orientation: portrait) {
  #game-container > #global-top-bar,
  header#global-top-bar,
  #global-top-bar,
  #global-top-bar.selection-header,
  #global-top-bar.stage-sel-header,
  #global-top-bar.selection-header.stage-sel-header,
  .selection-header#global-top-bar,
  .stage-sel-header#global-top-bar {
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-top: 0 !important;
    border-right: 0 !important;
    border-bottom: 0 !important;
    border-left: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    filter: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}
/* Stage selection behaves like the other top-bar pages */
#stage-selection-screen {
  flex: 1 1 auto !important;
  height: auto !important;
  min-height: 0 !important;
  padding-top: clamp(8px, 1.8vmin, 16px) !important;
  background:
    radial-gradient(circle at 14% 13%, rgba(69, 201, 255, 0.2) 0 9%, transparent 10%),
    radial-gradient(circle at 84% 11%, rgba(255, 63, 52, 0.12) 0 8%, transparent 9%),
    linear-gradient(180deg, #fff8dd 0%, var(--bg-canvas) 46%, #ffefbd 100%) !important;
  background-color: var(--bg-canvas) !important;
  background-image:
    radial-gradient(circle at 14% 13%, rgba(69, 201, 255, 0.2) 0 9%, transparent 10%),
    radial-gradient(circle at 84% 11%, rgba(255, 63, 52, 0.12) 0 8%, transparent 9%),
    linear-gradient(180deg, #fff8dd 0%, var(--bg-canvas) 46%, #ffefbd 100%) !important;
}

#stage-selection-screen::before,
#stage-selection-screen::after {
  content: none !important;
  display: none !important;
}

#stage-selection-screen .stage-main-area {
  min-height: 0 !important;
}

@media screen and (orientation: portrait),
       screen and (orientation: landscape),
       screen and (max-width: 900px),
       screen and (hover: none) and (pointer: coarse) {
  #stage-selection-screen {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
    padding-top: clamp(8px, 1.8vmin, 16px) !important;
    background:
      radial-gradient(circle at 14% 13%, rgba(69, 201, 255, 0.2) 0 9%, transparent 10%),
      radial-gradient(circle at 84% 11%, rgba(255, 63, 52, 0.12) 0 8%, transparent 9%),
      linear-gradient(180deg, #fff8dd 0%, var(--bg-canvas) 46%, #ffefbd 100%) !important;
    background-color: var(--bg-canvas) !important;
    background-image:
      radial-gradient(circle at 14% 13%, rgba(69, 201, 255, 0.2) 0 9%, transparent 10%),
      radial-gradient(circle at 84% 11%, rgba(255, 63, 52, 0.12) 0 8%, transparent 9%),
      linear-gradient(180deg, #fff8dd 0%, var(--bg-canvas) 46%, #ffefbd 100%) !important;
  }
}
/* Unified single-color page background */
:root {
  --app-page-bg-solid: #fff8dd;
}

html,
body,
#game-container,
.screen,
#splash-screen,
#stage-selection-screen,
#stage-ready-screen,
#game-screen,
#roulette-screen,
#collection-screen,
#inventory-screen,
#settings-screen,
.main-play-area,
.modal-overlay {
  background: var(--app-page-bg-solid) !important;
  background-color: var(--app-page-bg-solid) !important;
  background-image: none !important;
}

#game-container::before,
#game-container::after,
.screen::before,
.screen::after,
#stage-selection-screen::before,
#stage-selection-screen::after,
#splash-screen::before,
#splash-screen::after {
  content: none !important;
  display: none !important;
  background: none !important;
  background-color: transparent !important;
  background-image: none !important;
}
/* Settings NFC add button readable text */
#settings-screen #btn-add-nfc,
#settings-screen #btn-add-nfc.res-btn,
#settings-screen #btn-add-nfc.res-btn.primary {
  color: var(--ink) !important;
  text-shadow: none !important;
}

#settings-screen #btn-add-nfc:disabled,
#settings-screen #btn-add-nfc.res-btn:disabled,
#settings-screen #btn-add-nfc.res-btn.primary:disabled {
  color: #6f6f6f !important;
  text-shadow: none !important;
}

@media screen and (orientation: landscape),
       screen and (hover: none) and (pointer: coarse) and (orientation: landscape) {
  #settings-screen #btn-add-nfc,
  #settings-screen #btn-add-nfc.res-btn,
  #settings-screen #btn-add-nfc.res-btn.primary {
    color: var(--ink) !important;
    text-shadow: none !important;
  }
}
/* Portrait mobile top bar two-line layout */
@media screen and (orientation: portrait) and (hover: none) and (pointer: coarse),
       screen and (orientation: portrait) and (max-width: 760px) {
  #global-top-bar,
  #global-top-bar.stage-sel-header,
  #global-top-bar.selection-header,
  #global-top-bar.selection-header.stage-sel-header {
    min-height: auto !important;
    height: auto !important;
    padding: max(6px, env(safe-area-inset-top)) 8px 6px !important;
    gap: 6px !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: center !important;
  }

  #global-top-bar .top-menu {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    padding: 0 !important;
    overflow: visible !important;
    overflow-x: visible !important;
  }

  #global-top-bar .top-status-right {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex: 0 0 auto !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
  }

  #global-top-bar .menu-btn {
    min-height: 30px !important;
    padding: 5px 9px !important;
    font-size: 11px !important;
  }

  #global-top-bar .hud-pill,
  #global-top-bar .top-status-right .hud-pill,
  #global-top-bar .top-status-right .hud-pill.primary {
    height: 30px !important;
    min-height: 30px !important;
    max-height: 30px !important;
    padding: 0 10px !important;
    font-size: 11px !important;
    justify-content: center !important;
  }

  #global-top-bar .hud-attempts-label {
    display: inline !important;
  }
}
/* Portrait gameplay timer pinned to top */
@media screen and (orientation: portrait) {
  #game-screen {
    padding-top: max(46px, calc(env(safe-area-inset-top) + 42px)) !important;
  }

  #game-screen .timer-bubble {
    position: fixed !important;
    left: 50% !important;
    right: auto !important;
    top: max(6px, calc(env(safe-area-inset-top) + 6px)) !important;
    bottom: auto !important;
    transform: translateX(-50%) !important;
    z-index: 300 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 58px !important;
    height: 28px !important;
    min-height: 28px !important;
    padding: 3px 11px !important;
    margin: 0 !important;
    pointer-events: none !important;
  }
}

/* Hide test/debug menu bar for production play */
#debug-panel {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* Ultra-short mobile landscape stage selection fix */
@media screen and (orientation: landscape) and (max-height: 312px) {
  #stage-selection-screen {
    padding-top: max(2px, env(safe-area-inset-top)) !important;
    padding-bottom: max(4px, env(safe-area-inset-bottom)) !important;
    overflow: hidden !important;
  }

  #stage-selection-screen .stage-main-area {
    padding-top: 0 !important;
    min-height: 0 !important;
    gap: 0 !important;
  }

  #stage-selection-screen .difficulty-tabs {
    top: 24% !important;
    width: min(78vw, 300px) !important;
    min-height: 26px !important;
    padding: 2px !important;
    gap: 2px !important;
    border-width: 2px !important;
    transform: translate(-50%, -50%) !important;
  }

  #stage-selection-screen .difficulty-tabs .diff-tab {
    min-height: 22px !important;
    padding: 2px 7px !important;
    font-size: 10.5px !important;
    line-height: 1 !important;
  }

  #stage-selection-screen .stage-slider-container {
    top: 54% !important;
    height: min(43dvh, 145px) !important;
    max-height: 145px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  #stage-selection-screen .stage-cards {
    gap: clamp(14px, 2.5vw, 28px) !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  #stage-selection-screen .stage-card-item {
    width: clamp(220px, 30vw, 310px) !important;
    gap: 2px !important;
  }

  #stage-selection-screen .stage-card {
    width: calc(100% - 18px) !important;
  }

  #stage-selection-screen .stage-card-item .stage-title {
    margin-top: 2px !important;
    font-size: 0.72rem !important;
    line-height: 1.05 !important;
  }
}

/* Ultra-short landscape positioning correction */
@media screen and (orientation: landscape) and (max-height: 312px) {
  #stage-selection-screen .stage-main-area {
    position: relative !important;
  }

  #stage-selection-screen .difficulty-tabs {
    position: absolute !important;
    left: 50% !important;
    top: 23% !important;
    transform: translate(-50%, -50%) !important;
  }

  #stage-selection-screen .stage-slider-container {
    position: absolute !important;
    left: 0 !important;
    top: 58% !important;
    transform: translateY(-50%) !important;
  }
}

/* Ultra-short landscape bottom padding trim */
@media screen and (orientation: landscape) and (max-height: 312px) {
  #stage-selection-screen {
    padding-bottom: max(2px, calc(env(safe-area-inset-bottom) * 0.5)) !important;
  }
}

/* Ultra-short landscape stage list spacing and width */
@media screen and (orientation: landscape) and (max-height: 312px) {
  #stage-selection-screen .stage-slider-container {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: none !important;
    top: 64% !important;
  }

  #stage-selection-screen .stage-cards-wrapper {
    width: 100% !important;
    max-width: none !important;
  }
}

/* Stage detail image-overlay difficulty and attainment badges */
#stage-ready-screen .ready-image-container {
  position: relative !important;
}

#stage-ready-screen .ready-side {
  pointer-events: none !important;
}

#stage-ready-screen .ready-side .info-area {
  pointer-events: none !important;
}

#stage-ready-screen .ready-side .info-block:first-child,
#stage-ready-screen .ready-side .info-block:nth-child(2) {
  min-height: 0 !important;
  padding: 5px 7px !important;
  border-width: 2px !important;
  border-radius: 8px !important;
  box-shadow: 0 3px 0 rgba(144, 216, 255, 0.22) !important;
}

#stage-ready-screen .ready-side .info-block:first-child::before,
#stage-ready-screen .ready-side .info-block:nth-child(2)::before {
  height: 0 !important;
}

#stage-ready-screen .ready-side .info-block:first-child h3,
#stage-ready-screen .ready-side .info-block:nth-child(2) h3 {
  min-height: 16px !important;
  padding: 2px 6px !important;
  font-size: 0.58rem !important;
  line-height: 1 !important;
  margin-bottom: 2px !important;
}

#stage-ready-screen #ready-diff-display,
#stage-ready-screen #ready-diff-display .ready-diff-count {
  font-size: 0.68rem !important;
  line-height: 1.05 !important;
}

#stage-ready-screen #attain-stars,
#stage-ready-screen .stars-attain {
  gap: 0 !important;
  font-size: 0.82rem !important;
  line-height: 1 !important;
}

@media screen and (orientation: portrait) {
  #stage-ready-screen .ready-main {
    position: relative !important;
  }

  #stage-ready-screen .ready-side {
    position: absolute !important;
    left: 50% !important;
    right: auto !important;
    top: auto !important;
    bottom: calc(100% - clamp(218px, 31dvh, 248px) + 8px) !important;
    width: min(100%, 520px) !important;
    max-width: 520px !important;
    transform: translateX(-50%) !important;
    z-index: 8 !important;
  }

  #stage-ready-screen .ready-side .info-area {
    width: auto !important;
    max-width: min(48%, 220px) !important;
    margin-left: auto !important;
    margin-right: 8px !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 4px !important;
  }
}

@media screen and (orientation: landscape) {
  #stage-ready-screen .ready-main {
    position: relative !important;
  }

  #stage-ready-screen .ready-side {
    grid-column: 1 !important;
    grid-row: 2 !important;
    position: absolute !important;
    right: clamp(12px, 2vw, 22px) !important;
    bottom: clamp(14px, 4dvh, 28px) !important;
    width: min(34%, 260px) !important;
    max-width: 260px !important;
    padding: 0 !important;
    z-index: 8 !important;
  }

  #stage-ready-screen .ready-side .info-area {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 5px !important;
    width: 100% !important;
  }
}

/* Stage detail ready-side is mounted inside the representative image */
#stage-ready-screen .ready-image-container > .ready-side {
  position: absolute !important;
  left: auto !important;
  right: clamp(6px, 1.5vw, 12px) !important;
  top: auto !important;
  bottom: clamp(6px, 1.6dvh, 12px) !important;
  width: min(46%, 230px) !important;
  max-width: 230px !important;
  min-width: 142px !important;
  transform: none !important;
  z-index: 8 !important;
  padding: 0 !important;
  margin: 0 !important;
  display: block !important;
}

#stage-ready-screen .ready-image-container > .ready-side .info-area {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 4px !important;
}

#stage-ready-screen .ready-image-container > .ready-side .info-block:first-child,
#stage-ready-screen .ready-image-container > .ready-side .info-block:nth-child(2) {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 4px 6px !important;
}

@media screen and (orientation: landscape) {
  #stage-ready-screen .ready-image-container > .ready-side {
    width: min(42%, 230px) !important;
    bottom: clamp(8px, 2.4dvh, 14px) !important;
    right: clamp(8px, 1.8vw, 14px) !important;
  }
}

/* Restore portrait stage detail info cards */
@media screen and (orientation: portrait) {
  #stage-ready-screen .ready-side {
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: 520px !important;
    transform: none !important;
    z-index: auto !important;
    pointer-events: auto !important;
    flex: 0 0 auto !important;
  }

  #stage-ready-screen .ready-side .info-area {
    pointer-events: auto !important;
    width: min(100%, 340px) !important;
    max-width: 340px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }

  #stage-ready-screen .ready-side .info-block:first-child,
  #stage-ready-screen .ready-side .info-block:nth-child(2) {
    min-height: 58px !important;
    padding: 8px 9px !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 0 rgba(144, 216, 255, 0.22) !important;
  }

  #stage-ready-screen .ready-side .info-block:first-child h3,
  #stage-ready-screen .ready-side .info-block:nth-child(2) h3 {
    min-height: 20px !important;
    padding: 3px 8px !important;
    font-size: 0.68rem !important;
    line-height: 1 !important;
    margin-bottom: 4px !important;
  }

  #stage-ready-screen #ready-diff-display,
  #stage-ready-screen #ready-diff-display .ready-diff-count {
    font-size: 0.92rem !important;
    line-height: 1.15 !important;
  }

  #stage-ready-screen #attain-stars,
  #stage-ready-screen .stars-attain {
    gap: 0 !important;
    font-size: 1.05rem !important;
    line-height: 1 !important;
  }
}

/* Ultra-short landscape gameplay: compact bottom rail and larger play image */
@media screen and (orientation: landscape) and (max-height: 312px) {
  #game-screen {
    --ultra-game-bottom: max(2px, calc(env(safe-area-inset-bottom) * 0.5));
    --ultra-game-rail-height: 34px;
    position: relative !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  #game-screen .main-play-area {
    position: absolute !important;
    left: max(4px, env(safe-area-inset-left)) !important;
    right: max(4px, env(safe-area-inset-right)) !important;
    top: max(2px, env(safe-area-inset-top)) !important;
    bottom: calc(var(--ultra-game-bottom) + var(--ultra-game-rail-height) + 2px) !important;
    width: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: stretch !important;
    justify-content: center !important;
    background: transparent !important;
    z-index: 1 !important;
  }

  #game-screen .image-wrapper {
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    gap: 4px !important;
    align-items: stretch !important;
    justify-content: center !important;
  }

  #game-screen .canvas-container {
    height: 100% !important;
    max-height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  #game-screen #base-canvas,
  #game-screen #diff-canvas,
  #game-screen canvas {
    max-height: 100% !important;
  }

  #game-screen .progress-section {
    position: absolute !important;
    left: max(8px, env(safe-area-inset-left)) !important;
    bottom: calc(var(--ultra-game-bottom) + 7px) !important;
    width: min(44vw, 270px) !important;
    height: 8px !important;
    margin: 0 !important;
    z-index: 32 !important;
  }

  #game-screen .progress-container,
  #game-screen .progress-shell,
  #game-screen .progress-container {
    height: 8px !important;
    border-width: 2px !important;
  }

  #game-screen .timer-bubble {
    position: absolute !important;
    left: 0 !important;
    right: auto !important;
    top: -28px !important;
    bottom: auto !important;
    transform: none !important;
    z-index: 35 !important;
    min-width: 54px !important;
    height: 22px !important;
    min-height: 22px !important;
    padding: 2px 8px !important;
    font-size: 0.72rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  #game-screen .find-indicators {
    position: absolute !important;
    left: max(72px, calc(env(safe-area-inset-left) + 72px)) !important;
    right: auto !important;
    bottom: calc(var(--ultra-game-bottom) + 20px) !important;
    z-index: 34 !important;
    max-width: min(31vw, 190px) !important;
    padding: 0 !important;
    gap: 2px !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    pointer-events: none !important;
  }

  #game-screen .find-indicators .indicator,
  #game-screen .indicator {
    width: 17px !important;
    height: 17px !important;
    min-width: 17px !important;
    min-height: 17px !important;
    font-size: 0.58rem !important;
    border-width: 2px !important;
  }

  #game-screen .bottom-hud {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: var(--ultra-game-bottom) !important;
    height: var(--ultra-game-rail-height) !important;
    min-height: var(--ultra-game-rail-height) !important;
    padding: 0 max(8px, env(safe-area-inset-right)) 0 max(8px, env(safe-area-inset-left)) !important;
    display: grid !important;
    grid-template-columns: minmax(280px, 1fr) auto !important;
    align-items: end !important;
    background: transparent !important;
    z-index: 31 !important;
  }

  #game-screen .hud-left,
  #game-screen .hud-center {
    display: none !important;
  }

  #game-screen .hud-right {
    grid-column: 2 !important;
    display: flex !important;
    justify-content: flex-end !important;
    align-items: flex-end !important;
    gap: 5px !important;
  }

  #game-screen .item-btn {
    min-width: 42px !important;
    min-height: 32px !important;
    height: 32px !important;
    padding: 1px 5px !important;
    border-radius: 8px !important;
  }

  #game-screen .item-icon {
    --game-item-icon-size: 23px;
    width: 23px !important;
    height: 23px !important;
  }

  #game-screen .item-btn .item-label {
    display: none !important;
  }
}

/* Ultra-short landscape gameplay rail alignment revision */
@media screen and (orientation: landscape) and (max-height: 312px) {
  #game-screen .progress-section {
    left: 50% !important;
    bottom: calc(var(--ultra-game-bottom) + var(--ultra-game-rail-height) - 8px) !important;
    transform: translateX(-50%) !important;
  }

  #game-screen .timer-bubble {
    top: auto !important;
    bottom: calc(var(--ultra-game-bottom) + var(--ultra-game-rail-height) - 22px) !important;
    transform: none !important;
  }

  #game-screen .find-indicators {
    bottom: calc(var(--ultra-game-bottom) + var(--ultra-game-rail-height) - 17px) !important;
  }
}

/* Ultra-short landscape gameplay timer/count same rail line */
@media screen and (orientation: landscape) and (max-height: 312px) {
  #game-screen .timer-bubble {
    top: 0 !important;
    bottom: auto !important;
    left: 0 !important;
  }

  #game-screen .find-indicators {
    left: calc(50% - 73px) !important;
    bottom: calc(var(--ultra-game-bottom) + 16px) !important;
  }
}

/* Ultra-short landscape gameplay centerline alignment */
@media screen and (orientation: landscape) and (max-height: 312px) {
  #game-screen .progress-section {
    left: 50% !important;
    bottom: calc(var(--ultra-game-bottom) + 13px) !important;
    transform: translateX(-50%) !important;
  }

  #game-screen .timer-bubble {
    position: fixed !important;
    left: max(8px, env(safe-area-inset-left)) !important;
    right: auto !important;
    top: auto !important;
    bottom: calc(var(--ultra-game-bottom) + 6px) !important;
    transform: none !important;
  }

  #game-screen .find-indicators {
    left: max(68px, calc(env(safe-area-inset-left) + 68px)) !important;
    right: auto !important;
    bottom: calc(var(--ultra-game-bottom) + 8px) !important;
  }
}

/* Ultra-short landscape gameplay fixed timer correction */
@media screen and (orientation: landscape) and (max-height: 312px) {
  #game-screen .progress-section {
    left: calc(50% - min(22vw, 135px)) !important;
    transform: none !important;
  }

  #game-screen .timer-bubble {
    position: fixed !important;
    left: max(8px, env(safe-area-inset-left)) !important;
    bottom: calc(var(--ultra-game-bottom) + 6px) !important;
  }

  #game-screen .find-indicators {
    bottom: calc(var(--ultra-game-bottom) + 6px) !important;
  }
}

/* Ultra-short landscape gameplay timer anchored to left rail from gauge scope */
@media screen and (orientation: landscape) and (max-height: 312px) {
  #game-screen .timer-bubble {
    position: absolute !important;
    left: calc(-50vw + min(22vw, 135px) + 8px) !important;
    top: -7px !important;
    bottom: auto !important;
    transform: none !important;
  }
}

/* Ultra-short landscape gameplay timer center fine tune */
@media screen and (orientation: landscape) and (max-height: 312px) {
  #game-screen .timer-bubble {
    top: -9px !important;
  }
}

/* Ultra-short landscape gameplay timer hard-left bottom */
@media screen and (orientation: landscape) and (max-height: 312px) {
  #game-screen .timer-bubble {
    left: calc(-50vw + min(22vw, 135px) + max(8px, env(safe-area-inset-left))) !important;
    top: -9px !important;
    bottom: auto !important;
  }
}

/* Collection list bottom breathing room */
#collection-list-container {
  padding-bottom: max(44px, calc(env(safe-area-inset-bottom) + 34px)) !important;
  scroll-padding-bottom: max(44px, calc(env(safe-area-inset-bottom) + 34px)) !important;
}

@media screen and (orientation: landscape) {
  #collection-list-container {
    padding-bottom: max(58px, calc(env(safe-area-inset-bottom) + 48px)) !important;
    scroll-padding-bottom: max(58px, calc(env(safe-area-inset-bottom) + 48px)) !important;
  }
}

/* Compact reward modal for landscape roulette results */
@media screen and (orientation: landscape) {
  #reward-modal.modal-overlay {
    padding: max(6px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left)) !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
  }

  #reward-modal .modal-card {
    width: min(62vw, 420px) !important;
    max-width: min(62vw, 420px) !important;
    max-height: calc(100dvh - max(20px, env(safe-area-inset-top) + env(safe-area-inset-bottom) + 14px)) !important;
    padding: clamp(12px, 3dvh, 20px) clamp(16px, 3.8vw, 26px) !important;
    gap: clamp(6px, 1.8dvh, 10px) !important;
    overflow: hidden !important;
  }

  #reward-modal .modal-title {
    font-size: clamp(1.05rem, 5dvh, 1.55rem) !important;
    margin: 0 !important;
    line-height: 1.05 !important;
  }

  #reward-modal .modal-icon-container,
  #reward-icon-container {
    width: clamp(74px, 24dvh, 126px) !important;
    height: clamp(74px, 24dvh, 126px) !important;
    min-height: 0 !important;
    margin: 0 auto !important;
  }

  #reward-modal .modal-icon-container img,
  #reward-icon-container img,
  #reward-icon-container svg {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
  }

  #reward-modal .modal-message {
    font-size: clamp(0.9rem, 3.3dvh, 1.12rem) !important;
    line-height: 1.2 !important;
    margin: 0 !important;
  }

  #reward-modal .res-btn,
  #reward-close-btn {
    min-height: clamp(36px, 8dvh, 46px) !important;
    height: clamp(36px, 8dvh, 46px) !important;
    padding: 0 20px !important;
    font-size: clamp(0.9rem, 3.2dvh, 1.05rem) !important;
  }
}

/* Reward modal material icons keep original aspect in landscape */
@media screen and (orientation: landscape) {
  #reward-icon-container {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    aspect-ratio: 1 / 1 !important;
    overflow: visible !important;
  }

  #reward-icon-container > * {
    flex: 0 0 auto !important;
    width: min(100%, clamp(74px, 24dvh, 126px)) !important;
    height: min(100%, clamp(74px, 24dvh, 126px)) !important;
    max-width: 100% !important;
    max-height: 100% !important;
    aspect-ratio: 1 / 1 !important;
  }

  #reward-icon-container > img,
  #reward-icon-container img {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
  }
}
