9remote 3.0.5 → 3.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/dist/cli.cjs +2 -2
  2. package/dist/server.cjs +4 -4
  3. package/dist/ui/assets/index-CMq_mLzM.js +8 -0
  4. package/dist/ui/assets/index-NAPslvk3.css +1 -0
  5. package/dist/ui/index.html +2 -2
  6. package/dist/web/404.html +1 -1
  7. package/dist/web/__next.__PAGE__.txt +2 -2
  8. package/dist/web/__next._full.txt +2 -2
  9. package/dist/web/__next._head.txt +1 -1
  10. package/dist/web/__next._index.txt +1 -1
  11. package/dist/web/__next._tree.txt +1 -1
  12. package/dist/web/_next/static/chunks/app/login/{page-fda2e8572302edca.js → page-d42b178c6f11f6d3.js} +1 -1
  13. package/dist/web/_next/static/chunks/app/{page-00c77a2e54c385ac.js → page-10772fa3d9560889.js} +2 -2
  14. package/dist/web/_next/static/chunks/app/workspace/{layout-90f9ac2ec0cf5aef.js → layout-475b254e83019cb1.js} +3 -3
  15. package/dist/web/_not-found/__next._full.txt +1 -1
  16. package/dist/web/_not-found/__next._head.txt +1 -1
  17. package/dist/web/_not-found/__next._index.txt +1 -1
  18. package/dist/web/_not-found/__next._not-found.__PAGE__.txt +1 -1
  19. package/dist/web/_not-found/__next._not-found.txt +1 -1
  20. package/dist/web/_not-found/__next._tree.txt +1 -1
  21. package/dist/web/_not-found.html +1 -1
  22. package/dist/web/_not-found.txt +1 -1
  23. package/dist/web/admin/__next._full.txt +1 -1
  24. package/dist/web/admin/__next._head.txt +1 -1
  25. package/dist/web/admin/__next._index.txt +1 -1
  26. package/dist/web/admin/__next._tree.txt +1 -1
  27. package/dist/web/admin/__next.admin.__PAGE__.txt +1 -1
  28. package/dist/web/admin/__next.admin.txt +1 -1
  29. package/dist/web/admin/admins/__next._full.txt +1 -1
  30. package/dist/web/admin/admins/__next._head.txt +1 -1
  31. package/dist/web/admin/admins/__next._index.txt +1 -1
  32. package/dist/web/admin/admins/__next._tree.txt +1 -1
  33. package/dist/web/admin/admins/__next.admin.admins.__PAGE__.txt +1 -1
  34. package/dist/web/admin/admins/__next.admin.admins.txt +1 -1
  35. package/dist/web/admin/admins/__next.admin.txt +1 -1
  36. package/dist/web/admin/admins.html +1 -1
  37. package/dist/web/admin/admins.txt +1 -1
  38. package/dist/web/admin/login/__next._full.txt +1 -1
  39. package/dist/web/admin/login/__next._head.txt +1 -1
  40. package/dist/web/admin/login/__next._index.txt +1 -1
  41. package/dist/web/admin/login/__next._tree.txt +1 -1
  42. package/dist/web/admin/login/__next.admin.login.__PAGE__.txt +1 -1
  43. package/dist/web/admin/login/__next.admin.login.txt +1 -1
  44. package/dist/web/admin/login/__next.admin.txt +1 -1
  45. package/dist/web/admin/login.html +1 -1
  46. package/dist/web/admin/login.txt +1 -1
  47. package/dist/web/admin/modes/__next._full.txt +1 -1
  48. package/dist/web/admin/modes/__next._head.txt +1 -1
  49. package/dist/web/admin/modes/__next._index.txt +1 -1
  50. package/dist/web/admin/modes/__next._tree.txt +1 -1
  51. package/dist/web/admin/modes/__next.admin.modes.__PAGE__.txt +1 -1
  52. package/dist/web/admin/modes/__next.admin.modes.txt +1 -1
  53. package/dist/web/admin/modes/__next.admin.txt +1 -1
  54. package/dist/web/admin/modes.html +1 -1
  55. package/dist/web/admin/modes.txt +1 -1
  56. package/dist/web/admin/ota/__next._full.txt +1 -1
  57. package/dist/web/admin/ota/__next._head.txt +1 -1
  58. package/dist/web/admin/ota/__next._index.txt +1 -1
  59. package/dist/web/admin/ota/__next._tree.txt +1 -1
  60. package/dist/web/admin/ota/__next.admin.ota.__PAGE__.txt +1 -1
  61. package/dist/web/admin/ota/__next.admin.ota.txt +1 -1
  62. package/dist/web/admin/ota/__next.admin.txt +1 -1
  63. package/dist/web/admin/ota.html +1 -1
  64. package/dist/web/admin/ota.txt +1 -1
  65. package/dist/web/admin/turn/__next._full.txt +1 -1
  66. package/dist/web/admin/turn/__next._head.txt +1 -1
  67. package/dist/web/admin/turn/__next._index.txt +1 -1
  68. package/dist/web/admin/turn/__next._tree.txt +1 -1
  69. package/dist/web/admin/turn/__next.admin.turn.__PAGE__.txt +1 -1
  70. package/dist/web/admin/turn/__next.admin.turn.txt +1 -1
  71. package/dist/web/admin/turn/__next.admin.txt +1 -1
  72. package/dist/web/admin/turn.html +1 -1
  73. package/dist/web/admin/turn.txt +1 -1
  74. package/dist/web/admin.html +1 -1
  75. package/dist/web/admin.txt +1 -1
  76. package/dist/web/dev/question/__next._full.txt +1 -1
  77. package/dist/web/dev/question/__next._head.txt +1 -1
  78. package/dist/web/dev/question/__next._index.txt +1 -1
  79. package/dist/web/dev/question/__next._tree.txt +1 -1
  80. package/dist/web/dev/question/__next.dev.question.__PAGE__.txt +1 -1
  81. package/dist/web/dev/question/__next.dev.question.txt +1 -1
  82. package/dist/web/dev/question/__next.dev.txt +1 -1
  83. package/dist/web/dev/question.html +1 -1
  84. package/dist/web/dev/question.txt +1 -1
  85. package/dist/web/index.html +1 -1
  86. package/dist/web/index.txt +2 -2
  87. package/dist/web/login/__next._full.txt +2 -2
  88. package/dist/web/login/__next._head.txt +1 -1
  89. package/dist/web/login/__next._index.txt +1 -1
  90. package/dist/web/login/__next._tree.txt +1 -1
  91. package/dist/web/login/__next.login.__PAGE__.txt +2 -2
  92. package/dist/web/login/__next.login.txt +1 -1
  93. package/dist/web/login.html +1 -1
  94. package/dist/web/login.txt +2 -2
  95. package/dist/web/workspace/__next._full.txt +2 -2
  96. package/dist/web/workspace/__next._head.txt +1 -1
  97. package/dist/web/workspace/__next._index.txt +1 -1
  98. package/dist/web/workspace/__next._tree.txt +1 -1
  99. package/dist/web/workspace/__next.workspace.__PAGE__.txt +1 -1
  100. package/dist/web/workspace/__next.workspace.txt +2 -2
  101. package/dist/web/workspace/browse/__next._full.txt +2 -2
  102. package/dist/web/workspace/browse/__next._head.txt +1 -1
  103. package/dist/web/workspace/browse/__next._index.txt +1 -1
  104. package/dist/web/workspace/browse/__next._tree.txt +1 -1
  105. package/dist/web/workspace/browse/__next.workspace.browse.__PAGE__.txt +1 -1
  106. package/dist/web/workspace/browse/__next.workspace.browse.txt +1 -1
  107. package/dist/web/workspace/browse/__next.workspace.txt +2 -2
  108. package/dist/web/workspace/browse.html +1 -1
  109. package/dist/web/workspace/browse.txt +2 -2
  110. package/dist/web/workspace/editor/__next._full.txt +2 -2
  111. package/dist/web/workspace/editor/__next._head.txt +1 -1
  112. package/dist/web/workspace/editor/__next._index.txt +1 -1
  113. package/dist/web/workspace/editor/__next._tree.txt +1 -1
  114. package/dist/web/workspace/editor/__next.workspace.editor.__PAGE__.txt +1 -1
  115. package/dist/web/workspace/editor/__next.workspace.editor.txt +1 -1
  116. package/dist/web/workspace/editor/__next.workspace.txt +2 -2
  117. package/dist/web/workspace/editor.html +1 -1
  118. package/dist/web/workspace/editor.txt +2 -2
  119. package/dist/web/workspace/files/__next._full.txt +2 -2
  120. package/dist/web/workspace/files/__next._head.txt +1 -1
  121. package/dist/web/workspace/files/__next._index.txt +1 -1
  122. package/dist/web/workspace/files/__next._tree.txt +1 -1
  123. package/dist/web/workspace/files/__next.workspace.files.__PAGE__.txt +1 -1
  124. package/dist/web/workspace/files/__next.workspace.files.txt +1 -1
  125. package/dist/web/workspace/files/__next.workspace.txt +2 -2
  126. package/dist/web/workspace/files.html +1 -1
  127. package/dist/web/workspace/files.txt +2 -2
  128. package/dist/web/workspace/git/__next._full.txt +2 -2
  129. package/dist/web/workspace/git/__next._head.txt +1 -1
  130. package/dist/web/workspace/git/__next._index.txt +1 -1
  131. package/dist/web/workspace/git/__next._tree.txt +1 -1
  132. package/dist/web/workspace/git/__next.workspace.git.__PAGE__.txt +1 -1
  133. package/dist/web/workspace/git/__next.workspace.git.txt +1 -1
  134. package/dist/web/workspace/git/__next.workspace.txt +2 -2
  135. package/dist/web/workspace/git.html +1 -1
  136. package/dist/web/workspace/git.txt +2 -2
  137. package/dist/web/workspace/mobile/__next._full.txt +2 -2
  138. package/dist/web/workspace/mobile/__next._head.txt +1 -1
  139. package/dist/web/workspace/mobile/__next._index.txt +1 -1
  140. package/dist/web/workspace/mobile/__next._tree.txt +1 -1
  141. package/dist/web/workspace/mobile/__next.workspace.mobile.__PAGE__.txt +1 -1
  142. package/dist/web/workspace/mobile/__next.workspace.mobile.txt +1 -1
  143. package/dist/web/workspace/mobile/__next.workspace.txt +2 -2
  144. package/dist/web/workspace/mobile.html +1 -1
  145. package/dist/web/workspace/mobile.txt +2 -2
  146. package/dist/web/workspace/remote/__next._full.txt +2 -2
  147. package/dist/web/workspace/remote/__next._head.txt +1 -1
  148. package/dist/web/workspace/remote/__next._index.txt +1 -1
  149. package/dist/web/workspace/remote/__next._tree.txt +1 -1
  150. package/dist/web/workspace/remote/__next.workspace.remote.__PAGE__.txt +1 -1
  151. package/dist/web/workspace/remote/__next.workspace.remote.txt +1 -1
  152. package/dist/web/workspace/remote/__next.workspace.txt +2 -2
  153. package/dist/web/workspace/remote.html +1 -1
  154. package/dist/web/workspace/remote.txt +2 -2
  155. package/dist/web/workspace/terminal/default/__next._full.txt +2 -2
  156. package/dist/web/workspace/terminal/default/__next._head.txt +1 -1
  157. package/dist/web/workspace/terminal/default/__next._index.txt +1 -1
  158. package/dist/web/workspace/terminal/default/__next._tree.txt +1 -1
  159. package/dist/web/workspace/terminal/default/__next.workspace.terminal.$d$sessionId.__PAGE__.txt +1 -1
  160. package/dist/web/workspace/terminal/default/__next.workspace.terminal.$d$sessionId.txt +1 -1
  161. package/dist/web/workspace/terminal/default/__next.workspace.terminal.txt +1 -1
  162. package/dist/web/workspace/terminal/default/__next.workspace.txt +2 -2
  163. package/dist/web/workspace/terminal/default.html +1 -1
  164. package/dist/web/workspace/terminal/default.txt +2 -2
  165. package/dist/web/workspace/workspaces/__next._full.txt +2 -2
  166. package/dist/web/workspace/workspaces/__next._head.txt +1 -1
  167. package/dist/web/workspace/workspaces/__next._index.txt +1 -1
  168. package/dist/web/workspace/workspaces/__next._tree.txt +1 -1
  169. package/dist/web/workspace/workspaces/__next.workspace.txt +2 -2
  170. package/dist/web/workspace/workspaces/__next.workspace.workspaces.__PAGE__.txt +1 -1
  171. package/dist/web/workspace/workspaces/__next.workspace.workspaces.txt +1 -1
  172. package/dist/web/workspace/workspaces.html +1 -1
  173. package/dist/web/workspace/workspaces.txt +2 -2
  174. package/dist/web/workspace.html +1 -1
  175. package/dist/web/workspace.txt +2 -2
  176. package/package.json +1 -1
  177. package/dist/ui/assets/index-CAvf0VPf.css +0 -1
  178. package/dist/ui/assets/index-CSihcjlv.js +0 -8
  179. /package/dist/web/_next/static/{aW3BVD9Z6dZG5uaKNzgmQ → 1Tr76v17cPEsysWpe5buJ}/_buildManifest.js +0 -0
  180. /package/dist/web/_next/static/{aW3BVD9Z6dZG5uaKNzgmQ → 1Tr76v17cPEsysWpe5buJ}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en" class="scroll-smooth scroll-pt-20"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, interactive-widget=resizes-content"/><link rel="preload" href="/_next/static/media/22a5144ee8d83bca-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/7d4881bb7e1bf84d-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" href="/icon-192.png"/><link rel="preload" as="image" href="/screenshots/desktop-ide.webp"/><link rel="stylesheet" href="/_next/static/css/b496025c9cd768cc.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/48ee7d57614b1421.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-210219beafaa52a1.js"/><script src="/_next/static/chunks/c7879cf7-0d16fce1674078f9.js" async=""></script><script src="/_next/static/chunks/5158-267908d069475cdc.js" async=""></script><script src="/_next/static/chunks/main-app-1831d4f902c3fcb9.js" async=""></script><script src="/_next/static/chunks/4732-76a574510722b2c3.js" async=""></script><script src="/_next/static/chunks/app/layout-ec53a1a0c4b3e99e.js" async=""></script><script src="/_next/static/chunks/7738-2439d4a20b745ce1.js" async=""></script><script src="/_next/static/chunks/9568-0bfadca4fcb105aa.js" async=""></script><script src="/_next/static/chunks/9958-9952a61eb6e17812.js" async=""></script><script src="/_next/static/chunks/app/page-00c77a2e54c385ac.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-8XXG61NY56" as="script"/><meta name="next-size-adjust" content=""/><meta name="theme-color" content="#121212"/><title>9Remote — Remote Everything, Everywhere</title><meta name="description" content="Remote IDE, desktop, files, emulator &amp; vibe coding on PC, Web, iPad, and Mobile. Ultra-low latency WebRTC P2P dev suite."/><meta name="application-name" content="9Remote Terminal"/><link rel="manifest" href="/manifest.json"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="9Remote"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="icon" href="/favicon.ico" sizes="any"/><link rel="icon" href="/icon-192.png" sizes="192x192" type="image/png"/><link rel="icon" href="/icon-512.png" sizes="512x512" type="image/png"/><link rel="apple-touch-icon" href="/icon-192.png" sizes="192x192" type="image/png"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_246ccd __variable_c29908 antialiased"><div hidden=""><!--$--><!--/$--></div><script id="expo-redirect">(function(){try{if(location.hostname==="dev.9remote.cc"&&(window.ReactNativeWebView||/9Remote-Mobile/i.test(navigator.userAgent))){location.replace("https://9remote.cc"+location.pathname+location.search+location.hash);}}catch(e){}})();</script><script id="theme-init">(function(){try{var t=localStorage.getItem("app_theme_v2")||"dark";document.documentElement.classList.add(t);}catch(e){document.documentElement.classList.add("dark");}})();</script><script id="safe-area-bridge">window.handleSafeAreaInset=function(top,bottom){try{if(top&&top>0)document.documentElement.style.setProperty("--pl-top",top+"px");}catch(e){}};</script><script id="sw-register">if('serviceWorker' in navigator){window.addEventListener('load',function(){navigator.serviceWorker.register('/sw.js').catch(function(e){console.log('SW registration failed:',e);});});}</script><div class="min-h-screen overflow-x-hidden safe-area-insets" style="color:var(--color-text)"><div class="fixed inset-0 -z-10 overflow-hidden pointer-events-none landing-bg"><div class="absolute inset-0 landing-grid"></div><div class="absolute inset-0 landing-vignette"></div></div><div class="landing-light" aria-hidden="true"></div><nav class="fixed top-0 left-0 right-0 z-50 transition-all duration-300" style="background:transparent;backdrop-filter:none;border-bottom:1px solid transparent"><div class="max-w-7xl mx-auto px-6 h-16 flex items-center justify-between"><a class="flex items-center gap-3 group" href="/"><img src="/icon-192.png" alt="9Remote Logo" class="w-8 h-8 rounded-lg object-contain shadow-md shadow-brand-500/20"/><span class="text-xl font-bold tracking-tight" style="color:var(--color-text)">9Remote</span><span class="px-2 py-0.5 text-xs font-mono font-medium rounded-full bg-brand-500/10 text-brand-400 border border-brand-500/20">v<!-- -->3.0.5</span></a><div class="hidden md:flex items-center gap-7"><a href="#features" class="text-sm transition-colors flex items-center gap-1.5" style="color:var(--color-text-muted)"><span>Features</span></a><a href="#security" class="text-sm transition-colors flex items-center gap-1.5" style="color:var(--color-text-muted)"><span>Security</span></a><a href="#how-it-works" class="text-sm transition-colors flex items-center gap-1.5" style="color:var(--color-text-muted)"><span>How It Works</span></a><a href="https://docs.9remote.cc/" target="_blank" rel="noopener noreferrer" class="text-sm transition-colors flex items-center gap-1.5" style="color:var(--color-text-muted)"><span>Docs</span></a><a href="https://github.com/decolua/9remote" target="_blank" rel="noopener noreferrer" class="text-sm transition-colors flex items-center gap-1.5" style="color:var(--color-text-muted)"><span>GitHub</span></a></div><div class="hidden md:flex items-center gap-3"><button type="button" aria-label="Switch to light theme" title="Light mode" class="p-1.5 rounded-brand transition-colors text-[var(--color-text-muted)] hover:text-[var(--color-text)] hover:bg-[var(--color-surface-2)] "><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"></path></svg></button><a href="#how-it-works" class="px-4 py-2 rounded-lg font-semibold text-sm border transition-transform hover:scale-[1.03]" style="background:var(--color-surface-2);border-color:var(--color-border);color:var(--color-text)"><span>Download Host</span></a><a class="btn-cta px-5 py-2 rounded-lg font-semibold text-sm transition-transform hover:scale-[1.03]" style="background:var(--color-text);color:var(--color-bg)" href="/login"><span>Remote</span></a></div><div class="md:hidden flex items-center gap-1.5"><button type="button" aria-label="Switch to light theme" title="Light mode" class="p-1.5 rounded-brand transition-colors text-[var(--color-text-muted)] hover:text-[var(--color-text)] hover:bg-[var(--color-surface-2)] "><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"></path></svg></button><button class="p-2" style="color:var(--color-text)"><svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path></svg></button></div></div></nav><main class="relative z-10"><section class="jsx-1607277904 relative min-h-screen flex items-center px-4 sm:px-6 lg:px-8 pt-24 pb-16 overflow-hidden"><div class="jsx-1607277904 max-w-7xl mx-auto relative z-10 w-full min-w-0"><div class="jsx-1607277904 grid lg:grid-cols-2 gap-12 items-center min-w-0"><div class="jsx-1607277904 text-center lg:text-left"><h1 style="font-weight:900;line-height:1.1" class="jsx-1607277904 mb-5 animate-fade-in-delay-1"><span style="color:var(--color-text)" class="jsx-1607277904 block text-2xl sm:text-3xl lg:text-4xl xl:text-5xl mb-2">Remote Everything,</span><span style="background:linear-gradient(to right, var(--color-text), var(--color-text-muted));-webkit-background-clip:text;-webkit-text-fill-color:transparent" class="jsx-1607277904 block text-2xl sm:text-3xl lg:text-4xl xl:text-5xl mb-3">Vibecode Everywhere</span></h1><div class="jsx-1607277904 flex flex-wrap gap-2 mb-6 justify-center lg:justify-start animate-fade-in-delay-2"><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text)" class="jsx-1607277904 inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-mono font-medium border transition-colors hover:border-text-subtle"><svg style="color:var(--color-accent)" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-1607277904 w-3.5 h-3.5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" class="jsx-1607277904"></path></svg><span class="jsx-1607277904">Remote IDE</span></span><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text)" class="jsx-1607277904 inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-mono font-medium border transition-colors hover:border-text-subtle"><svg style="color:var(--color-accent)" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-1607277904 w-3.5 h-3.5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M13 10V3L4 14h7v7l9-11h-7z" class="jsx-1607277904"></path></svg><span class="jsx-1607277904">Remote Vibe Coding</span></span><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text)" class="jsx-1607277904 inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-mono font-medium border transition-colors hover:border-text-subtle"><svg style="color:var(--color-accent)" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-1607277904 w-3.5 h-3.5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" class="jsx-1607277904"></path></svg><span class="jsx-1607277904">Remote Desktop</span></span><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text)" class="jsx-1607277904 inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-mono font-medium border transition-colors hover:border-text-subtle"><svg style="color:var(--color-accent)" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-1607277904 w-3.5 h-3.5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z" class="jsx-1607277904"></path></svg><span class="jsx-1607277904">Remote Files</span></span><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text)" class="jsx-1607277904 inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-mono font-medium border transition-colors hover:border-text-subtle"><svg style="color:var(--color-accent)" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-1607277904 w-3.5 h-3.5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M12 18h.01M8 21h8a2 2 0 002-2V5a2 2 0 00-2-2H8a2 2 0 00-2 2v14a2 2 0 002 2z" class="jsx-1607277904"></path></svg><span class="jsx-1607277904">Remote Emulator</span></span><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text)" class="jsx-1607277904 inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-mono font-medium border transition-colors hover:border-text-subtle"><svg style="color:var(--color-accent)" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-1607277904 w-3.5 h-3.5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9" class="jsx-1607277904"></path></svg><span class="jsx-1607277904">Remote Localhost</span></span><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text)" class="jsx-1607277904 inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-mono font-medium border transition-colors hover:border-text-subtle"><svg style="color:var(--color-accent)" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-1607277904 w-3.5 h-3.5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M12 18h.01M7 21h10a2 2 0 002-2V5a2 2 0 00-2-2H7a2 2 0 00-2 2v14a2 2 0 002 2z" class="jsx-1607277904"></path></svg><span class="jsx-1607277904">PC · Web · iPad · Mobile</span></span></div><p data-text="Leave your laptop behind. Your entire dev workstation goes wherever you go — remote IDE, 60fps desktop, visual file explorer, live mobile emulator, and remote vibe coding with 30+ AI agents on PC, Web, iPad, or phone." class="jsx-1607277904 hero-gloss text-sm sm:text-base mb-8 max-w-xl mx-auto lg:mx-0">Leave your laptop behind. Your entire dev workstation goes wherever you go — remote IDE, 60fps desktop, visual file explorer, live mobile emulator, and remote vibe coding with 30+ AI agents on PC, Web, iPad, or phone.</p><div class="jsx-1607277904 grid grid-cols-2 sm:grid-cols-4 gap-4 sm:gap-6 max-w-lg mx-auto lg:mx-0 mt-7 animate-fade-in-delay-6"><div class="jsx-1607277904 text-center lg:text-left"><div style="color:var(--color-text)" class="jsx-1607277904 text-base sm:text-lg font-bold mb-0.5">Direct P2P</div><div style="color:var(--color-text-muted)" class="jsx-1607277904 text-xs font-mono">WebRTC DataChannel</div></div><div class="jsx-1607277904 text-center lg:text-left"><div style="color:var(--color-text)" class="jsx-1607277904 text-base sm:text-lg font-bold mb-0.5">&lt;20ms</div><div style="color:var(--color-text-muted)" class="jsx-1607277904 text-xs font-mono">Ultra-Low Latency</div></div><div class="jsx-1607277904 text-center lg:text-left"><div style="color:var(--color-text)" class="jsx-1607277904 text-base sm:text-lg font-bold mb-0.5">30+ AI Agents</div><div style="color:var(--color-text-muted)" class="jsx-1607277904 text-xs font-mono">Vibe Coding Ready</div></div><div class="jsx-1607277904 text-center lg:text-left"><div style="color:var(--color-text)" class="jsx-1607277904 text-base sm:text-lg font-bold mb-0.5">Persistent</div><div style="color:var(--color-text-muted)" class="jsx-1607277904 text-xs font-mono">PTY Daemon Sessions</div></div></div></div><div class="jsx-1607277904 relative w-full flex justify-center items-center lg:justify-end animate-fade-in-delay-2 min-w-0 mt-4 lg:mt-0"><div class="jsx-1607277904 relative w-full max-w-full sm:max-w-[620px] -translate-y-2 sm:-translate-y-5"><div style="background:radial-gradient(ellipse at center, rgba(255,255,255,0.10) 0%, transparent 70%)" class="jsx-1607277904 absolute -inset-8 opacity-50 blur-3xl pointer-events-none"></div><div style="background:var(--color-surface);border-color:var(--color-border)" class="jsx-1607277904 relative rounded-xl overflow-hidden border shadow-2xl"><div style="background:var(--color-surface-2);border-color:var(--color-border)" class="jsx-1607277904 flex items-center gap-2 px-3 sm:px-4 py-2.5 sm:py-3 border-b"><div class="jsx-1607277904 flex gap-1.5 sm:gap-2 flex-shrink-0"><div style="background:#FF5F57" class="jsx-1607277904 w-2.5 h-2.5 sm:w-3 sm:h-3 rounded-full"></div><div style="background:#FEBC2E" class="jsx-1607277904 w-2.5 h-2.5 sm:w-3 sm:h-3 rounded-full"></div><div style="background:#28C840" class="jsx-1607277904 w-2.5 h-2.5 sm:w-3 sm:h-3 rounded-full"></div></div><span style="color:var(--color-text-muted)" class="jsx-1607277904 ml-2 sm:ml-3 text-[10px] sm:text-xs font-mono truncate min-w-0">9remote<span class="jsx-1607277904 hidden sm:inline"> — desktop</span></span></div><img src="/screenshots/desktop-ide.webp" alt="9Remote desktop workspace: terminal, editor and AI agent panes side by side" class="jsx-1607277904 w-full block"/></div><div class="jsx-1607277904 mt-5 flex w-max mx-auto items-end gap-2 sm:absolute sm:mt-0 sm:mx-0 sm:-bottom-[134px] sm:-right-8 sm:gap-3 sm:origin-bottom-right sm:scale-[0.66]"><div style="background:var(--color-bg);border:1px solid var(--color-border);animation-delay:0s" class="jsx-1607277904 relative w-[100px] sm:w-[180px] rounded-[1.1rem] p-0.5 shadow-2xl animate-float-phone"><img src="/screenshots/mobile-1.webp" alt="Claude Code running in 9Remote on a phone" loading="lazy" class="jsx-1607277904 w-full block rounded-[0.95rem]"/></div><div style="background:var(--color-bg);border:1px solid var(--color-border);animation-delay:0.9s" class="jsx-1607277904 relative w-[100px] sm:w-[180px] rounded-[1.1rem] p-0.5 shadow-2xl animate-float-phone"><img src="/screenshots/mobile-2.webp" alt="File explorer in 9Remote on a phone" loading="lazy" class="jsx-1607277904 w-full block rounded-[0.95rem]"/></div><div style="background:var(--color-bg);border:1px solid var(--color-border);animation-delay:1.8s" class="jsx-1607277904 relative w-[100px] sm:w-[180px] rounded-[1.1rem] p-0.5 shadow-2xl animate-float-phone"><img src="/screenshots/mobile-3.webp" alt="System dashboard in 9Remote on a phone" loading="lazy" class="jsx-1607277904 w-full block rounded-[0.95rem]"/></div></div></div></div></div></div></section><section id="how-it-works" class="relative py-24 px-4 sm:px-6 lg:px-8"><div class="max-w-5xl mx-auto"><div class="text-center mb-14"><h2 class="text-3xl sm:text-4xl lg:text-5xl font-bold mb-3" style="color:var(--color-text)">Two halves. One session.</h2><p class="text-base sm:text-lg max-w-xl mx-auto" style="color:var(--color-text-muted)">One command on your machine — then any browser joins it. Direct connection, no relay.</p></div><div class="grid grid-cols-1 md:grid-cols-[1fr_auto_1fr] gap-4 md:gap-6 items-stretch"><div class="p-6 sm:p-7 rounded-2xl border flex flex-col transition-all duration-300 hover:-translate-y-1" style="background:var(--color-surface);border-color:var(--color-border)"><div class="flex items-center gap-2 mb-3"><span class="text-[11px] font-mono font-bold px-2 py-0.5 rounded border uppercase tracking-wider" style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-accent)">Host</span><span class="text-[10px] font-mono px-1.5 py-0.5 rounded border" style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)">v<!-- -->3.0.5</span></div><h3 class="text-xl font-bold mb-1.5" style="color:var(--color-text)">On your machine</h3><p class="text-sm mb-5" style="color:var(--color-text-muted)">Serves your terminals, screen and files.</p><div class="mt-auto flex flex-col items-center"><div class="flex gap-0.5 p-1 rounded-lg border mb-6 w-full" style="background:var(--color-surface-2);border-color:var(--color-border)"><button class="flex-1 px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors " style="background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px rgba(0,0,0,0.2)">App</button><button class="flex-1 px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors hover:text-text" style="color:var(--color-text-subtle)">npm</button></div><div class="inline-block rounded-lg border overflow-hidden" style="border-color:var(--color-border)"><a target="_blank" rel="noopener noreferrer" class="w-full flex items-center justify-center gap-2 px-4 py-1.5 text-[13px] font-semibold transition-opacity hover:opacity-90" style="background:var(--color-text);color:var(--color-bg)" href="https://github.com/decolua/9remote/releases/latest"><svg class="w-4 h-4 flex-shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 3v12m0 0l-4-4m4 4l4-4M4 21h16"></path></svg>Download v3.0.5</a></div></div></div><div class="flex md:flex-col items-center justify-center gap-2 py-2 md:py-0"><span class="text-[11px] font-mono px-2 py-0.5 rounded border whitespace-nowrap" style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-accent)">WebRTC</span><svg class="w-6 h-6 rotate-90 md:rotate-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" style="color:var(--color-text-subtle)"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M4 12h16m0 0l-6-6m6 6l-6 6"></path></svg></div><div class="p-6 sm:p-7 rounded-2xl border flex flex-col transition-all duration-300 hover:-translate-y-1" style="background:var(--color-surface);border-color:var(--color-border)"><div class="flex items-center gap-2 mb-3"><span class="text-[11px] font-mono font-bold px-2 py-0.5 rounded border uppercase tracking-wider" style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-accent)">Client</span><span class="text-[10px] font-mono px-1.5 py-0.5 rounded border" style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)">v<!-- -->3.0.5</span></div><h3 class="text-xl font-bold mb-1.5" style="color:var(--color-text)">With you anywhere</h3><p class="text-sm mb-5" style="color:var(--color-text-muted)">Same session on any screen — nothing to sync.</p><div class="mt-auto flex flex-col items-center"><div class="flex gap-0.5 p-1 rounded-lg border mb-6 w-full" style="background:var(--color-surface-2);border-color:var(--color-border)"><button class="flex-1 px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors " style="background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px rgba(0,0,0,0.2)">Browser</button><button class="flex-1 px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors hover:text-text" style="color:var(--color-text-subtle)">Desktop</button><button class="flex-1 px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors hover:text-text" style="color:var(--color-text-subtle)">Mobile</button></div><div class="inline-block rounded-lg border overflow-hidden" style="border-color:var(--color-border)"><a class="w-full flex items-center justify-center gap-2 px-4 py-1.5 text-[13px] font-semibold transition-opacity hover:opacity-90" style="background:var(--color-text);color:var(--color-bg)" href="/login"><svg class="w-4 h-4 flex-shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 12a9 9 0 11-9-9m9 9H3m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9"></path></svg>Open in Browser<span class="ml-auto text-xs font-mono opacity-70">→</span></a></div></div></div></div></div></section><section id="features" class="jsx-469167ead414021 relative py-24 px-4 sm:px-6 lg:px-8"><div class="jsx-469167ead414021 max-w-7xl mx-auto"><div class="jsx-469167ead414021 text-center mb-16"><div style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-accent)" class="jsx-469167ead414021 inline-flex items-center gap-2 px-3 py-1 mb-4 rounded-full border text-xs font-mono">Remote Everything · Everywhere</div><h2 style="color:var(--color-text)" class="jsx-469167ead414021 text-3xl sm:text-4xl lg:text-5xl font-bold mb-4">Why Choose <span style="color:var(--color-text)" class="jsx-469167ead414021">9Remote?</span></h2><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-base sm:text-lg max-w-2xl mx-auto">All your dev superpowers on any screen — zero config, zero lag, zero trust.</p></div><div class="jsx-469167ead414021 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-20"><div style="background:var(--color-surface);border-color:var(--color-border);animation:fadeInUp 0.4s ease-out 0s both" class="jsx-469167ead414021 group relative p-6 rounded-xl border flex flex-col justify-between"><div class="jsx-469167ead414021"><div class="jsx-469167ead414021 flex items-center justify-between mb-4"><div style="background:var(--color-surface-2);color:var(--color-text)" class="jsx-469167ead414021 w-10 h-10 rounded-lg flex items-center justify-center"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-469167ead414021 w-5 h-5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M13 10V3L4 14h7v7l9-11h-7z" class="jsx-469167ead414021"></path></svg></div><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)" class="jsx-469167ead414021 text-[11px] font-mono px-2 py-0.5 rounded border">AI-Ready</span></div><h3 style="color:var(--color-text)" class="jsx-469167ead414021 text-lg font-bold mb-2">Remote Vibe Coding</h3></div><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-sm leading-relaxed">Run Claude Code, Cursor &amp; 30+ AI agents on the go with live artifact previews.</p></div><div style="background:var(--color-surface);border-color:var(--color-border);animation:fadeInUp 0.4s ease-out 0.04s both" class="jsx-469167ead414021 group relative p-6 rounded-xl border flex flex-col justify-between"><div class="jsx-469167ead414021"><div class="jsx-469167ead414021 flex items-center justify-between mb-4"><div style="background:var(--color-surface-2);color:var(--color-text)" class="jsx-469167ead414021 w-10 h-10 rounded-lg flex items-center justify-center"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-469167ead414021 w-5 h-5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M12 18h.01M7 21h10a2 2 0 002-2V5a2 2 0 00-2-2H7a2 2 0 00-2 2v14a2 2 0 002 2z" class="jsx-469167ead414021"></path></svg></div><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)" class="jsx-469167ead414021 text-[11px] font-mono px-2 py-0.5 rounded border">Any Device</span></div><h3 style="color:var(--color-text)" class="jsx-469167ead414021 text-lg font-bold mb-2">Every Screen, Everywhere</h3></div><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-sm leading-relaxed">Seamless across PC, Web, iPad keyboard shortcuts, and mobile dev keys.</p></div><div style="background:var(--color-surface);border-color:var(--color-border);animation:fadeInUp 0.4s ease-out 0.08s both" class="jsx-469167ead414021 group relative p-6 rounded-xl border flex flex-col justify-between"><div class="jsx-469167ead414021"><div class="jsx-469167ead414021 flex items-center justify-between mb-4"><div style="background:var(--color-surface-2);color:var(--color-text)" class="jsx-469167ead414021 w-10 h-10 rounded-lg flex items-center justify-center"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-469167ead414021 w-5 h-5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" class="jsx-469167ead414021"></path></svg></div><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)" class="jsx-469167ead414021 text-[11px] font-mono px-2 py-0.5 rounded border">Encrypted P2P</span></div><h3 style="color:var(--color-text)" class="jsx-469167ead414021 text-lg font-bold mb-2">60fps Remote Desktop</h3></div><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-sm leading-relaxed">Ultra-smooth PC &amp; Mac control over encrypted WebRTC with host approval.</p></div><div style="background:var(--color-surface);border-color:var(--color-border);animation:fadeInUp 0.4s ease-out 0.12s both" class="jsx-469167ead414021 group relative p-6 rounded-xl border flex flex-col justify-between"><div class="jsx-469167ead414021"><div class="jsx-469167ead414021 flex items-center justify-between mb-4"><div style="background:var(--color-surface-2);color:var(--color-text)" class="jsx-469167ead414021 w-10 h-10 rounded-lg flex items-center justify-center"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-469167ead414021 w-5 h-5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4" class="jsx-469167ead414021"></path></svg></div><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)" class="jsx-469167ead414021 text-[11px] font-mono px-2 py-0.5 rounded border">All-in-One</span></div><h3 style="color:var(--color-text)" class="jsx-469167ead414021 text-lg font-bold mb-2">Full Remote IDE</h3></div><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-sm leading-relaxed">Multi-pane terminal, code editor, and Git diffs in your pocket.</p></div><div style="background:var(--color-surface);border-color:var(--color-border);animation:fadeInUp 0.4s ease-out 0.16s both" class="jsx-469167ead414021 group relative p-6 rounded-xl border flex flex-col justify-between"><div class="jsx-469167ead414021"><div class="jsx-469167ead414021 flex items-center justify-between mb-4"><div style="background:var(--color-surface-2);color:var(--color-text)" class="jsx-469167ead414021 w-10 h-10 rounded-lg flex items-center justify-center"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-469167ead414021 w-5 h-5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M12 18h.01M8 21h8a2 2 0 002-2V5a2 2 0 00-2-2H8a2 2 0 00-2 2v14a2 2 0 002 2z" class="jsx-469167ead414021"></path></svg></div><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)" class="jsx-469167ead414021 text-[11px] font-mono px-2 py-0.5 rounded border">Mobile Dev</span></div><h3 style="color:var(--color-text)" class="jsx-469167ead414021 text-lg font-bold mb-2">Live Mobile Emulator</h3></div><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-sm leading-relaxed">Test and interact with Android &amp; iOS emulators directly from your phone.</p></div><div style="background:var(--color-surface);border-color:var(--color-border);animation:fadeInUp 0.4s ease-out 0.2s both" class="jsx-469167ead414021 group relative p-6 rounded-xl border flex flex-col justify-between"><div class="jsx-469167ead414021"><div class="jsx-469167ead414021 flex items-center justify-between mb-4"><div style="background:var(--color-surface-2);color:var(--color-text)" class="jsx-469167ead414021 w-10 h-10 rounded-lg flex items-center justify-center"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-469167ead414021 w-5 h-5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9" class="jsx-469167ead414021"></path></svg></div><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)" class="jsx-469167ead414021 text-[11px] font-mono px-2 py-0.5 rounded border">Zero-Exposure</span></div><h3 style="color:var(--color-text)" class="jsx-469167ead414021 text-lg font-bold mb-2">Zero-Config Localhost</h3></div><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-sm leading-relaxed">Preview localhost without opening ports, ngrok, or exposing to the public internet.</p></div><div style="background:var(--color-surface);border-color:var(--color-border);animation:fadeInUp 0.4s ease-out 0.24s both" class="jsx-469167ead414021 group relative p-6 rounded-xl border flex flex-col justify-between"><div class="jsx-469167ead414021"><div class="jsx-469167ead414021 flex items-center justify-between mb-4"><div style="background:var(--color-surface-2);color:var(--color-text)" class="jsx-469167ead414021 w-10 h-10 rounded-lg flex items-center justify-center"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-469167ead414021 w-5 h-5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z" class="jsx-469167ead414021"></path></svg></div><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)" class="jsx-469167ead414021 text-[11px] font-mono px-2 py-0.5 rounded border">Path-Jailed</span></div><h3 style="color:var(--color-text)" class="jsx-469167ead414021 text-lg font-bold mb-2">Visual File Explorer</h3></div><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-sm leading-relaxed">Fuzzy search files (⌘⇧P) and edit code inside a secure, jailed workspace.</p></div><div style="background:var(--color-surface);border-color:var(--color-border);animation:fadeInUp 0.4s ease-out 0.28s both" class="jsx-469167ead414021 group relative p-6 rounded-xl border flex flex-col justify-between"><div class="jsx-469167ead414021"><div class="jsx-469167ead414021 flex items-center justify-between mb-4"><div style="background:var(--color-surface-2);color:var(--color-text)" class="jsx-469167ead414021 w-10 h-10 rounded-lg flex items-center justify-center"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-469167ead414021 w-5 h-5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z" class="jsx-469167ead414021"></path></svg></div><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)" class="jsx-469167ead414021 text-[11px] font-mono px-2 py-0.5 rounded border">Self-Hosted</span></div><h3 style="color:var(--color-text)" class="jsx-469167ead414021 text-lg font-bold mb-2">Zero-Trust &amp; 100% Private</h3></div><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-sm leading-relaxed">Physical host approval, direct P2P, zero cloud storage. Your code never leaves your machine.</p></div></div><div class="jsx-469167ead414021 pt-8"><div class="jsx-469167ead414021 text-center mb-10"><h3 style="color:var(--color-text)" class="jsx-469167ead414021 text-2xl sm:text-3xl font-bold mb-2">How 9Remote Compares</h3><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-sm sm:text-base max-w-xl mx-auto">Built from scratch for modern developers who need both power and mobility.</p></div><div style="background:var(--color-surface);border-color:var(--color-border)" class="jsx-469167ead414021 overflow-x-auto rounded-2xl border"><table class="jsx-469167ead414021 min-w-full"><thead class="jsx-469167ead414021"><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021"><th style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-3 sm:py-4 text-left text-xs sm:text-sm font-semibold sticky left-0 z-10 min-w-[140px] sm:min-w-[200px]">Feature</th><th style="color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-3 sm:py-4 text-center text-xs sm:text-sm font-semibold min-w-[80px] sm:min-w-[110px]">9Remote</th><th style="color:var(--color-text);background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-3 sm:py-4 text-center text-xs sm:text-sm font-semibold min-w-[80px] sm:min-w-[110px]">Claude Remote</th><th style="color:var(--color-text);background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-3 sm:py-4 text-center text-xs sm:text-sm font-semibold min-w-[80px] sm:min-w-[110px]">TeamViewer</th><th style="color:var(--color-text);background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-3 sm:py-4 text-center text-xs sm:text-sm font-semibold min-w-[80px] sm:min-w-[110px]">Chrome Remote</th><th style="color:var(--color-text);background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-3 sm:py-4 text-center text-xs sm:text-sm font-semibold min-w-[80px] sm:min-w-[110px]">Termius</th></tr></thead><tbody class="jsx-469167ead414021"><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Zero Config</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Remote IDE</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">30+ AI Agents &amp; Vibe Coding</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Terminal Access</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Persistent Daemon</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Remote Localhost Preview</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Touch File Explorer &amp; Editor</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Remote Desktop</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Remote Emulator</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">AI Agent Artifacts</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Physical Host Approval</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Git Integration</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Mobile &amp; iPad Optimized</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Browser-Based</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">QR Login</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Auto Tunnel</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">No Port Forwarding</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">No Account Required</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:none" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Free &amp; Open Source</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr></tbody></table></div><div class="jsx-469167ead414021 mt-8 text-center"><div style="background:var(--color-surface-2);border-color:var(--color-border)" class="jsx-469167ead414021 inline-flex items-center gap-2 px-4 py-2 rounded-full border text-xs sm:text-sm"><svg viewBox="0 0 20 20" style="color:var(--color-text)" class="jsx-469167ead414021 w-4 h-4 flex-shrink-0"><circle cx="10" cy="10" r="8" fill="currentColor" class="jsx-469167ead414021"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="jsx-469167ead414021"></path></svg><span style="color:var(--color-text)" class="jsx-469167ead414021 font-semibold">9Remote: Complete 19/19 capabilities · 100% self-hosted &amp; private</span></div></div></div></div></section><section id="security" class="relative py-24 px-4 sm:px-6 lg:px-8"><div class="max-w-7xl mx-auto"><div class="text-center mb-16"><div class="inline-flex items-center gap-2 px-3 py-1 rounded-full border mb-4 text-xs font-mono" style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)">Zero-Trust Architecture</div><h2 class="text-3xl sm:text-4xl lg:text-5xl font-bold mb-4" style="color:var(--color-text)">3-Layer Security &amp; <span style="color:var(--color-text)">Zero-Trust Verification</span></h2><p class="text-base sm:text-lg max-w-2xl mx-auto" style="color:var(--color-text-muted)">Split-Key pairing, direct WebRTC encryption, and physical host approval — your machine stays completely protected.</p></div><div class="p-4 sm:p-8 rounded-xl border mb-12 overflow-x-auto flex justify-center" style="background:var(--color-surface);border-color:var(--color-border)"><div class="py-20 text-sm font-mono" style="color:var(--color-text-muted)">Loading security flow diagram...</div></div><div class="grid grid-cols-1 md:grid-cols-3 gap-6"><div class="p-6 rounded-xl border flex flex-col justify-between" style="background:var(--color-surface);border-color:var(--color-border)"><div><div class="flex items-center justify-between mb-4"><div class="w-9 h-9 rounded-lg flex items-center justify-center border" style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-accent)"><svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z"></path></svg></div><span class="text-xs font-mono" style="color:var(--color-accent)">STEP <!-- -->01</span></div><h3 class="text-lg font-bold mb-2" style="color:var(--color-text)">Split-Key Zero-Trust</h3></div><p class="text-sm leading-relaxed" style="color:var(--color-text-muted)">The pairing key is split into HEAD and TAIL. The relay server only sees HEAD to broker the WebRTC handshake and never receives or knows your secret TAIL.</p></div><div class="p-6 rounded-xl border flex flex-col justify-between" style="background:var(--color-surface);border-color:var(--color-border)"><div><div class="flex items-center justify-between mb-4"><div class="w-9 h-9 rounded-lg flex items-center justify-center border" style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-accent)"><svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path></svg></div><span class="text-xs font-mono" style="color:var(--color-accent)">STEP <!-- -->02</span></div><h3 class="text-lg font-bold mb-2" style="color:var(--color-text)">Direct P2P Verification</h3></div><p class="text-sm leading-relaxed" style="color:var(--color-text-muted)">Clients connect directly to your machine via WebRTC. Your secret TAIL is sealed with the host&#x27;s public key (X25519 + AES-256-GCM) — unreadable to any intermediate relay.</p></div><div class="p-6 rounded-xl border flex flex-col justify-between" style="background:var(--color-surface);border-color:var(--color-border)"><div><div class="flex items-center justify-between mb-4"><div class="w-9 h-9 rounded-lg flex items-center justify-center border" style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-accent)"><svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"></path></svg></div><span class="text-xs font-mono" style="color:var(--color-accent)">STEP <!-- -->03</span></div><h3 class="text-lg font-bold mb-2" style="color:var(--color-text)">Physical Host Approval</h3></div><p class="text-sm leading-relaxed" style="color:var(--color-text-muted)">Even if someone knows your key, new devices cannot access your machine until you physically click &#x27;Approve&#x27; on your computer screen.</p></div></div></div></section><section class="relative py-24 px-4 sm:px-6 lg:px-8"><div class="max-w-4xl mx-auto text-center"><div class="relative"><div class="absolute inset-0 blur-3xl pointer-events-none animate-pulse-glow" style="background:rgba(255,255,255,0.05)"></div><div class="relative"><h2 class="text-3xl sm:text-4xl lg:text-5xl font-bold mb-5" style="color:var(--color-text)">Remote everything.<br/>On any screen, <span style="color:var(--color-text)">everywhere</span>.</h2><p class="text-base sm:text-lg mb-8 max-w-2xl mx-auto" style="color:var(--color-text-muted)">IDE, 60fps desktop, files, emulator &amp; 30+ AI vibe coding agents on PC, Web, iPad, and mobile. Ready in 30 seconds.</p><div class="flex flex-row gap-2.5 sm:gap-3 justify-center items-center flex-wrap"><a class="btn-cta group px-5 sm:px-8 py-3 sm:py-4 rounded-lg font-semibold text-sm sm:text-base transition-transform duration-300 hover:scale-[1.03]" style="background:var(--color-accent);color:#FFF" href="/login"><span class="flex items-center justify-center gap-2">Get Remote<svg class="w-5 h-5 group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"></path></svg></span></a><a href="https://github.com/decolua/9remote" target="_blank" rel="noopener noreferrer" class="px-5 sm:px-8 py-3 sm:py-4 rounded-lg font-semibold text-sm sm:text-base transition-all duration-300 hover:scale-[1.03] flex items-center justify-center gap-2 border" style="background:var(--color-surface-2);color:var(--color-text);border-color:var(--color-border)"><svg class="w-4 h-4 sm:w-5 sm:h-5" fill="currentColor" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clip-rule="evenodd"></path></svg><span>Star on GitHub</span></a></div><p class="mt-8 text-xs sm:text-sm font-mono" style="color:var(--color-text-subtle)">✓ 100% Free · Open source MIT · Zero tracking or telemetry</p></div></div></div></section></main><footer class="relative py-14 px-4 sm:px-6 lg:px-8 border-t" style="background:var(--color-bg);border-color:var(--color-border)"><div class="max-w-7xl mx-auto"><div class="grid grid-cols-1 md:grid-cols-4 gap-8 mb-8"><div class="col-span-1 md:col-span-2"><div class="flex items-center gap-3 mb-4"><img src="/icon-192.png" alt="9Remote Logo" class="w-9 h-9 rounded-lg object-contain shadow-md shadow-brand-500/20"/><h3 class="text-xl font-bold" style="color:var(--color-text)">9Remote</h3></div><p class="text-sm max-w-md mb-4" style="color:var(--color-text-muted)">Remote everything, everywhere. Remote IDE, 60fps desktop, files, emulator &amp; vibe coding on any screen.</p><p class="text-xs" style="color:var(--color-text-subtle)">© <!-- -->2026<!-- --> 9Remote. All rights reserved.<span class="ml-2">v<!-- -->3.0.5</span></p></div><div><h4 class="font-semibold mb-4 text-sm" style="color:var(--color-text)">Product</h4><ul class="space-y-2"><li><a class="text-sm transition-colors" style="color:var(--color-text-muted)" href="/login">Remote</a></li><li><a class="text-sm transition-colors" style="color:var(--color-text-muted)" href="/workspace">Terminal</a></li><li><a class="text-sm transition-colors" style="color:var(--color-text-muted)" href="/remote">Remote Desktop</a></li><li><a href="https://apps.apple.com/us/app/9remote/id6796664210" target="_blank" rel="noopener noreferrer" class="text-sm transition-colors" style="color:var(--color-text-muted)">iOS (App Store)</a></li><li><a href="https://play.google.com/store/apps/details?id=cc.remote9.app&amp;pli=1" target="_blank" rel="noopener noreferrer" class="text-sm transition-colors" style="color:var(--color-text-muted)">Android (Google Play)</a></li></ul></div><div><h4 class="font-semibold mb-4 text-sm" style="color:var(--color-text)">Resources</h4><ul class="space-y-2"><li><a href="https://github.com/decolua/9remote" target="_blank" rel="noopener noreferrer" class="text-sm transition-colors" style="color:var(--color-text-muted)">GitHub</a></li><li><a href="https://www.npmjs.com/package/9remote" target="_blank" rel="noopener noreferrer" class="text-sm transition-colors" style="color:var(--color-text-muted)">NPM</a></li><li><a href="https://docs.9remote.cc/" target="_blank" rel="noopener noreferrer" class="text-sm transition-colors" style="color:var(--color-text-muted)">Documentation</a></li><li><a href="https://www.facebook.com/groups/9teamvn" target="_blank" rel="noopener noreferrer" class="text-sm transition-colors" style="color:var(--color-text-muted)">Community</a></li></ul></div></div><div class="pt-8 flex flex-col sm:flex-row justify-between items-center gap-4 border-t" style="border-color:var(--color-border)"><p class="text-xs" style="color:var(--color-text-subtle)">Built with Next.js, Socket.io, and Cloudflare Workers</p><div class="flex gap-6"><a href="https://github.com/decolua/9remote" target="_blank" rel="noopener noreferrer" class="text-xs transition-colors" style="color:var(--color-text-subtle)">GitHub</a><a href="https://www.npmjs.com/package/9remote" target="_blank" rel="noopener noreferrer" class="text-xs transition-colors" style="color:var(--color-text-subtle)">NPM</a><a href="https://docs.9remote.cc/" target="_blank" rel="noopener noreferrer" class="text-xs transition-colors" style="color:var(--color-text-subtle)">Documentation</a></div></div></div></footer></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-210219beafaa52a1.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[59584,[\"4732\",\"static/chunks/4732-76a574510722b2c3.js\",\"7177\",\"static/chunks/app/layout-ec53a1a0c4b3e99e.js\"],\"default\"]\n3:I[44976,[\"4732\",\"static/chunks/4732-76a574510722b2c3.js\",\"7177\",\"static/chunks/app/layout-ec53a1a0c4b3e99e.js\"],\"ThemeProvider\"]\n4:I[91133,[],\"\"]\n5:I[4297,[],\"\"]\n6:I[95223,[\"4732\",\"static/chunks/4732-76a574510722b2c3.js\",\"7177\",\"static/chunks/app/layout-ec53a1a0c4b3e99e.js\"],\"default\"]\n7:I[72569,[\"4732\",\"static/chunks/4732-76a574510722b2c3.js\",\"7177\",\"static/chunks/app/layout-ec53a1a0c4b3e99e.js\"],\"GoogleAnalytics\"]\n8:I[1076,[],\"ClientPageRoot\"]\n9:I[27493,[\"7738\",\"static/chunks/7738-2439d4a20b745ce1.js\",\"9568\",\"static/chunks/9568-0bfadca4fcb105aa.js\",\"9958\",\"static/chunks/9958-9952a61eb6e17812.js\",\"8974\",\"static/chunks/app/page-00c77a2e54c385ac.js\"],\"default\"]\nc:I[31872,[],\"OutletBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[31872,[],\"ViewportBoundary\"]\n11:I[31872,[],\"MetadataBoundary\"]\n13:I[57567,[],\"default\",1]\n:HL[\"/_next/static/media/22a5144ee8d83bca-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/7d4881bb7e1bf84d-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/b496025c9cd768cc.css\",\"style\"]\n:HL[\"/_next/static/css/48ee7d57614b1421.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/b496025c9cd768cc.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/48ee7d57614b1421.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"scroll-smooth scroll-pt-20\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"__variable_246ccd __variable_c29908 antialiased\",\"children\":[[\"$\",\"$L2\",null,{\"id\":\"expo-redirect\",\"html\":\"(function(){try{if(location.hostname===\\\"dev.9remote.cc\\\"\u0026\u0026(window.ReactNativeWebView||/9Remote-Mobile/i.test(navigator.userAgent))){location.replace(\\\"https://9remote.cc\\\"+location.pathname+location.search+location.hash);}}catch(e){}})();\"}],[\"$\",\"$L2\",null,{\"id\":\"theme-init\",\"html\":\"(function(){try{var t=localStorage.getItem(\\\"app_theme_v2\\\")||\\\"dark\\\";document.documentElement.classList.add(t);}catch(e){document.documentElement.classList.add(\\\"dark\\\");}})();\"}],[\"$\",\"$L2\",null,{\"id\":\"safe-area-bridge\",\"html\":\"window.handleSafeAreaInset=function(top,bottom){try{if(top\u0026\u0026top\u003e0)document.documentElement.style.setProperty(\\\"--pl-top\\\",top+\\\"px\\\");}catch(e){}};\"}],[\"$\",\"$L2\",null,{\"id\":\"sw-register\",\"html\":\"if('serviceWorker' in navigator){window.addEventListener('load',function(){navigator.serviceWorker.register('/sw.js').catch(function(e){console.log('SW registration failed:',e);});});}\"}],[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L6\",null,{}],[\"$\",\"$L7\",null,{\"gaId\":\"G-8XXG61NY56\"}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L8\",null,{\"Component\":\"$9\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@a\",\"$@b\"]}}],null,[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$d\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@e\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lf\",null,{\"children\":\"$L10\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L11\",null,{\"children\":[\"$\",\"$d\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L12\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$13\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"aW3BVD9Z6dZG5uaKNzgmQ\"}\n"])</script><script>self.__next_f.push([1,"a:{}\nb:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"10:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, interactive-widget=resizes-content\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#121212\"}]]\n"])</script><script>self.__next_f.push([1,"14:I[12569,[],\"IconMark\"]\ne:null\n12:[[\"$\",\"title\",\"0\",{\"children\":\"9Remote — Remote Everything, Everywhere\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Remote IDE, desktop, files, emulator \u0026 vibe coding on PC, Web, iPad, and Mobile. Ultra-low latency WebRTC P2P dev suite.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"9Remote Terminal\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/manifest.json\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"4\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"9Remote\"}],[\"$\",\"meta\",\"6\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"link\",\"7\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"sizes\":\"any\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/icon-192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"link\",\"9\",{\"rel\":\"icon\",\"href\":\"/icon-512.png\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],[\"$\",\"link\",\"10\",{\"rel\":\"apple-touch-icon\",\"href\":\"/icon-192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"$L14\",\"11\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en" class="scroll-smooth scroll-pt-20"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, interactive-widget=resizes-content"/><link rel="preload" href="/_next/static/media/22a5144ee8d83bca-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/7d4881bb7e1bf84d-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" href="/icon-192.png"/><link rel="preload" as="image" href="/screenshots/desktop-ide.webp"/><link rel="stylesheet" href="/_next/static/css/b496025c9cd768cc.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/48ee7d57614b1421.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-210219beafaa52a1.js"/><script src="/_next/static/chunks/c7879cf7-0d16fce1674078f9.js" async=""></script><script src="/_next/static/chunks/5158-267908d069475cdc.js" async=""></script><script src="/_next/static/chunks/main-app-1831d4f902c3fcb9.js" async=""></script><script src="/_next/static/chunks/4732-76a574510722b2c3.js" async=""></script><script src="/_next/static/chunks/app/layout-ec53a1a0c4b3e99e.js" async=""></script><script src="/_next/static/chunks/7738-2439d4a20b745ce1.js" async=""></script><script src="/_next/static/chunks/9568-0bfadca4fcb105aa.js" async=""></script><script src="/_next/static/chunks/9958-9952a61eb6e17812.js" async=""></script><script src="/_next/static/chunks/app/page-10772fa3d9560889.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-8XXG61NY56" as="script"/><meta name="next-size-adjust" content=""/><meta name="theme-color" content="#121212"/><title>9Remote — Remote Everything, Everywhere</title><meta name="description" content="Remote IDE, desktop, files, emulator &amp; vibe coding on PC, Web, iPad, and Mobile. Ultra-low latency WebRTC P2P dev suite."/><meta name="application-name" content="9Remote Terminal"/><link rel="manifest" href="/manifest.json"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="9Remote"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="icon" href="/favicon.ico" sizes="any"/><link rel="icon" href="/icon-192.png" sizes="192x192" type="image/png"/><link rel="icon" href="/icon-512.png" sizes="512x512" type="image/png"/><link rel="apple-touch-icon" href="/icon-192.png" sizes="192x192" type="image/png"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_246ccd __variable_c29908 antialiased"><div hidden=""><!--$--><!--/$--></div><script id="expo-redirect">(function(){try{if(location.hostname==="dev.9remote.cc"&&(window.ReactNativeWebView||/9Remote-Mobile/i.test(navigator.userAgent))){location.replace("https://9remote.cc"+location.pathname+location.search+location.hash);}}catch(e){}})();</script><script id="theme-init">(function(){try{var t=localStorage.getItem("app_theme_v2")||"dark";document.documentElement.classList.add(t);}catch(e){document.documentElement.classList.add("dark");}})();</script><script id="safe-area-bridge">window.handleSafeAreaInset=function(top,bottom){try{if(top&&top>0)document.documentElement.style.setProperty("--pl-top",top+"px");}catch(e){}};</script><script id="sw-register">if('serviceWorker' in navigator){window.addEventListener('load',function(){navigator.serviceWorker.register('/sw.js').catch(function(e){console.log('SW registration failed:',e);});});}</script><div class="min-h-screen overflow-x-hidden safe-area-insets" style="color:var(--color-text)"><div class="fixed inset-0 -z-10 overflow-hidden pointer-events-none landing-bg"><div class="absolute inset-0 landing-grid"></div><div class="absolute inset-0 landing-vignette"></div></div><div class="landing-light" aria-hidden="true"></div><nav class="fixed top-0 left-0 right-0 z-50 transition-all duration-300" style="background:transparent;backdrop-filter:none;border-bottom:1px solid transparent"><div class="max-w-7xl mx-auto px-6 h-16 flex items-center justify-between"><a class="flex items-center gap-3 group" href="/"><img src="/icon-192.png" alt="9Remote Logo" class="w-8 h-8 rounded-lg object-contain shadow-md shadow-brand-500/20"/><span class="text-xl font-bold tracking-tight" style="color:var(--color-text)">9Remote</span><span class="px-2 py-0.5 text-xs font-mono font-medium rounded-full bg-brand-500/10 text-brand-400 border border-brand-500/20">v<!-- -->3.0.6</span></a><div class="hidden md:flex items-center gap-7"><a href="#features" class="text-sm transition-colors flex items-center gap-1.5" style="color:var(--color-text-muted)"><span>Features</span></a><a href="#security" class="text-sm transition-colors flex items-center gap-1.5" style="color:var(--color-text-muted)"><span>Security</span></a><a href="#how-it-works" class="text-sm transition-colors flex items-center gap-1.5" style="color:var(--color-text-muted)"><span>How It Works</span></a><a href="https://docs.9remote.cc/" target="_blank" rel="noopener noreferrer" class="text-sm transition-colors flex items-center gap-1.5" style="color:var(--color-text-muted)"><span>Docs</span></a><a href="https://github.com/decolua/9remote" target="_blank" rel="noopener noreferrer" class="text-sm transition-colors flex items-center gap-1.5" style="color:var(--color-text-muted)"><span>GitHub</span></a></div><div class="hidden md:flex items-center gap-3"><button type="button" aria-label="Switch to light theme" title="Light mode" class="p-1.5 rounded-brand transition-colors text-[var(--color-text-muted)] hover:text-[var(--color-text)] hover:bg-[var(--color-surface-2)] "><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"></path></svg></button><a href="#how-it-works" class="px-4 py-2 rounded-lg font-semibold text-sm border transition-transform hover:scale-[1.03]" style="background:var(--color-surface-2);border-color:var(--color-border);color:var(--color-text)"><span>Download Host</span></a><a class="btn-cta px-5 py-2 rounded-lg font-semibold text-sm transition-transform hover:scale-[1.03]" style="background:var(--color-text);color:var(--color-bg)" href="/login"><span>Remote</span></a></div><div class="md:hidden flex items-center gap-1.5"><button type="button" aria-label="Switch to light theme" title="Light mode" class="p-1.5 rounded-brand transition-colors text-[var(--color-text-muted)] hover:text-[var(--color-text)] hover:bg-[var(--color-surface-2)] "><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"></path></svg></button><button class="p-2" style="color:var(--color-text)"><svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path></svg></button></div></div></nav><main class="relative z-10"><section class="jsx-1607277904 relative min-h-screen flex items-center px-4 sm:px-6 lg:px-8 pt-24 pb-16 overflow-hidden"><div class="jsx-1607277904 max-w-7xl mx-auto relative z-10 w-full min-w-0"><div class="jsx-1607277904 grid lg:grid-cols-2 gap-12 items-center min-w-0"><div class="jsx-1607277904 text-center lg:text-left"><h1 style="font-weight:900;line-height:1.1" class="jsx-1607277904 mb-5 animate-fade-in-delay-1"><span style="color:var(--color-text)" class="jsx-1607277904 block text-2xl sm:text-3xl lg:text-4xl xl:text-5xl mb-2">Remote Everything,</span><span style="background:linear-gradient(to right, var(--color-text), var(--color-text-muted));-webkit-background-clip:text;-webkit-text-fill-color:transparent" class="jsx-1607277904 block text-2xl sm:text-3xl lg:text-4xl xl:text-5xl mb-3">Vibecode Everywhere</span></h1><div class="jsx-1607277904 flex flex-wrap gap-2 mb-6 justify-center lg:justify-start animate-fade-in-delay-2"><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text)" class="jsx-1607277904 inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-mono font-medium border transition-colors hover:border-text-subtle"><svg style="color:var(--color-accent)" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-1607277904 w-3.5 h-3.5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" class="jsx-1607277904"></path></svg><span class="jsx-1607277904">Remote IDE</span></span><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text)" class="jsx-1607277904 inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-mono font-medium border transition-colors hover:border-text-subtle"><svg style="color:var(--color-accent)" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-1607277904 w-3.5 h-3.5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M13 10V3L4 14h7v7l9-11h-7z" class="jsx-1607277904"></path></svg><span class="jsx-1607277904">Remote Vibe Coding</span></span><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text)" class="jsx-1607277904 inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-mono font-medium border transition-colors hover:border-text-subtle"><svg style="color:var(--color-accent)" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-1607277904 w-3.5 h-3.5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" class="jsx-1607277904"></path></svg><span class="jsx-1607277904">Remote Desktop</span></span><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text)" class="jsx-1607277904 inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-mono font-medium border transition-colors hover:border-text-subtle"><svg style="color:var(--color-accent)" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-1607277904 w-3.5 h-3.5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z" class="jsx-1607277904"></path></svg><span class="jsx-1607277904">Remote Files</span></span><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text)" class="jsx-1607277904 inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-mono font-medium border transition-colors hover:border-text-subtle"><svg style="color:var(--color-accent)" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-1607277904 w-3.5 h-3.5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M12 18h.01M8 21h8a2 2 0 002-2V5a2 2 0 00-2-2H8a2 2 0 00-2 2v14a2 2 0 002 2z" class="jsx-1607277904"></path></svg><span class="jsx-1607277904">Remote Emulator</span></span><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text)" class="jsx-1607277904 inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-mono font-medium border transition-colors hover:border-text-subtle"><svg style="color:var(--color-accent)" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-1607277904 w-3.5 h-3.5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9" class="jsx-1607277904"></path></svg><span class="jsx-1607277904">Remote Localhost</span></span><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text)" class="jsx-1607277904 inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-mono font-medium border transition-colors hover:border-text-subtle"><svg style="color:var(--color-accent)" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-1607277904 w-3.5 h-3.5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M12 18h.01M7 21h10a2 2 0 002-2V5a2 2 0 00-2-2H7a2 2 0 00-2 2v14a2 2 0 002 2z" class="jsx-1607277904"></path></svg><span class="jsx-1607277904">PC · Web · iPad · Mobile</span></span></div><p data-text="Leave your laptop behind. Your entire dev workstation goes wherever you go — remote IDE, 60fps desktop, visual file explorer, live mobile emulator, and remote vibe coding with 30+ AI agents on PC, Web, iPad, or phone." class="jsx-1607277904 hero-gloss text-sm sm:text-base mb-8 max-w-xl mx-auto lg:mx-0">Leave your laptop behind. Your entire dev workstation goes wherever you go — remote IDE, 60fps desktop, visual file explorer, live mobile emulator, and remote vibe coding with 30+ AI agents on PC, Web, iPad, or phone.</p><div class="jsx-1607277904 grid grid-cols-2 sm:grid-cols-4 gap-4 sm:gap-6 max-w-lg mx-auto lg:mx-0 mt-7 animate-fade-in-delay-6"><div class="jsx-1607277904 text-center lg:text-left"><div style="color:var(--color-text)" class="jsx-1607277904 text-base sm:text-lg font-bold mb-0.5">Direct P2P</div><div style="color:var(--color-text-muted)" class="jsx-1607277904 text-xs font-mono">WebRTC DataChannel</div></div><div class="jsx-1607277904 text-center lg:text-left"><div style="color:var(--color-text)" class="jsx-1607277904 text-base sm:text-lg font-bold mb-0.5">&lt;20ms</div><div style="color:var(--color-text-muted)" class="jsx-1607277904 text-xs font-mono">Ultra-Low Latency</div></div><div class="jsx-1607277904 text-center lg:text-left"><div style="color:var(--color-text)" class="jsx-1607277904 text-base sm:text-lg font-bold mb-0.5">30+ AI Agents</div><div style="color:var(--color-text-muted)" class="jsx-1607277904 text-xs font-mono">Vibe Coding Ready</div></div><div class="jsx-1607277904 text-center lg:text-left"><div style="color:var(--color-text)" class="jsx-1607277904 text-base sm:text-lg font-bold mb-0.5">Persistent</div><div style="color:var(--color-text-muted)" class="jsx-1607277904 text-xs font-mono">PTY Daemon Sessions</div></div></div></div><div class="jsx-1607277904 relative w-full flex justify-center items-center lg:justify-end animate-fade-in-delay-2 min-w-0 mt-4 lg:mt-0"><div class="jsx-1607277904 relative w-full max-w-full sm:max-w-[620px] -translate-y-2 sm:-translate-y-5"><div style="background:radial-gradient(ellipse at center, rgba(255,255,255,0.10) 0%, transparent 70%)" class="jsx-1607277904 absolute -inset-8 opacity-50 blur-3xl pointer-events-none"></div><div style="background:var(--color-surface);border-color:var(--color-border)" class="jsx-1607277904 relative rounded-xl overflow-hidden border shadow-2xl"><div style="background:var(--color-surface-2);border-color:var(--color-border)" class="jsx-1607277904 flex items-center gap-2 px-3 sm:px-4 py-2.5 sm:py-3 border-b"><div class="jsx-1607277904 flex gap-1.5 sm:gap-2 flex-shrink-0"><div style="background:#FF5F57" class="jsx-1607277904 w-2.5 h-2.5 sm:w-3 sm:h-3 rounded-full"></div><div style="background:#FEBC2E" class="jsx-1607277904 w-2.5 h-2.5 sm:w-3 sm:h-3 rounded-full"></div><div style="background:#28C840" class="jsx-1607277904 w-2.5 h-2.5 sm:w-3 sm:h-3 rounded-full"></div></div><span style="color:var(--color-text-muted)" class="jsx-1607277904 ml-2 sm:ml-3 text-[10px] sm:text-xs font-mono truncate min-w-0">9remote<span class="jsx-1607277904 hidden sm:inline"> — desktop</span></span></div><img src="/screenshots/desktop-ide.webp" alt="9Remote desktop workspace: terminal, editor and AI agent panes side by side" class="jsx-1607277904 w-full block"/></div><div class="jsx-1607277904 mt-5 flex w-max mx-auto items-end gap-2 sm:absolute sm:mt-0 sm:mx-0 sm:-bottom-[134px] sm:-right-8 sm:gap-3 sm:origin-bottom-right sm:scale-[0.66]"><div style="background:var(--color-bg);border:1px solid var(--color-border);animation-delay:0s" class="jsx-1607277904 relative w-[100px] sm:w-[180px] rounded-[1.1rem] p-0.5 shadow-2xl animate-float-phone"><img src="/screenshots/mobile-1.webp" alt="Claude Code running in 9Remote on a phone" loading="lazy" class="jsx-1607277904 w-full block rounded-[0.95rem]"/></div><div style="background:var(--color-bg);border:1px solid var(--color-border);animation-delay:0.9s" class="jsx-1607277904 relative w-[100px] sm:w-[180px] rounded-[1.1rem] p-0.5 shadow-2xl animate-float-phone"><img src="/screenshots/mobile-2.webp" alt="File explorer in 9Remote on a phone" loading="lazy" class="jsx-1607277904 w-full block rounded-[0.95rem]"/></div><div style="background:var(--color-bg);border:1px solid var(--color-border);animation-delay:1.8s" class="jsx-1607277904 relative w-[100px] sm:w-[180px] rounded-[1.1rem] p-0.5 shadow-2xl animate-float-phone"><img src="/screenshots/mobile-3.webp" alt="System dashboard in 9Remote on a phone" loading="lazy" class="jsx-1607277904 w-full block rounded-[0.95rem]"/></div></div></div></div></div></div></section><section id="how-it-works" class="relative py-24 px-4 sm:px-6 lg:px-8"><div class="max-w-5xl mx-auto"><div class="text-center mb-14"><h2 class="text-3xl sm:text-4xl lg:text-5xl font-bold mb-3" style="color:var(--color-text)">Two halves. One session.</h2><p class="text-base sm:text-lg max-w-xl mx-auto" style="color:var(--color-text-muted)">One command on your machine — then any browser joins it. Direct connection, no relay.</p></div><div class="grid grid-cols-1 md:grid-cols-[1fr_auto_1fr] gap-4 md:gap-6 items-stretch"><div class="p-6 sm:p-7 rounded-2xl border flex flex-col transition-all duration-300 hover:-translate-y-1" style="background:var(--color-surface);border-color:var(--color-border)"><div class="flex items-center gap-2 mb-3"><span class="text-[11px] font-mono font-bold px-2 py-0.5 rounded border uppercase tracking-wider" style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-accent)">Host</span><span class="text-[10px] font-mono px-1.5 py-0.5 rounded border" style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)">v<!-- -->3.0.6</span></div><h3 class="text-xl font-bold mb-1.5" style="color:var(--color-text)">On your machine</h3><p class="text-sm mb-5" style="color:var(--color-text-muted)">Serves your terminals, screen and files.</p><div class="mt-auto flex flex-col items-center"><div class="flex gap-0.5 p-1 rounded-lg border mb-6 w-full" style="background:var(--color-surface-2);border-color:var(--color-border)"><button class="flex-1 px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors " style="background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px rgba(0,0,0,0.2)">App</button><button class="flex-1 px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors hover:text-text" style="color:var(--color-text-subtle)">npm</button></div><div class="inline-block rounded-lg border overflow-hidden" style="border-color:var(--color-border)"><a target="_blank" rel="noopener noreferrer" class="w-full flex items-center justify-center gap-2 px-4 py-1.5 text-[13px] font-semibold transition-opacity hover:opacity-90" style="background:var(--color-text);color:var(--color-bg)" href="https://github.com/decolua/9remote/releases/latest"><svg class="w-4 h-4 flex-shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 3v12m0 0l-4-4m4 4l4-4M4 21h16"></path></svg>Download v3.0.6</a></div></div></div><div class="flex md:flex-col items-center justify-center gap-2 py-2 md:py-0"><span class="text-[11px] font-mono px-2 py-0.5 rounded border whitespace-nowrap" style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-accent)">WebRTC</span><svg class="w-6 h-6 rotate-90 md:rotate-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" style="color:var(--color-text-subtle)"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M4 12h16m0 0l-6-6m6 6l-6 6"></path></svg></div><div class="p-6 sm:p-7 rounded-2xl border flex flex-col transition-all duration-300 hover:-translate-y-1" style="background:var(--color-surface);border-color:var(--color-border)"><div class="flex items-center gap-2 mb-3"><span class="text-[11px] font-mono font-bold px-2 py-0.5 rounded border uppercase tracking-wider" style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-accent)">Client</span><span class="text-[10px] font-mono px-1.5 py-0.5 rounded border" style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)">v<!-- -->3.0.6</span></div><h3 class="text-xl font-bold mb-1.5" style="color:var(--color-text)">With you anywhere</h3><p class="text-sm mb-5" style="color:var(--color-text-muted)">Same session on any screen — nothing to sync.</p><div class="mt-auto flex flex-col items-center"><div class="flex gap-0.5 p-1 rounded-lg border mb-6 w-full" style="background:var(--color-surface-2);border-color:var(--color-border)"><button class="flex-1 px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors " style="background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px rgba(0,0,0,0.2)">Browser</button><button class="flex-1 px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors hover:text-text" style="color:var(--color-text-subtle)">Desktop</button><button class="flex-1 px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors hover:text-text" style="color:var(--color-text-subtle)">Mobile</button></div><div class="inline-block rounded-lg border overflow-hidden" style="border-color:var(--color-border)"><a class="w-full flex items-center justify-center gap-2 px-4 py-1.5 text-[13px] font-semibold transition-opacity hover:opacity-90" style="background:var(--color-text);color:var(--color-bg)" href="/login"><svg class="w-4 h-4 flex-shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 12a9 9 0 11-9-9m9 9H3m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9"></path></svg>Open in Browser<span class="ml-auto text-xs font-mono opacity-70">→</span></a></div></div></div></div></div></section><section id="features" class="jsx-469167ead414021 relative py-24 px-4 sm:px-6 lg:px-8"><div class="jsx-469167ead414021 max-w-7xl mx-auto"><div class="jsx-469167ead414021 text-center mb-16"><div style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-accent)" class="jsx-469167ead414021 inline-flex items-center gap-2 px-3 py-1 mb-4 rounded-full border text-xs font-mono">Remote Everything · Everywhere</div><h2 style="color:var(--color-text)" class="jsx-469167ead414021 text-3xl sm:text-4xl lg:text-5xl font-bold mb-4">Why Choose <span style="color:var(--color-text)" class="jsx-469167ead414021">9Remote?</span></h2><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-base sm:text-lg max-w-2xl mx-auto">All your dev superpowers on any screen — zero config, zero lag, zero trust.</p></div><div class="jsx-469167ead414021 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-20"><div style="background:var(--color-surface);border-color:var(--color-border);animation:fadeInUp 0.4s ease-out 0s both" class="jsx-469167ead414021 group relative p-6 rounded-xl border flex flex-col justify-between"><div class="jsx-469167ead414021"><div class="jsx-469167ead414021 flex items-center justify-between mb-4"><div style="background:var(--color-surface-2);color:var(--color-text)" class="jsx-469167ead414021 w-10 h-10 rounded-lg flex items-center justify-center"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-469167ead414021 w-5 h-5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M13 10V3L4 14h7v7l9-11h-7z" class="jsx-469167ead414021"></path></svg></div><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)" class="jsx-469167ead414021 text-[11px] font-mono px-2 py-0.5 rounded border">AI-Ready</span></div><h3 style="color:var(--color-text)" class="jsx-469167ead414021 text-lg font-bold mb-2">Remote Vibe Coding</h3></div><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-sm leading-relaxed">Run Claude Code, Cursor &amp; 30+ AI agents on the go with live artifact previews.</p></div><div style="background:var(--color-surface);border-color:var(--color-border);animation:fadeInUp 0.4s ease-out 0.04s both" class="jsx-469167ead414021 group relative p-6 rounded-xl border flex flex-col justify-between"><div class="jsx-469167ead414021"><div class="jsx-469167ead414021 flex items-center justify-between mb-4"><div style="background:var(--color-surface-2);color:var(--color-text)" class="jsx-469167ead414021 w-10 h-10 rounded-lg flex items-center justify-center"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-469167ead414021 w-5 h-5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M12 18h.01M7 21h10a2 2 0 002-2V5a2 2 0 00-2-2H7a2 2 0 00-2 2v14a2 2 0 002 2z" class="jsx-469167ead414021"></path></svg></div><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)" class="jsx-469167ead414021 text-[11px] font-mono px-2 py-0.5 rounded border">Any Device</span></div><h3 style="color:var(--color-text)" class="jsx-469167ead414021 text-lg font-bold mb-2">Every Screen, Everywhere</h3></div><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-sm leading-relaxed">Seamless across PC, Web, iPad keyboard shortcuts, and mobile dev keys.</p></div><div style="background:var(--color-surface);border-color:var(--color-border);animation:fadeInUp 0.4s ease-out 0.08s both" class="jsx-469167ead414021 group relative p-6 rounded-xl border flex flex-col justify-between"><div class="jsx-469167ead414021"><div class="jsx-469167ead414021 flex items-center justify-between mb-4"><div style="background:var(--color-surface-2);color:var(--color-text)" class="jsx-469167ead414021 w-10 h-10 rounded-lg flex items-center justify-center"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-469167ead414021 w-5 h-5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" class="jsx-469167ead414021"></path></svg></div><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)" class="jsx-469167ead414021 text-[11px] font-mono px-2 py-0.5 rounded border">Encrypted P2P</span></div><h3 style="color:var(--color-text)" class="jsx-469167ead414021 text-lg font-bold mb-2">60fps Remote Desktop</h3></div><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-sm leading-relaxed">Ultra-smooth PC &amp; Mac control over encrypted WebRTC with host approval.</p></div><div style="background:var(--color-surface);border-color:var(--color-border);animation:fadeInUp 0.4s ease-out 0.12s both" class="jsx-469167ead414021 group relative p-6 rounded-xl border flex flex-col justify-between"><div class="jsx-469167ead414021"><div class="jsx-469167ead414021 flex items-center justify-between mb-4"><div style="background:var(--color-surface-2);color:var(--color-text)" class="jsx-469167ead414021 w-10 h-10 rounded-lg flex items-center justify-center"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-469167ead414021 w-5 h-5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4" class="jsx-469167ead414021"></path></svg></div><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)" class="jsx-469167ead414021 text-[11px] font-mono px-2 py-0.5 rounded border">All-in-One</span></div><h3 style="color:var(--color-text)" class="jsx-469167ead414021 text-lg font-bold mb-2">Full Remote IDE</h3></div><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-sm leading-relaxed">Multi-pane terminal, code editor, and Git diffs in your pocket.</p></div><div style="background:var(--color-surface);border-color:var(--color-border);animation:fadeInUp 0.4s ease-out 0.16s both" class="jsx-469167ead414021 group relative p-6 rounded-xl border flex flex-col justify-between"><div class="jsx-469167ead414021"><div class="jsx-469167ead414021 flex items-center justify-between mb-4"><div style="background:var(--color-surface-2);color:var(--color-text)" class="jsx-469167ead414021 w-10 h-10 rounded-lg flex items-center justify-center"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-469167ead414021 w-5 h-5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M12 18h.01M8 21h8a2 2 0 002-2V5a2 2 0 00-2-2H8a2 2 0 00-2 2v14a2 2 0 002 2z" class="jsx-469167ead414021"></path></svg></div><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)" class="jsx-469167ead414021 text-[11px] font-mono px-2 py-0.5 rounded border">Mobile Dev</span></div><h3 style="color:var(--color-text)" class="jsx-469167ead414021 text-lg font-bold mb-2">Live Mobile Emulator</h3></div><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-sm leading-relaxed">Test and interact with Android &amp; iOS emulators directly from your phone.</p></div><div style="background:var(--color-surface);border-color:var(--color-border);animation:fadeInUp 0.4s ease-out 0.2s both" class="jsx-469167ead414021 group relative p-6 rounded-xl border flex flex-col justify-between"><div class="jsx-469167ead414021"><div class="jsx-469167ead414021 flex items-center justify-between mb-4"><div style="background:var(--color-surface-2);color:var(--color-text)" class="jsx-469167ead414021 w-10 h-10 rounded-lg flex items-center justify-center"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-469167ead414021 w-5 h-5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9" class="jsx-469167ead414021"></path></svg></div><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)" class="jsx-469167ead414021 text-[11px] font-mono px-2 py-0.5 rounded border">Zero-Exposure</span></div><h3 style="color:var(--color-text)" class="jsx-469167ead414021 text-lg font-bold mb-2">Zero-Config Localhost</h3></div><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-sm leading-relaxed">Preview localhost without opening ports, ngrok, or exposing to the public internet.</p></div><div style="background:var(--color-surface);border-color:var(--color-border);animation:fadeInUp 0.4s ease-out 0.24s both" class="jsx-469167ead414021 group relative p-6 rounded-xl border flex flex-col justify-between"><div class="jsx-469167ead414021"><div class="jsx-469167ead414021 flex items-center justify-between mb-4"><div style="background:var(--color-surface-2);color:var(--color-text)" class="jsx-469167ead414021 w-10 h-10 rounded-lg flex items-center justify-center"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-469167ead414021 w-5 h-5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z" class="jsx-469167ead414021"></path></svg></div><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)" class="jsx-469167ead414021 text-[11px] font-mono px-2 py-0.5 rounded border">Path-Jailed</span></div><h3 style="color:var(--color-text)" class="jsx-469167ead414021 text-lg font-bold mb-2">Visual File Explorer</h3></div><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-sm leading-relaxed">Fuzzy search files (⌘⇧P) and edit code inside a secure, jailed workspace.</p></div><div style="background:var(--color-surface);border-color:var(--color-border);animation:fadeInUp 0.4s ease-out 0.28s both" class="jsx-469167ead414021 group relative p-6 rounded-xl border flex flex-col justify-between"><div class="jsx-469167ead414021"><div class="jsx-469167ead414021 flex items-center justify-between mb-4"><div style="background:var(--color-surface-2);color:var(--color-text)" class="jsx-469167ead414021 w-10 h-10 rounded-lg flex items-center justify-center"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="jsx-469167ead414021 w-5 h-5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z" class="jsx-469167ead414021"></path></svg></div><span style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)" class="jsx-469167ead414021 text-[11px] font-mono px-2 py-0.5 rounded border">Self-Hosted</span></div><h3 style="color:var(--color-text)" class="jsx-469167ead414021 text-lg font-bold mb-2">Zero-Trust &amp; 100% Private</h3></div><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-sm leading-relaxed">Physical host approval, direct P2P, zero cloud storage. Your code never leaves your machine.</p></div></div><div class="jsx-469167ead414021 pt-8"><div class="jsx-469167ead414021 text-center mb-10"><h3 style="color:var(--color-text)" class="jsx-469167ead414021 text-2xl sm:text-3xl font-bold mb-2">How 9Remote Compares</h3><p style="color:var(--color-text-muted)" class="jsx-469167ead414021 text-sm sm:text-base max-w-xl mx-auto">Built from scratch for modern developers who need both power and mobility.</p></div><div style="background:var(--color-surface);border-color:var(--color-border)" class="jsx-469167ead414021 overflow-x-auto rounded-2xl border"><table class="jsx-469167ead414021 min-w-full"><thead class="jsx-469167ead414021"><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021"><th style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-3 sm:py-4 text-left text-xs sm:text-sm font-semibold sticky left-0 z-10 min-w-[140px] sm:min-w-[200px]">Feature</th><th style="color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-3 sm:py-4 text-center text-xs sm:text-sm font-semibold min-w-[80px] sm:min-w-[110px]">9Remote</th><th style="color:var(--color-text);background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-3 sm:py-4 text-center text-xs sm:text-sm font-semibold min-w-[80px] sm:min-w-[110px]">Claude Remote</th><th style="color:var(--color-text);background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-3 sm:py-4 text-center text-xs sm:text-sm font-semibold min-w-[80px] sm:min-w-[110px]">TeamViewer</th><th style="color:var(--color-text);background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-3 sm:py-4 text-center text-xs sm:text-sm font-semibold min-w-[80px] sm:min-w-[110px]">Chrome Remote</th><th style="color:var(--color-text);background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-3 sm:py-4 text-center text-xs sm:text-sm font-semibold min-w-[80px] sm:min-w-[110px]">Termius</th></tr></thead><tbody class="jsx-469167ead414021"><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Zero Config</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Remote IDE</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">30+ AI Agents &amp; Vibe Coding</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Terminal Access</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Persistent Daemon</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Remote Localhost Preview</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Touch File Explorer &amp; Editor</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Remote Desktop</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Remote Emulator</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">AI Agent Artifacts</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Physical Host Approval</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Git Integration</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Mobile &amp; iPad Optimized</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Browser-Based</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">QR Login</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Auto Tunnel</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">No Port Forwarding</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:1px solid var(--color-border)" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">No Account Required</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr><tr style="border-bottom:none" class="jsx-469167ead414021 transition-colors"><td style="color:var(--color-text);background:var(--color-surface)" class="jsx-469167ead414021 px-3 sm:px-4 py-2.5 sm:py-3 text-xs sm:text-sm font-medium sticky left-0 z-10">Free &amp; Open Source</td><td style="background:color-mix(in srgb, var(--color-accent) 12%, transparent)" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-4 h-4 sm:w-[18px] sm:h-[18px] mx-auto" viewBox="0 0 20 20" style="color:var(--color-text)"><circle cx="10" cy="10" r="9" fill="currentColor"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></td><td style="background:transparent" class="jsx-469167ead414021 px-2 sm:px-4 py-2.5 sm:py-3 text-center"><svg class="w-3.5 h-3.5 sm:w-4 sm:h-4 mx-auto opacity-50" viewBox="0 0 20 20" style="color:var(--color-text-subtle)"><path d="M6 6l8 8m0-8l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></td></tr></tbody></table></div><div class="jsx-469167ead414021 mt-8 text-center"><div style="background:var(--color-surface-2);border-color:var(--color-border)" class="jsx-469167ead414021 inline-flex items-center gap-2 px-4 py-2 rounded-full border text-xs sm:text-sm"><svg viewBox="0 0 20 20" style="color:var(--color-text)" class="jsx-469167ead414021 w-4 h-4 flex-shrink-0"><circle cx="10" cy="10" r="8" fill="currentColor" class="jsx-469167ead414021"></circle><path d="M6.5 10.5l2.5 2.5 4.5-5.5" fill="none" stroke="var(--color-bg)" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="jsx-469167ead414021"></path></svg><span style="color:var(--color-text)" class="jsx-469167ead414021 font-semibold">9Remote: Complete 19/19 capabilities · 100% self-hosted &amp; private</span></div></div></div></div></section><section id="security" class="relative py-24 px-4 sm:px-6 lg:px-8"><div class="max-w-7xl mx-auto"><div class="text-center mb-16"><div class="inline-flex items-center gap-2 px-3 py-1 rounded-full border mb-4 text-xs font-mono" style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)">Zero-Trust Architecture</div><h2 class="text-3xl sm:text-4xl lg:text-5xl font-bold mb-4" style="color:var(--color-text)">3-Layer Security &amp; <span style="color:var(--color-text)">Zero-Trust Verification</span></h2><p class="text-base sm:text-lg max-w-2xl mx-auto" style="color:var(--color-text-muted)">Split-Key pairing, direct WebRTC encryption, and physical host approval — your machine stays completely protected.</p></div><div class="p-4 sm:p-8 rounded-xl border mb-12 overflow-x-auto flex justify-center" style="background:var(--color-surface);border-color:var(--color-border)"><div class="py-20 text-sm font-mono" style="color:var(--color-text-muted)">Loading security flow diagram...</div></div><div class="grid grid-cols-1 md:grid-cols-3 gap-6"><div class="p-6 rounded-xl border flex flex-col justify-between" style="background:var(--color-surface);border-color:var(--color-border)"><div><div class="flex items-center justify-between mb-4"><div class="w-9 h-9 rounded-lg flex items-center justify-center border" style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-accent)"><svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z"></path></svg></div><span class="text-xs font-mono" style="color:var(--color-accent)">STEP <!-- -->01</span></div><h3 class="text-lg font-bold mb-2" style="color:var(--color-text)">Split-Key Zero-Trust</h3></div><p class="text-sm leading-relaxed" style="color:var(--color-text-muted)">The pairing key is split into HEAD and TAIL. The relay server only sees HEAD to broker the WebRTC handshake and never receives or knows your secret TAIL.</p></div><div class="p-6 rounded-xl border flex flex-col justify-between" style="background:var(--color-surface);border-color:var(--color-border)"><div><div class="flex items-center justify-between mb-4"><div class="w-9 h-9 rounded-lg flex items-center justify-center border" style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-accent)"><svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path></svg></div><span class="text-xs font-mono" style="color:var(--color-accent)">STEP <!-- -->02</span></div><h3 class="text-lg font-bold mb-2" style="color:var(--color-text)">Direct P2P Verification</h3></div><p class="text-sm leading-relaxed" style="color:var(--color-text-muted)">Clients connect directly to your machine via WebRTC. Your secret TAIL is sealed with the host&#x27;s public key (X25519 + AES-256-GCM) — unreadable to any intermediate relay.</p></div><div class="p-6 rounded-xl border flex flex-col justify-between" style="background:var(--color-surface);border-color:var(--color-border)"><div><div class="flex items-center justify-between mb-4"><div class="w-9 h-9 rounded-lg flex items-center justify-center border" style="border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-accent)"><svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"></path></svg></div><span class="text-xs font-mono" style="color:var(--color-accent)">STEP <!-- -->03</span></div><h3 class="text-lg font-bold mb-2" style="color:var(--color-text)">Physical Host Approval</h3></div><p class="text-sm leading-relaxed" style="color:var(--color-text-muted)">Even if someone knows your key, new devices cannot access your machine until you physically click &#x27;Approve&#x27; on your computer screen.</p></div></div></div></section><section class="relative py-24 px-4 sm:px-6 lg:px-8"><div class="max-w-4xl mx-auto text-center"><div class="relative"><div class="absolute inset-0 blur-3xl pointer-events-none animate-pulse-glow" style="background:rgba(255,255,255,0.05)"></div><div class="relative"><h2 class="text-3xl sm:text-4xl lg:text-5xl font-bold mb-5" style="color:var(--color-text)">Remote everything.<br/>On any screen, <span style="color:var(--color-text)">everywhere</span>.</h2><p class="text-base sm:text-lg mb-8 max-w-2xl mx-auto" style="color:var(--color-text-muted)">IDE, 60fps desktop, files, emulator &amp; 30+ AI vibe coding agents on PC, Web, iPad, and mobile. Ready in 30 seconds.</p><div class="flex flex-row gap-2.5 sm:gap-3 justify-center items-center flex-wrap"><a class="btn-cta group px-5 sm:px-8 py-3 sm:py-4 rounded-lg font-semibold text-sm sm:text-base transition-transform duration-300 hover:scale-[1.03]" style="background:var(--color-accent);color:#FFF" href="/login"><span class="flex items-center justify-center gap-2">Get Remote<svg class="w-5 h-5 group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"></path></svg></span></a><a href="https://github.com/decolua/9remote" target="_blank" rel="noopener noreferrer" class="px-5 sm:px-8 py-3 sm:py-4 rounded-lg font-semibold text-sm sm:text-base transition-all duration-300 hover:scale-[1.03] flex items-center justify-center gap-2 border" style="background:var(--color-surface-2);color:var(--color-text);border-color:var(--color-border)"><svg class="w-4 h-4 sm:w-5 sm:h-5" fill="currentColor" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clip-rule="evenodd"></path></svg><span>Star on GitHub</span></a></div><p class="mt-8 text-xs sm:text-sm font-mono" style="color:var(--color-text-subtle)">✓ 100% Free · Open source MIT · Zero tracking or telemetry</p></div></div></div></section></main><footer class="relative py-14 px-4 sm:px-6 lg:px-8 border-t" style="background:var(--color-bg);border-color:var(--color-border)"><div class="max-w-7xl mx-auto"><div class="grid grid-cols-1 md:grid-cols-4 gap-8 mb-8"><div class="col-span-1 md:col-span-2"><div class="flex items-center gap-3 mb-4"><img src="/icon-192.png" alt="9Remote Logo" class="w-9 h-9 rounded-lg object-contain shadow-md shadow-brand-500/20"/><h3 class="text-xl font-bold" style="color:var(--color-text)">9Remote</h3></div><p class="text-sm max-w-md mb-4" style="color:var(--color-text-muted)">Remote everything, everywhere. Remote IDE, 60fps desktop, files, emulator &amp; vibe coding on any screen.</p><p class="text-xs" style="color:var(--color-text-subtle)">© <!-- -->2026<!-- --> 9Remote. All rights reserved.<span class="ml-2">v<!-- -->3.0.6</span></p></div><div><h4 class="font-semibold mb-4 text-sm" style="color:var(--color-text)">Product</h4><ul class="space-y-2"><li><a class="text-sm transition-colors" style="color:var(--color-text-muted)" href="/login">Remote</a></li><li><a class="text-sm transition-colors" style="color:var(--color-text-muted)" href="/workspace">Terminal</a></li><li><a class="text-sm transition-colors" style="color:var(--color-text-muted)" href="/remote">Remote Desktop</a></li><li><a href="https://apps.apple.com/us/app/9remote/id6796664210" target="_blank" rel="noopener noreferrer" class="text-sm transition-colors" style="color:var(--color-text-muted)">iOS (App Store)</a></li><li><a href="https://play.google.com/store/apps/details?id=cc.remote9.app&amp;pli=1" target="_blank" rel="noopener noreferrer" class="text-sm transition-colors" style="color:var(--color-text-muted)">Android (Google Play)</a></li></ul></div><div><h4 class="font-semibold mb-4 text-sm" style="color:var(--color-text)">Resources</h4><ul class="space-y-2"><li><a href="https://github.com/decolua/9remote" target="_blank" rel="noopener noreferrer" class="text-sm transition-colors" style="color:var(--color-text-muted)">GitHub</a></li><li><a href="https://www.npmjs.com/package/9remote" target="_blank" rel="noopener noreferrer" class="text-sm transition-colors" style="color:var(--color-text-muted)">NPM</a></li><li><a href="https://docs.9remote.cc/" target="_blank" rel="noopener noreferrer" class="text-sm transition-colors" style="color:var(--color-text-muted)">Documentation</a></li><li><a href="https://www.facebook.com/groups/9teamvn" target="_blank" rel="noopener noreferrer" class="text-sm transition-colors" style="color:var(--color-text-muted)">Community</a></li></ul></div></div><div class="pt-8 flex flex-col sm:flex-row justify-between items-center gap-4 border-t" style="border-color:var(--color-border)"><p class="text-xs" style="color:var(--color-text-subtle)">Built with Next.js, Socket.io, and Cloudflare Workers</p><div class="flex gap-6"><a href="https://github.com/decolua/9remote" target="_blank" rel="noopener noreferrer" class="text-xs transition-colors" style="color:var(--color-text-subtle)">GitHub</a><a href="https://www.npmjs.com/package/9remote" target="_blank" rel="noopener noreferrer" class="text-xs transition-colors" style="color:var(--color-text-subtle)">NPM</a><a href="https://docs.9remote.cc/" target="_blank" rel="noopener noreferrer" class="text-xs transition-colors" style="color:var(--color-text-subtle)">Documentation</a></div></div></div></footer></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-210219beafaa52a1.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[59584,[\"4732\",\"static/chunks/4732-76a574510722b2c3.js\",\"7177\",\"static/chunks/app/layout-ec53a1a0c4b3e99e.js\"],\"default\"]\n3:I[44976,[\"4732\",\"static/chunks/4732-76a574510722b2c3.js\",\"7177\",\"static/chunks/app/layout-ec53a1a0c4b3e99e.js\"],\"ThemeProvider\"]\n4:I[91133,[],\"\"]\n5:I[4297,[],\"\"]\n6:I[95223,[\"4732\",\"static/chunks/4732-76a574510722b2c3.js\",\"7177\",\"static/chunks/app/layout-ec53a1a0c4b3e99e.js\"],\"default\"]\n7:I[72569,[\"4732\",\"static/chunks/4732-76a574510722b2c3.js\",\"7177\",\"static/chunks/app/layout-ec53a1a0c4b3e99e.js\"],\"GoogleAnalytics\"]\n8:I[1076,[],\"ClientPageRoot\"]\n9:I[27493,[\"7738\",\"static/chunks/7738-2439d4a20b745ce1.js\",\"9568\",\"static/chunks/9568-0bfadca4fcb105aa.js\",\"9958\",\"static/chunks/9958-9952a61eb6e17812.js\",\"8974\",\"static/chunks/app/page-10772fa3d9560889.js\"],\"default\"]\nc:I[31872,[],\"OutletBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[31872,[],\"ViewportBoundary\"]\n11:I[31872,[],\"MetadataBoundary\"]\n13:I[57567,[],\"default\",1]\n:HL[\"/_next/static/media/22a5144ee8d83bca-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/7d4881bb7e1bf84d-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/b496025c9cd768cc.css\",\"style\"]\n:HL[\"/_next/static/css/48ee7d57614b1421.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/b496025c9cd768cc.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/48ee7d57614b1421.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"scroll-smooth scroll-pt-20\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"__variable_246ccd __variable_c29908 antialiased\",\"children\":[[\"$\",\"$L2\",null,{\"id\":\"expo-redirect\",\"html\":\"(function(){try{if(location.hostname===\\\"dev.9remote.cc\\\"\u0026\u0026(window.ReactNativeWebView||/9Remote-Mobile/i.test(navigator.userAgent))){location.replace(\\\"https://9remote.cc\\\"+location.pathname+location.search+location.hash);}}catch(e){}})();\"}],[\"$\",\"$L2\",null,{\"id\":\"theme-init\",\"html\":\"(function(){try{var t=localStorage.getItem(\\\"app_theme_v2\\\")||\\\"dark\\\";document.documentElement.classList.add(t);}catch(e){document.documentElement.classList.add(\\\"dark\\\");}})();\"}],[\"$\",\"$L2\",null,{\"id\":\"safe-area-bridge\",\"html\":\"window.handleSafeAreaInset=function(top,bottom){try{if(top\u0026\u0026top\u003e0)document.documentElement.style.setProperty(\\\"--pl-top\\\",top+\\\"px\\\");}catch(e){}};\"}],[\"$\",\"$L2\",null,{\"id\":\"sw-register\",\"html\":\"if('serviceWorker' in navigator){window.addEventListener('load',function(){navigator.serviceWorker.register('/sw.js').catch(function(e){console.log('SW registration failed:',e);});});}\"}],[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L6\",null,{}],[\"$\",\"$L7\",null,{\"gaId\":\"G-8XXG61NY56\"}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L8\",null,{\"Component\":\"$9\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@a\",\"$@b\"]}}],null,[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$d\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@e\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lf\",null,{\"children\":\"$L10\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L11\",null,{\"children\":[\"$\",\"$d\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L12\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$13\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"1Tr76v17cPEsysWpe5buJ\"}\n"])</script><script>self.__next_f.push([1,"a:{}\nb:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"10:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, interactive-widget=resizes-content\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#121212\"}]]\n"])</script><script>self.__next_f.push([1,"14:I[12569,[],\"IconMark\"]\ne:null\n12:[[\"$\",\"title\",\"0\",{\"children\":\"9Remote — Remote Everything, Everywhere\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Remote IDE, desktop, files, emulator \u0026 vibe coding on PC, Web, iPad, and Mobile. Ultra-low latency WebRTC P2P dev suite.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"9Remote Terminal\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/manifest.json\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"4\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"9Remote\"}],[\"$\",\"meta\",\"6\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"link\",\"7\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"sizes\":\"any\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/icon-192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"link\",\"9\",{\"rel\":\"icon\",\"href\":\"/icon-512.png\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],[\"$\",\"link\",\"10\",{\"rel\":\"apple-touch-icon\",\"href\":\"/icon-192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"$L14\",\"11\",{}]]\n"])</script></body></html>