<turbo-stream action="replace" target="webring_page_2"><template>
  <div id="webring_sites_grid_page_#{@page}" class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mt-6">
      <div class="not-prose group relative h-full flex flex-col bg-white/50 dark:bg-slate-800/50 backdrop-blur-sm rounded-3xl border border-slate-200/60 dark:border-slate-700/50 p-6 hover:bg-white dark:hover:bg-slate-800 hover:shadow-2xl hover:shadow-blue-500/10 hover:-translate-y-1 transition-all duration-300 animate-fade-in-up opacity-0" style="animation-delay: 0ms; animation-fill-mode: forwards;">
  <div class="absolute inset-0 rounded-3xl pointer-events-none overflow-hidden">
    <svg class="absolute inset-0 w-full h-full" xmlns="http://www.w3.org/2000/svg">
      <rect 
        x="1" y="1" 
        width="calc(100% - 2px)" height="calc(100% - 2px)" 
        rx="1.4rem" 
        fill="none" 
        stroke="url(#gradient-other)" 
        stroke-width="0" 
        stroke-linecap="round"
        pathLength="1"
        class="border-draw" 
        style="stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 0.6s ease-in-out, stroke-width 0.2s;" />
    </svg>
  </div>
  <style>
    .group:hover .border-draw {
      stroke-dashoffset: 0 !important;
      stroke-width: 2px !important;
    }
  </style>
  <div class="flex items-start gap-4">
    <div class="relative flex-shrink-0">
        <img class="w-16 h-16 rounded-2xl object-cover shadow-sm ring-1 ring-slate-200 dark:ring-slate-700" alt="microblog" src="https://tinylytics.app/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBb1lCIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ae5861efe473637664fcc86d3c286e19ed121fd8/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2RkhKbGMybDZaVjkwYjE5c2FXMXBkRnNIYVgxcGZRPT0iLCJleHAiOm51bGwsInB1ciI6InZhcmlhdGlvbiJ9fQ==--ffb30abfec645c9b5570dbfd56e65a86017ad312/Extratone%20Radio.png" />
    </div>

    <div class="flex-1 min-w-0">
        <p class="text-lg font-bold text-slate-900 dark:text-white truncate group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors">
          davidblue.blog
        </p>

      <div class="mt-2">
        <span class="inline-flex items-center bg-amber-50 dark:bg-amber-500/10 px-2.5 py-1 rounded-full border border-amber-100 dark:border-amber-400/20">
          <span class="text-[10px] font-bold text-amber-600 dark:text-amber-400 uppercase tracking-wider leading-none">
            Other
          </span>
        </span>
      </div>
    </div>
  </div>

    <div class="flex-1"></div>

  <div class="flex items-center justify-between mt-6 pt-4 border-t border-slate-100 dark:border-slate-700/50">
    <a target="_blank" rel="noopener" class="inline-flex items-center gap-2 px-5 py-2.5 bg-slate-900 dark:bg-white text-white dark:text-slate-900 text-sm font-bold rounded-xl hover:bg-blue-600 dark:hover:bg-blue-400 dark:hover:text-white transition-all active:scale-95" href="https://davidblue.blog">
      Visit Site
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-4 h-4">
        <path fill-rule="evenodd" d="M4.25 5.5a.75.75 0 00-.75.75v8.5c0 .414.336.75.75.75h8.5a.75.75 0 00.75-.75v-4a.75.75 0 011.5 0v4A2.25 2.25 0 0112.75 17h-8.5A2.25 2.25 0 012 14.75v-8.5A2.25 2.25 0 014.25 4h5a.75.75 0 010 1.5h-5z" clip-rule="evenodd" />
        <path fill-rule="evenodd" d="M6.194 12.753a.75.75 0 001.06.053L16.5 4.44v2.81a.75.75 0 001.5 0v-4.5a.75.75 0 00-.75-.75h-4.5a.75.75 0 000 1.5h2.81l-9.313 8.3c-.303.27-.327.734-.053 1.053z" clip-rule="evenodd" />
      </svg>
</a>    
  </div>
