* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: #0f0f0f; color: #dedede; min-height: 100vh; padding-bottom: 80px; /* Space for fixed footer */ } /* Animations */ @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes slideIn { from { transform: translateX(-100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } /* NEW: Animations for role collapse/expand */ @keyframes expandRole { 0% { max-height: 0; opacity: 0; transform: scaleY(0) translateX(-100%); } 50% { max-height: 0; opacity: 0.5; transform: scaleY(0) translateX(0); } 100% { max-height: 2000px; opacity: 1; transform: scaleY(1) translateX(0); } } @keyframes collapseRole { 0% { max-height: 2000px; opacity: 1; transform: scaleY(1) translateX(0); } 50% { max-height: 0; opacity: 0.5; transform: scaleY(0) translateX(0); } 100% { max-height: 0; opacity: 0; transform: scaleY(0) translateX(-100%); } } /* Header section */ .champions-section { position: relative; text-align: center; padding: 3rem 1rem; font-size: 1.5rem; background-color: #0f0f0f; border-bottom: 1px solid #2a2a2a; min-height: 120px; overflow: hidden; z-index: 5; } /* Canvas for animated lines */ #animated-lines-canvas { position: absolute; top: -50px; left: -50px; width: calc(100% + 100px); height: calc(100% + 100px); pointer-events: none; z-index: 1; } .champions-section h1 { position: relative; z-index: 100; margin: 0; font-size: 1.5rem; } /* Animated title */ .animated-title { position: absolute; top: 1rem; left: 1rem; font-size: 32px; font-weight: bold; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; z-index: 999; cursor: pointer; display: flex; align-items: center; opacity: 0; transform: translateY(20px); animation: fadeIn 2s ease-out forwards; background-color: rgba(0, 0, 0, 0); } .animated-title .char { position: relative; display: inline-block; margin-right: 1px; text-shadow: 1px 1px 0px rgba(0, 0, 0, 0.4); } .animated-title .char::before { content: attr(data-char); position: absolute; top: 0; left: 0; background: rgba(0, 0, 0, 0.0); border-radius: 2px; padding: 0.1em 0.05em; z-index: -1; transform: scale(0.8); opacity: 0.6; } /* Controls */ .controls { display: flex; justify-content: center; align-items: center; gap: 2rem; padding: 2rem 1rem; background-color: #1a1a1a; border-bottom: 1px solid #2a2a2a; flex-wrap: wrap; position: relative; z-index: 5; } .search-input { padding: 0.75rem 1rem; border: 2px solid #2a2a2a; border-radius: 8px; background-color: #0f0f0f; color: #dedede; font-size: 1rem; min-width: 400px; transition: all 0.3s ease; } .search-input:focus { outline: none; border-color: #3296c8; box-shadow: 0 0 0 3px rgba(5, 230, 132, 0.1); } .toggle-container { display: flex; align-items: center; gap: 0.5rem; } .toggle-checkbox { display: none; /* Hide the default checkbox */ } /* Reset the default checkbox style */ .toggle-checkbox { display: none; /* Hide the default checkbox */ } /* Label contains both the checkbox and the text, so we align them */ .toggle-label { display: inline-flex; /* Align elements in a row */ align-items: center; /* Center vertically */ cursor: pointer; } /* Slider design */ .toggle-slider { position: relative; width: 50px; /* Size of the checkbox */ height: 30px; background-color: #ccc; /* Default (unchecked) color */ border-radius: 50px; transition: background-color 0.3s ease, transform 0.3s ease; /* Smooth animation */ margin-right: 0px; /* Space between the slider and the text */ } .toggle-slider::before { content: ''; position: absolute; top: 50%; left: 5px; transform: translateY(-50%); width: 20px; /* Circle size */ height: 20px; background-color: #fff; border-radius: 50%; /* Round shape */ transition: transform 0.3s ease; /* Smooth animation */ } /* Checked state */ .toggle-checkbox:checked + .toggle-slider { background-color: #3296c8; /* Checked color */ } .toggle-checkbox:checked + .toggle-slider::before { transform: translate(20px, -50%); /* Move the circle to the right */ } /* Text next to the checkbox */ .toggle-text { font-size: 16px; /* Adjust text size */ color: #333; /* Text color */ font-family: Arial, sans-serif; } /* Champion sections */ .champion-sections { padding: 2rem 1rem; max-width: 1400px; margin: 0 auto; position: relative; overflow: visible; } .champion-section { margin-bottom: 3rem; animation: fadeIn 0.6s ease-out forwards; position: relative; overflow: visible; } .section-header { display: flex; justify-content: space-between; align-items: center; padding: 1rem 0; margin-bottom: 1.5rem; position: relative; z-index: 5; } .section-header::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px; background: linear-gradient(to right, transparent, #2a2a2a 50%, transparent); } .lane-header { display: flex; align-items: center; gap: 0.75rem; font-size: 1.5rem; font-weight: bold; color: #3296c8; } .lane-header img { width: 32px; height: 32px; } /* IMPROVED: Better role toggle button */ .role-toggle-btn { background: linear-gradient(135deg, #2a2a2a 0%, #3a3a3a 100%); border: 2px solid #3296c8; border-radius: 50%; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s ease; color: #3296c8; position: relative; overflow: hidden; } .role-toggle-btn:hover { background: linear-gradient(135deg, #3296c8 0%, #4aa6d8 100%); color: #000; transform: scale(1.1); box-shadow: 0 4px 15px rgba(50, 150, 200, 0.4); } .role-toggle-btn:active { transform: scale(0.95); } .role-toggle-btn .toggle-icon { transition: transform 0.3s ease; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3)); } .role-toggle-btn.collapsed .toggle-icon { transform: rotate(-90deg); } .role-toggle-btn::before { content: ''; position: absolute; top: 50%; left: 50%; width: 0; height: 0; background: radial-gradient(circle, rgba(50, 150, 200, 0.3) 0%, transparent 70%); border-radius: 50%; transform: translate(-50%, -50%); transition: all 0.3s ease; } .role-toggle-btn:hover::before { width: 100%; height: 100%; } .champion-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 1.5rem; transition: all 0.3s ease; transform-origin: top; overflow: visible; position: relative; } /* IMPROVED: Smooth role collapse/expand animations */ .champion-row.collapsed { max-height: 0; opacity: 0; transform: scaleY(0); margin-bottom: 0; padding-top: 0; padding-bottom: 0; } .champion-row.expanding { animation: expandRole 0.3s ease-out forwards; } .champion-row.collapsing { animation: collapseRole 0.3s ease-out forwards; } .champion-card { background: linear-gradient(135deg, #1a1a1a 0%, #2a2a2a 100%); border: 2px solid transparent; border-radius: 12px; padding: 1rem; text-align: center; cursor: pointer; transition: all 0.3s ease; position: relative; overflow: visible; z-index: 100; } .champion-card:hover { border-color: #3296c8; transform: translateY(-5px); box-shadow: 0 8px 25px rgba(5, 230, 132, 0.2); z-index: 1000; } .champion-card.grayscale { opacity: 0.6; } .champion-card.grayscale img { filter: grayscale(90%); } .champion-card.grayscale h3 { filter: grayscale(90%); } .champion-card.grayscale:hover { opacity: 0.8; } .champion-card.grayscale:hover img { filter: grayscale(30%); } .champion-card.grayscale:hover h3 { filter: grayscale(30%); } .champion-card.grayscale:hover { border-color: #666; transform: translateY(-2px); box-shadow: 0 4px 15px rgba(102, 102, 102, 0.1); } .champion-image-container { position: relative; margin-bottom: 0.75rem; } /* Red cross overlay for unsupported champions */ .champion-image-container .unsupported-cross { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 60px; height: 60px; pointer-events: none; z-index: 5; } .champion-image-container .unsupported-cross::before, .champion-image-container .unsupported-cross::after { content: ''; position: absolute; top: 50%; left: 50%; width: 50px; height: 4px; background: linear-gradient(45deg, #ff4444, #cc0000); border-radius: 2px; box-shadow: 0 0 8px rgba(255, 68, 68, 0.6); } .champion-image-container .unsupported-cross::before { transform: translate(-50%, -50%) rotate(45deg); } .champion-image-container .unsupported-cross::after { transform: translate(-50%, -50%) rotate(-45deg); } .champion-card img { width: 80px; height: 80px; border-radius: 50%; border: 3px solid #2a2a2a; transition: all 0.3s ease; opacity: 0; transform: scale(0.8); } .champion-card img.loaded { opacity: 1; transform: scale(1); } .champion-card:hover img { border-color: #3296c8; } .champion-card h3 { font-size: 0.95rem; margin: 0; color: #dedede; } .plugin-badge { position: absolute; top: -5px; right: -5px; background: #3296c8; color: #000; border-radius: 50%; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; font-size: 0.75rem; font-weight: bold; z-index: 10; } /* Modal */ .modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.8); display: flex; justify-content: center; align-items: center; z-index: 1000; animation: fadeIn 0.3s ease-out; } .modal.hidden { display: none; } .modal-content { background: linear-gradient(135deg, #1a1a1a 0%, #2a2a2a 100%); border: 2px solid #3296c8; border-radius: 16px; padding: 2rem; max-width: 600px; width: 90%; max-height: 90vh; overflow-y: auto; position: relative; animation: slideIn 0.3s ease-out; } .modal-content.closing { animation: slideOut 0.3s ease-out; } @keyframes slideOut { from { transform: translateX(0); opacity: 1; } to { transform: translateX(-100%); opacity: 0; } } .close { position: absolute; top: 15px; right: 20px; font-size: 2rem; cursor: pointer; color: #dedede; transition: color 0.2s ease; } .close:hover { color: #3296c8; } .modal-body { display: flex; gap: 2rem; flex-wrap: wrap; } .modal-left { flex: 0 0 150px; } .modal-left img { width: 150px; height: 150px; border-radius: 12px; border: 3px solid #3296c8; opacity: 0; transform: scale(0.8); transition: all 0.3s ease; } .modal-left img.loaded { opacity: 1; transform: scale(1); } .modal-right { flex: 1; min-width: 250px; } .modal-right h2 { color: #3296c8; margin-bottom: 1rem; font-size: 2rem; } .modal-right p { margin-bottom: 1rem; line-height: 1.6; } .modal-links { display: flex; gap: 1rem; margin-top: 1.5rem; flex-wrap: wrap; } .modal-links a { transition: all 0.3s ease; border-radius: 8px; overflow: hidden; } .modal-links a:hover { transform: scale(1.05); box-shadow: 0 4px 15px rgba(5, 230, 132, 0.3); } .modal-links img { width: 120px; height: auto; display: block; opacity: 0; transition: opacity 0.3s ease; } .modal-links img.loaded { opacity: 1; } .aio-separator hr { border: none; height: 2px; background: linear-gradient(to right, transparent, #3296c8 50%, transparent); margin: 0.75rem 0 0.5rem 0; } .aio-list p { margin: 0.25rem 0; padding: 0.25rem 0.5rem; border-radius: 4px; transition: background-color 0.2s ease; } .aio-list p:hover { background-color: rgba(5, 230, 132, 0.1); } /* Footer */ .footer-controls { position: fixed; bottom: 0; left: 0; width: 100%; height: 60px; display: flex; justify-content: center; align-items: center; background-color: #1a1a1a; border-top: 1px solid #2a2a2a; z-index: 5; overflow: hidden; } #footer-canvas { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; } .footer-controls p { position: relative; z-index: 10; font-size: 0.9rem; color: #dedede; margin: 0; text-align: center; } /* Responsive */ @media (max-width: 768px) { .controls { flex-direction: column; gap: 1rem; } .champion-row { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 1rem; } h1#supportedChampionsText { padding-top: 1rem; } .modal-body { flex-direction: column; text-align: center; } .modal-left { flex: none; align-self: center; } .modal-links { justify-content: space-between; text-align: left; } .modal-links #modalLink { order: 2; /* U.GG button goes to the right */ } .modal-links #modalLink2 { order: 1; /* OP.GG button goes to the left */ } .role-toggle-btn { width: 32px; height: 32px; } .footer-controls { height: 50px; } .footer-controls p { font-size: 0.8rem; } body { padding-bottom: 70px; } }