JEROME BAKER ISN’T A PRODUCT

IT’S A RITUAL - BUILT FROM FIRE, GLASS, AND CULTURE

Founded by Jason Harris, JBD helped shape cannabis culture long before it had a name, a market, or permission. From underground studios to global recognition, the brand was built on one idea:

“HOW YOU SMOKE MATTERS AS MUCH AS WHAT YOU SMOKE’

– Jason Harris, Founder
Jerome Baker

Today, Jerome Baker returns with a renewed focus—bringing together glass, flower, and experience.

THE JEROME BAKER STORY

FORGED IN RITUAL SINCE 1991

JEROME BAKER STORY

INTRODUCTION

Jerome Baker Designs started in the early ’90s—not in a boardroom, but in garages, parking lots, and backroom studios.

After discovering glassblowing through Bob Snodgrass on the Grateful Dead tour circuit, Jason Harris immersed himself in the craft—studying across the U.S., Europe, and beyond, blending technique with instinct.

What followed was the birth of a new category:

Functional glass as art.

By the late ’90s, Jerome Baker Designs had grown into the largest functional glass brand in the world — handcrafted, culturally embedded, and globally recognized.

JBD created handcrafted functional glass for cultural icons including George Clooney, Adam Sandler, Drew Barrymore, Mike Tyson, Snoop Dogg, B-Real, and bands like Sublime, 311, Tool, and System of a Down.

These weren’t just pipes.

They were objects of identity — shared across music, art, and counterculture.

By the early 2000s, Jerome Baker Designs had become the largest functional glass brand in the world.

JEROME BAKER STORY

SHUT DOWN, NOT SHUT OUT

In 2003, everything stopped.

During Operation Pipe Dreams, the U.S. government targeted glass artists and businesses across the country.

Jason Harris was arrested alongside dozens of others, including Tommy Chong.

The brand was forced to shut its doors.

But the culture didn’t disappear.

After relocating to Maui, Harris shifted into fine art — refining his craft, studying technique, and pushing glass beyond function.

He trained with masters like:

• Bob Snodgrass
• Dale Chihuly

And created work that crossed into sculpture, gallery exhibition, and cultural symbolism — including a piece “The Sphere of Consciousness” presented to the Dalai Lama.

JEROME BAKER STORY

BACK WHERE IT BELONGS

In 2012, with legalization beginning to reshape the industry, Jerome Baker Designs returned.

Not as a trend.

Not as a startup.

As a continuation.

From the Las Vegas Dream Factory to global distribution, JBD once again pushed the limits of what functional glass could be—including the creation of Bongzilla, the world’s largest bong.

Today, Jerome Baker Designs is building something bigger. Jerome Baker Designs isn’t chasing trends.

It’s continuing a legacy. Through limited drops, cultural alignment, and uncompromising craft.

The ritual continues.

JEROME BAKER STORY

JASON HARRIS — FOUNDER, JEROME BAKER DESIGNS

Jason Harris is an American glass artist, entrepreneur, and one of the original architects of modern cannabis culture. As the founder of Jerome Baker Designs, he helped transform functional glass from underground utility into collectible art—and built one of the most influential glass brands in the world.

Raised in Miami, Harris gravitated toward art early, developing a visual sensibility long before he ever touched glass. His path changed in the early 1990s after encountering pioneering glassblower Bob Snodgrass, whose work introduced him to the possibilities of functional glass as both craft and cultural expression. Harris went on to study and apprentice under some of the most respected names in the field, including Han Ittig in Germany, Cesare Toffolo in Italy, and instructors at Pilchuck Glass School, where he absorbed techniques influenced by Dale Chihuly.

In 1995, Harris formally launched Jerome Baker Designs, building the company from a small garage operation into the largest functional glass manufacturer in the world by the turn of the century.

Known for its use of high-quality borosilicate glass and innovations like silver fuming and advanced bowl design, JBD redefined what a smoking piece could be—elevating it into art, ritual, and identity.

