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

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