.title, .game-title, #landingTitle, #gameTitle, h1, h2, .section-title, .name {
  color: var(--dd-text-main);
  text-shadow: none;
}
.subtitle, .section-label, #languageLabel, #genderLabel, .game-subtitle, .sub, .small, .helper, p, .back, .login-status {
  color: var(--dd-text-muted);
  text-shadow: none;
}
.title {
  font-size: 30px;
  font-weight: 800;
  line-height: 1.02;
  letter-spacing: -.03em;
  margin: 2px 0 20px;
}
.subtitle { display: none; }
.section-label {
  font-size: 13px;
  opacity: .88;
  margin: 0 2px 7px;
  letter-spacing: .02em;
}
.select, input, textarea, .text-input {
  width: 100%;
  border-radius: 17px;
  padding: 13px 15px;
  font-size: 15px;
  font-weight: 700;
  border: 1px solid var(--dd-input-border);
  background: var(--dd-input-bg);
  color: var(--dd-input-text);
  outline: none;
  margin-bottom: 10px;
  appearance: none;
}
.select option { color: var(--dd-input-text); background: var(--dd-input-bg); }
.btn {
  border-radius: var(--dd-button-radius);
  padding: 12px;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  border: 1px solid var(--dd-button-border);
  background: var(--dd-button-bg);
  color: var(--dd-button-text);
  user-select: none;
  box-shadow: var(--dd-button-shadow);
}
.btn.primary, .primary, #landingNextBtn, #unlockBtn, #buyBtn, .auth-provider-primary, #stripePayBtn, .wallet-btn.stripe {
  background: var(--dd-button-primary-bg);
  color: var(--dd-button-primary-text);
  box-shadow: var(--dd-button-shadow);
}
.btn.secondary { background: var(--dd-button-bg); color: var(--dd-button-text); }
.btn.disabled { opacity: .42; pointer-events: none; }
.card {
  background: var(--dd-card-bg);
  color: var(--dd-card-text);
  border-radius: var(--dd-card-radius);
  padding: var(--dd-card-padding);
  border: 1px solid var(--dd-card-border);
  box-shadow: var(--dd-card-shadow);
  white-space: pre-wrap;
}
.card.loading .card-text { color: var(--dd-text-muted); }
.card-text { color: var(--dd-text-soft); }
.landing-card { min-height: 220px; display: flex; align-items: center; }
.landing-punch {
  font-size: 19px;
  line-height: 1.08;
  font-weight: 600;
  opacity: .98;
  text-align: center;
  margin-top: 18px;
  color: var(--dd-text-main);
}
.landing-punch.hidden { display: none !important; }
.game-card {
  overflow: hidden;
}
html[data-dd-theme="light"] .game-card {
  padding: 0;
}
html[data-dd-theme="light"] .game-card.loading {
  padding: var(--dd-card-padding);
}
html[data-dd-theme="light"] .game-card.loading #cardText,
html[data-dd-theme="light"] .game-card.loading .card-text {
  padding: 0;
}
html[data-dd-theme="light"] .game-card .card-title,
html[data-dd-theme="light"] .game-card .card-text > :not(.card-image-wrap),
html[data-dd-theme="light"] .game-card .card-bottom-icon {
  margin-left: var(--dd-card-padding);
  margin-right: var(--dd-card-padding);
}
html[data-dd-theme="light"] .game-card.loading .card-title,
html[data-dd-theme="light"] .game-card.loading .card-text > :not(.card-image-wrap),
html[data-dd-theme="light"] .game-card.loading .card-bottom-icon {
  margin-left: 0;
  margin-right: 0;
}
html[data-dd-theme="light"] .game-card #cardText,
html[data-dd-theme="light"] .game-card .card-text {
  padding: 0 0 var(--dd-card-padding);
}
.card-image-wrap {
  display: block;
  position: relative;
  overflow: hidden;
  white-space: normal;
  background: var(--dd-card-bg);
}
.card-image-wrap::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 76px;
  z-index: 3;
  background: linear-gradient(180deg, transparent, var(--dd-image-fade-to));
  pointer-events: none;
}
.card-image {
  width: 100%;
  height: auto;
  max-width: none;
  display: block;
  object-fit: contain;
  object-position: center top;
}
html[data-dd-theme="light"] #cardBox.game-card {
  position: relative;
}
html[data-dd-theme="light"] #cardBox.game-card #cardCounter,
html[data-dd-theme="light"] #cardBox.game-card .card-counter {
  position: absolute !important;
  top: 14px !important;
  left: 16px !important;
  z-index: 6 !important;
  margin: 0 !important;
  line-height: 1 !important;
  pointer-events: none !important;
}
html[data-dd-theme="light"] #cardBox.game-card #cardText,
html[data-dd-theme="light"] #cardBox.game-card .card-text {
  padding-top: 0 !important;
}
html[data-dd-theme="light"] #cardBox.game-card #cardText > .card-image-wrap:first-child,
html[data-dd-theme="light"] #cardBox.game-card .card-text > .card-image-wrap:first-child {
  margin-top: 0 !important;
}
html[data-dd-theme="light"] .card-image-wrap {
  margin: 0 0 12px;
  border-radius: var(--dd-card-radius) var(--dd-card-radius) 0 0;
  background: var(--dd-card-bg);
}
html[data-dd-theme="light"] .card-image {
  border-radius: var(--dd-card-radius) var(--dd-card-radius) 0 0;
  width: 100%;
  margin: 0;
  box-shadow: none;
}
.card-bottom-icon svg { display: block; filter: drop-shadow(0 0 10px rgba(208,137,255,.32)); }
.share-title { color: var(--dd-text-main); }
.share-body { color: var(--dd-text-soft); }
.sheet {
  background: var(--dd-sheet-bg);
  color: var(--dd-page-text);
  box-shadow: var(--dd-sheet-shadow);
}
.sheet-title { color: var(--dd-text-main); }
.sheet-text { color: var(--dd-sheet-text); opacity: .94; }
.paywall-backdrop { background: var(--dd-paywall-backdrop); }
.paywall {
  background: var(--dd-paywall-bg);
  color: var(--dd-paywall-text);
  border: 1px solid var(--dd-paywall-border);
  box-shadow: var(--dd-card-shadow);
}
.paywall-brand, .paywall-title, .paywall-price { color: var(--dd-paywall-text); }
.paywall-subtitle, .paywall-list li, .paywall-helper { color: var(--dd-text-muted); }
.stripe-box {
  background: var(--dd-stripe-box-bg);
  border-radius: 24px;
  border: 1px solid var(--dd-paywall-border);
  overflow: visible;
}
.theme-switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 10px;
}
[data-theme-choice].is-active {
  outline: 2px solid rgba(167,92,115,.34);
}
html[data-dd-theme="light"] .ok { color: var(--dd-success-text); }
html[data-dd-theme="light"] .bad { color: var(--dd-danger-text); }
html[data-dd-theme="light"] .stat-title { color: var(--dd-text-faint); opacity: 1; }
html[data-dd-theme="light"] .stat-value { color: var(--dd-text-main); }
html[data-dd-theme="light"] .pill b { font-weight: 900; }
html[data-dd-theme="light"] #cardTitle,
html[data-dd-theme="light"] .card-title {
  color: var(--dd-text-main);
  font-weight: 850;
}
html[data-dd-theme="light"] #cardText,
html[data-dd-theme="light"] .card-text {
  color: var(--dd-text-soft);
}
html[data-dd-theme="light"] #cardBox::before {
  color: rgba(31,23,25,.78) !important;
  opacity: 1 !important;
  background: rgba(255,255,255,.86) !important;
  border: 1px solid rgba(31,23,25,.15) !important;
  box-shadow: 0 6px 16px rgba(31,23,25,.10);
}
html[data-dd-theme="light"] #refNotice:not(.show),
html[data-dd-theme="light"] #feedbackNotice:not(.show) {
  display: none !important;
}

/* Account page isolation: account.html has legacy inline CSS, so shared theme CSS must not duplicate department headers/notes. */
.wrap .card {
  white-space: normal;
}
.wrap .department::before,
.wrap .department:before {
  content: none !important;
  display: none !important;
}
.wrap .department {
  margin-top: 8px !important;
}
.wrap .department .section-title {
  margin: 0 0 10px !important;
}
.wrap .department .small {
  margin: 0 0 10px !important;
}
.wrap .notice:not(.show) {
  display: none !important;
}
.wrap .btn {
  min-height: 48px;
}
.wrap .grid {
  gap: 8px;
}

/* Light skin should not keep a heavy dark nav layer. */
html[data-dd-theme="light"] #gameScreen:not(.hidden) .nav-row {
  background: var(--dd-nav-backdrop) !important;
}
html[data-dd-theme="light"] #landingScreen:not(.hidden) #landingNextBtn,
html[data-dd-theme="light"] #gameScreen:not(.hidden) .nav-row .btn {
  box-shadow: 0 10px 24px rgba(31,23,25,.14), inset 0 1px 0 rgba(255,255,255,.60) !important;
}