In 2003, Harris and his company became central figures in Operation Pipe Dreams, a nationwide federal crackdown on cannabis paraphernalia. The business was dismantled overnight. Rather than ending his career, the experience reshaped it. Harris pivoted — teaching, traveling, and continuing to create, including fine art pieces such as The Sphere of Consciousness, presented to the Dalai Lama.

With the legalization movement gaining momentum, Harris relaunched Jerome Baker Designs in 2012, reestablishing the brand as a leader in high-end functional glass. From the Las Vegas Dream Factory to global collaborations, he has continued to push the boundaries of the medium, culminating in large-scale works like “Bongzilla,” one of the largest glass bongs ever created.

Today, Harris remains a driving force in the evolution of cannabis culture—championing craftsmanship, authenticity, and the connection between flower and form. His work reflects a lifelong philosophy: glass is not just an object, but part of a ritual—from seed to smoke.

Cotton Candy Kush

The Chosen Cut Flower, 7g

Cotton Candy Kush in the JB 7g jar. Hybrid · 7g · Tested 32.73% THC. Spun-sugar sweet nose, smooth hybrid body, and the loudest number in the drop. Cured slow, sealed in JBD glass. NY 2026 Drop 1 — limited run, once it's gone, it's gone.

LINEAGE

Detroit Runtz × Forbidden Runtz

THC RANGE

24–28%

GROWN

Kincardine, ON — Greenhouse

PROFILE

Gas · Grape · Candy

TERPENESS

Caryophyllene
Humulene
Limonene
Linalool

Cotton Candy Kush

The Chosen Cut Flower, 7g

Cotton Candy Kush in the JB 7g jar. Hybrid · 7g · Tested 32.73% THC. Spun-sugar sweet nose, smooth hybrid body, and the loudest number in the drop. Cured slow, sealed in JBD glass. NY 2026 Drop 1 — limited run, once it's gone, it's gone.

LINEAGE

Detroit Runtz × Forbidden Runtz

THC RANGE

24–28%

GROWN

Kincardine, ON — Greenhouse

PROFILE

Gas · Grape · Candy

TERPENESS

Caryophyllene
Humulene
Limonene
Linalool

<div style="max-width:400px;margin:20px auto;font-family:sans-serif;">
    <input type="text" id="jbd-code" placeholder="Enter your JBD code"
      style="width:100%;padding:12px;font-size:16px;border:1px solid #ccc;border-radius:6px;margin-bottom:8px;">
    <button onclick="jbdCheck()"
      style="width:100%;padding:12px;background:
#DA2342;color:#fff;border:none;border-radius:6px;font-weight:bold;cursor
  :pointer;font-size:14px;">
      VERIFY CODE
    </button>
    <div id="jbd-result" style="margin-top:12px;text-align:center;font-size:14px;"></div>
  </div>
<script>
async function jbdCheck(){
  var c = document.getElementById('jbd-code').value.trim();
  if(!c) return;
  if(c !== 'CODETE$T') c = c.toUpperCase();
  document.getElementById('jbd-result').textContent = 'Checking...';
  
  try {
    var r = await fetch('https://jbcustomer.cannacrypted.com/api/code/validate/' + encodeURIComponent(c));
    var d = await r.json();
    if(d.valid) {
      localStorage.setItem('jbd_verified', '1');
      localStorage.setItem('jbd_product', d.product || 'JBD');
      console.log('Verified! Redirecting...');
      setTimeout(() => {
        window.location.href = '/jbstore/';
      }, 500);
    } else {
      document.getElementById('jbd-result').innerHTML =
        '<span style="color:red;">✗ ' + (d.reason || 'Invalid or expired code') + '</span>';
    }
  } catch(e) {
    document.getElementById('jbd-result').textContent = 'Error checking code. Try again.';
  }
}

