<!DOCTYPE html>
<html lang="en">
  <head>
    <style data-vite-theme="" data-inject-first="">:root {
      --background: 0 0% 100%;
--foreground: 20 14.3% 4.1%;
--muted: 60 4.8% 95.9%;
--muted-foreground: 25 5.3% 44.7%;
--popover: 0 0% 100%;
--popover-foreground: 20 14.3% 4.1%;
--card: 0 0% 100%;
--card-foreground: 20 14.3% 4.1%;
--border: 20 5.9% 90%;
--input: 20 5.9% 90%;
--primary: 222 47% 11%;
--primary-foreground: 221 8% 97%;
--secondary: 60 4.8% 95.9%;
--secondary-foreground: 24 9.8% 10%;
--accent: 60 4.8% 95.9%;
--accent-foreground: 24 9.8% 10%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 60 9.1% 97.8%;
--ring: 20 14.3% 4.1%;
--radius: 0.5rem;
  }
  .dark {
      --background: 240 10% 3.9%;
--foreground: 0 0% 98%;
--muted: 240 3.7% 15.9%;
--muted-foreground: 240 5% 64.9%;
--popover: 240 10% 3.9%;
--popover-foreground: 0 0% 98%;
--card: 240 10% 3.9%;
--card-foreground: 0 0% 98%;
--border: 240 3.7% 15.9%;
--input: 240 3.7% 15.9%;
--primary: 222 47% 11%;
--primary-foreground: 221 8% 97%;
--secondary: 240 3.7% 15.9%;
--secondary-foreground: 0 0% 98%;
--accent: 240 3.7% 15.9%;
--accent-foreground: 0 0% 98%;
--destructive: 0 62.8% 30.6%;
--destructive-foreground: 0 0% 98%;
--ring: 240 4.9% 83.9%;
--radius: 0.5rem;
  }</style>

    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <!-- Full Content Security Policy (frame-ancestors stays in HTTP header via Helmet; everything else here) -->
    <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.google *.google.com ep1.adtrafficquality.google ep2.adtrafficquality.google *.googleapis.com *.gstatic.com *.doubleclick.net *.googlesyndication.com *.googleadservices.com *.googletagmanager.com *.google-analytics.com *.radiantmediatechs.com *.innity.com *.innity.net *.amazon-adsystem.com *.gliacloud.com *.gliastudios.com *.2mdn.net *.getrockerbox.com *.googletagservices.com *.googletag.com *.facebook.com *.fbcdn.net *.taboola.com *.outbrain.com *.pubmatic.com *.openx.net *.casalemedia.com *.contextweb.com *.quantserve.com *.scorecardresearch.com *.moatads.com *.adsafeprotected.com *.integralads.com *.doubleverify.com *.rubiconproject.com *.criteo.com *.teads.tv *.ampproject.org *.adnxs.com *.fout.jp *.dspcdn.com *.adcanvas.com media.adcanvas.com data: blob:; connect-src 'self' *.clickthecity.com *.google.com *.google.com.ph ep1.adtrafficquality.google ep2.adtrafficquality.google *.googleapis.com *.googleusercontent.com *.gstatic.com *.gvt1.com *.googlevideo.com *.doubleclick.net *.googlesyndication.com *.googleadservices.com *.google-analytics.com *.radiantmediatechs.com *.innity.com *.innity.net *.amazon-adsystem.com *.criteo.com *.sparteo.com *.gliacloud.com *.gliastudios.com *.plyr.io *.getrockerbox.com *.teads.tv *.jsdelivr.net onetag-sys.com *.onetag-sys.com *.rubiconproject.com *.smartadserver.com *.unrulymedia.com *.adnxs.com *.fout.jp *.dspcdn.com *.rmp-data.com 3-q.cc secure.gravatar.com *.samplicio.us *.imrworldwide.com secure-gl.imrworldwide.com replit.com *.replit.com *.replit.dev *.riker.replit.dev *.bidswitch.net *.taboola.com *.outbrain.com *.pubmatic.com *.mookie1.com *.avct.cloud *.adsrvr.org *.demdex.net *.rlcdn.com *.casalemedia.com *.openx.net *.turn.com *.onetag.com *.adsafeprotected.com *.moatads.com *.doubleverify.com *.integralads.com *.adcanvas.com media.adcanvas.com *.fader.id; worker-src 'self' blob:; img-src 'self' data: blob: *.clickthecity.com *.google.com *.google.com.ph *.googleapis.com *.googleusercontent.com *.gstatic.com *.gvt1.com *.googlevideo.com *.doubleclick.net *.googlesyndication.com *.googleadservices.com *.googletagmanager.com *.googletagservices.com *.googletag.com ep1.adtrafficquality.google ep2.adtrafficquality.google secure.gravatar.com *.innity.com *.innity.net *.bidswitch.net *.amazon-adsystem.com *.facebook.com *.fbcdn.net *.cdninstagram.com *.criteo.com *.gliacloud.com *.gliastudios.com *.b-cdn.net *.radiantmediatechs.com *.2mdn.net *.getrockerbox.com *.taboola.com *.outbrain.com *.pubmatic.com *.teads.tv *.adnxs.com *.fout.jp *.dspcdn.com 3-q.cc *.mookie1.com *.avct.cloud *.adsrvr.org *.demdex.net *.rlcdn.com *.casalemedia.com *.openx.net *.rubiconproject.com *.turn.com *.cloudfront.net *.amazonaws.com *.onetag.com *.onetag-sys.com *.sparteo.com *.smartadserver.com *.adsafeprotected.com *.moatads.com *.doubleverify.com *.integralads.com *.imrworldwide.com images.unsplash.com *.unsplash.com *.adcanvas.com media.adcanvas.com *.fader.id; media-src 'self' blob: data: *.gliacloud.com *.gliastudios.com *.b-cdn.net *.plyr.io *.gvt1.com *.googlevideo.com *.doubleclick.net *.googlesyndication.com *.2mdn.net *.radiantmediatechs.com *.innity.com *.innity.net *.amazon-adsystem.com *.teads.tv *.criteo.com *.adnxs.com *.pubmatic.com *.rubiconproject.com *.adsafeprotected.com *.moatads.com *.fout.jp *.dspcdn.com *.imasdk.googleapis.com *.adcanvas.com media.adcanvas.com; style-src 'self' 'unsafe-inline' *.google.com *.googleapis.com *.gstatic.com *.innity.com *.innity.net *.radiantmediatechs.com *.doubleclick.net *.googlesyndication.com *.gliacloud.com *.gliastudios.com *.teads.tv static.teads.tv; script-src-attr 'unsafe-inline'; font-src 'self' *.gstatic.com *.googleapis.com data: *.radiantmediatechs.com cdnjs.cloudflare.com *.cloudflare.com; frame-src 'self' *.google.com *.google.com.ph *.googleapis.com *.syndicatedsearch.goog *.youtube.com *.doubleclick.net *.googlesyndication.com *.googleadservices.com ep1.adtrafficquality.google ep2.adtrafficquality.google *.ampproject.org *.innity.com *.innity.net *.amazon-adsystem.com *.gliacloud.com *.gliastudios.com *.googletagservices.com *.googletag.com *.facebook.com *.fbcdn.net *.taboola.com *.outbrain.com *.pubmatic.com *.teads.tv *.rubiconproject.com *.adnxs.com onetag-sys.com *.onetag-sys.com *.sparteo.com *.smartadserver.com *.adcanvas.com media.adcanvas.com *.criteo.com *.bidswitch.net *.adsrvr.org *.openx.net *.openx.com *.casalemedia.com *.moatads.com *.adsafeprotected.com *.doubleverify.com *.integralads.com *.turn.com *.demdex.net *.fout.jp *.dspcdn.com *.mookie1.com *.avct.cloud *.rlcdn.com *.sharethrough.com *.sovrn.com *.lijit.com *.fader.id; form-action 'self' *.ipg-online.com www4.ipg-online.com *.ipay88.com.ph payment.ipay88.com.ph *.pesopay.com www.pesopay.com; base-uri 'self'; object-src 'none'" />
    <title>ClickTheCity - Movies, Events, Food & Entertainment Guide</title>
    
    <!-- Resource Hints for Performance -->
    <link rel="preconnect" href="https://fonts.googleapis.com" crossorigin />
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
    <link rel="preconnect" href="https://cdn1.clickthecity.com" crossorigin />
    <link rel="preconnect" href="https://securepubads.g.doubleclick.net" crossorigin />
    <link rel="dns-prefetch" href="https://cse.google.com" />
    <link rel="dns-prefetch" href="https://www.googletagmanager.com" />
    <link rel="dns-prefetch" href="https://adservice.google.com" />
    <link rel="dns-prefetch" href="https://www.clickthecity.com" />
    
    <!-- Preload Critical Font CSS only -->
    <link rel="preload" href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap" as="style" />
    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap" />
    
    <!-- Favicon - optimized for Google Search (requires 48x48 minimum, multiples of 48px recommended) -->
    <link rel="icon" type="image/x-icon" href="/favicon.ico" sizes="16x16 32x32" />
    <link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32" />
    <link rel="icon" type="image/png" href="/favicon-48x48.png" sizes="48x48" />
    <link rel="icon" type="image/png" href="/icons/icon-96x96.png" sizes="96x96" />
    <link rel="icon" type="image/png" href="/icons/icon-192x192.png" sizes="192x192" />
    <link rel="shortcut icon" href="/favicon.ico" />
    
    <!-- PWA Manifest -->
    <link rel="manifest" href="/manifest.json" />
    
    <!-- iOS PWA Support -->
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="default" />
    <meta name="apple-mobile-web-app-title" content="ClickTheCity" />
    <link rel="apple-touch-icon" href="/icons/icon-180x180.png" />
    <link rel="apple-touch-icon" sizes="20x20" href="/icons/icon-20x20.png" />
    <link rel="apple-touch-icon" sizes="29x29" href="/icons/icon-29x29.png" />
    <link rel="apple-touch-icon" sizes="32x32" href="/icons/icon-32x32.png" />
    <link rel="apple-touch-icon" sizes="40x40" href="/icons/icon-40x40.png" />
    <link rel="apple-touch-icon" sizes="58x58" href="/icons/icon-58x58.png" />
    <link rel="apple-touch-icon" sizes="60x60" href="/icons/icon-60x60.png" />
    <link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png" />
    <link rel="apple-touch-icon" sizes="76x76" href="/icons/icon-76x76.png" />
    <link rel="apple-touch-icon" sizes="80x80" href="/icons/icon-80x80.png" />
    <link rel="apple-touch-icon" sizes="87x87" href="/icons/icon-87x87.png" />
    <link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png" />
    <link rel="apple-touch-icon" sizes="120x120" href="/icons/icon-120x120.png" />
    <link rel="apple-touch-icon" sizes="128x128" href="/icons/icon-128x128.png" />
    <link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png" />
    <link rel="apple-touch-icon" sizes="152x152" href="/icons/icon-152x152.png" />
    <link rel="apple-touch-icon" sizes="167x167" href="/icons/icon-167x167.png" />
    <link rel="apple-touch-icon" sizes="180x180" href="/icons/icon-180x180.png" />
    <link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png" />
    <link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png" />
    <link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png" />
    <link rel="apple-touch-icon" sizes="1024x1024" href="/icons/icon-1024x1024.png" />
    
    <!-- Android/Chrome PWA Support -->
    <meta name="theme-color" content="#ef4444" />
    <meta name="mobile-web-app-capable" content="yes" />
    
    <!-- Microsoft/Windows PWA Support -->
    <meta name="msapplication-TileColor" content="#ef4444" />
    <meta name="msapplication-TileImage" content="/icons/icon-144x144.png" />
    <meta name="msapplication-config" content="none" />
    
    <!-- Sitemaps for SEO -->
    <link rel="sitemap" type="application/xml" title="News Sitemap" href="/sitemap-news.xml" />
    
    <!-- Google Custom Search Engine -->
    <script async src="https://cse.google.com/cse.js?cx=0066ccc004ec94fc1"></script>
    
    <!-- Innity Async Zone Tag - NOT NEEDED: Innity JS is included within GAM's 3rd party creative tag (slot ID 367507) -->
    <!-- The critical fix for Innity expandable ads is disabling SafeFrame on inread and mobile-inside-popup slots -->
    
    <!-- Google Ad Manager (GAM) Setup -->
    <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
    <script>
      window.googletag = window.googletag || {cmd: []};
      googletag.cmd.push(function() {
        // GAM initialization started
        
        // Enhanced targeting based on user behavior and content engagement (from admanager.txt)
        googletag.pubads().addEventListener('slotRenderEnded', function(event) {
            // GAM Slot Render Ended - manage visibility
            
            var slotElement = document.getElementById(event.slot.getSlotElementId());
            if (slotElement) {
                if (event.isEmpty) {
                    // Hide empty slots to prevent flickering
                    slotElement.style.display = 'none';
                } else {
                    // Show successful ads with smooth transition
                    slotElement.style.display = 'block';
                    slotElement.style.visibility = 'visible';
                    slotElement.style.opacity = '1';
                }
            }
        });
        // CONTEXTUAL TARGETING SETUP (from admanager.txt)
        function setupContextualTargeting() {
            // Dynamic content analysis
            const pageURL = window.location.pathname;
            const pageTitle = document.title.toLowerCase();
            const metaKeywords = document.querySelector('meta[name="keywords"]')?.content || '';
            
            // Determine content context
            let contentCategory = "general";
            let contentType = "article";
            let audience = "general";
            
            // Content categorization logic
            if (pageURL.includes("/movies/") || pageTitle.includes("movie")) {
                contentCategory = "movies";
                contentType = "entertainment";
                audience = "movie_enthusiasts";
            } else if (pageURL.includes("/events/") || pageTitle.includes("event")) {
                contentCategory = "events";
                contentType = "lifestyle";
                audience = "event_goers";
            } else if (pageURL.includes("/restaurants/") || pageURL.includes("/food-drink/") || pageTitle.includes("food")) {
                contentCategory = "dining";
                contentType = "lifestyle";
                audience = "food_lovers";
            }
            
            // Device and time-based targeting
            const deviceType = /Mobile|Android|iPhone/.test(navigator.userAgent) ? "mobile" : "desktop";
            const timeOfDay = new Date().getHours() < 12 ? "morning" : 
                             new Date().getHours() < 18 ? "afternoon" : "evening";
            
            // Apply page-level targeting
            googletag.pubads().setTargeting("content_category", contentCategory);
            googletag.pubads().setTargeting("content_type", contentType);
            googletag.pubads().setTargeting("audience_interest", audience);
            googletag.pubads().setTargeting("device_type", deviceType);
            googletag.pubads().setTargeting("time_of_day", timeOfDay);
            googletag.pubads().setTargeting("page_section", pageURL.split('/')[1] || "home");
            
            return { contentCategory, contentType, audience, deviceType };
        }

        // Size mappings (from admanager.txt)
        var mapping = googletag.sizeMapping().
              addSize([992, 0], [[970, 250],[970, 90],[728, 90]]).
              addSize([768, 0], [728, 90]).
              addSize([375, 0], [[375, 175],[375, 100],[320, 150],[320, 100]]).
              addSize([320, 0], [[320, 150],[320, 100]]).
              build();

        var mappingMREC = googletag.sizeMapping().
              addSize([992, 0], [300, 250]).
              addSize([768, 0], [300, 250]).
              addSize([375, 0], [[300, 250],[320, 480],[300, 600]]).
              addSize([320, 0], [[300, 250],[320, 480],[300, 600]]).
              build();

        var mappingMREC2 = googletag.sizeMapping().
              addSize([992, 0], [[300, 250],[300, 600]]).
              addSize([768, 0], [[300, 250],[300, 600]]).
              addSize([375, 0], [[300, 250],[320, 480],[300, 600]]).
              addSize([320, 0], [[300, 250],[320, 480],[300, 600]]).
              build();

        var mappingSticky = googletag.sizeMapping().
              addSize([992, 0], [728, 90]).
              addSize([768, 0], [728, 90]).
              addSize([375, 0], [320, 50]).
              addSize([320, 0], [320, 50]).
              build();

        // Setup contextual targeting
        const context = setupContextualTargeting();

        // Enhanced slot definitions with contextual targeting (from admanager.txt)
        googletag.defineSlot('/1042588/Multi_ROS_Masthead_Ad', [[970, 250], [970, 90], [728, 90], [320, 100], [375, 175], [375, 100], [320, 150]], 'leaderboard-ad')
            .defineSizeMapping(mapping)
            .setCollapseEmptyDiv(true, true)
            .setTargeting("ad_position", "masthead")
            .setTargeting("visibility", "above_fold")
            .setTargeting("ad_format", "banner")
            .addService(googletag.pubads());



        googletag.defineSlot('/1042588/Multi_ROS_MREC_1', [[300, 250], [320, 480], [300, 600]], 'mrec1')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .setTargeting("ad_position", "content_top")
            .setTargeting("visibility", "above_fold")
            .setTargeting("ad_format", "rectangle")
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_MREC_2', [[300, 250], [300, 450], [320, 480], [300, 600]], 'mrec2')
            .defineSizeMapping(mappingMREC2)
            .setCollapseEmptyDiv(true, true)
            .setTargeting("ad_position", "content_middle")
            .setTargeting("visibility", "below_fold")
            .setTargeting("ad_format", "rectangle")
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_MREC_3', [[300, 250], [320, 480], [300, 600]], 'mrec3')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .setTargeting("ad_position", "content_bottom")
            .setTargeting("visibility", "below_fold")
            .setTargeting("engagement_level", "high")
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_MREC_4', [[300, 250], [320, 480], [300, 600]], 'mrec4')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .setTargeting("ad_position", "sidebar")
            .setTargeting("visibility", "variable")
            .setTargeting("ad_format", "rectangle")
            .setTargeting("engagement_level", "medium")
            .setTargeting("content_depth", "secondary")
            .setTargeting("user_intent", "browse")
            .setTargeting("page_category", "entertainment")
            .setTargeting("content_freshness", "current")
            .setTargeting("audience_segment", "engaged_users")
            .setTargeting("viewability_score", "high")
            .setTargeting("interaction_potential", "moderate")
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_MREC_5', [[300, 250], [320, 480], [300, 600]], 'mrec5')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .setTargeting("ad_position", "footer_area")
            .setTargeting("visibility", "below_fold")
            .setTargeting("ad_format", "rectangle")
            .setTargeting("engagement_level", "low")
            .setTargeting("content_depth", "supplementary")
            .setTargeting("user_intent", "discovery")
            .setTargeting("page_category", "entertainment")
            .setTargeting("content_freshness", "current")
            .setTargeting("audience_segment", "casual_browsers")
            .setTargeting("viewability_score", "standard")
            .setTargeting("interaction_potential", "low")
            .setTargeting("scroll_depth", "deep")
            .addService(googletag.pubads());

        // Additional MREC slots for infinite scroll - reuse same GAM paths with unique IDs
        googletag.defineSlot('/1042588/Multi_ROS_MREC_1', [[300, 250], [320, 480], [300, 600]], 'mrec6')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_MREC_2', [[300, 250], [300, 450], [320, 480], [300, 600]], 'mrec7')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_MREC_3', [[300, 250], [320, 480], [300, 600]], 'mrec8')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_MREC_4', [[300, 250], [320, 480], [300, 600]], 'mrec9')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_MREC_5', [[300, 250], [320, 480], [300, 600]], 'mrec10')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_MREC_1', [[300, 250], [320, 480], [300, 600]], 'mrec11')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_MREC_2', [[300, 250], [300, 450], [320, 480], [300, 600]], 'mrec12')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_MREC_3', [[300, 250], [320, 480], [300, 600]], 'mrec13')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_MREC_4', [[300, 250], [320, 480], [300, 600]], 'mrec14')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_MREC_5', [[300, 250], [320, 480], [300, 600]], 'mrec15')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_MREC_1', [[300, 250], [320, 480], [300, 600]], 'mrec16')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_MREC_2', [[300, 250], [300, 450], [320, 480], [300, 600]], 'mrec17')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_MREC_3', [[300, 250], [320, 480], [300, 600]], 'mrec18')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_MREC_4', [[300, 250], [320, 480], [300, 600]], 'mrec19')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_MREC_5', [[300, 250], [320, 480], [300, 600]], 'mrec20')
            .defineSizeMapping(mappingMREC)
            .setCollapseEmptyDiv(true, true)
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Mobile_Inside_Pop_Up', [1, 1], 'mobile-inside-popup')
            .setCollapseEmptyDiv(true, true)
            .setForceSafeFrame(false)  // CRITICAL: Disable SafeFrame for Innity floating/expandable ads
            .setTargeting("ad_format", "interstitial")
            .setTargeting("device_specific", "mobile")
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_Marketing_Banners', [[300, 150], [300, 75]], 'freezone')
            .setCollapseEmptyDiv(true, true)
            .setTargeting("ad_type", "promotional")
            .setTargeting("ad_position", "freezone")
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_In_Read_Ad', [1, 1], 'inread')
            .setCollapseEmptyDiv(true, true)
            .setForceSafeFrame(false)  // CRITICAL: Disable SafeFrame for Innity parallax/expandable ads
            .setTargeting("ad_format", "native")
            .setTargeting("ad_position", "in_content")
            .setTargeting("engagement_context", "reading")
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_In_Read_Ad', [1, 1], 'inread2')
            .setCollapseEmptyDiv(true, true)
            .setForceSafeFrame(false)  // CRITICAL: Disable SafeFrame for Innity parallax/expandable ads
            .setTargeting("ad_format", "native")
            .setTargeting("ad_position", "in_content")
            .setTargeting("engagement_context", "reading")
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_Sticky_Banners', [[728, 90], [320, 50]], 'stickyad')
            .defineSizeMapping(mappingSticky)
            .setTargeting("ad_behavior", "sticky")
            .setTargeting("visibility", "persistent")
            .setTargeting("user_attention", "high")
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_Native_Ad', 'fluid', 'homestream')
            .setCollapseEmptyDiv(true, true)
            .setTargeting("ad_format", "native_feed")
            .setTargeting("integration", "content_stream")
            .addService(googletag.pubads());

        googletag.defineSlot('/1042588/Multi_ROS_Lower_Banner', [[970, 250], [970, 90], [728, 90], [320, 100], [375, 175], [320, 50], [300, 250]], 'lower-leaderboard-ad')
            .defineSizeMapping(mapping)
            .setCollapseEmptyDiv(true, true)
            .setTargeting("ad_position", "footer_banner")
            .setTargeting("page_completion", "near_end")
            .addService(googletag.pubads());

        // Privacy and ad settings (from admanager.txt)
        googletag.pubads().setPrivacySettings({
            childDirectedTreatment: false,
            underAgeOfConsent: false,
            restrictDataProcessing: false
        });

        // Advanced contextual targeting based on user engagement
        function trackUserEngagement() {
            let engagementLevel = "low";
            let timeOnPage = 0;
            
            // Track time on page
            const startTime = Date.now();
            window.addEventListener('beforeunload', function() {
                timeOnPage = (Date.now() - startTime) / 1000;
                if (timeOnPage > 30) engagementLevel = "medium";
                if (timeOnPage > 120) engagementLevel = "high";
                
                googletag.pubads().setTargeting("engagement_time", engagementLevel);
            }, { passive: true });
            
            // Track scroll depth with throttling to reduce INP impact
            let maxScrollDepth = 0;
            let scrollTimeout;
            window.addEventListener('scroll', function() {
                clearTimeout(scrollTimeout);
                scrollTimeout = setTimeout(function() {
                    const scrollDepth = (window.scrollY + window.innerHeight) / document.body.scrollHeight;
                    maxScrollDepth = Math.max(maxScrollDepth, scrollDepth);
                    
                    if (maxScrollDepth > 0.75) {
                        googletag.pubads().setTargeting("scroll_depth", "deep");
                    } else if (maxScrollDepth > 0.25) {
                        googletag.pubads().setTargeting("scroll_depth", "medium");
                    }
                }, 100);
            }, { passive: true });
        }

        // Initialize engagement tracking with requestIdleCallback for better INP
        if ('requestIdleCallback' in window) {
            requestIdleCallback(trackUserEngagement);
        } else {
            setTimeout(trackUserEngagement, 1);
        }

        // Enable AdX (Google Ad Exchange) for programmatic bidding
        googletag.pubads().enableAsyncRendering();
        googletag.pubads().enableSingleRequest();
        googletag.pubads().collapseEmptyDivs(true);
        
        // Enhanced lazy loading - fetch ads early so parallax creatives have time
        // to initialize before the user scrolls to them (prevents "starts in middle" issue)
        googletag.pubads().enableLazyLoad({
            fetchMarginPercent: 500,
            renderMarginPercent: 200,
            mobileScaling: 2.0
        });

        // AdX Configuration for programmatic revenue optimization
        googletag.pubads().setCentering(true); // Center ads in containers
        
        // Enhanced AdX bidding optimization
        googletag.pubads().setPublisherProvidedId('clickthecity-adx-' + Date.now()); // Unique publisher ID for AdX
        
        // AdX programmatic settings - Enable real-time bidding
        googletag.pubads().enableVideoAds(); // Enable video ads for better AdX revenue
        googletag.pubads().setPrivacySettings({
            restrictDataProcessing: false, // Allow data processing for AdX personalization
            childDirectedTreatment: false,
            underAgeOfConsent: false
        });
        
        googletag.enableServices();
      });
    </script>
    <script type="module" crossorigin src="/assets/index-CRut8ctO.js"></script>
    <link rel="stylesheet" crossorigin href="/assets/index-u3kpLh20.css">
  </head>
  <body>
    <div id="root"></div>
  </body>
</html>