/* ==========================================================================
   VYBE STUDIO - DESIGN SYSTEM & STYLESHEET
   ========================================================================== */

/* Fonts ab HTML <head> se aate hain @import se browser ko
   pehle style.css poori padhni padti thi, phir fonts maangne
   jaata tha. Ab dono saath shuru hote hain. */


:root {
  --bg-dark: #070709;
  --bg-card: #111217;
  --bg-card-hover: #181920;
  --surface-border: rgba(255, 255, 255, 0.08);
  --surface-border-bright: rgba(255, 255, 255, 0.18);
  
  /* Single warm accent. The site used to run a cyan + coral pair; every
     cyan surface has now been folded into the coral ramp, so this is the
     one source of truth. The old --accent-cyan / -lime / -purple names are
     kept as aliases purely so nothing downstream breaks prefer
     --accent-coral in new rules. */
  --accent-coral: #ff6b35;
  --accent-coral-bright: #ff9c6b;
  --accent-coral-deep: #e8451c;
  --accent-coral-glow: rgba(255, 107, 53, 0.35);

  /* Gold picked off the logo's wordmark. Used for the stream counts on
     the Hall of Fame cards, where it reads as an award/achievement colour. */
  --accent-gold: #ffc83d;

  /* Legacy aliases all resolve to the coral ramp above. */
  --accent-cyan: var(--accent-coral);
  --accent-cyan-bright: var(--accent-coral-bright);
  --accent-cyan-glow: var(--accent-coral-glow);

  --accent-lime: var(--accent-coral);
  --accent-lime-bright: var(--accent-coral-bright);
  --accent-lime-glow: var(--accent-coral-glow);

  --accent-purple: var(--accent-coral);
  --accent-purple-deep: var(--accent-coral-deep);
  --accent-purple-glow: var(--accent-coral-glow);
  
  --text-main: #ffffff;
  --text-muted: #9aa0a6;
  --text-dim: #656b73;
  
  --font-heading: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-body: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  
  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-xl: 32px;

  --transition-fast: 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  --transition-normal: 0.35s cubic-bezier(0.16, 1, 0.3, 1);

  /* Single source of truth for header height drawer, mega panels and
     scroll-margin all derive from this, so mobile can shrink it safely. */
  --nav-h: 80px;
  --gutter: 24px;
}

/* Base resets */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  font-size: 16px;
}

body {
  background-color: var(--bg-dark);
  color: var(--text-main);
  font-family: var(--font-body);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  cursor: pointer;
  font-family: inherit;
  border: none;
  background: none;
  color: inherit;
}

img, svg {
  display: block;
  max-width: 100%;
}

img {
  height: auto;
}

/* ==========================================================================
   TOUCH / ANDROID BASELINE
   ========================================================================== */

/* Kill the grey flash Android Chrome paints over every tap */
a, button, input, select, textarea, label, [role="button"] {
  -webkit-tap-highlight-color: transparent;
}

/* Android & iOS zoom the page when a focused field is under 16px */
input, select, textarea, button {
  font-family: inherit;
  font-size: 16px;
}

/* Visible focus for keyboard users without a ring on every tap */
:focus-visible {
  outline: 2px solid var(--accent-lime);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Long unbroken strings (emails, URLs) must not force a horizontal scroll */
h1, h2, h3, h4, p, li, a {
  overflow-wrap: break-word;
}

/* ---- Scroll smoothness -------------------------------------
   Neeche wale bhaari sections tab tak render nahi hote jab tak
   screen ke paas na aayein. Homepage lamba hai, isliye purane
   Android phones par pehla paint bahut jaldi ho jaata hai.
   contain-intrinsic-size zaroori hai iske bina scrollbar
   kudta hai. */
section.app-download,
section.whats {
  content-visibility: auto;
  contain-intrinsic-size: auto 720px;
}

/* Momentum scroll + chhote screens par overscroll chain rokna */
body {
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: none;
}

/* Touch devices par hover animations chalte hi nahi, par unka
   GPU cost lagta hai isliye unhe pointer wale devices tak
   seemit rakhte hain. */
@media (hover: none) {
  .logo-card:hover .brand-tile { transform: none; }
}

/* Respect the OS "reduce motion" setting marquees and float loops
   are the worst offenders on low-power Android devices. */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* Hover effects only where a real pointer exists on touch these
   otherwise "stick" after a tap until the user taps elsewhere. */
@media (hover: none) {
  .tool:hover,
  .hof-card:hover,
  .app-card:hover,
  .pricing-card:hover,
  .btn-start-releasing:hover,
  .btn-see-stores:hover,
  .master-button:hover,
  .cta-strip a:hover {
    transform: none;
  }

  .hof-marquee:hover {
    animation-play-state: running;
  }
}

/* Respect Android gesture-nav / notch insets */
footer {
  padding-bottom: calc(40px + env(safe-area-inset-bottom));
}

/* Minimum 44px touch targets on finger-driven devices */
@media (pointer: coarse) {
  .vybe-nav-toggle {
    width: 44px;
    height: 44px;
    padding: 7px;
  }

  .footer-col a,
  .footer-bottom-links a,
  .vybe-nav-locale-list a,
  .vybe-mega-links a {
    display: flex;
    align-items: center;
    min-height: 44px;
  }

  .footer-col ul {
    gap: 0;
  }

  .consent-row input[type="checkbox"] {
    width: 22px;
    height: 22px;
  }

  .tool .arrow,
  .whats-card a {
    min-height: 44px;
  }
}

/* Range slider: the default Android thumb is too small to drag reliably */
input[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 28px;
  background: transparent;
  touch-action: pan-y;
}

input[type="range"]::-webkit-slider-runnable-track {
  height: 6px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.12);
}

input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 26px;
  height: 26px;
  margin-top: -10px;
  border-radius: 50%;
  background: var(--accent-lime);
  border: 3px solid #0d0e12;
  box-shadow: 0 0 12px var(--accent-lime-glow);
}

input[type="range"]::-moz-range-track {
  height: 6px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.12);
}

input[type="range"]::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--accent-lime);
  border: 3px solid #0d0e12;
}

/* Horizontal marquee must not hijack vertical page scrolling */
.hof-marquee-wrapper {
  touch-action: pan-y;
}

.wrap {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 var(--gutter);
}

/* Fix section scroll-margin so fixed header never covers content */
section, .act {
  scroll-margin-top: calc(var(--nav-h) + 16px);
}

/* ==========================================================================
   NAVIGATION BAR & BRAND LOGO (VYBE STUDIO)
   ========================================================================== */

.vybe-nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background: rgba(7, 7, 9, 0.95);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--surface-border);
  transition: background var(--transition-fast);
}

.vybe-nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--nav-h);
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 var(--gutter);
  gap: 16px;
}

/* Vybe Studio logo link */
.vybe-nav-logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  flex-shrink: 0;
}

/* Logo image. Height-driven so it always sits inside the nav bar; width
   follows the mark's 1.598:1 ratio automatically. The intrinsic width/height
   attributes on the <img> reserve space so the header doesn't shift while
   the file loads. */
.logo-img {
  height: 56px;
  width: auto;
  display: block;
}

.logo-img--footer {
  height: 72px;
}

.vybe-nav-list {
  display: flex;
  align-items: center;
  gap: 28px;
  list-style: none;
}

.vybe-nav-list button,
.vybe-nav-list a {
  font-size: 15px;
  font-weight: 600;
  color: #d1d5db;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: color var(--transition-fast);
  padding: 12px 0;
}

.vybe-nav-list button:hover,
.vybe-nav-list a:hover {
  color: #ffffff;
}

.vybe-nav-list button .caret svg {
  width: 10px;
  height: 10px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  transition: transform var(--transition-fast);
}

.vybe-nav-list li.active button .caret svg {
  transform: rotate(180deg);
}

.vybe-nav-cta {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-shrink: 0;
}

.vybe-nav-login {
  font-size: 15px;
  font-weight: 600;
  color: #ffffff;
  padding: 10px 16px;
  transition: opacity var(--transition-fast);
}

.vybe-nav-login:hover {
  opacity: 0.8;
}

.vybe-nav-signup {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--accent-lime);
  color: #000;
  font-weight: 700;
  font-size: 14px;
  padding: 12px 22px;
  border-radius: 100px;
  transition: transform var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);
}

.vybe-nav-signup:hover {
  background: var(--accent-lime-bright);
  transform: translateY(-1px);
  box-shadow: 0 0 20px var(--accent-lime-glow);
}

.vybe-nav-signup .arrow svg {
  width: 12px;
  height: 12px;
  stroke: #000;
  stroke-width: 2;
  fill: none;
  transition: transform var(--transition-fast);
}

.vybe-nav-signup:hover .arrow svg {
  transform: translateX(3px);
}

/* Locale selector */
.vybe-nav-locale {
  position: relative;
}

.vybe-nav-locale-toggle {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 700;
  color: var(--text-muted);
  padding: 6px 10px;
  border: 1px solid var(--surface-border);
  border-radius: 20px;
}

.vybe-nav-locale-list {
  display: none;
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 8px;
  background: #14151a;
  border: 1px solid var(--surface-border-bright);
  border-radius: 12px;
  list-style: none;
  padding: 8px;
  box-shadow: 0 20px 40px rgba(0,0,0,0.5);
  z-index: 1010;
  min-width: 80px;
}

.vybe-nav-locale.active .vybe-nav-locale-list {
  display: block;
}

.vybe-nav-locale-list a {
  display: block;
  padding: 6px 12px;
  font-size: 13px;
  font-weight: 600;
  color: var(--text-muted);
  border-radius: 6px;
}

.vybe-nav-locale-list a:hover,
.vybe-nav-locale-list a.is-current {
  color: #fff;
  background: rgba(255,255,255,0.08);
}

/* Mobile Toggle */
.vybe-nav-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  width: 30px;
  height: 30px;
  justify-content: center;
  flex-shrink: 0;
}

.vybe-nav-toggle span {
  display: block;
  height: 2px;
  width: 100%;
  background: #fff;
  border-radius: 2px;
  transition: transform var(--transition-fast);
}

