1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/> 2<!-- This site is hosted on Netlify. Anyone can build and deploy a site 3 like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=762a77a2-6769-46df-bfb8-14065a0ee417 4 Netlify hosting facts for this site: static/SSR served via Netlify Edge. --><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Alegreya:ital,wght@0,400..900;1,400..900&display=swap"/><link rel="stylesheet" href="/assets/app-C2lYIuNB.css"/></head><body><div class="min-h-screen bg-stone-100 flex flex-col"><nav class="shadow-sm"><div class="container mx-auto px-4 sm:px-6 lg:px-8 py-4"><div class="flex justify-between items-center h-16"><div class="flex items-center"><a class="flex items-center text-stone-600 hover:text-double-spanish-white-500" href="/" data-discover="true"><img src="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='Layer_2'%20data-name='Layer%202'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20288.39%20288.39'%3e%3cdefs%3e%3cstyle%3e%20.cls-1%20{%20fill:%20%23775335;%20}%20.cls-1,%20.cls-2,%20.cls-3%20{%20stroke-miterlimit:%2010;%20stroke-width:%202px;%20}%20.cls-1,%20.cls-3%20{%20stroke:%20%2361442d;%20}%20.cls-2,%20.cls-3%20{%20fill:%20%23e8ddbf;%20}%20.cls-2,%20.cls-4%20{%20stroke:%20%23e8ddbf;%20}%20.cls-4%20{%20fill:%20none;%20stroke-linecap:%20round;%20stroke-linejoin:%20round;%20stroke-width:%206px;%20}%20%3c/style%3e%3c/defs%3e%3cg%20id='Layer_5'%20data-name='Layer%205'%3e%3cg%20id='Full_Compass'%20data-name='Full%20Compass'%3e%3ccircle%20class='cls-2'%20cx='144.2'%20cy='144.2'%20r='143.2'/%3e%3cg%20id='Big_Star'%20data-name='Big%20Star'%3e%3cpath%20class='cls-1'%20d='M92.16,21.18c0-.06.08-.08.1-.02l27.68,65.58h0c-3.76,4.09-16.06,12.84-21.17,14.59l-6.6-80.14Z'/%3e%3cpath%20class='cls-1'%20d='M119.93,86.74h0'/%3e%3cpath%20class='cls-1'%20d='M181.1,196.82l15.17,70.72-27.07-64.11c4.27-1.8,8.24-4.02,11.9-6.61Z'/%3e%3cpath%20class='cls-1'%20d='M181.1,196.82c-3.65,2.58-7.62,4.8-11.9,6.61'/%3e%3cpath%20class='cls-3'%20d='M142.86,81.73c-3.66,2-18.72,5.88-22.92,5l-27.68-65.58c-.02-.05.05-.09.08-.05l50.52,60.63Z'/%3e%3cpath%20class='cls-1'%20d='M196.07,267.28c0,.06-.08.08-.1.02l-27.6-65.61h0c3.77-4.08,16.08-12.82,21.19-14.56l6.5,80.15Z'/%3e%3cpath%20class='cls-3'%20d='M145.45,206.66c3.66-1.99,18.73-5.85,22.93-4.97l27.6,65.61c.02.05-.05.09-.08.05l-50.45-60.69Z'/%3e%3c/g%3e%3cpath%20class='cls-1'%20d='M202.92,120.44c3.58,8.48,5.17,17.32,4.99,25.96-.06,2.5-.26,4.98-.61,7.44-.68,4.85-1.92,9.59-3.67,14.13-1.75,4.49-4.01,8.79-6.73,12.8-1.54,2.26-3.23,4.43-5.07,6.48-3.16,3.55-6.75,6.77-10.72,9.56-3.65,2.58-7.62,4.8-11.9,6.61h0c-4.27,1.81-8.63,3.11-13.02,3.93-4.79.9-9.6,1.23-14.35,1.01-2.74-.12-5.49-.42-8.18-.89-4.76-.84-9.41-2.23-13.85-4.12-4.48-1.9-8.75-4.32-12.69-7.21-2.02-1.46-3.94-3.05-5.76-4.75-6.33-5.89-11.54-13.2-15.12-21.68-.18-.43-.36-.89-.54-1.33-3.67-9.23-5-18.83-4.27-28.13.15-1.91.38-3.81.69-5.69.83-4.91,2.24-9.69,4.18-14.26,1.96-4.61,4.46-8.98,7.46-13.03.99-1.34,2.02-2.63,3.12-3.88,3.18-3.65,6.81-6.96,10.86-9.84,3.73-2.67,7.81-4.97,12.21-6.82h0c4.4-1.86,8.9-3.19,13.41-4,4.88-.89,9.78-1.18,14.61-.92,1.65.08,3.31.24,4.95.46,5,.67,9.89,1.94,14.55,3.75,4.62,1.78,9.03,4.12,13.13,6.95,1.58,1.08,3.1,2.24,4.57,3.47,7.18,5.97,13.12,13.62,17.18,22.68.19.43.39.88.57,1.31Z'/%3e%3c/g%3e%3cpath%20class='cls-4'%20d='M118.13,111.85v14.32M110.97,119.01h14.32M121.71,161.99v14.32M114.55,169.15h14.32M147.62,114.37l7.21,21.64c.08.25.28.45.53.55l17.86,6.7c.77.29.77,1.37,0,1.66l-17.86,6.7c-.25.09-.44.3-.53.55l-7.21,21.64c-.27.81-1.41.81-1.68,0l-7.21-21.64c-.08-.25-.28-.45-.53-.55l-17.86-6.7c-.77-.29-.77-1.37,0-1.66l17.86-6.7c.25-.09.44-.3.53-.55l7.21-21.64c.27-.81,1.41-.81,1.68,0Z'/%3e%3c/g%3e%3c/svg%3e" alt="AI Foundations Logo" class="h-12 w-12 md:h-16 md:w-16 text-double-spanish-white-400"/><span class="ml-3 text-xl font-serif font-semibold">AI Foundations</span></a></div><div class="hidden md:flex md:items-center md:gap-4"><a class="text-stone-600 hover:text-double-spanish-white-500 px-2" href="/about" data-discover="true">About</a><a class="text-gray-600 hover:text-gray-900" href="/login" data-discover="true">Sign in</a></div><button class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:bg-stone-100 hover:text-stone-900 h-10 w-10 md:hidden" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-:R6b5:" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu h-5 w-5"><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg><span class="sr-only">
4Toggle menu</span></button></div></div></nav><div class="container mx-auto p-6 max-w-3xl bg-white rounded-lg shadow-md mt-12 flex-grow"><h1 class="text-3xl font-bold mb-4">Privacy Policy</h1><p class="mb-6">At AI Foundations, we are committed to protecting your privacy and ensuring the security of your personal information. This privacy policy explains how we collect, use, and safeguard your data when you use our application.</p><h2 class="text-2xl font-semibold mb-2">Information We Collect</h2><p class="mb-4">We collect minimal information necessary to provide you with our services:</p><ul class="list-disc list-inside mb-6 ml-4 space-y-2"><li>Account information (username, email) for authentication</li><li>Learning progress data to track your journey</li><li>Optional context information you choose to provide</li><li>Basic usage data to improve our service</li></ul><h2 class="text-2xl font-semibold mb-2">How We Use Your Context Information</h2><p class="mb-6">This optional field helps personalize AI interactions within the course. Your data is private and only visible to you. It is not shared or used beyond this feature. You can update or remove your information anytime. Please avoid entering sensitive or confidential data.</p><h2 class="text-2xl font-semibold mb-2">Data Security</h2><p class="mb-6">We take data security seriously:</p><ul class="list-disc list-inside mb-6 ml-4 space-y-2"><li>All your data is securely stored</li><li>Only logged-in users can access their own data</li><li>No information is shared with external third parties</li><li>We implement industry-standard security measures to protect your data</li></ul><h2 class="text-2xl font-semibold mb-2">User Rights</h2><p class="mb-4">As a user of our application, you have the right to:</p><ul class="list-disc list-inside mb-6 ml-4 space-y-2"><li>Access your personal data</li><li>Request correction of inaccurate data</li><li>Delete your account and associated data</li><li>Update your preferences at any time</li></ul><h2 class="text-2xl font-semibold mb-2">Cookies & Local Storage</h2><p class="mb-6">We use cookies and local storage solely for authentication and to save your preferences. These technologies help us provide a better user experience by remembering your settings and keeping you logged in between sessions.</p><h2 class="text-2xl font-semibold mb-2">Education Focus</h2><p class="mb-6">As an educational platform, our primary goal is to help you learn about AI literacy and competency. Any data we collect is used to improve that educational experience, not for commercial purposes.</p><div class="bg-gray-50 p-4 rounded-lg mb-6"><h3 class="text-lg font-semibold mb-2">Summary of Our Approach:</h3><ul class="list-none space-y-1 text-sm"><li>ð Your data stays within this application</li><li>ð¤ Only you can see your personal information</li><li>â
Minimal data collection for essential functions</li><li>ð No data sharing with external parties</li></ul></div><h2 class="text-2xl font-semibold mb-2">Changes to This Policy</h2><p class="mb-6">We may update this privacy policy from time to time. Any significant changes will be communicated to users through the application or via email.</p><p class="text-sm text-gray-500">Last updated: <!-- -->10/3/2026</p><p class="text-sm text-gray-500">Questions about privacy? Contact <a href="mailto:[email protected]" class="text-bc-maroon hover:underline">ATR</a>.</p><p class="mt-4"><a class="text-bc-maroon hover:underline" href="/about" data-discover="true">Return to About page</a></p></div><footer class="px-6 py-8 bg-double-spanish-white-950 text-double-spanish-white-50 mt-auto"><div class="max-w-6xl mx-auto"><div class="grid grid-cols-2 md:grid-cols-4 md:justify-items-center gap-8"><div class="col-span-2 md:col-span-1"><div class="flex items-start mb-4"><img src="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='Layer_2'%20data-name='Layer%202'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20288.39%20288.39'%3e%3cdefs%3e%3cstyle%3e%20.cls-1%20{%20fill:%20%23775335;%20}%20.cls-1,%20.cls-2,%20.cls-3%20{%20stroke-miterlimit:%2010;%20stroke-width:%202px;%20}%20.cls-1,%20.cls-3%20{%20stroke:%20%2361442d;%20}%20.cls-2,%20.cls-3%20{%20fill:%20%23e8ddbf;%20}%20.cls-2,%20.cls-4%20{%20stroke:%20%23e8ddbf;%20}%20.cls-4%20{%20fill:%20none;%20stroke-linecap:%20round;%20stroke-linejoin:%20round;%20stroke-width:%206px;%20}%20%3c/style%3e%3c/defs%3e%3cg%20id='Layer_5'%20data-name='
4Layer%205'%3e%3cg%20id='Full_Compass'%20data-name='Full%20Compass'%3e%3ccircle%20class='cls-2'%20cx='144.2'%20cy='144.2'%20r='143.2'/%3e%3cg%20id='Big_Star'%20data-name='Big%20Star'%3e%3cpath%20class='cls-1'%20d='M92.16,21.18c0-.06.08-.08.1-.02l27.68,65.58h0c-3.76,4.09-16.06,12.84-21.17,14.59l-6.6-80.14Z'/%3e%3cpath%20class='cls-1'%20d='M119.93,86.74h0'/%3e%3cpath%20class='cls-1'%20d='M181.1,196.82l15.17,70.72-27.07-64.11c4.27-1.8,8.24-4.02,11.9-6.61Z'/%3e%3cpath%20class='cls-1'%20d='M181.1,196.82c-3.65,2.58-7.62,4.8-11.9,6.61'/%3e%3cpath%20class='cls-3'%20d='M142.86,81.73c-3.66,2-18.72,5.88-22.92,5l-27.68-65.58c-.02-.05.05-.09.08-.05l50.52,60.63Z'/%3e%3cpath%20class='cls-1'%20d='M196.07,267.28c0,.06-.08.08-.1.02l-27.6-65.61h0c3.77-4.08,16.08-12.82,21.19-14.56l6.5,80.15Z'/%3e%3cpath%20class='cls-3'%20d='M145.45,206.66c3.66-1.99,18.73-5.85,22.93-4.97l27.6,65.61c.02.05-.05.09-.08.05l-50.45-60.69Z'/%3e%3c/g%3e%3cpath%20class='cls-1'%20d='M202.92,120.44c3.58,8.48,5.17,17.32,4.99,25.96-.06,2.5-.26,4.98-.61,7.44-.68,4.85-1.92,9.59-3.67,14.13-1.75,4.49-4.01,8.79-6.73,12.8-1.54,2.26-3.23,4.43-5.07,6.48-3.16,3.55-6.75,6.77-10.72,9.56-3.65,2.58-7.62,4.8-11.9,6.61h0c-4.27,1.81-8.63,3.11-13.02,3.93-4.79.9-9.6,1.23-14.35,1.01-2.74-.12-5.49-.42-8.18-.89-4.76-.84-9.41-2.23-13.85-4.12-4.48-1.9-8.75-4.32-12.69-7.21-2.02-1.46-3.94-3.05-5.76-4.75-6.33-5.89-11.54-13.2-15.12-21.68-.18-.43-.36-.89-.54-1.33-3.67-9.23-5-18.83-4.27-28.13.15-1.91.38-3.81.69-5.69.83-4.91,2.24-9.69,4.18-14.26,1.96-4.61,4.46-8.98,7.46-13.03.99-1.34,2.02-2.63,3.12-3.88,3.18-3.65,6.81-6.96,10.86-9.84,3.73-2.67,7.81-4.97,12.21-6.82h0c4.4-1.86,8.9-3.19,13.41-4,4.88-.89,9.78-1.18,14.61-.92,1.65.08,3.31.24,4.95.46,5,.67,9.89,1.94,14.55,3.75,4.62,1.78,9.03,4.12,13.13,6.95,1.58,1.08,3.1,2.24,4.57,3.47,7.18,5.97,13.12,13.62,17.18,22.68.19.43.39.88.57,1.31Z'/%3e%3c/g%3e%3cpath%20class='cls-4'%20d='M118.13,111.85v14.32M110.97,119.01h14.32M121.71,161.99v14.32M114.55,169.15h14.32M147.62,114.37l7.21,21.64c.08.25.28.45.53.55l17.86,6.7c.77.29.77,1.37,0,1.66l-17.86,6.7c-.25.09-.44.3-.53.55l-7.21,21.64c-.27.81-1.41.81-1.68,0l-7.21-21.64c-.08-.25-.28-.45-.53-.55l-17.86-6.7c-.77-.29-.77-1.37,0-1.66l17.86-6.7c.25-.09.44-.3.53-.55l7.21-21.64c.27-.81,1.41-.81,1.68,0Z'/%3e%3c/g%3e%3c/svg%3e" alt="AI Foundations Logo" class="h-12 w-12 text-double-spanish-white-400"/><div class="ml-4 flex flex-col gap-2 md:gap-4"><span class="font-semibold">AI Foundations</span><p class="text-double-spanish-white-50 text-sm">Your guided journey to practical AI literacy</p></div></div></div><div><h3 class="font-semibold mb-4">Resources</h3><ul class="space-y-2 text-double-spanish-white-50"><li><a class="hover:text-white text-sm md:text-base" href="/about" data-discover="true">About</a></li><li><a class="hover:text-white text-sm md:text-base" href="/privacy" data-discover="true">Privacy Policy</a></li></ul></div><div class="col-span-2 md:col-span-1"><h3 class="font-semibold mb-4">Connect</h3><p class="text-double-spanish-white-50 text-sm mb-4">Questions or ideas? Contact us at <a href="mailto:[email protected]" class="text-double-spanish-white-50 hover:underline">[email protected]</a></p></div></div><div class="border-t border-double-spanish-white-500 mt-8 pt-8 text-center text-double-spanish-white-50 text-sm"><p>© <!-- -->2026<!-- --> AI Foundations. A project by Boston College Law School.</p></div></div></footer></div>
4<script>((storageKey2, restoreKey) => { 5 if (!window.history.state || !window.history.state.key) { 6 let key = Math.random().toString(32).slice(2); 7 window.history.replaceState({ key }, ""); 8 } 9 try { 10 let positions = JSON.parse(sessionStorage.getItem(storageKey2) || "{}"); 11 let storedY = positions[restoreKey || window.history.state.key]; 12 if (typeof storedY === "number") { 13 window.scrollTo(0, storedY); 14 } 15 } catch (error) { 16 console.error(error); 17 sessionStorage.removeItem(storageKey2); 18 } 19 })("react-router-scroll-positions", null)</script>
19<link rel="modulepreload" href="/assets/entry.client-CUuR1YD5.js"/><link rel="modulepreload" href="/assets/jsx-runtime-C1HzKVhM.js"/><link rel="modulepreload" href="/assets/chunk-D4RADZKF-Bn0vLlne.js"/><link rel="modulepreload" href="/assets/index-D-Fnt3K6.js"/><link rel="modulepreload" href="/assets/root-DwmjzvHi.js"/><link rel="modulepreload" href="/assets/with-props-BZcXWtLJ.js"/><link rel="modulepreload" href="/assets/index-F5jCzHb4.js"/><link rel="modulepreload" href="/assets/misc-DHc4xibJ.js"/><link rel="modulepreload" href="/assets/chevron-right-DmgDiADl.js"/><link rel="modulepreload" href="/assets/index-C83yQ0rR.js"/><link rel="modulepreload" href="/assets/button-DmXE5ST_.js"/><link rel="modulepreload" href="/assets/createLucideIcon-D8Tpp_F9.js"/><link rel="modulepreload" href="/assets/user-C5rkuuqR.js"/><link rel="modulepreload" href="/assets/index-By2krYrd.js"/><link rel="modulepreload" href="/assets/index-BbshJk6d.js"/><link rel="modulepreload" href="/assets/Combination-DYBVxX9W.js"/><link rel="modulepreload" href="/assets/tslib.es6-De9GV7Vy.js"/><link rel="modulepreload" href="/assets/privacy-BKryrwAN.js"/>
19<script>window.__reactRouterContext = {"basename":"/","future":{"unstable_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"lazy","manifestPath":"/__manifest"},"ssr":true,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script>
19<script type="module" async="">; 20import * as route0 from "/assets/root-DwmjzvHi.js"; 21import * as route1 from "/assets/privacy-BKryrwAN.js"; 22 window.__reactRouterManifest = { 23 "entry": { 24 "module": "/assets/entry.client-CUuR1YD5.js", 25 "imports": [ 26 "/assets/jsx-runtime-C1HzKVhM.js", 27 "/assets/chunk-D4RADZKF-Bn0vLlne.js", 28 "/assets/index-D-Fnt3K6.js" 29 ], 30 "css": [] 31 }, 32 "routes": { 33 "root": { 34 "id": "root", 35 "path": "", 36 "hasAction": false, 37 "hasLoader": true, 38 "hasClientAction": false, 39 "hasClientLoader": false, 40 "hasClientMiddleware": false, 41 "hasErrorBoundary": true, 42 "module": "/assets/root-DwmjzvHi.js", 43 "imports": [ 44 "/assets/jsx-runtime-C1HzKVhM.js", 45 "/assets/chunk-D4RADZKF-Bn0vLlne.js", 46 "/assets/index-D-Fnt3K6.js", 47 "/assets/with-props-BZcXWtLJ.js", 48 "/assets/index-F5jCzHb4.js", 49 "/assets/misc-DHc4xibJ.js", 50 "/assets/chevron-right-DmgDiADl.js", 51 "/assets/index-C83yQ0rR.js", 52 "/assets/button-DmXE5ST_.js", 53 "/assets/createLucideIcon-D8Tpp_F9.js", 54 "/assets/user-C5rkuuqR.js", 55 "/assets/index-By2krYrd.js", 56 "/assets/index-BbshJk6d.js", 57 "/assets/Combination-DYBVxX9W.js", 58 "/assets/tslib.es6-De9GV7Vy.js" 59 ], 60 "css": [] 61 }, 62 "routes/privacy": { 63 "id": "routes/privacy", 64 "parentId": "root", 65 "path": "privacy", 66 "hasAction": false, 67 "hasLoader": false, 68 "hasClientAction": false, 69 "hasClientLoader": false, 70 "hasClientMiddleware": false, 71 "hasErrorBoundary": false, 72 "module": "/assets/privacy-BKryrwAN.js", 73 "imports": [ 74 "/assets/with-props-BZcXWtLJ.js", 75 "/assets/jsx-runtime-C1HzKVhM.js", 76 "/assets/chunk-D4RADZKF-Bn0vLlne.js" 77 ], 78 "css": [] 79 }, 80 "routes/home": { 81 "id": "routes/home", 82 "parentId": "root", 83 "index": true, 84 "hasAction": false, 85 "hasLoader": true, 86 "hasClientAction": false, 87 "hasClientLoader": false, 88 "hasClientMiddleware": false, 89 "hasErrorBoundary": false, 90 "module": "/assets/home-CUqmXUzy.js", 91 "imports": [ 92 "/assets/with-props-BZcXWtLJ.js", 93 "/assets/jsx-runtime-C1HzKVhM.js", 94 "/assets/chunk-D4RADZKF-Bn0vLlne.js", 95 "/assets/AI Foundations Logo Full-5QkGbTai.js", 96 "/assets/chevron-left-CKCFgMQf.js", 97 "/assets/chevron-right-DmgDiADl.js", 98 "/assets/createLucideIcon-D8Tpp_F9.js" 99 ], 100 "css": [] 101 } 102 }, 103 "url": "/assets/manifest-60fa96bc.js", 104 "version": "60fa96bc" 105}; 106 window.__reactRouterRouteModules = {"root":route0,"routes/privacy":route1}; 107 108import("/assets/entry.client-CUuR1YD5.js");</script>
108</body></html><!--$-->
108<script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_21\":-5,\"_22\":-5},\"loaderData\",{\"_3\":4},\"root\",{\"_5\":6,\"_10\":-5,\"_11\":12,\"_17\":-5,\"_18\":-5,\"_19\":20},\"env\",{\"_7\":8,\"_9\":-7},\"MODE\",\"development\",\"ALLOW_INDEXING\",\"user\",\"completedDays\",{\"_13\":14,\"_15\":16},\"completedCount\",0,\"completedDates\",[],\"preferences\",\"userProgress\",\"totalActivityDays\",24,\"actionData\",\"errors\"]\n");</script>
108<!--$-->
108<script>window.__reactRouterContext.streamController.close();</script>
108<!--/$--><!--/$-->
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.