Explorar o código

Add privacy policy.

Lee Morgan hai 2 semanas
pai
achega
234d4af365
Modificáronse 2 ficheiros con 74 adicións e 3 borrados
  1. 8 3
      src/routes/+layout.svelte
  2. 66 0
      src/routes/privacy/+page.svelte

+ 8 - 3
src/routes/+layout.svelte

@@ -11,6 +11,7 @@
 	const isGallery = $derived(isGalleryMap || page.url.pathname.startsWith('/gallery/'));
 	const isResume = $derived(page.url.pathname === '/resume');
 	const isCurrency = $derived(page.url.pathname === '/currency' || page.url.pathname.startsWith('/currency/'));
+	const isPrivacy = $derived(page.url.pathname === '/privacy');
 </script>
 
 <svelte:head>
@@ -19,9 +20,12 @@
 	<meta name="color-scheme" content="dark" />
 </svelte:head>
 
-<a class="skip" href="#main">Skip to content</a>
+{#if isPrivacy}
+	{@render children()}
+{:else}
+	<a class="skip" href="#main">Skip to content</a>
 
-<div class="shell">
+	<div class="shell">
 	<aside class="rail">
 		<div class="rail-top">
 			<div class="identity">
@@ -77,4 +81,5 @@
 			{@render children()}
 		</main>
 	</div>
-</div>
+	</div>
+{/if}

+ 66 - 0
src/routes/privacy/+page.svelte

@@ -0,0 +1,66 @@
+<svelte:head>
+	<title>Privacy Policy — Lee Morgan</title>
+	<meta
+		name="description"
+		content="Privacy policy for recipes.leemorgan.dev and the Torus exercise app. Personal data is never sold or transferred. Cookies are used only for authentication."
+	/>
+</svelte:head>
+
+<main class="policy">
+	<h1>Privacy Policy</h1>
+	<p class="updated">Last updated October 16, 2026</p>
+
+	<p>
+		This policy applies to recipes.leemorgan.dev and the Torus exercise app.
+	</p>
+
+	<h2>Personal data</h2>
+	<p>
+		No personal data will ever be sold or transferred to another entity.
+	</p>
+
+	<h2>Cookies</h2>
+	<p>
+		Cookies are used only for authentication. They are not used for advertising, analytics, or
+		tracking.
+	</p>
+
+	<h2>Contact</h2>
+	<p>
+		Questions about this policy can be sent to
+		<a href="mailto:lee@leemorgan.dev">lee@leemorgan.dev</a>.
+	</p>
+</main>
+
+<style>
+	.policy {
+		max-width: 40rem;
+		margin: 0 auto;
+		padding: 3rem 1.5rem 4rem;
+	}
+
+	h1 {
+		font-size: 1.75rem;
+		font-weight: 600;
+		letter-spacing: 0.02em;
+	}
+
+	.updated {
+		margin-top: 0.5rem;
+		margin-bottom: 2rem;
+		font-size: 0.875rem;
+		color: var(--muted);
+	}
+
+	h2 {
+		margin-top: 2rem;
+		margin-bottom: 0.75rem;
+		font-size: 1.25rem;
+		font-weight: 600;
+		letter-spacing: 0.02em;
+	}
+
+	p + p {
+		margin-top: 1rem;
+	}
+</style>