/* MEGA MENU PANELS */
.vybe-mega-panel {
  display: none;
  position: absolute;
  top: var(--nav-h);
  left: 0;
  width: 100%;
  background: #0e0f14;
  border-bottom: 1px solid var(--surface-border-bright);
  padding: 40px 0 50px 0;
  box-shadow: 0 40px 80px rgba(0, 0, 0, 0.85);
  z-index: 999;
}

.vybe-mega-panel.is-open {
  display: block !important;
  animation: slideDown 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes slideDown {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Side "More … tools" column hata diya ab cards poori width lete hain.
   Width nav-inner (1320px) ke barabar rakhi hai taaki logo/menu se align rahe. */
.vybe-mega-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 var(--gutter);
}

.vybe-mega-eyebrow {
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--accent-coral);
  margin-bottom: 12px;
}

.vybe-mega-title {
  font-family: var(--font-heading);
  font-size: 32px;
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 24px;
}

.vybe-mega-title .lime { color: var(--accent-coral); }
.vybe-mega-title .purple { color: var(--accent-purple); }

.vybe-mega-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.vybe-mega-card {
  background: var(--bg-card);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-md);
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: transform var(--transition-fast), border-color var(--transition-fast);
}

.vybe-mega-card:hover {
  transform: translateY(-4px);
  border-color: rgba(255, 255, 255, 0.25);
  background: var(--bg-card-hover);
}

.vybe-mega-card .ic {
  width: 50px;
  height: 50px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
}

.vybe-mega-card h4 {
  font-family: var(--font-heading);
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 6px;
}

.vybe-mega-card p {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.5;
}

.vybe-mega-side-label {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--text-muted);
  margin-bottom: 16px;
}

.vybe-mega-links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.vybe-mega-links a {
  font-size: 14px;
  font-weight: 600;
  color: #e2e8f0;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: color var(--transition-fast), transform var(--transition-fast);
}

.vybe-mega-links a:hover {
  color: var(--accent-coral);
  transform: translateX(4px);
}

/* Mobile Nav Drawer */
/* Mobile drawer uses dvh so Android Chrome's collapsing URL bar
   never clips the bottom of the menu. */
.vybe-mobile-nav {
  display: none;
  position: fixed;
  top: var(--nav-h);
  left: 0;
  width: 100%;
  height: calc(100vh - var(--nav-h));
  height: calc(100dvh - var(--nav-h));
  background: #0a0a0c;
  padding: 24px 20px calc(32px + env(safe-area-inset-bottom));
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  z-index: 998;
}

.vybe-mobile-nav.is-open {
  display: block;
  animation: slideDown 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.mobile-nav-list {
  list-style: none;
  display: flex;
  flex-direction: column;
}

.mobile-nav-list a {
  display: flex;
  align-items: center;
  min-height: 56px;
  font-size: 20px;
  font-weight: 700;
  border-bottom: 1px solid var(--surface-border);
}

/* Drawer ke andar mega menu — Distribute / Monetise / Grow tap karne
   par apne options khol dete hain (markup script.js banata hai). */
.mobile-nav-acc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-height: 56px;
  padding: 0;
  background: none;
  border: none;
  border-bottom: 1px solid var(--surface-border);
  color: #fff;
  font-family: inherit;
  font-size: 20px;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}

.mobile-nav-acc .caret {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  color: var(--text-muted);
  transition: transform var(--transition-fast), color var(--transition-fast);
}

.mobile-nav-acc .caret svg {
  width: 13px;
  height: 13px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mobile-nav-acc[aria-expanded="true"] .caret {
  transform: rotate(180deg);
  color: var(--accent-coral);
}

.mobile-nav-sub {
  display: flex;
  flex-direction: column;
  padding: 4px 0 12px;
  border-bottom: 1px solid var(--surface-border);
}

/* .mobile-nav-sub par display:flex hai, jo browser ke default [hidden]
   rule ko haraa deta hai — isliye ise alag se band karna padta hai. */
.mobile-nav-sub[hidden] { display: none; }

.mobile-nav-list .mobile-nav-subitem {
  display: flex;
  align-items: center;
  gap: 13px;
  border-bottom: none;
  min-height: 52px;
  padding: 8px 4px;
  color: #d7dbe3;
  font-size: 15.5px;
  font-weight: 600;
  line-height: 1.35;
}

.mobile-nav-list .mobile-nav-subitem .ic {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 12px;
  overflow: hidden;
}

.mobile-nav-list .mobile-nav-subitem-t {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}

/* Jo page abhi bana nahi hai wo halka dikhta hai aur kahin le nahi jaata */
.mobile-nav-list .mobile-nav-subitem.is-soon {
  opacity: 0.62;
  cursor: default;
}

.mobile-nav-cta {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 28px;
}

.mobile-nav-signup {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  background: var(--accent-lime);
  color: #000;
  font-weight: 800;
  font-size: 16px;
  border-radius: 100px;
}

.mobile-nav-login {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  border: 1px solid var(--surface-border-bright);
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  border-radius: 100px;
}

/* Hamburger → X */
.vybe-nav-toggle span {
  transform-origin: center;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.vybe-nav-toggle[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.vybe-nav-toggle[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}

.vybe-nav-toggle[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Lock the page behind the open drawer */
body.nav-open {
  overflow: hidden;
}

/* ==========================================================================
   HERO SECTION
   ========================================================================== */

.hero-new {
  position: relative;
  padding-top: 150px;
  padding-bottom: 64px;
  overflow: hidden;
  background: radial-gradient(circle at 50% 20%, rgba(255, 61, 154, 0.16) 0%, rgba(10, 10, 12, 0) 70%);
}

/* Living background glow. Two stacked motions so it never looks like a
   simple loop: the base layer breathes slowly (drift + scale), and a
   second layer flickers on an irregular rhythm like a stage light.
   Only transform and opacity are animated, so it stays on the compositor
   and costs nothing on mid-range phones. */
.hero-bg-glow {
  position: absolute;
  top: -100px;
  left: 50%;
  transform: translateX(-50%);
  width: min(800px, 140vw);
  height: min(500px, 70vw);
  background: radial-gradient(ellipse at center, rgba(255, 107, 53, 0.24) 0%, rgba(255, 61, 154, 0.3) 40%, rgba(10, 10, 12, 0) 70%);
  filter: blur(60px);
  pointer-events: none;
  will-change: transform, opacity;
  animation: heroGlowBreathe 11s ease-in-out infinite alternate;
}

.hero-bg-glow::after {
  content: "";
  position: absolute;
  inset: -12%;
  background: radial-gradient(ellipse at 58% 42%, rgba(255, 61, 154, 0.42) 0%, rgba(255, 107, 53, 0.22) 45%, rgba(10, 10, 12, 0) 72%);
  filter: blur(48px);
  will-change: opacity;
  animation: heroGlowFlicker 24s ease-in-out infinite;
}

@keyframes heroGlowBreathe {
  0%   { transform: translateX(-50%) scale(1)    translateY(0);     opacity: 0.7; }
  100% { transform: translateX(-53%) scale(1.18) translateY(20px);  opacity: 1; }
}

/* Slow, shallow swell rather than a flicker. The old version ran 16 opacity
   steps across 6.5s (~2.5 changes/sec) with a 0.3–1.0 swing, which read as a
   strobe on a bright phone screen. Now it's a 24s drift over a 0.55–0.85
   range still alive, but nothing the eye catches as blinking. */
@keyframes heroGlowFlicker {
  0%,
  100% { opacity: 0.6; }
  25%  { opacity: 0.78; }
  50%  { opacity: 0.58; }
  75%  { opacity: 0.85; }
}


.hero-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 60px;
  align-items: center;
}

.hero-copy {
  display: flex;
  flex-direction: column;
  gap: 28px;
}

/* Hero ab single column hai (signup form hata diya) sab kuch
   beech mein, Sign Up / Login buttons ke saath. */
.hero-grid--solo {
  grid-template-columns: 1fr;
  max-width: 880px;
  text-align: center;
}

.hero-grid--solo .hero-copy { align-items: center; }
.hero-grid--solo .hero-sub  { margin: 0 auto; }

.hero-grid--solo .hero-bullets {
  grid-template-columns: repeat(2, auto);
  justify-content: center;
  gap: 14px 34px;
}

.hero-grid--solo .hero-proof { justify-content: center; }

/* Sign Up / Login button pair */
.hero-auth-cta {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
}

.hero-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 158px;
  padding: 15px 34px;
  border-radius: 100px;
  font-family: var(--font-heading);
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0.01em;
  transition: transform var(--transition-fast), background var(--transition-fast),
              box-shadow var(--transition-fast), border-color var(--transition-fast);
}

.hero-cta--signup {
  background: var(--accent-coral);
  color: #10100f;
  box-shadow: 0 8px 30px var(--accent-coral-glow);
}

.hero-cta--signup:hover {
  background: var(--accent-coral-bright);
  transform: translateY(-2px);
  box-shadow: 0 12px 34px var(--accent-coral-glow);
}

.hero-cta--login {
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.25);
}

.hero-cta--login:hover {
  border-color: var(--accent-coral);
  color: var(--accent-coral);
  transform: translateY(-2px);
}

.hero-h1 {
  font-family: var(--font-heading);
  font-size: clamp(30px, 6.4vw, 58px);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -1.5px;
}

.text-accent--lime {
  color: var(--accent-coral);
  text-shadow: 0 0 30px var(--accent-coral-glow);
}

.hero-sub {
  font-size: clamp(15px, 3.6vw, 20px);
  color: #cbd5e1;
  line-height: 1.5;
  max-width: 580px;
}

.hero-bullets {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.hero-bullets li {
  font-size: 15px;
  font-weight: 600;
  color: #e2e8f0;
  display: flex;
  align-items: center;
  gap: 10px;
}

.hero-bullets li::before {
  content: "✓";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  background: rgba(255, 107, 53, 0.15);
  color: var(--accent-coral);
  font-weight: 800;
  border-radius: 50%;
  font-size: 12px;
}

.hero-proof {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-top: 12px;
  border-top: 1px solid var(--surface-border);
}

.hero-proof-pics {
  display: flex;
  align-items: center;
}

.hero-proof-pics img {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 2.5px solid var(--bg-dark);
  margin-left: -12px;
  object-fit: cover;
  background: #222;
}

.hero-proof-pics img:first-child {
  margin-left: 0;
}

.hero-proof-text {
  display: flex;
  flex-direction: column;
  font-size: 14px;
}

.hero-proof-text strong {
  color: #fff;
  font-weight: 700;
}

.hero-proof-text span {
  color: var(--text-muted);
}

/* SIGNUP CARD FORM */
.signup-card {
  background: rgba(18, 19, 24, 0.85);
  border: 1px solid var(--surface-border-bright);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: var(--radius-xl);
  padding: 36px;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.1);
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.signup-card h2 {
  font-family: var(--font-heading);
  font-size: clamp(22px, 5vw, 28px);
  font-weight: 800;
  letter-spacing: -0.5px;
}

.signup-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.form-group {
  position: relative;
}

.form-group input {
  width: 100%;
  height: 56px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-md);
  padding: 20px 16px 8px 16px;
  color: #fff;
  font-size: 16px;
  outline: none;
  transition: border-color var(--transition-fast), background var(--transition-fast);
}

.form-group input:focus {
  border-color: var(--accent-lime);
  background: rgba(255, 255, 255, 0.07);
}

.floating-label {
  position: absolute;
  left: 16px;
  top: 18px;
  color: var(--text-muted);
  font-size: 14px;
  pointer-events: none;
  transition: all var(--transition-fast);
}

.form-group input:focus ~ .floating-label,
.form-group input:not(:placeholder-shown) ~ .floating-label {
  top: 8px;
  font-size: 11px;
  font-weight: 700;
  color: var(--accent-coral);
}

.consent-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 13px;
  color: var(--text-muted);
  cursor: pointer;
  line-height: 1.4;
}