</div>

      <div class="not-prose group relative h-full flex flex-col bg-white/50 dark:bg-slate-800/50 backdrop-blur-sm rounded-3xl border border-slate-200/60 dark:border-slate-700/50 p-6 hover:bg-white dark:hover:bg-slate-800 hover:shadow-2xl hover:shadow-blue-500/10 hover:-translate-y-1 transition-all duration-300 animate-fade-in-up opacity-0" style="animation-delay: 50ms; animation-fill-mode: forwards;">
  <div class="absolute inset-0 rounded-3xl pointer-events-none overflow-hidden">
    <svg class="absolute inset-0 w-full h-full" xmlns="http://www.w3.org/2000/svg">
      <rect 
        x="1" y="1" 
        width="calc(100% - 2px)" height="calc(100% - 2px)" 
        rx="1.4rem" 
        fill="none" 
        stroke="url(#gradient-personal)" 
        stroke-width="0" 
        stroke-linecap="round"
        pathLength="1"
        class="border-draw" 
        style="stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 0.6s ease-in-out, stroke-width 0.2s;" />
    </svg>
  </div>
  <style>
    .group:hover .border-draw {
      stroke-dashoffset: 0 !important;
      stroke-width: 2px !important;
    }
  </style>
  <div class="flex items-start gap-4">
    <div class="relative flex-shrink-0">
        <img class="w-16 h-16 rounded-2xl object-cover shadow-sm ring-1 ring-slate-200 dark:ring-slate-700" alt="The Spore Trail" src="https://tinylytics.app/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbDQ0IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--8e60c08b5c45dc863dde08bb1f8b3343786ebadc/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2RkhKbGMybDZaVjkwYjE5c2FXMXBkRnNIYVgxcGZRPT0iLCJleHAiOm51bGwsInB1ciI6InZhcmlhdGlvbiJ9fQ==--ffb30abfec645c9b5570dbfd56e65a86017ad312/tempImageBqUuir.png" />
    </div>

    <div class="flex-1 min-w-0">
        <h3 class="text-xl font-bold text-slate-900 dark:text-white truncate mb-0.5 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors">
          Samuel Lison
        </h3>
        <p class="text-sm text-slate-500 dark:text-slate-400 font-medium truncate">
          samuellison.com
        </p>

      <div class="mt-2">
        <span class="inline-flex items-center bg-blue-50 dark:bg-blue-500/10 px-2.5 py-1 rounded-full border border-blue-100 dark:border-blue-400/20">
          <span class="text-[10px] font-bold text-blue-600 dark:text-blue-400 uppercase tracking-wider leading-none">
            Personal Blog
          </span>
        </span>
      </div>
    </div>
  </div>

    <div class="mt-4 flex-1" data-controller="read-more">
      <p class="text-slate-600 dark:text-slate-300 text-sm line-clamp-3 leading-relaxed" data-read-more-target="content">
        This is my personal blog, a place for me to share. I’m a big fan of nature, hiking and photography.
I love to share my random thoughts, photos, videos and sound recordings with anyone who’s interested.
      </p>
      
        <button type="button" 
                class="text-xs font-bold text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 mt-2 transition-colors p-0 active:scale-95" 
                data-action="click->read-more#toggle" 
                data-read-more-target="button">
          Show more
        </button>
    </div>

  <div class="flex items-center justify-between mt-6 pt-4 border-t border-slate-100 dark:border-slate-700/50">
    <a target="_blank" rel="noopener" class="inline-flex items-center gap-2 px-5 py-2.5 bg-slate-900 dark:bg-white text-white dark:text-slate-900 text-sm font-bold rounded-xl hover:bg-blue-600 dark:hover:bg-blue-400 dark:hover:text-white transition-all active:scale-95" href="https://samuellison.com">
      Visit Site
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-4 h-4">
        <path fill-rule="evenodd" d="M4.25 5.5a.75.75 0 00-.75.75v8.5c0 .414.336.75.75.75h8.5a.75.75 0 00.75-.75v-4a.75.75 0 011.5 0v4A2.25 2.25 0 0112.75 17h-8.5A2.25 2.25 0 012 14.75v-8.5A2.25 2.25 0 014.25 4h5a.75.75 0 010 1.5h-5z" clip-rule="evenodd" />
        <path fill-rule="evenodd" d="M6.194 12.753a.75.75 0 001.06.053L16.5 4.44v2.81a.75.75 0 001.5 0v-4.5a.75.75 0 00-.75-.75h-4.5a.75.75 0 000 1.5h2.81l-9.313 8.3c-.303.27-.327.734-.053 1.053z" clip-rule="evenodd" />
      </svg>
</a>    
  </div>
