.logo-icon.lv-logo-stage {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.lv-logo-face {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  will-change: transform, opacity;
}

.lv-logo-face.lv-logo-guest {
  transform: translateY(-115%);
}

.lv-site-background {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: var(--bg, #0d0f14);
  transition: background .35s ease;
}

/* The background is intentionally a body child. Keep every page shell above it. */
body > header,
body > main,
body > .app,
body > .layout {
  position: relative;
  z-index: 1;
}

.lv-nav-badge {
  position: absolute;
  top: 3px;
  right: 10%;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border-radius: 999px;
  display: none;
  place-items: center;
  color: #fff;
  background: #ef4444;
  border: 2px solid #11131b;
  font: 700 10px/1 system-ui, sans-serif;
}
.lv-nav-badge.visible { display: grid; }
.lv-site-background::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(8, 10, 20, var(--site-dim, 0));
}
.lv-site-background.custom {
  background-image: var(--site-image);
  background-size: cover;
  background-position: var(--site-position, center);
}
.lv-site-background.animated {
  background: radial-gradient(circle at 15% 20%, rgba(124,106,247,.24), transparent 34%),
              radial-gradient(circle at 80% 70%, rgba(79,142,247,.16), transparent 38%),
              linear-gradient(135deg, #0d0f14, #141226, #0d1722);
  background-size: 140% 140%;
  animation: lvSiteGradient 24s ease-in-out infinite alternate;
}
@keyframes lvSiteGradient {
  0% { background-position: 0% 20%; }
  50% { background-position: 80% 60%; }
  100% { background-position: 20% 100%; }
}

/* Safe collection themes shared by the owner page and profile walls. */
.lv-collection-theme {
  --collection-accent: #7c6af7;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-color: color-mix(in srgb, var(--collection-accent) 42%, rgba(255,255,255,.08)) !important;
  background: linear-gradient(145deg, color-mix(in srgb, var(--collection-accent) 14%, #1e2230), #171a24) !important;
}
.lv-collection-theme::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(135deg, color-mix(in srgb, var(--collection-accent) 18%, transparent), transparent 58%);
}
.lv-collection-theme > *:not(.lv-collection-bg) { position: relative; z-index: 2; }
.lv-collection-bg {
  display: none;
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .28;
  filter: saturate(1.08) contrast(1.04);
}
.lv-theme-neon { background: radial-gradient(circle at 18% 15%, color-mix(in srgb, var(--collection-accent) 42%, transparent), transparent 42%), linear-gradient(145deg,#08101c,#121329) !important; }
.lv-theme-royal { background: radial-gradient(circle at 85% 0%,rgba(250,204,21,.18),transparent 35%),linear-gradient(145deg,#291c55,#16142b) !important; }
.lv-theme-sunset { background: linear-gradient(145deg,#4a1831,#7c2d2d 52%,#342038) !important; }
.lv-theme-forest { background: radial-gradient(circle at 12% 12%,rgba(74,222,128,.2),transparent 38%),linear-gradient(145deg,#10251d,#17211f) !important; }
.lv-theme-ice { background: linear-gradient(145deg,#10283d,#1c2746 55%,#172033) !important; }
.lv-cover-full > .lv-collection-bg,
.pinned-card > .lv-collection-bg { display: block; }
.lv-cover-full .coll-cover { background: transparent; min-height: 148px; }
.lv-cover-full .coll-cover > img { opacity: 0; }
.lv-cover-minimal .coll-cover { aspect-ratio: auto; min-height: 76px; }
.lv-cover-minimal .coll-cover > img { opacity: .22; }
.pinned-card.lv-cover-full > .lv-collection-bg { opacity: .42; }
.pinned-card.lv-cover-banner > .lv-collection-bg { opacity: .2; }
.pinned-card.lv-cover-minimal > .lv-collection-bg { display: none; }
.lv-effect-glow { animation: lvCollectionGlow 3.6s ease-in-out infinite alternate; }
.lv-effect-shimmer::after {
  content: "";
  position: absolute;
  z-index: 3;
  inset: -80% -35%;
  pointer-events: none;
  background: linear-gradient(105deg,transparent 42%,rgba(255,255,255,.16) 50%,transparent 58%);
  transform: translateX(-65%);
  animation: lvCollectionShimmer 5.5s ease-in-out infinite;
}
.lv-collection-theme .pinned-name,
.lv-collection-theme .coll-name { color: #fff; text-shadow: 0 1px 8px rgba(0,0,0,.35); }
.lv-collection-theme .pinned-meta { color: rgba(236,240,255,.72); }
@keyframes lvCollectionGlow {
  from { box-shadow: 0 0 0 rgba(0,0,0,0), 0 8px 28px rgba(0,0,0,.18); }
  to { box-shadow: 0 0 24px color-mix(in srgb, var(--collection-accent) 38%, transparent), 0 12px 34px rgba(0,0,0,.28); }
}
@keyframes lvCollectionShimmer {
  0%,58% { transform: translateX(-65%); opacity: 0; }
  68% { opacity: 1; }
  88%,100% { transform: translateX(65%); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .lv-logo-face { will-change: auto; }
  .lv-site-background.animated { animation: none; }
  .lv-effect-glow, .lv-effect-shimmer::after { animation: none; }
}

body.lv-dialog-open { overflow: hidden; }
.lv-dialog-overlay {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(5, 7, 12, .74);
  backdrop-filter: blur(9px);
  opacity: 0;
  transition: opacity .18s ease;
}
.lv-dialog-overlay.open { opacity: 1; }
.lv-dialog-overlay.closing { opacity: 0; }
.lv-dialog {
  width: min(480px, 100%);
  padding: 22px;
  color: var(--text, #f2f4f8);
  background: linear-gradient(155deg, rgba(31, 35, 48, .98), rgba(19, 22, 30, .99));
  border: 1px solid var(--border2, #343b4b);
  border-radius: 18px;
  box-shadow: 0 28px 80px rgba(0, 0, 0, .52), inset 0 1px rgba(255, 255, 255, .035);
  transform: translateY(12px) scale(.975);
  transition: transform .2s cubic-bezier(.2, .8, .2, 1);
}
.lv-dialog-overlay.open .lv-dialog { transform: translateY(0) scale(1); }
.lv-dialog-head { display: flex; align-items: flex-start; gap: 14px; }
.lv-dialog-icon {
  display: grid;
  place-items: center;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  color: #c9c1ff;
  background: rgba(124, 92, 252, .16);
  border: 1px solid rgba(124, 92, 252, .28);
  font-size: 19px;
}
.lv-dialog-warning .lv-dialog-icon { color: #fbbf24; background: rgba(251, 191, 36, .12); border-color: rgba(251, 191, 36, .24); }
.lv-dialog-danger .lv-dialog-icon { color: #f87171; background: rgba(248, 113, 113, .12); border-color: rgba(248, 113, 113, .24); }
.lv-dialog-heading { min-width: 0; padding-top: 2px; }
.lv-dialog-title { margin: 0; color: var(--text, #f2f4f8); font-size: 1.05rem; line-height: 1.35; }
.lv-dialog-message { margin: 6px 0 0; color: var(--text2, #adb4c4); font-size: .82rem; line-height: 1.55; }
.lv-dialog-field { display: flex; flex-direction: column; gap: 7px; margin-top: 20px; }
.lv-dialog-label { color: var(--text2, #adb4c4); font-size: .75rem; font-weight: 600; }
.lv-dialog-input {
  width: 100%;
  min-height: 44px;
  padding: 11px 12px;
  resize: vertical;
  color: var(--text, #f2f4f8);
  caret-color: var(--accent, #7c5cfc);
  background: rgba(8, 10, 16, .72);
  border: 1px solid var(--border2, #343b4b);
  border-radius: 10px;
  outline: none;
  font: inherit;
  line-height: 1.45;
  transition: border-color .15s, box-shadow .15s;
}
.lv-dialog-input:focus { border-color: var(--accent, #7c5cfc); box-shadow: 0 0 0 3px rgba(124, 92, 252, .14); }
.lv-dialog-input.invalid { border-color: #f87171; box-shadow: 0 0 0 3px rgba(248, 113, 113, .11); }
.lv-dialog-error { min-height: 16px; color: #f87171; font-size: .7rem; }
.lv-dialog-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 22px; }
.lv-dialog-button {
  min-width: 112px;
  min-height: 42px;
  padding: 9px 16px;
  border: 1px solid var(--border2, #343b4b);
  border-radius: 10px;
  cursor: pointer;
  font-family: inherit;
  font-size: .82rem;
  font-weight: 600;
  line-height: 1.2;
  transition: transform .14s, border-color .14s, filter .14s;
}
.lv-dialog-button:hover { transform: translateY(-1px); filter: brightness(1.08); }
.lv-dialog-button:focus-visible { outline: 3px solid rgba(124, 92, 252, .32); outline-offset: 2px; }
.lv-dialog-cancel { color: var(--text2, #adb4c4); background: rgba(255, 255, 255, .035); }
.lv-dialog-cancel:hover { color: var(--text, #f2f4f8); border-color: #566077; }
.lv-dialog-confirm { color: #fff; background: linear-gradient(135deg, var(--accent, #7c5cfc), #6655e8); border-color: transparent; }
.lv-dialog-confirm-warning { color: #17120a; background: linear-gradient(135deg, #fbbf24, #f59e0b); }
.lv-dialog-confirm-danger { background: linear-gradient(135deg, #ef4444, #dc3652); }

@media (max-width: 520px) {
  .lv-dialog-overlay { align-items: end; padding: 12px; }
  .lv-dialog { padding: 19px; border-radius: 18px; }
  .lv-dialog-actions { flex-direction: column-reverse; }
  .lv-dialog-button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .lv-dialog-overlay, .lv-dialog { transition: none; }
}
