Mana-Loop/
├── .gitea/
│   └── workflows/
│       └── docker-build.yaml
├── .husky/
│   ├── scripts/
│   │   ├── check-file-size.js
│   │   ├── generate-dependency-graph.js
│   │   └── generate-project-tree.js
│   ├── post-merge
│   └── pre-commit
├── docs/
│   ├── GAME_BRIEFING.md
│   ├── circular-deps.txt
│   ├── dependency-graph.json
│   └── project-structure.txt
├── e2e/
├── playwright-report/
│   ├── data/
│   │   ├── 1513ea5b9ea5985996f67ca36f2bc4d34add51f1.webm
│   │   ├── 23eb0c541b68af33d962c3ac20ba74eb9ba477b3.md
│   │   ├── 25af666b2659e25b596f1eb58ca5629f38f0fa74.png
│   │   ├── 294ed85dfd5fbd79486f5274129a1d8b83cfa676.png
│   │   ├── 37c584c77b029af648d58a063f9724538662c6d0.webm
│   │   ├── 4d1229974e5326e2351c32921095bff6e989005e.png
│   │   ├── 4f22caa1a2b454f813b4c68c510a2ef0b340a248.md
│   │   ├── 6408809a17a0a92b06e5cc75fcee95e9778138c4.md
│   │   ├── 66a1f85e1e6a655dfb90f10bd1a60887cffa87da.md
│   │   ├── 6b97a6c84cfda4c717249f240d0a80e1b195498a.png
│   │   ├── 6c1c7d873c0c5262ffca286974649ec3bf1eb3f4.md
│   │   ├── 72280c2048aa77a6b58afc7bba8f9db3dfd1c68b.webm
│   │   ├── 8035d8abad1bfb2166374e25b55f52324fef1275.png
│   │   ├── 8396039272c615989307eaf4113a77b0d77cfbdd.webm
│   │   ├── a69b7491fd34ee0580bc0153a90dc146b509aac3.md
│   │   ├── bb3c9d51cafcb654c796b093c72c5b702f52faed.webm
│   │   ├── bee318a3f485bd3e98088a4735e02181585e431b.png
│   │   ├── c0f44af041cac0f5d5efaec8a9a9e5d165c8d26a.png
│   │   ├── cf49b56fde3bacf27d842ef4bfeed4887d97f01e.webm
│   │   ├── dbea283cbcf6aaed195161609c68ab7de0c6adfa.png
│   │   ├── dc2d9fe97c08dd61f42a27ead0829c2d74322ccc.webm
│   │   ├── e3d1abb209771785e7247c38fd372d8fd61b7ea4.md
│   │   ├── e59720b989841926cc856d6a00be0a6f8365cf49.webm
│   │   └── f5ba77f8b20c452bd2c31718b44897276882a465.md
│   └── index.html
├── public/
│   ├── fonts/
│   │   ├── GeistMonoVF.woff
│   │   └── GeistVF.woff
│   ├── logo.svg
│   └── robots.txt
├── src/
│   ├── app/
│   │   ├── components/
│   │   │   ├── GameOverScreen.tsx
│   │   │   └── LeftPanel.tsx
│   │   ├── globals.css
│   │   ├── layout.tsx
│   │   └── page.tsx
│   ├── components/
│   │   ├── game/
│   │   │   ├── LootInventory/
│   │   │   │   ├── BlueprintsSection.tsx
│   │   │   │   ├── EquipmentItem.tsx
│   │   │   │   ├── EssenceItem.tsx
│   │   │   │   ├── MaterialItem.tsx
│   │   │   │   ├── icons.ts
│   │   │   │   └── types.ts
│   │   │   ├── crafting/
│   │   │   │   ├── EnchantmentDesigner/
│   │   │   │   │   ├── DesignForm.tsx
│   │   │   │   │   ├── EffectSelector.tsx
│   │   │   │   │   ├── EquipmentTypeSelector.tsx
│   │   │   │   │   ├── SavedDesigns.tsx
│   │   │   │   │   ├── types.ts
│   │   │   │   │   └── utils.ts
│   │   │   │   ├── EnchantmentApplier.tsx
│   │   │   │   ├── EnchantmentDesigner.tsx
│   │   │   │   ├── EnchantmentPreparer.tsx
│   │   │   │   ├── EquipmentCrafter.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── debug/
│   │   │   │   ├── AttunementDebug.tsx
│   │   │   │   ├── ElementDebug.tsx
│   │   │   │   ├── GameStateDebug.tsx
│   │   │   │   ├── GolemDebug.tsx
│   │   │   │   ├── PactDebug.tsx
│   │   │   │   ├── debug-context.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── shared/
│   │   │   ├── tabs/
│   │   │   │   ├── DebugTab/
│   │   │   │   │   ├── AchievementDebugSection.tsx
│   │   │   │   │   ├── AttunementDebugSection.tsx
│   │   │   │   │   ├── DisciplineDebugSection.tsx
│   │   │   │   │   ├── ElementDebugSection.tsx
│   │   │   │   │   ├── GameStateDebugSection.tsx
│   │   │   │   │   ├── GolemDebugSection.tsx
│   │   │   │   │   ├── PactDebugSection.tsx
│   │   │   │   │   └── SpireDebugSection.tsx
│   │   │   │   ├── EquipmentTab/
│   │   │   │   │   ├── EquipmentEffectsSummary.tsx
│   │   │   │   │   ├── EquipmentSlotGrid.tsx
│   │   │   │   │   └── InventoryList.tsx
│   │   │   │   ├── StatsTab/
│   │   │   │   │   ├── CombatStatsSection.tsx
│   │   │   │   │   ├── ElementStatsSection.tsx
│   │   │   │   │   ├── LoopStatsSection.tsx
│   │   │   │   │   ├── ManaStatsSection.tsx
│   │   │   │   │   ├── PactStatusSection.tsx
│   │   │   │   │   └── StudyStatsSection.tsx
│   │   │   │   ├── AchievementsTab.tsx
│   │   │   │   ├── ActivityLog.tsx
│   │   │   │   ├── AttunementsTab.test.ts
│   │   │   │   ├── AttunementsTab.tsx
│   │   │   │   ├── DebugTab.test.ts
│   │   │   │   ├── DebugTab.tsx
│   │   │   │   ├── DisciplinesTab.tsx
│   │   │   │   ├── EquipmentTab.test.ts
│   │   │   │   ├── EquipmentTab.tsx
│   │   │   │   ├── GolemancyTab.test.ts
│   │   │   │   ├── GolemancyTab.tsx
│   │   │   │   ├── GuardianPactsTab.test.ts
│   │   │   │   ├── GuardianPactsTab.tsx
│   │   │   │   ├── PrestigeTab.test.ts
│   │   │   │   ├── PrestigeTab.tsx
│   │   │   │   ├── SpellsTab.tsx
│   │   │   │   ├── SpireSummaryTab.test.ts
│   │   │   │   ├── SpireSummaryTab.tsx
│   │   │   │   ├── StatsTab.tsx
│   │   │   │   └── index.ts
│   │   │   ├── ActionButtons.tsx
│   │   │   ├── ActivityLogPanel.tsx
│   │   │   ├── AttunementStatus.tsx
│   │   │   ├── GameToast.tsx
│   │   │   ├── ManaDisplay.tsx
│   │   │   ├── TimeDisplay.tsx
│   │   │   ├── UpgradeDialog.tsx
│   │   │   ├── index.ts
│   │   │   └── types.ts
│   │   ├── ui/
│   │   │   ├── action-button.tsx
│   │   │   ├── alert-dialog.tsx
│   │   │   ├── badge.tsx
│   │   │   ├── button.tsx
│   │   │   ├── card.tsx
│   │   │   ├── dialog.tsx
│   │   │   ├── element-badge.tsx
│   │   │   ├── game-card.tsx
│   │   │   ├── index.ts
│   │   │   ├── input.tsx
│   │   │   ├── label.tsx
│   │   │   ├── mana-bar.tsx
│   │   │   ├── progress.tsx
│   │   │   ├── scroll-area.tsx
│   │   │   ├── section-header.tsx
│   │   │   ├── select.tsx
│   │   │   ├── separator.tsx
│   │   │   ├── sheet.tsx
│   │   │   ├── skeleton.tsx
│   │   │   ├── stat-row.tsx
│   │   │   ├── stepper.tsx
│   │   │   ├── switch.tsx
│   │   │   ├── tabs.tsx
│   │   │   ├── toast.tsx
│   │   │   ├── toaster.tsx
│   │   │   ├── toggle.tsx
│   │   │   ├── tooltip-info.tsx
│   │   │   ├── tooltip.tsx
│   │   │   └── value-display.tsx
│   │   └── ErrorBoundary.tsx
│   ├── hooks/
│   │   ├── use-mobile.ts
│   │   └── use-toast.ts
│   └── lib/
│       ├── game/
│       │   ├── __tests__/
│       │   │   ├── store-method-tests/
│       │   │   ├── achievements.test.ts
│       │   │   ├── bug-fixes.test.ts
│       │   │   ├── computed-stats.test.ts
│       │   │   └── regression-fixes.test.ts
│       │   ├── constants/
│       │   │   ├── spells-modules/
│       │   │   │   ├── advanced-spells.ts
│       │   │   │   ├── aoe-spells.ts
│       │   │   │   ├── basic-elemental-spells.ts
│       │   │   │   ├── compound-spells.ts
│       │   │   │   ├── enchantment-spells.ts
│       │   │   │   ├── legendary-spells.ts
│       │   │   │   ├── lightning-spells.ts
│       │   │   │   ├── master-spells.ts
│       │   │   │   ├── raw-spells.ts
│       │   │   │   └── utility-spells.ts
│       │   │   ├── core.ts
│       │   │   ├── elements.ts
│       │   │   ├── guardians.ts
│       │   │   ├── index.ts
│       │   │   ├── prestige.ts
│       │   │   ├── rooms.ts
│       │   │   └── spells.ts
│       │   ├── crafting-actions/
│       │   │   ├── application-actions.ts
│       │   │   ├── computed-getters.ts
│       │   │   ├── crafting-equipment-actions.ts
│       │   │   ├── design-actions.ts
│       │   │   ├── disenchant-actions.ts
│       │   │   ├── equipment-actions.ts
│       │   │   ├── index.ts
│       │   │   └── preparation-actions.ts
│       │   ├── data/
│       │   │   ├── disciplines/
│       │   │   │   ├── base.ts
│       │   │   │   ├── enchanter.ts
│       │   │   │   ├── fabricator.ts
│       │   │   │   ├── index.ts
│       │   │   │   └── invoker.ts
│       │   │   ├── enchantments/
│       │   │   │   ├── spell-effects/
│       │   │   │   │   ├── basic-spells.ts
│       │   │   │   │   ├── index.ts
│       │   │   │   │   ├── legendary-spells.ts
│       │   │   │   │   ├── lightning-spells.ts
│       │   │   │   │   ├── metal-spells.ts
│       │   │   │   │   ├── sand-spells.ts
│       │   │   │   │   ├── tier2-spells.ts
│       │   │   │   │   ├── tier3-spells.ts
│       │   │   │   │   └── types.ts
│       │   │   │   ├── combat-effects.ts
│       │   │   │   ├── defense-effects.ts
│       │   │   │   ├── elemental-effects.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── mana-effects.ts
│       │   │   │   ├── special-effects.ts
│       │   │   │   └── utility-effects.ts
│       │   │   ├── equipment/
│       │   │   │   ├── accessories.ts
│       │   │   │   ├── body.ts
│       │   │   │   ├── casters.ts
│       │   │   │   ├── catalysts.ts
│       │   │   │   ├── feet.ts
│       │   │   │   ├── hands.ts
│       │   │   │   ├── head.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── shields.ts
│       │   │   │   ├── swords.ts
│       │   │   │   ├── types.ts
│       │   │   │   └── utils.ts
│       │   │   ├── golems/
│       │   │   │   ├── base-golems.ts
│       │   │   │   ├── elemental-golems.ts
│       │   │   │   ├── hybrid-golems.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── types.ts
│       │   │   │   └── utils.ts
│       │   │   ├── achievements.ts
│       │   │   ├── attunements.ts
│       │   │   ├── crafting-recipes.ts
│       │   │   ├── enchantment-effects.ts
│       │   │   ├── enchantment-types.ts
│       │   │   └── loot-drops.ts
│       │   ├── effects/
│       │   │   ├── discipline-effects.ts
│       │   │   ├── dynamic-compute.ts
│       │   │   ├── special-effects.ts
│       │   │   ├── upgrade-effects.ts
│       │   │   └── upgrade-effects.types.ts
│       │   ├── hooks/
│       │   │   └── useGameDerived.ts
│       │   ├── stores/
│       │   │   ├── attunementStore.ts
│       │   │   ├── combat-actions.ts
│       │   │   ├── combat-state.types.ts
│       │   │   ├── combatStore.ts
│       │   │   ├── craftingStore.ts
│       │   │   ├── craftingStore.types.ts
│       │   │   ├── discipline-slice.ts
│       │   │   ├── gameActions.ts
│       │   │   ├── gameHooks.ts
│       │   │   ├── gameLoopActions.ts
│       │   │   ├── gameStore.ts
│       │   │   ├── index.ts
│       │   │   ├── manaStore.ts
│       │   │   ├── prestigeStore.ts
│       │   │   └── uiStore.ts
│       │   ├── types/
│       │   │   ├── attunements.ts
│       │   │   ├── disciplines.ts
│       │   │   ├── elements.ts
│       │   │   ├── equipment.ts
│       │   │   ├── equipmentSlot.ts
│       │   │   ├── game.ts
│       │   │   ├── index.ts
│       │   │   └── spells.ts
│       │   ├── utils/
│       │   │   ├── activity-log.ts
│       │   │   ├── combat-utils.ts
│       │   │   ├── discipline-math.ts
│       │   │   ├── enemy-utils.ts
│       │   │   ├── floor-utils.ts
│       │   │   ├── formatting.ts
│       │   │   ├── index.ts
│       │   │   ├── mana-utils.ts
│       │   │   ├── pact-utils.ts
│       │   │   └── room-utils.ts
│       │   ├── constants.ts
│       │   ├── crafting-apply.ts
│       │   ├── crafting-attunements.ts
│       │   ├── crafting-design.ts
│       │   ├── crafting-equipment.ts
│       │   ├── crafting-loot.ts
│       │   ├── crafting-prep.ts
│       │   ├── crafting-slice.ts
│       │   ├── crafting-utils.ts
│       │   ├── effects.ts
│       │   ├── store.ts
│       │   └── types.ts
│       └── utils.ts
├── test-results/
│   └── .last-run.json
├── .dockerignore
├── .gitignore
├── AGENTS.md
├── Caddyfile
├── Dockerfile
├── README.md
├── bun.lock
├── bunfig.toml
├── components.json
├── docker-compose.yml
├── eslint.config.mjs
├── next.config.ts
├── package-lock.json
├── package.json
├── playwright.config.ts
├── postcss.config.mjs
├── tailwind.config.ts
├── tsconfig.json
└── vitest.config.ts