// AUTO-VERIFY - check immediately if code in URL
(function() {
  const urlParams = new URLSearchParams(window.location.search);
  const code = urlParams.get('code');
  
  if(code) {
    console.log('Code found in URL:', code);
    // Fill the input
    document.getElementById('jbd-code').value = code;
    // Auto-submit immediately
    jbdCheck();
  }
})();
</script>
<div style="max-width:400px;margin:20px auto;font-family:sans-serif;">
    <input type="text" id="jbd-code" placeholder="Enter your JBD code"
      style="width:100%;padding:12px;font-size:16px;border:1px solid #ccc;border-radius:6px;margin-bottom:8px;">
    <button onclick="jbdCheck()"
      style="width:100%;padding:12px;background:
#DA2342;color:#fff;border:none;border-radius:6px;font-weight:bold;cursor
  :pointer;font-size:14px;">
      VERIFY CODE
    </button>
    <div id="jbd-result" style="margin-top:12px;text-align:center;font-size:14px;"></div>
  </div>
<script>
async function jbdCheck(){
  var c = document.getElementById('jbd-code').value.trim();
  if(!c) return;
  if(c !== 'CODETE$T') c = c.toUpperCase();
  document.getElementById('jbd-result').textContent = 'Checking...';
  
  try {
    var r = await fetch('https://jbcustomer.cannacrypted.com/api/code/validate/' + encodeURIComponent(c));
    var d = await r.json();
    if(d.valid) {
      localStorage.setItem('jbd_verified', '1');
      localStorage.setItem('jbd_product', d.product || 'JBD');
      console.log('Verified! Redirecting...');
      setTimeout(() => {
        window.location.href = '/jbstore/';
      }, 500);
    } else {
      document.getElementById('jbd-result').innerHTML =
        '<span style="color:red;">✗ ' + (d.reason || 'Invalid or expired code') + '</span>';
    }
  } catch(e) {
    document.getElementById('jbd-result').textContent = 'Error checking code. Try again.';
  }
}

// AUTO-VERIFY - check immediately if code in URL
(function() {
  const urlParams = new URLSearchParams(window.location.search);
  const code = urlParams.get('code');
  
  if(code) {
    console.log('Code found in URL:', code);
    // Fill the input
    document.getElementById('jbd-code').value = code;
    // Auto-submit immediately
    jbdCheck();
  }
})();
</script>
<div style="max-width:400px;margin:20px auto;font-family:sans-serif;">
    <input type="text" id="jbd-code" placeholder="Enter your JBD code"
      style="width:100%;padding:12px;font-size:16px;border:1px solid #ccc;border-radius:6px;margin-bottom:8px;">
    <button onclick="jbdCheck()"
      style="width:100%;padding:12px;background:
#DA2342;color:#fff;border:none;border-radius:6px;font-weight:bold;cursor
  :pointer;font-size:14px;">
      VERIFY CODE
    </button>
    <div id="jbd-result" style="margin-top:12px;text-align:center;font-size:14px;"></div>
  </div>
<script>
async function jbdCheck(){
  var c = document.getElementById('jbd-code').value.trim();
  if(!c) return;
  if(c !== 'CODETE$T') c = c.toUpperCase();
  document.getElementById('jbd-result').textContent = 'Checking...';
  
  try {
    var r = await fetch('https://jbcustomer.cannacrypted.com/api/code/validate/' + encodeURIComponent(c));
    var d = await r.json();
    if(d.valid) {
      localStorage.setItem('jbd_verified', '1');
      localStorage.setItem('jbd_product', d.product || 'JBD');
      console.log('Verified! Redirecting...');
      setTimeout(() => {
        window.location.href = '/jbstore/';
      }, 500);
    } else {
      document.getElementById('jbd-result').innerHTML =
        '<span style="color:red;">✗ ' + (d.reason || 'Invalid or expired code') + '</span>';
    }
  } catch(e) {
    document.getElementById('jbd-result').textContent = 'Error checking code. Try again.';
  }
}