</div>

      <div class="not-prose group relative h-full flex flex-col bg-white/50 dark:bg-slate-800/50 backdrop-blur-sm rounded-3xl border border-slate-200/60 dark:border-slate-700/50 p-6 hover:bg-white dark:hover:bg-slate-800 hover:shadow-2xl hover:shadow-blue-500/10 hover:-translate-y-1 transition-all duration-300 animate-fade-in-up opacity-0" style="animation-delay: 100ms; animation-fill-mode: forwards;">
  <div class="absolute inset-0 rounded-3xl pointer-events-none overflow-hidden">
    <svg class="absolute inset-0 w-full h-full" xmlns="http://www.w3.org/2000/svg">
      <rect 
        x="1" y="1" 
        width="calc(100% - 2px)" height="calc(100% - 2px)" 
        rx="1.4rem" 
        fill="none" 
        stroke="url(#gradient-personal)" 
        stroke-width="0" 
        stroke-linecap="round"
        pathLength="1"
        class="border-draw" 
        style="stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 0.6s ease-in-out, stroke-width 0.2s;" />
    </svg>
  </div>
  <style>
    .group:hover .border-draw {
      stroke-dashoffset: 0 !important;
      stroke-width: 2px !important;
    }
  </style>
  <div class="flex items-start gap-4">
    <div class="relative flex-shrink-0">
        <div class="w-16 h-16 rounded-2xl bg-gradient-to-br from-blue-500 to-indigo-600 flex items-center justify-center text-white text-2xl font-bold shadow-sm ring-1 ring-white/20">
          R
        </div>
    </div>

    <div class="flex-1 min-w-0">
        <h3 class="text-xl font-bold text-slate-900 dark:text-white truncate mb-0.5 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors">
          Rambling Josh
        </h3>
        <p class="text-sm text-slate-500 dark:text-slate-400 font-medium truncate">
          www.ramblingjosh.com
        </p>

      <div class="mt-2">
        <span class="inline-flex items-center bg-blue-50 dark:bg-blue-500/10 px-2.5 py-1 rounded-full border border-blue-100 dark:border-blue-400/20">
          <span class="text-[10px] font-bold text-blue-600 dark:text-blue-400 uppercase tracking-wider leading-none">
            Personal Blog
          </span>
        </span>
      </div>
    </div>
  </div>

    <div class="flex-1"></div>

  <div class="flex items-center justify-between mt-6 pt-4 border-t border-slate-100 dark:border-slate-700/50">
    <a target="_blank" rel="noopener" class="inline-flex items-center gap-2 px-5 py-2.5 bg-slate-900 dark:bg-white text-white dark:text-slate-900 text-sm font-bold rounded-xl hover:bg-blue-600 dark:hover:bg-blue-400 dark:hover:text-white transition-all active:scale-95" href="https://www.ramblingjosh.com">
      Visit Site
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-4 h-4">
        <path fill-rule="evenodd" d="M4.25 5.5a.75.75 0 00-.75.75v8.5c0 .414.336.75.75.75h8.5a.75.75 0 00.75-.75v-4a.75.75 0 011.5 0v4A2.25 2.25 0 0112.75 17h-8.5A2.25 2.25 0 012 14.75v-8.5A2.25 2.25 0 014.25 4h5a.75.75 0 010 1.5h-5z" clip-rule="evenodd" />
        <path fill-rule="evenodd" d="M6.194 12.753a.75.75 0 001.06.053L16.5 4.44v2.81a.75.75 0 001.5 0v-4.5a.75.75 0 00-.75-.75h-4.5a.75.75 0 000 1.5h2.81l-9.313 8.3c-.303.27-.327.734-.053 1.053z" clip-rule="evenodd" />
      </svg>
</a>    
  </div>
</div>

      <div class="not-prose group relative h-full flex flex-col bg-white/50 dark:bg-slate-800/50 backdrop-blur-sm rounded-3xl border border-slate-200/60 dark:border-slate-700/50 p-6 hover:bg-white dark:hover:bg-slate-800 hover:shadow-2xl hover:shadow-blue-500/10 hover:-translate-y-1 transition-all duration-300 animate-fade-in-up opacity-0" style="animation-delay: 150ms; animation-fill-mode: forwards;">
  <div class="absolute inset-0 rounded-3xl pointer-events-none overflow-hidden">
    <svg class="absolute inset-0 w-full h-full" xmlns="http://www.w3.org/2000/svg">
      <rect 
        x="1" y="1" 
        width="calc(100% - 2px)" height="calc(100% - 2px)" 
        rx="1.4rem" 
        fill="none" 
        stroke="url(#gradient-travel)" 
        stroke-width="0" 
        stroke-linecap="round"
        pathLength="1"
        class="border-draw" 
        style="stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 0.6s ease-in-out, stroke-width 0.2s;" />
    </svg>
  </div>
  <style>
    .group:hover .border-draw {
      stroke-dashoffset: 0 !important;
      stroke-width: 2px !important;
    }
  </style>
  <div class="flex items-start gap-4">
    <div class="relative flex-shrink-0">
        <div class="w-16 h-16 rounded-2xl bg-gradient-to-br from-blue-500 to-indigo-600 flex items-center justify-center text-white text-2xl font-bold shadow-sm ring-1 ring-white/20">
          J
        </div>
    </div>

    <div class="flex-1 min-w-0">
        <p class="text-lg font-bold text-slate-900 dark:text-white truncate group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors">
          jenwiles.com
        </p>

      <div class="mt-2">
        <span class="inline-flex items-center bg-emerald-50 dark:bg-emerald-500/10 px-2.5 py-1 rounded-full border border-emerald-100 dark:border-emerald-400/20">
          <span class="text-[10px] font-bold text-emerald-600 dark:text-emerald-400 uppercase tracking-wider leading-none">
            Travel
          </span>
        </span>
      </div>
    </div>
  </div>

    <div class="mt-4 flex-1" data-controller="read-more">
      <p class="text-slate-600 dark:text-slate-300 text-sm line-clamp-3 leading-relaxed" data-read-more-target="content">
        Posts from my frequent travel, both in the US and across the globe.
      </p>
      
    </div>

  <div class="flex items-center justify-between mt-6 pt-4 border-t border-slate-100 dark:border-slate-700/50">
    <a target="_blank" rel="noopener" class="inline-flex items-center gap-2 px-5 py-2.5 bg-slate-900 dark:bg-white text-white dark:text-slate-900 text-sm font-bold rounded-xl hover:bg-blue-600 dark:hover:bg-blue-400 dark:hover:text-white transition-all active:scale-95" href="https://jenwiles.com">
      Visit Site
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-4 h-4">
        <path fill-rule="evenodd" d="M4.25 5.5a.75.75 0 00-.75.75v8.5c0 .414.336.75.75.75h8.5a.75.75 0 00.75-.75v-4a.75.75 0 011.5 0v4A2.25 2.25 0 0112.75 17h-8.5A2.25 2.25 0 012 14.75v-8.5A2.25 2.25 0 014.25 4h5a.75.75 0 010 1.5h-5z" clip-rule="evenodd" />
        <path fill-rule="evenodd" d="M6.194 12.753a.75.75 0 001.06.053L16.5 4.44v2.81a.75.75 0 001.5 0v-4.5a.75.75 0 00-.75-.75h-4.5a.75.75 0 000 1.5h2.81l-9.313 8.3c-.303.27-.327.734-.053 1.053z" clip-rule="evenodd" />
      </svg>
