/* OpenDoll: neutral studio surfaces, red actions, original media colors. */
:root {
  color-scheme: dark;
  --bg: #141414; --panel: #191919; --panel-solid: #191919;
  --surface: #202020; --surface-hover: #292929;
  --line: #303030; --line-strong: #484848; --border-subtle: #ffffff14;
  --text: #fafafa; --text-primary: #fafafa; --text-secondary: #c2c2c2;
  --text-muted: #a3a3a3; --text-faint: #808080; --muted: #a3a3a3;
  --red: #e33232; --red-dark: #c62828;
  --red-soft: #e332321a; --red-glow: #e3323226;
}
body, .main, .lp-wrapper { background: var(--bg); }
.ambient, .lp-hero-ambient, .lp-stage-glow, .lp-cta-glow { display: none; }
.sidebar, .topbar { background: #181818; border-color: var(--line); }
.panel, .dash-panel, .module-card, .module-catalog-card, .plan,
.dash-shortcuts>button, .studio-panel, dialog, .lp-price-card,
.lp-mod-card, .lp-faq-item, .lp-stage-window, .lp-cta-box,
.illusion-step, .illusion-purchase, .illusion-stage, .illusion-history-item {
  background: #191919; border-color: var(--line); box-shadow: none;
}
.global-search, input, textarea, select, .search-field, .wallet-pill,
.creation-thumb, .portrait-small, .guide-icon, .avatar, .status, .badge {
  background-color: #222; border-color: #3b3b3b;
}
.global-search kbd, .dash-guide li:before { background: #303030; }
.nav button.active, .tabs button.active {
  background: #292929; border-color: #393939; box-shadow: inset 3px 0 var(--red);
}
.nav button:hover, .dash-shortcuts>button:hover, .search-result:hover {
  background: #252525; border-color: #555;
}
.btn.primary, .balance-mini .btn, .lp-btn-primary,
.banner-copy .btn, .illusion-hero .btn.primary {
  background: var(--red); border-color: var(--red); color: #fff;
  box-shadow: none;
}
.btn.primary:hover, .balance-mini .btn:hover, .lp-btn-primary:hover {
  background: var(--red-dark); border-color: var(--red-dark);
  box-shadow: none;
}
.shortcut-icon { background: #252525; border-color: #3b3b3b; color: #eee; }
.dash-heading .text-button, .dash-support>.icon, .dash-model:hover strong {
  color: #eee;
}
.login-art { background: #191919; }
.login-art:after { background: linear-gradient(0deg,#141414,transparent 70%); }
.login-copy p { color: var(--text-secondary); }
.hero { background: #202020; border-color: var(--line); }
.hero-visual:after { background: linear-gradient(90deg,#202020,transparent); }
.upgrade, .balance-mini, .hero-sticker { background: #202020; border-color: var(--line); }
.illusion-result-empty { background: #181818; }
.illusion-monogram { color: var(--red); }
.illusion-hero h1 em, .lp-brand b { color: var(--red) !important; text-shadow: none; }
.brand, .lp-brand { gap: 8px; }
.brand .brand-symbol, .lp-brand .brand-symbol {
  width: 39px; height: 49px; object-fit: contain;
  filter: drop-shadow(0 0 5px #e3323259);
  flex-shrink: 0;
}
.brand .brand-name, .lp-brand .brand-name {
  font-size: 26px; letter-spacing: -1px; font-style: italic;
  white-space: nowrap; color: #fff !important;
}
.brand-name b { color: var(--red) !important; font-style: inherit; opacity: 1; }
.lp-brand span.brand-name b { opacity: 1; }
.brand-name b, .brand-name { text-shadow: 0 0 9px #e3323226; }
.brand .brand-name b { display: inline; }
em { text-shadow: none; }
button:focus-visible, a:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible, summary:focus-visible {
  outline: 2px solid #f06565; outline-offset: 3px;
}
::selection { background: #923030; color: #fff; }
#toast { background: #242424; border-color: #484848; color: #fff; }
dialog::backdrop { background: #000a; }
@media(max-width:540px) {
  .lp-brand .brand-name { font-size: 23px; }
  .lp-brand .brand-symbol { width: 30px; height: 39px; }
}
