<!DOCTYPE html>

<html lang="en-US">
  <head>
    <script type="text/javascript">
  window.currentUserId = null;
  const BUILD_ID = '0.0.1-260603.1839';
  window.build = BUILD_ID;
  window.vapidPublicKey = new Uint8Array([4, 132, 142, 166, 75, 59, 99, 193, 251, 29, 96, 15, 122, 167, 218, 182, 244, 149, 214, 186, 39, 70, 9, 101, 131, 178, 217, 86, 173, 46, 126, 28, 254, 139, 195, 146, 250, 238, 191, 145, 93, 64, 47, 122, 242, 156, 251, 143, 99, 61, 111, 231, 197, 233, 124, 151, 80, 181, 39, 28, 43, 235, 241, 175, 171]);
</script>

<script type="text/javascript" defer>
  function reloadManifest(){
    let link = document.querySelector('link[rel="manifest"]');
    if (!link) {
      // link not found, create it and append it to the head
      link = document.createElement('link');
      link.rel = 'manifest';
      link.href = `/manifest.json`;
      document.head.appendChild(link);
    }
  }

  function logEvent(data = {}) {
    const url = '/client_api/log';

    const headers = { 'Content-Type': 'application/json' };

    return fetch(url, {
      method: 'POST',
      body: JSON.stringify(data),
      headers,
    });
  }

  function windowMedia () {
    return isPWA() ? 'standalone' : 'browser tab';
  }

  function arraysHaveSameContent(a, b) {
    if (a === b) return true;
    if (a == null || b == null || a.length !== b.length) return false;
    for (let i = 0; i < a.length; ++i) {
      if (a[i] !== b[i]) return false;
    }
    return true;
  }

  function isNotificationApiSupported() {
    return 'Notification' in window &&
      'serviceWorker' in navigator &&
      'PushManager' in window;
  }

  function currentSystemPushPermissions() {
    if (!isNotificationApiSupported()) return 'denied';
    return Notification.permission;
  }

  function isPWA () {
    return window.matchMedia(`(display-mode: standalone)`).matches
  }

  const userId = null;
  document.addEventListener('DOMContentLoaded', function () {
    reloadManifest();


    if (isPWA()) {
      document.addEventListener('click', function(event) {
        // Check if the clicked element is an anchor and has target="_blank"
        const target = event.target.closest('a[target="_blank"]');
        if (target) {
          event.preventDefault(); // Prevent the default action

          // Check if the URL is external
          if (target.href.indexOf(location.hostname) === -1) {
            // Optionally open in a new tab, or handle differently
            window.open(target.href, '_blank', 'noopener,noreferrer');
          } else {
            window.location.href = target.href;
          }
        }
      });
    }
  });

  async function resubscribeUser(forceResendInfo = false) {
    const permissions = currentSystemPushPermissions();
    if (permissions === 'denied') return;

    const registration = await navigator.serviceWorker.register("/service-worker.js");
    let serviceWorker;
    if (registration.installing) {
      serviceWorker = registration.installing;
    } else if (registration.waiting) {
      serviceWorker = registration.waiting;
    } else if (registration.active) {
      serviceWorker = registration.active;
    }

    if (serviceWorker) {
      if (serviceWorker.state == "activated") {
        subscribeForPushNotification(registration, forceResendInfo);
      } else {
        serviceWorker.addEventListener("statechange", function(e) {
          if (e.target.state === "activated") {
            subscribeForPushNotification(registration, forceResendInfo);
          }
        });
      }
    }
  }

  async function subscribeForPushNotification(registration, forceResendInfo) {
    try{
      const newBrowserIdentifier = "b405e1dd-dd4d-4eca-90ed-a64a9ccba31e";
      let currentIdentifier = localStorage.getItem('nf-browser-id');

      let deviceIdChanged;
      if (!currentIdentifier) {
        localStorage.setItem('nf-browser-id', newBrowserIdentifier);
        currentIdentifier = newBrowserIdentifier;
        deviceIdChanged = true;
      }

      let subscription = await registration.pushManager.getSubscription();

      if (subscription) {
        const currentSubPublicKey = new Uint8Array(subscription.options.applicationServerKey);
        if(!arraysHaveSameContent(currentSubPublicKey, window.vapidPublicKey)) {
          await subscription.unsubscribe();
          subscription = null;
        }
      } else {
        if (currentSystemPushPermissions() === 'granted') {
          subscription = await registration.pushManager.subscribe({
            userVisibleOnly: true,
            applicationServerKey: window.vapidPublicKey
          });
        }
      }

      const localSub = {
        endpoint: subscription.endpoint,
      }

      let shouldSendInfoToBackend = true;

      const info = localStorage.getItem(`nf-push-subscription`);
      if (info) {
        const oldSub = JSON.parse(info);

        if (oldSub.endpoint !== localSub.endpoint) {
          localStorage.setItem('nf-push-subscription', JSON.stringify(localSub));
        } else {
          shouldSendInfoToBackend = false;
        }
      } else {
        localStorage.setItem('nf-push-subscription', JSON.stringify(localSub));
      }

      if (forceResendInfo || shouldSendInfoToBackend || deviceIdChanged) {
        logEvent({ message: 'Registering web device', event: 'register_web_device', build: self.build });
        // const csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
        try {
          await fetch('/register_web_device', {
            method: 'POST',
            headers: {
              'Content-Type': 'application/json',
              // 'X-CSRF-Token': csrfToken
            },
            body: JSON.stringify({
              subscription: subscription,
              device_id: currentIdentifier,
              display_mode: windowMedia()
            })
          });
        } catch (e) {
          console.log(e);
          logEvent({ message: 'Error registering web device', event: 'register_web_device', build: self.build, error: e.message });
        }
      }

    }  catch (e) {
      console.log(e);
      logEvent({
        message: 'PWA error (subscribeForPushNotification)',
        event: 'pwa_error',
        build: self.build,
        error: e.message
      });
    }
  }
</script>

<link rel="apple-touch-icon" type="image/png" href="/images/apple-touch-icon.png" />
<meta name="application-name" content="NiteFlirt">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="NiteFlirt" />
<meta name="theme-color" content="#000000">
<link rel="manifest" href="/manifest.json" />

      <!-- Google Tag Manager -->
  <script>
    window.dataLayer = window.dataLayer || [];
    
    

    (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
        new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
        j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
        'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
    })(window,document,'script','dataLayer','GTM-T77D569');
  </script>
  <!-- End Google Tag Manager -->

    <script type="text/javascript">
  (function(c,l,a,r,i,t,y){
    c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
    t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
    y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
  })(window, document, "clarity", "script", "sva5btpd2r");
  function setClaritySession() {
    if(window.clarity && typeof window.clarity === 'function') {
      window.clarity('identify', null, 'SH_NONE');
    } else {
      setTimeout(setClaritySession, 100);
    }
  }
  setClaritySession();
</script>

    <link rel="preconnect" href="https://files.niteflirt.com" crossorigin>
<link rel="dns-prefetch" href="https://files.niteflirt.com">

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

<link rel="preconnect" href="https://niteflirt-assets.s3.amazonaws.com" crossorigin>
<link rel="dns-prefetch" href="https://niteflirt-assets.s3.amazonaws.com">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta name="apple-touch-fullscreen" content="yes"/>
    <meta name="MobileOptimized" content="320"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <title>Phone Sex |  | NiteFlirt Phone Sex</title>
    <meta name="description" content="At NiteFlirt you will find the world&#39;s best phone sex, cam, and video downloads. Real women and men waiting to fulfill your fantasies, fetishes, and kinks."/>
    
    <meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="fBP5eNEpWvvJM8fYPcujGgSkfN5Sib3SSCqgWXjXzmANuC1utFEuExTa3c1KBqd8G1iSMN7i-wN5Fnpn-DOhuA" />
    
    <link rel="apple-touch-icon-precomposed" type="image/x-icon" href="/niteflirt/images/favicon/apple-touch-icon-57x57.png" sizes="57x57" />
<link rel="apple-touch-icon-precomposed" type="image/x-icon" href="/niteflirt/images/favicon/apple-touch-icon-60x60.png" sizes="60x60" />
<link rel="apple-touch-icon-precomposed" type="image/x-icon" href="/niteflirt/images/favicon/apple-touch-icon-72x72.png" sizes="72x72" />
<link rel="apple-touch-icon-precomposed" type="image/x-icon" href="/niteflirt/images/favicon/apple-touch-icon-76x76.png" sizes="76x76" />
<link rel="apple-touch-icon-precomposed" type="image/x-icon" href="/niteflirt/images/favicon/apple-touch-icon-114x114.png" sizes="114x114" />
<link rel="apple-touch-icon-precomposed" type="image/x-icon" href="/niteflirt/images/favicon/apple-touch-icon-120x120.png" sizes="120x120" />
<link rel="apple-touch-icon-precomposed" type="image/x-icon" href="/niteflirt/images/favicon/apple-touch-icon-144x144.png" sizes="144x144" />
<link rel="apple-touch-icon-precomposed" type="image/x-icon" href="/niteflirt/images/favicon/apple-touch-icon-152x152.png" sizes="152x152" />
<link rel="apple-touch-icon-precomposed" type="image/x-icon" href="/niteflirt/images/favicon/apple-touch-icon-180x180.png" sizes="180x180" />
<link rel="icon" type="image/png" href="/niteflirt/images/favicon/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/niteflirt/images/favicon/favicon-16x16.png" sizes="16x16" />
<!-- Mozilla -->
<link rel="icon" type="image/ico" href="/niteflirt/images/favicon.ico">
<!-- IE -->
<link rel="shortcut icon" type="image/x-icon" href="/niteflirt/images/favicon.ico">
    <link rel="shortcut icon" type="image/x-icon" href="/niteflirt/images/favicon.ico">
    <link href="//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&display=swap" rel="stylesheet">
    <link href="//fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900&display=swap" rel="stylesheet">

    <script type="text/javascript">
    window.categories = [{"id":839,"name":"Find Women","path":"839-Find-Women","children":[{"id":612,"name":"Women Home Alone","path":"612-Find-Women-Women-Home-Alone","children":[{"id":645,"name":"Sex","path":"645-Find-Women-Women-Home-Alone-Sex","children":[]},{"id":644,"name":"Oral Sex","path":"644-Find-Women-Women-Home-Alone-Oral-Sex","children":[]},{"id":806,"name":"Mature","path":"806-Find-Women-Women-Home-Alone-Mature","children":[]},{"id":643,"name":"Anal Sex","path":"643-Find-Women-Women-Home-Alone-Anal-Sex","children":[]},{"id":646,"name":"Sex Toys","path":"646-Find-Women-Women-Home-Alone-Sex-Toys","children":[]},{"id":805,"name":"BBW","path":"805-Find-Women-Women-Home-Alone-BBW","children":[]},{"id":846,"name":"Housewives","path":"846-Find-Women-Women-Home-Alone-Housewives","children":[]},{"id":845,"name":"Latina","path":"845-Find-Women-Women-Home-Alone-Latina","children":[]},{"id":844,"name":"Ebony","path":"844-Find-Women-Women-Home-Alone-Ebony","children":[]},{"id":843,"name":"Asian","path":"843-Find-Women-Women-Home-Alone-Asian","children":[]}]},{"id":771,"name":"Phone with Cam","path":"771-Find-Women-Phone-with-Cam","children":[{"id":773,"name":"Women Home Alone","path":"773-Find-Women-Phone-with-Cam-Women-Home-Alone","children":[]},{"id":827,"name":"Extra Kinky","path":"827-Find-Women-Phone-with-Cam-Extra-Kinky","children":[]},{"id":808,"name":"Mistresses","path":"808-Find-Women-Phone-with-Cam-Mistresses","children":[]},{"id":807,"name":"BBW","path":"807-Find-Women-Phone-with-Cam-BBW","children":[]},{"id":826,"name":"Couples","path":"826-Find-Women-Phone-with-Cam-Couples","children":[]},{"id":847,"name":"Ebony","path":"847-Find-Women-Phone-with-Cam-Ebony","children":[]},{"id":874,"name":"Lesbian/Bisexual","path":"874-Find-Women-Phone-with-Cam-Lesbian-Bisexual","children":[]}]},{"id":870,"name":"Fetish","path":"870-Find-Women-Fetish","children":[{"id":813,"name":"Fem Dommes","path":"813-Find-Women-Fetish-Fem-Dommes","children":[]},{"id":814,"name":"Submissive Women","path":"814-Find-Women-Fetish-Submissive-Women","children":[]},{"id":815,"name":"Foot and Shoe","path":"815-Find-Women-Fetish-Foot-and-Shoe","children":[]},{"id":849,"name":"Financial Domination","path":"849-Find-Women-Fetish-Financial-Domination","children":[]},{"id":848,"name":"Feminization","path":"848-Find-Women-Fetish-Feminization","children":[]},{"id":818,"name":"Smoking","path":"818-Find-Women-Fetish-Smoking","children":[]},{"id":871,"name":"Lingerie & Stockings","path":"871-Find-Women-Fetish-Lingerie-Stockings","children":[]},{"id":872,"name":"Leather & Latex","path":"872-Find-Women-Fetish-Leather-Latex","children":[]},{"id":873,"name":"Spanking","path":"873-Find-Women-Fetish-Spanking","children":[]}]},{"id":615,"name":"BDSM","path":"615-Find-Women-BDSM","children":[{"id":809,"name":"Mistresses","path":"809-Find-Women-BDSM-Mistresses","children":[]},{"id":811,"name":"Submissive Women","path":"811-Find-Women-BDSM-Submissive-Women","children":[]}]},{"id":618,"name":"Extra Kinky","path":"618-Find-Women-Extra-Kinky","children":[]},{"id":616,"name":"Fantasy","path":"616-Find-Women-Fantasy","children":[{"id":817,"name":"Role Playing","path":"817-Find-Women-Fantasy-Role-Playing","children":[]},{"id":820,"name":"Other","path":"820-Find-Women-Fantasy-Other","children":[]},{"id":875,"name":"Girls Next Door","path":"875-Find-Women-Fantasy-Girls-Next-Door","children":[]},{"id":876,"name":"Kinky Wives","path":"876-Find-Women-Fantasy-Kinky-Wives","children":[]},{"id":877,"name":"Lesbian/Bisexual","path":"877-Find-Women-Fantasy-Lesbian-Bisexual","children":[]},{"id":878,"name":"Extra Kinky","path":"878-Find-Women-Fantasy-Extra-Kinky","children":[]}]},{"id":619,"name":"Other","path":"619-Find-Women-Other","children":[]},{"id":614,"name":"Couples","path":"614-Find-Women-Couples","children":[]},{"id":880,"name":"En Español","path":"880-Find-Women-En-Espa-ol","children":[]}]},{"id":840,"name":"Find Men","path":"840-Find-Men","children":[{"id":610,"name":"Men Home Alone","path":"610-Find-Men-Men-Home-Alone","children":[{"id":821,"name":"Gay","path":"821-Find-Men-Men-Home-Alone-Gay","children":[]},{"id":824,"name":"Bisexual","path":"824-Find-Men-Men-Home-Alone-Bisexual","children":[]},{"id":850,"name":"Straight","path":"850-Find-Men-Men-Home-Alone-Straight","children":[]}]},{"id":855,"name":"Fantasy","path":"855-Find-Men-Fantasy","children":[{"id":881,"name":"Extra Kinky","path":"881-Find-Men-Fantasy-Extra-Kinky","children":[]},{"id":882,"name":"Guy Next Door","path":"882-Find-Men-Fantasy-Guy-Next-Door","children":[]},{"id":883,"name":"Jocks","path":"883-Find-Men-Fantasy-Jocks","children":[]},{"id":862,"name":"Other","path":"862-Find-Men-Fantasy-Other","children":[]},{"id":860,"name":"Role Playing","path":"860-Find-Men-Fantasy-Role-Playing","children":[]}]},{"id":854,"name":"BDSM/Fetish","path":"854-Find-Men-BDSM-Fetish","children":[{"id":810,"name":"Masters","path":"810-Find-Men-BDSM-Fetish-Masters","children":[]},{"id":812,"name":"Submissive Males","path":"812-Find-Men-BDSM-Fetish-Submissive-Males","children":[]},{"id":858,"name":"Feet/Shoes","path":"858-Find-Men-BDSM-Fetish-Feet-Shoes","children":[]},{"id":857,"name":"Financial Domination","path":"857-Find-Men-BDSM-Fetish-Financial-Domination","children":[]},{"id":859,"name":"Leather","path":"859-Find-Men-BDSM-Fetish-Leather","children":[]}]},{"id":851,"name":"Phone with Cam","path":"851-Find-Men-Phone-with-Cam","children":[{"id":772,"name":"Men Home Alone","path":"772-Find-Men-Phone-with-Cam-Men-Home-Alone","children":[]},{"id":852,"name":"Couples","path":"852-Find-Men-Phone-with-Cam-Couples","children":[]},{"id":853,"name":"Master","path":"853-Find-Men-Phone-with-Cam-Master","children":[]}]},{"id":863,"name":"Extra Kinky","path":"863-Find-Men-Extra-Kinky","children":[]},{"id":864,"name":"Multiples","path":"864-Find-Men-Multiples","children":[]},{"id":865,"name":"Other","path":"865-Find-Men-Other","children":[]},{"id":885,"name":"En Español","path":"885-Find-Men-En-Espa-ol","children":[]}]},{"id":770,"name":"Find Trans","path":"770-Find-Trans","children":[{"id":841,"name":"Cross-Dressing","path":"841-Find-Trans-Cross-Dressing","children":[]},{"id":823,"name":"Transsexual","path":"823-Find-Trans-Transsexual","children":[]},{"id":842,"name":"Transvestite","path":"842-Find-Trans-Transvestite","children":[]},{"id":12821,"name":"Extra Kinky","path":"12821-Find-Trans-Extra-Kinky","children":[]},{"id":12811,"name":"Fetish","path":"12811-Find-Trans-Fetish","children":[{"id":12812,"name":"BDSM","path":"12812-Find-Trans-Fetish-BDSM","children":[]},{"id":12813,"name":"Dommes","path":"12813-Find-Trans-Fetish-Dommes","children":[]},{"id":12814,"name":"Feminization","path":"12814-Find-Trans-Fetish-Feminization","children":[]},{"id":12815,"name":"Financial Domination","path":"12815-Find-Trans-Fetish-Financial-Domination","children":[]},{"id":12816,"name":"Mistress","path":"12816-Find-Trans-Fetish-Mistress","children":[]},{"id":12817,"name":"Role Play","path":"12817-Find-Trans-Fetish-Role-Play","children":[]},{"id":12818,"name":"Spanking","path":"12818-Find-Trans-Fetish-Spanking","children":[]},{"id":12819,"name":"Submissive","path":"12819-Find-Trans-Fetish-Submissive","children":[]}]},{"id":12820,"name":"Phone with Cam","path":"12820-Find-Trans-Phone-with-Cam","children":[]}]}];
  window.lastRestartAt = 1780589798;
  window.baseUrl = "https://www.niteflirt.com";

  // Cross-tab logout notification
  (function() {
    // If we just logged out, notify other tabs via localStorage
    var params = new URLSearchParams(window.location.search);
    if (params.get('logged_out') === '1') {
      try {
        localStorage.setItem('nf_logout', Date.now().toString());
      } catch (e) {}
      // Clean up the URL
      params.delete('logged_out');
      var newUrl = params.toString()
        ? window.location.pathname + '?' + params.toString()
        : window.location.pathname;
      window.history.replaceState({}, '', newUrl);
    }

    // Capture initial logout timestamp to detect changes
    var initialLogoutTimestamp = null;
    try {
      initialLogoutTimestamp = localStorage.getItem('nf_logout');
    } catch (e) {}

    // Listen for logout events from other tabs
    window.addEventListener('storage', function(event) {
      if (event.key === 'nf_logout') {
        window.location.href = '/';
      }
    });

    // Fallback polling for browsers where storage event may not fire reliably
    setInterval(function() {
      try {
        var currentLogout = localStorage.getItem('nf_logout');
        if (currentLogout !== initialLogoutTimestamp) {
          window.location.href = '/';
        }
      } catch (e) {}
    }, 1000);
  })();
