It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: https://889992832.xyz

  1.  
  2.  
  3.  
  4. <!DOCTYPE html>
  5. <html lang="en" data-font-scheme="work">
  6.  
  7.  
  8. <head>
  9.    <meta charset="utf-8">
  10.    <meta http-equiv="X-UA-Compatible" content="IE=edge">
  11.    <meta name="viewport" content="width=device-width, initial-scale=1">
  12.    
  13.        <link rel="shortcut icon" type="image/png" href="https://usc1.contabostorage.com/83226f3934d449eb8c821d388b39f7b1:nextbacklinks/favicon/favicons/KEITHSTON_-_2025-04-28T153254.782_pXKN993_wdh1VEc.png">
  14.    
  15.  
  16.    <title>Tech Insights &amp; Innovation Trends | Latest Digital Updates</title>
  17.    <meta name="description" content="Explore cutting-edge technology insights, innovation trends, and digital updates. Stay informed with expert analysis on emerging tech and industry developments.">
  18.    <link href="/static/blogapp/assets/css/themify-icons.css" rel="stylesheet">
  19.    <link href="/static/blogapp/assets/css/flaticon.css" rel="stylesheet">
  20.    <link href="/static/blogapp/assets/css/bootstrap.min.css" rel="stylesheet">
  21.    <link href="/static/blogapp/assets/css/animate.css" rel="stylesheet">
  22.    <link href="/static/blogapp/assets/css/owl.carousel.css" rel="stylesheet">
  23.    <link href="/static/blogapp/assets/css/owl.theme.css" rel="stylesheet">
  24.    <link href="/static/blogapp/assets/css/slick.css" rel="stylesheet">
  25.    <link href="/static/blogapp/assets/css/slick-theme.css" rel="stylesheet">
  26.    <link href="/static/blogapp/assets/css/swiper.min.css" rel="stylesheet">
  27.    <link href="/static/blogapp/assets/css/owl.transitions.css" rel="stylesheet">
  28.    <link href="/static/blogapp/assets/css/jquery.fancybox.css" rel="stylesheet">
  29.    <link href="/static/blogapp/assets/css/odometer-theme-default.css" rel="stylesheet">
  30.    <link href="/static/blogapp/assets/css/component.css" rel="stylesheet">
  31.    <link href="/static/blogapp/assets/sass/style.css" rel="stylesheet">
  32.    <link href="/static/blogapp/assets/sass/layout/navbar.css" rel="stylesheet">
  33.    <link href="/static/blogapp/assets/css/responsive.css" rel="stylesheet">
  34.    <link href="/static/blogapp/assets/sass/fonts.css" rel="stylesheet">
  35.    <link rel="canonical" href="https://889992832.xyz/">
  36.    <!-- Dynamic CSS Override -->
  37.    
  38. <style>
  39.    :root {
  40.        /* Bootstrap 5 Color Overrides */
  41.        --bs-primary: #1e90ff;
  42.        --bs-primary-rgb: 1e90ff;
  43.        --bs-secondary: #64748b;
  44.        --bs-success: #2dd4bf;
  45.        --bs-danger: #f43f5e;
  46.        --bs-warning: #f59e0b;
  47.        --bs-info: #60a5fa;
  48.        --bs-light: #eff6ff;
  49.        --bs-dark: #1e3a8a;
  50.        
  51.        /* Your SCSS Variables Override */
  52.        --theme-primary-color: #1e90ff;
  53.        --theme-primary-color-s2: #1e90ff;
  54.        --body-bg-color: #ffffff;
  55.        --section-bg-color: #f9faff;
  56.        --text-color: #1e3a8a;
  57.        --text-light-color: #676767;
  58.        --heading-color: #1e3a8a;
  59.        --border-color: #bfdbfe;
  60.        --border-color-s2: #eef0fc;
  61.        --border-color-black: #3c3c40;
  62.        --body-color: #777777;
  63.        --small-black: #777777;
  64.        --light: #8188a9;
  65.        --cyan: #848892;
  66.        --black-section-text-color: #CBCBCB;
  67.        --black-bg-color: #202026;
  68.        --black-bg-color-s2: #2C2C32;
  69.        --dark-gray: #232f4b;
  70.        
  71.        /* Component Specific Colors (Bootstrap + Your SCSS) */
  72.        --navbar-bg: #ffffff;
  73.        --nav-bg: #ffffff;
  74.        --sub-nav: #dbeafe;
  75.        --navbar-color: #1e3a8a;
  76.        --topbar-bg: #eff6ff;
  77.        --topbar-color: #1e3a8a;
  78.        --footer-bg: #1e3a8a;
  79.        --footer-color: #ffffff;
  80.        --card-bg: #ffffff;
  81.        --card-border: #bfdbfe;
  82.        --card-radius: 10px;
  83.        --link-color: #1e90ff;
  84.        --link-hover: #1d4ed8;
  85.        --blog-color: #ffffff;
  86.        --blog-bg: rgba(30, 144, 255, 0.1);
  87.        
  88.        /* Simplified Font System */
  89.        --border-radius: 12px;
  90.        
  91.        /* Bootstrap Font Override - Uses CSS font system from fonts.css */
  92.        --bs-font-sans-serif: var(--font-primary);
  93.    }
  94.    
  95.    /* Font Override - Let CSS font system handle fonts via data-font-scheme */
  96.    body {
  97.        /* Remove font-family override - let data-font-scheme handle it */
  98.        font-weight: 400;
  99.        color: var(--text-color) !important;
  100.        
  101.            background-color: var(--body-bg-color) !important;
  102.        
  103.        min-height: 100vh;
  104.    }
  105.    
  106.    /* Headings - Let CSS font system handle fonts via data-font-scheme */
  107.    h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  108.        /* Remove font-family override - let data-font-scheme handle it */
  109.        font-weight: 600;
  110.        color: var(--heading-color) !important;
  111.    }
  112.    
  113.    /* Bootstrap Primary Color Throughout Site */
  114.    .btn-primary {
  115.        background-color: var(--bs-primary) !important;
  116.        border-color: var(--bs-primary) !important;
  117.        transition: all 0.3s ease;
  118.    }
  119.    
  120.    .btn-primary:hover {
  121.        background-color: var(--theme-primary-color-s2) !important;
  122.        border-color: var(--theme-primary-color-s2) !important;
  123.        transform: translateY(-2px);
  124.        box-shadow: 0 5px 15px rgba(var(--bs-primary-rgb), 0.4);
  125.    }
  126.    
  127.    .btn-outline-primary {
  128.        color: var(--bs-primary) !important;
  129.        border-color: var(--bs-primary) !important;
  130.    }
  131.    
  132.    .btn-outline-primary:hover {
  133.        background-color: var(--bs-primary) !important;
  134.        border-color: var(--bs-primary) !important;
  135.    }
  136.    
  137.    .text-primary {
  138.        color: var(--bs-primary) !important;
  139.    }
  140.    
  141.    .bg-primary {
  142.        background-color: var(--bs-primary) !important;
  143.    }
  144.    
  145.    /* Your Navigation System */
  146.    .navigation.navbar,
  147.    .navbar {
  148.        
  149.            background-color: var(--navbar-bg) !important ;
  150.        
  151.        /* Remove font-family override - let data-font-scheme handle it */
  152.        
  153.        border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important ;
  154.    }
  155.    
  156.    .navigation.navbar .fluid-container{
  157.        min-height: 60px;
  158.    }
  159.    
  160.    .navigation .navbar-brand,
  161.    .navigation .navbar-nav .nav-link,
  162.    .navbar-brand,
  163.    nav a,
  164.    .navbar-nav .nav-link {
  165.        color: var(--navbar-color) !important;
  166.        /* Remove font-family override - let data-font-scheme handle it */
  167.        transition: all 0.3s ease;
  168.    }
  169.    
  170.    .navigation .navbar-nav .nav-link:hover,
  171.    .navbar-nav .nav-link:hover,
  172.    nav a:hover,
  173.    .navigation .navbar-nav .nav-link.active,
  174.    .navbar-nav .nav-link.active {
  175.        color: var(--navbar-color) !important;
  176.        transform: translateY(-1px);
  177.        opacity: 0.85;
  178.    }
  179.    
  180.    /* Your existing navbar specific classes */
  181.    .navigation .sub-menu {
  182.        background: var(--navbar-bg) !important;
  183.        box-shadow: 0 5px 15px rgba(0,0,0,0.1);
  184.        border: 1px solid var(--border-color);
  185.    }
  186.    
  187.    .border-color{
  188.        border-color: var(--border-color) !important;
  189.    }
  190.    
  191.    .navigation .sub-menu li a {
  192.        color: var(--navbar-color) !important;
  193.        /* Remove font-family override - let data-font-scheme handle it */
  194.    }
  195.    
  196.    .navigation .sub-menu li a:hover {
  197.        background: var(--bs-primary) !important;
  198.        color: #ffffff !important;
  199.    }
  200.    
  201.    .card {
  202.        
  203.            background-color: var(--card-bg) !important;
  204.        
  205.        border: 1px solid var(--border-color) !important;
  206.        transition: all 0.3s ease;
  207.        border-radius: 12px;
  208.        color: var(--text-color) !important;
  209.    }
  210.     .navbar-brand img{
  211.            height: 70px;
  212.            object-fit: contain;
  213.        }
  214.    
  215.    .card:hover {
  216.        transform: translateY(-5px);
  217.        box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  218.    }
  219.    
  220.    .card-header {
  221.        background-color: var(--section-bg-color) !important;
  222.        border-color: var(--border-color) !important;
  223.        color: var(--text-color) !important;
  224.    }
  225.    
  226.    /* Bootstrap Form Controls */
  227.    .form-control {
  228.        color: var(--text-color) !important;
  229.        background-color: var(--body-bg-color) !important;
  230.        border-color: var(--border-color) !important;
  231.        /* Remove font-family override - let data-font-scheme handle it */
  232.    }
  233.    
  234.    .form-control:focus {
  235.        border-color: var(--bs-primary) !important;
  236.        box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary), 0.25) !important;
  237.    }
  238.    
  239.    /* Links throughout site */
  240.  .nav1 a {
  241.        color: var(--link-color) !important;
  242.        text-decoration: none;
  243.        transition: all 0.3s ease;
  244.    }
  245.    
  246.    a:hover {
  247.        color: var(--link-hover) !important;
  248.    }
  249.    
  250.    /* Text color classes */
  251.    .text-muted {
  252.        color: var(--body-color) !important;
  253.    }
  254.    
  255.    .text-light {
  256.        color: var(--light) !important;
  257.    }
  258.    
  259.    /* Section backgrounds */
  260.    .section-bg,
  261.    .bg-light {
  262.        background-color: var(--section-bg-color) !important;
  263.    }
  264.    
  265.    /* Dark sections */
  266.    .bg-dark,
  267.    .dark-section {
  268.        background-color: var(--black-bg-color) !important;
  269.        color: var(--black-section-text-color) !important;
  270.    }
  271.    
  272.    /* Footer styling */
  273.    .footer,
  274.    footer {
  275.        
  276.            background-color: var(--footer-bg) !important;
  277.        
  278.        color: var(--footer-color) !important;
  279.    }
  280.    
  281.    .footer h1, .footer h2, .footer h3, .footer h4, .footer h5, .footer h6,
  282.    footer h1, footer h2, footer h3, footer h4, footer h5, footer h6 {
  283.        color: var(--black-section-text-color) !important;
  284.        /* Remove font-family override - let data-font-scheme handle it */
  285.    }
  286.    
  287.    .footer a, footer a {
  288.        color: var(--black-section-text-color) !important;
  289.    }
  290.    
  291.    .footer a:hover, footer a:hover {
  292.        color: var(--bs-primary) !important;
  293.    }
  294.    
  295.    /* Bootstrap Secondary Colors */
  296.    .btn-secondary {
  297.        background-color: var(--bs-secondary) !important;
  298.        border-color: var(--bs-secondary) !important;
  299.    }
  300.    
  301.    .text-secondary {
  302.        color: var(--bs-secondary) !important;
  303.    }
  304.    
  305.    .bg-secondary {
  306.        background-color: var(--bs-secondary) !important;
  307.    }
  308.    
  309.    /* Bootstrap Success, Danger, Warning, Info */
  310.    .btn-success { background-color: var(--bs-success) !important; border-color: var(--bs-success) !important; }
  311.    .btn-danger { background-color: var(--bs-danger) !important; border-color: var(--bs-danger) !important; }
  312.    .btn-warning { background-color: var(--bs-warning) !important; border-color: var(--bs-warning) !important; }
  313.    .btn-info { background-color: var(--bs-info) !important; border-color: var(--bs-info) !important; }
  314.    
  315.    .text-success { color: var(--bs-success) !important; }
  316.    .text-danger { color: var(--bs-danger) !important; }
  317.    .text-warning { color: var(--bs-warning) !important; }
  318.    .text-info { color: var(--bs-info) !important; }
  319.    
  320.    .bg-success { background-color: var(--bs-success) !important; }
  321.    .bg-danger { background-color: var(--bs-danger) !important; }
  322.    .bg-warning { background-color: var(--bs-warning) !important; }
  323.    .bg-info { background-color: var(--bs-info) !important; }
  324.    
  325.    /* Mobile menu styling */
  326.    .navbar-toggler,
  327.    .open-btn {
  328.        border-color: var(--navbar-color) !important;
  329.    }
  330.    
  331.    .icon-bar {
  332.        background-color: var(--navbar-color) !important;
  333.    }
  334.    
  335.    /* Smooth Animations */
  336.    .fade-in-up {
  337.        animation: fadeInUp 0.6s ease-out;
  338.    }
  339.    
  340.    @keyframes fadeInUp {
  341.        from {
  342.            opacity: 0;
  343.            transform: translateY(30px);
  344.        }
  345.        to {
  346.            opacity: 1;
  347.            transform: translateY(0);
  348.        }
  349.    }
  350.    
  351.    /* Responsive adjustments */
  352.    @media (max-width: 768px) {
  353.        .navbar {
  354.            padding: 0.5rem 0;
  355.        }
  356.        
  357.        .card:hover {
  358.            transform: none;
  359.        }
  360.    }
  361.    
  362. </style>
  363.    
  364.    
  365.    
  366.  
  367. <script>
  368.    var _paq = window._paq = window._paq || [];
  369.    /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
  370.    _paq.push(['trackPageView']);
  371.    _paq.push(['enableLinkTracking']);
  372.    (function() {
  373.        var u = "//analytics.tech-vikings.com/";
  374.        _paq.push(['setTrackerUrl', u + 'matomo.php']);
  375.        _paq.push(['setSiteId', '2']);
  376.        var d = document,
  377.            g = d.createElement('script'),
  378.            s = d.getElementsByTagName('script')[0];
  379.        g.async = true;
  380.        g.src = u + 'matomo.js';
  381.        s.parentNode.insertBefore(g, s);
  382.    })();
  383. </script>
  384. </head>
  385.  
  386.  
  387.  
  388. <body class="page-blogapp:homepage theme-theme_42">
  389.    <div id="healthcheck"></div>
  390.    <!-- start page-wrapper -->
  391.    <div class="page-wrapper">
  392.        
  393.            <!-- start preloader -->
  394.                
  395.            <!-- end preloader -->
  396.        
  397.        <!-- Start header -->
  398.        <header id="header" class="wpo-site-header">
  399.            
  400.  
  401.  
  402.    
  403.  
  404.  
  405.  
  406.  
  407.            
  408.  
  409.  
  410.  
  411.  
  412.  
  413. <nav class="navigation navbar navbar-expand-lg navbar-light custom-nav dynamic-navbar mb-4">
  414.  <div class="container-fluid fluid-container">
  415.    <div class="row flex-wrap align-items-center">
  416.      <div class="col-lg-3 col-md-3 col-3 d-lg-none dl-block">
  417.        <div class="mobail-menu">
  418.          <button type="button" class="navbar-toggler open-btn">
  419.            <span class="sr-only">Toggle navigation</span>
  420.            <span class="icon-bar first-angle"></span>
  421.            <span class="icon-bar middle-angle"></span>
  422.            <span class="icon-bar last-angle"></span>
  423.          </button>
  424.        </div>
  425.      </div>
  426.      <div class="col-lg-2 col-md-6 col-6">
  427.        <div class="navbar-header">
  428.          <a class="navbar-brand" href="/">
  429.            
  430.            <img src="https://usc1.contabostorage.com/83226f3934d449eb8c821d388b39f7b1:nextbacklinks/site_logos/3071d81b-f151-4a74-8969-2d9116126eae_logo.png" alt="Tech Pulse Blog" />
  431.            
  432.          </a>
  433.        </div>
  434.  
  435.      </div>
  436.      <div class="col-lg-8 col-md-1 col-1">
  437.        <div id="navbar" class="collapse navbar-collapse navigation-holder">
  438.          <button class="menu-close"><i class="ti-close"></i></button>
  439.          <ul class="nav navbar-nav mb-2 mb-lg-0">
  440.            <li>
  441.              <a href="/">
  442.                Home
  443.              </a>
  444.            </li>
  445.            
  446.            
  447.             <li>
  448.              <a href="/category/all-posts/">
  449.                All Posts
  450.              </a>
  451.              </li>
  452.              
  453.  
  454.                  
  455.              
  456.             <li>
  457.              <a href="/category/business/">
  458.                Business
  459.              </a>
  460.              </li>
  461.              
  462.  
  463.                  
  464.              
  465.             <li>
  466.              <a href="/category/esports/">
  467.                Esports
  468.              </a>
  469.              </li>
  470.              
  471.  
  472.                  
  473.              
  474.             <li>
  475.              <a href="/category/fashion/">
  476.                Fashion
  477.              </a>
  478.              </li>
  479.              
  480.  
  481.                  
  482.              
  483.             <li>
  484.              <a href="/category/featured/">
  485.                Featured
  486.              </a>
  487.              </li>
  488.              
  489.  
  490.                  
  491.              
  492.            
  493.              <li class="menu-item-has-children">
  494.                <a href="#">More</a>
  495.                <ul class="sub-menu">
  496.                  <li>
  497.                    <a href="/category/gaming/">
  498.                      Gaming
  499.                    </a>
  500.                  </li>
  501.                  
  502.  
  503.                  
  504.              
  505.            
  506.                  <li>
  507.                    <a href="/category/health/">
  508.                      Health
  509.                    </a>
  510.                  </li>
  511.                  
  512.  
  513.                  
  514.              
  515.            
  516.                  <li>
  517.                    <a href="/category/life-fitness/">
  518.                      Life &amp; Fitness
  519.                    </a>
  520.                  </li>
  521.                  
  522.  
  523.                  
  524.              
  525.            
  526.                  <li>
  527.                    <a href="/category/lifestyle/">
  528.                      Lifestyle
  529.                    </a>
  530.                  </li>
  531.                  
  532.  
  533.                  
  534.              
  535.            
  536.                  <li>
  537.                    <a href="/category/news/">
  538.                      News
  539.                    </a>
  540.                  </li>
  541.                  
  542.  
  543.                  
  544.              
  545.            
  546.                  <li>
  547.                    <a href="/category/others/">
  548.                      Others
  549.                    </a>
  550.                  </li>
  551.                  
  552.  
  553.                  
  554.              
  555.            
  556.                  <li>
  557.                    <a href="/category/politics/">
  558.                      Politics
  559.                    </a>
  560.                  </li>
  561.                  
  562.  
  563.                  
  564.              
  565.            
  566.                  <li>
  567.                    <a href="/category/sports/">
  568.                      Sports
  569.                    </a>
  570.                  </li>
  571.                  
  572.  
  573.                  
  574.              
  575.            
  576.                  <li>
  577.                    <a href="/category/tech/">
  578.                      Tech
  579.                    </a>
  580.                  </li>
  581.                  
  582.  
  583.                  
  584.              
  585.            
  586.                  <li>
  587.                    <a href="/category/travel/">
  588.                      Travel
  589.                    </a>
  590.                  </li>
  591.                  
  592.  
  593.                  
  594.                </ul>
  595.              </li>
  596.              
  597.              
  598.              
  599.              <li>
  600.                <a href="/page/contact-us/">
  601.                  Contact Us
  602.                </a>
  603.              </li>
  604.          </ul>
  605.        </div>
  606.        <!-- end of nav-collapse -->
  607.      </div>
  608.      <div class="col-lg-2 col-md-2 col-2">
  609.        <div class="header-right">
  610.          <div class="header-search-form-wrapper">
  611.            <div class="cart-search-contact"> <button class="search-toggle-btn"><i
  612.                  class="fi flaticon-magnifiying-glass text-link"></i></button>
  613.              <div class="header-search-form">
  614.                <form id="search-form">
  615.                  <div> <input type="text"  id="search-input" class="form-control" placeholder="Search here..." /> <button><i
  616.                        class="fi flaticon-magnifiying-glass"></i></button> </div>
  617.                </form>
  618.                <div id="search-results" class="search-v1 mt-2"></div>
  619.              </div>
  620.            </div>
  621.          </div>
  622.  
  623.          
  624.          <!-- <div class="header-right-menu-wrapper d-none d-md-flex">
  625.            <div class="header-right-menu">
  626.              <div class="right-menu-toggle-btn">
  627.                <span class="bg-link"></span>
  628.                <span class="bg-link"></span>
  629.                <span class="bg-link"></span>
  630.              </div>
  631.              <div class="header-right-menu-wrap z-1">
  632.                <button class="right-menu-close"><i class="ti-close"></i></button>
  633.                <div class="logo">
  634.                  <img src="/static/blogapp/assets/images/logo2.png" alt="" />
  635.                </div>
  636.                <div class="header-right-sec">
  637.                  <div class="project-widget widget">
  638.                    <h3 class="blog-color">Our Latest News</h3>
  639.                    <div class="posts">
  640.                      <div class="post">
  641.                        <div class="img-holder">
  642.                          <img src="/static/blogapp/assets/images/recent-posts/img-1.jpg" alt />
  643.                        </div>
  644.                        <div class="details">
  645.                          <span class="date blog-color">19 Jun 2022</span>
  646.                          <h4><a href="blog-single.html" class="blog-color">Perfect Photo Clicking Idea You Must
  647.                              Know.</a></h4>
  648.                        </div>
  649.                      </div>
  650.                      <div class="post">
  651.                        <div class="img-holder">
  652.                          <img src="/static/blogapp/assets/images/recent-posts/img-2.jpg" alt />
  653.                        </div>
  654.                        <div class="details">
  655.                          <span class="date blog-color">22 May 2022</span>
  656.                          <h4><a href="blog-single.html" class="blog-color">Best tourism site all over the world.</a>
  657.                          </h4>
  658.                        </div>
  659.                      </div>
  660.                      <div class="post">
  661.                        <div class="img-holder">
  662.                          <img src="/static/blogapp/assets/images/recent-posts/img-3.jpg" alt />
  663.                        </div>
  664.                        <div class="details">
  665.                          <span class="date blog-color">12 Apr 2022</span>
  666.                          <h4><a href="blog-single.html" class="blog-color">Whats In Trend in Now Woman Fashion.</a>
  667.                          </h4>
  668.                        </div>
  669.                      </div>
  670.                    </div>
  671.                  </div>
  672.                  <div class="widget wpo-contact-widget">
  673.                    <div class="widget-title">
  674.                      <h3 class="blog-color">Contact Us</h3>
  675.                    </div>
  676.                    <div class="contact-ft">
  677.                      <ul>
  678.                        <li>
  679.                          <i class="fi flaticon-location"></i>68D, Belsion Town 2365 <br /> Fna city, LH 3656, USA
  680.                        </li>
  681.                        <li>
  682.                          <i class="fi flaticon-telephone"></i>+ 8 (123) 123 456 789 <br />
  683.                          + 8 (123) 123 456 789
  684.                        </li>
  685.                        <li>
  686.                          <i class="fi flaticon-email"></i>Bloggar@gmail.com
  687.                        </li>
  688.                      </ul>
  689.                    </div>
  690.                  </div>
  691.                </div>
  692.              </div>
  693.              <div class="sidebar-blur"> </div>
  694.            </div>
  695.          </div> -->
  696.        </div>
  697.      </div>
  698.    </div>
  699.    <!-- end of container -->
  700. </nav>
  701. </nav>
  702. <style>
  703.  .navbar-brand img {
  704.    height: 70px;
  705.    object-fit: contain;
  706.  }
  707. </style>
  708. <script>
  709.  // jQuery or vanilla JavaScript to handle the AJAX search
  710.  document.getElementById("search-input").addEventListener("keyup", function (e) {
  711.    e.preventDefault();  // Prevent the form from submitting normally
  712.  
  713.    const query = document.getElementById("search-input").value;
  714.  // Check if the input field is empty
  715.    if (query === "") {
  716.      // Clear the search results if the input is empty
  717.      document.getElementById("search-results").innerHTML = "";
  718.      return; // Exit the function early to avoid making an AJAX request
  719.    }
  720.    // Send AJAX request
  721.    fetch("/search-posts?version=v1&q=" + encodeURIComponent(query), {
  722.      method: "GET",
  723.        headers: {
  724.          "X-Requested-With": "XMLHttpRequest",
  725.        },
  726.    })
  727.      .then(response => response.json())
  728.      .then(data => {
  729.        if (data.html) {
  730.          document.getElementById("search-results").innerHTML = data.html;
  731.        } else {
  732.          document.getElementById("search-results").innerHTML = "<p>No results found.</p>";
  733.        }
  734.      })
  735.      .catch(error => {
  736.        console.error("Error fetching search results:", error);
  737.      });
  738.  });
  739.  
  740. </script>
  741.  
  742.        </header>
  743.        <!-- end of header -->
  744.        <!-- start of wpo-blog-hero -->
  745.        
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.        <!-- end of wpo-blog-hero -->
  756.  
  757.        <!-- start of wpo-breacking-news -->
  758.        
  759.        <!-- end of wpo-breacking-news -->
  760.        
  761.        <!-- start wpo-blog-highlights-section -->
  762.        
  763.  
  764.  
  765.  
  766.    
  767.  
  768.  
  769.  <style>
  770.    /* Section Header */
  771.    .section-header-v9 {
  772.      text-align: center;
  773.      margin-bottom: 20px;
  774.    }
  775.    
  776.    .section-title-v9 {
  777.      font-size: 3rem;
  778.      font-weight: 700;
  779.      color: var(--topbar-color);
  780.      margin-bottom: 20px;
  781.      text-transform: uppercase;
  782.    }
  783.    
  784.    .section-subtitle-v9 {
  785.      font-size: 1.2rem;
  786.      color: var(--topbar-color);
  787.      opacity: 0.5;
  788.      max-width: 800px;
  789.      margin: 0 auto;
  790.      line-height: 1.8;
  791.    }
  792.        
  793.    /* Blog Card */
  794.    .blog-card-v9 {
  795.      background: var(--card-bg);
  796.      border: 1px solid var(--border-color);
  797.      border-radius: 8px;
  798.      margin-bottom: 30px;
  799.      overflow: hidden;
  800.      opacity: 0;
  801.      transition: opacity 0.5s ease, box-shadow 0.3s ease;
  802.    }
  803.    
  804.    .blog-card-v9.fade-in {
  805.      opacity: 1;
  806.    }
  807.    
  808.    @keyframes fadeIn {
  809.      from {
  810.        opacity: 0;
  811.      }
  812.      to {
  813.        opacity: 1;
  814.      }
  815.    }
  816.    
  817.    .blog-card-v9:hover {
  818.      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  819.    }
  820.    
  821.    /* Blog Image */
  822.    .blog-image-container-v9 {
  823.      width: 100%;
  824.      aspect-ratio: 16/9; /* 👈 maintains clean ratio */
  825.      overflow: hidden;
  826.    }
  827.    
  828.    .blog-image-v9 {
  829.      width: 100%;
  830.      height: 100%;
  831.    }
  832.    
  833.    .blog-image-v9 img {
  834.      width: 100%;
  835.      height: 100%;
  836.      object-fit: cover;
  837.      display: block;
  838.    }
  839.    
  840.    /* Blog Content */
  841.    .blog-content-v9 {
  842.      padding: 20px;
  843.    }
  844.    
  845.    .blog-title-v9 {
  846.      font-size: 1.2rem;
  847.      font-weight: 600;
  848.      margin-bottom: 15px;
  849.      color: var(--topbar-color) !important;
  850.      text-transform: capitalize;
  851.    }
  852.    
  853.    .blog-meta-v9 {
  854.      display: flex;
  855.      align-items: center;
  856.      gap: 10px;
  857.      font-size: 0.9rem;
  858.      color: var(--topbar-color);
  859.      margin-bottom: 10px;
  860.    }
  861.    
  862.    .blog-meta-v9 span {
  863.      display: inline-block;
  864.    }
  865.    
  866.    .blog-excerpt-v9 {
  867.      font-size: 1rem;
  868.      color: var(--topbar-color);
  869.      opacity: .6;
  870.      margin-bottom: 15px;
  871.      line-height: 1.6;
  872.    }
  873.    
  874.    .blog-actions-v9 {
  875.      display: flex;
  876.      justify-content: flex-start;
  877.    }
  878.    
  879.    .blog-read-more-v9 {
  880.      font-size: 1rem;
  881.      color: var(--topbar-color);
  882.      text-decoration: none;
  883.      transition: color 0.3s ease;
  884.    }
  885.    
  886.    .blog-read-more-v9:hover {
  887.      color: #2980b9 !important;
  888.    }
  889.    
  890.    /* Responsive Design */
  891.    @media (max-width: 768px) {
  892.      .section-title-v9 {
  893.        font-size: 2.5rem;
  894.      }
  895.    
  896.      .blog-card-v9 {
  897.        margin-bottom: 20px;
  898.      }
  899.    
  900.      .blog-meta-v9 {
  901.        font-size: 0.8rem;
  902.      }
  903.    
  904.      .blog-image-container-v9 {
  905.        aspect-ratio: 4/3; /* 👈 mobile friendly ratio */
  906.      }
  907.    }
  908.  </style>
  909.  
  910.  <section class="blog-highlights-v9 mt-5">
  911.    <div class="container-fluid fluid-container">
  912.      <!-- Section Header -->
  913.      <div class="row justify-content-center">
  914.        <div class="col-12 col-lg-10">
  915.          <div class="section-header-v9">
  916.            <h2 class="section-title-v9 mb-0">
  917.                Today's Top Highlights
  918.                   </h2>
  919.            <p class="section-subtitle-v9">Explore the intersection of technology and creativity through storytelling in the digital era.</p>
  920.          </div>
  921.        </div>
  922.      </div>
  923.  
  924.      <!-- Blog Grid -->
  925.      <div class="row ">
  926.        <div class="col-lg-8">
  927.          <div class="row d-flex justify-content-center">
  928.            
  929.            
  930.  
  931.          </div>
  932.        </div>
  933.  
  934.       <div class="col col-lg-4 col-12">
  935.                
  936.  
  937.  
  938.  
  939.    
  940.  
  941.  
  942. <!-- Blog Sidebar V2 - Focused Design -->
  943.  <div class="sidebar mb-3">
  944.    <!-- Recent Posts Section -->
  945.    <div class="sidebar-widget mb-4">
  946.      <div class="widget-title-wrapper mb-3">
  947.        <h4 class="widget-title bg-primary text-white  px-4 py-3 mb-0 position-relative">
  948.          <i class="ti-time me-2"></i>Recent Posts
  949.          <span class="title-arrow-primary"></span>
  950.        </h4>
  951.      </div>
  952.      <div class="widget-content border border-light shadow-sm rounded-3 p-4">
  953.        <div class="recent-post-list">
  954.          
  955.  
  956.        </div>
  957.  
  958.        <div class="text-center mt-4 pt-3 border-top border-light">
  959.          <a href="#" class="btn btn-primary btn-sm px-4"><i class="ti-plus me-1"></i>Load More Posts</a>
  960.        </div>
  961.      </div>
  962.    </div>
  963.  
  964.    
  965.  </div>
  966.  
  967. <!-- Sidebar V2 Styles -->
  968. <style>
  969.  .sidebar-widget {
  970.    position: relative;
  971.  }
  972.  
  973.  .widget-title {
  974.    font-size: 1.1rem;
  975.    font-weight: 700;
  976.    display: inline-block;
  977.    position: relative;
  978.    z-index: 2;
  979.    border-radius: 0;
  980.  }
  981.  
  982.  /* Green arrow for August Blog Roll */
  983.  .title-arrow::after {
  984.    content: '';
  985.    position: absolute;
  986.    top: 0;
  987.    right: -22px;
  988.    width: 0;
  989.    height: 0;
  990.    border-left: 22px solid var(--bs-primary);
  991.    border-top: 22px solid transparent;
  992.    border-bottom: 22px solid transparent;
  993.    z-index: 1;
  994.  }
  995.  
  996.  /* Blue arrow for Recent Posts */
  997.  .title-arrow-primary::after {
  998.    content: '';
  999.    position: absolute;
  1000.    top: 0;
  1001.    right: -22px;
  1002.    width: 0;
  1003.    height: 0;
  1004.    border-left: 22px solid var(--bs-primary);
  1005.    border-top: 22px solid transparent;
  1006.    border-bottom: 22px solid transparent;
  1007.    z-index: 1;
  1008.  }
  1009.  
  1010.  .widget-content {
  1011.    margin-top: -1px;
  1012.    position: relative;
  1013.    z-index: 1;
  1014.     background-color: var(--card-bg);
  1015.  }
  1016.  
  1017.  /* Blog Roll Items Hover Effects */
  1018.  .blog-roll-item:hover .blog-title {
  1019.    color: #198754 !important;
  1020.    transform: translateX(5px);
  1021.    transition: all 0.3s ease;
  1022.  }
  1023.  
  1024.  /* Recent Post Items Hover Effects */
  1025.  .recent-post-item:hover .post-title a {
  1026.    color: #0d6efd !important;
  1027.    transition: color 0.3s ease;
  1028.  }
  1029.  
  1030.  .recent-post-item:hover .post-image img {
  1031.    transform: scale(1.05);
  1032.    transition: transform 0.3s ease;
  1033.  }
  1034.  
  1035.  /* Button Hover Effects */
  1036.  .btn:hover {
  1037.    transform: translateY(-2px);
  1038.    transition: all 0.3s ease;
  1039.    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  1040.  }
  1041.  
  1042.  /* Badge Hover Effects */
  1043.  .badge:hover {
  1044.    transform: scale(1.05);
  1045.    transition: transform 0.3s ease;
  1046.  }
  1047.  
  1048.  @media (max-width: 991px) {
  1049.    .sidebar {
  1050.      margin-top: 3rem;
  1051.    }
  1052.  }
  1053.  
  1054.  @media (max-width: 576px) {
  1055.    .widget-title {
  1056.      font-size: 1rem;
  1057.      padding: 0.75rem 1rem !important;
  1058.    }
  1059.  
  1060.    .title-arrow::after,
  1061.    .title-arrow-primary::after {
  1062.      right: -18px;
  1063.      border-left-width: 18px;
  1064.      border-top-width: 18px;
  1065.      border-bottom-width: 18px;
  1066.    }
  1067.  
  1068.    .post-image {
  1069.      width: 70px !important;
  1070.      height: 55px !important;
  1071.    }
  1072.  
  1073.    .blog-meta {
  1074.      flex-direction: column !important;
  1075.      align-items: flex-start !important;
  1076.      gap: 0.5rem;
  1077.    }
  1078.  }
  1079. </style>
  1080.  
  1081.    
  1082.            </div>
  1083.      </div>
  1084.    </div>
  1085.  </section>
  1086.  
  1087.  <script>
  1088.    // Intersection Observer for Fade-in Effect
  1089.    document.addEventListener('DOMContentLoaded', function () {
  1090.      const observerOptions = {
  1091.        threshold: 0.2,
  1092.        rootMargin: '0px 0px -50px 0px'
  1093.      }
  1094.    
  1095.      const observer = new IntersectionObserver(function (entries, observer) {
  1096.        entries.forEach((entry) => {
  1097.          if (entry.isIntersecting) {
  1098.            entry.target.classList.add('fade-in')
  1099.            observer.unobserve(entry.target)
  1100.          }
  1101.        })
  1102.      }, observerOptions)
  1103.    
  1104.      document.querySelectorAll('.blog-card-v9').forEach((card) => {
  1105.        observer.observe(card)
  1106.      })
  1107.    })
  1108.  </script>
  1109.  
  1110.  
  1111.    
  1112.        
  1113.        <!-- end wpo-blog-highlights-section -->
  1114.        <!-- start wpo-blog-sponsored-section -->
  1115.        
  1116.  
  1117.  
  1118.  
  1119.    
  1120.  
  1121.  
  1122.    
  1123.        <!-- end wpo-blog-sponsored-section -->
  1124.        <!-- start wpo-subscribe-section -->
  1125.        
  1126.        <!-- end subscribe-section -->
  1127.        <!-- start of wpo-site-footer-section -->
  1128.        
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135. <!-- Footer V5 - Clean Minimalist Bootstrap Design -->
  1136. <footer class="footer-v5 bg-primary-gradient border-top">
  1137.    
  1138.    <!-- Main Footer Content -->
  1139.    <div class="container-fluid py-5">
  1140.        
  1141.        <!-- Top Section with Logo and Description -->
  1142.        <div class="row mb-5">
  1143.            <div class="col-12 text-center">
  1144.                <div class="footer-brand mb-4">
  1145.                    
  1146.                        <img src="https://usc1.contabostorage.com/83226f3934d449eb8c821d388b39f7b1:nextbacklinks/site_logos/3071d81b-f151-4a74-8969-2d9116126eae_logo.png" alt="Tech Pulse Blog" class="footer-logo mb-3" height="60">
  1147.                    
  1148.                    <h4 class="fw-bold footer-color mb-2">Tech Pulse Blog</h4>
  1149.                    <p class="footer-color opacity-50">Explore cutting-edge technology insights, innovation trends, and digital updates. Stay informed with expert analysis on emerging tech and industry developments.</p>
  1150.                </div>
  1151.            </div>
  1152.        </div>
  1153.  
  1154.        <!-- Content Grid -->
  1155.        <div class="d-flex justify-content-between flex-wrap gap-2 px-3">
  1156.            
  1157.            <!-- Quick Links Column -->
  1158.            <div class="">
  1159.                <div class="footer-section">
  1160.                    <h6 class="fw-bold footer-color mb-3 d-flex align-items-center">
  1161.                        Quick Links
  1162.                    </h6>
  1163.                    <ul class="list-unstyled footer-links">
  1164.                        
  1165.                        <li class="">No featured posts available</li>
  1166.                        
  1167.                    </ul>
  1168.                </div>
  1169.            </div>
  1170.  
  1171.            <!-- Resources Column -->
  1172.            <div class="">
  1173.                <div class="footer-section">
  1174.                    <h6 class="fw-bold footer-color mb-3 d-flex align-items-center">
  1175.                        Resources
  1176.                    </h6>
  1177.                   <ul class="footer-links" id="footerLinks">
  1178.        
  1179.        
  1180.  
  1181.        
  1182.        
  1183.        
  1184.        
  1185.    </ul>
  1186.                </div>
  1187.            </div>
  1188.  
  1189.            <!-- Categories Column -->
  1190.            <div class="">
  1191.                <div class="footer-section">
  1192.                    <h6 class="fw-bold footer-color mb-3 d-flex align-items-center">
  1193.                        Categories
  1194.                    </h6>
  1195.                    <div class="category-tags">
  1196.                      
  1197.                                <li>
  1198.                                    <a href="/category/all-posts/" class="footer-link footer-color">
  1199.                                        All Posts
  1200.                                    </a>
  1201.                                </li>
  1202.                                
  1203.                                <li>
  1204.                                    <a href="/category/business/" class="footer-link footer-color">
  1205.                                        Business
  1206.                                    </a>
  1207.                                </li>
  1208.                                
  1209.                                <li>
  1210.                                    <a href="/category/esports/" class="footer-link footer-color">
  1211.                                        Esports
  1212.                                    </a>
  1213.                                </li>
  1214.                                
  1215.                                <li>
  1216.                                    <a href="/category/fashion/" class="footer-link footer-color">
  1217.                                        Fashion
  1218.                                    </a>
  1219.                                </li>
  1220.                                
  1221.                                <li>
  1222.                                    <a href="/category/featured/" class="footer-link footer-color">
  1223.                                        Featured
  1224.                                    </a>
  1225.                                </li>
  1226.                                
  1227.                                <li>
  1228.                                    <a href="/category/gaming/" class="footer-link footer-color">
  1229.                                        Gaming
  1230.                                    </a>
  1231.                                </li>
  1232.                                
  1233.                    </div>
  1234.                </div>
  1235.            </div>
  1236.  
  1237.        </div>
  1238.  
  1239.    </div>
  1240.  
  1241.    <!-- Footer Bottom -->
  1242.    <div class="footer-bottom  border-top py-3">
  1243.        <div class="container-fluid fluid-container">
  1244.            <div class=" d-flex justify-content-between flex-wrap">
  1245.                <div class="">
  1246.                    <p class="mb-0 footer-color  ">
  1247.                        © 2026 <span class="fw-semibold footer-color">Tech Pulse Blog</span>. All rights reserved.
  1248.                    </p>
  1249.                </div>
  1250.                <div class="">
  1251.                    <div class="footer-nav">
  1252.                        <a href="/page/write-for-us/" class="text-decoration-none   me-3">
  1253.                            <i class="bi bi-file-text me-1"></i>Write For Us
  1254.                        </a>
  1255.                        <a href="/page/terms-and-conditions/" class="text-decoration-none   me-3">
  1256.                            <i class="bi bi-file-text me-1"></i>Terms
  1257.                        </a>
  1258.                        <a href="/sitemap.xml" class="text-decoration-none  ">
  1259.                            <i class="bi bi-diagram-3 me-1"></i>Sitemap
  1260.                        </a>
  1261.                    </div>
  1262.                </div>
  1263.            </div>
  1264.        </div>
  1265.    </div>
  1266.  
  1267. </footer>
  1268.  
  1269. <style>
  1270. /* Footer V5 - Clean Minimalist Bootstrap Design */
  1271.  
  1272.  
  1273.  
  1274.  
  1275. .footer-logo {
  1276.    border-radius: 8px;
  1277. }
  1278.  
  1279. /* Footer Sections */
  1280. .footer-section {
  1281.    padding: 0 15px;
  1282. }
  1283.  
  1284. .footer-section h6 {
  1285.    position: relative;
  1286.    padding-bottom: 8px;
  1287. }
  1288.  
  1289. .footer-section h6::after {
  1290.    content: '';
  1291.    position: absolute;
  1292.    bottom: 0;
  1293.    left: 0;
  1294.    width: 30px;
  1295.    height: 2px;
  1296.    background: linear-gradient(45deg, var(--bs-primary), var(--footer-color));
  1297.    border-radius: 1px;
  1298. }
  1299.  
  1300. /* Links Styling */
  1301. .footer-links a {
  1302.    transition: all 0.3s ease;
  1303.    padding: 4px 0;
  1304.    border-radius: 4px;
  1305. }
  1306.  
  1307. .footer-links a:hover {
  1308.    color: var(--bs-primary) !important;
  1309.    padding-left: 8px;
  1310. }
  1311.  
  1312. .footer-links a:hover i {
  1313.    transform: translateX(2px);
  1314. }
  1315.  
  1316. /* Category Tags */
  1317. .category-tag {
  1318.    transition: all 0.3s ease;
  1319.    padding: 6px 12px !important;
  1320.    font-size: 0.875rem;
  1321. }
  1322.  
  1323.  
  1324.  
  1325. /* Footer Bottom */
  1326. .footer-bottom {
  1327.    backdrop-filter: blur(10px);
  1328. }
  1329.  
  1330. /* Responsive Design */
  1331. @media (max-width: 768px) {
  1332.    .footer-v5 {
  1333.        margin-top: 60px;
  1334.    }
  1335.    
  1336.    .footer-section {
  1337.        text-align:start;
  1338.        margin-bottom: 40px;
  1339.    }
  1340.    
  1341.    .footer-links a,
  1342.    .category-tags {
  1343.        justify-content:start;
  1344.    }
  1345.    
  1346.    .social-links .d-flex {
  1347.        justify-content:start;
  1348.    }
  1349. }
  1350.  
  1351. @media (max-width: 576px) {
  1352.    .footer-brand h4 {
  1353.        font-size: 1.25rem;
  1354.    }
  1355.    
  1356.    .stats-item h5 {
  1357.        font-size: 1.1rem;
  1358.    }
  1359.    
  1360.    .newsletter-form .btn {
  1361.        padding: 8px 12px;
  1362.    }
  1363. }
  1364.  
  1365. /* Animation Classes */
  1366. .fade-in {
  1367.    animation: fadeIn 0.6s ease-in;
  1368. }
  1369.  
  1370. @keyframes fadeIn {
  1371.    from { opacity: 0; transform: translateY(20px); }
  1372.    to { opacity: 1; transform: translateY(0); }
  1373. }
  1374.  
  1375. /* Loading State */
  1376. .loading {
  1377.    pointer-events: none;
  1378.    opacity: 0.7;
  1379. }
  1380.  
  1381. .loading .btn {
  1382.    position: relative;
  1383. }
  1384.  
  1385. .loading .btn::after {
  1386.    content: '';
  1387.    position: absolute;
  1388.    top: 50%;
  1389.    left: 50%;
  1390.    width: 16px;
  1391.    height: 16px;
  1392.    margin: -8px 0 0 -8px;
  1393.    border: 2px solid transparent;
  1394.    border-top-color: currentColor;
  1395.    border-radius: 50%;
  1396.    animation: spin 1s linear infinite;
  1397. }
  1398.  
  1399. @keyframes spin {
  1400.    to { transform: rotate(360deg); }
  1401. }
  1402.  
  1403. /* Utility Classes */
  1404. .text-gradient {
  1405.    background: linear-gradient(45deg, var(--bs-primary), var(--bs-success));
  1406.    -webkit-background-clip: text;
  1407.    -webkit-text-fill-color: transparent;
  1408.    background-clip: text;
  1409. }
  1410.  
  1411. .hover-lift {
  1412.    transition: transform 0.3s ease;
  1413. }
  1414.  
  1415. .hover-lift:hover {
  1416.    transform: translateY(-2px);
  1417. }
  1418. </style>
  1419.  
  1420.  
  1421. <script>
  1422. document.addEventListener('DOMContentLoaded', function() {
  1423.    
  1424.    // Initialize Bootstrap tooltips
  1425.    const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
  1426.    tooltipTriggerList.map(function (tooltipTriggerEl) {
  1427.        return new bootstrap.Tooltip(tooltipTriggerEl);
  1428.    });
  1429.  
  1430.    // Newsletter form handling
  1431.    const newsletterForm = document.querySelector('.newsletter-form');
  1432.    if (newsletterForm) {
  1433.        newsletterForm.addEventListener('submit', function(e) {
  1434.            e.preventDefault();
  1435.            
  1436.            const email = this.querySelector('input[name="email"]').value.trim();
  1437.            const submitBtn = this.querySelector('button[type="submit"]');
  1438.            const originalContent = submitBtn.innerHTML;
  1439.            
  1440.            // Validate email
  1441.            if (!email || !isValidEmail(email)) {
  1442.                showToast('Please enter a valid email address', 'error');
  1443.                return;
  1444.            }
  1445.            
  1446.            // Show loading state
  1447.            this.classList.add('loading');
  1448.            submitBtn.innerHTML = '<span class="spinner-border spinner-border-sm me-1"></span>Subscribing...';
  1449.            submitBtn.disabled = true;
  1450.            
  1451.            // Simulate API call
  1452.            setTimeout(() => {
  1453.                // Success state
  1454.                submitBtn.innerHTML = '<i class="bi bi-check-lg me-1"></i>Subscribed!';
  1455.                submitBtn.classList.remove('btn-primary');
  1456.                submitBtn.classList.add('btn-success');
  1457.                
  1458.                showToast('Successfully subscribed to newsletter!', 'success');
  1459.                
  1460.                // Reset form
  1461.                setTimeout(() => {
  1462.                    this.classList.remove('loading');
  1463.                    submitBtn.innerHTML = originalContent;
  1464.                    submitBtn.classList.remove('btn-success');
  1465.                    submitBtn.classList.add('btn-primary');
  1466.                    submitBtn.disabled = false;
  1467.                    this.reset();
  1468.                }, 2000);
  1469.                
  1470.            }, 1500);
  1471.        });
  1472.    }
  1473.    
  1474.    // Email validation function
  1475.    function isValidEmail(email) {
  1476.        const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
  1477.        return emailRegex.test(email);
  1478.    }
  1479.    
  1480.    // Toast notification function
  1481.    function showToast(message, type = 'info') {
  1482.        // Remove existing toasts
  1483.        const existingToasts = document.querySelectorAll('.custom-toast');
  1484.        existingToasts.forEach(toast => toast.remove());
  1485.        
  1486.        // Create toast
  1487.        const toast = document.createElement('div');
  1488.        toast.className = `custom-toast position-fixed top-0 end-0 m-3 alert alert-${type === 'error' ? 'danger' : type} alert-dismissible fade show`;
  1489.        toast.style.zIndex = '9999';
  1490.        toast.innerHTML = `
  1491.            <div class="d-flex align-items-center">
  1492.                <i class="bi bi-${type === 'success' ? 'check-circle-fill' : type === 'error' ? 'exclamation-triangle-fill' : 'info-circle-fill'} me-2"></i>
  1493.                <span>${message}</span>
  1494.                <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
  1495.            </div>
  1496.        `;
  1497.        
  1498.        document.body.appendChild(toast);
  1499.        
  1500.        // Auto remove after 4 seconds
  1501.        setTimeout(() => {
  1502.            if (toast && toast.parentNode) {
  1503.                toast.remove();
  1504.            }
  1505.        }, 4000);
  1506.    }
  1507.    
  1508.    // Smooth scroll for internal links
  1509.    document.querySelectorAll('a[href^="#"]').forEach(anchor => {
  1510.        anchor.addEventListener('click', function(e) {
  1511.            e.preventDefault();
  1512.            const target = document.querySelector(this.getAttribute('href'));
  1513.            if (target) {
  1514.                target.scrollIntoView({
  1515.                    behavior: 'smooth',
  1516.                    block: 'start'
  1517.                });
  1518.            }
  1519.        });
  1520.    });
  1521.    
  1522.    // Add fade-in animation to footer sections on scroll
  1523.    const observerOptions = {
  1524.        threshold: 0.1,
  1525.        rootMargin: '0px 0px -50px 0px'
  1526.    };
  1527.    
  1528.    const sectionObserver = new IntersectionObserver((entries) => {
  1529.        entries.forEach(entry => {
  1530.            if (entry.isIntersecting) {
  1531.                entry.target.classList.add('fade-in');
  1532.            }
  1533.        });
  1534.    }, observerOptions);
  1535.    
  1536.    // Observe footer sections
  1537.    document.querySelectorAll('.footer-section, .stats-item').forEach(section => {
  1538.        sectionObserver.observe(section);
  1539.    });
  1540.    
  1541.    // Enhanced hover effects for category tags
  1542.    document.querySelectorAll('.category-tag').forEach(tag => {
  1543.        tag.addEventListener('mouseenter', function() {
  1544.            this.style.transform = 'translateY(-2px) scale(1.02)';
  1545.        });
  1546.        
  1547.        tag.addEventListener('mouseleave', function() {
  1548.            this.style.transform = 'translateY(0) scale(1)';
  1549.        });
  1550.    });
  1551.    
  1552.    // Prevent default for demo links
  1553.    document.querySelectorAll('a[href="#"]').forEach(link => {
  1554.        link.addEventListener('click', function(e) {
  1555.            e.preventDefault();
  1556.        });
  1557.    });
  1558.    
  1559.    // Add click ripple effect to buttons
  1560.    document.querySelectorAll('.btn').forEach(btn => {
  1561.        btn.addEventListener('click', function(e) {
  1562.            const ripple = document.createElement('span');
  1563.            const rect = this.getBoundingClientRect();
  1564.            const size = Math.max(rect.width, rect.height);
  1565.            const x = e.clientX - rect.left - size / 2;
  1566.            const y = e.clientY - rect.top - size / 2;
  1567.            
  1568.            ripple.style.cssText = `
  1569.                position: absolute;
  1570.                left: ${x}px;
  1571.                top: ${y}px;
  1572.                width: ${size}px;
  1573.                height: ${size}px;
  1574.                border-radius: 50%;
  1575.                background: rgba(255, 255, 255, 0.4);
  1576.                transform: scale(0);
  1577.                animation: ripple-effect 0.6s linear;
  1578.                pointer-events: none;
  1579.            `;
  1580.            
  1581.            this.style.position = 'relative';
  1582.            this.style.overflow = 'hidden';
  1583.            this.appendChild(ripple);
  1584.            
  1585.            setTimeout(() => ripple.remove(), 600);
  1586.        });
  1587.    });
  1588.    
  1589. });
  1590.  
  1591. // Add ripple animation CSS
  1592. const rippleCSS = document.createElement('style');
  1593. rippleCSS.textContent = `
  1594.    @keyframes ripple-effect {
  1595.        to {
  1596.            transform: scale(4);
  1597.            opacity: 0;
  1598.        }
  1599.    }
  1600. `;
  1601. document.head.appendChild(rippleCSS);
  1602.  
  1603. document.addEventListener('DOMContentLoaded', function () {
  1604.    var btn = document.getElementById('toggleFooterLinks');
  1605.    if (!btn) return; // No extra links, no button
  1606.  
  1607.    var extras = document.querySelectorAll('#footerLinks li.extra');
  1608.  
  1609.    btn.addEventListener('click', function () {
  1610.        var anyHidden = Array.prototype.some.call(extras, function (li) {
  1611.            return li.classList.contains('d-none');
  1612.        });
  1613.  
  1614.        extras.forEach(function (li) {
  1615.            if (anyHidden) {
  1616.                li.classList.remove('d-none');
  1617.                li.classList.add('show');
  1618.            } else {
  1619.                li.classList.add('d-none');
  1620.                li.classList.remove('show');
  1621.            }
  1622.        });
  1623.  
  1624.        btn.textContent = anyHidden ? 'View less' : 'View more';
  1625.        btn.setAttribute('aria-expanded', anyHidden ? 'true' : 'false');
  1626.    });
  1627. });
  1628.  
  1629. </script>
  1630.  
  1631.        <!-- end of wpo-site-footer-section -->
  1632.    </div>
  1633.    <!-- end of page-wrapper -->
  1634.  
  1635.    <!-- All JavaScript files
  1636.    ================================================== -->
  1637.    
  1638.  
  1639. <script src="/static/blogapp/assets/js/jquery.min.js"></script>
  1640. <script src="/static/blogapp/assets/js/bootstrap.bundle.min.js"></script>
  1641. <!-- Plugins for this template -->
  1642. <script src="/static/blogapp/assets/js/modernizr.custom.js"></script>
  1643. <script src="/static/blogapp/assets/js/jquery-plugin-collection.js"></script>
  1644. <!-- Custom script for this template -->
  1645. <script src="/static/blogapp/assets/js/script.js"></script>
  1646.  
  1647. <script>
  1648. (function () {
  1649. var fallbackImageSrc = "/static/blogapp/assets/images/breaking-news/img-1.jpg";
  1650. console.log("[ImageFallback] Initialized with fallback:", fallbackImageSrc);
  1651.  
  1652. function applyFallback(img) {
  1653. if (!img || img.dataset.fallbackApplied === "1") {
  1654. return;
  1655. }
  1656. var failedSrc = img.currentSrc || img.src || "";
  1657. img.dataset.fallbackApplied = "1";
  1658. img.onerror = null;
  1659. img.src = fallbackImageSrc;
  1660. console.warn("[ImageFallback] Replaced broken image:", {
  1661. failedSrc: failedSrc,
  1662. fallbackSrc: fallbackImageSrc,
  1663. alt: img.alt || "",
  1664. });
  1665. }
  1666.  
  1667. document.querySelectorAll("img").forEach(function (img) {
  1668. if (img.complete && img.naturalWidth === 0) {
  1669. console.warn("[ImageFallback] Found broken image at load, applying fallback.", {
  1670. failedSrc: img.currentSrc || img.src || "",
  1671. alt: img.alt || "",
  1672. });
  1673. applyFallback(img);
  1674. }
  1675. });
  1676.  
  1677. document.addEventListener(
  1678. "error",
  1679. function (event) {
  1680. var target = event.target;
  1681. if (target && target.tagName === "IMG") {
  1682. applyFallback(target);
  1683. }
  1684. },
  1685. true
  1686. );
  1687. })();
  1688. </script>
  1689.  
  1690. <!-- <script src="https://api-new.nextbacklinks.com/static/ads/ad-script.js"></script> -->
  1691.  
  1692.  
  1693.  
  1694. <script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"0e87acbc4da547bf97dc93d9828cb657","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
  1695. </body>
  1696.  
  1697. </html>
  1698.  
  1699.  
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda