/* Shared v2 design layer for every non-home public surface. */
:root {
  --site-v2-purple: #8755ff;
  --site-v2-pink: #ff4d9b;
  --site-v2-cyan: #43d7ff;
  --site-v2-yellow: #ffd34e;
  --site-v2-ink: #fff8ed;
  --site-v2-muted: #d5cce7;
  --site-v2-night: #17122d;
  --site-v2-night-deep: #100d22;
  --site-v2-line: rgba(255, 248, 237, 0.18);
}

body.site-v2 {
  background:
    radial-gradient(circle at 8% 8%, rgba(67, 215, 255, 0.12), transparent 24rem),
    radial-gradient(circle at 90% 12%, rgba(255, 77, 155, 0.12), transparent 22rem),
    var(--site-v2-night-deep);
  color: var(--site-v2-ink);
}

body.site-v2::before {
  background-image: radial-gradient(rgba(255, 255, 255, 0.1) 1px, transparent 1px);
  background-size: 1.2rem 1.2rem;
  content: '';
  inset: 0;
  opacity: 0.24;
  pointer-events: none;
  position: fixed;
  z-index: -1;
}

body.site-v2 .navbar {
  background: rgba(20, 15, 43, 0.94);
  border-bottom: 2px solid rgba(255, 211, 78, 0.72);
  box-shadow: 0 12px 36px rgba(10, 7, 25, 0.22);
}

body.site-v2 .nav-link {
  border-radius: 0.5rem;
  color: #e3dcef;
  font-weight: 700;
}

body.site-v2 .nav-link:hover,
body.site-v2 .nav-link.active {
  background: rgba(255, 255, 255, 0.11);
  color: #fff;
}

body.site-v2 .nav-menu > .nav-link[data-page="download"] {
  background: var(--site-v2-pink);
  box-shadow: 4px 4px 0 #43226f;
  color: #fff;
}

body.site-v2 .nav-menu > .nav-link[data-page="download"]:hover {
  background: #ff75b4;
}

body.site-v2 .beta-notice {
  background: linear-gradient(100deg, #3b236c, #1e3e67);
  border-bottom-color: rgba(255, 255, 255, 0.2);
  color: var(--site-v2-ink);
}

body.site-v2 .hero,
body.site-v2 .installer-hero {
  background:
    radial-gradient(circle at 84% 24%, rgba(67, 215, 255, 0.36), transparent 22rem),
    radial-gradient(circle at 18% 78%, rgba(255, 77, 155, 0.3), transparent 25rem),
    linear-gradient(135deg, #261650 0%, #17122d 58%, #1c335b 100%);
  border-bottom: 1px solid var(--site-v2-line);
  color: var(--site-v2-ink);
  overflow: hidden;
  position: relative;
}

body.site-v2 .hero::before,
body.site-v2 .installer-hero::before {
  background-image: radial-gradient(rgba(255, 255, 255, 0.2) 1.2px, transparent 1.2px);
  background-size: 1.1rem 1.1rem;
  content: '';
  inset: 0;
  mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0.58), transparent 76%);
  pointer-events: none;
  position: absolute;
}

body.site-v2 .hero > .container,
body.site-v2 .installer-hero > .container,
body.site-v2 .hero .container {
  position: relative;
  z-index: 1;
}

body.site-v2 .hero-title,
body.site-v2 .hero h1,
body.site-v2 .installer-hero h1 {
  color: var(--site-v2-ink);
  letter-spacing: -0.055em;
}

