1<!DOCTYPE html> 2<html lang="en" class="dark"> 3 <head> 4 <meta charset="utf-8" /> 5<meta name="viewport" content="width=device-width, initial-scale=1.0" /> 6 7<title>Spreka AI</title> 8 9<link rel="icon" href="/favicon.ico?v=3" sizes="48x48"> 10<link rel="icon" href="/favicon.svg?v=3" type="image/svg+xml"> 11<link rel="icon" href="/favicon-96x96.png?v=3" sizes="96x96" type="image/png"> 12<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=3"> 13 14 15<link rel="manifest" href="/manifest.webmanifest?v=3"> 16<meta name="theme-color" content="#18181b"> 17<meta name="apple-mobile-web-app-capable" content="yes"> 18<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> 19<meta name="apple-mobile-web-app-title" content="Spreka AI"> 20 21<link rel="preconnect" href="https://fonts.bunny.net"> 22<link href="https://fonts.bunny.net/css?family=instrument-sans:400,500,600" rel="stylesheet" /> 23 24<link rel="preload" as="style" href="https://spreka.ai/build/assets/app-BldHsAT5.css" /><link rel="modulepreload" as="script" href="https://spreka.ai/build/assets/app-9HlkqSRD.js" /><link rel="stylesheet" href="https://spreka.ai/build/assets/app-BldHsAT5.css" data-navigate-track="reload" />
24<script type="module" src="https://spreka.ai/build/assets/app-9HlkqSRD.js" data-navigate-track="reload"></script>
24<style> 25 :root.dark { 26 color-scheme: dark; 27 } 28</style>
29<script> 30 window.Flux = { 31 applyAppearance (appearance) { 32 let applyDark = () => document.documentElement.classList.add('dark') 33 let applyLight = () => document.documentElement.classList.remove('dark') 34 35 if (appearance === 'system') { 36 let media = window.matchMedia('(prefers-color-scheme: dark)') 37 38 window.localStorage.removeItem('flux.appearance') 39 40 media.matches ? applyDark() : applyLight() 41 } else if (appearance === 'dark') { 42 window.localStorage.setItem('flux.appearance', 'dark') 43 44 applyDark() 45 } else if (appearance === 'light') { 46 window.localStorage.setItem('flux.appearance', 'light') 47 48 applyLight() 49 } 50 } 51 } 52 53 window.Flux.applyAppearance(window.localStorage.getItem('flux.appearance') || 'system') 54</script>
54 55 56 57<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/mdbassit/Coloris@latest/dist/coloris.min.css">
58<script src="https://cdn.jsdelivr.net/gh/mdbassit/Coloris@latest/dist/coloris.min.js"></script>
vendor: 1 bytes, line 58
58
59<script> 60 document.addEventListener('DOMContentLoaded', () => { 61 if (typeof Coloris !== 'undefined') { 62 Coloris({ 63 themeMode: 'dark', 64 alpha: false, 65 format: 'hex', 66 swatches: [ 67 '#3b82f6', '#6366f1', '#8b5cf6', '#a855f7', 68 '#ec4899', '#ef4444', '#f97316', '#eab308', 69 '#22c55e', '#14b8a6', '#06b6d4', '#0891b2', 70 '#ffffff', '#f1f5f9', '#0f172a', '#1e293b', 71 ], 72 onChange: (color, input) => { 73 input.dispatchEvent(new Event('input', { bubbles: true })); 74 } 75 }); 76 } 77 }); 78</script>
78 79 80 <link rel="preconnect" href="https://fonts.bunny.net"> 81 <link href="https://fonts.bunny.net/css?family=inter:300,400,500,600,700,800" rel="stylesheet" /> 82 <style> 83 body { font-family: 'Inter', ui-sans-serif, system-ui, sans-serif; } 84 </style> 85 <!-- Livewire Styles --><style >[wire\:loading][wire\:loading], [wire\:loading\.delay][wire\:loading\.delay], [wire\:loading\.list-item][wire\:loading\.list-item], [wire\:loading\.inline-block][wire\:loading\.inline-block], [wire\:loading\.inline][wire\:loading\.inline], [wire\:loading\.block][wire\:loading\.block], [wire\:loading\.flex][wire\:loading\.flex], [wire\:loading\.table][wire\:loading\.table], [wire\:loading\.grid][wire\:loading\.grid], [wire\:loading\.inline-flex][wire\:loading\.inline-flex] {display: none;}[wire\:loading\.delay\.none][wire\:loading\.delay\.none], [wire\:loading\.delay\.shortest][wire\:loading\.delay\.shortest], [wire\:loading\.delay\.shorter][wire\:loading\.delay\.shorter], [wire\:loading\.delay\.short][wire\:loading\.delay\.short], [wire\:loading\.delay\.default][wire\:loading\.delay\.default], [wire\:loading\.delay\.long][wire\:loading\.delay\.long], [wire\:loading\.delay\.longer][wire\:loading\.delay\.longer], [wire\:loading\.delay\.longest][wire\:loading\.delay\.longest] {display: none;}[wire\:offline][wire\:offline] {display: none;}[wire\:dirty]:not(textarea):not(input):not(select) {display: none;}:root {--livewire-progress-bar-color: #2299dd;}[x-cloak] {display: none !important;}[wire\:cloak] {display: none !important;}dialog#livewire-error::backdrop {background-color: rgba(0, 0, 0, .6);}</style> 86</head> 87 <body class="min-h-screen bg-zinc-50 antialiased dark:bg-zinc-950"> 88 89 <nav class="fixed top-0 z-50 w-full border-b border-zinc-200 bg-white/80 backdrop-blur-xl dark:border-zinc-800 dark:bg-zinc-950/80"> 90 <div class="mx-auto flex h-14 max-w-6xl items-center justify-between px-5 sm:px-8"> 91 <a href="https://spreka.ai" class="flex items-center gap-2.5" wire:navigate> 92 93 <span class="text-lg font-bold tracking-tight text-zinc-900 dark:text-white">Spreka AI</span> 94 </a> 95 96 97 <div class="flex items-center gap-1 rounded-lg border border-zinc-200 px-1 py-0.5 dark:border-zinc-700"> 98 <form method="POST" action="https://spreka.ai/locale/en" class="inline"> 99 <input type="hidden" name="_token" value="ifsgkecivZ6e4rTiJDha3c4eaBFcogilaTjv55ei" autocomplete="off"> <button type="submit" class="rounded-md px-2 py-1 text-xs font-semibold transition-colors bg-indigo-600 text-white">EN</button> 100 </form> 101 <form method="POST" action="https://spreka.ai/locale/de" class="inline"> 102 <input type="hidden" name="_token" value="ifsgkecivZ6e4rTiJDha3c4eaBFcogilaTjv55ei" autocomplete="off"> <button type="submit" class="rounded-md px-2 py-1 text-xs font-semibold transition-colors text-zinc-500 hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-white">DE</button> 103 </form> 104 </div> 105 </div> 106 </nav> 107 108 109 <div class="flex min-h-screen flex-col items-center justify-center px-5 pt-14"> 110 <div class="w-full max-w-sm"> 111 <div class="flex flex-col gap-6"> 112 <div class="flex flex-col gap-6"> 113 <div class="flex w-full flex-col text-center"> 114 <h1 class="text-2xl font-bold tracking-tight text-zinc-900 dark:text-white">Welcome back</h1> 115 <p class="mt-1.5 text-sm text-zinc-500 dark:text-zinc-400">Sign in to your account to continue</p> 116 </div> 117 118 <!-- Session Status --> 119 120 <form method="POST" action="https://spreka.ai/login" class="flex flex-col gap-5"> 121 <input type="hidden" name="_token" value="ifsgkecivZ6e4rTiJDha3c4eaBFcogilaTjv55ei" autocomplete="off"> 122 <!-- Email Address --> 123 <ui-field class="min-w-0 [&:not(:has([data-flux-field])):has([data-flux-control][disabled])>[data-flux-label]]:opacity-50 [&:has(>[data-flux-radio-group][disabled])>[data-flux-label]]:opacity-50 [&:has(>[data-flux-checkbox-group][disabled])>[data-flux-label]]:opacity-50 block *:data-flux-label:mb-3 [&>[data-flux-label]:has(+[data-flux-description])]:mb-2 [&>[data-flux-label]+[data-flux-description]]:mt-0 [&>[data-flux-label]+[data-flux-description]]:mb-3 [&>*:not([data-flux-label])+[data-flux-description]]:mt-3" data-flux-field> 124 <ui-label class="inline-flex items-center text-sm font-medium [:where(&)]:text-zinc-800 [:where(&)]:dark:text-white [&:has([data-flux-label-trailing])]:flex" data-flux-label> 125 Email address 126 127 128 129 </ui-label> 130 131 132 <div class="w-full relative block group/input" data-flux-input> 133 134 <input 135 type="email" 136 137 class="w-full border rounded-lg block disabled:shadow-none dark:shadow-none appearance-none text-base sm:text-sm py-2 h-10 leading-[1.375rem] ps-3 pe-3 bg-white dark:bg-white/10 dark:disabled:bg-white/[7%] text-zinc-700 disabled:text-zinc-500 placeholder-zinc-400 disabled:placeholder-zinc-400/70 dark:text-zinc-300 dark:disabled:text-zinc-400 dark:placeholder-zinc-400 dark:disabled:placeholder-zinc-500 shadow-xs border-zinc-200 border-b-zinc-300/80 disabled:border-b-zinc-200 dark:border-white/10 dark:disabled:border-white/5 data-invalid:shadow-none data-invalid:border-red-500 dark:data-invalid:border-red-500 disabled:data-invalid:border-red-500 dark:disabled:data-invalid:border-red-500" label="Email address" required="required" autofocus="autofocus" autocomplete="email" placeholder="[email protected]" 138 name="email" data-flux-control 139 data-flux-group-target 140 > 141 142 </div> 143 144 145 <div role="alert" aria-live="polite" aria-atomic="true" class="mt-3 text-sm font-medium text-red-500 dark:text-red-400 hidden" data-flux-error> 146 </div> 147</ui-field> 148 149 <!-- Password --> 150 <div class="relative"> 151 <ui-field class="min-w-0 [&:not(:has([data-flux-field])):has([data-flux-control][disabled])>[data-flux-label]]:opacity-50 [&:has(>[data-flux-radio-group][disabled])>[data-flux-label]]:opacity-50 [&:has(>[data-flux-checkbox-group][disabled])>[data-flux-label]]:opacity-50 block *:data-flux-label:mb-3 [&>[data-flux-label]:has(+[data-flux-description])]:mb-2 [&>[data-flux-label]+[data-flux-description]]:mt-0 [&>[data-flux-label]+[data-flux-description]]:mb-3 [&>*:not([data-flux-label])+[data-flux-description]]:mt-3" data-flux-field> 152 <ui-label class="inline-flex items-center text-sm font-medium [:where(&)]:text-zinc-800 [:where(&)]:dark:text-white [&:has([data-flux-label-trailing])]:flex" data-flux-label> 153 Password 154 155 156 157 </ui-label> 158 159 160 <div class="w-full relative block group/input" data-flux-input> 161 162 <input 163 type="password" 164 165 class="w-full border rounded-lg block disabled:shadow-none dark:shadow-none appearance-none text-base sm:text-sm py-2 h-10 leading-[1.375rem] ps-3 pe-10 bg-white dark:bg-white/10 dark:disabled:bg-white/[7%] text-zinc-700 disabled:text-zinc-500 placeholder-zinc-400 disabled:placeholder-zinc-400/70 dark:text-zinc-300 dark:disabled:text-zinc-400 dark:placeholder-zinc-400 dark:disabled:placeholder-zinc-500 shadow-xs border-zinc-200 border-b-zinc-300/80 disabled:border-b-zinc-200 dark:border-white/10 dark:disabled:border-white/5 data-invalid:shadow-none data-invalid:border-red-500 dark:data-invalid:border-red-500 disabled:data-invalid:border-red-500 dark:disabled:data-invalid:border-red-500" label="Password" required="required" autocomplete="current-password" placeholder="Password" 166 name="password" data-flux-control 167 data-flux-group-target 168 > 169 170 <div class="absolute top-0 bottom-0 flex items-center gap-x-1.5 pe-2 border-e border-transparent end-0 text-xs text-zinc-400"> 171 172 173 174 175 176 177 <button type="button" class="relative items-center font-medium justify-center gap-2 whitespace-nowrap disabled:opacity-75 dark:disabled:opacity-75 disabled:cursor-default disabled:pointer-events-none justify-center h-8 text-sm rounded-md w-8 inline-flex -ms-1.5 -me-1.5 bg-transparent hover:bg-zinc-800/5 dark:hover:bg-white/15 text-zinc-500 hover:text-zinc-800 dark:text-zinc-400 dark:hover:text-white -me-1" data-flux-button="data-flux-button" x-data="fluxInputVie
177wable" x-on:click="toggle()" x-bind:data-viewable-open="open" aria-label="Toggle password visibility"> 178 <svg class="shrink-0 [:where(&)]:size-5 hidden [[data-viewable-open]>&]:block" data-flux-icon xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" data-slot="icon"> 179 <path fill-rule="evenodd" d="M3.28 2.22a.75.75 0 0 0-1.06 1.06l14.5 14.5a.75.75 0 1 0 1.06-1.06l-1.745-1.745a10.029 10.029 0 0 0 3.3-4.38 1.651 1.651 0 0 0 0-1.185A10.004 10.004 0 0 0 9.999 3a9.956 9.956 0 0 0-4.744 1.194L3.28 2.22ZM7.752 6.69l1.092 1.092a2.5 2.5 0 0 1 3.374 3.373l1.091 1.092a4 4 0 0 0-5.557-5.557Z" clip-rule="evenodd"/> 180 <path d="m10.748 13.93 2.523 2.523a9.987 9.987 0 0 1-3.27.547c-4.258 0-7.894-2.66-9.337-6.41a1.651 1.651 0 0 1 0-1.186A10.007 10.007 0 0 1 2.839 6.02L6.07 9.252a4 4 0 0 0 4.678 4.678Z"/> 181</svg> 182 183 <svg class="shrink-0 [:where(&)]:size-5 block [[data-viewable-open]>&]:hidden" data-flux-icon xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" data-slot="icon"> 184 <path d="M10 12.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"/> 185 <path fill-rule="evenodd" d="M.664 10.59a1.651 1.651 0 0 1 0-1.186A10.004 10.004 0 0 1 10 3c4.257 0 7.893 2.66 9.336 6.41.147.381.146.804 0 1.186A10.004 10.004 0 0 1 10 17c-4.257 0-7.893-2.66-9.336-6.41ZM14 10a4 4 0 1 1-8 0 4 4 0 0 1 8 0Z" clip-rule="evenodd"/> 186</svg> 187 </button> 188 189 </div> 190 </div> 191 192 193 <div role="alert" aria-live="polite" aria-atomic="true" class="mt-3 text-sm font-medium text-red-500 dark:text-red-400 hidden" data-flux-error> 194 </div> 195</ui-field> 196 197 <a class="inline font-medium underline-offset-[6px] hover:decoration-current underline [[data-color]>&]:text-inherit [[data-color]>&]:decoration-current/20 dark:[[data-color]>&]:decoration-current/50 [[data-color]>&]:hover:decoration-current text-[var(--color-accent-content)] decoration-[color-mix(in_oklab,var(--color-accent-content),transparent_80%)] absolute top-0 text-sm end-0" href="https://spreka.ai/forgot-password" wire:navigate="" data-flux-link >Forgot password?</a> </div> 198 199 <!-- Remember Me --> 200 <ui-field class="min-w-0 [&:not(:has([data-flux-field])):has([data-flux-control][disabled])>[data-flux-label]]:opacity-50 [&:has(>[data-flux-radio-group][disabled])>[data-flux-label]]:opacity-50 [&:has(>[data-flux-checkbox-group][disabled])>[data-flux-label]]:opacity-50 grid gap-x-3 gap-y-1.5 has-[[data-flux-label]~[data-flux-control]]:grid-cols-[1fr_auto] has-[[data-flux-control]~[data-flux-label]]:grid-cols-[auto_1fr] [&>[data-flux-control]~[data-flux-description]]:row-start-2 [&>[data-flux-control]~[data-flux-description]]:col-start-2 [&>[data-flux-control]~[data-flux-error]]:col-span-2 [&>[data-flux-control]~[data-flux-error]]:mt-1 [&>[data-flux-label]~[data-flux-control]]:row-start-1 [&>[data-flux-label]~[data-flux-control]]:col-start-2" data-flux-field> 201 <ui-checkbox class="flex size-[1.125rem] rounded-[.3rem] mt-px outline-offset-2" label="Remember me" name="remember" data-flux-control data-flux-checkbox> 202 <div class="shrink-0 size-[1.125rem] rounded-[.3rem] flex justify-center items-center text-sm text-zinc-700 dark:text-zinc-800 shadow-xs [ui-checkbox[disabled]_&]:opacity-75 [ui-checkbox[data-checked][disabled]_&]:opacity-50 [ui-checkbox[disabled]_&]:shadow-none [ui-checkbox[data-checked]_&]:shadow-none [ui-checkbox[data-indeterminate]_&
202]:shadow-none [ui-checkbox[data-checked]:not([data-indeterminate])_&>svg:first-child]:block [ui-checkbox[data-indeterminate]_&>svg:last-child]:block border border-zinc-300 dark:border-white/10 [ui-checkbox[disabled]_&]:border-zinc-200 dark:[ui-checkbox[disabled]_&]:border-white/5 [ui-checkbox[data-checked]_&]:border-transparent [ui-checkbox[data-indeterminate]_&]:border-transparent [ui-checkbox[disabled][data-checked]_&]:border-transparent [ui-checkbox[disabled][data-indeterminate]_&]:border-transparent [print-color-adjust:exact] bg-white dark:bg-white/10 [ui-checkbox[data-checked]_&]:bg-[var(--color-accent)] hover:[ui-checkbox[data-checked]_&]:bg-(--color-accent) focus:[ui-checkbox[data-checked]_&]:bg-(--color-accent) [ui-checkbox[data-indeterminate]_&]:bg-[var(--color-accent)] hover:[ui-checkbox[data-indeterminate]_&]:bg-(--color-accent) focus:[ui-checkbox[data-indeterminate]_&]:bg-(--color-accent)" data-flux-checkbox-indicator> 203 <svg class="shrink-0 [:where(&)]:size-4 hidden text-[var(--color-accent-foreground)]" data-flux-icon xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" data-slot="icon"> 204 <path fill-rule="evenodd" d="M12.416 3.376a.75.75 0 0 1 .208 1.04l-5 7.5a.75.75 0 0 1-1.154.114l-3-3a.75.75 0 0 1 1.06-1.06l2.353 2.353 4.493-6.74a.75.75 0 0 1 1.04-.207Z" clip-rule="evenodd"/> 205</svg> 206 207 <svg class="shrink-0 [:where(&)]:size-4 hidden text-[var(--color-accent-foreground)]" data-flux-icon xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" data-slot="icon"> 208 <path d="M3.75 7.25a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5h-8.5Z"/> 209</svg> 210 211 </div> 212 </ui-checkbox> 213 214 <ui-label class="inline-flex items-center text-sm font-medium [:where(&)]:text-zinc-800 [:where(&)]:dark:text-white [&:has([data-flux-label-trailing])]:flex" data-flux-label> 215 Remember me 216 217 218 219 </ui-label> 220 221 222 <div role="alert" aria-live="polite" aria-atomic="true" class="mt-3 text-sm font-medium text-red-500 dark:text-red-400 hidden" data-flux-error> 223 </div> 224</ui-field> 225 226 227 <div class="flex items-center justify-end"> 228 <button type="submit" class="relative items-center font-medium justify-center gap-2 whitespace-nowrap disabled:opacity-75 dark:disabled:opacity-75 disabled:cursor-default disabled:pointer-events-none justify-center h-10 text-sm rounded-lg ps-4 pe-4 inline-flex bg-[var(--color-accent)] hover:bg-[color-mix(in_oklab,_var(--color-accent),_transparent_10%)] text-[var(--color-accent-foreground)] border border-black/10 dark:border-0 shadow-[inset_0px_1px_--theme(--color-white/.2)] [[data-flux-button-group]_&]:border-e-0 [:is([data-flux-button-group]>&:last-child,_[data-flux-button-group]_:last-child>&)]:border-e-[1px] dark:[:is([data-flux-button-group]>&:last-child,_[data-flux-button-group]_:last-child>&)]:border-e-0 dark:[:is([data-flux-button-group]>&:last-child,_[data-flux-button-group]_:last-child>&)]:border-s-[1px] [:is([data-flux-button-group]>&:not(:first-child),_[data-flux-button-group]_:not(:first-child)>&)]:border-s-[color-mix(in_srgb,var(--color-accent-foreground),transparent_85%)] *:transition-opacity [&[disabled]>:not([data-flux-loading-indicator])]:opacity-0 [&[disabled]>[data-flux-loading-indicator]]:opacity-100 [&[disabled]]:pointer-events-none w-full" data-flux-button="data-flux-button" data-flux-group-target="data-flux-group-target" data-test="login-button"> 229 <div class="absolute inset-0 flex items-center justify-center opacity-0" data-flux-loading-indicator> 230 <svg class="shrink-0 [:where(&)]:size-4 animate-spin" data-flux-icon xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true" data-slot="icon"> 231 <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle> 232 <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path> 233</svg> 234 </div> 235 236 237 238
239 <span>Sign in</span> 240 </button> 241 </div> 242 </form> 243 244 <div class="space-x-1 text-sm text-center rtl:space-x-reverse text-zinc-500 dark:text-zinc-400"> 245 <span>Don't have an account?</span> 246 <a class="inline font-medium underline-offset-[6px] hover:decoration-current underline [[data-color]>&]:text-inherit [[data-color]>&]:decoration-current/20 dark:[[data-color]>&]:decoration-current/50 [[data-color]>&]:hover:decoration-current text-[var(--color-accent-content)] decoration-[color-mix(in_oklab,var(--color-accent-content),transparent_80%)]" href="https://spreka.ai/register" wire:navigate="" data-flux-link >Create one for free</a> </div> 247 </div> 248 </div> 249 </div> 250 </div> 251
251<script src="https://spreka.ai/flux/flux.min.js?id=497da1a7" data-navigate-once></script>
251 252
252<script src="https://spreka.ai/livewire-46e198e4/livewire.min.js?id=4735e441" data-csrf="ifsgkecivZ6e4rTiJDha3c4eaBFcogilaTjv55ei" data-module-url="https://spreka.ai/livewire-46e198e4" data-update-uri="https://spreka.ai/livewire-46e198e4/update" data-navigate-once="true"></script>
252 253</body> 254</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.