c23bd369f1b7b73d566ad5c6afe3b288f7f491b7
Root cause: #app carries a CSS filter for the dread color effect, and a filter on an ancestor creates a new containing block for any position:fixed descendant. Every modal (and the overlay) lived inside #app, so they were clipping to #app's own box — max-width: 1200px, centered — instead of the real viewport. On screens wider than that, clicking in the resulting side margins did nothing, because the click never actually landed inside the fixed element's clipped box. The earlier "fix" only added Escape support; click-outside code was already correct and simply never got exercised at the actual edges of a wide window, which is exactly where a real "click outside" gesture lands. Real fix: overlay, help-modal, characters-modal, event-modal, and the lightbox are now appended directly to <body>, as siblings of #app, so they're never affected by #app's filter regardless of viewport width. Everything else (game grid, danger-vignette) stays inside #app as before. Verified via headless browser at the exact point that failed before the fix (top-left corner of a 1300px-wide viewport, well outside #app's 1200px content area): help, characters, and the lightbox all now close correctly. Also confirmed no regression — normal gameplay screen and the game-over overlay both render identically, and the overlay now correctly covers the full viewport instead of leaving a gap on wide screens. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Djupet
Lovecraftian idle cult management game set in Malmö, Sweden.
You run a small cult in a basement in Rosengård. The goal is to complete the ritual before the investigators close in. The Turning Torso is involved. The ducks at Ribersborg know more than they let on.
Inspired by Anders Fager, Kult, and Call of Cthulhu.
Play: djupet.games.goonk.se
Stack
Vanilla TypeScript + Vite. No framework. Leaflet for the map.
Dev
npm install
npm run dev # localhost:5681
npm run typecheck
npm run build
Mechanics
- Andakt — passive income, spend on upgrades
- Dread — builds as the ritual deepens, unlocks areas and events
- Hemlighet — your exposure level; reaches zero and you lose
- Kaos — triggers chaotic events at 100, resets, repeat
- Ritual — reach 100 to win; unlocked via the Manuscript
Click locations on the Malmö map to visit them. There is a cooldown.
Docker
docker compose up -d
Serves on port 5684 by default. Override via HOST_PORT in .env.
Description
En kult-simulator i Malmö. Because varför inte. Änderna vid Ribban stirrar mot Turning Torso av en anledning.
38 MiB
Languages
TypeScript
91.1%
CSS
8.5%
HTML
0.3%
Dockerfile
0.1%