/* ✨ AZIZA LAMP GIFT & GENIE SYSTEM CSS ✨ */ /* Pixel Art Genie Images */ .genie-image { width: 120px; height: 120px; image-rendering: pixelated; image-rendering: crisp-edges; transition: all 0.3s ease; filter: drop-shadow(0 0 20px rgba(102, 122, 234, 0.6)); } .genie-image.large { width: 200px; height: 200px; } .genie-image.floating { animation: genie-float 3s ease-in-out infinite; } .genie-image.talking { animation: genie-talk 1s ease-in-out infinite; } .genie-image.laughing { animation: genie-laugh 0.8s ease-in-out infinite; filter: drop-shadow(0 0 30px rgba(255, 215, 0, 0.8)); } @keyframes genie-talk { 0%, 100% { transform: translateY(0px) scale(1); filter: drop-shadow(0 0 20px rgba(102, 122, 234, 0.6)); } 50% { transform: translateY(-8px) scale(1.05); filter: drop-shadow(0 0 25px rgba(102, 122, 234, 0.8)); } } @keyframes genie-laugh { 0%, 100% { transform: translateY(0px) scale(1) rotate(0deg); filter: drop-shadow(0 0 30px rgba(255, 215, 0, 0.8)); } 25% { transform: translateY(-5px) scale(1.05) rotate(-2deg); filter: drop-shadow(0 0 35px rgba(255, 215, 0, 1)); } 75% { transform: translateY(-3px) scale(1.03) rotate(2deg); filter: drop-shadow(0 0 35px rgba(255, 215, 0, 1)); } } .lamp-image { width: 80px; height: 80px; image-rendering: pixelated; image-rendering: crisp-edges; transition: all 0.3s ease; cursor: pointer; } .lamp-image:hover { transform: scale(1.1); filter: drop-shadow(0 0 25px rgba(255, 215, 0, 0.8)); } .lamp-image.rubbing { animation: lamp-rubbing 0.3s ease-in-out infinite; } /* Lamp Gift Modal */ .aziza-lamp-gift-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.9); z-index: 10000; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.5s ease; } .aziza-lamp-gift-modal.show { opacity: 1; } .gift-container { background: linear-gradient(135deg, #1a1a2e, #16213e); border-radius: 20px; padding: 40px; max-width: 800px; width: 90%; border: 2px solid #667aea; box-shadow: 0 20px 40px rgba(102, 122, 234, 0.3); animation: giftGlow 3s ease-in-out infinite alternate; } @keyframes giftGlow { 0% { box-shadow: 0 20px 40px rgba(102, 122, 234, 0.3); } 100% { box-shadow: 0 20px 60px rgba(102, 122, 234, 0.6); } } .aziza-section { display: flex; align-items: center; gap: 20px; margin-bottom: 30px; } .aziza-gift-image { width: 120px; height: 120px; border-radius: 50%; border: 3px solid #667aea; } .speech-bubble { background: rgba(102, 122, 234, 0.2); border-radius: 15px; padding: 15px; border-left: 4px solid #667aea; font-style: italic; color: #e2e8f0; } .lamp-gift-presentation { text-align: center; } .ascii-lamp-container { position: relative; margin: 20px 0; } .ascii-lamp { color: #ffd700; font-size: 0.8em; text-shadow: 0 0 10px #ffd700; animation: lampFlicker 2s ease-in-out infinite; } @keyframes lampFlicker { 0%, 100% { text-shadow: 0 0 10px #ffd700; } 50% { text-shadow: 0 0 20px #ffd700, 0 0 30px #ffa500; } } .gift-text h2 { color: #ffd700; margin: 20px 0; text-shadow: 0 0 10px rgba(255, 215, 0, 0.5); } .gift-description, .gift-instructions { color: #cbd5e0; line-height: 1.6; margin: 15px 0; } .accept-gift-btn { background: linear-gradient(135deg, #667aea, #764ba2); color: white; border: none; padding: 15px 30px; border-radius: 25px; font-size: 1.1em; cursor: pointer; transition: all 0.3s ease; margin-top: 20px; } .accept-gift-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(102, 122, 234, 0.4); } /* Mystical Lamp Link */ .mystical-lamp-link { background: rgba(0, 0, 0, 0.8); border-radius: 25px; padding: 10px 20px; border: 2px solid #ffd700; box-shadow: 0 0 20px rgba(255, 215, 0, 0.3); animation: subtle-pulse 3s ease-in-out infinite; } @keyframes subtle-pulse { 0%, 100% { box-shadow: 0 0 20px rgba(255, 215, 0, 0.3); } 50% { box-shadow: 0 0 30px rgba(255, 215, 0, 0.5); } } .lamp-link-container { display: flex; align-items: center; gap: 10px; color: #ffd700; font-weight: 500; } .lamp-icon { font-size: 1.5em; animation: gentle-flicker 4s ease-in-out infinite; } @keyframes gentle-flicker { 0%, 100% { opacity: 0.8; } 50% { opacity: 1; } } /* Cave Interface */ .mystical-cave-interface { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(180deg, #0f0f23, #1a1a2e, #0f0f23); z-index: 10000; opacity: 0; transition: opacity 0.5s ease; } .mystical-cave-interface.show { opacity: 1; } .mystical-cave-interface.closing { opacity: 0; } .cave-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; cursor: pointer; } .cave-environment { position: relative; width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px; } .cave-ascii-art { margin-bottom: 30px; } .cave-walls { color: #4a5568; font-size: 0.7em; text-shadow: 0 0 5px rgba(74, 85, 104, 0.5); animation: cave-ambience 6s ease-in-out infinite; } @keyframes cave-ambience { 0%, 100% { text-shadow: 0 0 5px rgba(74, 85, 104, 0.5); } 50% { text-shadow: 0 0 10px rgba(74, 85, 104, 0.8); } } .lamp-pedestal-area { text-align: center; position: relative; } .pedestal-ascii { margin-bottom: 20px; } .pedestal-ascii pre { color: #8b7355; font-size: 0.9em; text-shadow: 0 0 5px rgba(139, 115, 85, 0.3); } .lamp-interactive { position: relative; cursor: pointer; font-size: 3em; margin: 20px; transition: all 0.3s ease; z-index: 10001; } .lamp-interactive:hover { transform: scale(1.1); } .lamp-interactive.rubbing { animation: lamp-rubbing 0.2s ease-in-out infinite; } @keyframes lamp-rubbing { 0%, 100% { transform: rotate(-2deg) scale(1.05); } 50% { transform: rotate(2deg) scale(1.1); } } .lamp-glow-ring { position: absolute; top: -20px; left: -20px; right: -20px; bottom: -20px; border: 2px solid #ffd700; border-radius: 50%; opacity: 0.3; animation: glow-pulse 2s ease-in-out infinite; } @keyframes glow-pulse { 0%, 100% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.1); } } .lamp-flame { position: absolute; top: -15px; left: 50%; transform: translateX(-50%); font-size: 0.5em; animation: flame-dance 1s ease-in-out infinite; } @keyframes flame-dance { 0%, 100% { transform: translateX(-50%) rotate(-2deg); } 25% { transform: translateX(-50%) rotate(2deg); } 75% { transform: translateX(-50%) rotate(-1deg); } } .cave-instructions { margin-top: 40px; text-align: center; max-width: 500px; } .instruction-text { color: #e2e8f0; font-size: 1.2em; margin-bottom: 10px; font-style: italic; } .action-text { color: #ffd700; font-weight: 600; margin-bottom: 20px; } .exit-hint { color: #a0aec0; font-size: 0.9em; opacity: 0.7; } .cave-ambience { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; } .floating-sparkle { position: absolute; color: #ffd700; font-size: 1.5em; opacity: 0.6; animation: float-sparkle 8s ease-in-out infinite; } .floating-sparkle:nth-child(1) { top: 20%; left: 10%; animation-delay: 0s; } .floating-sparkle:nth-child(2) { top: 60%; right: 15%; animation-delay: 2s; } .floating-sparkle:nth-child(3) { bottom: 30%; left: 20%; animation-delay: 4s; } @keyframes float-sparkle { 0%, 100% { transform: translateY(0px) rotate(0deg); opacity: 0.6; } 50% { transform: translateY(-20px) rotate(180deg); opacity: 1; } } /* Genie Summoning Effects */ .genie-summoning-effect { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 10002; } .summoning-smoke { color: #a0aec0; font-size: 0.8em; animation: smoke-rise 3s ease-out; } @keyframes smoke-rise { 0% { opacity: 0; transform: translateY(20px); } 50% { opacity: 1; transform: translateY(-10px); } 100% { opacity: 0.3; transform: translateY(-30px); } } .genie-ascii pre { color: #667aea; font-size: 1em; text-shadow: 0 0 20px rgba(102, 122, 234, 0.8); animation: genie-appear 2s ease-out 1s; } @keyframes genie-appear { 0% { opacity: 0; transform: scale(0.5); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 1; transform: scale(1); } } .genie-voice-effect { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .voice-wave { position: absolute; width: 60px; height: 60px; border: 2px solid #667aea; border-radius: 50%; opacity: 0; animation: voice-ripple 2s ease-out infinite; } .voice-wave:nth-child(1) { animation-delay: 0s; } .voice-wave:nth-child(2) { animation-delay: 0.5s; } .voice-wave:nth-child(3) { animation-delay: 1s; } @keyframes voice-ripple { 0% { opacity: 1; transform: translate(-50%, -50%) scale(0); } 100% { opacity: 0; transform: translate(-50%, -50%) scale(3); } } /* Genie Spirit Interface */ .genie-spirit-interface { position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.5s ease; z-index: 10003; } .genie-spirit-interface.show { opacity: 1; } .genie-spirit-interface.returning { opacity: 0; transform: scale(0.8); transition: all 1s ease; } .genie-presence { background: rgba(0, 0, 0, 0.8); border-radius: 20px; padding: 40px; max-width: 800px; width: 90%; border: 3px solid #667aea; box-shadow: 0 0 50px rgba(102, 122, 234, 0.5); } .genie-avatar { text-align: center; margin-bottom: 30px; position: relative; } .genie-spirit { font-size: 4em; animation: genie-float 3s ease-in-out infinite; } @keyframes genie-float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-10px); } } .spirit-aura { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 150px; height: 150px; border: 2px solid #667aea; border-radius: 50%; opacity: 0.3; animation: aura-pulse 4s ease-in-out infinite; } @keyframes aura-pulse { 0%, 100% { opacity: 0.3; transform: translate(-50%, -50%) scale(1); } 50% { opacity: 0.6; transform: translate(-50%, -50%) scale(1.2); } } .dialogue-frame { margin-bottom: 30px; } .dialogue-border { color: #667aea; font-size: 0.7em; line-height: 1.2; background: rgba(102, 122, 234, 0.1); padding: 20px; border-radius: 10px; } #genieMessage { color: #e2e8f0; font-size: 1.1em; line-height: 1.5; } .genie-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; margin-bottom: 30px; } .genie-option { background: linear-gradient(135deg, #4c51bf, #667aea); color: white; border: none; padding: 15px 20px; border-radius: 15px; cursor: pointer; transition: all 0.3s ease; font-size: 0.9em; } .genie-option:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(102, 122, 234, 0.3); } .return-section { text-align: center; border-top: 1px solid rgba(102, 122, 234, 0.3); padding-top: 20px; } .return-spirit { background: linear-gradient(135deg, #805ad5, #9f7aea); color: white; border: none; padding: 12px 25px; border-radius: 20px; cursor: pointer; transition: all 0.3s ease; margin-bottom: 10px; } .return-spirit:hover { transform: translateY(-2px); box-shadow: 0 8px 16px rgba(128, 90, 213, 0.3); } .return-note { color: #a0aec0; font-size: 0.9em; font-style: italic; } /* Confirmation Messages */ .lamp-gift-confirmation, .spirit-return-message { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: rgba(0, 0, 0, 0.9); border-radius: 15px; padding: 30px; border: 2px solid #ffd700; z-index: 10004; opacity: 0; transition: opacity 0.3s ease; } .lamp-gift-confirmation.show, .spirit-return-message.show { opacity: 1; } .confirmation-content, .return-content { display: flex; align-items: center; gap: 15px; color: #e2e8f0; text-align: center; } .confirmation-icon { font-size: 2em; } .return-ascii { color: #ffd700; font-size: 0.8em; text-align: center; margin-bottom: 15px; } /* Responsive Design */ @media (max-width: 768px) { .gift-container { padding: 20px; margin: 20px; } .aziza-section { flex-direction: column; text-align: center; } .cave-walls { font-size: 0.5em; } .lamp-interactive { font-size: 2em; } .genie-presence { padding: 20px; margin: 20px; } .genie-options { grid-template-columns: 1fr; } } /* Gentle animations that enhance but don't distract */ @keyframes gentle-pulse { 0%, 100% { opacity: 0.8; } 50% { opacity: 1; } }