diff --git a/src/components/age-gate.tsx b/src/components/age-gate.tsx
new file mode 100644
index 0000000..9af12cd
--- /dev/null
+++ b/src/components/age-gate.tsx
@@ -0,0 +1,65 @@
+"use client"
+
+import { useEffect, useState } from "react"
+
+const COOKIE_NAME = "ws_age_ok"
+const COOKIE_DAYS = 1
+
+// Gate de contenidos +18: se muestra hasta que el usuario confirma ser mayor.
+// Persistencia: cookie de 1 día. Si dice ser menor -> Google.
+export function AgeGate() {
+ const [show, setShow] = useState(false)
+
+ useEffect(() => {
+ const ok = document.cookie
+ .split(";")
+ .some((c) => c.trim().startsWith(`${COOKIE_NAME}=`))
+ setShow(!ok)
+ }, [])
+
+ const confirmAdult = () => {
+ const d = new Date()
+ d.setTime(d.getTime() + COOKIE_DAYS * 24 * 60 * 60 * 1000)
+ document.cookie = `${COOKIE_NAME}=1; expires=${d.toUTCString()}; path=/; max-age=${COOKIE_DAYS * 24 * 60 * 60}`
+ setShow(false)
+ }
+
+ const deny = () => {
+ window.location.href = "https://www.google.com/"
+ }
+
+ if (!show) return null
+
+ return (
+
+ {/* fondo */}
+
+
+
+ 18+
+
+
+
Contenido para adultos
+
+ Este sitio contiene mangas con contenido explícito para mayores de 18 años.
+
+
+
+
+
+
+
+
+ )
+}
\ No newline at end of file