/* PuppetV — Slate B+ theme (preview). Keeps existing section structure;
   restyles atmosphere, accents, Free/Pro art. No splash cursor. */
body.pv-slate,
body.pv-slate * {
  cursor: auto !important;
}
body.pv-slate a,
body.pv-slate button,
body.pv-slate .card-link,
body.pv-slate .nav-links a,
body.pv-slate .lang-switch button {
  cursor: pointer !important;
}

body.pv-slate {
  --pv-bg: #080b11;
  --pv-panel: rgba(16, 21, 30, 0.88);
  --pv-line: rgba(140, 170, 205, 0.18);
  --pv-line-hot: rgba(90, 220, 230, 0.35);
  --pv-text: #e8eef6;
  --pv-muted: #8b96a8;
  --pv-accent: #9db8d4;
  --pv-cyan: #5adce6;
  --pv-free: #ff8a3d;
  --white: var(--pv-text);
  --accent: var(--pv-accent);
  --glass-border: var(--pv-line);
  background: var(--pv-bg) !important;
  color: var(--pv-text);
}

/* Kill legacy / futurist chrome on this preview */
body.pv-slate #cursor,
body.pv-slate #cursor-ring,
body.pv-slate .cursor,
body.pv-slate .cursor-ring,
body.pv-slate .orb,
body.pv-slate .site-flag-bg,
body.pv-slate .site-flag-vignette,
body.pv-slate .site-flag-filters,
body.pv-slate #drs-futurist-bg,
body.pv-slate #drs-splash-cursor {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Atmosphere */
#pv-slate-atm {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
#pv-slate-atm .blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(90px);
  will-change: transform;
}
#pv-slate-atm .blob.a {
  width: min(62vw, 680px);
  height: min(62vw, 680px);
  left: -14%;
  top: -22%;
  background: radial-gradient(circle, rgba(60, 120, 180, 0.38), transparent 68%);
  animation: pvDriftA 20s ease-in-out infinite alternate;
}
#pv-slate-atm .blob.b {
  width: min(50vw, 560px);
  height: min(50vw, 560px);
  right: -12%;
  top: 18%;
  background: radial-gradient(circle, rgba(70, 200, 210, 0.16), transparent 70%);
  animation: pvDriftB 26s ease-in-out infinite alternate;
}
#pv-slate-atm .blob.c {
  width: min(55vw, 600px);
  height: min(55vw, 600px);
  left: 25%;
  bottom: -25%;
  background: radial-gradient(circle, rgba(255, 120, 50, 0.08), transparent 70%);
  animation: pvDriftC 22s ease-in-out infinite alternate;
}
#pv-slate-atm .grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(140, 170, 205, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(140, 170, 205, 0.04) 1px, transparent 1px);
  background-size: 52px 52px;
  mask-image: radial-gradient(ellipse at 50% 25%, black 15%, transparent 72%);
  animation: pvGrid 36s linear infinite;
}
#pv-slate-atm .sweep {
  position: absolute;
  inset: -35% -15%;
  background: linear-gradient(108deg, transparent 38%, rgba(90, 220, 230, 0.07) 50%, transparent 62%);
  animation: pvSheen 14s linear infinite;
}
#pv-slate-atm .vignette {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at center, transparent 28%, rgba(5, 7, 12, 0.82) 100%),
    linear-gradient(180deg, rgba(5, 7, 12, 0.45), transparent 16%, transparent 78%, rgba(5, 7, 12, 0.92));
}
@keyframes pvDriftA { to { transform: translate(14%, 18%) scale(1.12); } }
@keyframes pvDriftB { to { transform: translate(-16%, 10%) scale(1.1); } }
@keyframes pvDriftC { to { transform: translate(8%, -14%) scale(1.08); } }
@keyframes pvSheen { to { transform: translateX(22%); } }
@keyframes pvGrid { to { background-position: 52px 52px; } }
@keyframes pvFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
@media (prefers-reduced-motion: reduce) {
  #pv-slate-atm .blob,
  #pv-slate-atm .sweep,
  #pv-slate-atm .grid,
  body.pv-slate .plan-edition img { animation: none !important; }
}

body.pv-slate > *:not(#pv-slate-atm):not(#drs-slate-atm) {
  position: relative;
  z-index: 2;
}

/* Preview banner */
.pv-slate-preview-bar {
  position: sticky;
  top: 0;
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  padding: 0.55rem 1.25rem;
  background: rgba(10, 14, 22, 0.94);
  border-bottom: 1px solid var(--pv-line);
  backdrop-filter: blur(10px);
  font-family: var(--font-m), 'Space Mono', ui-monospace, monospace;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  color: var(--pv-muted);
}
.pv-slate-preview-bar strong { color: var(--pv-cyan); font-weight: 500; }
.pv-slate-preview-bar a { color: var(--pv-cyan); text-decoration: none; }
.pv-slate-preview-bar a:hover { text-decoration: underline; }

/* Nav */
body.pv-slate nav#nav,
body.pv-slate #nav {
  background: rgba(8, 11, 17, 0.88) !important;
  border-bottom: 1px solid var(--pv-line) !important;
  backdrop-filter: blur(8px) !important;
}
body.pv-slate .nav-logo span { letter-spacing: 0.08em; }

