<!doctype html>
<html lang="en" dir="ltr">
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1" />
		<meta name="description" content="A demo app that signs you in through Whisp3r Auth." />
		<title>Whisp3r</title>
		<!-- Anti-flash theme bootstrap. Runs BEFORE SvelteKit hydrates so
		     the saved theme (or system preference, when mode=auto) is
		     applied to <html> before first paint — no white→dark flash
		     on reload. Mirrors the auth-side script verbatim; the keys
		     and class names match `@nick/design/core`'s `initTheme()`
		     so the in-page toggle stays in sync. Without this script,
		     the page lands in default light mode regardless of the
		     stored preference until the layout's onMount fires —
		     producing the "set to auto, reloads as light" bug. -->
		<script>
			(function () {
				try {
					var k = 'theme-mode';
					var m = localStorage.getItem(k);
					var r = document.documentElement;
					if (m !== 'light' && m !== 'dark' && m !== 'auto') m = 'auto';
					var d =
						m === 'dark' ||
						(m === 'auto' &&
							window.matchMedia('(prefers-color-scheme: dark)').matches);
					r.classList.add(d ? 'dark' : 'light');
				} catch (e) {}
			})();
		</script>
		<!--12qhfyh--><link rel="icon" type="image/svg+xml" href="/icon.svg"/> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png"/> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16.png"/> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"/> <link rel="shortcut icon" href="/favicon.ico"/><!----><!--1uha8ag--><!----><title>Whisp3r</title>
		<link href="./_app/immutable/assets/LanguageToggle.uEIbPU1_.css" rel="stylesheet">
		<link href="./_app/immutable/assets/Composer.wfTc-Hmq.css" rel="stylesheet">
		<link href="./_app/immutable/assets/0.C-hbWvvH.css" rel="stylesheet">
		<link href="./_app/immutable/assets/2.3QNxb5YE.css" rel="stylesheet">
	</head>
	<body data-sveltekit-preload-data="hover">
		<div style="display: contents"><!--[--><!--[0--><!--[--><!--[-1--><!--]--><!----> <!--[-1--><!--]--> <main class="shell svelte-12qhfyh"><!--[--><section class="hero svelte-1uha8ag"><h1 class="svelte-1uha8ag">Whisp3r</h1> <p class="tagline svelte-1uha8ag">A demo consumer that signs you in through Whisp3r Auth.</p> <!--[-1--><div class="actions svelte-1uha8ag"><!--[0--><a href="/wa/login" class="btn-exceptional text-base px-8 py-3 min-h-12 "><!--[-1--><!--[-1--><!--]--> <!---->Sign in with Whisp3r Auth<!----><!--]--></a><!--]--><!----></div><!--]--></section><!--]--><!----></main> <div class="whisp3r-footer-wrap svelte-1mmmjii"><!--[0--><footer class="site-footer "><div class="footer-inner"><!--[0--><div class="brand-mark"><!--[-1--><div class="mark mark-size-lg">Whisp3r</div><!--]--></div><!--]--> <!--[-1--><!--]--> <!--[-1--><!--]--> <!--[0--><div class="legal"><!--[0--><!---->By using Whisp3r you agree to our <!--[0--><a href="/terms" class="  svelte-ulcegr"><!--[-1--><!--]--><!---->Terms<!----><!--[-1--><!--]--></a><!--]--><!----> and <!--[0--><a href="/privacy" class="  svelte-ulcegr"><!--[-1--><!--]--><!---->Privacy<!----><!--[-1--><!--]--></a><!--]--><!---->.<!----><!--]--> <!--[-1--><!--]--></div><!--]--></div></footer><!--]--><!----> <div class="utility-footer utility-footer-text "><div class="inner"><div class="utility-footer-col utility-footer-col-mode"><!--[0--><!--[0--><div role="radiogroup" aria-label="Theme" class="text-toggle-rail  svelte-1yn20ow"><!--[--><!--[-1--><!--]--> <button type="button" role="radio" class="text-toggle-link svelte-1yn20ow" aria-checked="false" aria-label="Light">Light</button><!--[0--><span class="text-toggle-sep" aria-hidden="true">/</span><!--]--> <button type="button" role="radio" class="text-toggle-link svelte-1yn20ow active" aria-checked="true" aria-current="true" aria-label="Auto">Auto</button><!--[0--><span class="text-toggle-sep" aria-hidden="true">/</span><!--]--> <button type="button" role="radio" class="text-toggle-link svelte-1yn20ow" aria-checked="false" aria-label="Dark">Dark</button><!--]--></div><!--]--><!----><!--]--></div> <div class="utility-footer-col utility-footer-col-search"><!--[-1--><!--]--></div> <div class="utility-footer-col utility-footer-col-language"><!--[0--><button type="button" class="lang-trigger lang-trigger-pill  svelte-1aigyh7" aria-label="Language" aria-haspopup="menu" aria-expanded="false"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide-icon lucide lucide-globe"><!--[--><!----><circle cx="12" cy="12" r="10"><!----></circle><!----><!----><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"><!----></path><!----><!----><path d="M2 12h20"><!----></path><!----><!--]--><!--[--><!--[--><!--]--><!--]--></svg><!----> <!--[0--><span class="lang-trigger-text svelte-1aigyh7">EN</span><!--]--></button> <!--[-1--><!--]--><!----><!----><!--]--></div></div></div><!----> <div class="legal-footer legal-footer-centered "><div class="inner"><!--[1--><div class="legal-footer-links"><!--[--><span class="legal-footer-item"><!--[-1--><!--]--><!--[-1--><a href="/terms">Terms</a><!--]--></span> <span class="legal-footer-item"><!--[0--><span class="legal-footer-sep" aria-hidden="true">·</span><!--]--><!--[-1--><a href="/privacy">Privacy</a><!--]--></span> <span class="legal-footer-item"><!--[0--><span class="legal-footer-sep" aria-hidden="true">·</span><!--]--><!--[-1--><a href="/cookies">Cookies</a><!--]--></span> <!--]--></div><!--]--> <p class="legal-footer-copy">Copyright © 2026<!--[0--> <!--[0--><a href="https://qu3ry.net" class="link-quiet  svelte-ulcegr"><!--[-1--><!--]--><!---->Adaptive Query LLC<!----><!--[-1--><!--]--></a><!--]--><!----><!--]-->.<!--[0--> All rights reserved.<!--]--></p></div></div><!----> <div class="sub-footer "><div class="inner"><!--[-1--><!--]--> <p class="sub-footer-signature" aria-label="Signature">72 28 14 36 01</p></div></div><!----></div><!----><!--]--><!--]--> <!--[-1--><!--]--><!--]-->
			
			<script>
				{
					__sveltekit_1i6tsd3 = {
						base: new URL(".", location).pathname.slice(0, -1)
					};

					const element = document.currentScript.parentElement;

					Promise.all([
						import("./_app/immutable/entry/start.YW7O7h89.js"),
						import("./_app/immutable/entry/app.CfyuUn9l.js")
					]).then(([kit, app]) => {
						kit.start(app, element, {
							node_ids: [0, 2],
							data: [{type:"data",data:{signedIn:false,handle:null,displayName:null,avatarUrl:null},uses:{}},{type:"data",data:{signedIn:false,error:null},uses:{search_params:["error"]}}],
							form: null,
							error: null
						});
					});
				}
			</script>
		</div>
	</body>
</html>
