import type { Metadata } from "next"; import Link from "next/link"; import { ProsePage, Section, Callout, Bullets } from "@/components/lobby/prose"; export const metadata: Metadata = { title: "Privacy Policy", description: "Spinza's privacy policy: we store a username, a password hash and gameplay statistics. No email, no trackers, no ads, no data sales.", alternates: { canonical: "/legal/privacy" }, }; const TOC = [ { id: "summary", label: "In one paragraph" }, { id: "collect", label: "What we collect" }, { id: "not", label: "What we do not collect" }, { id: "use", label: "How we use it" }, { id: "cookies", label: "Cookies" }, { id: "sharing", label: "Sharing" }, { id: "retention", label: "Retention & deletion" }, { id: "security", label: "Security" }, { id: "rights", label: "Your choices" }, { id: "changes", label: "Changes" }, ]; const ROWS: [string, string][] = [ ["Username", "Identifies your account and appears on leaderboards (unless you opt out)."], ["Password hash", "A one-way Argon2id hash. We never store or see your actual password."], ["Recovery code hash", "A one-way hash of your recovery code, used only to verify it when you reset your password."], ["Age confirmation", "The time you confirmed you are 18 or older."], ["Gameplay records", "Each round: game, bet, win, multiplier, features, balance after and a round ID; plus aggregate statistics (spins, wins, biggest win, level, XP)."], ["Credit ledger", "Every movement of fictional Spinza Credits, so your balance is always auditable."], ["Rewards & progression", "Daily-reward streak, missions, achievements, favourites."], ["Settings", "Sound, animation, reminder and leaderboard preferences."], ["Session data", "A session token (as a hash), the time of sign-in and last activity, your browser's user-agent string and a truncated IP address, so you can review and revoke devices."], ["Security log", "Sign-in successes and failures, password and recovery-code changes, and rate-limit events, kept to protect accounts."], ]; export default function PrivacyPage() { return (
We store your username, a hash of your password, and your gameplay statistics and settings. We do not collect your email address, phone number, real name, location, payment details or contacts. We use no advertising, no analytics trackers and no third-party scripts. We never sell, rent or share your data.

Everything below is created by you using Spinza. Nothing is gathered from other sources.

{ROWS.map(([k, v]) => ( ))}
Data Purpose
{k} {v}

We do not profile you, make automated decisions that affect you, or use your data for marketing.

Spinza sets one strictly necessary cookie, spinza_session, which keeps you signed in. It is HttpOnly, Secure and SameSite, and expires after 30 days or when you sign out. There are no analytics, advertising or third-party cookies, so no cookie banner is needed.

We do not sell, rent, trade or share personal data with third parties. Other players can see only your username, level and leaderboard results, and only if you participate in leaderboards. The only circumstance in which data would leave Spinza is a valid legal obligation, in which case we disclose the minimum required.

Spinza is hosted on infrastructure we operate. No third-party analytics, advertising, font, CDN or social-media services load on the player pages.

Your data is kept while your account exists so your history and progress remain intact. Sessions expire after 30 days of inactivity. Security-log entries are kept for a limited period for abuse prevention. When an account is closed, its personal data is deleted; anonymous, aggregate game statistics that cannot identify you are retained.

Passwords and recovery codes are hashed with Argon2id and never stored in plain text. Sessions are random tokens stored as hashes. All traffic is encrypted in transit. Sign-in, registration and recovery endpoints are rate-limited. You can review every active session and sign any of them out from Settings → Security.

Leaderboards: opt out at any time in{" "} Settings ; your entries disappear immediately. , <> Sessions: revoke any device from Settings → Security. , <> Access: your profile, round history and credit ledger pages show you everything we hold about your play. , <> Deletion: you may request closure of your account and deletion of its data through the channels listed on this site. , ]} />

Depending on where you live you may have additional rights under local law (such as access, correction, portability or objection). We honour them regardless of jurisdiction.

If we change what we collect or how we use it, we will update this page and its “last updated” date before the change takes effect. We will never start collecting email addresses, adding trackers or selling data without saying so here first — and we have no plans to.

Read alongside our{" "} Terms of Service .

); }