.consent-row input[type="checkbox"] {
  accent-color: var(--accent-lime);
  width: 18px;
  height: 18px;
  margin-top: 2px;
}

.consent-row a {
  color: #fff;
  text-decoration: underline;
}

.master-button {
  width: 100%;
  height: 54px;
  background: var(--accent-lime);
  color: #000;
  font-weight: 800;
  font-size: 16px;
  border-radius: 100px;
  transition: transform var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);
}

.master-button:hover {
  background: var(--accent-lime-bright);
  transform: translateY(-2px);
  box-shadow: 0 10px 25px var(--accent-lime-glow);
}

.master-button:disabled,
.social-btn:disabled {
  opacity: 0.6;
  cursor: progress;
  transform: none;
  box-shadow: none;
}

/* Hero signup ka error message (Firebase auth errors) */
.signup-error {
  display: none;
  margin-top: 14px;
  padding: 12px 14px;
  font-size: 13px;
  line-height: 1.45;
  color: #ffb59a;
  background: rgba(255, 107, 53, 0.12);
  border: 1px solid rgba(255, 107, 53, 0.4);
  border-radius: 12px;
}

.signup-error.is-visible { display: block; }

.social-divider {
  display: flex;
  align-items: center;
  text-align: center;
  color: var(--text-dim);
  font-size: 13px;
  font-weight: 600;
}

.social-divider::before,
.social-divider::after {
  content: '';
  flex: 1;
  border-bottom: 1px solid var(--surface-border);
}

.social-divider span {
  padding: 0 12px;
}

.social-buttons {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.social-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  height: 48px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid var(--surface-border);
  border-radius: 100px;
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  transition: background var(--transition-fast), border-color var(--transition-fast);
}

.social-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
}

.social-btn svg {
  width: 18px;
  height: 18px;
}

/* ==========================================================================
   ACT SECTIONS COMMON (01, 02, 03)
   ========================================================================== */

.act {
  padding: 120px 0;
  position: relative;
}

.act.dark {
  background: var(--bg-dark);
}

.act.light {
  background: #111217;
  border-top: 1px solid var(--surface-border);
  border-bottom: 1px solid var(--surface-border);
}

.kicker {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--accent-coral);
  margin-bottom: 20px;
}

.kicker .dot {
  width: 8px;
  height: 8px;
  background: var(--accent-lime);
  border-radius: 50%;
  box-shadow: 0 0 10px var(--accent-lime);
}

.h-mega {
  font-family: var(--font-heading);
  font-size: clamp(30px, 6.2vw, 56px);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -1.5px;
  margin-bottom: 20px;
}

.h-mega .purple { color: var(--accent-coral); }
.h-mega .purple-deep { color: var(--accent-purple); }
.h-mega .lime { color: var(--accent-coral); }

.lede {
  font-size: clamp(15px, 3.4vw, 20px);
  color: var(--text-muted);
  line-height: 1.5;
  max-width: 680px;
  margin-bottom: 36px;
}

/* High impact CTA buttons in Section 01 matching screenshot */
.act-ctas {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 40px;
  margin-top: 20px;
  flex-wrap: wrap;
}

.btn-start-releasing {
  background: var(--accent-lime);
  color: #000000;
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 14px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  padding: 18px 36px;
  border-radius: 100px;
  box-shadow: 0 0 25px var(--accent-lime-glow);
  transition: transform var(--transition-fast), background var(--transition-fast);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.btn-start-releasing:hover {
  background: var(--accent-lime-bright);
  transform: translateY(-2px);
}

.btn-see-stores {
  background: transparent;
  border: 1.5px solid rgba(255, 255, 255, 0.35);
  color: #ffffff;
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 14px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  padding: 18px 36px;
  border-radius: 100px;
  transition: border-color var(--transition-fast), background var(--transition-fast), transform var(--transition-fast);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.btn-see-stores:hover {
  border-color: #ffffff;
  background: rgba(255, 255, 255, 0.08);
  transform: translateY(-2px);
}

/* Section 02/03 CTAs these had no styles at all and rendered as
   bare text links. Same pill language as the section 01 buttons. */
.act-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 14px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  padding: 18px 32px;
  border-radius: 100px;
  transition: transform var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);
}

.act-cta--primary {
  background: var(--accent-lime);
  color: #000;
  box-shadow: 0 0 25px var(--accent-lime-glow);
}

.act-cta--primary:hover {
  background: var(--accent-lime-bright);
  transform: translateY(-2px);
}

.act-cta--secondary {
  border: 1.5px solid rgba(255, 255, 255, 0.35);
  color: #fff;
}

.act-cta--secondary:hover {
  border-color: #fff;
  background: rgba(255, 255, 255, 0.08);
  transform: translateY(-2px);
}

/* ==========================================================================
   SECTION 01: DISTRIBUTE & FLOATING STORE APP ICONS CLUSTER
   ========================================================================== */

/* First section after a full-height hero the hero already ends on a
   generous run of dark, so the usual 120px on top just reads as dead space. */
.distro-act {
  position: relative;
  overflow: hidden;
  padding-top: 56px;
}

/* Background Glowing Wave Lines in Section 01 */
.distro-bg-waves {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
  opacity: 0.4;
}

.distro-intro {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 40px;
  align-items: center;
  position: relative;
  z-index: 2;
}

/* The cluster is a fixed-ratio canvas that acts as a size container, so every
   card scales with the available width instead of colliding on narrow screens. */
.distro-icon-cluster {
  position: relative;
  width: 100%;
  max-width: 620px;
  margin-inline: auto;
  aspect-ratio: 5 / 4;
  height: auto;
  container-type: inline-size;
}

/* App Cards --x/--y are the card CENTRE, --size is a % of cluster width */
.app-card {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.6);
  animation: floatBounce var(--dur) ease-in-out infinite alternate;
  animation-delay: var(--delay);
  left: var(--x);
  top: var(--y);
  /* px fallback (~620px container) first, container units override it */
  width: calc(var(--size) * 6.2px);
  height: calc(var(--size) * 6.2px);
  margin-left: calc(var(--size) * -3.1px);
  margin-top: calc(var(--size) * -3.1px);
  border-radius: calc(var(--size) * 1.1px);
  width: calc(var(--size) * 1cqw);
  height: calc(var(--size) * 1cqw);
  margin-left: calc(var(--size) * -0.5cqw);
  margin-top: calc(var(--size) * -0.5cqw);
  border-radius: calc(var(--size) * 0.18cqw);
  transition: transform 0.3s ease;
}

.app-card .ic {
  width: 52%;
  height: 52%;
}

.app-card:hover {
  transform: scale(1.1) translateY(-8px) !important;
  z-index: 20;
}

@keyframes floatBounce {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-8%) rotate(2.5deg); }
}

/* Specific App Icon Styles */
/* Brand tints refreshed to each service's current palette:
   Spotify #1ED760 (was #1DB954), Facebook #0866FF (2023 rebrand,
   was #1877F2), Instagram #FF0069, Beatport #01FF95, Deezer #A238FF. */
.app-card--spotify {
  background: #0f1015;
  border: 1px solid rgba(30, 215, 96, 0.32);
  box-shadow: 0 10px 30px rgba(30, 215, 96, 0.22);
}

.app-card--instagram {
  background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
  box-shadow: 0 10px 30px rgba(255, 0, 105, 0.3);
}

.app-card--facebook {
  background: #0866ff;
  box-shadow: 0 10px 30px rgba(8, 102, 255, 0.32);
}

.app-card--apple {
  background: #fa243c;
  box-shadow: 0 10px 30px rgba(250, 36, 60, 0.3);
}

.app-card--tiktok {
  background: #000000;
  border: 1px solid rgba(255, 255, 255, 0.15);
  box-shadow: 0 10px 30px rgba(0, 242, 254, 0.25);
}

/* Dark card with the teal note, matching the current app icon a white
   glyph on their teal only reaches 1.9:1. */
.app-card--amazon {
  background: #0d1b26;
  border: 1px solid rgba(37, 209, 218, 0.35);
  box-shadow: 0 10px 30px rgba(37, 209, 218, 0.25);
}

.app-card--youtube {
  background: #ffffff;
  box-shadow: 0 10px 30px rgba(255, 0, 0, 0.25);
}

.app-card--beatport {
  background: #0b0c10;
  border: 1px solid rgba(1, 255, 149, 0.4);
  box-shadow: 0 10px 30px rgba(1, 255, 149, 0.22);
}

