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

  1.  
  2.  
  3.  
  4. <!DOCTYPE html>
  5. <html lang="en" data-font-scheme="hind">
  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-28T165506.792_qpSb3g0_t7EsV5Z_EJ7mAIK_lcWPm3V.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 insightful articles on innovation. Stay updated with expert analysis and practical tech tips.">
  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://889993281.xyz/">
  36.    <!-- Dynamic CSS Override -->
  37.    
  38. <style>
  39.    :root {
  40.        /* Bootstrap 5 Color Overrides */
  41.        --bs-primary: #52b788;
  42.        --bs-primary-rgb: 52b788;
  43.        --bs-secondary: #5f6a7d;
  44.        --bs-success: #219ebc;
  45.        --bs-danger: #e63946;
  46.        --bs-warning: #f4a261;
  47.        --bs-info: #457b9d;
  48.        --bs-light: #f0f4f2;
  49.        --bs-dark: #1b263b;
  50.        
  51.        /* Your SCSS Variables Override */
  52.        --theme-primary-color: #52b788;
  53.        --theme-primary-color-s2: #52b788;
  54.        --body-bg-color: #ffffff;
  55.        --section-bg-color: #f9faff;
  56.        --text-color: #1b263b;
  57.        --text-light-color: #676767;
  58.        --heading-color: #1b263b;
  59.        --border-color: #c4d6cc;
  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: #e3e7eb;
  75.        --navbar-color: #1b263b;
  76.        --topbar-bg: #f0f4f2;
  77.        --topbar-color: #1b263b;
  78.        --footer-bg: #1b263b;
  79.        --footer-color: #ffffff;
  80.        --card-bg: #ffffff;
  81.        --card-border: #c4d6cc;
  82.        --card-radius: 10px;
  83.        --link-color: #52b788;
  84.        --link-hover: #3d9970;
  85.        --blog-color: #ffffff;
  86.        --blog-bg: rgba(82, 183, 136, 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_18">
  389.    <div id="healthcheck"></div>
  390.    <!-- start page-wrapper -->
  391.    <div class="page-wrapper">
  392.        
  393.            <!-- start preloader -->
  394.                
  395. <div class="preloader" style="z-index: 1025;">
  396.    <div class="angular-shape">
  397.        <div></div>
  398.        <div></div>
  399.        <div></div>
  400.    </div>
  401.    <div class="spinner">
  402.        <div class="double-bounce1"></div>
  403.        <div class="double-bounce2"></div>
  404.    </div>
  405. </div>  
  406.  
  407.            <!-- end preloader -->
  408.        
  409.        <!-- Start header -->
  410.        <header id="header" class="wpo-site-header">
  411.            
  412.  
  413.  
  414.    
  415.  
  416.  
  417.  
  418.  
  419.            
  420.  
  421.  
  422.  
  423.  
  424.  
  425. <header class="sticky-top mb-sm-5 mb-4  nav-bg">
  426.  <div class="container-fluid fluid-container  ">
  427.    <nav class="nav-v1 navbar custom-nav navbar-expand-xl" role="navigation" aria-label="Main Navigation">
  428.      <div class="py-2 d-flex gap-2 justify-content-between align-items-center nav-width">
  429.        <!-- Mobile Brand & Search -->
  430.        <a class="brand-1 navbar-brand d-xl-none" href="/" aria-label="Home">
  431.          
  432.          <img src="https://usc1.contabostorage.com/83226f3934d449eb8c821d388b39f7b1:nextbacklinks/site_logos/9e0d940e-9ff5-459f-9ad9-2533a85fb439_logo.png" alt="Tech Insights Blog" />
  433.          
  434.        </a>
  435.        <div class="flex-grow-1 d-xl-none d-flex">
  436.          <form class="search-wrapper-v1">
  437.            <input type="search" class="form-control search-input-v1" id="search-input"
  438.              placeholder="Search articles..." aria-label="Search content" />
  439.            <svg class="search-icon-v1" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
  440.              <circle cx="11" cy="11" r="8"></circle>
  441.              <path d="m21 21-4.35-4.35"></path>
  442.            </svg>
  443.          </form>
  444.          <!-- The search results will be displayed here -->
  445.          <div id="search-results" class="search-results-container"></div>
  446.        </div>
  447.  
  448.        <button class="navbar-toggler border-0 text-link" type="button" data-bs-toggle="collapse"
  449.          data-bs-target="#navCollapse-v1" aria-controls="navCollapse-v1" aria-expanded="false"
  450.          aria-label="Toggle navigation">
  451.          <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
  452.            <line x1="3" y1="6" x2="21" y2="6"></line>
  453.            <line x1="3" y1="12" x2="21" y2="12"></line>
  454.            <line x1="3" y1="18" x2="21" y2="18"></line>
  455.          </svg>
  456.        </button>
  457.  
  458.        <!-- Desktop Layout -->
  459.        <a class="brandv1 navbar-brand d-none d-xl-block me-4" href='/' aria-label="Home">
  460.          <img src="https://usc1.contabostorage.com/83226f3934d449eb8c821d388b39f7b1:nextbacklinks/site_logos/9e0d940e-9ff5-459f-9ad9-2533a85fb439_logo.png" alt="" />
  461.        </a>
  462.  
  463.        <div class="d-none d-xl-flex flex-grow-1 flex-wrap">
  464.          <form class="search-wrapper-v1" action="#" method="get" role="search">
  465.            <input type="text" id="search-input1" class="form-control search-input-v1" placeholder="Search articles..." />
  466.            <svg class="search-icon-v1" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
  467.              <circle cx="11" cy="11" r="8"></circle>
  468.              <path d="m21 21-4.35-4.35"></path>
  469.            </svg>
  470.          </form>
  471.           <!-- The search results will be displayed here -->
  472.          <div id="search-results1" class="search-results-container search-v1"></div>
  473.        </div>
  474.        <!-- Navigation Menu -->
  475.      </div>
  476.      <div class="collapse justify-content-end" id="navCollapse-v1">
  477.        <ul class="navbar-nav gap-2 pt-3 mb-lg-0 align-items-xl-center">
  478.          <!-- <li class="nav-item d-xl-block d-none mb-3">
  479.            <div class="d-xl-flex align-items-center gap-2">
  480.              <button class="btn menu-btn-v1 d-none d-xl-flex align-items-center gap-2" type="button"
  481.                data-bs-toggle="offcanvas" data-bs-target="#sidebar-v1" aria-controls="sidebar-v1">
  482.                <span>More</span>
  483.                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
  484.                  <circle cx="12" cy="12" r="1"></circle>
  485.                  <circle cx="19" cy="12" r="1"></circle>
  486.                  <circle cx="5" cy="12" r="1"></circle>
  487.                </svg>
  488.              </button>
  489.            </div>
  490.          </li> -->
  491.          <li class="nav-item mb-3">
  492.            <a class="navlink-v1" href="/">
  493.              Home
  494.            </a>
  495.          </li>
  496.          
  497.           <li class="nav-item mb-3">
  498.            <a class="navlink-v1" href="/category/all-posts/">
  499.              All Posts
  500.            </a>
  501.            </li>
  502.            
  503.  
  504.                
  505.                
  506.            
  507.           <li class="nav-item mb-3">
  508.            <a class="navlink-v1" href="/category/business/">
  509.              Business
  510.            </a>
  511.            </li>
  512.            
  513.  
  514.                
  515.                
  516.            
  517.           <li class="nav-item mb-3">
  518.            <a class="navlink-v1" href="/category/esports/">
  519.              Esports
  520.            </a>
  521.            </li>
  522.            
  523.  
  524.                
  525.                
  526.            
  527.           <li class="nav-item mb-3">
  528.            <a class="navlink-v1" href="/category/fashion/">
  529.              Fashion
  530.            </a>
  531.            </li>
  532.            
  533.  
  534.                
  535.                
  536.            
  537.           <li class="nav-item mb-3">
  538.            <a class="navlink-v1" href="/category/featured/">
  539.              Featured
  540.            </a>
  541.            </li>
  542.            
  543.  
  544.                
  545.                
  546.            
  547.          
  548.            <li class="nav-item mb-3 dropdown">
  549.              <a class="navlink-v1 dropdown-toggle" href="#" id="moreDropdown-v1" role="button"
  550.                data-bs-toggle="dropdown" aria-expanded="false">More</a>
  551.              <ul class="dropdown-menu dropdown-v1" aria-labelledby="moreDropdown-v1">
  552.                <li>
  553.                  <a class="dropdown-item dropdown-item-v1" href="/category/gaming/">
  554.                    Gaming
  555.                  </a>
  556.                </li>
  557.                
  558.  
  559.                
  560.                
  561.            
  562.          
  563.                <li>
  564.                  <a class="dropdown-item dropdown-item-v1" href="/category/health/">
  565.                    Health
  566.                  </a>
  567.                </li>
  568.                
  569.  
  570.                
  571.                
  572.            
  573.          
  574.                <li>
  575.                  <a class="dropdown-item dropdown-item-v1" href="/category/life-fitness/">
  576.                    Life &amp; Fitness
  577.                  </a>
  578.                </li>
  579.                
  580.  
  581.                
  582.                
  583.            
  584.          
  585.                <li>
  586.                  <a class="dropdown-item dropdown-item-v1" href="/category/lifestyle/">
  587.                    Lifestyle
  588.                  </a>
  589.                </li>
  590.                
  591.  
  592.                
  593.                
  594.            
  595.          
  596.                <li>
  597.                  <a class="dropdown-item dropdown-item-v1" href="/category/news/">
  598.                    News
  599.                  </a>
  600.                </li>
  601.                
  602.  
  603.                
  604.                
  605.            
  606.          
  607.                <li>
  608.                  <a class="dropdown-item dropdown-item-v1" href="/category/others/">
  609.                    Others
  610.                  </a>
  611.                </li>
  612.                
  613.  
  614.                
  615.                
  616.            
  617.          
  618.                <li>
  619.                  <a class="dropdown-item dropdown-item-v1" href="/category/politics/">
  620.                    Politics
  621.                  </a>
  622.                </li>
  623.                
  624.  
  625.                
  626.                
  627.            
  628.          
  629.                <li>
  630.                  <a class="dropdown-item dropdown-item-v1" href="/category/sports/">
  631.                    Sports
  632.                  </a>
  633.                </li>
  634.                
  635.  
  636.                
  637.                
  638.            
  639.          
  640.                <li>
  641.                  <a class="dropdown-item dropdown-item-v1" href="/category/tech/">
  642.                    Tech
  643.                  </a>
  644.                </li>
  645.                
  646.  
  647.                
  648.                
  649.            
  650.          
  651.                <li>
  652.                  <a class="dropdown-item dropdown-item-v1" href="/category/travel/">
  653.                    Travel
  654.                  </a>
  655.                </li>
  656.                
  657.  
  658.                
  659.                
  660.              </ul>
  661.            </li>
  662.            
  663.            
  664.            <li class="nav-item mb-3">
  665.              <a class="navlink-v1" href="/page/contact-us/">
  666.                Contact Us
  667.              </a>
  668.            </li>
  669.            <li class="nav-item d-xl-none mt-2">
  670.              <button class="btn menu-btn-v1 w-100" type="button" data-bs-toggle="offcanvas"
  671.                data-bs-target="#sidebar-v1">
  672.                More Options
  673.              </button>
  674.            </li>
  675.        </ul>
  676.      </div>
  677.    </nav>
  678.  </div>
  679.  
  680. </header>
  681.  
  682. <!-- Sidebar -->
  683. <div class="offcanvas offcanvas-end offcanvas-v1" tabindex="-1" id="sidebar-v1" aria-labelledby="sidebarLabel-v1">
  684.  <div class="offcanvas-header border-bottom">
  685.    <h5 class="offcanvas-title fw-semibold" id="sidebarLabel-v1">
  686.      Latest Updates
  687.    </h5>
  688.    <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
  689.  </div>
  690.  <div class="offcanvas-body p-3">
  691.    <div class="mb-4">
  692.      <h6 class="fw-semibold mb-3 text-muted">Featured Posts</h6>
  693.      <div class="vstack gap-3">
  694.        <article class="post-card-v1 d-flex gap-3">
  695.          <img src="https://picsum.photos/seed/tech1/80/64" alt="" class="post-img-v1" width="80" height="64" />
  696.          <div class="flex-grow-1">
  697.            <small class="text-muted">2 hours ago</small>
  698.            <h6 class="mb-1 lh-sm">
  699.              <a href="#" class="text-decoration-none text-dark">Modern Web Development Trends</a>
  700.            </h6>
  701.            <small class="text-muted">Technology</small>
  702.          </div>
  703.        </article>
  704.  
  705.        <article class="post-card-v1 d-flex gap-3">
  706.          <img src="https://picsum.photos/seed/design1/80/64" alt="" class="post-img-v1" width="80" height="64" />
  707.          <div class="flex-grow-1">
  708.            <small class="text-muted">5 hours ago</small>
  709.            <h6 class="mb-1 lh-sm">
  710.              <a href="#" class="text-decoration-none text-dark">UI Design Best Practices</a>
  711.            </h6>
  712.            <small class="text-muted">Design</small>
  713.          </div>
  714.        </article>
  715.  
  716.        <article class="post-card-v1 d-flex gap-3">
  717.          <img src="https://picsum.photos/seed/life1/80/64" alt="" class="post-img-v1" width="80" height="64" />
  718.          <div class="flex-grow-1">
  719.            <small class="text-muted">1 day ago</small>
  720.            <h6 class="mb-1 lh-sm">
  721.              <a href="#" class="text-decoration-none text-dark">Minimalist Living Tips</a>
  722.            </h6>
  723.            <small class="text-muted">Lifestyle</small>
  724.          </div>
  725.        </article>
  726.      </div>
  727.    </div>
  728.  
  729.    <hr />
  730.  
  731.    <div class="contact-info-v1">
  732.      <h6 class="fw-semibold mb-3">Get in Touch</h6>
  733.      <div class="small text-muted lh-lg">
  734.        <div class="mb-2">
  735.          <strong>Location:</strong><br />
  736.          123 Innovation Street<br />
  737.          Tech District, CA 94105
  738.        </div>
  739.        <div class="mb-2">
  740.          <strong>Email:</strong><br />
  741.          <a href="/cdn-cgi/l/email-protection#aec6cbc2c2c1eeccdccfc0ca80cdc1c3" class="text-decoration-none"><span class="__cf_email__" data-cfemail="345c5158585b745646555a501a575b59">[email&#160;protected]</span></a>
  742.        </div>
  743.        <div>
  744.          <strong>Phone:</strong><br />
  745.          <a href="tel:+1234567890" class="text-decoration-none">+1 (234) 567-890</a>
  746.        </div>
  747.      </div>
  748.    </div>
  749.  </div>
  750. </div>
  751.  
  752. <!-- Custom CSS -->
  753. <style>
  754.  .navbar {
  755.    padding-inline: 20px;
  756.  }
  757.  
  758.  .nav-v1 {
  759.    backdrop-filter: blur(12px);
  760.  }
  761.  
  762.  .brand-v1 img {
  763.    height: 32px;
  764.    transition: transform 0.3s ease;
  765.  }
  766.  
  767.  .brand-v1:hover img {
  768.    transform: scale(1.05);
  769.  }
  770.  
  771.  .search-wrapper-v1 {
  772.    max-width: 600px;
  773.    position: relative;
  774.  }
  775.  
  776.  .search-input-v1 {
  777.    padding: 10px 16px 10px 42px;
  778.    border: 1px solid #e2e8f0;
  779.    border-radius: 24px;
  780.    font-size: 14px;
  781.    transition: all 0.3s ease;
  782.    background: white;
  783.    width: 100%;
  784.    max-width: 400px;
  785.  }
  786.  
  787.  .search-input-v1:focus {
  788.    border-color: #2563eb;
  789.    outline: none;
  790.    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
  791.    transform: translateY(-1px);
  792.  }
  793.  
  794.  .search-icon-v1 {
  795.    position: absolute;
  796.    left: 14px;
  797.    top: 50%;
  798.    transform: translateY(-50%);
  799.    color: #64748b;
  800.    width: 16px;
  801.    height: 16px;
  802.  }
  803.  
  804.  .navlink-v1 {
  805.    color: #374151;
  806.    font-weight: 500;
  807.    font-size: 15px;
  808.    padding: 8px 16px;
  809.    border-radius: 12px;
  810.    transition: all 0.2s ease;
  811.    text-decoration: none;
  812.    position: relative;
  813.  }
  814.  
  815.  .navlink-v1:hover {
  816.    background: rgba(37, 99, 235, 0.1);
  817.    color: #2563eb;
  818.    transform: translateY(-1px);
  819.  }
  820.  
  821.  .navlink-v1.active-v1 {
  822.    background: #2563eb;
  823.    color: white !important;
  824.  }
  825.  
  826.  .dropdown-v1 {
  827.    border: 1px solid #e2e8f0;
  828.    border-radius: 16px;
  829.    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
  830.    backdrop-filter: blur(8px);
  831.    background: rgba(255, 255, 255, 0.98);
  832.    padding: 8px 0;
  833.  }
  834.  
  835.  .dropdown-item-v1 {
  836.    padding: 8px 20px;
  837.    font-size: 14px;
  838.    color: #374151 !important;
  839.    transition: all 0.2s ease;
  840.    border-radius: 8px;
  841.    margin: 2px 0px;
  842.  }
  843.  
  844.  .dropdown-item-v1:hover {
  845.    background: rgba(37, 99, 235, 0.1);
  846.    color: #2563eb !important;
  847.  }
  848.  
  849.  .menu-btn-v1 {
  850.    padding: 8px 16px;
  851.    border: 1px solid #e2e8f0;
  852.    border-radius: 12px;
  853.    background: white;
  854.    color: #374151;
  855.    font-weight: 500;
  856.    transition: all 0.2s ease;
  857.  }
  858.  
  859.  .menu-btn-v1:hover {
  860.    border-color: #2563eb;
  861.    color: #2563eb;
  862.    box-shadow: 0 2px 8px rgba(37, 99, 235, 0.15);
  863.  }
  864.  
  865.  .offcanvas-v1 {
  866.    width: min(360px, 90vw);
  867.    background: white;
  868.    z-index: 1050;
  869.  }
  870.  
  871.  .post-card-v1 {
  872.    padding: 12px;
  873.    border-radius: 12px;
  874.    transition: all 0.2s ease;
  875.    border: 1px solid transparent;
  876.  }
  877.  
  878.  .post-card-v1:hover {
  879.    background: #f8fafc;
  880.    border-color: #e2e8f0;
  881.  }
  882.  
  883.  .post-img-v1 {
  884.    border-radius: 8px;
  885.    transition: transform 0.3s ease;
  886.  }
  887.  
  888.  .post-card-v1:hover .post-img-v1 {
  889.    transform: scale(1.02);
  890.  }
  891.  
  892.  .contact-info-v1 {
  893.    background: #f8fafc;
  894.    padding: 16px;
  895.    border-radius: 12px;
  896.    border: 1px solid #e2e8f0;
  897.  }
  898.  
  899.  @media (max-width: 1200px) {
  900.    .nav-width {
  901.      width: 100%;
  902.    }
  903.  }
  904.  
  905.  @media (max-width: 991px) {
  906.    .navlink-v1 {
  907.      padding: 12px 16px;
  908.      margin: 2px 0;
  909.    }
  910.  
  911.    .search-wrapper-v1 {
  912.      margin: 12px 0;
  913.    }
  914.  }
  915.  
  916.  /* search field */
  917.  .search-results-container {
  918.    position: absolute;
  919.    top: 100%;
  920.    /* Position it below the input field */
  921. left: 10px;
  922.  right: 10px;
  923.    background-color: white;
  924.    border: 1px solid #ddd;
  925.    box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
  926.    max-height: 300px;
  927.    overflow-y: auto;
  928.    z-index: 1000;
  929.    display: none;
  930.    /* Initially hidden */
  931.  }
  932.  
  933.  .search-results-container p {
  934.    margin: 0;
  935.  }
  936.  
  937.  .search-results-container .result-item {
  938.    padding: 10px;
  939.    cursor: pointer;
  940.  }
  941.  
  942.  .search-results-container .result-item:hover {
  943.    background-color: #f0f0f0;
  944.  }
  945. </style>
  946. <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
  947.  document.addEventListener("DOMContentLoaded", function () {
  948.    console.error("loaded");
  949.  
  950.    // Pick input depending on screen size
  951.    const searchInput = window.innerWidth <= 991
  952.      ? document.getElementById("search-input")
  953.      : document.getElementById("search-input1");
  954.  
  955.    if (searchInput) {
  956.      console.log("inside");
  957.  
  958.      // Add event listener for keyup
  959.      searchInput.addEventListener("keyup", function (e) {
  960.        console.log('test');
  961.        console.log("Key pressed:", e.key);
  962.        e.preventDefault();
  963.  
  964.        const query = searchInput.value;
  965.        const searchResults = window.innerWidth <= 991
  966.          ? document.getElementById("search-results")
  967.          : document.getElementById("search-results1");
  968.  
  969.        console.log("User is typing: " + query);
  970.  
  971.        if (query === "") {
  972.          searchResults.innerHTML = "";
  973.          searchResults.style.display = "none";
  974.          return;
  975.        }
  976.  
  977.        searchResults.style.display = "block";
  978.  
  979.        fetch("/search-posts?version=v1&q=" + encodeURIComponent(query), {
  980.          method: "GET",
  981.          headers: {
  982.            "X-Requested-With": "XMLHttpRequest",
  983.          },
  984.        })
  985.          .then(response => {
  986.            console.log("Response Status:", response.status);
  987.            return response.json();
  988.          })
  989.          .then(data => {
  990.            console.log("Data received:", data);
  991.            if (data.html) {
  992.              searchResults.innerHTML = data.html;
  993.            } else {
  994.              searchResults.innerHTML = "<p>No results found.</p>";
  995.            }
  996.          })
  997.          .catch(error => {
  998.            console.error("Error fetching search results:", error);
  999.          });
  1000.      });
  1001.  
  1002.      // 🔹 Close results when clicking outside
  1003.      document.addEventListener("click", function (e) {
  1004.        const searchResults = window.innerWidth <= 991
  1005.          ? document.getElementById("search-results")
  1006.          : document.getElementById("search-results1");
  1007.  
  1008.        if (searchResults && !searchInput.contains(e.target) && !searchResults.contains(e.target)) {
  1009.          searchResults.style.display = "none";
  1010.        }
  1011.      });
  1012.  
  1013.    } else {
  1014.      console.error("Search input not found");
  1015.    }
  1016.  });
  1017. </script>
  1018. <script>
  1019.  // Function to check screen size and remove 'navbar-collapse' class
  1020.  function removeNavbarCollapseClass() {
  1021.    const navbar = document.getElementById('navCollapse-v1');
  1022.    // Check if screen width is greater than or equal to 1024px (Bootstrap's lg breakpoint)
  1023.    if (window.innerWidth <= 1100) {
  1024.      if (navbar) {
  1025.        navbar.classList.remove('navbar-collapse');
  1026.      }
  1027.    } else {
  1028.      // You can re-add the class if the screen is smaller than 'lg' size
  1029.      if (navbar) {
  1030.        navbar.classList.add('navbar-collapse');
  1031.      }
  1032.    }
  1033.  }
  1034.  
  1035.  // Run the function on page load
  1036.  window.addEventListener('load', removeNavbarCollapseClass);
  1037.  
  1038.  // Also, run the function on window resize to check screen size dynamically
  1039.  window.addEventListener('resize', removeNavbarCollapseClass);
  1040.  
  1041.  
  1042. </script>
  1043.  
  1044.        </header>
  1045.        <!-- end of header -->
  1046.        <!-- start of wpo-blog-hero -->
  1047.        
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.        <!-- end of wpo-blog-hero -->
  1058.  
  1059.        <!-- start of wpo-breacking-news -->
  1060.        
  1061.        <!-- end of wpo-breacking-news -->
  1062.        
  1063.        <!-- start wpo-blog-highlights-section -->
  1064.        
  1065.  
  1066.  
  1067.  
  1068.    
  1069.  
  1070.  
  1071.  
  1072.  
  1073. <style>
  1074.    .blog-highlights-v3 {
  1075.        padding: 80px 0;
  1076.        position: relative;
  1077.        overflow: hidden;
  1078.    }
  1079.    
  1080.    .blog-highlights-v3::before {
  1081.        content: '';
  1082.        position: absolute;
  1083.        top: 0;
  1084.        left: 0;
  1085.        width: 100%;
  1086.        height: 100%;
  1087.        background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.1'%3E%3Ccircle cx='30' cy='30' r='2'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  1088.        z-index: 0;
  1089.    }
  1090.    
  1091.    .masonry-container {
  1092.        display: grid;
  1093.        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  1094.        grid-gap: 25px;
  1095.    }
  1096.    
  1097.    .blog-card-v3 {
  1098.        border: 1px solid var(--border-color) !important;
  1099.        border-radius: 25px;
  1100.        overflow: hidden;
  1101.        background: var(--card-bg);
  1102.        backdrop-filter: blur(10px);
  1103.        border: 1px solid var(--border-color);
  1104.        position: relative;
  1105.        transition: all 0.5s cubic-bezier(0.23, 1, 0.320, 1);
  1106.        cursor: pointer;
  1107.        transform: translateY(0) rotateX(0) rotateY(0);
  1108.        transform-style: preserve-3d;
  1109.        perspective: 1000px;
  1110.        z-index: 1;
  1111.    }
  1112.    .span-21 { grid-row-end: span 21; }
  1113.    .span-22 { grid-row-end: span 22; }
  1114.    
  1115.    .blog-card-v3::before {
  1116.        content: '';
  1117.        position: absolute;
  1118.        top: 0;
  1119.        left: 0;
  1120.        width: 100%;
  1121.        height: 100%;
  1122.        background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(0,0,0,0.02) 100%);
  1123.        opacity: 0;
  1124.        transition: opacity 0.3s ease;
  1125.        z-index: 1;
  1126.    }
  1127.    
  1128.    .blog-card-v3:hover {
  1129.        transform: translateY(-20px) rotateX(5deg) rotateY(5deg) scale(1.03);
  1130.        box-shadow:
  1131.            0 30px 60px rgba(0,0,0,0.15),
  1132.            0 15px 30px rgba(0,0,0,0.1),
  1133.            inset 0 1px 0 rgba(255,255,255,0.3);
  1134.        z-index: 10;
  1135.    }
  1136.    
  1137.    .blog-card-v3:hover::before {
  1138.        opacity: 1;
  1139.    }
  1140.    
  1141.    .blog-image-v3 {
  1142.        position: relative;
  1143.        overflow: hidden;
  1144.        height: 50%;
  1145.        background: linear-gradient(135deg, var(--bs-primary), var(--bs-dark));
  1146.    }
  1147.    
  1148.    .blog-image-v3::after {
  1149.        content: '';
  1150.        position: absolute;
  1151.        top: 0;
  1152.        left: 0;
  1153.        width: 100%;
  1154.        height: 100%;
  1155.        background:
  1156.            radial-gradient(circle at top right, rgba(255,255,255,0.3) 0%, transparent 50%),
  1157.            linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.4) 100%);
  1158.        z-index: 2;
  1159.    }
  1160.    
  1161.    .blog-image-v3 img {
  1162.        width: 100%;
  1163.        height: 100%;
  1164.        object-fit: cover;
  1165.        transition: all 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  1166.        transform: scale(1);
  1167.        filter: brightness(1) saturate(1);
  1168.    }
  1169.    
  1170.    .blog-card-v3:hover .blog-image-v3 img {
  1171.        transform: scale(1.15);
  1172.        filter: brightness(1.1) saturate(1.2);
  1173.    }
  1174.    
  1175.    .blog-floating-elements {
  1176.        position: absolute;
  1177.        top: 0;
  1178.        left: 0;
  1179.        width: 100%;
  1180.        height: 100%;
  1181.        pointer-events: none;
  1182.        z-index: 3;
  1183.    }
  1184.    
  1185.    .floating-dot {
  1186.        position: absolute;
  1187.        width: 8px;
  1188.        height: 8px;
  1189.        background: rgba(255,255,255,0.6);
  1190.        border-radius: 50%;
  1191.        animation: float 3s ease-in-out infinite;
  1192.    }
  1193.    
  1194.    .floating-dot:nth-child(1) { top: 20%; left: 15%; animation-delay: 0s; }
  1195.    .floating-dot:nth-child(2) { top: 60%; right: 20%; animation-delay: 0.5s; }
  1196.    .floating-dot:nth-child(3) { bottom: 30%; left: 25%; animation-delay: .5s; }
  1197.    
  1198.    @keyframes float {
  1199.        0%, 100% { transform: translateY(0px); }
  1200.        50% { transform: translateY(-10px); }
  1201.    }
  1202.    
  1203.    .blog-category-v3 {
  1204.        position: absolute;
  1205.        top: 25px;
  1206.        right: 25px;
  1207.        padding: 10px 18px;
  1208.        border-radius: 30px;
  1209.        font-size: 11px;
  1210.        font-weight: 800;
  1211.        text-transform: uppercase;
  1212.        letter-spacing: 1.2px;
  1213.        backdrop-filter: blur(10px);
  1214.        z-index: 4;
  1215.        transform: translateY(0) scale(1);
  1216.        transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  1217.        box-shadow: 0 8px 20px rgba(0,0,0,0.1);
  1218.        border: 1px solid rgba(255,255,255,0.3);
  1219.    }
  1220.    
  1221.    .blog-card-v3:hover .blog-category-v3 {
  1222.        transform: translateY(-10px) scale(1.1);
  1223.        background: rgba(var(--card-bg),1);
  1224.        box-shadow: 0 12px 30px rgba(0,0,0,0.15);
  1225.    }
  1226.    
  1227.    .blog-content-v3 {
  1228.        padding: 35px 30px 30px;
  1229.        height: 50%;
  1230.        display: flex;
  1231.        flex-direction: column;
  1232.        justify-content: space-between;
  1233.        position: relative;
  1234.        z-index: 2;
  1235.    }
  1236.    
  1237.    .blog-title-v3 {
  1238.        font-size: 19px;
  1239.        font-weight: 700;
  1240.        line-height: 1.3;
  1241.        margin-bottom: 18px;
  1242.        position: relative;
  1243.    }
  1244.    
  1245.    .blog-title-v3 a {
  1246.        text-decoration: none;
  1247.        color: var(--top-color) !important;
  1248.        transition: all 0.3s ease;
  1249.        position: relative;
  1250.        display: inline-block;
  1251.    }
  1252.    
  1253.    .blog-title-v3 a::before {
  1254.        content: '';
  1255.        position: absolute;
  1256.        bottom: -3px;
  1257.        left: 0;
  1258.        width: 0;
  1259.        height: 3px;
  1260.        background: linear-gradient(135deg, var(--bs-primary), var(--bs-dark));
  1261.        border-radius: 2px;
  1262.        transition: width 0.5s cubic-bezier(0.23, 1, 0.320, 1);
  1263.    }
  1264.    
  1265.    .blog-card-v3:hover .blog-title-v3 a::before {
  1266.        width: 100%;
  1267.    }
  1268.    
  1269.    .blog-meta-v3 {
  1270.        display: flex;
  1271.        align-items: center;
  1272.        gap: 15px;
  1273.        margin-bottom: 18px;
  1274.        font-size: 13px;
  1275.        color: #7f8c8d;
  1276.        padding-bottom: 18px;
  1277.        border-bottom: 1px solid rgba(127, 140, 141, 0.1);
  1278.        position: relative;
  1279.    }
  1280.    
  1281.    .blog-meta-v3::after {
  1282.        content: '';
  1283.        position: absolute;
  1284.        bottom: -1px;
  1285.        left: 0;
  1286.        width: 0;
  1287.        height: 1px;
  1288.        background: linear-gradient(135deg, var(--bs-primary), var(--bs-dark));
  1289.        transition: width 0.6s ease 0.3s;
  1290.    }
  1291.    
  1292.    .blog-card-v3:hover .blog-meta-v3::after {
  1293.        width: 80px;
  1294.    }
  1295.    
  1296.    .blog-author-img-v3 {
  1297.        width: 35px;
  1298.        height: 35px;
  1299.        border-radius: 50%;
  1300.        object-fit: cover;
  1301.        border: 3px solid rgba(255,255,255,0.8);
  1302.        transition: all 0.4s ease;
  1303.        box-shadow: 0 4px 15px rgba(0,0,0,0.1);
  1304.    }
  1305.    
  1306.    .blog-card-v3:hover .blog-author-img-v3 {
  1307.        transform: scale(1.15);
  1308.        border-color: rgba(102, 126, 234, 0.5);
  1309.        box-shadow: 0 8px 25px rgba(102, 126, 234, 0.2);
  1310.    }
  1311.    
  1312.    .blog-excerpt-v3 {
  1313.        font-size: 14px;
  1314.        line-height: 1.7;
  1315.        color: #5a6c7d;
  1316.        margin-bottom: 20px;
  1317.        display: -webkit-box;
  1318.        -webkit-line-clamp: 3;
  1319.        -webkit-box-orient: vertical;
  1320.        overflow: hidden;
  1321.        opacity: 0.9;
  1322.        transition: opacity 0.3s ease;
  1323.    }
  1324.    
  1325.    .blog-card-v3:hover .blog-excerpt-v3 {
  1326.        opacity: 1;
  1327.    }
  1328.    
  1329.    .blog-actions-v3 {
  1330.        display: flex;
  1331.        justify-content: space-between;
  1332.        align-items: center;
  1333.    }
  1334.    
  1335.    .blog-read-time-v3 {
  1336.        font-size: 12px;
  1337.        color: #95a5a6;
  1338.        display: flex;
  1339.        align-items: center;
  1340.        gap: 6px;
  1341.    }
  1342.    
  1343.    .blog-read-more-v3 {
  1344.        width: 50px;
  1345.        height: 50px;
  1346.        border-radius: 50%;
  1347.        background: linear-gradient(135deg, var(--bs-primary), var(--bs-dark));
  1348.        display: flex;
  1349.        align-items: center;
  1350.        justify-content: center;
  1351.        color: white;
  1352.        text-decoration: none;
  1353.        transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  1354.        transform: scale(0) rotate(0deg);
  1355.        opacity: 0;
  1356.        box-shadow: 0 8px 20px rgba(102, 126, 234, 0.3);
  1357.        position: relative;
  1358.        overflow: hidden;
  1359.    }
  1360.    
  1361.    .blog-read-more-v3::before {
  1362.        content: '';
  1363.        position: absolute;
  1364.        top: 50%;
  1365.        left: 50%;
  1366.        width: 0;
  1367.        height: 0;
  1368.        background: rgba(255,255,255,0.2);
  1369.        border-radius: 50%;
  1370.        transition: all 0.6s ease;
  1371.        transform: translate(-50%, -50%);
  1372.    }
  1373.    
  1374.    .blog-card-v3:hover .blog-read-more-v3 {
  1375.        transform: scale(1) rotate(360deg);
  1376.        opacity: 1;
  1377.    }
  1378.    
  1379.    .blog-read-more-v3:hover::before {
  1380.        width: 100%;
  1381.        height: 100%;
  1382.    }
  1383.    
  1384.    .section-header-v3 {
  1385.        text-align: center;
  1386.        margin-bottom: 80px;
  1387.        position: relative;
  1388.        z-index: 2;
  1389.    }
  1390.    
  1391.    .section-title-v3 {
  1392.        font-size: 3.5rem;
  1393.        font-weight: 900;
  1394.        margin-bottom: 25px;
  1395.        color: #2c3e50;
  1396.        position: relative;
  1397.        display: inline-block;
  1398.    }
  1399.    
  1400.    .section-title-v3::before {
  1401.        content: '';
  1402.        position: absolute;
  1403.        top: -15px;
  1404.        right: -15px;
  1405.        width: 30px;
  1406.        height: 30px;
  1407.        background: linear-gradient(135deg, var(--bs-primary), var(--bs-dark));
  1408.        border-radius: 50%;
  1409.        opacity: 0.3;
  1410.        animation: pulse 2s infinite;
  1411.    }
  1412.    
  1413.    @keyframes pulse {
  1414.        0%, 100% { transform: scale(1); opacity: 0.3; }
  1415.        50% { transform: scale(1.2); opacity: 0.6; }
  1416.    }
  1417.    
  1418.    .section-subtitle-v3 {
  1419.        font-size: 1.2rem;
  1420.        color: #7f8c8d;
  1421.        max-width: 700px;
  1422.        margin: 0 auto;
  1423.        line-height: 1.7;
  1424.        font-weight: 300;
  1425.    }
  1426.    
  1427.    .scroll-reveal {
  1428.        opacity: 0;
  1429.        transform: translateY(50px) scale(0.9);
  1430.        transition: all 0.8s cubic-bezier(0.23, 1, 0.320, 1);
  1431.    }
  1432.    
  1433.    .scroll-reveal.revealed {
  1434.        opacity: 1;
  1435.        transform: translateY(0) scale(1);
  1436.    }
  1437.    
  1438.    .scroll-reveal:nth-child(1) { transition-delay: 0.1s; }
  1439.    .scroll-reveal:nth-child(2) { transition-delay: 0.1s; }
  1440.    .scroll-reveal:nth-child(3) { transition-delay: 0.1s; }
  1441.    .scroll-reveal:nth-child(4) { transition-delay: 0.1s; }
  1442.    .scroll-reveal:nth-child(5) { transition-delay: 0.1s; }
  1443.    .scroll-reveal:nth-child(6) { transition-delay: 0.1s; }
  1444.  
  1445.    @media (max-width: 768px) {
  1446.        .masonry-container {
  1447.            display: flex;
  1448.            flex-direction: column;
  1449.            grid-gap: 20px;
  1450.        }
  1451.        .blog-card-v3:nth-child(n) {
  1452.            grid-row-end: span 20;
  1453.        }
  1454.        .section-title-v3 {
  1455.            font-size: 2.8rem;
  1456.        }
  1457.        .blog-highlights-v3 {
  1458.            padding: 60px 0;
  1459.        }
  1460.        .blog-content-v3 {
  1461.            padding: 25px 20px;
  1462.        }
  1463.        .blog-card-v3:hover {
  1464.            transform: translateY(-15px) scale(1.02);
  1465.        }
  1466.        .blog-image-v3{
  1467.            max-height: 350px;
  1468.            height: 100%;
  1469.        }
  1470.    }
  1471. </style>
  1472.  
  1473. <section class="blog-highlights-v3">
  1474.    <div class="container-fluid fluid-container">
  1475.        <div class="row">
  1476.            <div class="col-12">
  1477.                 <div class="wpo-section-title">
  1478.            <h2>
  1479.                Today's Top Highlights
  1480.                   </h2>
  1481.        </div>
  1482.            </div>
  1483.        </div>
  1484.        
  1485.        <div class="row">
  1486.            <div class="col-lg-8 col-12">
  1487.                <div class="masonry-container">
  1488.                    
  1489.                    
  1490.  
  1491.                </div>
  1492.            </div>
  1493.            
  1494.               <div class="col col-lg-4 col-12">
  1495.                
  1496.  
  1497.  
  1498.  
  1499.    
  1500.  
  1501. <!-- Curved Heading Sidebar -->
  1502.    <div class="sidebar mb-3">
  1503.        
  1504.  
  1505.       <!-- <div class="sidebar-widget mb-5">
  1506.            <div class="widget-title-wrapper mb-3">
  1507.                <h4 class="widget-title-curved bg-primary text-white px-4 py-3 mb-0 position-relative rounded-3">
  1508.                    <div class="title-border"></div>
  1509.                    <i class="ti-folder me-2"></i>Blog Archives
  1510.                </h4>
  1511.            </div>
  1512.            <div class="widget-content shadow-sm rounded-3 p-4">
  1513.                <div class="archives-list">
  1514.                    <div class="archive-item d-flex justify-content-between align-items-center mb-3 pb-3 border-bottom border-color">
  1515.                        <a href="#" class="text-decoration-none d-flex align-items-center">
  1516.                            <i class="ti-angle-right me-2 text-primary"></i>
  1517.                            <span class="archive-link top-color fw-semibold">August 2025</span>
  1518.                        </a>
  1519.                        <span class="badge bg-primary bg-opacity-15 text-white rounded-pill px-3">24 posts</span>
  1520.                    </div>
  1521.  
  1522.                    <div class="archive-item d-flex justify-content-between align-items-center mb-3 pb-3 border-bottom border-color">
  1523.                        <a href="#" class="text-decoration-none d-flex align-items-center">
  1524.                            <i class="ti-angle-right me-2 text-primary"></i>
  1525.                            <span class="archive-link top-color fw-semibold">July 2025</span>
  1526.                        </a>
  1527.                        <span class="badge bg-primary bg-opacity-15 text-white rounded-pill px-3">31 posts</span>
  1528.                    </div>
  1529.  
  1530.                    <div class="archive-item d-flex justify-content-between align-items-center mb-3 pb-3 border-bottom border-color">
  1531.                        <a href="#" class="text-decoration-none d-flex align-items-center">
  1532.                            <i class="ti-angle-right me-2 text-primary"></i>
  1533.                            <span class="archive-link top-color fw-semibold">June 2025</span>
  1534.                        </a>
  1535.                        <span class="badge bg-primary bg-opacity-15 text-white rounded-pill px-3">28 posts</span>
  1536.                    </div>
  1537.  
  1538.                    <div class="archive-item d-flex justify-content-between align-items-center mb-3 pb-3 border-bottom border-color">
  1539.                        <a href="#" class="text-decoration-none d-flex align-items-center">
  1540.                            <i class="ti-angle-right me-2 text-primary"></i>
  1541.                            <span class="archive-link top-color fw-semibold">May 2025</span>
  1542.                        </a>
  1543.                        <span class="badge bg-primary bg-opacity-15 text-white rounded-pill px-3">35 posts</span>
  1544.                    </div>
  1545.  
  1546.                    <div class="archive-item d-flex justify-content-between align-items-center mb-3 pb-3 border-bottom border-color">
  1547.                        <a href="#" class="text-decoration-none d-flex align-items-center">
  1548.                            <i class="ti-angle-right me-2 text-primary"></i>
  1549.                            <span class="archive-link top-color fw-semibold">April 2025</span>
  1550.                        </a>
  1551.                        <span class="badge bg-primary bg-opacity-15 text-white rounded-pill px-3">29 posts</span>
  1552.                    </div>
  1553.  
  1554.                    <div class="archive-item d-flex justify-content-between align-items-center">
  1555.                        <a href="#" class="text-decoration-none d-flex align-items-center">
  1556.                            <i class="ti-angle-right me-2 text-primary"></i>
  1557.                            <span class="archive-link top-color fw-semibold">March 2025</span>
  1558.                        </a>
  1559.                        <span class="badge bg-primary bg-opacity-15 text-white rounded-pill px-3">27 posts</span>
  1560.                    </div>
  1561.                </div>
  1562.                
  1563.                <div class="text-center mt-4 pt-3 border-top border-color">
  1564.                    <a href="#" class="btn btn-primary btn-sm px-whtext-white rounded-pill">
  1565.                        <i class="ti-archive me-1"></i>View All Archives
  1566.                    </a>
  1567.                </div>
  1568.            </div>
  1569.        </div> -->
  1570.  
  1571.        <div class="sidebar-widget mb-4">
  1572.            <div class="widget-title-wrapper mb-3">
  1573.                <h4 class="widget-title-curved bg-primary text-white px-4 py-3 mb-0 position-relative rounded-3">
  1574.                    <div class="title-border-primary"></div>
  1575.                    <i class="ti-star me-2"></i>Popular Posts
  1576.                </h4>
  1577.            </div>
  1578.            <div class="widget-content shadow-sm rounded-3 mb-3 p-4">
  1579.                <div class="popular-post-list">
  1580.                    
  1581.  
  1582.                </div>
  1583.                
  1584.                <!-- <div class="text-center mt-4 pt-3 border-top border-color">
  1585.                    <a href="#" class="btn btn-primary top-color btn-sm px-whtext-white rounded-pill">
  1586.                        <i class="ti-trophy me-1"></i>View All Popular
  1587.                    </a>
  1588.                </div> -->
  1589.            </div>
  1590.        </div>
  1591.  
  1592. </div>
  1593. <style>
  1594.    
  1595.  .widget-content {
  1596.    background-color: var(--card-bg);
  1597.    border: 1px solid var(--border-color);
  1598.  }
  1599. </style>
  1600.  
  1601.    
  1602.            </div>
  1603.        </div>
  1604.    </div>
  1605. </section>
  1606.  
  1607. <script>
  1608. // Enhanced Intersection Observer with staggered animations
  1609. document.addEventListener('DOMContentLoaded', function() {
  1610.    const observerOptions = {
  1611.        threshold: 0.1,
  1612.        rootMargin: '0px 0px -100px 0px'
  1613.    };
  1614.  
  1615.    const observer = new IntersectionObserver(function(entries) {
  1616.        entries.forEach(entry => {
  1617.            if (entry.isIntersecting) {
  1618.                setTimeout(() => {
  1619.                    entry.target.classList.add('revealed');
  1620.                }, 100);
  1621.            }
  1622.        });
  1623.    }, observerOptions);
  1624.  
  1625.    // Observe all scroll-reveal elements
  1626.    document.querySelectorAll('.scroll-reveal').forEach(el => {
  1627.        observer.observe(el);
  1628.    });
  1629.  
  1630.    // Add parallax effect to floating dots
  1631.    document.addEventListener('mousemove', function(e) {
  1632.        const cards = document.querySelectorAll('.blog-card-v3');
  1633.        cards.forEach(card => {
  1634.            const rect = card.getBoundingClientRect();
  1635.            const x = (e.clientX - rect.left) / rect.width;
  1636.            const y = (e.clientY - rect.top) / rect.height;
  1637.            
  1638.            const dots = card.querySelectorAll('.floating-dot');
  1639.            dots.forEach((dot, index) => {
  1640.                const moveX = (x - 0.5) * (10 + index * 5);
  1641.                const moveY = (y - 0.5) * (10 + index * 5);
  1642.                dot.style.transform = `translate(${moveX}px, ${moveY}px)`;
  1643.            });
  1644.        });
  1645.    });
  1646. });
  1647. </script>
  1648.  
  1649.    
  1650.        
  1651.        <!-- end wpo-blog-highlights-section -->
  1652.        <!-- start wpo-blog-sponsored-section -->
  1653.        
  1654.  
  1655.  
  1656.  
  1657.    
  1658.  
  1659.  
  1660.    
  1661.        <!-- end wpo-blog-sponsored-section -->
  1662.        <!-- start wpo-subscribe-section -->
  1663.        
  1664.        <!-- end subscribe-section -->
  1665.        <!-- start of wpo-site-footer-section -->
  1666.        
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673. <!-- Footer V5 - Clean Minimalist Bootstrap Design -->
  1674. <footer class="footer-v5 bg-primary-gradient border-top">
  1675.    
  1676.    <!-- Main Footer Content -->
  1677.    <div class="container-fluid py-5">
  1678.        
  1679.        <!-- Top Section with Logo and Description -->
  1680.        <div class="row mb-5">
  1681.            <div class="col-12 text-center">
  1682.                <div class="footer-brand mb-4">
  1683.                    
  1684.                        <img src="https://usc1.contabostorage.com/83226f3934d449eb8c821d388b39f7b1:nextbacklinks/site_logos/9e0d940e-9ff5-459f-9ad9-2533a85fb439_logo.png" alt="Tech Insights Blog" class="footer-logo mb-3" height="60">
  1685.                    
  1686.                    <h4 class="fw-bold footer-color mb-2">Tech Insights Blog</h4>
  1687.                    <p class="footer-color opacity-50">Explore the latest in technology, digital trends, and insightful articles on innovation. Stay updated with expert analysis and practical tech tips.</p>
  1688.                </div>
  1689.            </div>
  1690.        </div>
  1691.  
  1692.        <!-- Content Grid -->
  1693.        <div class="d-flex justify-content-between flex-wrap gap-2 px-3">
  1694.            
  1695.            <!-- Quick Links Column -->
  1696.            <div class="">
  1697.                <div class="footer-section">
  1698.                    <h6 class="fw-bold footer-color mb-3 d-flex align-items-center">
  1699.                        Quick Links
  1700.                    </h6>
  1701.                    <ul class="list-unstyled footer-links">
  1702.                        
  1703.                        <li class="">No featured posts available</li>
  1704.                        
  1705.                    </ul>
  1706.                </div>
  1707.            </div>
  1708.  
  1709.            <!-- Resources Column -->
  1710.            <div class="">
  1711.                <div class="footer-section">
  1712.                    <h6 class="fw-bold footer-color mb-3 d-flex align-items-center">
  1713.                        Resources
  1714.                    </h6>
  1715.                   <ul class="footer-links" id="footerLinks">
  1716.        
  1717.        
  1718.  
  1719.        
  1720.        
  1721.        
  1722.        
  1723.    </ul>
  1724.                </div>
  1725.            </div>
  1726.  
  1727.            <!-- Categories Column -->
  1728.            <div class="">
  1729.                <div class="footer-section">
  1730.                    <h6 class="fw-bold footer-color mb-3 d-flex align-items-center">
  1731.                        Categories
  1732.                    </h6>
  1733.                    <div class="category-tags">
  1734.                      
  1735.                                <li>
  1736.                                    <a href="/category/all-posts/" class="footer-link footer-color">
  1737.                                        All Posts
  1738.                                    </a>
  1739.                                </li>
  1740.                                
  1741.                                <li>
  1742.                                    <a href="/category/business/" class="footer-link footer-color">
  1743.                                        Business
  1744.                                    </a>
  1745.                                </li>
  1746.                                
  1747.                                <li>
  1748.                                    <a href="/category/esports/" class="footer-link footer-color">
  1749.                                        Esports
  1750.                                    </a>
  1751.                                </li>
  1752.                                
  1753.                                <li>
  1754.                                    <a href="/category/fashion/" class="footer-link footer-color">
  1755.                                        Fashion
  1756.                                    </a>
  1757.                                </li>
  1758.                                
  1759.                                <li>
  1760.                                    <a href="/category/featured/" class="footer-link footer-color">
  1761.                                        Featured
  1762.                                    </a>
  1763.                                </li>
  1764.                                
  1765.                                <li>
  1766.                                    <a href="/category/gaming/" class="footer-link footer-color">
  1767.                                        Gaming
  1768.                                    </a>
  1769.                                </li>
  1770.                                
  1771.                    </div>
  1772.                </div>
  1773.            </div>
  1774.  
  1775.        </div>
  1776.  
  1777.    </div>
  1778.  
  1779.    <!-- Footer Bottom -->
  1780.    <div class="footer-bottom  border-top py-3">
  1781.        <div class="container-fluid fluid-container">
  1782.            <div class=" d-flex justify-content-between flex-wrap">
  1783.                <div class="">
  1784.                    <p class="mb-0 footer-color  ">
  1785.                        © 2026 <span class="fw-semibold footer-color">Tech Insights Blog</span>. All rights reserved.
  1786.                    </p>
  1787.                </div>
  1788.                <div class="">
  1789.                    <div class="footer-nav">
  1790.                        <a href="/page/write-for-us/" class="text-decoration-none   me-3">
  1791.                            <i class="bi bi-file-text me-1"></i>Write For Us
  1792.                        </a>
  1793.                        <a href="/page/terms-and-conditions/" class="text-decoration-none   me-3">
  1794.                            <i class="bi bi-file-text me-1"></i>Terms
  1795.                        </a>
  1796.                        <a href="/sitemap.xml" class="text-decoration-none  ">
  1797.                            <i class="bi bi-diagram-3 me-1"></i>Sitemap
  1798.                        </a>
  1799.                    </div>
  1800.                </div>
  1801.            </div>
  1802.        </div>
  1803.    </div>
  1804.  
  1805. </footer>
  1806.  
  1807. <style>
  1808. /* Footer V5 - Clean Minimalist Bootstrap Design */
  1809.  
  1810.  
  1811.  
  1812.  
  1813. .footer-logo {
  1814.    border-radius: 8px;
  1815. }
  1816.  
  1817. /* Footer Sections */
  1818. .footer-section {
  1819.    padding: 0 15px;
  1820. }
  1821.  
  1822. .footer-section h6 {
  1823.    position: relative;
  1824.    padding-bottom: 8px;
  1825. }
  1826.  
  1827. .footer-section h6::after {
  1828.    content: '';
  1829.    position: absolute;
  1830.    bottom: 0;
  1831.    left: 0;
  1832.    width: 30px;
  1833.    height: 2px;
  1834.    background: linear-gradient(45deg, var(--bs-primary), var(--footer-color));
  1835.    border-radius: 1px;
  1836. }
  1837.  
  1838. /* Links Styling */
  1839. .footer-links a {
  1840.    transition: all 0.3s ease;
  1841.    padding: 4px 0;
  1842.    border-radius: 4px;
  1843. }
  1844.  
  1845. .footer-links a:hover {
  1846.    color: var(--bs-primary) !important;
  1847.    padding-left: 8px;
  1848. }
  1849.  
  1850. .footer-links a:hover i {
  1851.    transform: translateX(2px);
  1852. }
  1853.  
  1854. /* Category Tags */
  1855. .category-tag {
  1856.    transition: all 0.3s ease;
  1857.    padding: 6px 12px !important;
  1858.    font-size: 0.875rem;
  1859. }
  1860.  
  1861.  
  1862.  
  1863. /* Footer Bottom */
  1864. .footer-bottom {
  1865.    backdrop-filter: blur(10px);
  1866. }
  1867.  
  1868. /* Responsive Design */
  1869. @media (max-width: 768px) {
  1870.    .footer-v5 {
  1871.        margin-top: 60px;
  1872.    }
  1873.    
  1874.    .footer-section {
  1875.        text-align:start;
  1876.        margin-bottom: 40px;
  1877.    }
  1878.    
  1879.    .footer-links a,
  1880.    .category-tags {
  1881.        justify-content:start;
  1882.    }
  1883.    
  1884.    .social-links .d-flex {
  1885.        justify-content:start;
  1886.    }
  1887. }
  1888.  
  1889. @media (max-width: 576px) {
  1890.    .footer-brand h4 {
  1891.        font-size: 1.25rem;
  1892.    }
  1893.    
  1894.    .stats-item h5 {
  1895.        font-size: 1.1rem;
  1896.    }
  1897.    
  1898.    .newsletter-form .btn {
  1899.        padding: 8px 12px;
  1900.    }
  1901. }
  1902.  
  1903. /* Animation Classes */
  1904. .fade-in {
  1905.    animation: fadeIn 0.6s ease-in;
  1906. }
  1907.  
  1908. @keyframes fadeIn {
  1909.    from { opacity: 0; transform: translateY(20px); }
  1910.    to { opacity: 1; transform: translateY(0); }
  1911. }
  1912.  
  1913. /* Loading State */
  1914. .loading {
  1915.    pointer-events: none;
  1916.    opacity: 0.7;
  1917. }
  1918.  
  1919. .loading .btn {
  1920.    position: relative;
  1921. }
  1922.  
  1923. .loading .btn::after {
  1924.    content: '';
  1925.    position: absolute;
  1926.    top: 50%;
  1927.    left: 50%;
  1928.    width: 16px;
  1929.    height: 16px;
  1930.    margin: -8px 0 0 -8px;
  1931.    border: 2px solid transparent;
  1932.    border-top-color: currentColor;
  1933.    border-radius: 50%;
  1934.    animation: spin 1s linear infinite;
  1935. }
  1936.  
  1937. @keyframes spin {
  1938.    to { transform: rotate(360deg); }
  1939. }
  1940.  
  1941. /* Utility Classes */
  1942. .text-gradient {
  1943.    background: linear-gradient(45deg, var(--bs-primary), var(--bs-success));
  1944.    -webkit-background-clip: text;
  1945.    -webkit-text-fill-color: transparent;
  1946.    background-clip: text;
  1947. }
  1948.  
  1949. .hover-lift {
  1950.    transition: transform 0.3s ease;
  1951. }
  1952.  
  1953. .hover-lift:hover {
  1954.    transform: translateY(-2px);
  1955. }
  1956. </style>
  1957.  
  1958.  
  1959. <script>
  1960. document.addEventListener('DOMContentLoaded', function() {
  1961.    
  1962.    // Initialize Bootstrap tooltips
  1963.    const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
  1964.    tooltipTriggerList.map(function (tooltipTriggerEl) {
  1965.        return new bootstrap.Tooltip(tooltipTriggerEl);
  1966.    });
  1967.  
  1968.    // Newsletter form handling
  1969.    const newsletterForm = document.querySelector('.newsletter-form');
  1970.    if (newsletterForm) {
  1971.        newsletterForm.addEventListener('submit', function(e) {
  1972.            e.preventDefault();
  1973.            
  1974.            const email = this.querySelector('input[name="email"]').value.trim();
  1975.            const submitBtn = this.querySelector('button[type="submit"]');
  1976.            const originalContent = submitBtn.innerHTML;
  1977.            
  1978.            // Validate email
  1979.            if (!email || !isValidEmail(email)) {
  1980.                showToast('Please enter a valid email address', 'error');
  1981.                return;
  1982.            }
  1983.            
  1984.            // Show loading state
  1985.            this.classList.add('loading');
  1986.            submitBtn.innerHTML = '<span class="spinner-border spinner-border-sm me-1"></span>Subscribing...';
  1987.            submitBtn.disabled = true;
  1988.            
  1989.            // Simulate API call
  1990.            setTimeout(() => {
  1991.                // Success state
  1992.                submitBtn.innerHTML = '<i class="bi bi-check-lg me-1"></i>Subscribed!';
  1993.                submitBtn.classList.remove('btn-primary');
  1994.                submitBtn.classList.add('btn-success');
  1995.                
  1996.                showToast('Successfully subscribed to newsletter!', 'success');
  1997.                
  1998.                // Reset form
  1999.                setTimeout(() => {
  2000.                    this.classList.remove('loading');
  2001.                    submitBtn.innerHTML = originalContent;
  2002.                    submitBtn.classList.remove('btn-success');
  2003.                    submitBtn.classList.add('btn-primary');
  2004.                    submitBtn.disabled = false;
  2005.                    this.reset();
  2006.                }, 2000);
  2007.                
  2008.            }, 1500);
  2009.        });
  2010.    }
  2011.    
  2012.    // Email validation function
  2013.    function isValidEmail(email) {
  2014.        const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
  2015.        return emailRegex.test(email);
  2016.    }
  2017.    
  2018.    // Toast notification function
  2019.    function showToast(message, type = 'info') {
  2020.        // Remove existing toasts
  2021.        const existingToasts = document.querySelectorAll('.custom-toast');
  2022.        existingToasts.forEach(toast => toast.remove());
  2023.        
  2024.        // Create toast
  2025.        const toast = document.createElement('div');
  2026.        toast.className = `custom-toast position-fixed top-0 end-0 m-3 alert alert-${type === 'error' ? 'danger' : type} alert-dismissible fade show`;
  2027.        toast.style.zIndex = '9999';
  2028.        toast.innerHTML = `
  2029.            <div class="d-flex align-items-center">
  2030.                <i class="bi bi-${type === 'success' ? 'check-circle-fill' : type === 'error' ? 'exclamation-triangle-fill' : 'info-circle-fill'} me-2"></i>
  2031.                <span>${message}</span>
  2032.                <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
  2033.            </div>
  2034.        `;
  2035.        
  2036.        document.body.appendChild(toast);
  2037.        
  2038.        // Auto remove after 4 seconds
  2039.        setTimeout(() => {
  2040.            if (toast && toast.parentNode) {
  2041.                toast.remove();
  2042.            }
  2043.        }, 4000);
  2044.    }
  2045.    
  2046.    // Smooth scroll for internal links
  2047.    document.querySelectorAll('a[href^="#"]').forEach(anchor => {
  2048.        anchor.addEventListener('click', function(e) {
  2049.            e.preventDefault();
  2050.            const target = document.querySelector(this.getAttribute('href'));
  2051.            if (target) {
  2052.                target.scrollIntoView({
  2053.                    behavior: 'smooth',
  2054.                    block: 'start'
  2055.                });
  2056.            }
  2057.        });
  2058.    });
  2059.    
  2060.    // Add fade-in animation to footer sections on scroll
  2061.    const observerOptions = {
  2062.        threshold: 0.1,
  2063.        rootMargin: '0px 0px -50px 0px'
  2064.    };
  2065.    
  2066.    const sectionObserver = new IntersectionObserver((entries) => {
  2067.        entries.forEach(entry => {
  2068.            if (entry.isIntersecting) {
  2069.                entry.target.classList.add('fade-in');
  2070.            }
  2071.        });
  2072.    }, observerOptions);
  2073.    
  2074.    // Observe footer sections
  2075.    document.querySelectorAll('.footer-section, .stats-item').forEach(section => {
  2076.        sectionObserver.observe(section);
  2077.    });
  2078.    
  2079.    // Enhanced hover effects for category tags
  2080.    document.querySelectorAll('.category-tag').forEach(tag => {
  2081.        tag.addEventListener('mouseenter', function() {
  2082.            this.style.transform = 'translateY(-2px) scale(1.02)';
  2083.        });
  2084.        
  2085.        tag.addEventListener('mouseleave', function() {
  2086.            this.style.transform = 'translateY(0) scale(1)';
  2087.        });
  2088.    });
  2089.    
  2090.    // Prevent default for demo links
  2091.    document.querySelectorAll('a[href="#"]').forEach(link => {
  2092.        link.addEventListener('click', function(e) {
  2093.            e.preventDefault();
  2094.        });
  2095.    });
  2096.    
  2097.    // Add click ripple effect to buttons
  2098.    document.querySelectorAll('.btn').forEach(btn => {
  2099.        btn.addEventListener('click', function(e) {
  2100.            const ripple = document.createElement('span');
  2101.            const rect = this.getBoundingClientRect();
  2102.            const size = Math.max(rect.width, rect.height);
  2103.            const x = e.clientX - rect.left - size / 2;
  2104.            const y = e.clientY - rect.top - size / 2;
  2105.            
  2106.            ripple.style.cssText = `
  2107.                position: absolute;
  2108.                left: ${x}px;
  2109.                top: ${y}px;
  2110.                width: ${size}px;
  2111.                height: ${size}px;
  2112.                border-radius: 50%;
  2113.                background: rgba(255, 255, 255, 0.4);
  2114.                transform: scale(0);
  2115.                animation: ripple-effect 0.6s linear;
  2116.                pointer-events: none;
  2117.            `;
  2118.            
  2119.            this.style.position = 'relative';
  2120.            this.style.overflow = 'hidden';
  2121.            this.appendChild(ripple);
  2122.            
  2123.            setTimeout(() => ripple.remove(), 600);
  2124.        });
  2125.    });
  2126.    
  2127. });
  2128.  
  2129. // Add ripple animation CSS
  2130. const rippleCSS = document.createElement('style');
  2131. rippleCSS.textContent = `
  2132.    @keyframes ripple-effect {
  2133.        to {
  2134.            transform: scale(4);
  2135.            opacity: 0;
  2136.        }
  2137.    }
  2138. `;
  2139. document.head.appendChild(rippleCSS);
  2140.  
  2141. document.addEventListener('DOMContentLoaded', function () {
  2142.    var btn = document.getElementById('toggleFooterLinks');
  2143.    if (!btn) return; // No extra links, no button
  2144.  
  2145.    var extras = document.querySelectorAll('#footerLinks li.extra');
  2146.  
  2147.    btn.addEventListener('click', function () {
  2148.        var anyHidden = Array.prototype.some.call(extras, function (li) {
  2149.            return li.classList.contains('d-none');
  2150.        });
  2151.  
  2152.        extras.forEach(function (li) {
  2153.            if (anyHidden) {
  2154.                li.classList.remove('d-none');
  2155.                li.classList.add('show');
  2156.            } else {
  2157.                li.classList.add('d-none');
  2158.                li.classList.remove('show');
  2159.            }
  2160.        });
  2161.  
  2162.        btn.textContent = anyHidden ? 'View less' : 'View more';
  2163.        btn.setAttribute('aria-expanded', anyHidden ? 'true' : 'false');
  2164.    });
  2165. });
  2166.  
  2167. </script>
  2168.  
  2169.        <!-- end of wpo-site-footer-section -->
  2170.    </div>
  2171.    <!-- end of page-wrapper -->
  2172.  
  2173.    <!-- All JavaScript files
  2174.    ================================================== -->
  2175.    
  2176.  
  2177. <script src="/static/blogapp/assets/js/jquery.min.js"></script>
  2178. <script src="/static/blogapp/assets/js/bootstrap.bundle.min.js"></script>
  2179. <!-- Plugins for this template -->
  2180. <script src="/static/blogapp/assets/js/modernizr.custom.js"></script>
  2181. <script src="/static/blogapp/assets/js/jquery-plugin-collection.js"></script>
  2182. <!-- Custom script for this template -->
  2183. <script src="/static/blogapp/assets/js/script.js"></script>
  2184.  
  2185. <script>
  2186. (function () {
  2187. var fallbackImageSrc = "/static/blogapp/assets/images/breaking-news/img-1.jpg";
  2188. console.log("[ImageFallback] Initialized with fallback:", fallbackImageSrc);
  2189.  
  2190. function applyFallback(img) {
  2191. if (!img || img.dataset.fallbackApplied === "1") {
  2192. return;
  2193. }
  2194. var failedSrc = img.currentSrc || img.src || "";
  2195. img.dataset.fallbackApplied = "1";
  2196. img.onerror = null;
  2197. img.src = fallbackImageSrc;
  2198. console.warn("[ImageFallback] Replaced broken image:", {
  2199. failedSrc: failedSrc,
  2200. fallbackSrc: fallbackImageSrc,
  2201. alt: img.alt || "",
  2202. });
  2203. }
  2204.  
  2205. document.querySelectorAll("img").forEach(function (img) {
  2206. if (img.complete && img.naturalWidth === 0) {
  2207. console.warn("[ImageFallback] Found broken image at load, applying fallback.", {
  2208. failedSrc: img.currentSrc || img.src || "",
  2209. alt: img.alt || "",
  2210. });
  2211. applyFallback(img);
  2212. }
  2213. });
  2214.  
  2215. document.addEventListener(
  2216. "error",
  2217. function (event) {
  2218. var target = event.target;
  2219. if (target && target.tagName === "IMG") {
  2220. applyFallback(target);
  2221. }
  2222. },
  2223. true
  2224. );
  2225. })();
  2226. </script>
  2227.  
  2228. <!-- <script src="https://api-new.nextbacklinks.com/static/ads/ad-script.js"></script> -->
  2229.  
  2230.  
  2231.  
  2232. <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":"1db4795ffc39403f97703ece7298a6eb","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
  2233. </body>
  2234.  
  2235. </html>
  2236.  
  2237.  
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda