<!doctype html><html lang="es">  <head>    <meta charset="UTF-8" />    <link rel="preconnect" href="https://fonts.googleapis.com" />    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Inter+Tight:wght@600;700;800;900&display=swap" rel="stylesheet" />    <link rel="preconnect" href="https://firebasestorage.googleapis.com" crossorigin />    <link rel="dns-prefetch" href="https://firebasestorage.googleapis.com" />    <link rel="preconnect" href="https://lh3.googleusercontent.com" crossorigin />    <link rel="preload" as="image" href="/DARK LOGO (1).png" fetchpriority="high" />    <!-- Favicon Google/SEO: llave negra sobre fondo blanco (48Ã—48+ obligatorio para Search) -->                            <link rel="apple-touch-icon" href="/brand/icons/apple-touch-icon.png?v=cs260822" sizes="180x180" />        <meta name="msapplication-TileImage" content="/brand/icons/favicon-192.png?v=cs260822" />    <meta name="msapplication-TileColor" content="#ffffff" />        <!-- viewport-fit=cover: content extends into safe areas; iOS Safari bottom bar -->    <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />    <meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin-allow-popups" />    <meta name="mobile-web-app-capable" content="yes" />    <meta name="apple-mobile-web-app-capable" content="yes" />    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />    <meta name="color-scheme" content="light" />    <meta name="theme-color" content="#ffffff" />    <script>    (function () {      try {        var t = localStorage.getItem('clubsive_theme');        var theme = t === 'dark' ? 'dark' : 'light';        var root = document.documentElement;        root.classList.add(theme === 'light' ? 'light-theme' : 'dark-theme');        root.classList.remove(theme === 'light' ? 'dark-theme' : 'light-theme');        root.style.colorScheme = theme;        var meta = document.querySelector('meta[name="theme-color"]');        if (meta) meta.setAttribute('content', theme === 'light' ? '#e4e6ea' : '#121212');        var cs = document.querySelector('meta[name="color-scheme"]');        if (cs) cs.setAttribute('content', theme);      } catch (e) {        document.documentElement.classList.add('light-theme');      }    })();    </script>        <!-- CLUBSIVE_SEO_HEAD_START -->
    <!-- SEO clubsive.com (build-time) -->
    <title>Clubsive — El ecosistema nightlife que conecta personas, discotecas y DJs</title>
    <meta name="description" content="Descubre dónde salir, sigue discotecas y DJs, escucha música, lee reseñas y conecta con la comunidad nightlife. Algunos eventos se compran en Clubsive; otros te redirigen a un proveedor externo." />
    <meta name="keywords" content="Clubsive, app nightlife, discotecas y eventos, red social de discotecas, comunidad nightlife, DJs y música electrónica, reseñas de discotecas, planes para salir" />
    <meta name="author" content="Clubsive" />
    <meta name="publisher" content="Clubsive" />
    <meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1" />
    <meta name="googlebot" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1" />
    <meta name="theme-color" content="#0a0e18" />
    <meta name="application-name" content="Clubsive" />
    <meta name="apple-mobile-web-app-title" content="Clubsive" />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="mobile-web-app-capable" content="yes" />
    <link rel="canonical" href="https://clubsive.com/" />
    <link rel="manifest" href="https://clubsive.com/manifest.webmanifest" />
    <!-- Google favicon: 48×48 PNG primero (sin duplicados); cache-bust forzado -->
    <link rel="icon" type="image/png" sizes="48x48" href="https://clubsive.com/brand/icons/favicon-48.png?v=cs26091616" />
    <link rel="icon" type="image/png" sizes="192x192" href="https://clubsive.com/brand/icons/favicon-192.png?v=cs26091616" />
    <link rel="icon" type="image/png" sizes="512x512" href="https://clubsive.com/brand/icons/favicon-512.png?v=cs26091616" />
    <link rel="apple-touch-icon" sizes="180x180" href="https://clubsive.com/brand/icons/apple-touch-icon.png?v=cs26091616" />
    <link rel="shortcut icon" href="https://clubsive.com/brand/icons/favicon.ico?v=cs26091616" />
    <link rel="icon" href="https://clubsive.com/brand/icons/favicon.ico?v=cs26091616" sizes="any" />
    <link rel="alternate" hreflang="es-ES" href="https://clubsive.com/" />
    <link rel="alternate" hreflang="es-app" href="https://clubsive.app/app" />
    <link rel="alternate" hreflang="es-events" href="https://clubsive.events/events" />
    <link rel="alternate" hreflang="es-club" href="https://clubsive.club/club" />
    <link rel="alternate" hreflang="es-social" href="https://clubsive.social/social" />
    <link rel="alternate" hreflang="x-default" href="https://clubsive.com/" />

    <meta property="og:type" content="website" />
    <meta property="og:site_name" content="Clubsive" />
    <meta property="og:locale" content="es_ES" />
    <meta property="og:url" content="https://clubsive.com/" />
    <meta property="og:title" content="Clubsive — El ecosistema nightlife que conecta personas, discotecas y DJs" />
    <meta property="og:description" content="Descubre dónde salir, sigue discotecas y DJs, escucha música, lee reseñas y conecta con la comunidad nightlife. Algunos eventos se compran en Clubsive; otros te redirigen a un proveedor externo." />
    <meta property="og:image" content="https://clubsive.com/images/marketing/og-default.png" />
    <meta property="og:image:secure_url" content="https://clubsive.com/images/marketing/og-default.png" />
    <meta property="og:image:type" content="image/png" />
    <meta property="og:image:width" content="1200" />
    <meta property="og:image:height" content="630" />
    <meta property="og:image:alt" content="Clubsive — ecosistema nightlife" />

    <meta name="twitter:card" content="summary_large_image" />
    <meta name="twitter:site" content="@clubsive" />
    <meta name="twitter:creator" content="@clubsive" />
    <meta name="twitter:url" content="https://clubsive.com/" />
    <meta name="twitter:title" content="Clubsive — El ecosistema nightlife que conecta personas, discotecas y DJs" />
    <meta name="twitter:description" content="Descubre dónde salir, sigue discotecas y DJs, escucha música, lee reseñas y conecta con la comunidad nightlife. Algunos eventos se compran en Clubsive; otros te redirigen a un proveedor externo." />
    <meta name="twitter:image" content="https://clubsive.com/images/marketing/og-default.png" />
    <meta name="twitter:image:alt" content="Clubsive — ecosistema nightlife" />

    <link rel="sitemap" type="application/xml" href="https://clubsive.com/sitemap-index.xml" />
    <script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://clubsive.com/#organization","name":"Clubsive","legalName":"Clubsive","url":"https://clubsive.com/","logo":{"@type":"ImageObject","contentUrl":"https://clubsive.com/brand/clubsive-logo.png","url":"https://clubsive.com/brand/clubsive-logo.png","name":"Logo Clubsive","caption":"Logotipo oficial Clubsive: llave negra sobre fondo blanco","width":512,"height":512,"representativeOfPage":true,"creditText":"Clubsive","copyrightNotice":"© 2026 Clubsive"},"image":[{"@type":"ImageObject","contentUrl":"https://clubsive.com/images/marketing/og-default.png","url":"https://clubsive.com/images/marketing/og-default.png","name":"Clubsive Open Graph","width":1200,"height":630,"representativeOfPage":true,"creditText":"Clubsive","copyrightNotice":"© 2026 Clubsive"},"https://clubsive.com/brand/clubsive-key-mark.png","https://clubsive.com/images/marketing/magazine-launch.png"],"description":"Descubre dónde salir, sigue discotecas y DJs, escucha música, lee reseñas y conecta con la comunidad nightlife. Algunos eventos se compran en Clubsive; otros te redirigen a un proveedor externo.","slogan":"El ecosistema que conecta la noche","knowsAbout":["nightlife","discotecas","eventos","eventos hoy","dónde salir esta noche","planes","planes esta noche","DJs","música electrónica","comunidad nightlife","fiesta Madrid","fiesta Barcelona","discotecas España"],"areaServed":{"@type":"Country","name":"Spain"},"sameAs":["https://clubsive.com","https://clubsive.app","https://clubsive.events","https://clubsive.club","https://clubsive.social","https://instagram.com/clubsive","https://www.youtube.com/@clubsive","https://www.tiktok.com/@clubsive"],"contactPoint":[{"@type":"ContactPoint","contactType":"customer support","email":"clubsive.info@gmail.com","url":"https://clubsive.com/contact","availableLanguage":["Spanish","English"]}],"brand":{"@type":"Brand","name":"Clubsive","logo":"https://clubsive.com/brand/clubsive-logo.png","url":"https://clubsive.com/"},"alternateName":["Clubsive Nightlife"]},{"@type":"WebSite","@id":"https://clubsive.com/#website","name":"Clubsive","url":"https://clubsive.com/","description":"Descubre dónde salir, sigue discotecas y DJs, escucha música, lee reseñas y conecta con la comunidad nightlife. Algunos eventos se compran en Clubsive; otros te redirigen a un proveedor externo.","inLanguage":"es-ES","publisher":{"@id":"https://clubsive.com/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://clubsive.com/search?q={search_term_string}"},"query-input":"required name=search_term_string"}},{"@context":"https://schema.org","@type":"FAQPage","url":"https://clubsive.com/faq","mainEntity":[{"@type":"Question","name":"¿Clubsive vende entradas?","acceptedAnswer":{"@type":"Answer","text":"Algunos eventos se pueden comprar en Clubsive. Otros se completan en un proveedor externo."}},{"@type":"Question","name":"¿Qué diferencia hay entre .com, .app, .events, .club y .social?","acceptedAnswer":{"@type":"Answer","text":"Misma marca, cinco productos: identidad, app, descubrimiento de eventos, SaaS para salas y capa social."}}]}]}</script>
    <!-- CLUBSIVE_SEO_HEAD_END -->        <!-- PWA Meta Tags -->    <meta name="application-name" content="Clubsive" />    <meta name="apple-mobile-web-app-title" content="Clubsive" />    <meta name="format-detection" content="telephone=no" />    <meta name="msapplication-TileColor" content="#121212" />    <meta name="msapplication-tap-highlight" content="no" />        <!-- Critical Resource Hints para Performance -->    <link rel="dns-prefetch" href="//fonts.googleapis.com" />    <link rel="dns-prefetch" href="//fonts.gstatic.com" />    <link rel="dns-prefetch" href="//firestore.googleapis.com" />    <link rel="dns-prefetch" href="//firebasestorage.googleapis.com" />    <link rel="dns-prefetch" href="//www.google-analytics.com" />    <link rel="dns-prefetch" href="//www.googletagmanager.com" />    <link rel="dns-prefetch" href="//maps.googleapis.com" />    <link rel="dns-prefetch" href="//api.mapbox.com" />        <link rel="preconnect" href="https://firestore.googleapis.com" />    <link rel="preconnect" href="https://firebasestorage.googleapis.com" />        <!-- Additional Links for SEO -->    <link rel="sitemap" type="application/xml" href="/sitemap.xml" />        <style>      /* Consistente con tailwind: negro base, gradiente lo pinta la capa fija (Tailwind) */      :root {        --app-top-bg: #0b1f4b;        --app-bg: #ffffff;        --safe-bottom: env(safe-area-inset-bottom, 0px);        --screen-pad-bottom: calc(16px + var(--safe-bottom));        --screen-pad-top: env(safe-area-inset-top, 0px);      }      html, body {        margin: 0;        padding: 0;        min-height: 100%;        min-height: 100dvh;        min-height: 100svh;        min-height: -webkit-fill-available;        overscroll-behavior-y: contain; background: transparent;      }      #root {        background: transparent;        min-height: 100%;        min-height: 100dvh;        min-height: -webkit-fill-available;        padding: 0;        margin: 0;      }      /* iOS Safari: pinta env(safe-area-inset-bottom) con #000 (negro mÃ¡ximo) por defecto */  #ios-safe-bottom {        position: fixed;        bottom: 0;        left: 0;        right: 0;        height: env(safe-area-inset-bottom, 0px);        min-height: env(safe-area-inset-bottom, 0px);        background: #ffffff;        pointer-events: none;        z-index: 1;      }      /* iOS notch: solo blur (sin tinte ni lÃ­nea) para fundir la barra de estado con la pantalla */      #ios-safe-top {        position: fixed;        top: 0; left: 0; right: 0;        height: env(safe-area-inset-top);        min-height: env(safe-area-inset-top);        background: transparent;        border-bottom: none;        backdrop-filter: blur(20px) saturate(140%);        -webkit-backdrop-filter: blur(20px) saturate(140%);        transform: translateZ(0);        -webkit-transform: translateZ(0);        z-index: 2147483647;        pointer-events: none;      }      @supports not (backdrop-filter: blur(1px)) {        #ios-safe-top {          background: rgba(10, 18, 35, 0.85);        }      }            /* Favicon con esquinas redondeadas */      link[rel="icon"] {        border-radius: 25% !important;        clip-path: inset(0 round 25%) !important;      }            link[rel*="icon"] {        border-radius: 8px !important;      }      /* Loading (antes de que React monte) â€” blur + logo grande, 1 giro (igual Splash/LoadingScreen) */      .app-loading {        position: fixed;        inset: 0;        top: 0;        right: 0;        bottom: 0;        left: 0;        width: 100vw;        width: 100dvw;        height: 100vh;        height: 100dvh;        z-index: 2147483000;        display: flex;        align-items: center;        justify-content: center;        padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);        box-sizing: border-box;        background: var(--app-bg, #121212); backdrop-filter: none; -webkit-backdrop-filter: none;        box-shadow: none;      }      .app-loading__logo,      .app-loading img {        width: clamp(120px, 28vw, 200px);        height: auto;        max-height: min(40vh, 200px);        -o-object-fit: contain;        object-fit: contain;        filter: drop-shadow(0 8px 32px rgba(0, 0, 0, 0.45));      }      @media (prefers-reduced-motion: no-preference) {        .app-loading__logo--spin,        .app-loading img {          animation: clubsive-boot-logo 1s ease-out 1 forwards;        }      }      @keyframes clubsive-boot-logo {        from { opacity: 0; transform: scale(0.72) rotate(-180deg); }        to { opacity: 1; transform: scale(1) rotate(0deg); }      }      @media (prefers-reduced-motion: reduce) {        .app-loading__logo--spin,        .app-loading img { animation: none; opacity: 1; }      }    </style>    <!-- App version: bump on deploy. Cleanup runs ONLY when version changes. -->    <script>
    (function() {
      'use strict';
      var CACHE_VERSION = '2026091873';
      function needsUpdate() {
        try {
          return localStorage.getItem('appCacheVersion') !== CACHE_VERSION;
        } catch (e) {
          return true;
        }
      }
      function stripCvFromUrl() {
        try {
          var u = new URL(window.location.href);
          if (!u.searchParams.has('_cv')) return;
          u.searchParams.delete('_cv');
          var qs = u.searchParams.toString();
          history.replaceState(null, '', u.pathname + (qs ? '?' + qs : '') + u.hash);
        } catch (e) {}
      }
      function performUpdate() {
        var reloadKey = 'reloaded_' + CACHE_VERSION;
        try {
          if (sessionStorage.getItem(reloadKey) === '1') {
            try { localStorage.setItem('appCacheVersion', CACHE_VERSION); } catch (e) {}
            try {
              var keep = { appCacheVersion:1, theme:1, locale:1, language:1 };
              for (var i = localStorage.length - 1; i >= 0; i--) {
                var k = localStorage.key(i);
                if (!k) continue;
                if (k.indexOf('firebase:') === 0) continue;
                if (keep[k]) continue;
                localStorage.removeItem(k);
              }
            } catch (e3) {}
            stripCvFromUrl();
            return;
          }
        } catch (e) {}
        if ('serviceWorker' in navigator) {
          navigator.serviceWorker.getRegistrations().then(function(regs) {
            regs.forEach(function(r) { r.unregister(); });
          });
        }
        if (window.caches) {
          caches.keys().then(function(names) {
            names.forEach(function(n) { caches.delete(n); });
          });
        }
        try {
          localStorage.setItem('appCacheVersion', CACHE_VERSION);
        } catch (e) {}
        try {
          sessionStorage.setItem(reloadKey, '1');
        } catch (e) {}
        try {
          stripCvFromUrl();
          window.location.reload();
        } catch (e2) {
          window.location.reload();
        }
      }
      stripCvFromUrl();
      if (needsUpdate()) {
        performUpdate();
      } else if (window.caches) {
        try {
          caches.keys().then(function(names) {
            if (!names.length) return;
            var clean = function() { names.forEach(function(n) { caches.delete(n); }); };
            if (window.requestIdleCallback) requestIdleCallback(clean); else setTimeout(clean, 4000);
          });
        } catch (e) {}
      }
    })();
    </script>    <script type="module" crossorigin src="/index-CUg5LQc9.js"></script>
    <link rel="modulepreload" crossorigin href="/router-CxCwqBm-.js">
    <link rel="modulepreload" crossorigin href="/ui-QvYaxkMe.js">
    <link rel="modulepreload" crossorigin href="/firebase-BrlrKkKO.js">
    <link rel="stylesheet" crossorigin href="/index-wTkGCXgN.css">
  </head>  <body>    <!-- iOS notch overlay: fills status bar area -->    <div id="ios-safe-top" aria-hidden="true"></div>    <!-- iOS Safari: pinta env(safe-area-inset-bottom) con #000 (cambia a #0f172a solo en Share/Selector cuenta) -->    <div id="ios-safe-bottom" aria-hidden="true"></div>    <!-- App Root -->    <div id="root">      <!-- CLUBSIVE_PRERENDER_START -->      <div class="app-loading" role="status" aria-label="Cargando Clubsive">        <img class="app-loading__logo app-loading__logo--spin" src="/DARK LOGO (1).png" alt="" />      </div>      <!-- CLUBSIVE_PRERENDER_END -->    </div>        <!-- Main App Entry Point -->        <script>    (function(){
      var BOOT_KEY = 'clubsive-boot-reload';
      setTimeout(function(){
        if (window.__CLUBSIVE_MOUNTED__) return;
        try {
          if (sessionStorage.getItem(BOOT_KEY) !== '1') {
            sessionStorage.setItem(BOOT_KEY, '1');
            location.reload();
            return;
          }
        } catch (e) {}
        var root = document.getElementById('root');
        if (!root) return;
        var boot = root.querySelector('.app-loading');
        if (!boot) return;
        var ink = '#111';
        try {
          if (!document.documentElement.classList.contains('light-theme')) ink = '#f5f5f5';
        } catch (e) {}
        boot.innerHTML = '<div style="font-family:system-ui,sans-serif;text-align:center;padding:24px;color:'+ink+';max-width:20rem;margin:0 auto">'
          + '<img class="app-loading__logo" src="/DARK%20LOGO%20(1).png" alt="" style="width:72px;height:72px;margin:0 auto 16px;display:block" />'
          + '<p style="font-weight:600;margin:0 0 8px">No se pudo cargar</p>'
          + '<p style="opacity:.65;font-size:14px;margin:0 0 16px">Comprueba tu conexion e intentalo de nuevo.</p>'
          + '<button type="button" onclick="location.reload()" style="padding:10px 20px;border-radius:10px;border:0;font-weight:700;background:#2563eb;color:#fff">Reintentar</button>'
          + '</div>';
      }, 12000);
    })();    </script>  </body></html>