</script>

    <script type="text/javascript">
      window.showChatPreferenceBanner = null;
    </script>
    <script type="text/javascript">
  var _sift = window._sift = window._sift || [];
  (function() {
    function ls() {
      var e = document.createElement('script');
      e.type = 'text/javascript';
      e.async = true;
      e.src = 'https://cdn.sift.com/s.js';
      var s = document.getElementsByTagName('script')[0];
      s.parentNode.insertBefore(e, s);
    }
    if (window.attachEvent) {
      window.attachEvent('onload', ls);
    } else {
      window.addEventListener('load', ls, false);
    }
  }());
  _sift.push(['_setAccount', '821b8046d1']);
  _sift.push(['_setUserId', '']);
  _sift.push(['_setSessionId', 'SH_l5FNz7O1hV']);
  _sift.push(['_trackPageview']);
</script>

    
  </head>
  <body>
    <div id='notification_container'>
      
      <div id='sticky-notifications-container' style="display:none;">

        
      </div>
    </div>

    <div
  id="nf-plus-app"
  class="nf-plus-app"
  data-mode="main"
>
</div>


<script src="/plus_frontend/dist/nf-plus-vendor-bundle-0726dc36eafa461ec4f3-v2.js"></script>
<script src="/plus_frontend/dist/nf-plus-common-bundle-04e75740a0187eae0fd2-v2.js"></script>
<script src="/plus_frontend/dist/nf-plus-web-bundle-044699e6f33a70652616-v2.js"></script>
<script src="/plus_frontend/dist/nf-plus-web_css-bundle-e95e2b399cfafb777fe8-v2.js"></script>
<script src="/plus_frontend/dist/nf-plus-toastmessage-bundle-da32edbe1f3da5e1d4e5-v2.js"></script>

    <noscript>
  <style>
    #no-js-overlay {
      position: fixed;
      inset: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      background: #000;
      color: #fff;
      font-family: Arial, sans-serif;
      text-align: center;
      z-index: 9999;
    }
    #no-js-overlay img {
      width: 160px;
      margin-bottom: 1rem;
    }
  </style>
  <div id="no-js-overlay">
    <img src="https://niteflirt-assets.s3.amazonaws.com/homepage/niteflirt-logo-mob.png" alt="NiteFlirt">
    <p>JavaScript is required to use this site.</p>
  </div>
</noscript>

    
  </body>
</html>