// AUTO-VERIFY - check immediately if code in URL
(function() {
  const urlParams = new URLSearchParams(window.location.search);
  const code = urlParams.get('code');
  
  if(code) {
    console.log('Code found in URL:', code);
    // Fill the input
    document.getElementById('jbd-code').value = code;
    // Auto-submit immediately
    jbdCheck();
  }
})();
</script>
<div style="max-width:400px;margin:20px auto;font-family:sans-serif;">
    <input type="text" id="jbd-code" placeholder="Enter your JBD code"
      style="width:100%;padding:12px;font-size:16px;border:1px solid #ccc;border-radius:6px;margin-bottom:8px;">
    <button onclick="jbdCheck()"
      style="width:100%;padding:12px;background:
#DA2342;color:#fff;border:none;border-radius:6px;font-weight:bold;cursor
  :pointer;font-size:14px;">
      VERIFY CODE
    </button>
    <div id="jbd-result" style="margin-top:12px;text-align:center;font-size:14px;"></div>
  </div>
<script>
async function jbdCheck(){
  var c = document.getElementById('jbd-code').value.trim();
  if(!c) return;
  if(c !== 'CODETE$T') c = c.toUpperCase();
  document.getElementById('jbd-result').textContent = 'Checking...';
  
  try {
    var r = await fetch('https://jbcustomer.cannacrypted.com/api/code/validate/' + encodeURIComponent(c));
    var d = await r.json();
    if(d.valid) {
      localStorage.setItem('jbd_verified', '1');
      localStorage.setItem('jbd_product', d.product || 'JBD');
      console.log('Verified! Redirecting...');
      setTimeout(() => {
        window.location.href = '/jbstore/';
      }, 500);
    } else {
      document.getElementById('jbd-result').innerHTML =
        '<span style="color:red;">✗ ' + (d.reason || 'Invalid or expired code') + '</span>';
    }
  } catch(e) {
    document.getElementById('jbd-result').textContent = 'Error checking code. Try again.';
  }
}

// AUTO-VERIFY - check immediately if code in URL
(function() {
  const urlParams = new URLSearchParams(window.location.search);
  const code = urlParams.get('code');
  
  if(code) {
    console.log('Code found in URL:', code);
    // Fill the input
    document.getElementById('jbd-code').value = code;
    // Auto-submit immediately
    jbdCheck();
  }
})();
</script>

Cotton Candy Kush BOX Set

The Complete Drop Box Set

Hybrid drop in box form: 7g Cotton Candy Kush jar, pattern-matched papers + matches, custom Clearboy with blue accents. Hybrid · 7g flower · Tested 32.73% THC. Hand-numbered presentation box. LE 250 — once these are gone, they're gone.

GLASS

Yellow Custom Clearboy

FLOWER

7g Cotton Candy Kush

EDITION

LE 250 · numbered

PROFILE

Grapefruit · Diesel · Lime

Cotton Candy Kush Box Set

The Complete Drop Box Set

Hybrid drop in box form: 7g Cotton Candy Kush jar, pattern-matched papers + matches, custom Clearboy with blue accents. Hybrid · 7g flower · Tested 32.73% THC. Hand-numbered presentation box. LE 250 — once these are gone, they're gone.

GLASS

Yellow Custom Clearboy

FLOWER

7g Cotton Candy Kush

EDITION

LE 250 · numbered

PROFILE

Grapefruit · Diesel · Lime

NYC Sour Diesel Box Set

The Complete Drop Box Set

Sativa drop, full set: 7g NYC Sour D, JB-pattern papers + matches, custom Clearboy with yellow accents. Sativa · 7g flower · Tested 26.58% THC. East Coast lift in a hand-numbered box. LE 250 — collector territory once it sells through.

GLASS

Blue Custom Clearboy

FLOWER

7g Double Runtz

EDITION