</a>    
  </div>
</div>

      <div class="not-prose group relative h-full flex flex-col bg-white/50 dark:bg-slate-800/50 backdrop-blur-sm rounded-3xl border border-slate-200/60 dark:border-slate-700/50 p-6 hover:bg-white dark:hover:bg-slate-800 hover:shadow-2xl hover:shadow-blue-500/10 hover:-translate-y-1 transition-all duration-300 animate-fade-in-up opacity-0" style="animation-delay: 200ms; animation-fill-mode: forwards;">
  <div class="absolute inset-0 rounded-3xl pointer-events-none overflow-hidden">
    <svg class="absolute inset-0 w-full h-full" xmlns="http://www.w3.org/2000/svg">
      <rect 
        x="1" y="1" 
        width="calc(100% - 2px)" height="calc(100% - 2px)" 
        rx="1.4rem" 
        fill="none" 
        stroke="url(#gradient-personal)" 
        stroke-width="0" 
        stroke-linecap="round"
        pathLength="1"
        class="border-draw" 
        style="stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 0.6s ease-in-out, stroke-width 0.2s;" />
    </svg>
  </div>
  <style>
    .group:hover .border-draw {
      stroke-dashoffset: 0 !important;
      stroke-width: 2px !important;
    }
  </style>
  <div class="flex items-start gap-4">
    <div class="relative flex-shrink-0">
        <img class="w-16 h-16 rounded-2xl object-cover shadow-sm ring-1 ring-slate-200 dark:ring-slate-700" alt="Coffee with Aaron" src="https://tinylytics.app/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbGNIIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--71073e513b2699012e7bcd2373297ebf0b2ff4db/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lKYW5CbFp3WTZCa1ZVT2hSeVpYTnBlbVZmZEc5ZmJHbHRhWFJiQjJsOWFYMD0iLCJleHAiOm51bGwsInB1ciI6InZhcmlhdGlvbiJ9fQ==--dda3eb01733772f24d2ba20d7da047add6354185/CWAavatar.jpeg" />
    </div>

    <div class="flex-1 min-w-0">
        <p class="text-lg font-bold text-slate-900 dark:text-white truncate group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors">
          cwa.omg.lol
        </p>

      <div class="mt-2">
        <span class="inline-flex items-center bg-blue-50 dark:bg-blue-500/10 px-2.5 py-1 rounded-full border border-blue-100 dark:border-blue-400/20">
          <span class="text-[10px] font-bold text-blue-600 dark:text-blue-400 uppercase tracking-wider leading-none">
            Personal Blog
          </span>
        </span>
      </div>
    </div>
  </div>

    <div class="mt-4 flex-1" data-controller="read-more">
      <p class="text-slate-600 dark:text-slate-300 text-sm line-clamp-3 leading-relaxed" data-read-more-target="content">
        Life from my vantage point, with plenty of coffee. 
      </p>
      
    </div>

  <div class="flex items-center justify-between mt-6 pt-4 border-t border-slate-100 dark:border-slate-700/50">
    <a target="_blank" rel="noopener" class="inline-flex items-center gap-2 px-5 py-2.5 bg-slate-900 dark:bg-white text-white dark:text-slate-900 text-sm font-bold rounded-xl hover:bg-blue-600 dark:hover:bg-blue-400 dark:hover:text-white transition-all active:scale-95" href="https://cwa.omg.lol">
      Visit Site
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-4 h-4">
        <path fill-rule="evenodd" d="M4.25 5.5a.75.75 0 00-.75.75v8.5c0 .414.336.75.75.75h8.5a.75.75 0 00.75-.75v-4a.75.75 0 011.5 0v4A2.25 2.25 0 0112.75 17h-8.5A2.25 2.25 0 012 14.75v-8.5A2.25 2.25 0 014.25 4h5a.75.75 0 010 1.5h-5z" clip-rule="evenodd" />
        <path fill-rule="evenodd" d="M6.194 12.753a.75.75 0 001.06.053L16.5 4.44v2.81a.75.75 0 001.5 0v-4.5a.75.75 0 00-.75-.75h-4.5a.75.75 0 000 1.5h2.81l-9.313 8.3c-.303.27-.327.734-.053 1.053z" clip-rule="evenodd" />
      </svg>
