/* VENTRA — content editor UI + optional effects */

/* ── Edit mode overlays ── */
html[data-nv-edit-mode="1"] .nv-edit-block {
  outline: 1px dashed rgba(232, 197, 71, 0.45);
  outline-offset: 4px;
}
.nv-edit-block {
  position: relative;
}
.nv-edit-fab {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 20;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: var(--card);
  color: var(--gold);
  font-size: 0.95rem;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
  opacity: 0;
  transform: scale(0.9);
  transition: opacity 0.2s, transform 0.2s;
}
html[data-nv-edit-mode="1"] .nv-edit-fab {
  opacity: 1;
  transform: scale(1);
}
.nv-edit-fab:hover {
  border-color: var(--gold);
  transform: scale(1.06);
}
.nv-edit-extra-img {
  width: 100%;
  max-height: 200px;
  object-fit: cover;
  border-radius: var(--radius);
  margin-top: 12px;
}

/* ── Editor modal ── */
.nv-content-editor {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.nv-content-editor[hidden] { display: none !important; }
.nv-content-editor__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(4px);
}
.nv-content-editor__panel {
  position: relative;
  width: min(440px, 100%);
  max-height: 88vh;
  overflow: auto;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: var(--card);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.35);
}
.nv-content-editor__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
}
.nv-content-editor__head button {
  background: none;
  border: none;
  font-size: 1.1rem;
  cursor: pointer;
  color: var(--muted);
}
.nv-content-editor__body {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.nv-ce-field label {
  display: block;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 6px;
  color: var(--muted);
}
.nv-ce-field input[type="url"],
.nv-ce-field input[type="text"],
.nv-ce-field textarea,
.nv-ce-field select {
  width: 100%;
  box-sizing: border-box;
  padding: 9px 11px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: var(--bg-elevated);
  color: var(--text);
  font: inherit;
  font-size: 0.84rem;
}
.nv-ce-field small {
  display: block;
  margin-top: 5px;
  font-size: 0.68rem;
  color: var(--muted);
}
.nv-ce-upload {
  display: inline-block;
  margin-top: 8px;
  font-size: 0.75rem;
  color: var(--gold);
  cursor: pointer;
}
.nv-ce-upload input { display: none; }
.nv-content-editor__foot {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  padding: 12px 16px;
  border-top: 1px solid var(--line);
}
.nv-ce-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.78rem;
  margin-bottom: 6px;
  cursor: pointer;
}
body.nv-ce-open { overflow: hidden; }

/* ── Hero video slot ── */
.nv-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.nv-hero__video:not([hidden]) + img {
  opacity: 0;
}

/* ── Global effects ── */
html[data-nv-fx-hero-cinematic="1"] .nv-hero--premium .nv-hero__photo img,
html[data-nv-fx-hero-cinematic="1"] .nv-hero__photo img {
  animation: nv-kenburns 18s ease-in-out infinite alternate;
}
@keyframes nv-kenburns {
  from { transform: scale(1); }
  to { transform: scale(1.08); }
}

html[data-nv-fx-shimmer="1"] h1,
html[data-nv-fx-shimmer="1"] h2,
html[data-nv-fx-shimmer="1"] .nv-home-featured-head h2 {
  background: linear-gradient(90deg, var(--text) 0%, var(--gold) 45%, var(--text) 90%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: nv-shimmer 4s linear infinite;
}
@keyframes nv-shimmer {
  to { background-position: 200% center; }
}

html[data-nv-fx-aurora="1"] body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(ellipse 40% 30% at 20% 20%, rgba(232, 197, 71, 0.12), transparent 55%),
    radial-gradient(ellipse 35% 28% at 80% 30%, rgba(96, 165, 250, 0.1), transparent 50%),
    radial-gradient(ellipse 45% 35% at 50% 90%, rgba(167, 139, 250, 0.08), transparent 55%);
  animation: nv-aurora 12s ease-in-out infinite alternate;
}
@keyframes nv-aurora {
  from { opacity: 0.6; transform: scale(1); }
  to { opacity: 1; transform: scale(1.03); }
}

html[data-nv-fx-sparkle="1"] body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  opacity: 0.35;
  background-image:
    radial-gradient(1px 1px at 10% 20%, var(--gold), transparent),
    radial-gradient(1px 1px at 80% 40%, #fff, transparent),
    radial-gradient(1.5px 1.5px at 40% 70%, var(--gold), transparent),
    radial-gradient(1px 1px at 65% 15%, #fff, transparent);
  background-size: 100% 100%;
  animation: nv-sparkle 6s ease-in-out infinite;
}
@keyframes nv-sparkle {
  50% { opacity: 0.55; }
}

html[data-nv-fx-grain="1"] .nv-grain,
html[data-nv-fx-grain="1"] .nv-hero__fx--grain {
  display: block !important;
  opacity: 0.12;
}

html[data-nv-fx-glass="1"] .nv-card,
html[data-nv-fx-glass="1"] .nv-card--premium,
html[data-nv-fx-glass="1"] .nv-aside-card,
html[data-nv-fx-glass="1"] .nv-lane {
  background: rgba(255, 255, 255, 0.06) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

html[data-nv-fx-card-lift="1"] .nv-card:hover,
html[data-nv-fx-card-lift="1"] .nv-card--premium:hover {
  transform: translateY(-6px) scale(1.01);
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.18);
}

.nv-fx-scroll {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.55s ease, transform 0.55s ease;
}
.nv-fx-scroll.nv-fx-in {
  opacity: 1;
  transform: none;
}

/* Per-block effects */
.nv-fx-block--reveal { animation: nv-title-in 0.8s ease-out both; }
.nv-fx-block--shimmer h1,
.nv-fx-block--shimmer h2,
.nv-fx-block--shimmer h3 {
  background: linear-gradient(90deg, var(--text), var(--gold), var(--text));
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: nv-shimmer 3.5s linear infinite;
}
.nv-fx-block--glow {
  box-shadow: 0 0 40px var(--glow);
}
.nv-fx-block--sparkle::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 30% 20%, var(--gold), transparent 40%);
  opacity: 0.15;
  animation: nv-sparkle 5s ease infinite;
}
.nv-fx-block--glass {
  backdrop-filter: blur(14px);
  background: rgba(255, 255, 255, 0.05) !important;
}
.nv-fx-block--cinematic img {
  animation: nv-kenburns 14s ease-in-out infinite alternate;
}
.nv-fx-block--aurora {
  position: relative;
}
.nv-fx-block--aurora::before {
  content: "";
  position: absolute;
  inset: -8px;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(135deg, var(--glow), transparent 60%);
  opacity: 0.5;
  z-index: -1;
}

@media (prefers-reduced-motion: reduce) {
  html[data-nv-fx-hero-cinematic="1"] .nv-hero__photo img,
  html[data-nv-fx-shimmer="1"] h1,
  .nv-fx-block--shimmer h1,
  .nv-fx-scroll { animation: none !important; transition: none !important; opacity: 1 !important; transform: none !important; }
}