LE 250 · numbered

PROFILE

Gas · Grape · Candy

NYC Sour Diesel Box Set

The Complete Drop Box Set

Sativa drop, full set: 7g NYC Sour D, JB-pattern papers + matches, custom Clearboy with yellow accents. Sativa · 7g flower · Tested 26.58% THC. East Coast lift in a hand-numbered box. LE 250 — collector territory once it sells through.

GLASS

Blue Custom Clearboy

FLOWER

7g Double Runtz

EDITION

LE 250 · numbered

PROFILE

Gas · Grape · Candy

Cherry Gushers Box Set

The Complete Drop Box Set

The full Indica drop in one box: 7g Cherry Gushers jar, JB-pattern rolling papers + matchbook, custom Clearboy with red drop accents. Indica · 7g flower · Tested 26.54% THC. Hand-numbered, sealed, packed in a presentation box you'll keep. LE 250 — once they're out, they're out.

GLASS

Red Custom Clearboy

FLOWER

7g Cherry Gushers

EDITION

LE 250 · numbered

PROFILE

Cherry · Tropical · Gas

CHERRY GUSHERS BOX SET

The Complete Drop Box Set

The full Indica drop in one box: 7g Cherry Gushers jar, JB-pattern rolling papers + matchbook, custom Clearboy with red drop accents. Indica · 7g flower · Tested 26.54% THC. Hand-numbered, sealed, packed in a presentation box you'll keep. LE 250 — once they're out, they're out.

GLASS

Red Custom Clearboy

FLOWER

7g Cherry Gushers

EDITION

LE 250 · numbered

PROFILE

Cherry · Tropical · Gas

GRAPE NANNA

Ready To Fire Preroll, 1g

Grape Nana one-gram pre-roll. Concord grape sweetness, sleepy purple finish. Roll-up-and-out energy. Paper-matched to the JB Indica drop. Tested 32.42% THC. NY 2026 Drop 1, single batch — won't be re-run.

LINEAGE

Banana OG × Grape Pie BX

THC RANGE

28-32%

AWARDS

Leafly Strain of the Year ’24

PROFILE

Grape · Banana · Cream

TERPENESS

Myrcene
Linalool
Caryophyllene

GRAPE NANNA

Ready To Fire Preroll, 1g

Grape Nana one-gram pre-roll. Concord grape sweetness, sleepy purple finish. Roll-up-and-out energy. Paper-matched to the JB Indica drop. Tested 32.42% THC. NY 2026 Drop 1, single batch — won't be re-run.

LINEAGE

Banana OG × Grape Pie BX

THC RANGE

28-32%

AWARDS

Leafly Strain of the Year ’24

PROFILE

Grape · Banana · Cream

TERPENESS

Myrcene
Linalool
Caryophyllene

SUPER BOOF ROLL

Ready To Fire Preroll, 1g

Super Boof one-gram pre-roll. Citrus on the front, OG funk on the finish. Even keel — productive without losing your head. Hand-rolled, paper-matched to the JB Hybrid drop. Tested 28.84% THC. NY 2026 Drop 1, single batch — won't be re-run.

LINEAGE

Black Cherry Punch x Tropicana Cookies

THC RANGE

28-32%

AWARDS

Leafly Strain of the Year ’24

PROFILE

Berry – Citrus – Funk

TERPENESS

Limonene
Caryophyllene
Linalool

SUPER BOOF ROLL

Ready To Fire Preroll, 1g

Super Boof one-gram pre-roll. Citrus on the front, OG funk on the finish. Even keel — productive without losing your head. Hand-rolled, paper-matched to the JB Hybrid drop. Tested 28.84% THC. NY 2026 Drop 1, single batch — won't be re-run.

LINEAGE

Black Cherry Punch x Tropicana Cookies

THC RANGE

28-32%

AWARDS

Leafly Strain of the Year ’24

PROFILE

Berry – Citrus – Funk

