{"id":10,"date":"2025-07-15T20:33:48","date_gmt":"2025-07-15T20:33:48","guid":{"rendered":"https:\/\/punch-me.com\/?page_id=10"},"modified":"2025-09-06T15:01:42","modified_gmt":"2025-09-06T15:01:42","slug":"home","status":"publish","type":"page","link":"https:\/\/punch-me.com\/","title":{"rendered":"PUNCH THE INFLATED EGO"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"10\" class=\"elementor elementor-10\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4515332 e-con-full e-flex e-con e-parent\" data-id=\"4515332\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7e7ee0c elementor-hidden-mobile elementor-widget elementor-widget-heading\" data-id=\"7e7ee0c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">PUNCH THE INFLATED EGO\u2122<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-66aa284 elementor-hidden-desktop elementor-hidden-tablet elementor-widget elementor-widget-heading\" data-id=\"66aa284\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">PUNCH THE <BR> INFLATED EGO\u2122<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-437132c e-con-full e-flex e-con e-child\" data-id=\"437132c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-428866d elementor-widget elementor-widget-html\" data-id=\"428866d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t    <canvas id=\"clown_canvas\" style=\"width:100%;height:75vh\"><\/canvas>\n\n    <script src=\"https:\/\/unpkg.com\/@rive-app\/webgl2\"><\/script>\n    <script>\n        const ClownStateMachineName = \"State Machine 1\";\n\n        const ClownAsset = \"https:\/\/punch-me.com\/wp-content\/uploads\/2025\/09\/clown-v5-101.riv\";\n        \/\/ const ClownAsset = \"clown-v5.riv\";\n        const ClickDetectorTimeout = 200; \/\/ ms\n        const NumberOfDamages = 14; \/\/ 1..14\n        const SpeachEnableHitCount = 40; \/\/ Number of hits to enable speech\n        const DamageHitCounts = [40, 80, 120, 160, 200, 240, 280, 320, 360, 400,\n            500, 600, 700, 800];\n        const BlastHitCount = 1000;\n        const SecondaryEffectProbability = 0.3; \/\/ Probability of secondary effect after punch\n        const idle_timer_timeout = 5000; \/\/ ms\n\n        const canvas = document.getElementById('clown_canvas');\n        if (!canvas) {\n            console.error('Canvas element for Rive animation is not found');\n        }\n\n        const secondary_idle_states = [\"Hair-Do-Nothing\", \"Pants-Change-4-Up\", \"Birds-Do-Nothing\", \"Stars-Do-Nothing\"];\n\n        class Clown {\n            constructor() {\n\n                this.asset_ready = false;\n                this.saved_event_type = null;\n                this.click_timer = null;\n                this.hit_count = 0;\n\n                this.next_damage_index = 0;\n                this.in_animation = false;\n                this.transition_pending = false;\n\n                this.pending_count = 0;\n\n                \/\/ Active secondary effects, like pants down\n                this.is_pants_down = false;\n                this.is_birds_active = false;\n                this.is_stars_active = false;\n                this.debug = false;\n\n                this.asset = new rive.Rive({\n                    src: ClownAsset,\n                    canvas: canvas,\n                    autoplay: true,\n                    fit: rive.Fit.Contain,\n                    alignment: rive.Alignment.Center,\n                    stateMachines: [ClownStateMachineName],\n                    onLoad: () => {\n                        this.asset_ready = true;\n                        this.asset.resizeDrawingSurfaceToCanvas();\n                    },\n                    onError: (error) => {\n                        console.error('Error loading Rive animation:', error);\n                        this.asset_ready = false;\n                    },\n                    onStateChange: (event) => {\n                        \/\/ console.log('State changed to:', event.data[0]);\n\n                        if ( secondary_idle_states.indexOf(event.data[0] ) >= 0 ) {\n                            const event_name = event.data[0];\n                            switch(event_name) {\n                                case \"Pants-Change-4-Up\":\n                                    this.is_pants_down = false;\n                                    break;\n                                case \"Birds-Do-Nothing\":\n                                    this.is_birds_active = false;\n                                    break;\n                                case \"Stars-Do-Nothing\":\n                                    this.is_stars_active = false;\n                                    break;\n                                default:\n                                    break;\n                            }\n                            setTimeout(this.rive_state_to_idle.bind(this), 0);\n                            return;\n                        }\n                        else if (event.data[0] == \"Idle\") {\n                            setTimeout(this.rive_state_to_main_idle.bind(this), 0);\n                            return;\n                        }\n                        else if (event.data[0].startsWith(\"Damage-\"))\n                        {\n                            this.cancel_idle_timer();\n                            return;\n                        }\n                        else {\n                            this.in_animation = true;\n                            this.cancel_idle_timer();\n                            return;\n                        }\n\n                        if (event.data[0] === \"Do-Nothing\") {\n                            this.trigger_restart_page();\n                        }\n                    },\n                });\n\n                \/\/ Add event listener and provide callback to handle Rive Event\n                this.asset.on(rive.EventType.RiveEvent, this.onRiveEventReceived.bind(this));\n            }\n\n            onRiveEventReceived(riveEvent) {\n                const eventData = riveEvent.data;\n\n                if (eventData.type === rive.RiveEventType.General) {\n                    switch (eventData.name) {\n                        \/\/ Events are from doll perspective\n                        case \"Left-Click\":\n                            this.click_handler(\"Right\");\n                            break;\n                        case \"Right-Click\":\n                            this.click_handler(\"Left\");\n                            break;\n                        case \"Center-Click\":\n                            this.click_handler(\"Center\");\n                            break;\n                        default:\n                            console.error(\"Unexpected event name: \", eventData.name);\n                            break;\n                    }\n                } else if (eventData.type === rive.RiveEventType.OpenUrl) {\n                    console.log(\"OpenURL: Event name\", eventData.name);\n                    window.open(eventData.url);\n                }\n            }\n\n            rive_state_to_idle() {\n                this.in_animation = false;\n\n                return this.on_switched_to_idle();\n            }\n\n            rive_state_to_main_idle() {\n                const allow_animations = this.rive_state_to_idle();\n                if (!allow_animations) {\n                    return;\n                }\n                this.post_punch_handler();\n            }\n\n            trigger_restart_page() {\n                setTimeout(() => {\n                    this.reset();\n                    window.location.reload(); \/\/ Reload the page to restart the animation\n                }, 1500);\n            }\n\n            reset() {\n                this.hit_count = 0;\n                this.next_damage_index = 0;\n            }\n\n            hit() {\n                this.debug = false;\n                this.hit_count++;\n                if (this.hit_count % 100 == 0) {\n                    \/\/ console.log(`Hit count: ${this.hit_count}`);\n                    \/\/ this.debug = true;\n                }\n\n                if (this.hit_count == SpeachEnableHitCount) {\n                    this.set_rive_bool_value(\"is_Play-Speech\", true);\n                }\n            }\n\n            resize() {\n                if (!this.asset) {\n                    return;\n                }\n                this.asset.resizeDrawingSurfaceToCanvas();\n            }\n\n            click_handler(event_type) {\n                if (!this.asset_ready) {\n                    return;\n                }\n                \n                this.cancel_idle_timer();\n                this.clear_secondary_effects();\n\n                const debug = this.hit();\n\n                if (this.saved_event_type) {\n                    if (this.saved_event_type != event_type) {\n                        this.saved_event_type = event_type;\n                        this.saved_event_counter = 1;\n                    }\n                    else {\n                        this.saved_event_counter++;\n                    }\n                } else {\n                    this.saved_event_type = event_type;\n                    this.saved_event_counter = 1;\n                }\n\n                const maximum_events = this.saved_event_type == \"Center\" ? 3 : 4;\n\n                \/\/ Maximum quadruple clicks supported\n                if (this.saved_event_counter > maximum_events) {\n                    \/\/ Do not reset counter if we in midle of animation, keep it at maximum\n                    \/\/ to trigger later\n                    if (!this.in_animation) {\n                        this.saved_event_counter = 1;\n                    }\n                    else {\n                        this.saved_event_counter = maximum_events;\n                    }\n                    this.saved_event_counter = 1;\n                }\n\n                if (!this.in_animation) {\n                    \/\/ If we are not in animation, trigger immediately\n                    this.real_click_handler(this.saved_event_type, this.saved_event_counter);\n                }\n                else {\n                    \/\/ We are in animation, so we need to wait until we switch to idle\n                    \/\/ console.log(\"Animation in progress, delaying action\");\n                    this.transition_pending = true;\n                    this.pending_count++;\n                    if(this.pending_count > 10) {\n                        console.warn(\"Many pending actions, Something is wrong\");\n                    }\n                }\n            }\n\n            on_switched_to_idle() {\n                if (this.transition_pending) {\n                    this.real_click_handler(this.saved_event_type, this.saved_event_counter);\n                    this.transition_pending = false;\n                    this.pending_count = 0;\n                    return false;\n                }\n\n                \/\/ Start idle timer \n                if(this.idle_timer == null ) {\n                    this.start_idle_timer();\n                }\n                return true;\n            }\n\n            start_idle_timer() {\n                this.idle_timer = setTimeout( () => {\n                    this.idle_timer = null;\n                    if(!this.in_animation) {\n                        this.idle_timeout_handler();\n                    }\n                }, idle_timer_timeout);\n            }\n\n            cancel_idle_timer() {\n                if(this.idle_timer) {\n                    clearTimeout(this.idle_timer);\n                    this.idle_timer = null;\n                }\n            }\n\n            idle_timeout_handler() {\n                \/\/ Randomly trigger one of the idle animations in range 0..1\n                const random_action = Math.round(Math.random()*1);\n                \n                switch(random_action) {\n                    case 0:\n                        this.rive_fire_trigger(\"is_Hair-Jump\");\n                        break;\n                    case 1:\n                        this.set_rive_bool_value(\"is_Pants-Down\", true);\n                        this.is_pants_down = true;\n                        break;\n                    default:\n                        this.start_idle_timer();\n                        break;\n                }\n\n                if(this.is_secondary_effects_active()) {\n                    \/\/ start clear timer to reset secondary effects\n                    this.start_clear_secondary_effects_timer();\n                }\n            }\n\n            is_secondary_effects_active() {\n                if(this.debug) {\n                    console.log(`Secondary effects status: Pants=${this.is_pants_down}, Birds=${this.is_birds_active}, Stars=${this.is_stars_active}`);\n                }\n                return this.is_pants_down || this.is_birds_active || this.is_stars_active;\n            }\n\n            start_clear_secondary_effects_timer() {\n                if(this.clear_secondary_effects_timer == null ) {\n                    this.clear_secondary_effects_timer = setTimeout( () => {\n                        this.clear_secondary_effects_timer = null;\n                        this.clear_secondary_effects();\n                    }, 3000); \/\/ Clear secondary effects after 5 seconds\n                }\n            }\n\n            clear_secondary_effects() {\n                \/\/ Clear pants down if it is set\n                if( this.is_pants_down) {\n                    this.set_rive_bool_value(\"is_Pants-Down\", false);\n                }\n\n                \/\/ Clear birds if it is set\n                if( this.is_birds_active) {\n                    this.set_rive_bool_value(\"is_Birds\", false);\n                }\n                \/\/ Clear stars if it is set\n                if( this.is_stars_active) {\n                    this.set_rive_bool_value(\"is_Stars\", false);\n                }\n            }\n\n            activate_random_secondary_effect() {\n                \/\/ do not activate on very first switch to idle\n                if( this.hit_count < 2 ) {\n                    return;\n                }\n\n                \/\/ Randomly activate one of the secondary effects\n                const effects = [\"Pants\", \"Birds\", \"Stars\"];\n                const random_index = Math.floor(Math.random() * effects.length);\n                const effect = effects[random_index];\n\n                switch(effect) {\n                    case \"Pants\":\n                        if(!this.is_pants_down) {\n                            this.is_pants_down = true;\n                            this.set_rive_bool_value(\"is_Pants-Down\", true);\n                        }\n                        break;\n                    case \"Birds\":\n                        if(!this.is_birds_active) {\n                            this.is_birds_active = true;\n                            this.set_rive_bool_value(\"is_Birds\", true);\n                        }\n                        break;\n                    case \"Stars\":\n                        if(!this.is_stars_active) {\n                            this.is_stars_active = true;\n                            this.set_rive_bool_value(\"is_Stars\", true);\n                        }\n                        break;\n                    default:\n                        break;\n                }\n\n                this.start_clear_secondary_effects_timer();\n            }\n\n            post_punch_handler() {\n                \/\/ Called when punch animation is done, may activate secondary effects\n                if( Math.random() < SecondaryEffectProbability ) {\n                    this.activate_random_secondary_effect();\n                    return;\n                }\n                \/\/ Check if we need to trigger damage animation\n                if (this.next_damage_index >= NumberOfDamages) {\n                    return; \/\/ No more damages to trigger\n                }\n\n                if (this.hit_count >= DamageHitCounts[this.next_damage_index]) {\n                    this.rive_trigger_damage(this.next_damage_index + 1);\n                    this.next_damage_index++;\n                }                \n            }\n\n            real_click_handler(event_type, click_count) {\n                \/\/ Pants was down? Make them go up\n                if( this.is_secondary_effects_active()) {\n                    if(this.debug) {\n                        console.log(\"Clearing secondary effects before punch\");\n                    }\n                    this.clear_secondary_effects();\n                    return;\n                }\n\n                if (this.hit_count >= BlastHitCount) {\n                    \/\/ We may trigger a blast many times since \n                    \/\/ it possible that some animation is already playing and\n                    \/\/ trigger gets ignored.\n                    if(this.debug) {\n                        console.log(\"Triggering Blast animation\");\n                    }\n                    this.rive_fire_trigger(\"is_Blast\");\n                    return;\n                }\n\n                if (click_count == 4 && event_type != \"Center\") {\n                    this.rive_fire_trigger(`is_Spin-${event_type}`);\n                    return;\n                }\n\n                let click_count_modifier;\n                switch (click_count) {\n                    case 1:\n                        click_count_modifier = \"Quarter\";\n                        break;\n                    case 2:\n                        click_count_modifier = \"Half\";\n                        break;\n                    case 3:\n                    case 4:\n                        click_count_modifier = \"Full\";\n                        break;\n                    default:\n                        console.error(\"Unexpected click count: \", click_count);\n                        return;\n                }\n\n                let event_direction;\n                if (event_type == \"Center\") {\n                    event_direction = \"Back-Forth\";\n                }\n                else {\n                    event_direction = `Tilt-${event_type}`;\n                }\n\n                const action = `is_${event_direction}-${click_count_modifier}`;\n                this.rive_fire_trigger(action);\n            }\n\n            find_rive_input(input_name) {\n                const inputs = this.asset.stateMachineInputs(ClownStateMachineName);\n                if (!inputs) {\n                    throw new Error(`${ClownStateMachineName} not found`);\n                }\n\n                const input = inputs.find(input => input.name == input_name);\n                if (input) {\n                    return input;\n                } else {\n                    throw new Error(`Input ${input_name} not found in State Machine 1`);\n                }\n            }\n\n            \/*  Fires a trigger in the Rive state machine.\n                @param {string} trigger_name - The name of the trigger to fire.\n            *\/\n            rive_fire_trigger(trigger_name) {\n                const input = this.find_rive_input(trigger_name);\n                if(this.debug) {\n                    console.log(`Firing trigger: ${trigger_name}. in_animation=${this.in_animation}`);\n                }\n                input.fire();\n            }\n\n            set_rive_bool_value(input_name, value) {\n                const input = this.find_rive_input(input_name);\n                input.value = value;\n            }\n\n\n            rive_trigger_damage(id) {\n                if (id > NumberOfDamages || id < 1) {\n                    throw new Error(`Invalid damage id: ${id}`);\n                }\n                \n                this.rive_fire_trigger(`is_Damage-${id}`);\n            }\n        }\n\n        var clown = new Clown();\n\n        function resizeCanvas() {\n            clown.resize();\n        }\n\n        window.addEventListener('resize', resizeCanvas);\n        window.addEventListener('load', resizeCanvas);\n\n    <\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>PUNCH THE INFLATED EGO\u2122 PUNCH THE INFLATED EGO\u2122<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-10","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>PUNCH THE INFLATED EGO - PUNCH-ME<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/punch-me.com\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PUNCH THE INFLATED EGO\" \/>\n<meta property=\"og:description\" content=\"PUNCH THE INFLATED EGO\u2122 PUNCH THE INFLATED EGO\u2122\" \/>\n<meta property=\"og:url\" content=\"https:\/\/punch-me.com\/\" \/>\n<meta property=\"og:site_name\" content=\"PUNCH-ME\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-06T15:01:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/punch-me.com\/wp-content\/uploads\/2025\/07\/PUNCH_1200x630.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/punch-me.com\\\/\",\"url\":\"https:\\\/\\\/punch-me.com\\\/\",\"name\":\"PUNCH THE INFLATED EGO - PUNCH-ME\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/punch-me.com\\\/#website\"},\"datePublished\":\"2025-07-15T20:33:48+00:00\",\"dateModified\":\"2025-09-06T15:01:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/punch-me.com\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/punch-me.com\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/punch-me.com\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/punch-me.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PUNCH THE INFLATED EGO\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/punch-me.com\\\/#website\",\"url\":\"https:\\\/\\\/punch-me.com\\\/\",\"name\":\"PUNCH-ME\",\"description\":\"the inflatable ego\",\"publisher\":{\"@id\":\"https:\\\/\\\/punch-me.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/punch-me.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/punch-me.com\\\/#organization\",\"name\":\"PUNCH Creative\",\"alternateName\":\"Marketing with PUNCH\",\"url\":\"https:\\\/\\\/punch-me.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/punch-me.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/punch-me.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/PUNCH_icon_200x200.png\",\"contentUrl\":\"https:\\\/\\\/punch-me.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/PUNCH_icon_200x200.png\",\"width\":200,\"height\":200,\"caption\":\"PUNCH Creative\"},\"image\":{\"@id\":\"https:\\\/\\\/punch-me.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"email\":\"punch@punch-me.com\",\"telephone\":\"4104890015\",\"legalName\":\"PUNCH Communications, llc\",\"foundingDate\":\"1995-08-08\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"1\",\"maxValue\":\"10\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PUNCH THE INFLATED EGO - PUNCH-ME","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/punch-me.com\/","og_locale":"en_US","og_type":"article","og_title":"PUNCH THE INFLATED EGO","og_description":"PUNCH THE INFLATED EGO\u2122 PUNCH THE INFLATED EGO\u2122","og_url":"https:\/\/punch-me.com\/","og_site_name":"PUNCH-ME","article_modified_time":"2025-09-06T15:01:42+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/punch-me.com\/wp-content\/uploads\/2025\/07\/PUNCH_1200x630.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/punch-me.com\/","url":"https:\/\/punch-me.com\/","name":"PUNCH THE INFLATED EGO - PUNCH-ME","isPartOf":{"@id":"https:\/\/punch-me.com\/#website"},"datePublished":"2025-07-15T20:33:48+00:00","dateModified":"2025-09-06T15:01:42+00:00","breadcrumb":{"@id":"https:\/\/punch-me.com\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/punch-me.com\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/punch-me.com\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/punch-me.com\/"},{"@type":"ListItem","position":2,"name":"PUNCH THE INFLATED EGO"}]},{"@type":"WebSite","@id":"https:\/\/punch-me.com\/#website","url":"https:\/\/punch-me.com\/","name":"PUNCH-ME","description":"the inflatable ego","publisher":{"@id":"https:\/\/punch-me.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/punch-me.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/punch-me.com\/#organization","name":"PUNCH Creative","alternateName":"Marketing with PUNCH","url":"https:\/\/punch-me.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/punch-me.com\/#\/schema\/logo\/image\/","url":"https:\/\/punch-me.com\/wp-content\/uploads\/2025\/07\/PUNCH_icon_200x200.png","contentUrl":"https:\/\/punch-me.com\/wp-content\/uploads\/2025\/07\/PUNCH_icon_200x200.png","width":200,"height":200,"caption":"PUNCH Creative"},"image":{"@id":"https:\/\/punch-me.com\/#\/schema\/logo\/image\/"},"email":"punch@punch-me.com","telephone":"4104890015","legalName":"PUNCH Communications, llc","foundingDate":"1995-08-08","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"1","maxValue":"10"}}]}},"_links":{"self":[{"href":"https:\/\/punch-me.com\/index.php\/wp-json\/wp\/v2\/pages\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/punch-me.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/punch-me.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/punch-me.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/punch-me.com\/index.php\/wp-json\/wp\/v2\/comments?post=10"}],"version-history":[{"count":261,"href":"https:\/\/punch-me.com\/index.php\/wp-json\/wp\/v2\/pages\/10\/revisions"}],"predecessor-version":[{"id":408,"href":"https:\/\/punch-me.com\/index.php\/wp-json\/wp\/v2\/pages\/10\/revisions\/408"}],"wp:attachment":[{"href":"https:\/\/punch-me.com\/index.php\/wp-json\/wp\/v2\/media?parent=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}