/* Contextual Hints System - With Quantum Styling -------------------------------------------------- */ :root { --hint-bg-color: rgba(30, 30, 35, 0.95); --hint-border-color: rgba(111, 66, 193, 0.7); --hint-text-color: rgba(255, 255, 255, 0.9); --hint-shadow-color: rgba(218, 75, 134, 0.3); --hint-icon-color: rgba(13, 202, 240, 0.9); --hint-glow-color: rgba(111, 66, 193, 0.5); --hint-btn-color: rgba(13, 202, 240, 0.8); --hint-transition-time: 0.3s; } /* Main Hint Container */ .contextual-hint { position: absolute; width: auto; max-width: 300px; min-width: 230px; padding: 15px; background: var(--hint-bg-color); color: var(--hint-text-color); border-radius: 8px; border: 1px solid var(--hint-border-color); box-shadow: 0 3px 15px var(--hint-shadow-color), 0 0 8px var(--hint-glow-color); z-index: 9999; opacity: 0; transform: translateY(15px) scale(0.95); transition: opacity var(--hint-transition-time) ease, transform var(--hint-transition-time) ease; backdrop-filter: blur(8px); pointer-events: none; } /* Hint that is currently shown */ .contextual-hint.active { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; } /* Hint Title */ .contextual-hint-title { display: flex; align-items: center; margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .contextual-hint-title i { color: var(--hint-icon-color); margin-right: 8px; font-size: 1.1rem; } .contextual-hint-title h5 { margin: 0; font-size: 1rem; font-weight: 600; color: var(--hint-text-color); } /* Hint Content */ .contextual-hint-content { font-size: 0.95rem; line-height: 1.4; margin-bottom: 15px; } /* Hint Actions */ .contextual-hint-actions { display: flex; justify-content: space-between; align-items: center; } .hint-button { background: transparent; color: var(--hint-btn-color); border: 1px solid var(--hint-btn-color); padding: 5px 10px; border-radius: 4px; font-size: 0.8rem; cursor: pointer; transition: all var(--hint-transition-time) ease; } .hint-button:hover { background: var(--hint-btn-color); color: #000; } .hint-button-primary { background: var(--hint-btn-color); color: #000; } .hint-button-primary:hover { background: transparent; color: var(--hint-btn-color); } .hint-dont-show { font-size: 0.8rem; color: rgba(255, 255, 255, 0.5); cursor: pointer; transition: color var(--hint-transition-time) ease; } .hint-dont-show:hover { color: var(--hint-text-color); } /* Hint Arrow */ .contextual-hint::before { content: ''; position: absolute; width: 10px; height: 10px; background: var(--hint-bg-color); border: 1px solid var(--hint-border-color); transform: rotate(45deg); } /* Position variations */ .contextual-hint.position-top::before { bottom: -6px; border-top: none; border-left: none; } .contextual-hint.position-bottom::before { top: -6px; border-bottom: none; border-right: none; } .contextual-hint.position-left::before { right: -6px; border-left: none; border-bottom: none; } .contextual-hint.position-right::before { left: -6px; border-right: none; border-top: none; } /* Hover target styling */ .hint-target { position: relative; } .hint-target::after { content: ''; position: absolute; top: -3px; right: -3px; bottom: -3px; left: -3px; border: 2px dashed transparent; border-radius: 5px; transition: border-color var(--hint-transition-time) ease; pointer-events: none; } .hint-target.hint-highlight::after { border-color: var(--hint-icon-color); } /* Pulse animation for important hints */ @keyframes hint-pulse { 0% { box-shadow: 0 0 0 0 rgba(13, 202, 240, 0.4); } 70% { box-shadow: 0 0 0 10px rgba(13, 202, 240, 0); } 100% { box-shadow: 0 0 0 0 rgba(13, 202, 240, 0); } } .contextual-hint.important { animation: hint-pulse 2s infinite; } /* LED tracer on hints */ .contextual-hint .led-tracer { position: absolute; height: 2px; background: linear-gradient(90deg, transparent, rgba(218, 75, 134, 0.7), rgba(13, 202, 240, 0.7), transparent); width: 100%; left: 0; bottom: 0; animation: led-trace 2s infinite linear; } @keyframes led-trace { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } } /* Quantum particle effect for hints */ .contextual-hint.has-particles { overflow: hidden; } .hint-particles { position: absolute; top: 0; left: 0; right: 0; bottom: 0; pointer-events: none; } .hint-particle { position: absolute; width: 3px; height: 3px; background: var(--hint-icon-color); border-radius: 50%; opacity: 0.5; animation: float-particle 3s infinite ease-in-out; } @keyframes float-particle { 0%, 100% { transform: translateY(0) translateX(0); opacity: 0.2; } 50% { transform: translateY(-15px) translateX(5px); opacity: 0.5; } }