.app-card--tidal {
  background: #000000;
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 10px 30px rgba(255, 255, 255, 0.15);
}

.app-card--deezer {
  background: #12071f;
  border: 1px solid rgba(162, 56, 255, 0.45);
  box-shadow: 0 10px 30px rgba(162, 56, 255, 0.3);
}

.stat-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 60px;
}

.stat {
  background: var(--bg-card);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-lg);
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: border-color var(--transition-fast);
}

.stat:hover {
  border-color: rgba(255, 255, 255, 0.2);
}

.stat .num {
  font-family: var(--font-heading);
  font-size: 52px;
  font-weight: 800;
  line-height: 1;
  color: var(--accent-coral);
}

.stat .lbl {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
}

.stat .sub {
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.5;
}

.logo-wall {
  margin-top: 80px;
}

.logo-wall .lbl {
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--text-dim);
  margin-bottom: 24px;
}

/* Grid of store cards exactly matching real website screenshot */
.logo-wall .grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--surface-border);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.logo-card {
  height: 140px;
  background: #090a0d;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  transition: background var(--transition-fast);
}

.logo-card:hover {
  background: #111319;
}

.logo-card-brand {
  font-family: var(--font-heading);
  font-size: clamp(15px, 3.4vw, 21px);
  font-weight: 800;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  letter-spacing: -0.3px;
  white-space: nowrap;
  min-width: 0;
}

/* Har brand ka apna rounded tile sab logos ka visual weight barabar
   rehta hai, chahe glyph patla ho (TIDAL) ya bhara hua (Deezer). */
.logo-card-brand .brand-tile {
  width: clamp(38px, 7.4vw, 48px);
  height: clamp(38px, 7.4vw, 48px);
  flex-shrink: 0;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: var(--tile, #1a1d24);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.38);
  transition: transform var(--transition-fast);
}

.logo-card:hover .brand-tile { transform: translateY(-2px); }

.logo-card-brand .brand-tile svg,
.logo-card-brand .brand-tile img {
  width: 58%;
  height: 58%;
  object-fit: contain;
}

.logo-card-brand .brand-tile svg { fill: #ffffff; }

/* Amazon Music ka mark wordmark hai, square glyph nahi usse tile
   mein thodi zyada jagah chahiye warna padha hi nahi jaata. */
.logo-card-brand .brand-tile.is-wordmark svg { width: 80%; height: 80%; }

/* Jin brands ka official vector nahi hai (Gaana, JioSaavn) unke liye
   brand-colour ka monogram tile hai — galat logo banane se behtar.
   Asli SVG mil jaaye to sirf tile ke andar wala .ltr hata kar <svg>
   daal dein, baaki sab waise hi chalega.
   Ye rule un cards ke liye bacha hai jinke paas tile bilkul na ho. */
.logo-card-brand:not(:has(.brand-tile)) {
  font-size: clamp(18px, 4.2vw, 25px);
  letter-spacing: -0.6px;
}

.logo-card-brand .brand-tile .ltr {
  font-family: var(--font-heading);
  font-size: clamp(16px, 3vw, 20px);
  font-weight: 900;
  color: #ffffff;
  line-height: 1;
}

/* TIDAL ka tile kaala hai dark background par gayab na ho isliye
   halki si outline. */
.logo-card-brand .brand-tile[style*="#101318"] {
  border: 1px solid rgba(255, 255, 255, 0.16);
}

.logo-card.more-box {
  background: #241309;
  border-left: 1px solid rgba(255, 107, 53, 0.28);
}

.logo-card.more-box .more-text {
  font-family: var(--font-heading);
  font-size: 18px;
  font-weight: 900;
  color: var(--accent-coral);
  letter-spacing: 1px;
}

/* ==========================================================================
   SECTION 02: MONETISE
   ========================================================================== */

/* Full-width now that the earnings dashboard is gone 2x2 on desktop,
   single column on phones. */
.feat-stack {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 48px;
}

.feat {
  display: flex;
  gap: 20px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-md);
  padding: 20px;
  transition: border-color var(--transition-fast), background var(--transition-fast);
}

.feat:hover {
  border-color: rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.04);
}

.feat .ic {
  width: 54px;
  height: 54px;
  border-radius: 12px;
  background: rgba(255, 107, 53, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}

.feat h3 {
  font-family: var(--font-heading);
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 4px;
}

.feat p {
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.5;
}

/* ==========================================================================
   SECTION 03: GROW & TOOLS GRID
   ========================================================================== */

.tool-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.tool {
  background: var(--bg-card);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-lg);
  padding: 32px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 280px;
  transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.tool:hover {
  transform: translateY(-6px);
  border-color: rgba(255, 107, 53, 0.4);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5);
}

.tool-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 20px;
}

.tool-ic {
  width: 56px;
  height: 56px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
}

.badge {
  background: var(--accent-lime);
  color: #000;
  font-size: 10px;
  font-weight: 800;
  padding: 4px 8px;
  border-radius: 100px;
  letter-spacing: 0.5px;
}

.tool h3 {
  font-family: var(--font-heading);
  font-size: clamp(18px, 3.6vw, 22px);
  font-weight: 800;
  margin-bottom: 8px;
}

.tool p {
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.5;
  margin-bottom: 20px;
}

.tool .arrow {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 1px;
  color: var(--accent-coral);
  display: flex;
  align-items: center;
  gap: 6px;
  transition: gap var(--transition-fast);
}

.tool:hover .arrow {
  gap: 10px;
}

.cta-strip {
  margin-top: 60px;
  background: linear-gradient(135deg, #181922 0%, #0d0e14 100%);
  border: 1px solid var(--surface-border-bright);
  border-radius: var(--radius-xl);
  padding: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.cta-strip h3 {
  font-family: var(--font-heading);
  font-size: clamp(24px, 5vw, 36px);
  font-weight: 800;
  line-height: 1.15;
}

.cta-strip a {
  background: var(--accent-lime);
  color: #000;
  font-weight: 800;
  font-size: 16px;
  padding: 16px 32px;
  border-radius: 100px;
  transition: all var(--transition-fast);
}

.cta-strip a:hover {
  background: var(--accent-lime-bright);
  transform: translateY(-2px);
  box-shadow: 0 10px 25px var(--accent-lime-glow);
}

/* ==========================================================================
   SECTION 04: HALL OF FAME (ARTIST CAROUSEL/MARQUEE)
   ========================================================================== */

.hof {
  padding: 100px 0;
  background: var(--bg-dark);
  overflow: hidden;
}

.hof-headline {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 40px;
}

.hof-cap {
  max-width: 400px;
  text-align: right;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.hof-cap strong {
  font-size: 18px;
  color: #fff;
}

.hof-cap span {
  font-size: 14px;
  color: var(--text-muted);
}

.hof-marquee-wrapper {
  width: 100%;
  overflow: hidden;
  position: relative;
  padding: 20px 0;
}

.hof-marquee {
  display: flex;
  gap: 24px;
  width: max-content;
  animation: marqueeScroll 40s linear infinite;
}

.hof-marquee:hover {
  animation-play-state: paused;
}

@keyframes marqueeScroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.hof-card {
  width: 280px;
  height: 360px;
  background: var(--bg-card);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 24px;
  flex-shrink: 0;
  transition: transform var(--transition-fast), border-color var(--transition-fast);
}

.hof-card:hover {
  transform: translateY(-6px);
  border-color: rgba(255, 255, 255, 0.3);
}

.hof-card-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(30%) contrast(110%);
  transition: filter var(--transition-fast), transform var(--transition-fast);
}

.hof-card:hover .hof-card-img {
  filter: grayscale(0%) contrast(100%);
  transform: scale(1.05);
}

.hof-card-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.9) 100%);
}

.hof-card-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.hof-card-name {
  font-family: var(--font-heading);
  font-size: 24px;
  font-weight: 800;
  line-height: 1.2;
  color: var(--accent-gold);
  /* Safety net for longer roster names wrap evenly rather than
     overflow the 280px card. */
  text-wrap: balance;
}

.hof-card-stat {
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  margin-top: 6px;
}

.app-download {
  padding: 100px 0;
  background: #0e0f14;
}

.app-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

.app-badges {
  display: flex;
  gap: 16px;
  margin-top: 28px;
}

.app-badge {
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid var(--surface-border);
  border-radius: 12px;
  padding: 12px 20px;
  transition: border-color var(--transition-fast), background var(--transition-fast);
}

.app-badge:hover {
  border-color: #fff;
  background: rgba(255, 255, 255, 0.1);
}

/* ==========================================================================
   COMING SOON STATE (Vybe App / store downloads)
   ========================================================================== */

.soon-pill {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  background: rgba(255, 107, 53, 0.14);
  border: 1px solid rgba(255, 107, 53, 0.45);
  color: var(--accent-coral);
  font-family: var(--font-heading);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 100px;
  white-space: nowrap;
  vertical-align: middle;
}

.soon-note {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.5;
}

.soon-note span:last-child {
  flex: 1 1 260px;
  min-width: 0;
}

.badge--soon {
  background: transparent;
  border: 1px solid rgba(255, 107, 53, 0.45);
  color: var(--accent-coral);
}

.tool .arrow--soon {
  color: var(--text-dim);
  letter-spacing: 1px;
  text-transform: uppercase;
  cursor: default;
}

/* Not yet live: keep the buttons on show, but visibly inert */
.app-badge.is-soon {
  opacity: 0.55;
  cursor: default;
  pointer-events: none;
}

.app-badge.is-soon:hover {
  border-color: var(--surface-border);
  background: rgba(255, 255, 255, 0.05);
}

.vybe-mega-card.is-soon h4 {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.app-badge svg {
  width: 24px;
  height: 24px;
  fill: #fff;
}

.app-badge-text {
  display: flex;
  flex-direction: column;
}

.app-badge-text .tiny {
  font-size: 10px;
  color: var(--text-muted);
  text-transform: uppercase;
}

.app-badge-text .big {
  font-size: 14px;
  font-weight: 700;
  color: #fff;
}

/* ==========================================================================
   PRICING SECTION
   ========================================================================== */

/* Pricing ab Monetise (light #111217) aur Grow (dark #070709) ke
   beech mein hai, isliye ek mid tone warna aas-paas wale section
   ke saath ghul-mil jaata. */
.pricing {
  padding: 120px 0;
  background: #0e0f14;
  border-top: 1px solid var(--surface-border);
  border-bottom: 1px solid var(--surface-border);
}

.pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-top: 60px;
}