TERPENESS

Limonene
Caryophyllene
Linalool

NYC Sour Diesel

Ready To Fire Preroll, 1g

NYC Sour Diesel one-gram pre-roll. Fuel-forward with a citrus snap and a clean cerebral lift — the borough in a paper. Hand-rolled, paper-matched to the JB Sativa drop. Tested 23.94% THC. NY 2026 Drop 1, single batch — won't be re-run.

LINEAGE

Notorious THC × Very Cherry

THC RANGE

26-30%

AWARDS

Leafly Strain of the Year ’24

PROFILE

Jelly · Cherry · Cream

TERPENESS

Terpinolene
Caryophyllene
Myrcene

NYC Sour Diesel

Ready To Fire Preroll, 1g

NYC Sour Diesel one-gram pre-roll. Fuel-forward with a citrus snap and a clean cerebral lift — the borough in a paper. Hand-rolled, paper-matched to the JB Sativa drop. Tested 23.94% THC. NY 2026 Drop 1, single batch — won't be re-run.

LINEAGE

Notorious THC × Very Cherry

THC RANGE

26-30%

AWARDS

Leafly Strain of the Year ’24

PROFILE

Jelly · Cherry · Cream

TERPENESS

Terpinolene
Caryophyllene
Myrcene

NYC Diesel

The Chosen Cut Flower, 7g

NYC Sour D in the JB jar — the borough in a quarter ounce. Fuel forward, citrus snap on the back end, the kind of cerebral lift that gets you out the door. East Coast cure, NY 2026 Drop 1 — limited run.

LINEAGE

Mexican × Afghani heritage

THC RANGE

20–25%

Breeder Est.

Tacoma, WA — 2008

PROFILE

Grapefruit · Diesel · Lime

TERPENESS

Caryophyllene
Limonene
Myrcene

NYC Diesel

The Chosen Cut Flower, 7g

NYC Sour D in the JB jar — the borough in a quarter ounce. Fuel forward, citrus snap on the back end, the kind of cerebral lift that gets you out the door. East Coast cure, NY 2026 Drop 1 — limited run.

LINEAGE

Mexican × Afghani heritage

THC RANGE

20–25%

BREEDER EST.

Tacoma, WA — 2008

PROFILE

Grapefruit · Diesel · Lime

TERPENESS

Caryophyllene
Limonene
Myrcene

Double Runtz

The Chosen Cut Flower, 7g

Double Runtz in the JB 7g jar. Hybrid · 7g · Tested 26.21% THC. Loud gas-sweet bouquet with a candy backbone. Balanced enough for a Sunday session, sturdy enough for a Friday night. NY 2026 Drop 1 — limited run.

LINEAGE

Detroit Runtz × Forbidden Runtz

THC RANGE

24–28%

GROWN

Kincardine, ON — Greenhouse

PROFILE

Gas · Grape · Candy

TERPENESS

Caryophyllene
Humulene
Limonene
Linalool

Double Runtz

The Chosen Cut Flower, 7g

Double Runtz in the JB 7g jar. Hybrid · 7g · Tested 26.21% THC. Loud gas-sweet bouquet with a candy backbone. Balanced enough for a Sunday session, sturdy enough for a Friday night. NY 2026 Drop 1 — limited run.

LINEAGE

Detroit Runtz × Forbidden Runtz

THC RANGE

24–28%

GROWN

Kincardine, ON — Greenhouse

PROFILE

Gas · Grape · Candy

TERPENESS

Caryophyllene
Humulene
Limonene
Linalool

RL Haze

The Chosen Cut Flower, 7g

RL Haze, full classic. Spicy old-school sativa terps, lifted clear high, no wobble. The strain that built the Sativa lane — sealed the way Jerome would seal it. NY 2026 Drop 1 — limited run.

LINEAGE

Black Cherry Punch × Gushers

THC RANGE

18–22%

ORIGIN