</a>    
  </div>
</div>

      <div class="not-prose group relative h-full flex flex-col bg-white/50 dark:bg-slate-800/50 backdrop-blur-sm rounded-3xl border border-slate-200/60 dark:border-slate-700/50 p-6 hover:bg-white dark:hover:bg-slate-800 hover:shadow-2xl hover:shadow-blue-500/10 hover:-translate-y-1 transition-all duration-300 animate-fade-in-up opacity-0" style="animation-delay: 250ms; animation-fill-mode: forwards;">
  <div class="absolute inset-0 rounded-3xl pointer-events-none overflow-hidden">
    <svg class="absolute inset-0 w-full h-full" xmlns="http://www.w3.org/2000/svg">
      <rect 
        x="1" y="1" 
        width="calc(100% - 2px)" height="calc(100% - 2px)" 
        rx="1.4rem" 
        fill="none" 
        stroke="url(#gradient-tech)" 
        stroke-width="0" 
        stroke-linecap="round"
        pathLength="1"
        class="border-draw" 
        style="stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 0.6s ease-in-out, stroke-width 0.2s;" />
    </svg>
  </div>
  <style>
    .group:hover .border-draw {
      stroke-dashoffset: 0 !important;
      stroke-width: 2px !important;
    }
  </style>
  <div class="flex items-start gap-4">
    <div class="relative flex-shrink-0">
        <img class="w-16 h-16 rounded-2xl object-cover shadow-sm ring-1 ring-slate-200 dark:ring-slate-700" alt="The Psalms" src="https://tinylytics.app/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBZ3NPIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--7b4986fd757fa2a7ba689196042c00ea87e1c812/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2RkhKbGMybDZaVjkwYjE5c2FXMXBkRnNIYVgxcGZRPT0iLCJleHAiOm51bGwsInB1ciI6InZhcmlhdGlvbiJ9fQ==--ffb30abfec645c9b5570dbfd56e65a86017ad312/pYmh8cF.png" />
    </div>

    <div class="flex-1 min-w-0">
        <p class="text-lg font-bold text-slate-900 dark:text-white truncate group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors">
          bilge.world
        </p>

      <div class="mt-2">
        <span class="inline-flex items-center bg-indigo-50 dark:bg-indigo-500/10 px-2.5 py-1 rounded-full border border-indigo-100 dark:border-indigo-400/20">
          <span class="text-[10px] font-bold text-indigo-600 dark:text-indigo-400 uppercase tracking-wider leading-none">
            Tech &amp; Programming
          </span>
        </span>
      </div>
    </div>
  </div>

    <div class="mt-4 flex-1" data-controller="read-more">
      <p class="text-slate-600 dark:text-slate-300 text-sm line-clamp-3 leading-relaxed" data-read-more-target="content">
        A World Wide Web Blog written by 𝒟𝒶𝓋𝒾𝒹 ℬ𝓁𝓊ℯ (good morning!) observing and selectively amplifying the characters, organizations, and stories surrounding the most abrupt, profound, and spectacular communicative renaissance in the history of the human species. 