.pricing-card {
  background: var(--bg-card);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-xl);
  padding: 40px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  transition: transform var(--transition-fast), border-color var(--transition-fast);
}

.pricing-card.popular {
  border-color: var(--accent-lime);
  box-shadow: 0 0 30px rgba(255, 107, 53, 0.18);
}

.popular-badge {
  position: absolute;
  top: -14px;
  right: 32px;
  background: var(--accent-lime);
  color: #000;
  font-size: 12px;
  font-weight: 800;
  padding: 4px 14px;
  border-radius: 100px;
  text-transform: uppercase;
}

.pricing-card h3 {
  font-family: var(--font-heading);
  font-size: clamp(22px, 4.4vw, 28px);
  font-weight: 800;
  margin-bottom: 8px;
}

.pricing-card .price {
  font-family: var(--font-heading);
  font-size: clamp(36px, 8vw, 48px);
  font-weight: 900;
  color: #fff;
  display: flex;
  align-items: baseline;
  gap: 4px;
  margin: 16px 0;
}

.pricing-card .price span {
  font-size: 16px;
  font-weight: 600;
  color: var(--text-muted);
}

/* Raqam khud "/ year" wale chhote span se alag rakhni hai. */
.pricing-card .price .price-amt {
  font-size: inherit;
  font-weight: inherit;
  color: #fff;
}

/* "Charged in INR" wali chhoti line */
.pricing-note {
  font-size: 13.5px;
  color: var(--text-dim);
  margin-top: -10px;
  margin-bottom: 8px;
}

.pricing-card .desc {
  font-size: 14px;
  color: var(--text-muted);
  margin-bottom: 24px;
}

.pricing-features {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 32px;
}

.pricing-features li {
  font-size: 14px;
  line-height: 1.5;
  color: #cbd5e1;
  display: flex;
  /* flex-start so a wrapping feature keeps its tick on the first line */
  align-items: flex-start;
  gap: 10px;
}

.pricing-features li::before {
  content: "✓";
  color: var(--accent-coral);
  font-weight: 800;
  flex-shrink: 0;
}

.pricing-btn {
  width: 100%;
  height: 50px;
  border-radius: 100px;
  font-weight: 800;
  font-size: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all var(--transition-fast);
}

.pricing-btn--primary {
  background: var(--accent-lime);
  color: #000;
}

.pricing-btn--primary:hover {
  background: var(--accent-lime-bright);
  box-shadow: 0 10px 20px var(--accent-lime-glow);
}

.pricing-btn--secondary {
  border: 1px solid var(--surface-border-bright);
  color: #fff;
}

.pricing-btn--secondary:hover {
  border-color: #fff;
  background: rgba(255, 255, 255, 0.08);
}

/* ==========================================================================
   WHAT'S NEW SECTION
   ========================================================================== */

.whats {
  padding: 100px 0;
  background: var(--bg-dark);
}

.whats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 40px;
}

.whats-card {
  background: var(--bg-card);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-lg);
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: border-color var(--transition-fast);
}

.whats-card:hover {
  border-color: rgba(255, 255, 255, 0.2);
}

.whats-card .tag {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  color: var(--accent-coral);
  letter-spacing: 1px;
}

.whats-card h4 {
  font-family: var(--font-heading);
  font-size: 20px;
  font-weight: 700;
}

.whats-card p {
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.5;
}

.whats-card a {
  font-size: 13px;
  font-weight: 800;
  color: var(--accent-coral);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: auto;
}

/* ==========================================================================
   FOOTER
   ========================================================================== */

footer {
  background: #08080a;
  border-top: 1px solid var(--surface-border);
  padding: 80px 0 40px 0;
}

.footer-top {
  display: grid;
  grid-template-columns: 2fr repeat(4, 1fr);
  gap: 40px;
  margin-bottom: 60px;
}

.footer-brand {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 320px;
}

.footer-brand p {
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.6;
}

.footer-col h5 {
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #fff;
  margin-bottom: 20px;
}

.footer-col ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.footer-col a {
  font-size: 14px;
  color: var(--text-muted);
  transition: color var(--transition-fast);
}

.footer-col a:hover {
  color: var(--accent-coral);
}

.footer-bottom {
  border-top: 1px solid var(--surface-border);
  padding-top: 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 13px;
  color: var(--text-dim);
}

.footer-bottom-links {
  display: flex;
  gap: 20px;
}

.footer-bottom-links a:hover {
  color: #fff;
}

/* ==========================================================================
   RESPONSIVE BREAKPOINTS & MOBILE / ANDROID FIXES
   Breakpoints: 1200 → 1024 (tablet, nav collapses) → 768 (phone landscape)
                → 560 (phone) → 400 (small phone)
   ========================================================================== */

/* German and Portuguese labels run 30-40% longer than English, so the
   desktop nav needs tightening before the list wraps or overflows. */
@media (max-width: 1400px) {
  .vybe-nav-list {
    gap: 16px;
  }

  .vybe-nav-list button,
  .vybe-nav-list a {
    font-size: 14px;
  }

  .vybe-nav-login {
    padding: 10px 8px;
  }

  .vybe-nav-signup {
    padding: 12px 18px;
  }
}

@media (max-width: 1200px) {
  .cta-strip {
    padding: 40px;
    gap: 24px;
  }
}

/* ---------- TABLET: nav collapses to the drawer ---------- */
@media (max-width: 1024px) {
  :root {
    --nav-h: 68px;
    --gutter: 20px;
  }

  .hero-grid,
  .distro-intro,
  .app-grid {
    grid-template-columns: 1fr;
    gap: 36px;
    text-align: center;
  }
  /* Mobile: text/pitch/buttons pehle, app card unke NEECHE — bas ab
     sahi size aur center mein, taaki bhaari na lage.
     .app-shot pehle se flex+center hai, isliye image apne aap center. */
  .app-shot { width: 100%; }
  .app-shot .tool { max-width: 340px; }
  /* Text center hai to badges aur note bhi center mein sahi lagte hain */
  .app-download .app-badges { justify-content: center; }
  .app-download .soon-note { justify-content: center; }

  /* Stacked: tighten vertical rhythm, no dead space between sections */
  .distro-icon-cluster {
    margin-top: 16px;
  }

  .hero-new {
    padding-top: calc(var(--nav-h) + 40px);
    padding-bottom: 56px;
  }

  .act,
  .hof,
  .whats,
  .app-download {
    padding: 80px 0;
  }

  .distro-act {
    padding-top: 44px;
  }

  .pricing {
    padding: 80px 0;
  }

  .distro-intro {
    gap: 16px;
  }

  /* Chrome's "Desktop site" toggle on a phone reports a 980px viewport, so
     the nav must stay in its full desktop form here it only collapses to
     the burger below 900px (see the block further down). Just tighten it. */
  .vybe-nav-list {
    gap: 12px;
  }

  .vybe-nav-list button,
  .vybe-nav-list a {
    font-size: 13.5px;
  }

  .vybe-nav-signup {
    padding: 11px 14px;
  }

  .tool-grid,
  .pricing-grid,
  .whats-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer-top {
    grid-template-columns: 1fr 1fr;
  }

  /* Rows that must not squash side by side on a narrow screen */
  .hof-headline,
  .cta-strip {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
  }

  .hof-cap {
    text-align: left;
    max-width: none;
  }

  .cta-strip a {
    width: 100%;
    text-align: center;
  }

  .pricing-card.popular {
    order: -1;
  }
}

/* Nav collapses to the burger only below 900px. Kept deliberately under the
   980px that Chrome's "Desktop site" reports, so requesting the desktop site
   on a phone brings back the full menu. Matches mobile-nav.css's 900px. */
@media (max-width: 900px) {
  .vybe-nav-list {
    display: none;
  }

  .vybe-nav-toggle {
    display: flex;
  }

  .vybe-mega-panel.is-open {
    display: none !important;
  }
}

/* ---------- PHONE LANDSCAPE / LARGE PHONE ---------- */
@media (max-width: 768px) {
  :root {
    --gutter: 16px;
  }

  .vybe-nav-login,
  .vybe-nav-signup {
    display: none;
  }

  /* Bhasha badalne ka option phone par bhi rehna chahiye. Sign Up aur
     Login to drawer ke andar mil jaate hain, par language selector
     kahin aur hai hi nahi — isliye ye chip bar mein hi rehta hai,
     burger ke bagal mein. Ungli ke liye thoda bada bhi. */
  .vybe-nav-locale {
    display: block;
  }

  .vybe-nav-locale-toggle {
    min-height: 36px;
    padding: 7px 12px;
  }

  .vybe-nav-cta {
    gap: 12px;
  }

  .logo-img {
    height: 48px;
  }

  .logo-img--footer {
    height: 60px;
  }

  .hero-new {
    padding-bottom: 44px;
  }

  .act,
  .hof,
  .whats,
  .app-download,
  .pricing {
    padding: 64px 0;
  }

  .distro-act {
    padding-top: 36px;
  }

  footer {
    padding: 56px 0 32px;
  }

  .signup-card {
    padding: 24px 20px;
  }

  .tool {
    padding: 24px;
    min-height: 0;
  }

  .pricing-card {
    padding: 28px 24px;
  }

  .whats-card {
    padding: 22px;
  }

  .logo-wall {
    margin-top: 56px;
  }

  .logo-card {
    height: 112px;
    padding: 16px;
  }

  .stat {
    padding: 24px;
  }

  /* Three stat cards side by side get too cramped below 768 */
  .stat-row {
    grid-template-columns: 1fr;
    margin-top: 40px;
  }

  .footer-bottom {
    flex-wrap: wrap;
    gap: 12px 20px;
  }

  /* Carousel cards sized for a thumb-swipe, not a mouse */
  .hof-card {
    width: 220px;
    height: 300px;
    padding: 18px;
  }

  .cta-strip {
    padding: 32px 24px;
    margin-top: 40px;
  }
}

