<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>velonlabs.dev — social banner templates</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;600;700&display=swap" rel="stylesheet">
<style>
  :root{
    --orange:#f97316; --orange2:#ea580c; --red:#ef4444; --gold:#eab308;
    --bg:#09090b; --surface:#121215; --border:#1f1f26; --fg:#ededf0; --muted:#9a9aa8;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html,body{background:#000}
  body{font-family:Inter,"Segoe UI",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
  .stage{display:none;position:relative;overflow:hidden;background:var(--bg);color:var(--fg)}
  .stage.active{display:block}
  .stage::before{content:"";position:absolute;inset:0;background:
    radial-gradient(ellipse 60% 50% at 85% 25%, rgba(249,115,22,.18), transparent 60%),
    radial-gradient(ellipse 50% 50% at 10% 90%, rgba(234,179,8,.06), transparent 60%);
    pointer-events:none;z-index:1}
  .grain{position:absolute;inset:0;z-index:2;opacity:.5;pointer-events:none;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
    background-size:220px 220px}
  .art{position:absolute;z-index:0;background-repeat:no-repeat;background-size:cover;background-position:center}
  .content{position:relative;z-index:3;height:100%;display:flex;flex-direction:column}
  .g{background:linear-gradient(120deg,#fb923c,#f97316,#ef4444,#eab308);-webkit-background-clip:text;background-clip:text;color:transparent}
  .lock{display:flex;align-items:center;gap:14px}
  .lock .mark{filter:drop-shadow(0 6px 18px rgba(249,115,22,.45))}
  .lock .wm{font-weight:800;letter-spacing:-.02em}
  .chip{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.09);border-radius:999px;backdrop-filter:blur(8px)}
  .chip .ic{display:flex;color:var(--orange)}
  .cta{display:inline-flex;align-items:center;gap:12px;background:linear-gradient(135deg,#f97316,#ea580c);
    color:#fff;font-weight:800;border-radius:16px;box-shadow:0 10px 40px rgba(249,115,22,.4)}
  .badge{display:inline-flex;align-items:center;gap:10px;background:rgba(18,18,21,.85);
    border:1px solid rgba(249,115,22,.4);border-radius:14px;backdrop-filter:blur(10px);
    box-shadow:0 8px 30px rgba(0,0,0,.5);font-weight:700}
  .feat{display:flex;flex-direction:column;gap:8px}
  .feat .ic{width:54px;height:54px;display:flex;align-items:center;justify-content:center;
    border-radius:14px;background:rgba(249,115,22,.12);color:var(--orange);border:1px solid rgba(249,115,22,.2)}
  .pill{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.04);
    border:1px solid rgba(249,115,22,.25);border-radius:999px;color:var(--fg);font-weight:700}
  .pill .ic{color:var(--orange);display:flex}
  .dim{color:var(--muted)}
  .win{background:linear-gradient(180deg,#141418,#0e0e11);border:1px solid var(--border);
    border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.6);overflow:hidden}
  .win .bar{display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid var(--border)}
  .dot{width:11px;height:11px;border-radius:50%}
  .code span{display:block;height:9px;border-radius:5px;margin:9px 0}

  /* sizes */
  .s-beta{width:1600px;height:900px}
  .s-square{width:1080px;height:1080px}
  .s-story{width:1080px;height:1920px}
  .s-xheader{width:1500px;height:500px}
  .s-whatsnew{width:1200px;height:800px}
</style>
</head>
<body>

<!-- ===== BETA 16:9 (1600x900) ===== -->
<div class="stage s-beta" data-b="beta-16x9">
  <div class="art" style="inset:0 -4% 0 38%;background-image:url('../promo/vl-promo-keyvisual-16x9.png');-webkit-mask-image:linear-gradient(90deg,transparent,#000 28%);mask-image:linear-gradient(90deg,transparent,#000 28%)"></div>
  <div class="grain"></div>
  <div class="content" style="padding:70px 80px">
    <div class="lock">
      <svg class="mark" width="46" height="46" viewBox="0 0 1000 1000"><defs><linearGradient id="m1" x1="0" y1="0" x2="0" y2="1"><stop offset="0%" stop-color="#f97316"/><stop offset="60%" stop-color="#ef4444"/><stop offset="100%" stop-color="#eab308"/></linearGradient></defs><path d="M280 250 L420 250 L500 550 L580 250 L720 250 L580 750 L420 750 Z" fill="#ededf0"/><rect x="660" y="250" width="100" height="500" rx="50" fill="url(#m1)"/></svg>
      <span class="wm" style="font-size:32px">velonlabs<span class="g">.dev</span></span>
    </div>

    <div style="margin-top:auto">
      <div class="badge" style="padding:10px 16px;font-size:15px;margin-bottom:22px">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#f97316" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M12 1v6m0 6v6m11-7h-6m-6 0H1"/></svg>
        <span>Now in open <span class="g">BETA</span></span>
      </div>
      <h1 style="font-size:104px;line-height:.94;font-weight:900;letter-spacing:-.03em">
        <span class="g">BUILD</span> FIVEM<br>SCRIPTS WITH AI.
      </h1>
      <p class="dim" style="font-size:27px;margin-top:22px;font-weight:500;max-width:760px">
        Describe what you need — get a real, reviewable FiveM resource back. fxmanifest, client/server, config &amp; ZIP.
      </p>

      <div style="display:flex;gap:46px;margin-top:40px">
        <div class="feat"><span class="ic"><svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg></span><b style="font-size:19px">Generate scripts</b><span class="dim" style="font-size:15px">Any feature, anytime.</span></div>
        <div class="feat"><span class="ic"><svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z"/><path d="m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z"/></svg></span><b style="font-size:19px">Real code review</b><span class="dim" style="font-size:15px">Not a template kit.</span></div>
        <div class="feat"><span class="ic"><svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2 3 14h9l-1 8 10-12h-9l1-8z"/></svg></span><b style="font-size:19px">Fast &amp; clean</b><span class="dim" style="font-size:15px">Lua, diff view, ZIP.</span></div>
      </div>

      <div style="display:flex;align-items:center;gap:26px;margin-top:46px">
        <span class="cta" style="padding:20px 34px;font-size:23px">Start free — 500 credits
          <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg>
        </span>
        <span class="dim" style="font-size:18px;font-weight:600">No subscription required · pay as you use</span>
      </div>
    </div>
  </div>
</div>

<!-- ===== SQUARE 1:1 (1080x1080) ===== -->
<div class="stage s-square" data-b="square-1x1">
  <div class="art" style="inset:0;background-image:url('../promo/vl-promo-square-1x1.png');opacity:.55"></div>
  <div class="art" style="inset:0;background:linear-gradient(180deg,rgba(9,9,11,.65),rgba(9,9,11,.35) 40%,rgba(9,9,11,.9))"></div>
  <div class="grain"></div>
  <div class="content" style="padding:80px">
    <div class="lock">
      <svg class="mark" width="44" height="44" viewBox="0 0 1000 1000"><defs><linearGradient id="m2" x1="0" y1="0" x2="0" y2="1"><stop offset="0%" stop-color="#f97316"/><stop offset="60%" stop-color="#ef4444"/><stop offset="100%" stop-color="#eab308"/></linearGradient></defs><path d="M280 250 L420 250 L500 550 L580 250 L720 250 L580 750 L420 750 Z" fill="#ededf0"/><rect x="660" y="250" width="100" height="500" rx="50" fill="url(#m2)"/></svg>
      <span class="wm" style="font-size:30px">velonlabs<span class="g">.dev</span></span>
    </div>
    <div style="margin-top:auto">
      <span class="pill" style="padding:10px 18px;font-size:16px">The AI coding bot for FiveM</span>
      <h1 style="font-size:92px;line-height:.96;font-weight:900;letter-spacing:-.03em;margin-top:26px">
        FiveM scripts<br>in <span class="g">minutes.</span>
      </h1>
      <div style="margin-top:34px;display:flex;flex-direction:column;gap:16px">
        <div class="chip" style="padding:14px 22px;font-size:20px;font-weight:600;align-self:flex-start"><span class="ic"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></svg></span>500 free credits — no card</div>
        <div class="chip" style="padding:14px 22px;font-size:20px;font-weight:600;align-self:flex-start"><span class="ic"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></svg></span>Real, reviewable Lua + ZIP</div>
        <div class="chip" style="padding:14px 22px;font-size:20px;font-weight:600;align-self:flex-start"><span class="ic"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></svg></span>No subscription required, no lock-in</div>
      </div>
      <span class="cta" style="padding:22px 38px;font-size:26px;margin-top:42px">Try it at velonlabs.dev
        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg>
      </span>
    </div>
  </div>
</div>

<!-- ===== STORY 9:16 (1080x1920) ===== -->
<div class="stage s-story" data-b="story-9x16">
  <div class="art" style="inset:0;background-image:url('../promo/vl-promo-story-9x16.png');opacity:.7"></div>
  <div class="art" style="inset:0;background:linear-gradient(180deg,rgba(9,9,11,.75),transparent 30%,transparent 55%,rgba(9,9,11,.92))"></div>
  <div class="grain"></div>
  <div class="content" style="padding:110px 80px">
    <div class="lock" style="justify-content:center">
      <svg class="mark" width="50" height="50" viewBox="0 0 1000 1000"><defs><linearGradient id="m3" x1="0" y1="0" x2="0" y2="1"><stop offset="0%" stop-color="#f97316"/><stop offset="60%" stop-color="#ef4444"/><stop offset="100%" stop-color="#eab308"/></linearGradient></defs><path d="M280 250 L420 250 L500 550 L580 250 L720 250 L580 750 L420 750 Z" fill="#ededf0"/><rect x="660" y="250" width="100" height="500" rx="50" fill="url(#m3)"/></svg>
      <span class="wm" style="font-size:38px">velonlabs<span class="g">.dev</span></span>
    </div>
    <div style="text-align:center;margin-top:70px">
      <span class="pill" style="padding:14px 26px;font-size:22px">Now in open BETA</span>
      <h1 style="font-size:128px;line-height:.92;font-weight:900;letter-spacing:-.03em;margin-top:46px">
        <span class="g">BUILD</span><br>FIVEM<br>SCRIPTS<br>WITH AI.
      </h1>
    </div>
    <div style="margin-top:auto;text-align:center">
      <p class="dim" style="font-size:30px;font-weight:600;line-height:1.4;margin-bottom:40px">Describe it. Review it. Ship it.<br>500 free credits — no card.</p>
      <span class="cta" style="padding:26px 50px;font-size:32px">Start at velonlabs.dev
        <svg width="30" height="30" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg>
      </span>
    </div>
  </div>
</div>

<!-- ===== X HEADER (1500x500) ===== -->
<div class="stage s-xheader" data-b="x-header-3x1">
  <div class="art" style="inset:0 0 0 30%;background-image:url('../promo/vl-promo-x-header-3x1.png');-webkit-mask-image:linear-gradient(90deg,transparent,#000 35%);mask-image:linear-gradient(90deg,transparent,#000 35%)"></div>
  <div class="grain"></div>
  <div class="content" style="padding:0 90px;justify-content:center">
    <div class="lock">
      <svg class="mark" width="62" height="62" viewBox="0 0 1000 1000"><defs><linearGradient id="m4" x1="0" y1="0" x2="0" y2="1"><stop offset="0%" stop-color="#f97316"/><stop offset="60%" stop-color="#ef4444"/><stop offset="100%" stop-color="#eab308"/></linearGradient></defs><path d="M280 250 L420 250 L500 550 L580 250 L720 250 L580 750 L420 750 Z" fill="#ededf0"/><rect x="660" y="250" width="100" height="500" rx="50" fill="url(#m4)"/></svg>
      <span class="wm" style="font-size:56px">velonlabs<span class="g">.dev</span></span>
    </div>
    <p style="font-size:34px;font-weight:800;margin-top:22px;letter-spacing:-.02em">The AI coding bot for <span class="g">FiveM</span>.</p>
    <div style="display:flex;gap:16px;margin-top:26px">
      <span class="pill" style="padding:11px 20px;font-size:18px">Generate scripts</span>
      <span class="pill" style="padding:11px 20px;font-size:18px">Real code review</span>
      <span class="pill" style="padding:11px 20px;font-size:18px">500 free credits</span>
    </div>
  </div>
</div>

<!-- ===== WHAT'S NEW (1200x800) ===== -->
<div class="stage s-whatsnew" data-b="whatsnew">
  <div class="grain"></div>
  <div class="content" style="padding:70px 70px;flex-direction:row;gap:50px;align-items:center">
    <div style="flex:1">
      <div class="lock">
        <svg class="mark" width="40" height="40" viewBox="0 0 1000 1000"><defs><linearGradient id="m5" x1="0" y1="0" x2="0" y2="1"><stop offset="0%" stop-color="#f97316"/><stop offset="60%" stop-color="#ef4444"/><stop offset="100%" stop-color="#eab308"/></linearGradient></defs><path d="M280 250 L420 250 L500 550 L580 250 L720 250 L580 750 L420 750 Z" fill="#ededf0"/><rect x="660" y="250" width="100" height="500" rx="50" fill="url(#m5)"/></svg>
        <span class="wm" style="font-size:26px">velonlabs<span class="g">.dev</span></span>
      </div>
      <h1 style="font-size:92px;line-height:.9;font-weight:900;letter-spacing:-.03em;margin-top:34px">WHAT'S<br><span class="g">NEW</span></h1>
      <span class="pill" style="padding:10px 20px;font-size:22px;font-weight:800;margin-top:22px">v0.2</span>
      <div style="margin-top:36px;display:flex;flex-direction:column;gap:12px">
        <span class="pill" style="padding:13px 20px;font-size:18px"><span class="ic"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg></span>Conversation mode</span>
        <span class="pill" style="padding:13px 20px;font-size:18px"><span class="ic"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/><path d="M3 3v5h5"/></svg></span>Resume after closing tab</span>
        <span class="pill" style="padding:13px 20px;font-size:18px"><span class="ic"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2 3 14h9l-1 8 10-12h-9l1-8z"/></svg></span>Faster &amp; more stable</span>
      </div>
    </div>
    <div class="win" style="width:520px">
      <div class="bar"><span class="dot" style="background:#ef4444"></span><span class="dot" style="background:#eab308"></span><span class="dot" style="background:#22c55e"></span><span style="margin-left:10px;font-size:13px" class="dim">velonlabs.dev — AI</span></div>
      <div style="padding:22px">
        <div style="display:flex;gap:12px;align-items:flex-start;margin-bottom:18px">
          <span style="width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,#f97316,#ea580c);display:flex;align-items:center;justify-content:center;flex:0 0 auto"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="10" rx="2"/><circle cx="12" cy="5" r="2"/><path d="M12 7v4"/><path d="M8 16h.01M16 16h.01"/></svg></span>
          <div style="background:#1a1a1f;border:1px solid var(--border);border-radius:12px;padding:12px 14px;font-size:14px;color:#cfcfd6">How can I help you build your FiveM script today?</div>
        </div>
        <div class="code" style="background:#0d0d10;border:1px solid var(--border);border-radius:12px;padding:16px">
          <span style="width:30%;background:#f97316"></span>
          <span style="width:70%;background:#3f3f46"></span>
          <span style="width:55%;background:#8b5cf6"></span>
          <span style="width:80%;background:#3f3f46"></span>
          <span style="width:45%;background:#22c55e"></span>
          <span style="width:65%;background:#3f3f46"></span>
          <span style="width:35%;background:#ef4444"></span>
        </div>
        <div style="margin-top:16px;display:flex;gap:10px;align-items:center;background:#0d0d10;border:1px solid var(--border);border-radius:12px;padding:12px 14px">
          <span class="dim" style="font-size:13px;flex:1">Ask anything about your code…</span>
          <span style="width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#f97316,#ea580c);display:flex;align-items:center;justify-content:center"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="m22 2-7 20-4-9-9-4Z"/><path d="M22 2 11 13"/></svg></span>
        </div>
      </div>
    </div>
  </div>
</div>

<script>
  var params = new URLSearchParams(location.search);
  var b = params.get('b') || 'beta-16x9';
  var el = document.querySelector('.stage[data-b="' + b + '"]');
  if (el) el.classList.add('active');
  document.title = 'banner:' + b;
</script>
</body>
</html>
