



  /* ═══════════════════════════════════

     BASE / SECTION

     ═══════════════════════════════════ */

  .vk-hero {

    position: relative;

    min-height: 92vh;

    background: #000;

    display: grid;

    grid-template-columns: 46% 54%;

    border-bottom: 1px solid #1A1A1A;

    overflow: hidden;

  }



  /* Ambient glow */

  .vk-hero::before {

    content: '';

    position: absolute;

    inset: 0;

    background:

      radial-gradient(ellipse 55% 70% at 72% 55%, rgba(170,255,0,.06) 0%, transparent 65%),

      radial-gradient(ellipse 40% 50% at 10% 30%, rgba(170,255,0,.025) 0%, transparent 60%);

    pointer-events: none;

    z-index: 0;

  }



  /* Film grain (only when toggled) */

  .vk-hero--grain::after {

    content: '';

    position: absolute;

    inset: 0;

    filter: url(#vkGrain);

    opacity: .035;

    mix-blend-mode: overlay;

    pointer-events: none;

    z-index: 50;

  }



  /* ═══════════════════════════════════

     ENTRANCE ANIMATIONS

     ═══════════════════════════════════ */

  .vk-reveal {

    opacity: 0;

    transform: translateY(26px);

    transition: opacity .7s cubic-bezier(.16,1,.3,1),

                transform .7s cubic-bezier(.16,1,.3,1);

  }

  .vk-reveal.is-visible {

    opacity: 1;

    transform: translateY(0);

  }



  .vk-hero-right {

    opacity: 0;

    transform: scale(.96);

    transition: opacity .9s cubic-bezier(.16,1,.3,1) .35s,

                transform .9s cubic-bezier(.16,1,.3,1) .35s;

  }

  .vk-hero-right.is-visible {

    opacity: 1;

    transform: scale(1);

  }



  .vk-hero-stats {

    opacity: 0;

    transform: translateY(16px);

    transition: opacity .6s ease .6s, transform .6s ease .6s;

  }

  .vk-hero-stats.is-visible {

    opacity: 1;

    transform: translateY(0);

  }



  /* ═══════════════════════════════════

     LEFT PANEL

     ═══════════════════════════════════ */

  .vk-hero-left {

    position: relative;

    z-index: 3;

    padding: 80px 48px 130px;

    display: flex;

    flex-direction: column;

    justify-content: center;

  }



  /* Eyebrow */

  .vk-hero-eyebrow {

    display: flex;

    align-items: center;

    gap: 10px;

    margin-bottom: 28px;

  }

  .vk-hero-eyebrow::before {

    content: '';

    width: 28px;

    height: 2px;

    background: linear-gradient(90deg, #AAFF00, #7ACC00, #AAFF00);

    background-size: 200% 100%;

    display: block;

    flex-shrink: 0;

    animation: vkGradShift 3s ease infinite alternate;

  }

  @keyframes vkGradShift {

    from { background-position: 0% 50%; }

    to   { background-position: 100% 50%; }

  }

  .vk-hero-eyebrow span {

    font-family: 'Inter', sans-serif;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: .18em;

    text-transform: uppercase;

    color: #AAFF00;

  }



  /* H1 */

  .vk-hero-h1 {

    font-family: 'Bebas Neue', sans-serif;

    font-size: clamp(68px, 8vw, 118px);

    line-height: .88;

    letter-spacing: .02em;

    text-transform: uppercase;

    color: #FFF;

    margin: 0 0 26px;

  }

  .vk-h1-accent {

    color: #AAFF00;

    display: block;

  }



  /* Subtitle */

  .vk-hero-sub {

    font-family: 'Inter', sans-serif;

    font-size: 15px;

    color: #888;

    line-height: 1.85;

    max-width: 380px;

    margin: 0 0 38px;

  }



  /* ═══════════════════════════════════

     BUTTONS

     ═══════════════════════════════════ */

  .vk-hero-btns {

    display: flex;

    gap: 14px;

    flex-wrap: wrap;

    margin-bottom: 48px;

  }



  .vk-btn-lime {

    display: inline-flex;

    align-items: center;

    padding: 15px 30px;

    background: #AAFF00;

    color: #000;

    font-family: 'Inter', sans-serif;

    font-size: 12px;

    font-weight: 900;

    letter-spacing: .09em;

    text-transform: uppercase;

    text-decoration: none;

    border-radius: 4px;

    border: 2px solid #AAFF00;

    position: relative;

    overflow: hidden;

    transition: background .18s, border-color .18s, transform .18s, box-shadow .18s;

  }

  .vk-btn-lime:hover {

    background: #CCFF44;

    border-color: #CCFF44;

    transform: translateY(-1px);

    box-shadow: 0 4px 20px rgba(170,255,0,.25);

  }

  .vk-btn-lime:active { transform: translateY(0); }



  /* Shimmer */

  .vk-btn-lime::after {

    content: '';

    position: absolute;

    top: 0; left: -100%;

    width: 100%; height: 100%;

    background: linear-gradient(110deg, transparent 25%, rgba(255,255,255,.3) 50%, transparent 75%);

    animation: vkShimmer 4s ease-in-out infinite;

  }

  @keyframes vkShimmer {

    0%   { left: -100%; }

    35%  { left: 200%; }

    100% { left: 200%; }

  }



  /* Pulse glow ring */

  .vk-btn-lime::before {

    content: '';

    position: absolute;

    inset: -3px;

    border-radius: 6px;

    background: rgba(170,255,0,.15);

    z-index: -1;

    animation: vkPulseGlow 2.5s ease-in-out infinite;

  }

  @keyframes vkPulseGlow {

    0%, 100% { opacity: 0; transform: scale(1); }

    50%      { opacity: 1; transform: scale(1.04); }

  }



  .vk-btn-ghost {

    display: inline-flex;

    align-items: center;

    padding: 15px 30px;

    background: transparent;

    color: #FFF;

    font-family: 'Inter', sans-serif;

    font-size: 12px;

    font-weight: 700;

    letter-spacing: .09em;

    text-transform: uppercase;

    text-decoration: none;

    border-radius: 4px;

    border: 2px solid rgba(255,255,255,.15);

    transition: border-color .18s, background .18s, transform .18s;

  }

  .vk-btn-ghost:hover {

    border-color: rgba(255,255,255,.4);

    background: rgba(255,255,255,.03);

    transform: translateY(-1px);

  }

  .vk-btn-ghost:active { transform: translateY(0); }



  /* ═══════════════════════════════════

     PILLS

     ═══════════════════════════════════ */

  .vk-hero-pills { display: flex; gap: 22px; flex-wrap: wrap; }

  .vk-pill {

    display: flex;

    align-items: center;

    gap: 7px;

    font-family: 'Inter', sans-serif;

    font-size: 10px;

    font-weight: 600;

    letter-spacing: .07em;

    text-transform: uppercase;

    color: #888;

  }

  .vk-pill::before {

    content: '';

    width: 5px; height: 5px;

    border-radius: 50%;

    background: #AAFF00;

    flex-shrink: 0;

    box-shadow: 0 0 6px rgba(170,255,0,.4);

  }



  /* ═══════════════════════════════════

     STAT BAR

     ═══════════════════════════════════ */

  .vk-hero-stats {

    position: absolute;

    bottom: 0; left: 0;

    width: 100%;

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    border-top: 1px solid rgba(255,255,255,.07);

    z-index: 5;

    background: rgba(0,0,0,.5);

    backdrop-filter: blur(10px);

    -webkit-backdrop-filter: blur(10px);

  }

  .vk-hero-stat {

    padding: 18px 20px;

    border-right: 1px solid rgba(255,255,255,.07);

    display: flex;

    flex-direction: column;

    gap: 4px;

  }

  .vk-hero-stat:last-child { border-right: none; }

  .vk-stat-num {

    font-family: 'Bebas Neue', sans-serif;

    font-size: 28px;

    color: #AAFF00;

    line-height: 1;

  }

  .vk-stat-lbl {

    font-family: 'Inter', sans-serif;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: .08em;

    text-transform: uppercase;

    color: rgba(255,255,255,.35);

  }



  /* ═══════════════════════════════════

     RIGHT PANEL

     ═══════════════════════════════════ */

  .vk-hero-right {

    position: relative;

    z-index: 2;

    overflow: hidden;

    outline: none;

  }



  .vk-ghost-num {

    position: absolute;

    bottom: -30px;

    left: 50%;

    transform: translateX(-50%);

    font-family: 'Bebas Neue', sans-serif;

    font-size: clamp(200px, 26vw, 400px);

    line-height: 1;

    color: rgba(255,255,255,.022);

    white-space: nowrap;

    letter-spacing: -.02em;

    pointer-events: none;

    user-select: none;

    z-index: 0;

    transition: opacity .35s ease, transform .35s ease;

  }

  .vk-ghost-num.is-out {

    opacity: 0;

    transform: translateX(-50%) scale(1.06);

  }



  .vk-spotlight {

    position: absolute;

    top: 0; left: 50%;

    transform: translateX(-50%);

    width: 300px; height: 100%;

    background: linear-gradient(to bottom, rgba(255,255,255,.04) 0%, rgba(255,255,255,.01) 40%, transparent 75%);

    pointer-events: none;

    z-index: 1;

  }



  .vk-floor-glow {

    position: absolute;

    bottom: 0; left: 50%;

    transform: translateX(-50%);

    width: 360px; height: 80px;

    background: radial-gradient(ellipse at center bottom, rgba(170,255,0,.18) 0%, transparent 70%);

    filter: blur(20px);

    pointer-events: none;

    z-index: 1;

  }



  /* ═══════════════════════════════════

     SLIDESHOW

     ═══════════════════════════════════ */

  .vk-slideshow {

    position: absolute;

    inset: 0;

    z-index: 2;

  }



  .vk-slide {

    position: absolute;

    inset: 0;

    display: flex;

    align-items: flex-end;

    justify-content: center;

    opacity: 0;

    transform: scale(.94);

    transition: opacity .8s cubic-bezier(.16,1,.3,1),

                transform .8s cubic-bezier(.16,1,.3,1);

    pointer-events: none;

    cursor: pointer;

  }

  .vk-slide.active {

    opacity: 1;

    transform: scale(1);

    pointer-events: auto;

  }

  .vk-slide.leaving {

    opacity: 0;

    transform: scale(1.04);

  }



  .vk-product-img {

    display: block;

    width: 100%; height: 100%;

    object-fit: contain;

    object-position: bottom center;

    filter:

      drop-shadow(0 0 1px rgba(255,255,255,.08))

      drop-shadow(0 -8px 60px rgba(0,0,0,.5))

      drop-shadow(0 0 60px rgba(170,255,0,.07));

    position: relative;

    z-index: 2;

  }



  /* Float (toggled via class) */

  .vk-hero--float .vk-slide.active .vk-product-img {

    animation: vkFloat 5s ease-in-out infinite;

  }

  @keyframes vkFloat {

    0%, 100% { transform: translateY(0); }

    50%      { transform: translateY(-10px); }

  }



  /* ═══════════════════════════════════

     SLIDE LABEL  *** FIXED OPACITY ***

     ═══════════════════════════════════ */

  .vk-slide-label {

    position: absolute;

    top: 28px; right: 28px;

    z-index: 10;

    display: flex;

    align-items: center;

    gap: 8px;

    font-family: 'Inter', sans-serif;

    font-size: 11px;

    font-weight: 700;

    letter-spacing: .14em;

    text-transform: uppercase;

    background: rgba(0,0,0,.55);

    backdrop-filter: blur(6px);

    -webkit-backdrop-filter: blur(6px);

    padding: 6px 14px;

    border-radius: 4px;

    border: 1px solid rgba(255,255,255,.08);

  }

  .vk-slide-num {

    color: #AAFF00;

  }

  .vk-slide-name {

    color: #FFFFFF;

    font-weight: 600;

  }



  /* ═══════════════════════════════════

     DOTS

     ═══════════════════════════════════ */

  .vk-hero-dots {

    position: absolute;

    bottom: 28px; left: 50%;

    transform: translateX(-50%);

    display: flex;

    gap: 8px;

    z-index: 10;

  }

  .vk-dot {

    width: 6px; height: 6px;

    border-radius: 50%;

    background: rgba(255,255,255,.2);

    border: none; padding: 0;

    cursor: pointer;

    position: relative;

    overflow: hidden;

    transition: width .35s cubic-bezier(.16,1,.3,1),

                border-radius .35s cubic-bezier(.16,1,.3,1),

                background .35s ease;

  }

  .vk-dot:hover { background: rgba(255,255,255,.4); }

  .vk-dot.active {

    background: #AAFF00;

    width: 28px;

    border-radius: 3px;

  }

  .vk-dot.active::after {

    content: '';

    position: absolute;

    top: 0; right: 0; bottom: 0;

    width: 100%;

    background: rgba(0,0,0,.3);

    border-radius: 3px;

    animation: vkDrain var(--vk-interval, 4s) linear forwards;

  }

  @keyframes vkDrain {

    from { width: 100%; }

    to   { width: 0%; }

  }



  /* ═══════════════════════════════════

     RESPONSIVE — TABLET (1024)

     ═══════════════════════════════════ */

  @media (max-width: 1024px) {

    .vk-hero { grid-template-columns: 50% 50%; }

    .vk-hero-left { padding: 60px 32px 120px; }

    .vk-hero-h1 { font-size: clamp(56px, 7vw, 90px); }

  }



  /* ═══════════════════════════════════

     RESPONSIVE — MOBILE (860)

     ═══════════════════════════════════ */

  @media (max-width: 860px) {

    .vk-hero {

      grid-template-columns: 1fr;

      min-height: unset;

    }

    .vk-hero-right {

      order: 1;

      height: 55vw;

      min-height: 300px;

      max-height: 440px;

    }

    .vk-ghost-num { font-size: 160px; bottom: -10px; }

    .vk-slide-label { top: 12px; right: 12px; padding: 5px 10px; font-size: 11px; }

    .vk-hero-dots { bottom: 12px; }

    .vk-hero-left { order: 2; padding: 44px 24px 110px; }

    .vk-hero-sub { max-width: 100%; }

    .vk-hero-stats { position: absolute; bottom: 0; left: 0; width: 100%; }

    .vk-hero-stat { padding: 13px 10px; }

    .vk-stat-num { font-size: 22px; }

    .vk-stat-lbl { font-size: 11px; }

  }



  /* ═══════════════════════════════════

     RESPONSIVE — SMALL PHONE (480)

     ═══════════════════════════════════ */

  @media (max-width: 480px) {

    .vk-hero-left { padding: 36px 18px 100px; }

    .vk-hero-h1 { font-size: clamp(52px, 14vw, 72px); }

    .vk-hero-sub { font-size: 14px; }

    .vk-hero-btns { flex-direction: column; gap: 10px; }

    .vk-btn-lime,

    .vk-btn-ghost { justify-content: center; width: 100%; padding: 14px 24px; }

    .vk-hero-pills { gap: 14px; }

    .vk-hero-right { height: 60vw; min-height: 260px; max-height: 380px; }

    .vk-ghost-num { font-size: 120px; }

    .vk-hero-stat { padding: 10px 8px; }

    .vk-stat-num { font-size: 19px; }

    .vk-stat-lbl { font-size: 11px; letter-spacing: .05em; }

    .vk-slide-label { top: 8px; right: 8px; padding: 4px 8px; font-size: 11px; gap: 5px; }

  }



  /* ═══════════════════════════════════

     RESPONSIVE — TINY (375)

     ═══════════════════════════════════ */

  @media (max-width: 375px) {

    .vk-hero-left { padding: 28px 14px 90px; }

    .vk-hero-h1 { font-size: clamp(46px, 13vw, 64px); margin-bottom: 18px; }

    .vk-hero-sub { font-size: 13px; margin-bottom: 28px; }

    .vk-hero-eyebrow { margin-bottom: 20px; }

    .vk-hero-btns { margin-bottom: 32px; }

    .vk-btn-lime,

    .vk-btn-ghost { font-size: 12px; padding: 12px 20px; }

  }



  /* ═══════════════════════════════════

     REDUCED MOTION

     ═══════════════════════════════════ */

  @media (prefers-reduced-motion: reduce) {

    .vk-reveal, .vk-hero-right, .vk-hero-stats,

    .vk-slide, .vk-ghost-num, .vk-dot,

    .vk-btn-lime, .vk-btn-ghost, .vk-slide-name {

      transition-duration: .01ms !important;

      animation-duration: .01ms !important;

    }

    .vk-hero--float .vk-slide.active .vk-product-img,

    .vk-btn-lime::after,

    .vk-btn-lime::before,

    .vk-hero-eyebrow::before { animation: none !important; }

  }




  /* A8 · LCP element opt-out — make hero image area visible immediately, no IntersectionObserver wait */
  .vk-hero .vk-lcp-no-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
