1<!doctype html> 2<html lang="en"> 3 <head> 4 <meta charset="utf-8" /> 5 <link rel="icon" href="./favicon.png" media="(prefers-color-scheme: light)" /> 6 <link rel="icon" href="./favicon-drk.png" media="(prefers-color-scheme: dark)" /> 7 <link rel="preconnect" href="https://fonts.googleapis.com"> 8 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 9 <link href="https://fonts.googleapis.com/css2?family=Work+Sans:wght@300;400;500;600;700&display=swap" rel="stylesheet"> 10 <meta name="viewport" content="width=device-width, initial-scale=1" /> 11 12 <!-- Resource Hints --> 13 <link rel="preconnect" href="https://calvinhoenes.com"> 14 <link rel="dns-prefetch" href="https://calvinhoenes.com"> 15 16 17 <link href="./_app/immutable/assets/0.Dwu8PeWk.css" rel="stylesheet"> 18 <link href="./_app/immutable/assets/luther.DcDSRs25.css" rel="stylesheet"> 19 <link href="./_app/immutable/assets/BlogLayout.fGxyjhcC.css" rel="stylesheet"> 20 <link href="./_app/immutable/assets/7.D_Yx47h0.css" rel="stylesheet"> 21 <link rel="modulepreload" href="./_app/immutable/entry/start.CXV-BtMF.js"> 22 <link rel="modulepreload" href="./_app/immutable/chunks/CN9tuEeq.js"> 23 <link rel="modulepreload" href="./_app/immutable/chunks/D4jG1e4Y.js"> 24 <link rel="modulepreload" href="./_app/immutable/chunks/C_CyA2ag.js"> 25 <link rel="modulepreload" href="./_app/immutable/entry/app.DTLYu27K.js"> 26 <link rel="modulepreload" href="./_app/immutable/chunks/C1FmrZbK.js"> 27 <link rel="modulepreload" href="./_app/immutable/chunks/J4SdE-dN.js"> 28 <link rel="modulepreload" href="./_app/immutable/chunks/CtSPjt7n.js"> 29 <link rel="modulepreload" href="./_app/immutable/chunks/DUlsgx-8.js"> 30 <link rel="modulepreload" href="./_app/immutable/chunks/DbjSjFGb.js"> 31 <link rel="modulepreload" href="./_app/immutable/chunks/daMWMvBg.js"> 32 <link rel="modulepreload" href="./_app/immutable/chunks/CYsy_rTO.js"> 33 <link rel="modulepreload" href="./_app/immutable/nodes/0.CWIMv7d4.js"> 34 <link rel="modulepreload" href="./_app/immutable/chunks/D9WZWQRF.js"> 35 <link rel="modulepreload" href="./_app/immutable/chunks/Krj_LOB1.js"> 36 <link rel="modulepreload" href="./_app/immutable/chunks/C6V6T2m9.js"> 37 <link rel="modulepreload" href="./_app/immutable/chunks/C0AZktSN.js"> 38 <link rel="modulepreload" href="./_app/immutable/chunks/AX8Thyq4.js"> 39 <link rel="modulepreload" href="./_app/immutable/chunks/Kafw9Q3O.js"> 40 <link rel="modulepreload" href="./_app/immutable/chunks/BhhT7Qvl.js"> 41 <link rel="modulepreload" href="./_app/immutable/chunks/9Cc8mKF_.js"> 42 <link rel="modulepreload" href="./_app/immutable/chunks/hIe1jH2E.js"> 43 <link rel="modulepreload" href="./_app/immutable/chunks/tQhXrcmv.js"> 44 <link rel="modulepreload" href="./_app/immutable/chunks/CV4AkNif.js"> 45 <link rel="modulepreload" href="./_app/immutable/nodes/7.DI0y4p9T.js"> 46 <link rel="modulepreload" href="./_app/immutable/chunks/ByMKVRte.js"> 47 <link rel="modulepreload" href="./_app/immutable/chunks/DZb4_bR0.js"> 48 <link rel="modulepreload" href="./_app/immutable/chunks/9To6vLfJ.js"> 49 <link rel="modulepreload" href="./_app/immutable/chunks/AFZH1T4J.js"> 50 <link rel="modulepreload" href="./_app/immutable/chunks/bmM_HVIK.js"> 51 <link rel="modulepreload" href="./_app/immutable/chunks/NwCqbddE.js"> 52 <link rel="modulepreload" href="./_app/immutable/chunks/DGVXfZ28.js"> 53 <link rel="modulepreload" href="./_app/immutable/chunks/DXYMBNac.js"><!--[--><meta name="description" content="Exploring how technology and nature can coexist to create a more sustainable and vibrant future."> <meta property="og:type" content="website"> <meta property="og:site_name" content="Calvin Hoenes"> <meta property="og:image" content="https://sveltekit-prerender/main-seo.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="630"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:image" content="https://sveltekit-prerender/main-seo.png"> <link rel="preload" href="/projects" as="fetch" crossorigin="anonymous"> <link rel="preload" href="/blog" as="fetch" crossorigin="anonymous"><!--]--><!--[--><meta name="description" content="Sustainable technology projects focused on harmonizing nature and innovation."> <meta property="og:title" content="Projects | Calvin Hoenes"> <meta property="og:description" content="Sustainable technology projects focused on harmonizing nature and innovation."> <meta property="og:type" content="website"> <meta property="og:url" content="https://sveltekit-prerender/projects"> <meta property="og:image" content="https://sveltekit-prerender/main-seo.png">
53 <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="630"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="Projects | Calvin Hoenes"> <meta name="twitter:description" content="Sustainable technology projects focused on harmonizing nature and innovation."> <meta name="twitter:image" content="https://sveltekit-prerender/main-seo.png">
53<script type="application/ld+json"> 54 {JSON.stringify(structuredData)} 55 </script>
55 <!--[--><!--[!--><!--[--><link rel="preload" as="image" href="/projects/images/agentos-poster.webp" media="(max-width: 768px)"><!--]--><!--]--><!--]--><!--]--><title>Projects | Calvin Hoenes</title> 56 </head> 57 <body data-sveltekit-preload-data="hover"> 58 <div style="display: contents"><!--[--><!--[--><!----><div class="fixed inset-0 -z-10"><div class="w-full h-full" style="background: radial-gradient(98.2% 236.53% at 88.62% 1.8%, #FFFAF5 0%, #FFFFFF 100%)"></div></div> <div class="flex flex-col min-h-screen"><nav class="fixed w-full top-0 z-50"><div class="w-full px-6 md:px-8 py-6 flex items-center justify-between relative z-[60]"><div class="flex items-center space-x-4"><a href="/" class="flex items-center space-x-4 "><img src="/logo.svg" alt="Logo" class="h-8 w-8"> <!--[--><span class="text-xl font-medium">Calvin Hoenes</span><!--]--></a></div> <!--[!--><!--]--> <!--[!--><!--]--> <div class="hidden md:flex items-center gap-8"><ul class="flex space-x-8"><!--[--><li><a href="/projects" data-sveltekit-preload="" class="transition-colors duration-200">Projects</a></li><li><a href="/blog" data-sveltekit-preload="" class="transition-colors duration-200">Articles</a></li><!--]--></ul><!----> <div class="flex items-center gap-4"><!--[--><a href="https://x.com/calvinhoenes" target="_blank" rel="noopener noreferrer" class="text-gray-600 hover:text-gray-900 transition-colors" aria-label="X (Twitter)"><img src="/social/x-black.webp" alt="X (Twitter)" class="w-5 h-5"></a><a href="https://linkedin.com/in/calvin-hoenes" target="_blank" rel="noopener noreferrer" class="text-gray-600 hover:text-gray-900 transition-colors" aria-label="LinkedIn"><img src="/social/linkedin.svg" alt="LinkedIn" class="w-5 h-5"></a>
58<!--]--></div></div> <div class="md:hidden flex items-center gap-4"><!--[!--><!--]--> <button class="p-2 " aria-label="Toggle menu"><div class="w-6 h-6 flex flex-col justify-center items-center"><span class="w-6 h-0.5 bg-current transition-all duration-300 ease-in-out "></span> <span class="w-6 h-0.5 bg-current transition-all duration-300 ease-in-out mt-2 "></span></div></button></div></div> <!--[!--><!--]--></nav><!----> <main class="flex-1"><!----><main class="min-h-screen py-32"><div class="max-w-6xl mx-auto px-6 md:px-6"><header class="mb-16 md:mb-24 md:text-center"><h1 class="text-4xl md:text-5xl lg:text-6xl font-normal text-slate-900 tracking-tight mb-6">Current Projects</h1></header> <!--[--><div class="md:hidden"><div class="flex gap-3 pb-8 overflow-x-hidden"><!--[--><div class="w-[88vw] flex-shrink-0 first:ml-[6vw] space-y-3"><div class="skeleton aspect-square rounded-xl"></div> <div class="space-y-2"><div class="skeleton h-8 w-3/4 rounded-lg"></div> <div class="flex gap-3"><div class="skeleton h-5 w-16 rounded-full"></div> <div class="skeleton h-5 w-20 rounded-full"></div></div></div></div><div class="w-[88vw] flex-shrink-0 first:ml-[6vw] space-y-3"><div class="skeleton aspect-square rounded-xl"></div> <div class="space-y-2"><div class="skeleton h-8 w-3/4 rounded-lg"></div> <div class="flex gap-3"><div class="skeleton h-5 w-16 rounded-full"></div> <div class="skeleton h-5 w-20 rounded-full"></div></div></div></div><div class="w-[88vw] flex-shrink-0 first:ml-[6vw] space-y-3"><div class="skeleton aspect-square rounded-xl"></div> <div class="space-y-2"><div class="skeleton h-8 w-3/4 rounded-lg"></div> <div class="flex gap-3"><div class="skeleton h-5 w-16 rounded-full"></div> <div class="skeleton h-5 w-20 rounded-full"></div></div></div></div><!--]--></div></div> <div class="hidden md:grid grid-cols-2 lg:grid-cols-3 gap-8 lg:gap-12"><!--[--><div class="space-y-6"><div class="skeleton aspect-[9/16] rounded-xl"></div> <div class="space-y-4"><div class="skeleton h-10 w-3/4 rounded-lg"></div> <div class="flex gap-3"><div class="skeleton h-5 w-16 rounded-full"></div> <div class="skeleton h-5 w-20 rounded-full"></div></div></div></div><div class="space-y-6"><div class="skeleton aspect-[9/16] rounded-xl"></div> <div class="space-y-4"><div class="skeleton h-10 w-3/4 rounded-lg"></div> <div class="flex gap-3"><div class="skeleton h-5 w-16 rounded-full"></div> <div class="skeleton h-5 w-20 rounded-full"></div></div></div></div><div class="space-y-6"><div class="skeleton aspect-[9/16] rounded-xl"></div> <div class="space-y-4"><div class="skeleton h-10 w-3/4 rounded-lg"></div> <div class="flex gap-3"><div class="skeleton h-5 w-16 rounded-full"></div> <div class="skeleton h-5 w-20 rounded-full"></div></div></div></div><div class="space-y-6"><div class="skeleton aspect-[9/16] rounded-xl"></div> <div class="space-y-4"><div class="skeleton h-10 w-3/4 rounded-lg"></div> <div class="flex gap-3"><div class="skeleton h-5 w-16 rounded-full"></div> <div class="skeleton h-5 w-20 rounded-full"></div></div></div></div><div class="space-y-6"><div class="skeleton aspect-[9/16] rounded-xl"></div> <div class="space-y-4"><div class="skeleton h-10 w-3/4 rounded-lg"></div> <div class="flex gap-3"><div class="skeleton h-5 w-16 rounded-full"></div> <div class="skeleton h-5 w-20 rounded-full"></div></div></div></div><div class="space-y-6"><div class="skeleton aspect-[9/16] rounded-xl"></div> <div class="space-y-4"><div class="skeleton h-10 w-3/4 rounded-lg"></div> <div class="flex gap-3"><div class="skeleton h-5 w-16 rounded-full"></div> <div class="skeleton h-5 w-20 rounded-full"></div></div></div></div><!--]--></div><!--]--></div></main><!----><!----></main> <div class="max-w-5xl w-full mx-6 sm:mx-auto"><form class="flex flex-col sm:flex-row items-start sm:items-center gap-4 sm:gap-8"><div class="flex-1"><h2 class="text-lg font-normal mb-1">Stay in the Loop</h2> <p class="text-slate-600 text-sm">Get updates on autonomous systems straight to your inbox.</p></div> <div class="flex w-full sm:w-auto gap-2"><input type="email" value="" placeholder="Enter your email" required class="flex-1 min-w-[200px] px-4 py-2 rounded-lg border border-slate-300 focus:outline-none focus:ring-2 focus:ring-slate-500"> <button type="submit" class="shrink-0 px-6 py-2 bg-slate-900 text-white rounded-lg hover:bg-slate-800 transition-colors disabled:opacity-50">Subscribe</button></div></form></div><!----> <footer class="w-full px-6 md:px-8 py-6 mt-32"><div><div class="flex justify-between items-center text-sm text-slate-600"><div>© 2025 Calvin Hoenes</div> <div class="flex gap-4"><a href="/privacy" class="hover:text-slate-900 transition-colors">Privacy</a> <a href="/imprint" class="hover:text-slate-900 transition-colors">Imprint</a></div></div></div></footer><!----></div><!----><!--]--> <!--[!--><!--]--><!--]--> 59 60
60<script> 61 { 62 __sveltekit_m4c848 = { 63 base: new URL(".", location).pathname.slice(0, -1) 64 }; 65 66 const element = document.currentScript.parentElement; 67 68 Promise.all([ 69 import("./_app/immutable/entry/start.CXV-BtMF.js"), 70 import("./_app/immutable/entry/app.DTLYu27K.js") 71 ]).then(([kit, app]) => { 72 kit.start(app, element, { 73 node_ids: [0, 7], 74 data: [null,null], 75 form: null, 76 error: null 77 }); 78 }); 79 } 80 </script>
80 81 </div> 82 </body> 83</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.