Less abstractly, its beat is **wholly digital**, namely in **tools** (software, services, and methodologies) and **culture** (music, film, podcasts, and media) from a distinct lens established at good distance from California.
      </p>
      
        <button type="button" 
                class="text-xs font-bold text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 mt-2 transition-colors p-0 active:scale-95" 
                data-action="click->read-more#toggle" 
                data-read-more-target="button">
          Show more
        </button>
    </div>

  <div class="flex items-center justify-between mt-6 pt-4 border-t border-slate-100 dark:border-slate-700/50">
    <a target="_blank" rel="noopener" class="inline-flex items-center gap-2 px-5 py-2.5 bg-slate-900 dark:bg-white text-white dark:text-slate-900 text-sm font-bold rounded-xl hover:bg-blue-600 dark:hover:bg-blue-400 dark:hover:text-white transition-all active:scale-95" href="https://bilge.world">
      Visit Site
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-4 h-4">
        <path fill-rule="evenodd" d="M4.25 5.5a.75.75 0 00-.75.75v8.5c0 .414.336.75.75.75h8.5a.75.75 0 00.75-.75v-4a.75.75 0 011.5 0v4A2.25 2.25 0 0112.75 17h-8.5A2.25 2.25 0 012 14.75v-8.5A2.25 2.25 0 014.25 4h5a.75.75 0 010 1.5h-5z" clip-rule="evenodd" />
        <path fill-rule="evenodd" d="M6.194 12.753a.75.75 0 001.06.053L16.5 4.44v2.81a.75.75 0 001.5 0v-4.5a.75.75 0 00-.75-.75h-4.5a.75.75 0 000 1.5h2.81l-9.313 8.3c-.303.27-.327.734-.053 1.053z" clip-rule="evenodd" />
      </svg>
</a>    
  </div>
</div>

      <div class="not-prose group relative h-full flex flex-col bg-white/50 dark:bg-slate-800/50 backdrop-blur-sm rounded-3xl border border-slate-200/60 dark:border-slate-700/50 p-6 hover:bg-white dark:hover:bg-slate-800 hover:shadow-2xl hover:shadow-blue-500/10 hover:-translate-y-1 transition-all duration-300 animate-fade-in-up opacity-0" style="animation-delay: 300ms; animation-fill-mode: forwards;">
  <div class="absolute inset-0 rounded-3xl pointer-events-none overflow-hidden">
    <svg class="absolute inset-0 w-full h-full" xmlns="http://www.w3.org/2000/svg">
      <rect 
        x="1" y="1" 
        width="calc(100% - 2px)" height="calc(100% - 2px)" 
        rx="1.4rem" 
        fill="none" 
        stroke="url(#gradient-personal)" 
        stroke-width="0" 
        stroke-linecap="round"
        pathLength="1"
        class="border-draw" 
        style="stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 0.6s ease-in-out, stroke-width 0.2s;" />
    </svg>
  </div>
  <style>
    .group:hover .border-draw {
      stroke-dashoffset: 0 !important;
      stroke-width: 2px !important;
    }
  </style>
  <div class="flex items-start gap-4">
    <div class="relative flex-shrink-0">
        <div class="w-16 h-16 rounded-2xl bg-gradient-to-br from-blue-500 to-indigo-600 flex items-center justify-center text-white text-2xl font-bold shadow-sm ring-1 ring-white/20">
          P
        </div>
    </div>

    <div class="flex-1 min-w-0">
        <h3 class="text-xl font-bold text-slate-900 dark:text-white truncate mb-0.5 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors">
          Pablo&#39;s Space
        </h3>
        <p class="text-sm text-slate-500 dark:text-slate-400 font-medium truncate">
          pablo.space
        </p>

      <div class="mt-2">
        <span class="inline-flex items-center bg-blue-50 dark:bg-blue-500/10 px-2.5 py-1 rounded-full border border-blue-100 dark:border-blue-400/20">
          <span class="text-[10px] font-bold text-blue-600 dark:text-blue-400 uppercase tracking-wider leading-none">
            Personal Blog
          </span>
        </span>
      </div>
    </div>
  </div>

    <div class="mt-4 flex-1" data-controller="read-more">
      <p class="text-slate-600 dark:text-slate-300 text-sm line-clamp-3 leading-relaxed" data-read-more-target="content">
        My personal blog, just everything I love and too much tech.
      </p>
      
    </div>

  <div class="flex items-center justify-between mt-6 pt-4 border-t border-slate-100 dark:border-slate-700/50">
    <a target="_blank" rel="noopener" class="inline-flex items-center gap-2 px-5 py-2.5 bg-slate-900 dark:bg-white text-white dark:text-slate-900 text-sm font-bold rounded-xl hover:bg-blue-600 dark:hover:bg-blue-400 dark:hover:text-white transition-all active:scale-95" href="https://pablo.space">
      Visit Site
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-4 h-4">
        <path fill-rule="evenodd" d="M4.25 5.5a.75.75 0 00-.75.75v8.5c0 .414.336.75.75.75h8.5a.75.75 0 00.75-.75v-4a.75.75 0 011.5 0v4A2.25 2.25 0 0112.75 17h-8.5A2.25 2.25 0 012 14.75v-8.5A2.25 2.25 0 014.25 4h5a.75.75 0 010 1.5h-5z" clip-rule="evenodd" />
        <path fill-rule="evenodd" d="M6.194 12.753a.75.75 0 001.06.053L16.5 4.44v2.81a.75.75 0 001.5 0v-4.5a.75.75 0 00-.75-.75h-4.5a.75.75 0 000 1.5h2.81l-9.313 8.3c-.303.27-.327.734-.053 1.053z" clip-rule="evenodd" />
      </svg>