/* ---------- PHONE ---------- */
@media (max-width: 560px) {
  .hero-bullets {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .hero-grid--solo .hero-bullets {
    grid-template-columns: 1fr;
    justify-content: center;
    gap: 12px;
  }

  .hero-auth-cta {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }

  .hero-cta { width: 100%; }

  .act-ctas {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .btn-start-releasing,
  .btn-see-stores,
  .act-cta {
    justify-content: center;
    width: 100%;
  }

  .tool-grid,
  .pricing-grid,
  .whats-grid,
  .stat-row,
  .feat-stack {
    grid-template-columns: 1fr;
  }

  /* Store wall stays 2-up one per row makes an absurdly tall column */
  .logo-wall .grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer-top {
    grid-template-columns: 1fr;
    gap: 32px;
    margin-bottom: 40px;
  }

  .footer-brand {
    max-width: none;
  }

  .footer-bottom {
    flex-direction: column;
    gap: 16px;
    align-items: flex-start;
  }

  .footer-bottom-links {
    flex-wrap: wrap;
    gap: 8px 20px;
  }

  .app-badges {
    flex-direction: column;
    align-items: stretch;
  }

  .app-badge {
    justify-content: center;
  }

  .hero-proof {
    flex-wrap: wrap;
    gap: 14px;
  }

}

/* ---------- SMALL PHONE (360px and below) ---------- */
@media (max-width: 400px) {
  :root {
    --gutter: 14px;
  }

  .logo-img {
    height: 42px;
  }

  .logo-img--footer {
    height: 52px;
  }

  .logo-card {
    height: 96px;
    padding: 12px;
  }

  .logo-card-brand .brand-tile {
    width: 38px;
    height: 38px;
    border-radius: 11px;
  }

  .hof-card {
    width: 190px;
    height: 265px;
  }

  .mobile-nav-list a,
  .mobile-nav-acc {
    font-size: 18px;
  }

  .mobile-nav-list .mobile-nav-subitem {
    font-size: 15px;
  }
}

/* ---------- LANDSCAPE PHONE: short viewport ---------- */
@media (max-height: 480px) and (orientation: landscape) {
  .hero-new {
    padding-top: calc(var(--nav-h) + 24px);
  }

  .vybe-mobile-nav {
    padding-top: 16px;
  }

  .mobile-nav-list a,
  .mobile-nav-acc {
    min-height: 44px;
    font-size: 17px;
  }

  .mobile-nav-list .mobile-nav-subitem {
    min-height: 44px;
    font-size: 15px;
  }
}


/* ==========================================================================
   BRAND ICON TILES
   --------------------------------------------------------------------------
   assets/icons/*.svg apna gold frame khud lekar aate hain, isliye tile ka
   apna background aur padding hata dete hain warna frame ke andar frame
   dikhta hai.
   ========================================================================== */
.ic--brand {
  background: none !important;
  padding: 0 !important;
  overflow: hidden;
  border-radius: 12px;
}

/* SVG ke andar frame 1024 ke canvas mein 150–874 par hai, yani chaaron taraf
   ~21% khali jagah. Icon ko utna bada karke wo khali hissa kaat dete hain,
   warna tile ke andar icon chhota dikhta hai. */
.ic--brand img {
  /* Global `img { max-width: 100% }` is 142% ko wapas 100% par kaat deta
     tha, aur flex item hone ki wajah se shrink bhi ho jaata tha — isliye
     icon apne tile ke andar chhota dikhta tha. Dono ko yahan rok dete hain. */
  flex: none;
  max-width: none;
  width: 142%;
  height: 142%;
  margin: -21%;
  object-fit: contain;
  display: block;
}

/* App icon (vybe-app.png/webp) pehle se hi tight crop hai usme wo 21%
   wali padding hai hi nahi, isliye zoom karne par kinare kat jaate the.
   <picture> wale icons ko poora tile milta hai, bina zoom ke. */
.ic--brand picture {
  display: block;
  width: 100%;
  height: 100%;
}

.ic--brand picture img {
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
  border-radius: 10px;
}


/* App download section ka visual reference card image */
.app-shot { display: flex; justify-content: center; }

/* Card ab image ki jagah hai, isliye width usi par bandhi hai. Icon
   ke <img> ko chhoona nahi hai, warna wo 44px se poora card ban jaata. */
.app-shot .tool {
  width: 100%;
  max-width: 380px;
}


/* ==========================================================================
   VYBE CARD THEME gold glass, hamesha vertical
   --------------------------------------------------------------------------
   Reference card (Vybe App) ka look poori site par ek jaisa: gehra glass
   background, patla sunehra border, halka gold glow, aur content upar se
   neeche icon sabse upar, uske neeche title, phir text. Koi card
   horizontal (icon bagal mein) nahi rehta.

   Har selector par `body ` isliye laga hai taaki ye page ke apne <style>
   block se jeet jaaye warna har page mein alag se likhna padta.
   ========================================================================== */

body .vybe-mega-card,
body .tool,
body .feat,
body .whats-card,
body .stat,
body .pricing-card,
body .sym-card,
body .hrw-tile,
body .hrw-time-step,
body .miss-tile,
body .vab-do-card,
body .vab-value,
body .vpr-proof-card,
body .vpr-collab-card,
body .vpb-card,
body .vpb-step,
body .vpb-roy-card,
body .vpb-proof-card,
body .vsy-step,
body .vsy-media-card,
body .vsy-proof-card,
body .vps-card,
body .vps-step,
body .vps-promote-card,
body .vps-proof-card,
body .vmv-step,
body .vmv-why-card,
body .vmv-kit-card,
body .vmv-learn-card,
body .vci-card,
body .vci-step,
body .vci-use,
body .vci-proof-card,
body .vsp-cat {
  background:
    linear-gradient(180deg, rgba(28, 29, 35, 0.92) 0%, rgba(11, 12, 15, 0.96) 100%) !important;
  border: 1px solid rgba(255, 186, 84, 0.34) !important;
  border-radius: 26px !important;
  box-shadow:
    0 0 24px rgba(255, 158, 40, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
  transition: transform var(--transition-fast), border-color var(--transition-fast),
              box-shadow var(--transition-fast);
}

body .vybe-mega-card:hover,
body .tool:hover,
body .feat:hover,
body .whats-card:hover,
body .stat:hover,
body .pricing-card:hover,
body .sym-card:hover,
body .hrw-tile:hover,
body .hrw-time-step:hover,
body .miss-tile:hover,
body .vab-do-card:hover,
body .vab-value:hover,
body .vpr-proof-card:hover,
body .vpr-collab-card:hover,
body .vpb-card:hover,
body .vpb-step:hover,
body .vpb-roy-card:hover,
body .vpb-proof-card:hover,
body .vsy-step:hover,
body .vsy-media-card:hover,
body .vsy-proof-card:hover,
body .vps-card:hover,
body .vps-step:hover,
body .vps-promote-card:hover,
body .vps-proof-card:hover,
body .vmv-step:hover,
body .vmv-why-card:hover,
body .vmv-kit-card:hover,
body .vmv-learn-card:hover,
body .vci-card:hover,
body .vci-step:hover,
body .vci-use:hover,
body .vci-proof-card:hover,
body .vsp-cat:hover {
  transform: translateY(-4px);
  border-color: rgba(255, 196, 96, 0.7) !important;
  box-shadow:
    0 0 44px rgba(255, 158, 40, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

/* ---------- sab kuch vertical + center ---------- */
body .vybe-mega-card,
body .tool,
body .feat,
body .whats-card,
body .stat,
body .pricing-card,
body .sym-card,
body .hrw-tile,
body .hrw-time-step,
body .miss-tile,
body .vab-do-card,
body .vab-value,
body .vpr-proof-card,
body .vpr-collab-card,
body .vpb-card,
body .vpb-step,
body .vpb-roy-card,
body .vpb-proof-card,
body .vsy-step,
body .vsy-media-card,
body .vsy-proof-card,
body .vps-card,
body .vps-step,
body .vps-promote-card,
body .vps-proof-card,
body .vmv-step,
body .vmv-why-card,
body .vmv-kit-card,
body .vmv-learn-card,
body .vci-card,
body .vci-step,
body .vci-use,
body .vci-proof-card,
body .vsp-cat {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* Card ke andar ke text wrapper poori chaudai lein (icon tile ko chhod kar,
   warna 48px ka tile poore card jitna chauda ho jaata hai). */
body .vybe-mega-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .tool > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .feat > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .whats-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .stat > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .pricing-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .sym-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .hrw-tile > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .hrw-time-step > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .miss-tile > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vab-do-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vab-value > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vpr-proof-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vpr-collab-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vpb-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vpb-step > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vpb-roy-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vpb-proof-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vsy-step > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vsy-media-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vsy-proof-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vps-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vps-step > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vps-promote-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vps-proof-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vmv-step > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vmv-why-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vmv-kit-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vmv-learn-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vci-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vci-step > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vci-use > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vci-proof-card > div:not(.ic):not(.tool-ic):not(.ic--brand),
body .vsp-cat > div:not(.ic):not(.tool-ic):not(.ic--brand) {
  width: 100%;
}

/* Lists center mein padhne layak nahi hoti unka text left hi rakhte hain */
body .vybe-mega-card ul,
body .tool ul,
body .feat ul,
body .whats-card ul,
body .stat ul,
body .pricing-card ul,
body .sym-card ul,
body .hrw-tile ul,
body .hrw-time-step ul,
body .miss-tile ul,
body .vab-do-card ul,
body .vab-value ul,
body .vpr-proof-card ul,
body .vpr-collab-card ul,
body .vpb-card ul,
body .vpb-step ul,
body .vpb-roy-card ul,
body .vpb-proof-card ul,
body .vsy-step ul,
body .vsy-media-card ul,
body .vsy-proof-card ul,
body .vps-card ul,
body .vps-step ul,
body .vps-promote-card ul,
body .vps-proof-card ul,
body .vmv-step ul,
body .vmv-why-card ul,
body .vmv-kit-card ul,
body .vmv-learn-card ul,
body .vci-card ul,
body .vci-step ul,
body .vci-use ul,
body .vci-proof-card ul,
body .vsp-cat ul,
body .vybe-mega-card li,
body .tool li,
body .feat li,
body .whats-card li,
body .stat li,
body .pricing-card li,
body .sym-card li,
body .hrw-tile li,
body .hrw-time-step li,
body .miss-tile li,
body .vab-do-card li,
body .vab-value li,
body .vpr-proof-card li,
body .vpr-collab-card li,
body .vpb-card li,
body .vpb-step li,
body .vpb-roy-card li,
body .vpb-proof-card li,
body .vsy-step li,
body .vsy-media-card li,
body .vsy-proof-card li,
body .vps-card li,
body .vps-step li,
body .vps-promote-card li,
body .vps-proof-card li,
body .vmv-step li,
body .vmv-why-card li,
body .vmv-kit-card li,
body .vmv-learn-card li,
body .vci-card li,
body .vci-step li,
body .vci-use li,
body .vci-proof-card li,
body .vsp-cat li {
  text-align: left;
}

/* .tool ka head (icon + badge) ek line mein, center */
body .tool .tool-head {
  justify-content: center;
  gap: 12px;
}

/* Pricing card ka CTA button poori chaudai ka */
body .pricing-card .pricing-btn { width: 100%; }

/* ---------- FAQ / list rows: gold border, par text left ---------- */
body .vci-elig-col,
body .vsp-item,
body .vpr-faq-item,
body .vpb-faq-item,
body .vsy-faq-item,
body .vps-faq-item,
body .vmv-faq-item,
body .vci-faq-item {
  background:
    linear-gradient(180deg, rgba(28, 29, 35, 0.9) 0%, rgba(11, 12, 15, 0.95) 100%) !important;
  border: 1px solid rgba(255, 186, 84, 0.28) !important;
  border-radius: 20px !important;
}

body .vci-elig-col:hover,
body .vsp-item:hover,
body .vpr-faq-item:hover,
body .vpb-faq-item:hover,
body .vsy-faq-item:hover,
body .vps-faq-item:hover,
body .vmv-faq-item:hover,
body .vci-faq-item:hover {
  border-color: rgba(255, 196, 96, 0.6) !important;
}


/* ==========================================================================
   VYBE ICON SET
   --------------------------------------------------------------------------
   Pehle in jagahon par emoji lage the (🎧, 🚀 waise). Har device apna emoji
   font use karta hai, isliye site har phone par alag dikhti thi aur wo icons
   jaisa lagta bhi nahi tha. Ab wahi jagah line-icons se bhari jaati hai:
   SVG ek CSS mask hai, isliye rang site ke accent se aata hai aur icon kisi
   bhi size par saaf rehta hai.

   Istemal:
     <div class="ic vic vic--headphones"></div>     tile ke andar
     <h3 class="vic-h vic--film">Film</h3>          heading ke aage
     vic-h--c                                       chip/center wale liye

   Icon ka naam sirf yahan badalna padta hai, HTML mein class ka naam wahi
   rehta hai.
   ========================================================================== */
.vic::before,
.vic-h::before {
  content: "";
  display: block;
  flex: none;
  width: var(--vic-size, 30px);
  height: var(--vic-size, 30px);
  background: var(--vic-color, var(--accent-coral));
  -webkit-mask: var(--vic) center / contain no-repeat;
          mask: var(--vic) center / contain no-repeat;
}

.vic-h {
  display: flex;
  align-items: center;
  gap: 10px;
  --vic-size: 24px;
}

/* Chip jaisi jagah (sync tags), jahan text pehle se center tha */
.vic-h--c { justify-content: center; }

/* Video mockup ka play button — wahan icon safed hi rehna chahiye */
.vmv-mock-play { --vic-color: #fff; --vic-size: 30px; }

/* Mask na chale to icon gayab ho jaata, isliye tab bas jagah chhod dete hain */
@supports not ((-webkit-mask: none) or (mask: none)) {
  .vic::before, .vic-h::before { display: none; }
  .vic-h { gap: 0; }
}

.vic--alert { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.4 2.3 20.6h19.4z'/%3E%3Cpath d='M12 9.8v4.3'/%3E%3Cpath d='M12 17.6v.1'/%3E%3C/svg%3E"); }
.vic--apple { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15.6 12.3c0-2.2 1.8-3.3 1.9-3.4-1-1.5-2.6-1.7-3.2-1.7-1.4-.15-2.7.8-3.4.8s-1.8-.8-2.9-.78c-1.5.02-2.9.87-3.6 2.2-1.6 2.7-.4 6.7 1.1 8.9.7 1.1 1.6 2.3 2.8 2.25 1.1-.04 1.5-.72 2.9-.72s1.7.72 2.9.7c1.2-.02 2-1.1 2.7-2.2.85-1.25 1.2-2.45 1.2-2.5-.03-.02-2.4-.93-2.4-3.6z'/%3E%3Cpath d='M13.5 5.5c.6-.72 1-1.7.9-2.7-.87.04-1.9.58-2.5 1.3-.55.63-1.03 1.63-.9 2.6 1 .07 1.9-.5 2.5-1.2z'/%3E%3C/svg%3E"); }
.vic--ban { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.8'/%3E%3Cpath d='M5.8 5.8 18.2 18.2'/%3E%3C/svg%3E"); }
.vic--bolt { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13.4 2.6 5.2 13.4h5.6L10.6 21.4l8.2-10.8h-5.6z'/%3E%3C/svg%3E"); }
.vic--book { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 6.6S10 4.4 4 4.4v13c6 0 8 2.1 8 2.1s2-2.1 8-2.1v-13c-6 0-8 2.2-8 2.2z'/%3E%3Cpath d='M12 6.6v12.9'/%3E%3C/svg%3E"); }
.vic--broadcast { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='16.6' r='2.1'/%3E%3Cpath d='M8.3 12.9a5.2 5.2 0 0 1 7.4 0'/%3E%3Cpath d='M5.5 10a9.2 9.2 0 0 1 13 0'/%3E%3C/svg%3E"); }
.vic--bulb { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.2 17.4h5.6M10.2 20.6h3.6'/%3E%3Cpath d='M12 3.4a5.6 5.6 0 0 0-3.4 10c.5.4.8 1 .8 1.7h5.2c0-.7.3-1.3.8-1.7A5.6 5.6 0 0 0 12 3.4z'/%3E%3C/svg%3E"); }
.vic--calendar { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5.2' width='18' height='15.6' rx='2.5'/%3E%3Cpath d='M3 10.2h18M8 2.8v4.4M16 2.8v4.4'/%3E%3C/svg%3E"); }
.vic--card { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='5.4' width='19' height='13.2' rx='2.6'/%3E%3Cpath d='M2.5 9.9h19'/%3E%3Cpath d='M6.2 14.6h4.2'/%3E%3C/svg%3E"); }
.vic--chart { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20.2v-8.4M9.4 20.2V4.6M14.8 20.2v-5.6M20.2 20.2V8.6'/%3E%3C/svg%3E"); }
.vic--chat { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.6 12.4c0 3.9-3.9 7.1-8.6 7.1-1 0-2-.15-2.9-.42L4 21l1.5-3.8a6.8 6.8 0 0 1-2.1-4.8c0-3.9 3.9-7.1 8.6-7.1s8.6 3.2 8.6 7.1z'/%3E%3C/svg%3E"); }
.vic--check { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.8'/%3E%3Cpath d='m8 12.3 2.8 2.8 5.4-5.6'/%3E%3C/svg%3E"); }
.vic--copyright { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.8'/%3E%3Cpath d='M15.1 9.5a4 4 0 1 0 0 5'/%3E%3C/svg%3E"); }
.vic--disc { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.8'/%3E%3Ccircle cx='12' cy='12' r='2.6'/%3E%3C/svg%3E"); }
.vic--download { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.6v11.9'/%3E%3Cpath d='M8.2 11.7 12 15.5l3.8-3.8'/%3E%3Cpath d='M4 15.5v3.4a1.4 1.4 0 0 0 1.4 1.4h13.2a1.4 1.4 0 0 0 1.4-1.4v-3.4'/%3E%3C/svg%3E"); }
.vic--exit { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15.2 16.8 4.8-4.8-4.8-4.8'/%3E%3Cpath d='M20 12H9.2'/%3E%3Cpath d='M11.4 4.2H6a2 2 0 0 0-2 2v11.6a2 2 0 0 0 2 2h5.4'/%3E%3C/svg%3E"); }
.vic--eye { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.4 12S6 5.4 12 5.4 21.6 12 21.6 12 18 18.6 12 18.6 2.4 12 2.4 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }
.vic--film { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.8' y='7.5' width='18.4' height='12.7' rx='2.2'/%3E%3Cpath d='M2.8 12h18.4'/%3E%3Cpath d='M6.6 7.5 8.4 12M12.4 7.5 14.2 12M3.4 8 20 4.6l.7 3'/%3E%3C/svg%3E"); }
.vic--filmstrip { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.6' y='4.8' width='18.8' height='14.4' rx='2'/%3E%3Cpath d='M7.4 4.8v14.4M16.6 4.8v14.4'/%3E%3Cpath d='M2.6 9.6h4.8M2.6 14.4h4.8M16.6 9.6h4.8M16.6 14.4h4.8'/%3E%3C/svg%3E"); }
.vic--flag { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21.2V3.4'/%3E%3Cpath d='M5 4.6h11.4l-1.7 3.4 1.7 3.4H5z'/%3E%3C/svg%3E"); }
.vic--gamepad { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.4' y='7.4' width='19.2' height='9.2' rx='4.6'/%3E%3Cpath d='M7 9.8v4.4M4.8 12h4.4'/%3E%3Ccircle cx='16.2' cy='10.8' r='1.1'/%3E%3Ccircle cx='18.4' cy='13.4' r='1.1'/%3E%3C/svg%3E"); }
.vic--gift { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.8' y='8.4' width='18.4' height='4.2' rx='1.2'/%3E%3Cpath d='M4.4 12.6v6.8a1.4 1.4 0 0 0 1.4 1.4h12.4a1.4 1.4 0 0 0 1.4-1.4v-6.8'/%3E%3Cpath d='M12 8.4v12.4'/%3E%3Cpath d='M12 8.4S10.4 3.4 8 3.4a2.3 2.3 0 0 0 0 5zM12 8.4s1.6-5 4-5a2.3 2.3 0 0 1 0 5z'/%3E%3C/svg%3E"); }
.vic--globe { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.8'/%3E%3Cpath d='M3.2 12h17.6'/%3E%3Cpath d='M12 3.2a13.6 13.6 0 0 1 0 17.6 13.6 13.6 0 0 1 0-17.6z'/%3E%3C/svg%3E"); }
.vic--headphones { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 15.2v-2.4a8 8 0 0 1 16 0v2.4'/%3E%3Crect x='2.4' y='13.6' width='4.6' height='6.6' rx='2.3'/%3E%3Crect x='17' y='13.6' width='4.6' height='6.6' rx='2.3'/%3E%3C/svg%3E"); }
.vic--id { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='4.8' width='19' height='14.4' rx='2.6'/%3E%3Ccircle cx='8.6' cy='10.8' r='2.2'/%3E%3Cpath d='M5.2 16.2c.7-1.5 2-2.3 3.4-2.3s2.7.8 3.4 2.3'/%3E%3Cpath d='M14.8 9.8h4M14.8 13.6h4'/%3E%3C/svg%3E"); }
.vic--infinity { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.4 8.6a3.4 3.4 0 1 0 0 6.8c3.6 0 4-6.8 7.6-6.8a3.4 3.4 0 1 1 0 6.8c-3.6 0-4-6.8-7.6-6.8z'/%3E%3C/svg%3E"); }
.vic--link { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.8 13.6a4.6 4.6 0 0 0 6.6 0l2.4-2.4a4.6 4.6 0 0 0-6.6-6.6l-1.1 1.1'/%3E%3Cpath d='M14.2 10.4a4.6 4.6 0 0 0-6.6 0l-2.4 2.4a4.6 4.6 0 0 0 6.6 6.6l1.1-1.1'/%3E%3C/svg%3E"); }
.vic--megaphone { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.2 9.4h3.2l8.6-4.8v14.8l-8.6-4.8H4.2a1.2 1.2 0 0 1-1.2-1.2v-2.8a1.2 1.2 0 0 1 1.2-1.2z'/%3E%3Cpath d='M7.4 14.6v3.8a1.6 1.6 0 0 0 3.2 0v-2.2'/%3E%3Cpath d='M19 9.6a3.2 3.2 0 0 1 0 4.8'/%3E%3C/svg%3E"); }
.vic--mic { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='2.6' width='6' height='10.8' rx='3'/%3E%3Cpath d='M5.6 11.4a6.4 6.4 0 0 0 12.8 0'/%3E%3Cpath d='M12 17.8v3.6'/%3E%3C/svg%3E"); }
.vic--mobile { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6.4' y='2.5' width='11.2' height='19' rx='2.6'/%3E%3Cpath d='M10.4 18.4h3.2'/%3E%3C/svg%3E"); }
.vic--notes { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.4 17.6V5.4l10.2-2.1v12.3'/%3E%3Ccircle cx='6.6' cy='17.6' r='2.8'/%3E%3Ccircle cx='16.8' cy='15.6' r='2.8'/%3E%3C/svg%3E"); }
.vic--payout { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.6' y='6' width='13.6' height='9.4' rx='2'/%3E%3Ccircle cx='9.4' cy='10.7' r='2.2'/%3E%3Cpath d='M14.8 19.4h6.6M21.4 19.4 18.6 16.6M21.4 19.4l-2.8 2.8'/%3E%3C/svg%3E"); }
.vic--pencil { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h4L18.1 9.9a2.75 2.75 0 0 0-3.9-3.9L4 16.1z'/%3E%3Cpath d='m13.4 6.8 3.8 3.8'/%3E%3C/svg%3E"); }
.vic--percent { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.6 6.6 17.4 17.4'/%3E%3Ccircle cx='7.6' cy='7.6' r='2.7'/%3E%3Ccircle cx='16.4' cy='16.4' r='2.7'/%3E%3C/svg%3E"); }
.vic--pin { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21.4s6.4-6.5 6.4-11a6.4 6.4 0 1 0-12.8 0c0 4.5 6.4 11 6.4 11z'/%3E%3Ccircle cx='12' cy='10.4' r='2.4'/%3E%3C/svg%3E"); }
.vic--play { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.4' y='4.4' width='19.2' height='15.2' rx='4.2'/%3E%3Cpath d='m10 8.9 5.2 3.1L10 15.1z'/%3E%3C/svg%3E"); }
.vic--playtri { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.2 6.3 17.6 12l-8.4 5.7z' fill='%23000' stroke='none'/%3E%3C/svg%3E"); }
.vic--plus { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.8'/%3E%3Cpath d='M12 7.8v8.4M7.8 12h8.4'/%3E%3C/svg%3E"); }
.vic--radio { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='8' width='19' height='12' rx='2.5'/%3E%3Ccircle cx='16' cy='14' r='3'/%3E%3Cpath d='M6 11.6h4.4M6 16.4h4.4'/%3E%3Cpath d='m7.4 8 10-4.2'/%3E%3C/svg%3E"); }
.vic--receipt { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.6 2.6h12.8v18.8l-2.1-1.5-2.1 1.5-2.2-1.5-2.1 1.5-2.2-1.5z'/%3E%3Cpath d='M9 8h6M9 12h6'/%3E%3C/svg%3E"); }
.vic--rocket { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.6c3.1 2.2 4.9 5.7 4.9 9.4v3.3l-2.3 2.3H9.4L7.1 15.3V12c0-3.7 1.8-7.2 4.9-9.4z'/%3E%3Ccircle cx='12' cy='10.2' r='2'/%3E%3Cpath d='m9.6 17.6-1.4 3.8 3-1.7M14.4 17.6l1.4 3.8-3-1.7'/%3E%3Cpath d='M7.1 12.4 4.3 14.9v3.2l2.8-1.8M16.9 12.4l2.8 2.5v3.2l-2.8-1.8'/%3E%3C/svg%3E"); }
.vic--search { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.9' cy='10.9' r='6.6'/%3E%3Cpath d='m20 20-4.4-4.4'/%3E%3C/svg%3E"); }
.vic--share { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.2v6.6a1.4 1.4 0 0 0 1.4 1.4h13.2a1.4 1.4 0 0 0 1.4-1.4v-6.6'/%3E%3Cpath d='M12 15V3.4'/%3E%3Cpath d='M8.2 7.2 12 3.4l3.8 3.8'/%3E%3C/svg%3E"); }
.vic--shield { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 3 7.4 2.9v5.4c0 4.4-3 8-7.4 9.7-4.4-1.7-7.4-5.3-7.4-9.7V5.9z'/%3E%3C/svg%3E"); }
.vic--signature { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 17.6c3.3 0 3.1-11.2 6.3-11.2 3 0 1.8 9.1 4.4 9.1 2.2 0 2.7-3.6 2.7-3.6'/%3E%3Cpath d='M3.6 21h16.8'/%3E%3C/svg%3E"); }
.vic--sliders { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3.4v6.2M6 14.6v6M12 3.4v10.2M12 18.6v2M18 3.4v1.8M18 10v10.6'/%3E%3Ccircle cx='6' cy='12.1' r='2.3'/%3E%3Ccircle cx='12' cy='16.1' r='2.3'/%3E%3Ccircle cx='18' cy='7.6' r='2.3'/%3E%3C/svg%3E"); }
.vic--star { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.6l2.6 5.3 5.8.85-4.2 4.1 1 5.75-5.2-2.72-5.2 2.72 1-5.75-4.2-4.1 5.8-.85z'/%3E%3C/svg%3E"); }
.vic--tag { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11.2 3.2H4.4a1.2 1.2 0 0 0-1.2 1.2v6.8l9.5 9.5a1.5 1.5 0 0 0 2.1 0l6.4-6.4a1.5 1.5 0 0 0 0-2.1z'/%3E%3Ccircle cx='7.6' cy='7.6' r='1.5'/%3E%3C/svg%3E"); }
.vic--tools { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15.4 3.4a5 5 0 0 0-4.2 7.6L3.9 18.3 5.5 20l7.3-7.3a5 5 0 0 0 7.6-4.2l-3.1 3.1-2.4-.6-.6-2.4z'/%3E%3C/svg%3E"); }
.vic--tv { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='6.6' width='19' height='12.8' rx='2.6'/%3E%3Cpath d='m8 3.4 4 3.2 4-3.2'/%3E%3C/svg%3E"); }
.vic--unlock { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4.4' y='10.4' width='15.2' height='9.9' rx='2.6'/%3E%3Cpath d='M8 10.4V7.6a4 4 0 0 1 7.6-1.7'/%3E%3Cpath d='M12 14.4v2'/%3E%3C/svg%3E"); }
.vic--upload { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 15.5V3.6'/%3E%3Cpath d='M8.2 7.4 12 3.6l3.8 3.8'/%3E%3Cpath d='M4 15.5v3.4a1.4 1.4 0 0 0 1.4 1.4h13.2a1.4 1.4 0 0 0 1.4-1.4v-3.4'/%3E%3C/svg%3E"); }
.vic--user { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8.4' r='3.7'/%3E%3Cpath d='M4.5 20c1.5-3.9 4.2-5.8 7.5-5.8s6 1.9 7.5 5.8'/%3E%3C/svg%3E"); }
.vic--users { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9.2' cy='8.4' r='3.3'/%3E%3Cpath d='M2.8 19.4c1.3-3.3 3.6-5 6.4-5s5.1 1.7 6.4 5'/%3E%3Cpath d='M16.2 5.5a3.3 3.3 0 0 1 0 6.1'/%3E%3Cpath d='M18.2 14.9c1.5.9 2.6 2.4 3.2 4.5'/%3E%3C/svg%3E"); }
.vic--wallet { --vic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.8' y='5.8' width='18.4' height='13.4' rx='2.6'/%3E%3Cpath d='M2.8 10.2h18.4'/%3E%3Ccircle cx='16.6' cy='14.9' r='1.35'/%3E%3C/svg%3E"); }
