.evx-wrap{
    /* ==== THEME — edit these to retint the whole scene ==== */
    --bg1:#F6FCFF;
    --bg2:#DBEFFC;
    --grid:#CFE6F5;

    --accent:#2F6BED;      /* site blue */
    --accent-2:#1E4FC0;

    --energy:#40C7FF;      /* flowing current */
    --energy-hot:#EAF9FF;  /* white-hot core */

    --charger:#FFFFFF;
    --charger-cap:#12233A;
    --cable:#1B2A3A;

    --car:#FFFFFF;
    --car-line:#D3E4F2;
    --wheel:#22303C;

    --card:#FFFFFF;
    --ink:#12283C;
    --muted:#5B7085;
    --good:#12B76A;

    width:100%;
    max-width:1100px;
    margin:0 auto;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
  }
  .evx-stage{
    position:relative;
    width:100%;
    aspect-ratio:1200/675;
    border-radius:0;
    overflow:visible;
    background:transparent;
  }
  .evx-svg{ display:block; width:100%; height:100%; }

  /* screen text */
  .evx-scr-lbl{ fill:#8FC7FF; font-size:13px; font-weight:700; letter-spacing:2px; }
  .evx-scr-pct{ fill:#EAF9FF; font-size:34px; font-weight:800; }
  .evx-scr-kw{ fill:#7FD8FF; font-size:12px; font-weight:600; }
  .evx-charger-kw{ fill:var(--ink); font-size:34px; font-weight:800; }
  .evx-charger-unit{ font-size:20px; font-weight:700; fill:var(--accent); }
  .evx-charger-sub{ fill:var(--muted); font-size:12px; font-weight:700; letter-spacing:1.5px; }

  /* badges */
  .evx-badge-t{ fill:var(--ink); font-size:19px; font-weight:800; }
  .evx-badge-s{ fill:var(--muted); font-size:13px; font-weight:600; }

  /* ===== motion ===== */
  .evx-flow{
    stroke-dasharray:16 30;
    animation:evxFlow 1.2s linear infinite;
  }
  .evx-flow-2{
    stroke-dasharray:6 40;
    animation:evxFlow 0.9s linear infinite;
  }
  @keyframes evxFlow{ to{ stroke-dashoffset:-46; } }

  .evx-blink{ animation:evxBlink 1.1s ease-in-out infinite; }
  @keyframes evxBlink{ 0%,100%{opacity:1} 50%{opacity:.25} }

  .evx-port{ transform-origin:512px 430px; animation:evxPort 1.6s ease-in-out infinite; }
  @keyframes evxPort{ 0%,100%{transform:scale(1);opacity:.35} 50%{transform:scale(1.8);opacity:.05} }

  .evx-badge{ animation:evxFloat 5s ease-in-out infinite; }
  .evx-b2{ animation-delay:-1.6s; }
  .evx-b3{ animation-delay:-3.1s; }
  @keyframes evxFloat{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-9px)} }

  .evx-spark{ animation:evxSpark 2.4s ease-in-out infinite; }
  @keyframes evxSpark{ 0%{opacity:0;transform:translateY(6px)} 40%{opacity:.9} 100%{opacity:0;transform:translateY(-16px)} }

  @media (prefers-reduced-motion: reduce){
    .evx-flow,.evx-flow-2,.evx-blink,.evx-port,.evx-badge,.evx-spark{ animation:none; }
  }