body { font-family: 'Segoe UI', sans-serif; background: linear-gradient(to bottom right, #1a1a2e, #16213e); color: #fff; margin: 0; padding: 30px; } h1 { text-align: center; font-size: 3em; font-weight: bold; background: linear-gradient(to right, #ffd700, #ff8000); -webkit-background-clip: text; -webkit-text-fill-color: transparent; text-shadow: 2px 2px 10px rgba(255, 204, 0, 0.3); margin-bottom: 50px; animation: shine 3s infinite; } @keyframes shine { 0% { text-shadow: 0 0 10px #ffcc00; } 50% { text-shadow: 0 0 20px #ffaa00; } 100% { text-shadow: 0 0 10px #ffcc00; } } .tier-list { display: flex; flex-direction: column; gap: 20px; width: 95%; margin: 0 auto; } .tier { position: relative; /* necesario para ::before */ overflow: visible; display: flex; align-items: center; background: rgba(255, 255, 255, 0.05); border-left: 8px solid; border-radius: 10px; padding: 15px 20px; gap: 20px; animation: fadeIn 2s ease; z-index: 0; } .tier::before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: currentColor; border-radius: 10px; z-index: 1; /* atrás de los jugadores */ transform-origin: left; transform: scaleX(0); transition: transform 2s ease; pointer-events: none; } .tier.collapsed::before { transform: scaleX(1); } .tier .label { font-size: 1.5em; font-weight: bold; min-width: 50px; text-align: center; cursor: pointer; position: relative; transition: all 0.4s ease; z-index: 2; transform-origin: left center; filter: drop-shadow(0 0 2px rgba(255, 255, 255, 0.3)); } .tier .players { display: flex; gap: 16px; align-items: flex-end; /* alineación inferior uniforme */ flex-wrap: wrap; transition: opacity 0.4s ease; } .tier.temporarily-hidden .players { opacity: 0; pointer-events: none; user-select: none; } .player-wrapper { position: relative; display: inline-block; transition: transform 0.3s ease; z-index: 3; } .player-wrapper:hover { transform: scale(1.05); } .player { background-color: #292c3e; padding: 10px 15px; border-radius: 20px; font-weight: 500; transition: background 0.3s ease; box-shadow: 0 2px 8px rgba(0,0,0,0.3); cursor: pointer; text-align: center; position: relative; z-index: 2; } .player:hover { background-color: #3b3f57; } .player img { display: block; width: 98px; height: 128px; object-fit: cover; /* para recortar imágenes mal proporcionadas */ transition: transform 0.3s ease; border-radius: 8px; } .player:hover img { transform: scale(1.15); } .label.active { transform: translateX(15px); color: #fff; text-shadow: 0 0 5px rgba(255, 255, 255, 0.7); } .tier-info { max-height: 0; overflow: hidden; opacity: 0; font-size: 1.6em; font-family: 'Bebas Neue', sans-serif; letter-spacing: 0.6px; margin-left: 10px; padding-left: 14px; border-left: 4px solid rgba(255, 255, 255, 0.3); color: #ccc; transition: max-height 0.2s ease, opacity 0.3s ease; position: absolute; left: 60px; top: 50%; transform: translateY(-50%); z-index: 2; width: calc(100% - 80px); line-height: 1.5; } .label.active + .tier-info { max-height: 150px; opacity: 1; color: #fff; } /* Colores por tier */ .tier.s { border-color: #ffd700; color: #ffd700; } .tier.a { border-color: #ff8000; color: #ff8000; } .tier.b { border-color: #ff4081; color: #ff4081; } .tier.c { border-color: #6495ed; color: #6495ed; } .tier.d { border-color: #aaa; color: #aaa; } #modalName.tier-s { color: #ffd700; } #modalName.tier-a { color: #ff8000; } #modalName.tier-b { color: #ff4081; } #modalName.tier-c { color: #6495ed; } #modalName.tier-d { color: #aaa; } /* Badges */ .top-badge { position: absolute; top: 0; left: 0; transform: translate(-50%, -50%); width: 28px; height: 28px; border-radius: 50%; background-color: #ffd700; color: #1a1a2e; font-size: 0.9em; font-weight: bold; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 5px rgba(0, 0, 0, 0.5); z-index: 4; } .top-badge.tier-s { background-color: #ffd700; } .top-badge.tier-a { background-color: #ff8000; } .top-badge.tier-b { background-color: #ff4081; } .top-badge.tier-c { background-color: #6495ed; } .top-badge.tier-d { background-color: #aaa; } .tier .players { transition: opacity 0.4s ease; } .tier.collapsed .players { opacity: 0; pointer-events: none; user-select: none; transition-delay: 0s; } .tier:not(.collapsed) .players { opacity: 1; pointer-events: auto; user-select: auto; transition-delay: 1.35s; /* Espera la animación de la barra para aparecer */ } /* Modal */ .modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.6); justify-content: center; align-items: center; z-index: 999; animation: modalFadeIn 0.3s ease forwards; } .modal.show { display: flex; } .modal-content { display: flex; flex-direction: row; gap: 24px; padding: 20px; max-width: 600px; height: auto; /* o usa una altura fija si lo prefieres */ max-height: 80vh; background-color: #292c3e; border-radius: 12px; box-shadow: 0 0 12px rgba(255, 64, 129, 0.6); align-items: stretch; /* <- Asegura que ambas columnas sean iguales en altura */ overflow: hidden; } .modal-right { flex-grow: 1; padding-left: 12px; color: #fff; font-size: 1.2em; line-height: 1.4; } .modal-left { flex: 0 0 180px; /* tamaño fijo para la izquierda */ display: flex; flex-direction: column; align-items: center; gap: 12px; height: 100%; } .modal-left img { width: 100%; height: auto; /* para que no se estire mucho */ border-radius: 12px; object-fit: cover; } .tiktok-button { width: 44px; height: 44px; background: #292c3e; border-radius: 12px; display: flex; justify-content: center; align-items: center; cursor: pointer; transition: background 0.3s ease, transform 0.3s ease; border: none; /* quita borde si usas