<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="build-version" content="2025-09-23-api-fix-v3"><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no,viewport-fit=cover"><meta name="mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="format-detection" content="telephone=no"><title>Caramel</title><meta name="description" content="Gift card platform for hospitality businesses"><meta name="author" content="Caramel"><meta property="og:title" content="Caramel"><meta property="og:description" content="Gift card platform for hospitality businesses"><meta property="og:type" content="website"><meta property="og:image" content="/favicon.png"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:site" content="@caramelme_com"><meta name="twitter:image" content="/favicon.png"><link rel="icon" type="image/png" href="/favicon.png"><link href="/assets/main.8d21855f.css" rel="stylesheet"></head><body><script>console.log("[HTML] Script execution started");try{console.log("[HTML] Console is working"),window.onerror=function(e,o,n,t,r){console.log("[HTML] Error caught by handler:",e);var i={message:e,source:o,line:n,column:t,error:r?r.toString():"No error object",stack:r?r.stack:"No stack trace",userAgent:navigator.userAgent,time:(new Date).toISOString()};if(console.error("[Global Error]",i),/iPad|iPhone|iPod/.test(navigator.userAgent)){var l=document.createElement("div");l.style.cssText="position:fixed;top:0;left:0;right:0;background:red;color:white;padding:10px;z-index:999999;font-size:12px;",l.innerHTML="<strong>Error:</strong> "+e+" (Line "+n+")",document.body.appendChild(l)}return!0},window.addEventListener("unhandledrejection",function(e){if(console.error("[Unhandled Promise]",e.reason),/iPad|iPhone|iPod/.test(navigator.userAgent)){var o=document.createElement("div");o.style.cssText="position:fixed;top:50px;left:0;right:0;background:orange;color:white;padding:10px;z-index:999999;font-size:12px;",o.innerHTML="<strong>Promise Rejected:</strong> "+(e.reason||"Unknown"),document.body.appendChild(o)}}),console.log("[HTML] Line 73 - Before iOS setup"),function(){console.log("[HTML] Line 77 - Starting iOS detection");var e=!1;try{e=/iPad|iPhone|iPod/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,console.log("[HTML] Line 82 - iOS detection result:",e)}catch(e){console.error("[HTML] Line 84 - Error detecting iOS:",e)}if(window.__IS_IOS__=e,console.log("[HTML] Line 87 - iOS flag set"),e){console.log("[HTML] Line 92 - Configuring iOS settings"),document.documentElement.classList.add("ios-device"),console.log("[HTML] Line 96 - Added iOS class");try{var o=document.querySelector('meta[name="viewport"]');o&&(o.content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover",console.log("[HTML] Line 103 - Viewport configured"))}catch(e){console.error("[HTML] Line 106 - Viewport error:",e)}try{Object.hasOwn||(Object.hasOwn=function(e,o){return Object.prototype.hasOwnProperty.call(e,o)}),Array.prototype.at||(Array.prototype.at=function(e){var o=this.length,n=e<0?o+e:e;if(!(n<0||n>=o))return this[n]}),String.prototype.replaceAll||(String.prototype.replaceAll=function(e,o){return"string"==typeof e?this.split(e).join(o):this.replace(e,o)}),Promise.allSettled||(Promise.allSettled=function(e){return Promise.all(e.map(function(e){return Promise.resolve(e).then(function(e){return{status:"fulfilled",value:e}},function(e){return{status:"rejected",reason:e}})}))}),"undefined"==typeof globalThis&&(window.globalThis=window),console.log("[HTML] Line 122 - Essential polyfills loaded")}catch(e){console.error("[HTML] Line 125 - Polyfill error:",e)}window.__vite_is_modern_browser=!1,console.log("[HTML] Line 130 - Module polyfill set"),console.log("[HTML] Line 134 - Proxy setup DISABLED for debugging")}console.log("[HTML] Line 138 - iOS setup function completed"),"serviceWorker"in navigator&&e&&navigator.serviceWorker.getRegistrations().then(function(e){for(let o of e)o.unregister(),console.log("Service Worker unregistered for iOS")})}(),window.RUNTIME_CONFIG=window.RUNTIME_CONFIG||{},console.log("[HTML] Script block completed successfully")}catch(e){console.error("[HTML] FATAL ERROR in script block:",e),console.error("[HTML] Stack trace:",e.stack),document.body.innerHTML='<div style="padding: 20px; color: red;">Script error: '+e.message+"</div>"}</script><div id="root"><div id="initial-loading" style="padding:40px 20px;text-align:center;font-family:-apple-system,system-ui,sans-serif"><div style="margin-bottom:20px"><div style="width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid #173a2c;border-radius:50%;margin:0 auto 20px;animation:spin 1s linear infinite"></div><style>@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}</style></div><p style="color:#666;font-size:16px;margin:0">Loading application...</p><p style="color:#999;font-size:12px;margin-top:8px">Please wait...</p><noscript><p style="color:red;margin-top:20px">JavaScript is required to run this application.</p></noscript></div></div><script>setTimeout(function(){var o=document.getElementById("initial-loading");o&&o.parentNode&&(console.warn("[HTML] React did not mount within 8 seconds - showing error"),o.innerHTML='<div style="max-width: 500px; margin: 0 auto; text-align: left;"><h2 style="color: #d32f2f; margin-bottom: 16px;">Unable to Load Application</h2><p style="color: #666; line-height: 1.6; margin-bottom: 16px;">The application failed to initialize. This could be due to:</p><ul style="color: #666; line-height: 1.8; margin-bottom: 20px;"><li>Browser cache showing old version</li><li>Network connectivity issues</li><li>Browser compatibility problems</li></ul><div style="margin-top: 24px;"><button onclick="location.reload(true)" style="background: #173A2C; color: white; border: none; padding: 12px 24px; border-radius: 6px; cursor: pointer; font-size: 14px; margin-right: 8px;">Hard Refresh</button><button onclick="window.location.href=\'/auth\'" style="background: #CDEA6C; color: #173A2C; border: none; padding: 12px 24px; border-radius: 6px; cursor: pointer; font-size: 14px;">Go to Login</button></div><p style="color: #999; font-size: 12px; margin-top: 20px; padding-top: 20px; border-top: 1px solid #eee;">If the problem persists, try clearing your browser cache or using an incognito window.</p></div>')},8e3)</script><script defer="defer" src="/assets/runtime.65144892.js"></script><script defer="defer" src="/assets/vendor-react.82c2f84e.js"></script><script defer="defer" src="/assets/vendor-supabase.c14fb267.js"></script><script defer="defer" src="/assets/vendor-react-query.47f266df.js"></script><script defer="defer" src="/assets/vendor-posthog.d7bcee8b.js"></script><script defer="defer" src="/assets/vendors.38af16b4.js"></script><script defer="defer" src="/assets/main.64b6e866.js"></script></body></html>