/* Floating number popups */
#popup-layer { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 100; }
.click-popup { position: absolute; color: var(--essence-cyan); font-family: var(--font-display); font-weight: 900; font-size: 1.5rem; text-shadow: 0 0 10px rgba(0,229,255,0.8), 0 4px 4px rgba(0,0,0,0.8); pointer-events: none; animation: floatUp 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; }
@keyframes floatUp { 0% { opacity: 1; transform: translateY(0) scale(0.5); } 20% { transform: translateY(-20px) scale(1.2); } 100% { opacity: 0; transform: translateY(-120px) scale(1); } }

/* Click particles */
#particle-layer { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 99; }
.click-particle { position: absolute; width: 6px; height: 6px; background: #fff; border-radius: 50%; pointer-events: none; box-shadow: 0 0 10px var(--essence-cyan), 0 0 20px var(--essence-cyan); animation: burstOut 0.8s cubic-bezier(0.1, 0.8, 0.3, 1) forwards; }
@keyframes burstOut { 0% { opacity: 1; transform: translate(0, 0) scale(1); } 100% { opacity: 0; transform: translate(var(--dx), var(--dy)) scale(0); } }

/* Toasts */
#toast-layer { position: fixed; bottom: var(--gap-xl); right: var(--gap-xl); display: flex; flex-direction: column; gap: var(--gap-md); z-index: 2000; pointer-events: none; }
.toast { background: rgba(10, 11, 20, 0.9); border: 1px solid var(--border-subtle); border-left: 6px solid var(--essence-cyan); border-radius: var(--radius-md); padding: var(--gap-lg); color: #fff; min-width: 300px; box-shadow: 0 15px 30px rgba(0,0,0,0.6); pointer-events: auto; animation: toastIn 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), toastOut 0.4s ease 4s forwards; backdrop-filter: blur(10px); font-weight: 600; font-size: 1rem; }
.toast.achievement { border-left-color: var(--golden-amber); box-shadow: 0 15px 30px rgba(0,0,0,0.6), 0 0 20px rgba(255, 179, 0, 0.2); }
.toast.golden { border-left-color: var(--golden-amber); }
.toast.save { border-left-color: var(--success-green); }
@keyframes toastIn { from { transform: translateX(120%) scale(0.9); opacity: 0; } to { transform: translateX(0) scale(1); opacity: 1; } }
@keyframes toastOut { from { transform: translateX(0); opacity: 1; } to { transform: translateX(120%); opacity: 0; } }

/* Golden Orb */
#golden-orb-layer { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 150; }
.golden-orb { position: absolute; width: 60px; height: 60px; background: radial-gradient(circle at 30% 30%, #fff 0%, var(--golden-amber) 70%, #ff8f00 100%); border-radius: 50%; box-shadow: 0 0 30px var(--golden-amber), inset 0 -5px 15px rgba(0,0,0,0.4); cursor: pointer; pointer-events: auto; z-index: 151; animation: goldenFloat 3s ease-in-out infinite, goldenGlow 1.5s ease-in-out infinite; transition: transform 0.2s; }
.golden-orb:hover { transform: scale(1.1); }
@keyframes goldenFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-30px); } }
@keyframes goldenGlow { 0%, 100% { box-shadow: 0 0 30px var(--golden-amber); } 50% { box-shadow: 0 0 60px #ffc107; } }

/* Screen Flash & Shake */
#screen-flash { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 3000; opacity: 0; background: white; }
.screen-flash.active { animation: flashBurst 0.8s cubic-bezier(0.1, 0.8, 0.3, 1) forwards; mix-blend-mode: overlay; }
@keyframes flashBurst { 0% { opacity: 0.9; } 100% { opacity: 0; } }

.screen-shake { animation: shake 0.3s cubic-bezier(.36,.07,.19,.97) both; }
@keyframes shake { 10%, 90% { transform: translate3d(-4px, 2px, 0) rotate(-1deg); } 20%, 80% { transform: translate3d(8px, -4px, 0) rotate(2deg); } 30%, 50%, 70% { transform: translate3d(-10px, 6px, 0) rotate(-2deg); } 40%, 60% { transform: translate3d(10px, -6px, 0) rotate(2deg); } }

/* Orbitals */
#orbital-layer { position: absolute; top: 50%; left: 50%; width: 0; height: 0; pointer-events: none; z-index: 1; }
.orbital-particle { position: absolute; width: 8px; height: 8px; background: #fff; border-radius: 50%; box-shadow: 0 0 10px var(--essence-cyan), 0 0 20px var(--essence-cyan); top: -4px; left: -4px; filter: brightness(1.5); }

/* Autosave indicator */
#autosave-indicator { transition: opacity 0.3s ease; opacity: 0; background: rgba(0,230,118,0.1); color: var(--success-green); padding: 4px 12px; border-radius: var(--radius-full); font-weight: bold; }
#autosave-indicator.active { opacity: 1; }
