{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/qGh8ZpjCWmqFZJohVThC/9sy6iN7pGnlvFLOIpcTV/siteMetadata.js"],
  "sourcesContent": ["// Generated by Framer (6464825)\nexport default function metadata(params,activeLocale){return{customHTMLBodyEnd:'<!-- Google Tag Manager (noscript) -->\\n<noscript><iframe src=\"https://www.googletagmanager.com/ns.html?id=GTM-N9FR5WSX\" height=\"0\" width=\"0\" style=\"display:none;visibility:hidden\"></iframe></noscript>\\n<!-- End Google Tag Manager (noscript) -->\\n\\n<!-- <script>\\n  /**\\n   * Utility to append PostHog ID to links pointing to app.scenepartner.ai\\n   * For Framer site head embedding\\n   */\\n\\n  (function () {\\n    function modifyLinks() {\\n      const links = document.getElementsByTagName(\"a\");\\n      const distinctId = window.posthog?.get_distinct_id();\\n      const sessionId = window.posthog?.get_session_id();\\n\\n      for (let i = 0; i < links.length; i++) {\\n        const link = links[i];\\n        const href = link.getAttribute(\"href\");\\n\\n        if (href && href.includes(\"app.scenepartner.ai\")) {\\n          const url = new URL(href);\\n\\n          if (distinctId) {\\n            url.searchParams.set(\"ph_id\", distinctId);\\n          }\\n\\n          if (sessionId) {\\n            url.searchParams.set(\"ph_session_id\", sessionId);\\n          }\\n\\n          link.setAttribute(\"href\", url.toString());\\n        }\\n      }\\n    }\\n\\n    // Wait for PostHog to be loaded\\n    function waitForPostHog() {\\n      if (window.posthog) {\\n        modifyLinks();\\n\\n        // Set up observer for dynamic content\\n        const observer = new MutationObserver((mutations) => {\\n          mutations.forEach((mutation) => {\\n            if (mutation.addedNodes.length) {\\n              modifyLinks();\\n            }\\n          });\\n        });\\n\\n        observer.observe(document.body, {\\n          childList: true,\\n          subtree: true,\\n        });\\n      } else {\\n        setTimeout(waitForPostHog, 100);\\n      }\\n    }\\n\\n    // Start the process\\n    waitForPostHog();\\n  })();\\n</script> -->\\n<script>\\n  // Wait for DOM to be ready\\n  function initFireworks() {\\n    console.log(\"Initializing fireworks...\");\\n\\n    // Create canvas element\\n    const canvas = document.createElement(\"canvas\");\\n    canvas.id = \"fireworks-canvas\";\\n    canvas.style.cssText = `\\n          position: fixed;\\n          top: 0;\\n          left: 0;\\n          width: 100%;\\n          height: 100%;\\n          pointer-events: none;\\n          z-index: 9999;\\n        `;\\n\\n    // Add canvas to body\\n    document.body.appendChild(canvas);\\n    console.log(\"Canvas added to body:\", canvas);\\n\\n    // Get canvas context\\n    const ctx = canvas.getContext(\"2d\");\\n    let width = (canvas.width = window.innerWidth);\\n    let height = (canvas.height = window.innerHeight);\\n\\n    // Handle window resize\\n    window.addEventListener(\"resize\", () => {\\n      width = canvas.width = window.innerWidth;\\n      height = canvas.height = window.innerHeight;\\n    });\\n\\n    const rockets = [];\\n    const particles = [];\\n\\n    function random(min, max) {\\n      return Math.random() * (max - min) + min;\\n    }\\n\\n    class Rocket {\\n      constructor() {\\n        this.x = random(width * 0.2, width * 0.8);\\n        this.y = height;\\n        this.targetY = random(height * 0.2, height * 0.5);\\n        this.color = `hsl(${random(0, 360)}, 100%, 60%)`;\\n        this.size = 4;\\n        this.speed = random(4, 6);\\n        this.exploded = false;\\n      }\\n\\n      update() {\\n        this.y -= this.speed;\\n        if (this.y <= this.targetY && !this.exploded) {\\n          this.explode();\\n          this.exploded = true;\\n        }\\n      }\\n\\n      draw() {\\n        ctx.globalAlpha = 0.5;\\n        ctx.fillStyle = this.color;\\n        ctx.fillRect(this.x, this.y, this.size, this.size);\\n        ctx.globalAlpha = 1;\\n      }\\n\\n      explode() {\\n        for (let i = 0; i < 30; i++) {\\n          const angle = Math.random() * 2 * Math.PI;\\n          const speed = Math.random() * 3 + 1;\\n          particles.push({\\n            x: this.x,\\n            y: this.y,\\n            vx: Math.cos(angle) * speed,\\n            vy: Math.sin(angle) * speed,\\n            alpha: 1,\\n            color: this.color,\\n            size: 4,\\n          });\\n        }\\n      }\\n    }\\n\\n    function updateParticles() {\\n      for (let i = particles.length - 1; i >= 0; i--) {\\n        const p = particles[i];\\n        p.x += p.vx;\\n        p.y += p.vy;\\n        p.alpha -= 0.02;\\n        if (p.alpha <= 0) {\\n          particles.splice(i, 1);\\n        }\\n      }\\n    }\\n\\n    function drawParticles() {\\n      for (const p of particles) {\\n        ctx.globalAlpha = p.alpha * 0.5;\\n        ctx.fillStyle = p.color;\\n        ctx.fillRect(p.x, p.y, p.size, p.size);\\n      }\\n      ctx.globalAlpha = 1;\\n    }\\n\\n    let isRunning = true;\\n    const startTime = Date.now();\\n\\n    function animate() {\\n      const elapsed = Date.now() - startTime;\\n      if (elapsed > 5000) isRunning = false;\\n\\n      ctx.clearRect(0, 0, width, height);\\n\\n      if (isRunning && Math.random() < 0.05) {\\n        rockets.push(new Rocket());\\n      }\\n\\n      for (let i = rockets.length - 1; i >= 0; i--) {\\n        const rocket = rockets[i];\\n        rocket.update();\\n        rocket.draw();\\n        if (rocket.exploded) rockets.splice(i, 1);\\n      }\\n\\n      updateParticles();\\n      drawParticles();\\n\\n      if (!isRunning && rockets.length === 0 && particles.length === 0) {\\n        return;\\n      }\\n\\n      requestAnimationFrame(animate);\\n    }\\n\\n    // Start the animation\\n    console.log(\"Starting animation...\");\\n    animate();\\n  }\\n\\n  // Check if DOM is already loaded\\n  console.log(\"DOM ready state:\", document.readyState);\\n  if (document.readyState === \"loading\") {\\n    document.addEventListener(\"DOMContentLoaded\", initFireworks);\\n  } else {\\n    initFireworks();\\n  }\\n</script>\\n\\n',customHTMLHeadStart:'<meta property=\"og:site_name\" content=\"ScenePartner\">\\n<!-- Google Tag Manager -->\\n<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({\\'gtm.start\\':\\nnew Date().getTime(),event:\\'gtm.js\\'});var f=d.getElementsByTagName(s)[0],\\nj=d.createElement(s),dl=l!=\\'dataLayer\\'?\\'&l=\\'+l:\\'\\';j.async=true;j.src=\\n\\'https://www.googletagmanager.com/gtm.js?id=\\'+i+dl;f.parentNode.insertBefore(j,f);\\n})(window,document,\\'script\\',\\'dataLayer\\',\\'GTM-N9FR5WSX\\');</script>\\n<!-- End Google Tag Manager -->\\n<script>\\n    !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(\".\");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement(\"script\")).type=\"text/javascript\",p.crossOrigin=\"anonymous\",p.async=!0,p.src=s.api_host.replace(\".i.posthog.com\",\"-assets.i.posthog.com\")+\"/static/array.js\",(r=t.getElementsByTagName(\"script\")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a=\"posthog\",u.people=u.people||[],u.toString=function(t){var e=\"posthog\";return\"posthog\"!==a&&(e+=\".\"+a),t||(e+=\" (stub)\"),e},u.people.toString=function(){return u.toString(1)+\".people (stub)\"},o=\"init bs ws ge fs capture De calculateEventProperties $s register register_once register_for_session unregister unregister_for_session Is getFeatureFlag getFeatureFlagPayload isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSurveysLoaded onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey canRenderSurveyAsync identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty xs Ss createPersonProfile Es gs opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing ys debug ks getPageViewId captureTraceFeedback captureTraceMetric\".split(\" \"),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);\\n    posthog.init(\\'phc_2ytun1vZyLuSMgyUpP9ncyTvh6E4kMM2gPXPeICW9Gi\\', {\\n        api_host:\\'https://app.scenepartner.ai/ingest\\',\\n        person_profiles: \\'always\\',\\n    })\\n</script>',description:\"The #1 way to self tape without a reader. Record auditions and memorize lines quickly with ultra-realistic AI voices. Available 24/7. First 3 scripts free.\",favicon:\"https://framerusercontent.com/assets/Jw7kFFoDEC7OEU13378NkD2IJ0.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/iiF5iLMI9gCV9rzcddxDOqheAP4.png\",title:\"ScenePartner - AI Self Tape Reader\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "AACe,SAARA,EAA0BC,EAAOC,EAAa,CAAC,MAAM,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAuiL,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAA47E,YAAY,8JAA8J,QAAQ,sEAAsE,OAAO,0BAA0B,YAAY,uEAAuE,MAAM,oCAAoC,CAAE",
  "names": ["metadata", "params", "activeLocale"]
}
