/* Cursors Module Styles */ .cursors-container { width: 100%; height: 100%; display: flex; flex-direction: column; overflow: hidden; } /* Equipped cursor banner */ .equipped-cursor-banner { height: 25%; min-height: 120px; max-height: 150px; display: flex; background-color: rgba(30, 30, 46, 0.3); border-bottom: 2px solid rgba(49, 50, 68, 0.6); padding: 10px; margin-bottom: 10px; } .current-preview { max-width: 80%; max-height: 80%; object-fit: contain; filter: drop-shadow(0 0 5px rgba(0, 0, 0, 0.3)); transition: all 0.3s ease; } .current-preview.legendary { animation: float 3s ease-in-out infinite; filter: drop-shadow(0 0 8px rgba(249, 226, 175, 0.4)); } @keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0px); } } .equipped-cursor-details { display: flex; flex-direction: column; justify-content: space-between; flex: 1; } .equipped-cursor-info { display: flex; flex-direction: column; } .equipped-label { font-size: 12px; font-weight: 600; color: rgba(205, 214, 244, 0.6); letter-spacing: 1px; margin-bottom: 4px; } .equipped-name { font-size: 20px; font-weight: 600; margin-bottom: 5px; } .equipped-rarity { font-size: 14px; font-weight: 500; opacity: 0.8; } .next-button { align-self: flex-start; background-color: rgba(65, 66, 88, 0.8); border: none; border-radius: 4px; padding: 8px 15px; color: var(--text-color); font-size: 13px; font-weight: 500; cursor: pointer; transition: all 0.2s; } .next-button:hover { background-color: var(--accent-color); color: #1e1e2e; transform: translateY(-2px); } /* Library controls section */ .cursors-controls { display: flex; flex-direction: column; gap: 10px; padding: 5px 10px 15px 10px; border-bottom: 1px solid rgba(49, 50, 68, 0.4); } .search-box { position: relative; margin-bottom: 8px; } .search-icon { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); color: rgba(205, 214, 244, 0.5); pointer-events: none; } .search-input { width: 100%; background-color: rgba(49, 50, 68, 0.3); border: 1px solid rgba(49, 50, 68, 0.6); border-radius: 4px; color: var(--text-color); padding: 8px 10px 8px 32px; font-size: 14px; outline: none; transition: all 0.2s; } .search-input:focus { border-color: var(--accent-color); box-shadow: 0 0 5px rgba(137, 180, 250, 0.3); } .filter-controls { display: flex; gap: 8px; flex-wrap: wrap; overflow-x: auto; padding-bottom: 5px; } .filter-button { background-color: rgba(49, 50, 68, 0.4); border: none; border-radius: 4px; padding: 5px 10px; font-size: 12px; cursor: pointer; transition: all 0.2s ease; white-space: nowrap; border-left: 3px solid transparent; } .filter-button:hover { background-color: rgba(65, 66, 88, 0.6); } .filter-button.active { background-color: rgba(65, 66, 88, 0.8); color: var(--accent-color); } /* Rarity-based styling for filter buttons */ .filter-button.common { border-left-color: #a6adc8; } .filter-button.uncommon { border-left-color: #a6e3a1; } .filter-button.rare { border-left-color: #89b4fa; } .filter-button.epic { border-left-color: #cba6f7; } .filter-button.legendary { border-left-color: #f9e2af; } /* Main cursor library */ .cursor-library { flex: 1; display: flex; flex-direction: column; overflow-y: auto; padding: 0 10px; scrollbar-width: thin; margin-top: 5px; } .rarity-section { display: flex; flex-direction: column; margin-bottom: 20px; } .rarity-header { display: flex; align-items: center; margin-bottom: 10px; flex-wrap: nowrap; } .rarity-title { font-size: 14px; font-weight: 600; margin: 0; white-space: nowrap; margin-right: 10px; } .rarity-line { flex: 1; height: 1px; opacity: 0.3; } /* Rarity colors */ .equipped-name.common, .equipped-rarity.common, .rarity-line.common { background-color: #a6adc8; } .equipped-name.uncommon, .equipped-rarity.uncommon, .rarity-line.uncommon { background-color: #a6e3a1; } .equipped-name.rare, .equipped-rarity.rare, .rarity-line.rare { background-color: #89b4fa; } .equipped-name.epic, .equipped-rarity.epic, .rarity-line.epic { background-color: #cba6f7; } .equipped-name.legendary, .equipped-rarity.legendary, .rarity-line.legendary { background-color: #f9e2af; } /* Horizontal scrolling cursor list */ .cursor-list { display: flex; gap: 12px; overflow-x: auto; padding: 5px 0 15px 0; scrollbar-width: thin; margin-bottom: 5px; } .cursor-card { min-width: 150px; max-width: 180px; background-color: rgba(49, 50, 68, 0.4); border-radius: 8px; overflow: hidden; transition: all 0.2s ease; cursor: pointer; border: 1px solid rgba(49, 50, 68, 0.4); position: relative; flex: 0 0 auto; } /* Circular rarity indicator in top right */ .cursor-card::before { content: ''; position: absolute; top: 8px; right: 8px; width: 12px; height: 12px; border-radius: 50%; z-index: 5; background-color: currentColor; box-shadow: 0 0 3px rgba(0, 0, 0, 0.3); } /* Rarity colors */ .cursor-card.common { color: #a6adc8; } .cursor-card.uncommon { color: #a6e3a1; } .cursor-card.rare { color: #89b4fa; } .cursor-card.epic { color: #cba6f7; } .cursor-card.legendary { color: #f9e2af; } /* Hover and active states */ .cursor-card:hover { transform: translateY(-3px) scale(1.02); box-shadow: 0 8px 15px rgba(0, 0, 0, 0.15); border-color: currentColor; z-index: 5; } .cursor-card:active { transform: translateY(0) scale(0.98); } .cursor-card.active { border-color: currentColor; box-shadow: 0 0 12px currentColor; } /* Preview container */ .cursor-preview-container { height: 100px; display: flex; align-items: center; justify-content: center; background-color: rgba(30, 30, 46, 0.5); padding: 12px; } .cursor-preview-img { max-width: 80%; max-height: 80%; object-fit: contain; transition: transform 0.3s ease; } .cursor-card:hover .cursor-preview-img { transform: scale(1.1); } /* Cursor details */ .cursor-details { padding: 10px; display: flex; flex-direction: column; gap: 3px; } .cursor-name { font-weight: 500; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .cursor-rarity-badge { display: inline-block; font-size: 11px; text-transform: capitalize; opacity: 0.7; } /* Animation for legendary items */ .cursor-card.legendary::before { animation: legendaryGlow 2s infinite; } @keyframes legendaryGlow { 0% { opacity: 0.4; } 50% { opacity: 0.9; } 100% { opacity: 0.4; } } /* Empty states */ .no-cursors, .no-results { flex: 1; display: flex; align-items: center; justify-content: center; background-color: rgba(49, 50, 68, 0.2); border-radius: 8px; padding: 20px; text-align: center; color: var(--text-color); opacity: 0.7; font-size: 14px; }