Amsterdam, est. 1994

PROFILE

Spice · Citrus · Incense

TERPENESS

Terpinolene
Pinene
Ocimene

RL Haze

The Chosen Cut Flower, 7g

RL Haze, full classic. Spicy old-school sativa terps, lifted clear high, no wobble. The strain that built the Sativa lane — sealed the way Jerome would seal it. NY 2026 Drop 1 — limited run.

LINEAGE

Mex × Col × Thai × S. Indian

THC RANGE

18-22%

ORIGIN

Amsterdam, est. 1994

PROFILE

Spice · Citrus · Incense

TERPENESS

Terpinolene
Pinene
Ocimene

Cherry Gushers

The Chosen Cut Flower, 7g

Heavy-hitting Cherry Gushers in the JB 7g jar. Indica · 7g · Tested 26.54% THC. Sweet candy nose, deep purple floor — the kind of evening jar that makes a Tuesday feel like a holiday. Cured slow, sealed in JBD glass. NY 2026 Drop 1 — limited run, once it's gone, it's gone.

LINEAGE

Black Cherry Punch × Gushers

THC RANGE

28–32%

FLOWERING

70–75 days

PROFILE

Cherry · Tropical · Gas

TERPENESS

Caryophyllene
Limonene
Myrcene

Cherry Gushers

The Chosen Cut Flower, 7g

Heavy-hitting Cherry Gushers in the JB 7g jar. Indica · 7g · Tested 26.54% THC. Sweet candy nose, deep purple floor — the kind of evening jar that makes a Tuesday feel like a holiday. Cured slow, sealed in JBD glass. NY 2026 Drop 1 — limited run, once it's gone, it's gone.

LINEAGE

Black Cherry Punch × Gushers

THC RANGE

28-32%

FLOWERING

70–75 days

PROFILE

Cherry · Tropical · Gas

TERPENESS

Caryophyllene
Limonene
Myrcene

<div style="max-width:400px;margin:20px auto;font-family:sans-serif;">
    <input type="text" id="jbd-code" placeholder="Enter your JBD code"
      style="width:100%;padding:12px;font-size:16px;border:1px solid #ccc;border-radius:6px;margin-bottom:8px;">
    <button onclick="jbdCheck()"
      style="width:100%;padding:12px;background:
#DA2342;color:#fff;border:none;border-radius:6px;font-weight:bold;cursor
  :pointer;font-size:14px;">
      VERIFY CODE
    </button>
    <div id="jbd-result" style="margin-top:12px;text-align:center;font-size:14px;"></div>
  </div>
<script>
async function jbdCheck(){
  var c = document.getElementById('jbd-code').value.trim();
  if(!c) return;
  if(c !== 'CODETE$T') c = c.toUpperCase();
  document.getElementById('jbd-result').textContent = 'Checking...';
  
  try {
    var r = await fetch('https://jbcustomer.cannacrypted.com/api/code/validate/' + encodeURIComponent(c));
    var d = await r.json();
    if(d.valid) {
      localStorage.setItem('jbd_verified', '1');
      localStorage.setItem('jbd_product', d.product || 'JBD');
      console.log('Verified! Redirecting...');
      setTimeout(() => {
        window.location.href = '/jbstore/';
      }, 500);
    } else {
      document.getElementById('jbd-result').innerHTML =
        '<span style="color:red;">✗ ' + (d.reason || 'Invalid or expired code') + '</span>';
    }
  } catch(e) {
    document.getElementById('jbd-result').textContent = 'Error checking code. Try again.';
  }
}

// AUTO-VERIFY - check immediately if code in URL
(function() {
  const urlParams = new URLSearchParams(window.location.search);
  const code = urlParams.get('code');
  
  if(code) {
    console.log('Code found in URL:', code);
    // Fill the input
    document.getElementById('jbd-code').value = code;
    // Auto-submit immediately
    jbdCheck();
  }
})();
</script>