</a>    
      <div class="flex flex-col items-end">
        <span class="text-[10px] font-bold text-slate-400 dark:text-slate-500 uppercase tracking-widest">Lifetime Views</span>
        <span class="text-sm font-black text-slate-700 dark:text-slate-300">166</span>
      </div>
  </div>
</div>

      <div class="not-prose group relative h-full flex flex-col bg-white/50 dark:bg-slate-800/50 backdrop-blur-sm rounded-3xl border border-slate-200/60 dark:border-slate-700/50 p-6 hover:bg-white dark:hover:bg-slate-800 hover:shadow-2xl hover:shadow-blue-500/10 hover:-translate-y-1 transition-all duration-300 animate-fade-in-up opacity-0" style="animation-delay: 350ms; animation-fill-mode: forwards;">
  <div class="absolute inset-0 rounded-3xl pointer-events-none overflow-hidden">
    <svg class="absolute inset-0 w-full h-full" xmlns="http://www.w3.org/2000/svg">
      <rect 
        x="1" y="1" 
        width="calc(100% - 2px)" height="calc(100% - 2px)" 
        rx="1.4rem" 
        fill="none" 
        stroke="url(#gradient-other)" 
        stroke-width="0" 
        stroke-linecap="round"
        pathLength="1"
        class="border-draw" 
        style="stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 0.6s ease-in-out, stroke-width 0.2s;" />
    </svg>
  </div>
  <style>
    .group:hover .border-draw {
      stroke-dashoffset: 0 !important;
      stroke-width: 2px !important;
    }
  </style>
  <div class="flex items-start gap-4">
    <div class="relative flex-shrink-0">
        <img class="w-16 h-16 rounded-2xl object-cover shadow-sm ring-1 ring-slate-200 dark:ring-slate-700" alt="NeoCities" src="https://tinylytics.app/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdUF5IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--10d21fd5c5c529c141722622a9301c705c2561a5/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2RkhKbGMybDZaVjkwYjE5c2FXMXBkRnNIYVgxcGZRPT0iLCJleHAiOm51bGwsInB1ciI6InZhcmlhdGlvbiJ9fQ==--ffb30abfec645c9b5570dbfd56e65a86017ad312/IMG_2173.png" />
    </div>

    <div class="flex-1 min-w-0">
        <p class="text-lg font-bold text-slate-900 dark:text-white truncate group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors">
          davidblue.wtf
        </p>

      <div class="mt-2">
        <span class="inline-flex items-center bg-amber-50 dark:bg-amber-500/10 px-2.5 py-1 rounded-full border border-amber-100 dark:border-amber-400/20">
          <span class="text-[10px] font-bold text-amber-600 dark:text-amber-400 uppercase tracking-wider leading-none">
            Other
          </span>
        </span>
      </div>
    </div>
  </div>

    <div class="mt-4 flex-1" data-controller="read-more">
      <p class="text-slate-600 dark:text-slate-300 text-sm line-clamp-3 leading-relaxed" data-read-more-target="content">
        It&#39;s very possible that my main (of like 14...) NeoCities website is the single most detrimentally disorganized directory in the history of the World Wide Web.
      </p>
      
        <button type="button" 
                class="text-xs font-bold text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 mt-2 transition-colors p-0 active:scale-95" 
                data-action="click->read-more#toggle" 
                data-read-more-target="button">
          Show more
        </button>
    </div>

  <div class="flex items-center justify-between mt-6 pt-4 border-t border-slate-100 dark:border-slate-700/50">
    <a target="_blank" rel="noopener" class="inline-flex items-center gap-2 px-5 py-2.5 bg-slate-900 dark:bg-white text-white dark:text-slate-900 text-sm font-bold rounded-xl hover:bg-blue-600 dark:hover:bg-blue-400 dark:hover:text-white transition-all active:scale-95" href="https://davidblue.wtf">
      Visit Site
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-4 h-4">
        <path fill-rule="evenodd" d="M4.25 5.5a.75.75 0 00-.75.75v8.5c0 .414.336.75.75.75h8.5a.75.75 0 00.75-.75v-4a.75.75 0 011.5 0v4A2.25 2.25 0 0112.75 17h-8.5A2.25 2.25 0 012 14.75v-8.5A2.25 2.25 0 014.25 4h5a.75.75 0 010 1.5h-5z" clip-rule="evenodd" />
        <path fill-rule="evenodd" d="M6.194 12.753a.75.75 0 001.06.053L16.5 4.44v2.81a.75.75 0 001.5 0v-4.5a.75.75 0 00-.75-.75h-4.5a.75.75 0 000 1.5h2.81l-9.313 8.3c-.303.27-.327.734-.053 1.053z" clip-rule="evenodd" />
      </svg>
