Mana-Loop/
├── .gitea/
│   └── workflows/
│       └── docker-build.yaml
├── .husky/
│   ├── scripts/
│   │   ├── check-file-size.js
│   │   ├── generate-dependency-graph.js
│   │   ├── generate-project-tree.js
│   │   └── run-tests.sh
│   ├── post-merge
│   └── pre-commit
├── docs/
│   ├── specs/
│   │   ├── attunements/
│   │   │   ├── enchanter/
│   │   │   │   ├── systems/
│   │   │   │   │   ├── enchanting-spec.md
│   │   │   │   │   ├── room-enchantments-spec.md
│   │   │   │   │   └── transference-channel-spec.md
│   │   │   │   └── enchanter-spec.md
│   │   │   ├── fabricator/
│   │   │   │   ├── systems/
│   │   │   │   │   ├── golemancy-spec.md
│   │   │   │   │   └── item-fabrication-spec.md
│   │   │   │   └── fabricator-spec.md
│   │   │   ├── invoker/
│   │   │   │   ├── systems/
│   │   │   │   │   ├── invocation-system-spec.md
│   │   │   │   │   └── pact-system-spec.md
│   │   │   │   └── invoker-spec.md
│   │   │   └── attunement-system-spec.md
│   │   ├── mana-conversion-spec.md
│   │   ├── spire-climbing-spec.md
│   │   └── spire-combat-spec.md
│   ├── GAME_BRIEFING.md
│   ├── circular-deps.txt
│   ├── dependency-graph.json
│   └── project-structure.txt
├── e2e/
│   ├── combat-happy-path.spec.ts
│   ├── enchanter-happy-path.spec.ts
│   ├── fabricator-happy-path.spec.ts
│   ├── playtest-basic-ui.spec.ts
│   ├── playtest-debug.spec.ts
│   └── playtest-tabs.spec.ts
├── 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
│   │   │   │   ├── 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
│   │   │   ├── tabs/
│   │   │   │   ├── CraftingTab/
│   │   │   │   │   ├── EnchanterSubTab.tsx
│   │   │   │   │   ├── FabricatorSubTab.tsx
│   │   │   │   │   └── MaterialRecipeCard.tsx
│   │   │   │   ├── DebugTab/
│   │   │   │   │   ├── AchievementDebugSection.tsx
│   │   │   │   │   ├── AttunementDebugSection.tsx
│   │   │   │   │   ├── DisciplineDebugSection.tsx
│   │   │   │   │   ├── ElementDebugSection.tsx
│   │   │   │   │   ├── GameStateDebugSection.tsx
│   │   │   │   │   ├── GolemDebugSection.tsx
│   │   │   │   │   ├── PactDebugSection.tsx
│   │   │   │   │   └── SpireDebugSection.tsx
│   │   │   │   ├── EquipmentTab/
│   │   │   │   │   ├── EquipmentEffectsSummary.tsx
│   │   │   │   │   ├── EquipmentSlotGrid.test.ts
│   │   │   │   │   ├── EquipmentSlotGrid.tsx
│   │   │   │   │   └── InventoryList.tsx
│   │   │   │   ├── SpireCombatPage/
│   │   │   │   │   ├── RoomDisplay.tsx
│   │   │   │   │   ├── SpireActivityLog.tsx
│   │   │   │   │   ├── SpireCombatControls.tsx
│   │   │   │   │   ├── SpireCombatPage.tsx
│   │   │   │   │   ├── SpireHeader.tsx
│   │   │   │   │   ├── SpireManaDisplay.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── StatsTab/
│   │   │   │   │   ├── CombatStatsSection.tsx
│   │   │   │   │   ├── DisciplineStatsSection.tsx
│   │   │   │   │   ├── ElementStatsSection.tsx
│   │   │   │   │   ├── LoopStatsSection.tsx
│   │   │   │   │   ├── ManaStatsSection.tsx
│   │   │   │   │   ├── PactStatusSection.tsx
│   │   │   │   │   └── StudyStatsSection.tsx
│   │   │   │   ├── golemancy/
│   │   │   │   │   ├── ActiveGolemsPanel.tsx
│   │   │   │   │   ├── GolemDesignBuilder.tsx
│   │   │   │   │   ├── GolemLoadoutPanel.tsx
│   │   │   │   │   ├── GolemancyComponents.test.ts
│   │   │   │   │   ├── GolemancySharedComponents.tsx
│   │   │   │   │   ├── golemancy-components.test.ts
│   │   │   │   │   ├── golemancy-utils.test.ts
│   │   │   │   │   ├── golemancy-utils.ts
│   │   │   │   │   └── types.ts
│   │   │   │   ├── AchievementsTab.tsx
│   │   │   │   ├── ActivityLog.tsx
│   │   │   │   ├── AttunementsTab.test.ts
│   │   │   │   ├── AttunementsTab.tsx
│   │   │   │   ├── CraftingTab.test.ts
│   │   │   │   ├── CraftingTab.tsx
│   │   │   │   ├── DebugTab.test.ts
│   │   │   │   ├── DebugTab.tsx
│   │   │   │   ├── DisciplineCard.tsx
│   │   │   │   ├── DisciplinesTab.tsx
│   │   │   │   ├── ElementalSubtab.tsx
│   │   │   │   ├── EquipmentTab.test.ts
│   │   │   │   ├── EquipmentTab.tsx
│   │   │   │   ├── GolemancyTab.tsx
│   │   │   │   ├── GuardianPactsTab.test.ts
│   │   │   │   ├── GuardianPactsTab.tsx
│   │   │   │   ├── PrestigeTab.test.ts
│   │   │   │   ├── PrestigeTab.tsx
│   │   │   │   ├── SpireSummaryTab.helpers.tsx
│   │   │   │   ├── SpireSummaryTab.test.ts
│   │   │   │   ├── SpireSummaryTab.tsx
│   │   │   │   ├── StatsTab.tsx
│   │   │   │   ├── disciplines-utils.ts
│   │   │   │   ├── guardian-pacts-components.tsx
│   │   │   │   └── index.ts
│   │   │   ├── ActionButtons.tsx
│   │   │   ├── ActivityLogPanel.tsx
│   │   │   ├── GameToast.tsx
│   │   │   ├── ManaDisplay.tsx
│   │   │   ├── TimeDisplay.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
│   │   │   ├── ui-components.test.tsx
│   │   │   └── value-display.tsx
│   │   └── ErrorBoundary.tsx
│   ├── hooks/
│   │   ├── use-mobile.ts
│   │   └── use-toast.ts
│   ├── lib/
│   │   ├── game/
│   │   │   ├── __tests__/
│   │   │   │   ├── achievements.test.ts
│   │   │   │   ├── activity-log.test.ts
│   │   │   │   ├── attunement-conversion-fix.test.ts
│   │   │   │   ├── bug-352-golem-mana-wipe.test.ts
│   │   │   │   ├── bug-353-preparation-mana.test.ts
│   │   │   │   ├── bug-354-unlock-attunement.test.ts
│   │   │   │   ├── bug-377-mana-auto-unlock.test.ts
│   │   │   │   ├── bug-fixes.test.ts
│   │   │   │   ├── combat-actions.test.ts
│   │   │   │   ├── combat-reset-channel-stats.test.ts
│   │   │   │   ├── combat-utils.test.ts
│   │   │   │   ├── computed-stats.test.ts
│   │   │   │   ├── conversion-pause-bug-regression.test.ts
│   │   │   │   ├── crafting-utils-basic.test.ts
│   │   │   │   ├── crafting-utils-equipment.test.ts
│   │   │   │   ├── crafting-utils-recipe.test.ts
│   │   │   │   ├── crafting-utils-time.test.ts
│   │   │   │   ├── cross-module-combat-meditation.test.ts
│   │   │   │   ├── cross-module-helpers.ts
│   │   │   │   ├── cross-module-lifecycle-consistency.test.ts
│   │   │   │   ├── cross-module-prestige-discipline.test.ts
│   │   │   │   ├── curse-amplification.test.ts
│   │   │   │   ├── day30-blank-page.test.ts
│   │   │   │   ├── design-validation-perk-gating.test.ts
│   │   │   │   ├── discipline-deactivate-on-spire-entry.test.ts
│   │   │   │   ├── discipline-effects-reactivity.test.ts
│   │   │   │   ├── discipline-math.test.ts
│   │   │   │   ├── discipline-prerequisites.test.ts
│   │   │   │   ├── discipline-reactivate-bug.test.ts
│   │   │   │   ├── earth-desync.test.ts
│   │   │   │   ├── enemy-barrier-utils.test.ts
│   │   │   │   ├── enemy-defenses.test.ts
│   │   │   │   ├── enemy-generator.test.ts
│   │   │   │   ├── enemy-utils.test.ts
│   │   │   │   ├── floor-utils.test.ts
│   │   │   │   ├── floor-utils.upgraded.test.ts
│   │   │   │   ├── formatting.test.ts
│   │   │   │   ├── guardian-names-unique.test.ts
│   │   │   │   ├── guardian-names.test.ts
│   │   │   │   ├── hasty-enchanter.test.ts
│   │   │   │   ├── invocation-system.test.ts
│   │   │   │   ├── mana-conversion-component-deduction.test.ts
│   │   │   │   ├── mana-utils.test.ts
│   │   │   │   ├── melee-auto-attack.test.ts
│   │   │   │   ├── melee-defense-bypass.test.ts
│   │   │   │   ├── non-combat-room-reward-guards.test.ts
│   │   │   │   ├── pact-utils.test.ts
│   │   │   │   ├── paused-conversion-dedup.test.ts
│   │   │   │   ├── persistence.test.ts
│   │   │   │   ├── regression-fixes.test.ts
│   │   │   │   ├── reset-game-comprehensive.test.ts
│   │   │   │   ├── room-enchantments.test.ts
│   │   │   │   ├── room-utils-floor-state.test.ts
│   │   │   │   ├── room-utils.test.ts
│   │   │   │   ├── spell-cast-floorhp-guard.test.ts
│   │   │   │   ├── spire-utils.test.ts
│   │   │   │   ├── store-actions-combat-prestige.test.ts
│   │   │   │   ├── store-actions-discipline.test.ts
│   │   │   │   ├── store-actions-mana.test.ts
│   │   │   │   ├── store-actions.test.ts
│   │   │   │   ├── tick-integration.test.ts
│   │   │   │   └── unlock-base-elements.test.ts
│   │   │   ├── constants/
│   │   │   │   ├── spells-modules/
│   │   │   │   │   ├── advanced-spells.ts
│   │   │   │   │   ├── aoe-spells.ts
│   │   │   │   │   ├── basic-elemental-spells.ts
│   │   │   │   │   ├── blackflame-spells.ts
│   │   │   │   │   ├── compound-spells.ts
│   │   │   │   │   ├── enchantment-spells.ts
│   │   │   │   │   ├── frost-spells.ts
│   │   │   │   │   ├── legendary-spells.ts
│   │   │   │   │   ├── lightning-spells.ts
│   │   │   │   │   ├── master-spells.ts
│   │   │   │   │   ├── miasma-spells.ts
│   │   │   │   │   ├── plasma-spells.ts
│   │   │   │   │   ├── radiantflames-spells.ts
│   │   │   │   │   ├── raw-spells.ts
│   │   │   │   │   ├── shadowglass-spells.ts
│   │   │   │   │   ├── soul-spells.ts
│   │   │   │   │   ├── time-spells.ts
│   │   │   │   │   └── utility-spells.ts
│   │   │   │   ├── core.ts
│   │   │   │   ├── elements.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── prestige.ts
│   │   │   │   ├── rooms.ts
│   │   │   │   └── spells.ts
│   │   │   ├── crafting-actions/
│   │   │   │   ├── application-actions.ts
│   │   │   │   ├── computed-getters.ts
│   │   │   │   ├── crafting-equipment-actions.ts
│   │   │   │   ├── crafting-material-actions.ts
│   │   │   │   ├── design-actions.ts
│   │   │   │   ├── equipment-actions.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── preparation-actions.ts
│   │   │   ├── data/
│   │   │   │   ├── disciplines/
│   │   │   │   │   ├── base.ts
│   │   │   │   │   ├── elemental-regen-advanced.ts
│   │   │   │   │   ├── elemental-regen.ts
│   │   │   │   │   ├── elemental.ts
│   │   │   │   │   ├── enchanter-combat.ts
│   │   │   │   │   ├── enchanter-special.ts
│   │   │   │   │   ├── enchanter-spells.ts
│   │   │   │   │   ├── enchanter-utility.ts
│   │   │   │   │   ├── enchanter.ts
│   │   │   │   │   ├── fabricator.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── invoker.ts
│   │   │   │   ├── enchantments/
│   │   │   │   │   ├── spell-effects/
│   │   │   │   │   │   ├── basic-spells.ts
│   │   │   │   │   │   ├── blackflame-spells.ts
│   │   │   │   │   │   ├── exotic-new-spells.ts
│   │   │   │   │   │   ├── frost-spells.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── legendary-spells.ts
│   │   │   │   │   │   ├── lightning-spells.ts
│   │   │   │   │   │   ├── metal-spells.ts
│   │   │   │   │   │   ├── miasma-spells.ts
│   │   │   │   │   │   ├── radiantflames-spells.ts
│   │   │   │   │   │   ├── sand-spells.ts
│   │   │   │   │   │   ├── shadowglass-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
│   │   │   │   │   ├── equipment-types-data.ts
│   │   │   │   │   ├── feet.ts
│   │   │   │   │   ├── hands.ts
│   │   │   │   │   ├── head.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── swords.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   └── utils.ts
│   │   │   │   ├── golems/
│   │   │   │   │   ├── cores.ts
│   │   │   │   │   ├── frames.ts
│   │   │   │   │   ├── golemEnchantments.ts
│   │   │   │   │   ├── golemancy-data.test.ts
│   │   │   │   │   ├── golems-data.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── mindCircuits.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   └── utils.ts
│   │   │   │   ├── achievements.ts
│   │   │   │   ├── attunements.ts
│   │   │   │   ├── conversion-costs.ts
│   │   │   │   ├── crafting-recipes.ts
│   │   │   │   ├── enchantment-effects.ts
│   │   │   │   ├── enchantment-types.ts
│   │   │   │   ├── fabricator-material-recipes.ts
│   │   │   │   ├── fabricator-physical-recipes.ts
│   │   │   │   ├── fabricator-recipe-types.ts
│   │   │   │   ├── fabricator-recipes.ts
│   │   │   │   ├── fabricator-wizard-recipes.ts
│   │   │   │   ├── guardian-data.ts
│   │   │   │   ├── guardian-encounters.ts
│   │   │   │   ├── guardian-procedural.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/
│   │   │   │   ├── pipelines/
│   │   │   │   │   ├── combat-tick.ts
│   │   │   │   │   ├── enchanting-tick.ts
│   │   │   │   │   ├── equipment-crafting.ts
│   │   │   │   │   ├── golem-combat.ts
│   │   │   │   │   └── pact-ritual.ts
│   │   │   │   ├── attunementStore.ts
│   │   │   │   ├── combat-actions.ts
│   │   │   │   ├── combat-channel-actions.ts
│   │   │   │   ├── combat-channel.ts
│   │   │   │   ├── combat-damage.ts
│   │   │   │   ├── combat-descent-actions.ts
│   │   │   │   ├── combat-invocation.ts
│   │   │   │   ├── combat-melee.ts
│   │   │   │   ├── combat-reset.ts
│   │   │   │   ├── combat-room-enchantments.ts
│   │   │   │   ├── combat-state.types.ts
│   │   │   │   ├── combatStore.ts
│   │   │   │   ├── crafting-equipment-tick.ts
│   │   │   │   ├── crafting-initial-state.ts
│   │   │   │   ├── craftingStore.ts
│   │   │   │   ├── craftingStore.types.ts
│   │   │   │   ├── debugBridge.ts
│   │   │   │   ├── discipline-slice.ts
│   │   │   │   ├── dot-runtime.ts
│   │   │   │   ├── gameActions.ts
│   │   │   │   ├── gameHooks.ts
│   │   │   │   ├── gameLoopActions.ts
│   │   │   │   ├── gameStore.ts
│   │   │   │   ├── gameStore.types.ts
│   │   │   │   ├── golem-combat-actions.test.ts
│   │   │   │   ├── golem-combat-actions.ts
│   │   │   │   ├── golem-combat-helpers.test.ts
│   │   │   │   ├── golem-combat-helpers.ts
│   │   │   │   ├── golem-combat-maintenance.test.ts
│   │   │   │   ├── golemancy-actions.ts
│   │   │   │   ├── golemancy-combat.test.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── manaStore.ts
│   │   │   │   ├── non-combat-room-actions.ts
│   │   │   │   ├── prestigeStore.ts
│   │   │   │   ├── tick-pipeline.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
│   │   │   │   ├── conversion-params.ts
│   │   │   │   ├── conversion-rates.ts
│   │   │   │   ├── discipline-math.ts
│   │   │   │   ├── element-cap-bonus.ts
│   │   │   │   ├── element-distance.ts
│   │   │   │   ├── enemy-generator.ts
│   │   │   │   ├── enemy-utils.ts
│   │   │   │   ├── floor-utils.ts
│   │   │   │   ├── formatting.ts
│   │   │   │   ├── guardian-utils.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── invocation-utils.ts
│   │   │   │   ├── mana-utils.ts
│   │   │   │   ├── pact-utils.ts
│   │   │   │   ├── result.ts
│   │   │   │   ├── room-enchantments-utils.ts
│   │   │   │   ├── room-utils.ts
│   │   │   │   ├── safe-persist.ts
│   │   │   │   └── spire-utils.ts
│   │   │   ├── constants.ts
│   │   │   ├── crafting-apply.ts
│   │   │   ├── crafting-attunements.ts
│   │   │   ├── crafting-design.ts
│   │   │   ├── crafting-equipment.ts
│   │   │   ├── crafting-fabricator.ts
│   │   │   ├── crafting-loot.ts
│   │   │   ├── crafting-prep.ts
│   │   │   ├── crafting-utils.ts
│   │   │   ├── effects.ts
│   │   │   └── types.ts
│   │   └── utils.ts
│   └── test/
│       └── setup.ts
├── .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
├── scorecard.png
├── tailwind.config.ts
├── tsconfig.json
└── vitest.config.ts
