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://889993044.xyz

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