</a>    
  </div>
</div>

      <div class="not-prose group relative h-full flex flex-col bg-white/50 dark:bg-slate-800/50 backdrop-blur-sm rounded-3xl border border-slate-200/60 dark:border-slate-700/50 p-6 hover:bg-white dark:hover:bg-slate-800 hover:shadow-2xl hover:shadow-blue-500/10 hover:-translate-y-1 transition-all duration-300 animate-fade-in-up opacity-0" style="animation-delay: 400ms; animation-fill-mode: forwards;">
  <div class="absolute inset-0 rounded-3xl pointer-events-none overflow-hidden">
    <svg class="absolute inset-0 w-full h-full" xmlns="http://www.w3.org/2000/svg">
      <rect 
        x="1" y="1" 
        width="calc(100% - 2px)" height="calc(100% - 2px)" 
        rx="1.4rem" 
        fill="none" 
        stroke="url(#gradient-tech)" 
        stroke-width="0" 
        stroke-linecap="round"
        pathLength="1"
        class="border-draw" 
        style="stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 0.6s ease-in-out, stroke-width 0.2s;" />
    </svg>
  </div>
  <style>
    .group:hover .border-draw {
      stroke-dashoffset: 0 !important;
      stroke-width: 2px !important;
    }
  </style>
  <div class="flex items-start gap-4">
    <div class="relative flex-shrink-0">
        <img class="w-16 h-16 rounded-2xl object-cover shadow-sm ring-1 ring-slate-200 dark:ring-slate-700" alt="CybersecKyle" src="https://tinylytics.app/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBcE00IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--f29e1e2989ef467f259bc427211f6df8345f5a66/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2RkhKbGMybDZaVjkwYjE5c2FXMXBkRnNIYVgxcGZRPT0iLCJleHAiOm51bGwsInB1ciI6InZhcmlhdGlvbiJ9fQ==--ffb30abfec645c9b5570dbfd56e65a86017ad312/icon-rounded-apple-style.png" />
    </div>

    <div class="flex-1 min-w-0">
        <p class="text-lg font-bold text-slate-900 dark:text-white truncate group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors">
          www.kylereddoch.me
        </p>

      <div class="mt-2">
        <span class="inline-flex items-center bg-indigo-50 dark:bg-indigo-500/10 px-2.5 py-1 rounded-full border border-indigo-100 dark:border-indigo-400/20">
          <span class="text-[10px] font-bold text-indigo-600 dark:text-indigo-400 uppercase tracking-wider leading-none">
            Tech &amp; Programming
          </span>
        </span>
      </div>
    </div>
  </div>

    <div class="mt-4 flex-1" data-controller="read-more">
      <p class="text-slate-600 dark:text-slate-300 text-sm line-clamp-3 leading-relaxed" data-read-more-target="content">
        CybersecKyle is the personal site of Kyle Reddoch, a cybersecurity expert and IT professional sharing practical guides, incident lessons, everyday defense tips, and more.
      </p>
      
    </div>

  <div class="flex items-center justify-between mt-6 pt-4 border-t border-slate-100 dark:border-slate-700/50">
    <a target="_blank" rel="noopener" class="inline-flex items-center gap-2 px-5 py-2.5 bg-slate-900 dark:bg-white text-white dark:text-slate-900 text-sm font-bold rounded-xl hover:bg-blue-600 dark:hover:bg-blue-400 dark:hover:text-white transition-all active:scale-95" href="https://www.kylereddoch.me">
      Visit Site
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-4 h-4">
        <path fill-rule="evenodd" d="M4.25 5.5a.75.75 0 00-.75.75v8.5c0 .414.336.75.75.75h8.5a.75.75 0 00.75-.75v-4a.75.75 0 011.5 0v4A2.25 2.25 0 0112.75 17h-8.5A2.25 2.25 0 012 14.75v-8.5A2.25 2.25 0 014.25 4h5a.75.75 0 010 1.5h-5z" clip-rule="evenodd" />
        <path fill-rule="evenodd" d="M6.194 12.753a.75.75 0 001.06.053L16.5 4.44v2.81a.75.75 0 001.5 0v-4.5a.75.75 0 00-.75-.75h-4.5a.75.75 0 000 1.5h2.81l-9.313 8.3c-.303.27-.327.734-.053 1.053z" clip-rule="evenodd" />
      </svg>
</a>    
  </div>
</div>

  </div>

</template></turbo-stream>