Bubble Magic Pollen Tumbler
Bubble Magic Pollen Tumbler | Happy Hydro /* ═══════════════════════════════════════════ DESIGN TOKENS — do not change these ═══════════════════════════════════════════ */ :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; } /* ── 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 (shared) ── */ .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. 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; } /* ── 4. VIDEO ── */ .gallery-wrap { margin: 20px 0; } /* ── 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 IN BOX ── */ .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; } /* ── MOBILE ── */ @media (max-width: 599px) { body { font-size: 15px; } .section-title { font-size: 0.9rem; } /* Stack all two-column grids */ .comparison-grid, .specs-grid, .reassurance-steps, .included-grid { grid-template-columns: 1fr; } /* Feature card body, included list, comparison list */ .feature-card p, .included-list li, .comp-list li { font-size: 0.82rem; line-height: 1.6; } /* How-it-works step descriptions */ .reassurance-step p { font-size: 0.79rem; line-height: 1.6; } /* FAQ touch targets and sizing */ .faq-label { padding: 14px; font-size: 0.84rem; min-height: 44px; } .faq-answer { font-size: 0.82rem; } /* Closing footer stacks vertically */ .closing-trust { flex-direction: column; align-items: stretch; } .closing-contact { align-items: stretch; } .closing-contact a { justify-content: center; padding: 13px 12px; font-size: 0.82rem; min-height: 44px; text-align: center; width: 100%; } /* Prevent horizontal scroll */ body { overflow-x: hidden; } } Turn trim and flower into dry sift in 15 minutes, no water or ice needed The Bubble Magic Pollen Tumbler is a motorized dry sifting machine that processes frozen plant material through a precision micron screen. Load the drum, press the switch, and collect clean dry sift from the catch tray underneath. Available in 150g and 500g capacities, with three interchangeable screen sizes (125, 145, and 185 micron) so you can dial in purity or yield depending on the run. Free shipping on orders over $49 30-day returns on all orders Serving growers since 2006 Gallery What's inside the unit Side by side Tumbler vs. hand sifting Hand sifting with screens Manual shaking for 30+ minutes per batch Inconsistent agitation means uneven sift quality Hard to process more than a few grams at a time Material warms up in your hands, reducing yield Loose powder everywhere, messy cleanup One screen size per session unless you swap mid-run Bubble Magic Pollen Tumbler Motor runs the drum for you, 15 minutes per cycle Even tumbling speed produces uniform sift grade 150g or 500g capacity per load Enclosed drum keeps material frozen longer Catch tray collects sift cleanly, nothing lost Three screen sizes available (125, 145, 185 micron) Key details What you're getting 15-minute cycle time Hands-free Load frozen material into the drum, flip the switch, and walk away. The motor handles all the agitation while you do something else. Three screen micron options Ships with a 145-micron screen. Swap to 125 micron for higher purity or 185 micron for maximum yield. Each size is sold separately and specific to your tumbler model. Completely dry process No water, no ice, no extraction bags. Freeze your material, load the drum, and collect from the tray. Cleanup is a quick wipe. Universal replacement motor One motor fits all three tumbler sizes (150g, 500g, 1500g). If yours wears out after years of use, the replacement drops right in. Two sizes for different workloads The 150g model fits a countertop at 20.75" x 11.75" x 13.5". The 500g model is 29" x 16" x 13.75" for growers processing larger harvests. Pairs with a rosin press Dry sift from the tumbler can go straight into a rosin press for solventless extracts. Bubble Magic makes presses specifically designed for this workflow. Specs Specifications by model Capacity (150g) 150 grams per cycle Capacity (500g) 500 grams per cycle Cycle time 15 minutes Included screen 145 micron (standard) Dimensions (150g) 20.75" x 11.75" x 13.5" Dimensions (500g) 29" x 16" x 13.75" Optional screens 125 micron, 185 micron Motor Electric, universal across all sizes How it works 1 Freeze your material Put your trim, flower, or leaf material in a freezer for at least 2 hours. Frozen trichomes break off cleanly and fall through the screen more efficiently. 2 Load the drum Open the tumbler drum and pack in your frozen material. Don't overstuff it. Leave room for the material to tumble freely inside the screen cylinder. 3 Run the motor Flip the switch and let it run for about 15 minutes. The drum rotates, gently tumbling frozen material against the screen. Dry sift falls through into the collection tray below. 4 Collect and store Slide out the catch tray, scrape up your dry sift, and store it in an airtight container. Use it as-is or press it into rosin. In the box What you get Included with every tumbler Bubble Magic Pollen Tumbler unit 145-micron screen (installed) Collection tray Electric motor (pre-installed) Power cord Sizes and add-ons 150 gram: Countertop size, good for personal harvests 500 gram: Larger drum for bigger runs Optional: 125-micron and 185-micron replacement screens (sold separately, size-specific) Optional: Replacement motor (universal, fits all tumbler sizes) Not sure which size to pick? The 150g handles a few plants' worth of trim per run. If you're processing full harvests from a tent or room, go with the 500g. Call or email us: 716-217-0353 / [email protected] Questions Frequently asked questions Do I need to freeze my material before using this? Yes. Freezing makes trichomes brittle so they snap off cleanly and fall through the screen. Room-temperature material will smear against the mesh instead of separating. Two hours in a standard freezer is enough, but overnight is better if you have the time. What's the difference between the 125, 145, and 185 micron screens? Smaller micron numbers mean finer mesh. The 125 micron lets through only the smallest trichome heads, giving you higher purity but lower total yield. The 185 micron is more open, so you get more material but with more plant matter mixed in. The included 145 micron is a good middle ground for most growers. Can I run multiple batches back to back? Yes, just empty the drum, reload with fresh frozen material, and run another 15-minute cycle. The motor is designed for continuous use. If you're doing many batches in a row, keep your queued material in the freezer until you're ready to load it. How loud is the motor? It's a low hum, roughly comparable to a small desk fan. You can easily have a conversation next to it while it runs. It won't disturb neighbors or anyone in the next room. How do I clean the tumbler between runs? Brush out the drum with a soft brush and wipe down the collection tray. For deeper cleaning, use isopropyl alcohol on the screen to dissolve any residue buildup. Because this is a dry process, there's no water or wet residue to deal with. Will the screens and motor wear out? Screens will eventually develop small tears or stretch with heavy use. Replacement screens are available in all three micron sizes for each tumbler model. The motor is rated for extended use but can be replaced if it fails. One replacement motor fits all tumbler sizes. What if it arrives damaged or I change my mind? If you receive a defective or damaged unit, email us a photo at [email protected] and we'll make it right immediately: replacement or refund, your call. For change-of-mind returns, we accept returns within 30 days for 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]
More you might like
Related
Bubble Magic Pollen Tumbler
Related
Bubble Magic Pollen Tumbler
Related
Bubble Magic Pollen Tumbler
Related