{"id":90154,"date":"2025-11-27T17:58:20","date_gmt":"2025-11-27T09:58:20","guid":{"rendered":"https:\/\/www.jarsking.com\/?page_id=90154"},"modified":"2025-11-27T18:02:05","modified_gmt":"2025-11-27T10:02:05","slug":"interactive-cannabis-pre-roll-packaging-guide","status":"publish","type":"page","link":"https:\/\/www.jarsking.com\/ja\/interactive-cannabis-pre-roll-packaging-guide\/","title":{"rendered":"Interactive Cannabis Pre-Roll Packaging Guide"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"90154\" class=\"elementor elementor-90154\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-44e2612 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"44e2612\" data-element_type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8214579\" data-id=\"8214579\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-318da41 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"318da41\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!-- ========================================\r\n     JARSKING INTEGRATION VERSION\r\n     Paste this into your HTML Code editor\r\n     ======================================== -->\r\n\r\n<style>\r\n    \/* ==================== CSS RESET & BASE STYLES ==================== *\/\r\n    .jarsking-interactive * {\r\n        margin: 0;\r\n        padding: 0;\r\n        box-sizing: border-box;\r\n    }\r\n    \r\n    .jarsking-interactive {\r\n        \/* Jarsking Brand Colors *\/\r\n        --primary-green: #2d5f3f;\r\n        --accent-gold: #d4af37;\r\n        --deep-forest: #1a3a2a;\r\n        --light-sage: #e8f3ea;\r\n        --pure-white: #ffffff;\r\n        --soft-gray: #f5f5f5;\r\n        --text-dark: #2c2c2c;\r\n        --text-light: #666666;\r\n        \r\n        \/* Typography Scale *\/\r\n        --fs-hero: clamp(2.5rem, 6vw, 5rem);\r\n        --fs-h1: clamp(2rem, 4vw, 3.5rem);\r\n        --fs-h2: clamp(1.5rem, 3vw, 2.5rem);\r\n        --fs-h3: clamp(1.2rem, 2vw, 1.8rem);\r\n        --fs-body: clamp(1rem, 1.5vw, 1.125rem);\r\n        --fs-small: clamp(0.875rem, 1.2vw, 1rem);\r\n        \r\n        \/* Spacing *\/\r\n        --section-padding: clamp(3rem, 8vh, 6rem);\r\n        --container-max: 1400px;\r\n        \r\n        \/* Transitions *\/\r\n        --transition-smooth: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);\r\n        --transition-quick: all 0.3s ease;\r\n        \r\n        font-family: 'Segoe UI', 'Inter', -apple-system, BlinkMacSystemFont, 'Roboto', sans-serif;\r\n        font-size: var(--fs-body);\r\n        line-height: 1.7;\r\n        color: var(--text-dark);\r\n        overflow-x: hidden;\r\n    }\r\n    \r\n    \/* Respect user motion preferences *\/\r\n    @media (prefers-reduced-motion: reduce) {\r\n        .jarsking-interactive *, .jarsking-interactive *::before, .jarsking-interactive *::after {\r\n            animation-duration: 0.01ms !important;\r\n            animation-iteration-count: 1 !important;\r\n            transition-duration: 0.01ms !important;\r\n        }\r\n    }\r\n    \r\n    .jarsking-interactive h1, \r\n    .jarsking-interactive h2, \r\n    .jarsking-interactive h3, \r\n    .jarsking-interactive h4 {\r\n        font-weight: 700;\r\n        line-height: 1.2;\r\n        margin-bottom: 1rem;\r\n        color: var(--deep-forest);\r\n    }\r\n    \r\n    .jarsking-interactive h1 { font-size: var(--fs-h1); }\r\n    .jarsking-interactive h2 { font-size: var(--fs-h2); }\r\n    .jarsking-interactive h3 { font-size: var(--fs-h3); }\r\n    \r\n    .jarsking-interactive p {\r\n        margin-bottom: 1.2rem;\r\n        color: var(--text-light);\r\n    }\r\n    \r\n    .jarsking-interactive a {\r\n        color: var(--primary-green);\r\n        text-decoration: none;\r\n        transition: var(--transition-quick);\r\n        border-bottom: 2px solid transparent;\r\n    }\r\n    \r\n    .jarsking-interactive a:hover {\r\n        color: var(--accent-gold);\r\n        border-bottom-color: var(--accent-gold);\r\n    }\r\n    \r\n    \/* Container *\/\r\n    .jarsking-interactive .container {\r\n        max-width: var(--container-max);\r\n        margin: 0 auto;\r\n        padding: 0 clamp(1rem, 4vw, 3rem);\r\n    }\r\n    \r\n    .jarsking-interactive section {\r\n        padding: var(--section-padding) 0;\r\n        position: relative;\r\n    }\r\n    \r\n    \/* ==================== HERO SECTION ==================== *\/\r\n    .jarsking-interactive .hero {\r\n        min-height: 70vh;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        background: linear-gradient(135deg, var(--deep-forest) 0%, var(--primary-green) 100%);\r\n        color: var(--pure-white);\r\n        position: relative;\r\n        overflow: hidden;\r\n        margin-bottom: 0;\r\n    }\r\n    \r\n    .jarsking-interactive .hero::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        bottom: 0;\r\n        background: url('data:image\/svg+xml,<svg width=\"100\" height=\"100\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><defs><pattern id=\"grid\" width=\"40\" height=\"40\" patternUnits=\"userSpaceOnUse\"><path d=\"M 40 0 L 0 0 0 40\" fill=\"none\" stroke=\"rgba(255,255,255,0.05)\" stroke-width=\"1\"\/><\/pattern><\/defs><rect width=\"100\" height=\"100\" fill=\"url(%23grid)\"\/><\/svg>');\r\n        opacity: 0.3;\r\n    }\r\n    \r\n    .jarsking-interactive .hero-content {\r\n        position: relative;\r\n        z-index: 2;\r\n        text-align: center;\r\n        max-width: 900px;\r\n    }\r\n    \r\n    .jarsking-interactive .hero h1 {\r\n        font-size: var(--fs-hero);\r\n        color: var(--pure-white);\r\n        margin-bottom: 1.5rem;\r\n        opacity: 0;\r\n        animation: fadeInUp 1s ease forwards 0.3s;\r\n    }\r\n    \r\n    .jarsking-interactive .hero-subtitle {\r\n        font-size: var(--fs-h3);\r\n        color: var(--light-sage);\r\n        margin-bottom: 2rem;\r\n        opacity: 0;\r\n        animation: fadeInUp 1s ease forwards 0.6s;\r\n    }\r\n    \r\n    .jarsking-interactive .market-value {\r\n        display: inline-block;\r\n        font-size: clamp(3rem, 8vw, 6rem);\r\n        font-weight: 900;\r\n        color: var(--accent-gold);\r\n        margin: 2rem 0;\r\n        opacity: 0;\r\n        animation: fadeInScale 1s ease forwards 0.9s;\r\n    }\r\n    \r\n    .jarsking-interactive .hero-stats {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\r\n        gap: 2rem;\r\n        margin-top: 3rem;\r\n        opacity: 0;\r\n        animation: fadeInUp 1s ease forwards 1.2s;\r\n    }\r\n    \r\n    .jarsking-interactive .stat-card {\r\n        background: rgba(255, 255, 255, 0.1);\r\n        backdrop-filter: blur(10px);\r\n        padding: 1.5rem;\r\n        border-radius: 12px;\r\n        border: 1px solid rgba(255, 255, 255, 0.2);\r\n    }\r\n    \r\n    .jarsking-interactive .stat-number {\r\n        font-size: var(--fs-h2);\r\n        font-weight: 700;\r\n        color: var(--accent-gold);\r\n        display: block;\r\n    }\r\n    \r\n    .jarsking-interactive .stat-label {\r\n        font-size: var(--fs-small);\r\n        color: var(--light-sage);\r\n        margin-top: 0.5rem;\r\n    }\r\n    \r\n    \/* ==================== MARKET GROWTH SECTION ==================== *\/\r\n    .jarsking-interactive .market-growth {\r\n        background: var(--soft-gray);\r\n    }\r\n    \r\n    .jarsking-interactive .growth-chart {\r\n        margin: 3rem 0;\r\n        padding: 2rem;\r\n        background: var(--pure-white);\r\n        border-radius: 16px;\r\n        box-shadow: 0 10px 40px rgba(0,0,0,0.08);\r\n    }\r\n    \r\n    .jarsking-interactive .bar-chart {\r\n        display: flex;\r\n        flex-direction: column;\r\n        gap: 1.5rem;\r\n        margin-top: 2rem;\r\n    }\r\n    \r\n    .jarsking-interactive .bar-row {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: 1rem;\r\n    }\r\n    \r\n    .jarsking-interactive .bar-label {\r\n        width: 80px;\r\n        font-weight: 600;\r\n        color: var(--text-dark);\r\n        font-size: var(--fs-small);\r\n    }\r\n    \r\n    .jarsking-interactive .bar-container {\r\n        flex: 1;\r\n        height: 40px;\r\n        background: var(--light-sage);\r\n        border-radius: 8px;\r\n        overflow: hidden;\r\n        position: relative;\r\n    }\r\n    \r\n    .jarsking-interactive .bar-fill {\r\n        height: 100%;\r\n        background: linear-gradient(90deg, var(--primary-green), var(--accent-gold));\r\n        border-radius: 8px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: flex-end;\r\n        padding-right: 1rem;\r\n        width: 0;\r\n        transition: width 1.5s cubic-bezier(0.4, 0, 0.2, 1);\r\n    }\r\n    \r\n    .jarsking-interactive .bar-value {\r\n        color: var(--pure-white);\r\n        font-weight: 700;\r\n        font-size: var(--fs-small);\r\n    }\r\n    \r\n    \/* ==================== COMPLIANCE FORTRESS ==================== *\/\r\n    .jarsking-interactive .compliance-section {\r\n        background: var(--pure-white);\r\n    }\r\n    \r\n    .jarsking-interactive .fortress-container {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\r\n        gap: 2rem;\r\n        margin-top: 3rem;\r\n    }\r\n    \r\n    .jarsking-interactive .fortress-gate {\r\n        background: var(--soft-gray);\r\n        border-radius: 16px;\r\n        padding: 2rem;\r\n        transition: var(--transition-smooth);\r\n        border: 2px solid transparent;\r\n        opacity: 0;\r\n        transform: translateY(30px);\r\n    }\r\n    \r\n    .jarsking-interactive .fortress-gate.unlocked {\r\n        opacity: 1;\r\n        transform: translateY(0);\r\n        border-color: var(--primary-green);\r\n        background: linear-gradient(135deg, var(--light-sage) 0%, var(--pure-white) 100%);\r\n    }\r\n    \r\n    .jarsking-interactive .gate-icon {\r\n        font-size: 3rem;\r\n        margin-bottom: 1rem;\r\n        display: block;\r\n    }\r\n    \r\n    .jarsking-interactive .gate-title {\r\n        font-size: var(--fs-h3);\r\n        color: var(--primary-green);\r\n        margin-bottom: 1rem;\r\n    }\r\n    \r\n    .jarsking-interactive .gate-requirements {\r\n        list-style: none;\r\n        margin-top: 1rem;\r\n    }\r\n    \r\n    .jarsking-interactive .gate-requirements li {\r\n        padding: 0.5rem 0;\r\n        padding-left: 1.5rem;\r\n        position: relative;\r\n        color: var(--text-light);\r\n    }\r\n    \r\n    .jarsking-interactive .gate-requirements li::before {\r\n        content: '\u2713';\r\n        position: absolute;\r\n        left: 0;\r\n        color: var(--primary-green);\r\n        font-weight: 700;\r\n    }\r\n    \r\n    \/* ==================== STATE MAP ==================== *\/\r\n    .jarsking-interactive .state-map-section {\r\n        background: var(--soft-gray);\r\n    }\r\n    \r\n    .jarsking-interactive .map-container {\r\n        background: var(--pure-white);\r\n        padding: 2rem;\r\n        border-radius: 16px;\r\n        box-shadow: 0 10px 40px rgba(0,0,0,0.08);\r\n        margin-top: 2rem;\r\n    }\r\n    \r\n    .jarsking-interactive .state-grid {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));\r\n        gap: 1rem;\r\n        margin-top: 2rem;\r\n    }\r\n    \r\n    .jarsking-interactive .state-card {\r\n        background: var(--light-sage);\r\n        padding: 1.5rem;\r\n        border-radius: 12px;\r\n        cursor: pointer;\r\n        transition: var(--transition-quick);\r\n        border: 2px solid transparent;\r\n    }\r\n    \r\n    .jarsking-interactive .state-card:hover {\r\n        border-color: var(--primary-green);\r\n        transform: translateY(-4px);\r\n        box-shadow: 0 8px 20px rgba(45, 95, 63, 0.2);\r\n    }\r\n    \r\n    .jarsking-interactive .state-name {\r\n        font-weight: 700;\r\n        color: var(--primary-green);\r\n        font-size: var(--fs-h3);\r\n        margin-bottom: 0.5rem;\r\n    }\r\n    \r\n    .jarsking-interactive .requirement-badge {\r\n        display: inline-block;\r\n        background: var(--primary-green);\r\n        color: var(--pure-white);\r\n        padding: 0.25rem 0.75rem;\r\n        border-radius: 20px;\r\n        font-size: 0.75rem;\r\n        margin: 0.25rem;\r\n        font-weight: 600;\r\n    }\r\n    \r\n    \/* ==================== MATERIALS SECTION ==================== *\/\r\n    .jarsking-interactive .materials-section {\r\n        background: var(--pure-white);\r\n        min-height: 100vh;\r\n    }\r\n    \r\n    .jarsking-interactive .materials-arena {\r\n        display: grid;\r\n        grid-template-columns: 1fr 1fr;\r\n        gap: 3rem;\r\n        margin-top: 3rem;\r\n        align-items: start;\r\n    }\r\n    \r\n    .jarsking-interactive .material-selector {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\r\n        gap: 1rem;\r\n        margin-bottom: 2rem;\r\n    }\r\n    \r\n    .jarsking-interactive .material-btn {\r\n        background: var(--soft-gray);\r\n        border: 2px solid transparent;\r\n        padding: 1rem;\r\n        border-radius: 12px;\r\n        cursor: pointer;\r\n        transition: var(--transition-quick);\r\n        text-align: center;\r\n        font-weight: 600;\r\n        color: var(--text-dark);\r\n    }\r\n    \r\n    .jarsking-interactive .material-btn:hover {\r\n        border-color: var(--primary-green);\r\n        background: var(--light-sage);\r\n    }\r\n    \r\n    .jarsking-interactive .material-btn.active {\r\n        background: var(--primary-green);\r\n        color: var(--pure-white);\r\n        border-color: var(--primary-green);\r\n    }\r\n    \r\n    .jarsking-interactive .material-icon {\r\n        font-size: 2rem;\r\n        display: block;\r\n        margin-bottom: 0.5rem;\r\n    }\r\n    \r\n    .jarsking-interactive .radar-chart-container {\r\n        background: var(--soft-gray);\r\n        padding: 2rem;\r\n        border-radius: 16px;\r\n        position: sticky;\r\n        top: 100px;\r\n    }\r\n    \r\n    .jarsking-interactive .material-details {\r\n        background: var(--light-sage);\r\n        padding: 2rem;\r\n        border-radius: 16px;\r\n        margin-top: 2rem;\r\n    }\r\n    \r\n    .jarsking-interactive .detail-grid {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\r\n        gap: 1.5rem;\r\n        margin-top: 1rem;\r\n    }\r\n    \r\n    .jarsking-interactive .detail-item {\r\n        text-align: center;\r\n    }\r\n    \r\n    .jarsking-interactive .detail-value {\r\n        font-size: var(--fs-h3);\r\n        font-weight: 700;\r\n        color: var(--primary-green);\r\n        display: block;\r\n    }\r\n    \r\n    .jarsking-interactive .detail-label {\r\n        font-size: var(--fs-small);\r\n        color: var(--text-light);\r\n        margin-top: 0.25rem;\r\n    }\r\n    \r\n    \/* ==================== SUSTAINABILITY SECTION ==================== *\/\r\n    .jarsking-interactive .sustainability-section {\r\n        background: var(--deep-forest);\r\n        color: var(--pure-white);\r\n    }\r\n    \r\n    .jarsking-interactive .sustainability-section h2,\r\n    .jarsking-interactive .sustainability-section h3 {\r\n        color: var(--pure-white);\r\n    }\r\n    \r\n    .jarsking-interactive .sustainability-section p {\r\n        color: rgba(255, 255, 255, 0.9);\r\n    }\r\n    \r\n    .jarsking-interactive .ripple-container {\r\n        position: relative;\r\n        height: 400px;\r\n        margin: 3rem 0;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n    }\r\n    \r\n    .jarsking-interactive .ripple {\r\n        position: absolute;\r\n        border: 2px solid var(--accent-gold);\r\n        border-radius: 50%;\r\n        opacity: 0;\r\n    }\r\n    \r\n    .jarsking-interactive .ripple.animate {\r\n        animation: rippleExpand 3s ease-out infinite;\r\n    }\r\n    \r\n    .jarsking-interactive .ripple:nth-child(1) { animation-delay: 0s; }\r\n    .jarsking-interactive .ripple:nth-child(2) { animation-delay: 1s; }\r\n    .jarsking-interactive .ripple:nth-child(3) { animation-delay: 2s; }\r\n    \r\n    .jarsking-interactive .impact-stats {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\r\n        gap: 2rem;\r\n        margin-top: 3rem;\r\n    }\r\n    \r\n    .jarsking-interactive .impact-card {\r\n        background: rgba(255, 255, 255, 0.1);\r\n        backdrop-filter: blur(10px);\r\n        padding: 2rem;\r\n        border-radius: 16px;\r\n        border: 1px solid rgba(255, 255, 255, 0.2);\r\n        text-align: center;\r\n    }\r\n    \r\n    .jarsking-interactive .impact-number {\r\n        font-size: var(--fs-h1);\r\n        font-weight: 900;\r\n        color: var(--accent-gold);\r\n        display: block;\r\n    }\r\n    \r\n    .jarsking-interactive .impact-description {\r\n        font-size: var(--fs-small);\r\n        color: var(--light-sage);\r\n        margin-top: 0.5rem;\r\n    }\r\n    \r\n    \/* ==================== COST PYRAMID ==================== *\/\r\n    .jarsking-interactive .cost-section {\r\n        background: var(--pure-white);\r\n    }\r\n    \r\n    .jarsking-interactive .pyramid-container {\r\n        margin: 3rem 0;\r\n        padding: 3rem;\r\n        background: var(--soft-gray);\r\n        border-radius: 16px;\r\n    }\r\n    \r\n    .jarsking-interactive .pyramid-visual {\r\n        display: flex;\r\n        flex-direction: column;\r\n        gap: 0.5rem;\r\n        margin: 2rem auto;\r\n        max-width: 600px;\r\n    }\r\n    \r\n    .jarsking-interactive .pyramid-tier {\r\n        background: linear-gradient(135deg, var(--primary-green), var(--accent-gold));\r\n        padding: 1.5rem;\r\n        border-radius: 8px;\r\n        color: var(--pure-white);\r\n        text-align: center;\r\n        transition: var(--transition-smooth);\r\n        cursor: pointer;\r\n    }\r\n    \r\n    .jarsking-interactive .pyramid-tier:hover {\r\n        transform: scale(1.02);\r\n        box-shadow: 0 8px 30px rgba(45, 95, 63, 0.3);\r\n    }\r\n    \r\n    .jarsking-interactive .tier-budget { width: 100%; }\r\n    .jarsking-interactive .tier-midtier { width: 85%; margin: 0 auto; }\r\n    .jarsking-interactive .tier-premium { width: 70%; margin: 0 auto; }\r\n    .jarsking-interactive .tier-ultra { width: 55%; margin: 0 auto; }\r\n    \r\n    .jarsking-interactive .tier-label {\r\n        font-weight: 700;\r\n        font-size: var(--fs-h3);\r\n        display: block;\r\n        margin-bottom: 0.5rem;\r\n    }\r\n    \r\n    .jarsking-interactive .tier-range {\r\n        font-size: var(--fs-body);\r\n        opacity: 0.9;\r\n    }\r\n    \r\n    \/* ==================== CTA SECTION ==================== *\/\r\n    .jarsking-interactive .cta-section {\r\n        background: linear-gradient(135deg, var(--accent-gold) 0%, #c19a2e 100%);\r\n        color: var(--deep-forest);\r\n        text-align: center;\r\n    }\r\n    \r\n    .jarsking-interactive .cta-section h2 {\r\n        color: var(--deep-forest);\r\n        font-size: var(--fs-hero);\r\n        margin-bottom: 1.5rem;\r\n    }\r\n    \r\n    .jarsking-interactive .cta-section p {\r\n        color: var(--deep-forest);\r\n        font-size: var(--fs-h3);\r\n        max-width: 800px;\r\n        margin: 0 auto 2rem;\r\n    }\r\n    \r\n    .jarsking-interactive .cta-button {\r\n        display: inline-block;\r\n        background: var(--deep-forest);\r\n        color: var(--accent-gold);\r\n        padding: 1.5rem 3rem;\r\n        border-radius: 50px;\r\n        font-size: var(--fs-h3);\r\n        font-weight: 700;\r\n        text-transform: uppercase;\r\n        letter-spacing: 1px;\r\n        transition: var(--transition-smooth);\r\n        border: 3px solid var(--deep-forest);\r\n        margin-top: 2rem;\r\n    }\r\n    \r\n    .jarsking-interactive .cta-button:hover {\r\n        background: transparent;\r\n        color: var(--deep-forest);\r\n        transform: scale(1.05);\r\n        box-shadow: 0 10px 40px rgba(26, 58, 42, 0.3);\r\n    }\r\n    \r\n    \/* ==================== ANIMATIONS ==================== *\/\r\n    @keyframes fadeInUp {\r\n        from {\r\n            opacity: 0;\r\n            transform: translateY(30px);\r\n        }\r\n        to {\r\n            opacity: 1;\r\n            transform: translateY(0);\r\n        }\r\n    }\r\n    \r\n    @keyframes fadeInScale {\r\n        from {\r\n            opacity: 0;\r\n            transform: scale(0.8);\r\n        }\r\n        to {\r\n            opacity: 1;\r\n            transform: scale(1);\r\n        }\r\n    }\r\n    \r\n    @keyframes rippleExpand {\r\n        0% {\r\n            width: 50px;\r\n            height: 50px;\r\n            opacity: 0;\r\n        }\r\n        50% {\r\n            opacity: 0.5;\r\n        }\r\n        100% {\r\n            width: 400px;\r\n            height: 400px;\r\n            opacity: 0;\r\n        }\r\n    }\r\n    \r\n    \/* ==================== UTILITY ==================== *\/\r\n    .jarsking-interactive .text-center { text-align: center; }\r\n    .jarsking-interactive .mt-2 { margin-top: 2rem; }\r\n    \r\n    .jarsking-interactive .fade-in-on-scroll {\r\n        opacity: 0;\r\n        transform: translateY(30px);\r\n        transition: opacity 0.8s ease, transform 0.8s ease;\r\n    }\r\n    \r\n    .jarsking-interactive .fade-in-on-scroll.visible {\r\n        opacity: 1;\r\n        transform: translateY(0);\r\n    }\r\n    \r\n    \/* ==================== RESPONSIVE ==================== *\/\r\n    @media (max-width: 768px) {\r\n        .jarsking-interactive .materials-arena {\r\n            grid-template-columns: 1fr;\r\n        }\r\n        \r\n        .jarsking-interactive .radar-chart-container {\r\n            position: static;\r\n        }\r\n        \r\n        .jarsking-interactive .hero-stats {\r\n            grid-template-columns: 1fr;\r\n        }\r\n    }\r\n<\/style>\r\n\r\n<!-- ========================================\r\n     INTERACTIVE CONTENT STARTS HERE\r\n     ======================================== -->\r\n<div class=\"jarsking-interactive\">\r\n    \r\n    <!-- Hero Section -->\r\n    <section class=\"hero\">\r\n        <div class=\"hero-content\">\r\n            <h1>The Infused Pre-Roll Opportunity<\/h1>\r\n            <p class=\"hero-subtitle\">Premium concentrates demand premium packaging<\/p>\r\n            <div class=\"market-value\">$1.75B<\/div>\r\n            <div class=\"hero-stats\">\r\n                <div class=\"stat-card\">\r\n                    <span class=\"stat-number\">44.4%<\/span>\r\n                    <span class=\"stat-label\">Market Share 2024<\/span>\r\n                <\/div>\r\n                <div class=\"stat-card\">\r\n                    <span class=\"stat-number\">$24.6B<\/span>\r\n                    <span class=\"stat-label\">Packaging Market by 2034<\/span>\r\n                <\/div>\r\n                <div class=\"stat-card\">\r\n                    <span class=\"stat-number\">22.6%<\/span>\r\n                    <span class=\"stat-label\">Annual Growth Rate<\/span>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- Market Growth Section -->\r\n    <section class=\"market-growth\">\r\n        <div class=\"container\">\r\n            <h2 class=\"text-center fade-in-on-scroll\">Explosive Market Growth<\/h2>\r\n            <p class=\"text-center fade-in-on-scroll\">The cannabis packaging industry is experiencing unprecedented expansion, driven by legalization momentum and premiumization trends.<\/p>\r\n            \r\n            <div class=\"growth-chart fade-in-on-scroll\">\r\n                <h3>Global Cannabis Packaging Market Growth (2024-2034)<\/h3>\r\n                <div class=\"bar-chart\" id=\"growth-bars\">\r\n                    <div class=\"bar-row\">\r\n                        <div class=\"bar-label\">2024<\/div>\r\n                        <div class=\"bar-container\">\r\n                            <div class=\"bar-fill\" data-width=\"12%\">\r\n                                <span class=\"bar-value\">$2.85B<\/span>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                    <div class=\"bar-row\">\r\n                        <div class=\"bar-label\">2026<\/div>\r\n                        <div class=\"bar-container\">\r\n                            <div class=\"bar-fill\" data-width=\"22%\">\r\n                                <span class=\"bar-value\">$5.2B<\/span>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                    <div class=\"bar-row\">\r\n                        <div class=\"bar-label\">2028<\/div>\r\n                        <div class=\"bar-container\">\r\n                            <div class=\"bar-fill\" data-width=\"42%\">\r\n                                <span class=\"bar-value\">$9.8B<\/span>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                    <div class=\"bar-row\">\r\n                        <div class=\"bar-label\">2030<\/div>\r\n                        <div class=\"bar-container\">\r\n                            <div class=\"bar-fill\" data-width=\"90%\">\r\n                                <span class=\"bar-value\">$22.1B<\/span>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                    <div class=\"bar-row\">\r\n                        <div class=\"bar-label\">2034<\/div>\r\n                        <div class=\"bar-container\">\r\n                            <div class=\"bar-fill\" data-width=\"100%\">\r\n                                <span class=\"bar-value\">$24.6B<\/span>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- Compliance Fortress Section -->\r\n    <section class=\"compliance-section\">\r\n        <div class=\"container\">\r\n            <h2 class=\"text-center fade-in-on-scroll\">The Compliance Fortress<\/h2>\r\n            <p class=\"text-center fade-in-on-scroll\">Before aesthetics or sustainability, cannabis packaging must meet rigorous regulatory requirements.<\/p>\r\n            \r\n            <div class=\"fortress-container\">\r\n                <div class=\"fortress-gate\">\r\n                    <span class=\"gate-icon\">\ud83d\udd12<\/span>\r\n                    <h3 class=\"gate-title\">Federal Requirements<\/h3>\r\n                    <p>CPSC 16 CFR 1700.20 Standards<\/p>\r\n                    <ul class=\"gate-requirements\">\r\n                        <li>80% child-resistance (ages 42-51 months)<\/li>\r\n                        <li>90% adult accessibility<\/li>\r\n                        <li>ASTM D3475-20 certification<\/li>\r\n                        <li>$3,000-$8,000 testing per design<\/li>\r\n                    <\/ul>\r\n                <\/div>\r\n                \r\n                <div class=\"fortress-gate\">\r\n                    <span class=\"gate-icon\">\ud83d\uddfa\ufe0f<\/span>\r\n                    <h3 class=\"gate-title\">State-Specific Rules<\/h3>\r\n                    <p>Compliance varies by jurisdiction<\/p>\r\n                    <ul class=\"gate-requirements\">\r\n                        <li>Opaque packaging (CA, NY, VT)<\/li>\r\n                        <li>Exit packaging required<\/li>\r\n                        <li>Resealable for multi-serve<\/li>\r\n                        <li>Universal cannabis symbols<\/li>\r\n                    <\/ul>\r\n                <\/div>\r\n                \r\n                <div class=\"fortress-gate\">\r\n                    <span class=\"gate-icon\">\ud83c\udff7\ufe0f<\/span>\r\n                    <h3 class=\"gate-title\">Labeling Mandates<\/h3>\r\n                    <p>Comprehensive information disclosure<\/p>\r\n                    <ul class=\"gate-requirements\">\r\n                        <li>THC\/CBD content (mg and %)<\/li>\r\n                        <li>Batch\/lot tracking numbers<\/li>\r\n                        <li>Warning statements<\/li>\r\n                        <li>Lab testing certification<\/li>\r\n                    <\/ul>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- State Requirements -->\r\n    <section class=\"state-map-section\">\r\n        <div class=\"container\">\r\n            <h2 class=\"text-center fade-in-on-scroll\">State-by-State Requirements<\/h2>\r\n            \r\n            <div class=\"map-container fade-in-on-scroll\">\r\n                <div class=\"state-grid\">\r\n                    <div class=\"state-card\">\r\n                        <div class=\"state-name\">California<\/div>\r\n                        <div class=\"state-requirements\">\r\n                            <span class=\"requirement-badge\">Child-Resistant<\/span>\r\n                            <span class=\"requirement-badge\">Opaque<\/span>\r\n                            <span class=\"requirement-badge\">Exit Packaging<\/span>\r\n                        <\/div>\r\n                    <\/div>\r\n                    <div class=\"state-card\">\r\n                        <div class=\"state-name\">New York<\/div>\r\n                        <div class=\"state-requirements\">\r\n                            <span class=\"requirement-badge\">Child-Resistant<\/span>\r\n                            <span class=\"requirement-badge\">Opaque<\/span>\r\n                            <span class=\"requirement-badge\">Plastic-Free 2028<\/span>\r\n                        <\/div>\r\n                    <\/div>\r\n                    <div class=\"state-card\">\r\n                        <div class=\"state-name\">Colorado<\/div>\r\n                        <div class=\"state-requirements\">\r\n                            <span class=\"requirement-badge\">Child-Resistant<\/span>\r\n                            <span class=\"requirement-badge\">Max 10 Units<\/span>\r\n                        <\/div>\r\n                    <\/div>\r\n                    <div class=\"state-card\">\r\n                        <div class=\"state-name\">Massachusetts<\/div>\r\n                        <div class=\"state-requirements\">\r\n                            <span class=\"requirement-badge\">Child-Resistant<\/span>\r\n                            <span class=\"requirement-badge\">Recyclable Preferred<\/span>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- Materials Comparison -->\r\n    <section class=\"materials-section\">\r\n        <div class=\"container\">\r\n            <h2 class=\"text-center fade-in-on-scroll\">Materials Arena: Choose Your Champion<\/h2>\r\n            \r\n            <div class=\"material-selector fade-in-on-scroll\">\r\n                <button class=\"material-btn active\" data-material=\"hdpe\">\r\n                    <span class=\"material-icon\">\ud83e\udd64<\/span>\r\n                    HDPE Plastic\r\n                <\/button>\r\n                <button class=\"material-btn\" data-material=\"pcr\">\r\n                    <span class=\"material-icon\">\u267b\ufe0f<\/span>\r\n                    PCR Plastic\r\n                <\/button>\r\n                <button class=\"material-btn\" data-material=\"glass\">\r\n                    <span class=\"material-icon\">\ud83c\udf77<\/span>\r\n                    Glass\r\n                <\/button>\r\n                <button class=\"material-btn\" data-material=\"aluminum\">\r\n                    <span class=\"material-icon\">\ud83e\udd6b<\/span>\r\n                    Aluminum\r\n                <\/button>\r\n            <\/div>\r\n            \r\n            <div class=\"materials-arena\">\r\n                <div>\r\n                    <div class=\"radar-chart-container\">\r\n                        <canvas id=\"materialRadar\" width=\"400\" height=\"400\"><\/canvas>\r\n                    <\/div>\r\n                    \r\n                    <div class=\"material-details\">\r\n                        <h3 id=\"material-name\">HDPE Plastic<\/h3>\r\n                        <p id=\"material-description\">High-density polyethylene offers excellent moisture barriers and durability at budget-friendly pricing.<\/p>\r\n                        <div class=\"detail-grid\">\r\n                            <div class=\"detail-item\">\r\n                                <span class=\"detail-value\" id=\"detail-cost\">$0.20-$0.50<\/span>\r\n                                <span class=\"detail-label\">Cost per Unit<\/span>\r\n                            <\/div>\r\n                            <div class=\"detail-item\">\r\n                                <span class=\"detail-value\" id=\"detail-sustain\">Medium<\/span>\r\n                                <span class=\"detail-label\">Sustainability<\/span>\r\n                            <\/div>\r\n                            <div class=\"detail-item\">\r\n                                <span class=\"detail-value\" id=\"detail-premium\">Medium<\/span>\r\n                                <span class=\"detail-label\">Premium Feel<\/span>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n                \r\n                <div>\r\n                    <h3>When to Choose This Material<\/h3>\r\n                    <div id=\"material-use-cases\" style=\"background: var(--light-sage); padding: 2rem; border-radius: 16px; margin-top: 1rem;\">\r\n                        <ul style=\"list-style: none; padding: 0;\">\r\n                            <li style=\"padding: 0.75rem 0; border-bottom: 1px solid rgba(45, 95, 63, 0.2);\">\u2713 High-volume production<\/li>\r\n                            <li style=\"padding: 0.75rem 0; border-bottom: 1px solid rgba(45, 95, 63, 0.2);\">\u2713 Budget constraints<\/li>\r\n                            <li style=\"padding: 0.75rem 0; border-bottom: 1px solid rgba(45, 95, 63, 0.2);\">\u2713 Standard positioning<\/li>\r\n                            <li style=\"padding: 0.75rem 0;\">\u2713 Recyclable required<\/li>\r\n                        <\/ul>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- Sustainability Section -->\r\n    <section class=\"sustainability-section\">\r\n        <div class=\"container\">\r\n            <h2 class=\"text-center fade-in-on-scroll\">Sustainability: From Trend to Requirement<\/h2>\r\n            \r\n            <div class=\"ripple-container\">\r\n                <div class=\"ripple\"><\/div>\r\n                <div class=\"ripple\"><\/div>\r\n                <div class=\"ripple\"><\/div>\r\n                <div style=\"position: relative; z-index: 10; text-align: center;\">\r\n                    <h3 style=\"color: var(--accent-gold); font-size: var(--fs-h1);\">70%<\/h3>\r\n                    <p style=\"color: var(--light-sage);\">of consumers prefer sustainable packaging<\/p>\r\n                <\/div>\r\n            <\/div>\r\n            \r\n            <div class=\"impact-stats fade-in-on-scroll\">\r\n                <div class=\"impact-card\">\r\n                    <span class=\"impact-number\">30-70%<\/span>\r\n                    <p class=\"impact-description\">Energy savings with PCR plastic<\/p>\r\n                <\/div>\r\n                <div class=\"impact-card\">\r\n                    <span class=\"impact-number\">95%<\/span>\r\n                    <p class=\"impact-description\">Energy savings with recycled aluminum<\/p>\r\n                <\/div>\r\n                <div class=\"impact-card\">\r\n                    <span class=\"impact-number\">\u221e<\/span>\r\n                    <p class=\"impact-description\">Glass & aluminum can be recycled infinitely<\/p>\r\n                <\/div>\r\n                <div class=\"impact-card\">\r\n                    <span class=\"impact-number\">50-80%<\/span>\r\n                    <p class=\"impact-description\">Carbon reduction with hemp plastic<\/p>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- Cost Pyramid -->\r\n    <section class=\"cost-section\">\r\n        <div class=\"container\">\r\n            <h2 class=\"text-center fade-in-on-scroll\">Packaging Investment Tiers<\/h2>\r\n            \r\n            <div class=\"pyramid-container fade-in-on-scroll\">\r\n                <div class=\"pyramid-visual\">\r\n                    <div class=\"pyramid-tier tier-ultra\">\r\n                        <span class=\"tier-label\">Ultra-Premium<\/span>\r\n                        <span class=\"tier-range\">25-35% ($2.15-$4.00\/unit)<\/span>\r\n                    <\/div>\r\n                    <div class=\"pyramid-tier tier-premium\">\r\n                        <span class=\"tier-label\">Premium Brands<\/span>\r\n                        <span class=\"tier-range\">15-20% ($1.50-$2.50\/unit)<\/span>\r\n                    <\/div>\r\n                    <div class=\"pyramid-tier tier-midtier\">\r\n                        <span class=\"tier-label\">Mid-Tier Brands<\/span>\r\n                        <span class=\"tier-range\">8-12% ($1.00-$1.50\/unit)<\/span>\r\n                    <\/div>\r\n                    <div class=\"pyramid-tier tier-budget\">\r\n                        <span class=\"tier-label\">Budget Brands<\/span>\r\n                        <span class=\"tier-range\">3-5% ($0.40-$0.70\/unit)<\/span>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- CTA Section -->\r\n    <section class=\"cta-section\">\r\n        <div class=\"container\">\r\n            <h2>Partner With Packaging Excellence<\/h2>\r\n            <p>Transform your infused pre-roll brand with Jarsking's comprehensive packaging solutions<\/p>\r\n            <a href=\"https:\/\/www.jarsking.com\/contact\/\" class=\"cta-button\">Start Your Project<\/a>\r\n        <\/div>\r\n    <\/section>\r\n\r\n<\/div>\r\n\r\n<!-- ========================================\r\n     JAVASCRIPT FOR INTERACTIVITY\r\n     ======================================== -->\r\n<script>\r\n(function() {\r\n    'use strict';\r\n    \r\n    \/\/ Intersection Observer for scroll animations\r\n    const observerOptions = {\r\n        threshold: 0.1,\r\n        rootMargin: '0px 0px -50px 0px'\r\n    };\r\n    \r\n    const observer = new IntersectionObserver((entries) => {\r\n        entries.forEach(entry => {\r\n            if (entry.isIntersecting) {\r\n                entry.target.classList.add('visible');\r\n            }\r\n        });\r\n    }, observerOptions);\r\n    \r\n    document.querySelectorAll('.jarsking-interactive .fade-in-on-scroll').forEach(el => {\r\n        observer.observe(el);\r\n    });\r\n    \r\n    \/\/ Growth bars animation\r\n    const growthBarsObserver = new IntersectionObserver((entries) => {\r\n        entries.forEach(entry => {\r\n            if (entry.isIntersecting) {\r\n                const bars = entry.target.querySelectorAll('.bar-fill');\r\n                bars.forEach((bar, index) => {\r\n                    setTimeout(() => {\r\n                        bar.style.width = bar.getAttribute('data-width');\r\n                    }, index * 200);\r\n                });\r\n                growthBarsObserver.unobserve(entry.target);\r\n            }\r\n        });\r\n    }, observerOptions);\r\n    \r\n    const growthChart = document.getElementById('growth-bars');\r\n    if (growthChart) {\r\n        growthBarsObserver.observe(growthChart);\r\n    }\r\n    \r\n    \/\/ Fortress unlock animation\r\n    const fortressObserver = new IntersectionObserver((entries) => {\r\n        entries.forEach(entry => {\r\n            if (entry.isIntersecting) {\r\n                const gates = document.querySelectorAll('.jarsking-interactive .fortress-gate');\r\n                gates.forEach((gate, index) => {\r\n                    setTimeout(() => {\r\n                        gate.classList.add('unlocked');\r\n                    }, index * 400);\r\n                });\r\n                fortressObserver.unobserve(entry.target);\r\n            }\r\n        });\r\n    }, observerOptions);\r\n    \r\n    const fortressContainer = document.querySelector('.jarsking-interactive .fortress-container');\r\n    if (fortressContainer) {\r\n        fortressObserver.observe(fortressContainer);\r\n    }\r\n    \r\n    \/\/ Ripple animation\r\n    const rippleObserver = new IntersectionObserver((entries) => {\r\n        entries.forEach(entry => {\r\n            if (entry.isIntersecting) {\r\n                const ripples = entry.target.querySelectorAll('.ripple');\r\n                ripples.forEach(ripple => {\r\n                    ripple.classList.add('animate');\r\n                });\r\n                rippleObserver.unobserve(entry.target);\r\n            }\r\n        });\r\n    }, observerOptions);\r\n    \r\n    const rippleContainer = document.querySelector('.jarsking-interactive .ripple-container');\r\n    if (rippleContainer) {\r\n        rippleObserver.observe(rippleContainer);\r\n    }\r\n    \r\n    \/\/ Materials comparison radar chart\r\n    const materialData = {\r\n        hdpe: {\r\n            name: 'HDPE Plastic',\r\n            description: 'High-density polyethylene offers excellent moisture barriers and durability at budget-friendly pricing.',\r\n            cost: '$0.20-$0.50',\r\n            sustainability: 'Medium',\r\n            premium: 'Medium',\r\n            data: [8, 7, 9, 5, 8, 6, 7, 7],\r\n            useCases: ['High-volume production', 'Budget constraints', 'Standard positioning', 'Recyclable required']\r\n        },\r\n        pcr: {\r\n            name: 'PCR Plastic',\r\n            description: 'Post-Consumer Recycled plastic diverts waste while maintaining performance. Reduces carbon by 30-70%.',\r\n            cost: '$0.35-$0.70',\r\n            sustainability: 'Excellent',\r\n            premium: 'High',\r\n            data: [6, 7, 9, 9, 8, 8, 7, 7],\r\n            useCases: ['Sustainability emphasis', '70% consumer preference', 'Eco-credentials', '+15-40% premium acceptable']\r\n        },\r\n        glass: {\r\n            name: 'Glass',\r\n            description: 'Premium material with superior preservation. Complete light blocking. Infinitely recyclable.',\r\n            cost: '$0.80-$1.50',\r\n            sustainability: 'Excellent',\r\n            premium: 'Very High',\r\n            data: [3, 10, 10, 10, 10, 9, 10, 10],\r\n            useCases: ['Premium positioning', 'Maximum terpene preservation', 'Quality storytelling', '2-3x cost acceptable']\r\n        },\r\n        aluminum: {\r\n            name: 'Aluminum',\r\n            description: 'Premium durability with complete protection. 95% energy savings when recycled.',\r\n            cost: '$0.60-$1.20',\r\n            sustainability: 'Excellent',\r\n            premium: 'Very High',\r\n            data: [5, 10, 10, 10, 10, 9, 10, 9],\r\n            useCases: ['Premium + durability', 'Travel\/portability', 'Complete protection', 'Modern aesthetic']\r\n        }\r\n    };\r\n    \r\n    const radarCanvas = document.getElementById('materialRadar');\r\n    const ctx = radarCanvas ? radarCanvas.getContext('2d') : null;\r\n    let currentMaterial = 'hdpe';\r\n    \r\n    function drawRadarChart(material) {\r\n        if (!ctx) return;\r\n        \r\n        const data = materialData[material].data;\r\n        const labels = ['Cost', 'Durability', 'Moisture', 'Oxygen', 'Light', 'Sustain', 'Premium', 'CR'];\r\n        const centerX = 200;\r\n        const centerY = 200;\r\n        const maxRadius = 150;\r\n        const levels = 5;\r\n        \r\n        ctx.clearRect(0, 0, 400, 400);\r\n        \r\n        \/\/ Background circles\r\n        ctx.strokeStyle = '#e8f3ea';\r\n        ctx.lineWidth = 1;\r\n        for (let i = 1; i <= levels; i++) {\r\n            ctx.beginPath();\r\n            ctx.arc(centerX, centerY, (maxRadius \/ levels) * i, 0, 2 * Math.PI);\r\n            ctx.stroke();\r\n        }\r\n        \r\n        \/\/ Axis lines\r\n        ctx.strokeStyle = '#d4d4d4';\r\n        const angleStep = (2 * Math.PI) \/ 8;\r\n        \r\n        for (let i = 0; i < 8; i++) {\r\n            const angle = angleStep * i - Math.PI \/ 2;\r\n            const x = centerX + Math.cos(angle) * maxRadius;\r\n            const y = centerY + Math.sin(angle) * maxRadius;\r\n            \r\n            ctx.beginPath();\r\n            ctx.moveTo(centerX, centerY);\r\n            ctx.lineTo(x, y);\r\n            ctx.stroke();\r\n            \r\n            \/\/ Labels\r\n            ctx.fillStyle = '#2c2c2c';\r\n            ctx.font = 'bold 12px sans-serif';\r\n            ctx.textAlign = 'center';\r\n            const labelX = centerX + Math.cos(angle) * (maxRadius + 20);\r\n            const labelY = centerY + Math.sin(angle) * (maxRadius + 20);\r\n            ctx.fillText(labels[i], labelX, labelY);\r\n        }\r\n        \r\n        \/\/ Data polygon\r\n        ctx.beginPath();\r\n        ctx.strokeStyle = '#2d5f3f';\r\n        ctx.fillStyle = 'rgba(45, 95, 63, 0.3)';\r\n        ctx.lineWidth = 3;\r\n        \r\n        for (let i = 0; i < data.length; i++) {\r\n            const angle = angleStep * i - Math.PI \/ 2;\r\n            const radius = (maxRadius \/ 10) * data[i];\r\n            const x = centerX + Math.cos(angle) * radius;\r\n            const y = centerY + Math.sin(angle) * radius;\r\n            \r\n            if (i === 0) ctx.moveTo(x, y);\r\n            else ctx.lineTo(x, y);\r\n        }\r\n        ctx.closePath();\r\n        ctx.fill();\r\n        ctx.stroke();\r\n        \r\n        \/\/ Data points\r\n        ctx.fillStyle = '#d4af37';\r\n        for (let i = 0; i < data.length; i++) {\r\n            const angle = angleStep * i - Math.PI \/ 2;\r\n            const radius = (maxRadius \/ 10) * data[i];\r\n            const x = centerX + Math.cos(angle) * radius;\r\n            const y = centerY + Math.sin(angle) * radius;\r\n            \r\n            ctx.beginPath();\r\n            ctx.arc(x, y, 6, 0, 2 * Math.PI);\r\n            ctx.fill();\r\n        }\r\n    }\r\n    \r\n    function updateMaterialDetails(material) {\r\n        const data = materialData[material];\r\n        document.getElementById('material-name').textContent = data.name;\r\n        document.getElementById('material-description').textContent = data.description;\r\n        document.getElementById('detail-cost').textContent = data.cost;\r\n        document.getElementById('detail-sustain').textContent = data.sustainability;\r\n        document.getElementById('detail-premium').textContent = data.premium;\r\n        \r\n        const useCasesHTML = data.useCases.map(useCase => \r\n            `<li style=\"padding: 0.75rem 0; border-bottom: 1px solid rgba(45, 95, 63, 0.2);\">\u2713 ${useCase}<\/li>`\r\n        ).join('');\r\n        document.getElementById('material-use-cases').innerHTML = `<ul style=\"list-style: none; padding: 0;\">${useCasesHTML}<\/ul>`;\r\n    }\r\n    \r\n    \/\/ Material button handlers\r\n    document.querySelectorAll('.jarsking-interactive .material-btn').forEach(btn => {\r\n        btn.addEventListener('click', function() {\r\n            document.querySelectorAll('.jarsking-interactive .material-btn').forEach(b => b.classList.remove('active'));\r\n            this.classList.add('active');\r\n            \r\n            const material = this.getAttribute('data-material');\r\n            currentMaterial = material;\r\n            drawRadarChart(material);\r\n            updateMaterialDetails(material);\r\n        });\r\n    });\r\n    \r\n    \/\/ Initialize\r\n    if (ctx) {\r\n        drawRadarChart('hdpe');\r\n    }\r\n    \r\n    console.log('\ud83c\udfa8 Jarsking Interactive Experience Loaded');\r\n})();\r\n<\/script>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>The Infused Pre-Roll Opportunity Premium concentrates demand premium packaging $1.75B 44.4% Market Share 2024 $24.6B Packaging Market by 2034 22.6% Annual Growth Rate Explosive Market Growth The cannabis packaging industry is experiencing unprecedented expansion, driven by legalization momentum and premiumization trends. Global Cannabis Packaging Market Growth (2024-2034) 2024 $2.85B 2026 $5.2B 2028 $9.8B 2030 $22.1B 2034 $24.6B The Compliance Fortress Before aesthetics or sustainability, cannabis packaging must meet rigorous regulatory requirements. \ud83d\udd12 Federal Requirements CPSC 16 CFR 1700.20 Standards 80% child-resistance (ages 42-51 months) 90% adult accessibility ASTM D3475-20 certification $3,000-$8,000 testing per design \ud83d\uddfa\ufe0f State-Specific Rules Compliance varies by jurisdiction Opaque packaging (CA, NY, VT) Exit packaging required Resealable [&hellip;]<\/p>\n","protected":false},"author":22,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-90154","page","type-page","status-publish","hentry"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.jarsking.com\/ja\/wp-json\/wp\/v2\/pages\/90154","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jarsking.com\/ja\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.jarsking.com\/ja\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.jarsking.com\/ja\/wp-json\/wp\/v2\/users\/22"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jarsking.com\/ja\/wp-json\/wp\/v2\/comments?post=90154"}],"version-history":[{"count":7,"href":"https:\/\/www.jarsking.com\/ja\/wp-json\/wp\/v2\/pages\/90154\/revisions"}],"predecessor-version":[{"id":90161,"href":"https:\/\/www.jarsking.com\/ja\/wp-json\/wp\/v2\/pages\/90154\/revisions\/90161"}],"wp:attachment":[{"href":"https:\/\/www.jarsking.com\/ja\/wp-json\/wp\/v2\/media?parent=90154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}