Aka Altar Ego Site
@media (max-width: 550px) .altar padding: 1rem; .ego-grid grid-template-columns: 1fr 1fr; .flame-btn width: 100px; height: 100px; </style> </head> <body> <div class="altar"> <div class="altar-header"> <h1>✦ AKA ALTAR EGO ✦</h1> <p>offer essence · awaken the selves within</p> </div>
// tiny floating effect (simple) function playFloatingText(msg) const flame = document.getElementById("clickFlame"); const span = document.createElement("div"); span.innerText = msg; span.style.position = "fixed"; span.style.left = "50%"; span.style.bottom = "40%"; span.style.transform = "translateX(-50%)"; span.style.background = "#000000aa"; span.style.color = "#ffd58c"; span.style.padding = "6px 16px"; span.style.borderRadius = "40px"; span.style.fontSize = "0.9rem"; span.style.backdropFilter = "blur(8px)"; span.style.zIndex = "999"; span.style.pointerEvents = "none"; span.style.transition = "opacity 1s ease, transform 0.8s"; document.body.appendChild(span); setTimeout(() => span.style.opacity = "0"; span.style.transform = "translateX(-50%) translateY(-40px)"; setTimeout(() => span.remove(), 1000); , 50);
function attemptUnlockEgo(egoId) ego.unlocked) return; const discountedCost = getDiscountedCost(ego.cost); if (essence >= discountedCost) essence -= discountedCost; ego.unlocked = true; refreshGlobalBonuses(); renderEgoCards(); updateEssenceUI(); saveGame(); // extra feedback playFloatingText(`✨ $ego.name awakens! ✨`); else playFloatingText(`⛔ not enough essence... need $discountedCost`); aka altar ego
// event binding function bindEvents() const flame = document.getElementById("clickFlame"); if (flame) flame.addEventListener("click", handleClick); const resetBtn = document.getElementById("resetBtn"); if (resetBtn) resetBtn.addEventListener("click", resetGame);
<div class="stats-panel"> <div class="stat">⚡ per click: <strong id="clickPowerStat">1</strong></div> <div class="stat">🌀 passive/sec: <strong id="autoStat">0</strong></div> <div class="stat">✨ crit chance: <strong id="critStat">0%</strong></div> <button class="reset-btn" id="resetBtn">⟳ reset ego</button> </div> <footer>the altar remembers you — each ego is a mirror</footer> </div> @media (max-width: 550px)
// Helper to compute effective cost for an ego function getDiscountedCost(originalCost) if (discountPercent <= 0) return originalCost; let discount = Math.floor(originalCost * (discountPercent / 100)); let finalCost = originalCost - discount; return Math.max(1, finalCost);
// Save & Load function saveGame() const saveData = essence: essence, egosUnlocked: EGOS.map(e => ( id: e.id, unlocked: e.unlocked )), version: 1 ; localStorage.setItem("akaAltarEgoSave", JSON.stringify(saveData)); @media (max-width: 550px) .altar padding: 1rem
/* Header */ .altar-header text-align: center; margin-bottom: 1.8rem; .altar-header h1 font-size: 2.6rem; letter-spacing: 3px; background: linear-gradient(135deg, #f5e7c8, #e0b07f, #c97e5a); background-clip: text; -webkit-background-clip: text; color: transparent; text-shadow: 0 0 5px rgba(0,0,0,0.3); .altar-header p color: #b9b3b0; font-style: italic; font-size: 0.9rem;