/* Page head */
body.pv-slate .page-eyebrow { color: var(--pv-cyan) !important; }
body.pv-slate .page-title {
  background: linear-gradient(90deg, var(--pv-text), var(--pv-cyan));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
body.pv-slate .page-intro { color: var(--pv-muted) !important; }

/* Badge / meta */
body.pv-slate .puppetv-badge {
  color: var(--pv-cyan);
  border-color: rgba(90, 220, 230, 0.35);
  background: rgba(90, 220, 230, 0.08);
}
body.pv-slate .puppetv-meta li {
  color: var(--pv-muted);
  border-color: var(--pv-line);
}
body.pv-slate .puppetv-lede { color: var(--pv-muted); }
body.pv-slate .puppetv-footnote { color: rgba(139, 150, 168, 0.75); }

/* Preview frame */
body.pv-slate .puppetv-preview {
  border-color: var(--pv-line);
  background: rgba(0, 0, 0, 0.35);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.4);
}
body.pv-slate .puppetv-preview figcaption {
  color: var(--pv-muted);
  border-top-color: var(--pv-line);
}

/* Buttons */
body.pv-slate .puppetv-btns .card-link,
body.pv-slate .plan-card .card-link {
  border: 1px solid var(--pv-line);
  background: transparent;
  color: var(--pv-text);
  transition: border-color 0.2s, background 0.2s, transform 0.2s;
}
body.pv-slate .puppetv-btns .card-link:hover,
body.pv-slate .plan-card .card-link:hover {
  border-color: var(--pv-free);
  color: #ffb07a;
  transform: translateY(-1px);
}
body.pv-slate .btn-pro-glow {
  background: var(--pv-cyan) !important;
  color: #071018 !important;
  border: 1px solid var(--pv-cyan) !important;
  font-weight: 700;
  box-shadow: none !important;
}
body.pv-slate .btn-pro-glow:hover {
  background: #7aebf2 !important;
  border-color: #7aebf2 !important;
  color: #071018 !important;
}

/* Section labels */
body.pv-slate .section-label {
  color: var(--pv-accent) !important;
  border-color: var(--pv-line) !important;
}

/* Gallery / cards */
body.pv-slate .pv-gallery figure,
body.pv-slate .feature-pv,
body.pv-slate .pv-news li,
body.pv-slate .pv-steps li,
body.pv-slate .pv-pack,
body.pv-slate .pv-req article,
body.pv-slate .plan-card,
body.pv-slate .compliance-card {
  border-color: var(--pv-line) !important;
  background: var(--pv-panel) !important;
  border-radius: 2px !important;
}
body.pv-slate .pv-gallery h3,
body.pv-slate .feature-pv h4,
body.pv-slate .pv-req h3,
body.pv-slate .pv-steps code {
  color: var(--pv-cyan) !important;
}
body.pv-slate .pv-gallery p,
body.pv-slate .feature-pv p,
body.pv-slate .pv-news p,
body.pv-slate .pv-steps p,
body.pv-slate .pv-pack p,
body.pv-slate .pv-req p,
body.pv-slate .plan-list li {
  color: var(--pv-muted) !important;
}

body.pv-slate .pv-news .tag {
  background: var(--pv-free);
  color: #1a0f08;
}
body.pv-slate .pv-news .tag.pro {
  background: var(--pv-cyan);
  color: #071018;
}

body.pv-slate .pv-steps li::before {
  background: var(--pv-cyan);
  color: #071018;
}

body.pv-slate .plan-card.pro {
  border-color: var(--pv-line-hot) !important;
  box-shadow: inset 0 0 0 1px rgba(90, 220, 230, 0.06);
}
body.pv-slate .plan-card:not(.pro) {
  border-color: rgba(255, 138, 61, 0.28) !important;
}
body.pv-slate .plan-list li::before {
  color: var(--pv-cyan);
}
body.pv-slate .plan-card:not(.pro) .plan-list li::before {
  color: var(--pv-free);
}
body.pv-slate .plan-price { color: var(--pv-accent); }
body.pv-slate .plan-was { color: rgba(139, 150, 168, 0.7); }
body.pv-slate .plan-now { color: var(--pv-accent); }
body.pv-slate .plan-note { color: rgba(139, 150, 168, 0.75); }

/* Free / Pro edition art inside compare cards */
.plan-edition {
  display: grid;
  place-items: center;
  margin: -0.15rem -0.15rem 0.85rem;
  padding: 1rem 0.75rem 0.5rem;
  background:
    radial-gradient(ellipse at 50% 30%, rgba(200, 184, 154, 0.1), transparent 65%),
    linear-gradient(180deg, rgba(18, 24, 34, 0.35), transparent);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 18px 18px 0 0;
}
.plan-card:not(.pro) .plan-edition {
  background:
    radial-gradient(ellipse at 50% 30%, rgba(255, 138, 61, 0.1), transparent 65%),
    linear-gradient(180deg, rgba(28, 20, 14, 0.25), transparent);
}
.plan-edition img {
  width: min(100%, 200px);
  height: auto;
  filter: drop-shadow(0 12px 28px rgba(0, 0, 0, 0.45));
}

body.pv-slate footer {
  border-top: 1px solid var(--pv-line) !important;
  background: rgba(8, 11, 17, 0.9) !important;
}