body.site-v2 .hero-highlight {
  background: linear-gradient(90deg, var(--site-v2-pink), #bd7cff 48%, var(--site-v2-cyan));
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
}

body.site-v2 .hero-description,
body.site-v2 .section-subtitle,
body.site-v2 .section-description {
  color: var(--site-v2-muted);
}

body.site-v2 section:not(.hero):not(.installer-hero) {
  position: relative;
}

body.site-v2 .features-preview,
body.site-v2 .developer-features,
body.site-v2 .content-section,
body.site-v2 .cta-section {
  background: linear-gradient(150deg, rgba(35, 25, 74, 0.96), rgba(23, 18, 45, 0.96));
  color: var(--site-v2-ink);
}

body.site-v2 .features-preview:nth-of-type(even),
body.site-v2 .content-section:nth-of-type(even) {
  background: linear-gradient(150deg, rgba(18, 56, 83, 0.94), rgba(31, 24, 66, 0.96));
}

body.site-v2 .feature-card,
body.site-v2 .plugin-card,
body.site-v2 .install-card,
body.site-v2 .faq-item,
body.site-v2 .support-card,
body.site-v2 .community-card,
body.site-v2 .roadmap-item,
body.site-v2 .card,
body.site-v2 .screenshot-container {
  background: rgba(255, 255, 255, 0.07);
  border: 2px solid rgba(255, 255, 255, 0.18);
  border-radius: 1rem;
  box-shadow: 5px 5px 0 rgba(10, 7, 25, 0.3);
  color: var(--site-v2-ink);
}

body.site-v2 .feature-card:hover,
body.site-v2 .plugin-card:hover,
body.site-v2 .card:hover {
  border-color: var(--site-v2-cyan);
  transform: translateY(-3px);
}

body.site-v2 .feature-icon {
  display: grid;
  place-items: center;
  width: 5.25rem;
  height: 5.25rem;
  padding: .65rem;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 1.25rem;
  background: linear-gradient(145deg, rgba(255, 255, 255, .98), rgba(238, 235, 255, .92));
  box-shadow: 0 10px 24px rgba(10, 8, 32, .24);
}

body.site-v2 .feature-icon__logo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: .75rem;
}

body.site-v2 .section-title,
body.site-v2 h2,
body.site-v2 h3 {
  color: var(--site-v2-ink);
}

body.site-v2 p,
body.site-v2 li,
body.site-v2 label {
  color: var(--site-v2-muted);
}

body.site-v2 a:not(.nav-link):not(.logo) {
  color: var(--site-v2-cyan);
}

body.site-v2 .btn,
body.site-v2 button.btn,
body.site-v2 .cta-button,
body.site-v2 .download-button,
body.site-v2 .copy-btn {
  background: var(--site-v2-yellow);
  border: 2px solid #24163f;
  border-radius: 0.7rem;
  box-shadow: 4px 4px 0 #6c3fa8;
  color: #251b3e;
  font-weight: 800;
}

body.site-v2 .btn:hover,
body.site-v2 button.btn:hover,
body.site-v2 .cta-button:hover,
body.site-v2 .download-button:hover,
body.site-v2 .copy-btn:hover {
  background: #ffe68e;
  color: #251b3e;
  transform: translateY(-2px);
}

/* CTA links must retain the same high-contrast ink as buttons. The generic
   site link color is cyan, which is not readable on the yellow CTA surface. */
body.site-v2 a.btn,
body.site-v2 a.cta-button,
body.site-v2 a.download-button,
body.site-v2 a.copy-btn,
body.site-v2 a.btn:visited {
  color: #251b3e !important;
}

body.site-v2 a.btn:hover,
body.site-v2 a.cta-button:hover,
body.site-v2 a.download-button:hover,
body.site-v2 a.copy-btn:hover {
  color: #251b3e !important;
}

body.site-v2 input,
body.site-v2 textarea,
body.site-v2 select {
  background: rgba(8, 10, 28, 0.72);
  border-color: rgba(255, 255, 255, 0.22);
  border-radius: 0.65rem;
  color: var(--site-v2-ink);
}

body.site-v2 input:focus,
body.site-v2 textarea:focus,
body.site-v2 select:focus,
body.site-v2 a:focus-visible,
body.site-v2 button:focus-visible {
  outline: 3px solid var(--site-v2-cyan);
  outline-offset: 3px;
}

