Bubble Magic 20 Gallon Ice Water Extraction Machine
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&family=Inter:wght@400;500&display=swap'); :root { --bg: #ffffff; --bg-soft: #fafafa; --text: #4d4d4d; --text-light: #6b6b6b; --border: #e1e3e4; --blue: #01adf0; --blue-dark: #0190c8; --blue-pale: #e8f7fd; --green: #61a84d; --green-dark: #4d8a3c; --green-pale: #edf6ea; --orange: #ff723c; --orange-pale: #fff2ed; --font-head: 'Poppins', sans-serif; --font-body: 'Inter', sans-serif; --radius: 8px; --radius-sm: 5px; } *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: var(--font-body); font-size: 14px; background: var(--bg); color: var(--text); line-height: 1.65; padding-bottom: 40px; } :focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; border-radius: 3px; } .icon { display: inline-block; flex-shrink: 0; vertical-align: middle; } .svg-sprite { display: none; } /* ── 1. INTRO ── */ .intro { padding-bottom: 18px; border-bottom: 1px solid var(--border); } .outcome-headline { font-family: var(--font-head); font-size: 1.15rem; font-weight: 700; color: var(--text); line-height: 1.25; margin-bottom: 10px; } .outcome-headline span { color: var(--green); } .intro p { font-size: 0.84rem; color: var(--text-light); line-height: 1.75; } .cert-strip { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; } .cert-badge { display: inline-flex; align-items: center; gap: 5px; font-family: var(--font-head); font-size: 0.63rem; font-weight: 600; color: var(--green-dark); background: var(--green-pale); border: 1px solid #cfe6c6; border-radius: 20px; padding: 3px 9px; } .cert-badge svg { color: var(--green); } /* ── 2. TRUST BAR ── */ .trust-bar { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 16px; padding: 9px 12px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-soft); margin: 18px 0; } .trust-item { display: flex; align-items: center; gap: 6px; font-size: 0.74rem; font-weight: 500; color: var(--text-light); } .trust-item strong { color: var(--text); } /* ── SECTION LABELS ── */ .section-label { font-family: var(--font-head); font-size: 0.64rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: var(--blue); margin-bottom: 3px; } .section-title { font-family: var(--font-head); font-size: 0.97rem; font-weight: 700; color: var(--text); margin-bottom: 11px; } /* ── 3. VIDEO ── */ .gallery-wrap { margin: 20px 0; } .video-wrap { position: relative; } /* ── 4. COMPARISON ── */ .comparison-wrap { margin: 20px 0; } .comparison-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; } .comp-col { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--border); } .comp-header { padding: 8px 13px; font-family: var(--font-head); font-size: 0.74rem; font-weight: 700; display: flex; align-items: center; justify-content: center; gap: 7px; text-align: center; } .comp-col.old .comp-header { background: #f5f5f5; color: var(--text-light); border-bottom: 1px solid var(--border); } .comp-col.new .comp-header { background: var(--green); color: #fff; } .comp-list { list-style: none; padding: 0; } .comp-list li { display: flex; align-items: flex-start; gap: 8px; padding: 7px 13px; font-size: 0.76rem; color: var(--text-light); border-bottom: 1px solid var(--border); line-height: 1.45; } .comp-list li:last-child { border-bottom: none; } .comp-col.old .comp-list li svg { color: #bbb; margin-top: 2px; flex-shrink: 0; } .comp-col.new .comp-list li { color: var(--text); } .comp-col.new .comp-list li svg { color: var(--green); margin-top: 2px; flex-shrink: 0; } /* ── MECHANISM EXPLAINER ── */ .mech-explainer { background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--radius); margin: 20px 0; overflow: hidden; } .mech-header { background: var(--green); padding: 10px 15px; display: flex; align-items: center; gap: 9px; } .mech-header h3 { font-family: var(--font-head); font-size: 0.83rem; font-weight: 700; color: #fff; margin: 0; } .mech-body { padding: 14px 16px; font-size: 0.78rem; color: var(--text-light); line-height: 1.75; } .mech-body strong { color: var(--text); } /* ── 5. FEATURE CARDS ── */ .features-wrap { margin: 20px 0; } .features-grid { display: flex; flex-direction: column; gap: 7px; } .feature-card { background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--radius); padding: 11px 13px; display: flex; flex-direction: row; align-items: flex-start; gap: 11px; } .feature-card.hero { border-color: var(--green); background: var(--green-pale); } .feature-icon-wrap { width: 34px; height: 34px; border-radius: var(--radius-sm); background: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; border: 1px solid var(--border); } .feature-card.hero .feature-icon-wrap { border-color: #b8ddb0; } .feature-card-body { flex: 1; min-width: 0; } .feature-card h4 { font-family: var(--font-head); font-size: 0.8rem; font-weight: 700; color: var(--text); margin-bottom: 3px; line-height: 1.3; } .feature-card p { font-size: 0.74rem; color: var(--text-light); line-height: 1.55; margin: 0; } .stat-badge { display: inline-block; background: var(--green); color: #fff; font-family: var(--font-head); font-size: 0.61rem; font-weight: 700; padding: 2px 7px; border-radius: 20px; white-space: nowrap; margin-left: 6px; vertical-align: middle; } /* ── 6. SPECS ── */ .specs-wrap { margin: 20px 0; } .specs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; } .spec-card { background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--radius); padding: 9px 12px; } .spec-card-label { display: flex; align-items: center; gap: 5px; font-size: 0.65rem; font-weight: 500; color: var(--text-light); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 2px; } .spec-card-value { font-family: var(--font-head); font-size: 0.81rem; font-weight: 600; color: var(--text); line-height: 1.3; } /* ── 7. HOW IT WORKS ── */ .reassurance-block { background: var(--blue-pale); border: 1px solid #b3e4f9; border-radius: var(--radius); margin: 20px 0; overflow: hidden; } .reassurance-header { background: var(--blue); padding: 10px 15px; display: flex; align-items: center; gap: 9px; } .reassurance-header h3 { font-family: var(--font-head); font-size: 0.83rem; font-weight: 700; color: #fff; margin: 0; } .reassurance-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: #b3e4f9; } .reassurance-step { display: flex; flex-direction: row; align-items: flex-start; gap: 10px; padding: 12px 14px; background: var(--blue-pale); text-align: left; } .step-num { width: 22px; height: 22px; border-radius: 50%; background: var(--blue); color: #fff; font-family: var(--font-head); font-size: 0.7rem; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; } .reassurance-step-body { flex: 1; } .reassurance-step h4 { font-family: var(--font-head); font-size: 0.76rem; font-weight: 700; color: var(--text); line-height: 1.3; margin-bottom: 2px; } .reassurance-step p { font-size: 0.71rem; color: var(--text-light); line-height: 1.55; margin: 0; } /* ── 8. INCLUDED ── */ .included-wrap { margin: 20px 0; } .included-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } .included-col { background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; } .included-col-header { padding: 8px 13px; font-family: var(--font-head); font-size: 0.74rem; font-weight: 700; display: flex; align-items: center; gap: 6px; border-bottom: 1px solid var(--border); } .included-col-header.blue { background: var(--blue-pale); color: var(--blue-dark); } .included-col-header.green { background: var(--green-pale); color: var(--green-dark); } .included-list { list-style: none; padding: 6px 0; } .included-list li { display: flex; align-items: flex-start; gap: 7px; padding: 4px 13px; font-size: 0.75rem; color: var(--text-light); line-height: 1.5; } .included-list li svg { flex-shrink: 0; margin-top: 3px; } .included-tip { padding: 10px 13px; font-size: 0.74rem; color: var(--text-light); border-top: 1px solid var(--border); background: #fff; line-height: 1.6; } .included-tip strong { color: var(--text); } .included-tip a { color: var(--blue); text-decoration: none; font-weight: 600; } .included-tip a:hover { text-decoration: underline; } /* ── 9. FAQ ── */ .faq-wrap { margin: 20px 0; } .faq-list { display: flex; flex-direction: column; gap: 6px; } .faq-item { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: var(--bg); } .faq-toggle { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; } .faq-label { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 11px 14px; cursor: pointer; font-family: var(--font-head); font-size: 0.79rem; font-weight: 600; color: var(--text); user-select: none; transition: background 0.15s; line-height: 1.4; } .faq-label:hover { background: var(--bg-soft); } .faq-q-icon { flex-shrink: 0; width: 20px; height: 20px; border-radius: 50%; background: var(--bg-soft); border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; color: var(--blue); transition: background 0.15s, color 0.15s, transform 0.2s; } .faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.35s ease, padding 0.2s; font-size: 0.78rem; color: var(--text-light); line-height: 1.7; padding: 0 14px; background: var(--bg-soft); } .faq-answer a { color: var(--blue); } .faq-toggle:checked + .faq-label { background: var(--blue); color: #fff; } .faq-toggle:checked + .faq-label .faq-q-icon { background: rgba(255,255,255,0.2); border-color: rgba(255,255,255,0.4); transform: rotate(45deg); } .faq-toggle:checked ~ .faq-answer { max-height: 500px; padding: 12px 14px; border-top: 1px solid rgba(1,173,240,0.15); } .faq-toggle:focus-visible + .faq-label { outline: 3px solid var(--blue); outline-offset: -2px; } /* ── 10. CLOSING FOOTER ── */ .closing-trust { margin-top: 22px; padding: 15px 16px; background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--radius); display: flex; flex-wrap: wrap; align-items: center; gap: 12px; justify-content: space-between; } .closing-trust-text { display: flex; align-items: flex-start; gap: 10px; flex: 1; min-width: 200px; } .closing-trust-text svg { color: var(--green); margin-top: 2px; flex-shrink: 0; } .closing-trust-text p { font-size: 0.78rem; color: var(--text-light); line-height: 1.6; } .closing-trust-text strong { color: var(--text); font-weight: 600; } .closing-contact { display: flex; flex-direction: column; gap: 5px; align-items: flex-end; } .closing-contact a { display: inline-flex; align-items: center; gap: 5px; font-family: var(--font-head); font-size: 0.74rem; font-weight: 600; color: var(--blue); text-decoration: none; padding: 6px 12px; border: 1px solid var(--blue); border-radius: var(--radius-sm); transition: background 0.15s, color 0.15s; white-space: nowrap; } .closing-contact a:hover { background: var(--blue); color: #fff; } .closing-contact a svg { flex-shrink: 0; } @media (max-width: 560px) { .reassurance-steps { grid-template-columns: 1fr; } } Run bigger ice water washes without stirring by hand The Bubble Magic 20 Gallon Washing Machine takes over the hardest part of ice water extraction: the agitation. A timed motor turns your ice, water, and plant material in gentle cycles, then a built-in drain valve empties the resin-rich water straight into your collection bags. It handles batches far larger than you can practically wash by hand. Load it, set the timer, and walk away. 1-year manufacturer warranty BPA-free PP + ABS build 220-micron wash bag included Free shipping on orders over $49 30-day returns on all orders Serving growers since 2006 See it in action Watch the 20-gallon machine run a wash Why upgrade Hand-washing large batches vs. the 20-gallon machine Washing by hand You stir the whole wash by hand, one bucket at a time Agitation drifts as your arms tire, so batches vary Hard stirring shreds leaf and clouds the water You lift and tip a heavy, ice-filled bucket to drain it Batch size is capped by what you can physically stir Your hands stay in ice water for the whole session Bubble Magic 20 Gallon A timed motor runs the agitation for you in 3-minute cycles The same motion every cycle, so batches come out more alike Gentle, even turning is easier on resin heads and leaf A built-in drain valve empties it without lifting or tipping The 20-gallon drum handles large batches in one run You set the timer and step away while it works Where the machine fits in a bubble bag wash The machine handles one job in the wash: agitation and draining. Your plant material goes inside the 220-micron zipper wash bag that lines the drum, along with cold water and plenty of ice. As the motor turns everything, the cold and the motion make the resin heads brittle and knock them loose. The wash bag keeps the leaf contained so only resin and water pass through it into the drum. When the cycle finishes, you open the drain valve and let that resin-rich water flow down through a stacked set of micron bags, which catch the resin and grade it by size. Those collection bags are bought separately. In short: the machine replaces your arms, not your bags. What makes it different Built for how growers actually wash Timer runs in 3-minute increments up to 15 minutes 15-min timer Dial the wash in short, repeatable stages instead of guessing when to stop stirring. Because every stage runs the same, your results stop depending on how tired your arms are. Drain valve and hose route straight to your bags The valve and hose feed the wash water directly into your stacked collection bags, so the resin drops out where you want it instead of sloshing around a tipped bucket. 20-gallon drum for high-volume runs 20 gal This is the step up from a bucket or the 5-gallon machine when hand-washing has become your bottleneck. More material per session means fewer sessions to get through a harvest. Gentle, even turning protects your wash Steady rotation is easier on the material than aggressive stirring, so you knock resin loose without grinding as much green leaf into the water. Keep the water cold and it stays that way. 220-micron zipper wash bag in the box The included work bag holds your plant material inside the drum and lets resin and water pass while keeping the bulk of the leaf out of the wash. One bag ships with every machine. Light enough to move, built to take a beating ~30 lbs Molded from BPA-free PP and ABS and around 30 pounds empty, it moves between a wash station and storage without a cart. Covered by a 1-year manufacturer warranty. Specs Numbers and details Capacity 20-gallon drum Timer 15 min, 3-minute increments Drainage Built-in drain valve and hose Drive Electric motor, plugs into a wall outlet Construction BPA-free PP and ABS Weight About 30 lbs (13 kg) Included bag One 220-micron zipper wash bag Warranty 1-year manufacturer warranty How a wash runs, start to finish 1 Load the wash bag Line the drum with the 220-micron zipper bag, add your plant material, then fill with cold water and plenty of ice. 2 Set the timer Start with a short cycle on your first wash, then let the motor turn everything gently while you prep your bags. 3 Drain through your bags Open the valve and run the resin-rich water through the hose into a stacked set of micron collection bags. 4 Collect and run it again Pull the resin from each collection bag, then add fresh ice and run another cycle on the same material for a second pull. In the box What ships, and what you'll add Ships with the machine Bubble Magic 20-gallon washing machine One 220-micron zipper wash bag Built-in drain valve and hose 1-year manufacturer warranty What you'll also need Collection bags: a 20/32 gallon bubble bag set to catch and grade the resin Ice and water: a generous supply of ice for every run Optional: a spare wash bag for back-to-back batches Do I need the bags too? Yes. The machine ships with the 220-micron wash bag that holds your material, but you still need a 20/32 gallon collection set to actually catch the extract. Not sure which set fits your setup? Call or email us: 716-217-0353 / [email protected] Questions Frequently asked questions Do I need experience to use this? No. You load the bag, add ice and water, and set the timer. The machine handles the agitation. The part that takes practice is dialing in your wash times and picking micron sizes, not running the machine itself. Does it come with everything I need to make extract? Not quite. It includes the wash bag that holds your material, but you still need a 20/32 gallon set of collection bags to catch and grade the resin, plus ice and water. See the "what you'll also need" section above, or call us and we'll make sure you order the right bags. Should I get the 20-gallon or the 5-gallon? Get the 20-gallon if you regularly process large amounts of material and hand-washing has become the bottleneck. If you run small personal batches, the 5-gallon is easier to store and uses less ice and water per run. When in doubt, size to the biggest batch you actually run, not the average one. Will a machine hurt quality compared to washing by hand? The motion is more consistent than most people can hold by hand across a full wash, and steady turning knocks resin loose without over-working the leaf. The keys are the same as any wash: keep the water cold and don't run the timer longer than you need to. How do I clean and store it? Drain it fully through the valve, rinse the drum and wash bag with clean water, and let both air-dry before you put it away. Keeping the drain valve clear of plant bits is the main upkeep, so give it a quick flush after every session. What happens if the motor or valve stops working? The machine carries a 1-year manufacturer warranty. If a part malfunctions within that window, the manufacturer typically ships a replacement part rather than taking the whole unit back. Email us a photo of the issue at [email protected] and we'll help you get it sorted. What if it shows up damaged or isn't right for me? If you receive a defective or damaged unit, email us a photo at [email protected] and we'll take care of you. For change-of-mind returns, we accept returns within 30 days for most items in new, resalable condition. If you're not sure whether this product is right for your setup, call us first at 716-217-0353. We'd rather answer your questions before you order. Why should I buy this from Happy Hydro instead of somewhere else? Happy Hydro has been selling growing equipment since 2006. We've carried Bubble Magic for years because the systems work great and customers who buy them leave happy. Have questions before you order? Call 716-217-0353 or email [email protected]. We're easy to reach and happy to help! Questions? We're easy to reach. Happy Hydro has been serving growers since 2006. Call or email us before you order, after you order, or any time something comes up. When you're happy, we're happy. 716-217-0353 [email protected]