body.site-v2 .footer {
  background:
    radial-gradient(circle at 12% 18%, rgba(62, 205, 131, 0.26), transparent 18rem),
    radial-gradient(circle at 86% 24%, rgba(158, 94, 234, 0.3), transparent 20rem),
    linear-gradient(145deg, #11142c 0%, #231545 52%, #16112d 100%);
  border-top: 4px solid var(--site-v2-yellow);
}

body.site-v2 .footer-title {
  color: var(--site-v2-yellow);
}

body.site-v2 .footer-description,
body.site-v2 .footer-bottom,
body.site-v2 .footer-trademark,
body.site-v2 .footer a {
  color: #ded7ef;
}

body.site-v2 .footer a:hover {
  color: var(--site-v2-cyan);
}

body.site-v2 .docs-layout {
  background: transparent;
}

/* Legacy page shells inherit the same product surface as the refreshed home. */
body.site-v2 main,
body.site-v2 .legal-page,
body.site-v2 .page-content {
  background: transparent;
}

body.site-v2 .feature-hero {
  background:
    radial-gradient(circle at 18% 30%, rgba(255, 77, 155, 0.24), transparent 20rem),
    radial-gradient(circle at 82% 20%, rgba(67, 215, 255, 0.24), transparent 22rem),
    linear-gradient(135deg, #261650 0%, #17122d 65%, #203d63 100%);
  border-bottom: 1px solid var(--site-v2-line);
  color: var(--site-v2-ink);
  overflow: hidden;
  position: relative;
}

body.site-v2 .feature-hero-title {
  color: var(--site-v2-ink);
}

body.site-v2 .feature-plugin-logo {
  display: block;
  filter: drop-shadow(0 14px 24px rgba(5, 4, 17, 0.48));
  height: 7.5rem;
  margin: 0 auto 1.5rem;
  max-width: min(82vw, 20rem);
  object-fit: contain;
  position: relative;
  width: 100%;
  z-index: 1;
}

body.site-v2 .feature-plugin-brand {
  margin: 0 auto 1.5rem;
  max-width: min(92vw, 42rem);
  position: relative;
  z-index: 1;
}

body.site-v2 .feature-plugin-brand .feature-plugin-logo {
  height: 12rem;
  margin: 0;
  max-width: none;
  object-fit: cover;
  object-position: center 52%;
}

body.site-v2 .feature-plugin-icon {
  border: 2px solid rgba(126, 244, 190, 0.82);
  border-radius: 50%;
  bottom: -1.1rem;
  box-shadow: 0 12px 24px rgba(2, 5, 14, 0.64), 0 0 0 6px rgba(38, 30, 70, 0.72);
  height: 5.2rem;
  object-fit: cover;
  object-position: center;
  position: absolute;
  right: 4%;
  width: 5.2rem;
}

@media (max-width: 640px) {
  body.site-v2 .feature-plugin-brand .feature-plugin-logo {
    height: 8.5rem;
  }

  body.site-v2 .feature-plugin-icon {
    bottom: -0.7rem;
    height: 4rem;
    right: 2%;
    width: 4rem;
  }
}

body.site-v2 .plugin-screenshot-grid--single > .screenshot-container:not(:first-child) {
  display: none;
}

body.site-v2 .feature-hero-subtitle,
body.site-v2 .feature-hero p {
  color: var(--site-v2-muted);
}

body.site-v2 .download-card,
body.site-v2 .info-card,
body.site-v2 .legal-section,
body.site-v2 .section-divider,
body.site-v2 .docs-nav-section,
body.site-v2 .docs-search {
  background: rgba(255, 255, 255, 0.06);
  border-color: var(--site-v2-line);
  color: var(--site-v2-ink);
}

body.site-v2 .download-card,
body.site-v2 .info-card {
  border: 2px solid rgba(255, 255, 255, 0.18);
  border-radius: 1rem;
  box-shadow: 5px 5px 0 rgba(10, 7, 25, 0.3);
}

body.site-v2 .download-card:hover,
body.site-v2 .install-card:hover {
  border-color: var(--site-v2-cyan);
  box-shadow: 6px 6px 0 rgba(10, 7, 25, 0.36);
}

body.site-v2 .legal-section h2,
body.site-v2 .legal-section h3,
body.site-v2 .docs-content h2,
body.site-v2 .docs-content h3,
body.site-v2 .docs-content h4 {
  color: var(--site-v2-ink);
}

body.site-v2 .legal-section p,
body.site-v2 .legal-section li,
body.site-v2 .docs-content p,
body.site-v2 .docs-content li,
body.site-v2 .docs-content dd {
  color: var(--site-v2-muted);
}

body.site-v2 .docs-sidebar a,
body.site-v2 .docs-nav a {
  color: #dfe9ff;
}

body.site-v2 .docs-sidebar a:hover,
body.site-v2 .docs-nav a:hover,
body.site-v2 .docs-sidebar a.active,
body.site-v2 .docs-nav a.active {
  background: rgba(67, 215, 255, 0.14);
  color: var(--site-v2-cyan);
}

body.site-v2 table {
  background: rgba(255, 255, 255, 0.05);
  border-color: var(--site-v2-line);
  color: var(--site-v2-muted);
}

body.site-v2 th {
  background: rgba(135, 85, 255, 0.3);
  color: var(--site-v2-ink);
}

body.site-v2 td {
  border-color: var(--site-v2-line);
}

body.site-v2 .section-cta {
  color: var(--site-v2-muted);
}

body.site-v2 .docs-sidebar,
body.site-v2 .docs-content {
  background: rgba(17, 20, 44, 0.84);
  border-color: var(--site-v2-line);
}

body.site-v2 pre,
body.site-v2 code {
  background: rgba(7, 9, 24, 0.88);
  border-color: rgba(67, 215, 255, 0.22);
  color: #e8dcff;
}

@media (max-width: 767px) {
  body.site-v2 .nav-menu {
    background: #17122d;
    border-color: rgba(255, 255, 255, 0.2);
  }

  body.site-v2 .nav-menu .nav-link,
  body.site-v2 .nav-menu .lang-dropdown-toggle {
    color: #fff !important;
  }

  body.site-v2 .nav-menu .nav-link:hover,
  body.site-v2 .nav-menu .nav-link:focus-visible,
  body.site-v2 .nav-menu .nav-link.active,
  body.site-v2 .nav-menu .lang-dropdown-toggle:hover,
  body.site-v2 .nav-menu .lang-dropdown-toggle:focus-visible {
    background: rgba(255, 255, 255, 0.14);
    color: #fff !important;
  }

  body.site-v2 .nav-menu .lang-dropdown-toggle {
    border-color: rgba(255, 255, 255, 0.55);
  }

  body.site-v2 .hero-title,
  body.site-v2 .hero h1 {
    font-size: clamp(2.4rem, 12vw, 4rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.site-v2 *,
  body.site-v2 *::before,
  body.site-v2 *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
/* Localized feature guides */
.feature-guide { background: var(--color-surface, #fff); border-top: 1px solid var(--color-border, #e0e2df); }
.feature-guide__header { max-width: 820px; margin: 0 auto 2rem; text-align: center; }
.feature-guide__header p, .feature-guide__note { color: var(--color-text-secondary); line-height: 1.75; }
.feature-guide__eyebrow { display: inline-block; margin-bottom: .75rem; color: var(--color-primary); font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.feature-guide__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.feature-guide__grid article { padding: 1.5rem; border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-bg); }
.feature-guide__grid article span { color: var(--color-primary); font-weight: 800; }
.feature-guide__grid h3 { margin: .65rem 0 .4rem; font-size: 1.05rem; }
.feature-guide__grid p { color: var(--color-text-secondary); line-height: 1.65; }
.feature-guide__note { max-width: 820px; margin: 1.5rem auto 0; padding: 1rem 1.25rem; border-left: 3px solid var(--color-primary); background: color-mix(in srgb, var(--color-primary) 7%, transparent); }
@media (max-width: 760px) { .feature-guide__grid { grid-template-columns: 1fr; } }

/* Public site is intentionally light-only. Keep the vivid accents, remove the
   old night-surface treatment so future pages share one predictable palette. */
body.site-v2 { background: #f5f7f4; color: #0e0f10; }
body.site-v2::before { display: none; }
body.site-v2 .navbar { background: rgba(255,255,255,.96); border-bottom-color: #12a116; box-shadow: 0 8px 24px rgba(14,15,16,.08); }
body.site-v2 .nav-link { color: #242629; }
body.site-v2 .nav-link:hover, body.site-v2 .nav-link.active { background: rgba(18,161,22,.1); color: #0d7a10; }
body.site-v2 .hero, body.site-v2 .installer-hero { background: linear-gradient(135deg,#edf8ee 0%,#fff 58%,#eef6ff 100%); border-bottom-color: #dfe8df; color: #0e0f10; }
body.site-v2 .hero-title, body.site-v2 .hero h1, body.site-v2 .installer-hero h1, body.site-v2 .section-title, body.site-v2 h2, body.site-v2 h3 { color: #0e0f10; }
body.site-v2 .hero-description, body.site-v2 .section-subtitle, body.site-v2 .section-description, body.site-v2 p, body.site-v2 li, body.site-v2 label { color: #4a4b4d; }
body.site-v2 .features-preview, body.site-v2 .developer-features, body.site-v2 .content-section, body.site-v2 .cta-section { background: #fff; color: #0e0f10; }
body.site-v2 .features-preview:nth-of-type(even), body.site-v2 .content-section:nth-of-type(even) { background: #f5f7f4; }
body.site-v2 .feature-card, body.site-v2 .plugin-card, body.site-v2 .install-card, body.site-v2 .faq-item, body.site-v2 .support-card, body.site-v2 .community-card, body.site-v2 .roadmap-item, body.site-v2 .card, body.site-v2 .screenshot-container { background: #fff; border-color: #dfe8df; box-shadow: 0 8px 20px rgba(14,15,16,.08); color: #0e0f10; }
body.site-v2 a:not(.nav-link):not(.logo) { color: #0d7a10; }

/* This banner intentionally remains dark while the public site is light.
   Exempt its interactive controls from the generic green-link rule above. */
body.site-v2 .beta-notice a {
  color: #fff !important;
  font-weight: 700;
  text-decoration-color: #f8dc72;
}
body.site-v2 .beta-notice a:hover,
body.site-v2 .beta-notice a:focus-visible {
  color: #fff !important;
  text-decoration-color: #fff;
}
body.site-v2 .beta-close,
body.site-v2 .beta-close svg {
  color: #fff;
}
body.site-v2 .beta-close {
  background: rgba(255, 255, 255, .16);
  border: 1px solid rgba(255, 255, 255, .5);
}
body.site-v2 .beta-close:hover { background: rgba(255, 255, 255, .28); }

/* The public site is light-only. These selectors intentionally come last so
   the former night-theme form and documentation rules cannot leak through. */
body.site-v2 input,
body.site-v2 textarea,
body.site-v2 select {
  background: #fff;
  border-color: #b9c5ba;
  color: #0e0f10;
}

body.site-v2 input::placeholder,
body.site-v2 textarea::placeholder {
  color: #62686d;
  opacity: 1;
}

body.site-v2 .docs-hub__hero,
body.site-v2 .plugin-doc-hero {
  background: linear-gradient(135deg, #e8f7e9, #fff 66%, #f2f8ff);
  border-color: #d5e2d6;
}

body.site-v2 .docs-plugin-card,
body.site-v2 .docs-core-guide article,
body.site-v2 .plugin-doc-section,
body.site-v2 .plugin-doc-step {
  background: #fff;
  border-color: #d5e2d6;
  box-shadow: 0 8px 20px rgba(14, 15, 16, 0.06);
}

body.site-v2 .docs-plugin-card p,
body.site-v2 .docs-plugin-empty,
body.site-v2 .plugin-doc-step p,
body.site-v2 .plugin-doc-step figcaption {
               color: #42464a;
             }

/* Public plugin catalog: compact enough to browse, readable without loading the
   full tutorial image for every plugin, and usable before its interactive data
   refresh has finished. */
body.site-v2 .plugin-catalog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
  gap: 1rem;
}

body.site-v2 .plugin-catalog-list > h3 {
  margin: 2.5rem 0 .45rem;
}

body.site-v2 .plugin-catalog-list > .section-subtitle {
  margin: 0 0 1.25rem;
}

body.site-v2 .plugin-catalog-card {
  display: flex;
  flex-direction: column;
  min-height: 16rem;
  padding: 1.25rem;
  background: #fff;
  border: 1px solid #d5e2d6;
  border-radius: 1rem;
  box-shadow: 0 8px 20px rgba(14, 15, 16, 0.06);
}

body.site-v2 .plugin-catalog-card .feature-icon {
  width: 4.25rem;
  height: 4.25rem;
  margin-bottom: .9rem;
}

body.site-v2 .plugin-catalog-card h3 {
  margin: 0 0 .55rem;
  font-size: 1.15rem;
  line-height: 1.25;
}

body.site-v2 .plugin-catalog-card p {
  margin: 0;
  color: #42464a;
  line-height: 1.55;
}

body.site-v2 .plugin-catalog-card > a,
body.site-v2 .plugin-catalog-card .btn {
  align-self: flex-start;
  margin-top: auto;
}

body.site-v2 .plugin-catalog-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: .95rem 0;
}

body.site-v2 .plugin-catalog-card__meta span {
  padding: .2rem .55rem;
  border-radius: 999px;
  background: #e8f7e9;
  color: #176b1a;
  font-size: .78rem;
  font-weight: 700;
}

@media (max-width: 640px) {
  body.site-v2 .plugin-catalog-grid { grid-template-columns: 1fr; }
  body.site-v2 .plugin-catalog-card { min-height: 0; }
}

@media (max-width: 767px) {
  body.site-v2 .nav-menu {
    background: #fff;
    border-color: #cfdacf;
  }

  body.site-v2 .nav-menu .nav-link,
  body.site-v2 .nav-menu .lang-dropdown-toggle,
  body.site-v2 .nav-menu .nav-mega-toggle,
  body.site-v2 .nav-menu .mega-item {
    color: #0e0f10 !important;
  }
}
