:root { /* Modern color scheme */ --accent: #e53935; --accent-hover: #f44336; --accent-active: #d32f2f; --navBarButtonHover: rgb(0, 0, 0); --textColor: #ffffff; --textColor2: #b0b0b0; --mainColor: rgba(31, 31, 31, 0.95); --contentColor: rgba(24, 24, 24, 1); --contentColor2: rgba(24, 24, 24, 0.8); --tableHover: rgba(17, 17, 17, 0.8); --inputBorder: rgba(255, 255, 255, 0.2); --notifsucces: #4CAF50; --notifechec: #FF5252; --scrollbar: #444444; --scrollbar-thumb: #686868; /* UI Elements */ --borderRadius: 0.5rem; --boxShadow: 0 4px 6px rgba(0, 0, 0, 0.1); --cardShadow: 0 10px 20px rgba(0, 0, 0, 0.2); --transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); --fontSize: 1rem; /* Glow Effects */ --glow-accent: 0 0 15px rgba(229, 57, 53, 0.5); --glow-text: 0 0 5px rgba(255, 255, 255, 0.5); } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; user-select: none; } body { color: var(--textColor); height: 100vh; display: flex; align-items: center; justify-content: center; overflow: hidden; } /* Scrollbar Styling */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: var(--scrollbar); border-radius: var(--borderRadius); } ::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); border-radius: var(--borderRadius); transition: var(--transition); } ::-webkit-scrollbar-thumb:hover { background: var(--accent); } .hud-container { position: absolute; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; padding: 2rem; } /* Create Menu */ .create-menu { border: 2px solid var(--accent); border-radius: var(--borderRadius); padding: 2rem; width: 400px; box-shadow: var(--cardShadow), var(--glow-accent); transition: var(--transition); position: relative; overflow: hidden; background-color: rgb(31, 31, 31); } .create-menu::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--accent), var(--accent-hover)); } .create-menu:hover { box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3), var(--glow-accent); } .create-menu > h1 { color: var(--accent); text-align: center; margin-bottom: 2rem; text-transform: uppercase; letter-spacing: 3px; font-size: 2rem; font-weight: 700; } .create-menu-content { display: flex; flex-direction: column; gap: 1.5rem; } .create-menu-item { display: flex; flex-direction: column; gap: 0.75rem; } /* Modern Buttons */ button { background: linear-gradient(135deg, var(--contentColor), var(--contentColor2)); color: var(--textColor); border: 2px solid var(--inputBorder); border-radius: var(--borderRadius); padding: 0.875rem 1.5rem; cursor: pointer; transition: var(--transition); font-size: var(--fontSize); font-weight: 600; text-transform: uppercase; letter-spacing: 1px; position: relative; overflow: hidden; } button::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent); transition: var(--transition); } button:hover::before { left: 100%; } button:hover { background: var(--accent); border-color: var(--accent); color: white; transform: translateY(-2px); box-shadow: var(--glow-accent); } button:active { transform: translateY(0); background: var(--accent-active); } /* Modern Inputs */ input[type="text"] { background: var(--contentColor); color: var(--textColor); border: 2px solid var(--inputBorder); border-radius: var(--borderRadius); padding: 0.875rem 1rem; width: 100%; font-size: var(--fontSize); transition: var(--transition); } input[type="text"]:focus { border-color: var(--accent); outline: none; box-shadow: var(--glow-accent); background: var(--contentColor2); } input::placeholder { color: var(--textColor2); } #game-code { background: var(--contentColor); color: var(--textColor); border: 2px solid var(--inputBorder); border-radius: var(--borderRadius); padding: 0.875rem 1rem; width: 100%; font-size: var(--fontSize); transition: var(--transition); } #game-code:focus { border-color: var(--accent); outline: none; box-shadow: var(--glow-accent); background: var(--contentColor2); } #game-code::placeholder { color: var(--textColor2); } /* Team Menu */ .team-menu { background-color: rgb(31, 31, 31); border: 2px solid var(--accent); border-radius: var(--borderRadius); padding: 2rem; width: 600px; box-shadow: var(--cardShadow), var(--glow-accent); position: relative; overflow: hidden; } .team-menu::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--accent), var(--accent-hover)); } .team-menu-header { display: flex; justify-content: space-between; align-items: center; /* margin-bottom: 1.5rem; */ padding-bottom: 1rem; border-bottom: 1px solid var(--inputBorder); } .team-menu-header h1 { font-size: 1.5rem; font-weight: 700; color: var(--textColor); } #leave-team { background: var(--notifechec); border: 2px solid var(--notifechec); padding: 0.5rem 1rem; font-size: 0.875rem; border-radius: var(--borderRadius); } #leave-team:hover { background: #ff1744; border-color: #ff1744; } .team-code { display: flex; align-items: center; justify-content: center; gap: 1rem; padding: 1rem; /* margin-bottom: 1.5rem; */ /* background: var(--contentColor); border-radius: var(--borderRadius); border: 1px solid var(--inputBorder); */ } .team-code h1 { font-size: 1rem; color: var(--textColor2); text-transform: uppercase; letter-spacing: 1px; } #team-code { background: var(--contentColor2); color: var(--accent); padding: 0.5rem 1rem; border-radius: var(--borderRadius); cursor: pointer; font-weight: 700; transition: var(--transition); border: 1px solid var(--inputBorder); position: relative; } #team-code:hover { background: var(--accent); color: white; box-shadow: var(--glow-accent); } #team-code::after { content: ""; background-image: url('data:image/svg+xml;utf8,'); width: 16px; height: 16px; display: inline-block; background-repeat: no-repeat; background-position: center; background-size: contain; margin-left: 0.5rem; } #team-code:hover::after { background-image: url('data:image/svg+xml;utf8,'); } .player-counter { display: flex; align-items: center; gap: 0.5rem; font-size: 1rem; color: var(--textColor); background: var(--contentColor2); border-radius: var(--borderRadius); padding: 0.5rem 1rem; border: 1px solid var(--inputBorder); } #current-players { color: var(--accent); font-weight: 700; } #max-players { color: var(--textColor2); } .team-menu-players { background: var(--contentColor); border-radius: var(--borderRadius); padding: 1rem; max-height: 400px; overflow-y: auto; border: 1px solid var(--inputBorder); } .team-menu-players::-webkit-scrollbar { display:none; } .team-menu-players-list { display: flex; flex-direction: column; gap: 0.75rem; height:42vh; } .team-menu-player { display: flex; align-items: center; justify-content: space-between; background: var(--contentColor2); padding: 1rem; border-radius: var(--borderRadius); transition: var(--transition); border: 1px solid var(--inputBorder); } .team-menu-player:hover { background: var(--tableHover); } .team-player-leftInfo { flex: 1; overflow: hidden; } .team-menu-player > h1 { font-size: 1.3rem !important; color: var(--textColor); font-weight: 600; margin: 0; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; } .team-player-midInfo p { font-size: 0.875rem; color: var(--textColor2); margin: 0; } .team-player-rightInfo { display: flex; justify-content: center; align-items: center; height: 100%; } .team-player-rightInfo p { padding: 0.5rem 1rem; font-size: 0.875rem; font-weight: 600; } .kick-player { background: var(--notifechec); border: none; padding: 0.5rem 1rem; font-size: 0.875rem; border-radius: var(--borderRadius); transition: var(--transition); margin-left: 0.5rem; } .kick-player:hover { background: #ff1744; transform: translateY(-1px); } .copy-tooltip { position: absolute; background: var(--contentColor); color: var(--textColor); padding: 0.5rem 1rem; border-radius: var(--borderRadius); font-size: 0.875rem; bottom: -3rem; left: 50%; transform: translateX(-50%); opacity: 0; transition: var(--transition); pointer-events: none; border: 1px solid var(--inputBorder); box-shadow: var(--boxShadow); } .show-tooltip { opacity: 1; } /* Team Requirements Section */ .team-requirements { margin-bottom: 1.5rem; padding: 1rem; background: var(--contentColor); border-radius: var(--borderRadius); border: 1px solid var(--inputBorder); transition: var(--transition); } .requirement-info { display: flex; align-items: center; gap: 1rem; } .requirement-icon { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: var(--contentColor2); border-radius: 50%; color: var(--accent); border: 1px solid var(--inputBorder); flex-shrink: 0; } .requirement-text { flex: 1; display: flex; flex-direction: column; gap: 0.25rem; } .requirement-label { font-size: 0.875rem; color: var(--textColor2); text-transform: uppercase; letter-spacing: 0.5px; font-weight: 500; } .requirement-value { font-size: 1rem; color: var(--textColor); font-weight: 600; } .requirement-value #min-players { color: var(--accent); font-weight: 700; } .requirement-status { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; border-radius: calc(var(--borderRadius) - 2px); background: var(--contentColor2); border: 1px solid var(--inputBorder); transition: var(--transition); } .status-indicator { width: 10px; height: 10px; border-radius: 50%; transition: var(--transition); } .status-indicator.not-ready { background: var(--notifechec); box-shadow: 0 0 8px rgba(255, 82, 82, 0.5); } .status-indicator.ready { background: var(--notifsucces); box-shadow: 0 0 8px rgba(76, 175, 80, 0.5); } .status-text { font-size: 0.875rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; } .requirement-status.not-ready .status-text { color: var(--notifechec); } .requirement-status.ready .status-text { color: var(--notifsucces); } .requirement-status.ready { background: rgba(76, 175, 80, 0.1); border-color: var(--notifsucces); } .requirement-status.not-ready { background: rgba(255, 82, 82, 0.1); border-color: var(--notifechec); } /* Animation pour le changement de statut */ @keyframes statusChange { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } } .requirement-status.status-changed { animation: statusChange 0.5s ease-in-out; } /* Responsive adjustments */ @media (max-width: 768px) { .requirement-info { flex-direction: column; text-align: center; gap: 0.75rem; } .requirement-text { align-items: center; } } /* Vote Menu Modern Style */ .vote-menu { position: absolute; width: 100%; height: 100%; background: linear-gradient(247.73deg, rgba(28, 34, 36, 0.786) 8.11%, rgba(28, 34, 36, 0.986) 91.98%); display: flex; flex-direction: column; justify-content: center; align-items: center; } .nvd-watermark{ position: fixed; top:1vh; justify-content: center; } .votemenu-title { margin-top: -10vh; margin-bottom: 5vh; display: flex; flex-direction: column; justify-content: center; align-items: center; } .votemenu-title h1 { font-size: 2.5vh; text-transform: uppercase; margin-bottom: 1vh; font-weight: bold; } .votemenu-title h3 { font-size: 2vh; color: #ccc; margin-bottom: 0.5vh; } .votemenu-map { display: flex; justify-content: space-around; flex-wrap: wrap; } .votemenu-mapcard { position: relative; width: 14vw; padding: 1vw; margin: 1vw; text-align: center; transition: transform 500ms ease; background: none; border: none; box-shadow: none; } .votemenu-mapcard:hover, .votemenu-mapcard#voted { transform: scale(1.1); transition: 500ms; } .map-image { position: relative; z-index: 1; width: 100%; height: auto; box-shadow: 0 0 20px rgba(255, 0, 0, 0.6), 0 0 20px rgba(255, 0, 0, 0.2); } .map-card-name { position: absolute; top: 11.3%; left: 50%; transform: translate(-50%, -50%); z-index: 2; font-size: 2vh; color: white; text-shadow: 0 0 5px rgba(0, 0, 0, 0.7); background: none; border: none; padding: 0; } .vote-count { position: absolute; bottom: 10%; left: 50%; transform: translate(-50%, 0); z-index: 2; font-size: 2.1vh; color: white; text-shadow: 0 0 5px rgba(0, 0, 0, 0.7); background: none; border: none; padding: 0; } .vote-timer { display: flex; justify-content: center; align-items: center; background-color: #333; border-radius: 10px; padding: 15px 10px 15px 10px; width: 80px; margin: 0 auto; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); } #timer { font-size: 2em; color: #fff; font-weight: bold; text-align: center; margin: 0; } @keyframes enlargeAndFlip { from { transform: scale(1) rotateY(0deg); } to { transform: scale(1.5) rotateY(360deg); } } .enlargeAndFlip { animation: enlargeAndFlip 1s forwards; } /* Responsive Design */ @media (max-width: 1200px) { .votemenu-map { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; } .votemenu-mapcard { width: 250px; } } @media (max-width: 768px) { .votemenu-map { grid-template-columns: 1fr; gap: 1rem; } .votemenu-mapcard { width: 280px; } .votemenu-title h1 { font-size: 2rem; } .votemenu-title h3 { font-size: 1rem; } .vote-timer { width: 100px; height: 100px; } #timer { font-size: 2rem; } } .votemenu-mapcard { animation: fadeInUp 0.6s ease-out; } /* Effet de sélection multiple */ .votemenu-mapcard.selected { border-color: var(--accent); box-shadow: var(--glow-accent); transform: scale(1.02); } .votemenu-mapcard.selected::before { background: linear-gradient(90deg, var(--accent), var(--accent-hover)); } .votemenu-mapcard.selected .vote-count { color: var(--accent); border-color: var(--accent); background: linear-gradient(135deg, rgba(229, 57, 53, 0.1) 0%, rgba(229, 57, 53, 0.2) 100%); } /* Indicateur de limite de votes */ .vote-limit-indicator { position: fixed; top: 50%; right: 2rem; transform: translateY(-50%); background: linear-gradient(135deg, var(--contentColor) 0%, var(--contentColor2) 100%); border: 2px solid var(--inputBorder); border-radius: var(--borderRadius); padding: 1rem; backdrop-filter: blur(10px); box-shadow: var(--boxShadow); } .vote-limit-indicator h3 { color: var(--textColor); font-size: 1rem; margin-bottom: 0.5rem; text-align: center; } .vote-limit-indicator .vote-slots { display: flex; gap: 0.5rem; justify-content: center; } .vote-slot { width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--inputBorder); background: transparent; transition: var(--transition); } .vote-slot.filled { background: var(--accent); border-color: var(--accent); box-shadow: 0 0 10px rgba(229, 57, 53, 0.5); } /* Leaderboard */ .leaderboard { position: absolute; display: flex; right:1.5vw; bottom: 15em; background-repeat: no-repeat; background-size: 100% 100%; display: flex; justify-content: flex-end; flex-direction: column; } .player-info { background-color: rgba(0, 0, 0, 0.7); color: white; padding: 10px; border-radius: 5px; display: flex; align-items: center; justify-content: space-between; width: 15vw; height: 3.5vh; margin-bottom: 1.5px; } .player-info:hover { transform: translateX(-5px); box-shadow: var(--boxShadow); } .lead-player-name { flex: 1; text-align: left; font-size: 16px; font-weight: bold; } .lead, .second { color: var(--accent); } .yourself { color: var(--notifsucces); } .lead-player-kills { display: flex; align-items: center; text-align: right; } .skull-icon { margin-left: 5px; width: auto; height: 20px; margin-right: 5px; color: white; } #Lead-timer { margin-right: 5px; } /* Results Screen */ .results-screen { position: absolute; width: 100%; height: 100%; background: linear-gradient(247.73deg, rgba(28, 34, 36, 0.786) 8.11%, rgba(28, 34, 36, 0.986) 91.98%); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem; } .results-header { margin-bottom: 2rem; text-align: center; } .results-header h1 { font-size: 3rem; font-weight: 700; color: var(--accent); } .results-header h2 { font-size: 1.5rem; color: var(--textColor2); } .close-btn { position: absolute; top: 30px; right: 30px; width: 35px; height: 35px; border-radius: 50%; background-color: var(--contentColor); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: var(--transition); border: 1px solid rgba(255, 255, 255, 0.1); z-index: 101; } .close-btn:hover { background-color: var(--accent); transform: rotate(90deg); } .close-btn::before, .close-btn::after { content: ""; position: absolute; width: 20px; height: 2px; background-color: var(--textColor); } .close-btn::before { transform: rotate(45deg); } .close-btn::after { transform: rotate(-45deg); } .results-content { display: flex; flex-direction: column; width: 100%; max-width: 1200px; } .top-teams { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.5rem; margin-bottom: 2rem; } .team-result-card { background: linear-gradient(135deg, var(--mainColor) 0%, var(--contentColor2) 100%); border: 2px solid var(--inputBorder); border-radius: var(--borderRadius); padding: 1.5rem; transition: var(--transition); position: relative; overflow: hidden; } .team-result-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--accent), var(--accent-hover)); } .team-result-card.first-place::before { background: linear-gradient(90deg, #ffd700, #ffed4e); } .team-result-card.second-place::before { background: linear-gradient(90deg, #c0c0c0, #e8e8e8); } .team-result-card.third-place::before { background: linear-gradient(90deg, #cd7f32, #daa520); } .team-result-card.eliminated::before { background: linear-gradient(90deg, var(--notifechec), #ff1744); } .team-result-card:hover { box-shadow: var(--cardShadow); } .team-result-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; } .team-name { font-size: 1.25rem; font-weight: 700; color: var(--textColor); } .team-position { font-size: 1rem; font-weight: 600; padding: 0.25rem 0.75rem; border-radius: 1rem; background: var(--contentColor); color: var(--textColor2); } .team-position.first { background: #ffd700; color: #000; } .team-position.second { background: #c0c0c0; color: #000; } .team-position.third { background: #cd7f32; color: #fff; } .team-position.eliminated { background: var(--notifechec); color: #fff; } .team-stats { display: flex; justify-content: space-between; margin-bottom: 1rem; } .stat-item { text-align: center; } .stat-value { font-size: 1.5rem; font-weight: 700; color: var(--accent); } .stat-label { font-size: 0.875rem; color: var(--textColor2); text-transform: uppercase; letter-spacing: 1px; } .your-team-section { background: linear-gradient(135deg, var(--mainColor) 0%, var(--contentColor2) 100%); border: 2px solid var(--notifsucces); border-radius: var(--borderRadius); padding: 2rem; box-shadow: 0 0 20px rgba(76, 175, 80, 0.3); position: relative; overflow: hidden; height:60vh; } .your-team-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--notifsucces), #66bb6a); } .your-team-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding-bottom: 1rem; border-bottom: 1px solid var(--inputBorder); } .your-team-title { font-size: 1.5rem; font-weight: 700; color: var(--notifsucces); } .team-members { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1rem; max-height: 350px; overflow-y: auto; padding-right: 8px; } .team-members::-webkit-scrollbar { width: 8px; } .team-members::-webkit-scrollbar-track { background: var(--scrollbar); border-radius: var(--borderRadius); } .team-members::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); border-radius: var(--borderRadius); } .team-members::-webkit-scrollbar-thumb:hover { background: var(--notifsucces); } .member-card { background: var(--contentColor); border: 1px solid var(--inputBorder); border-radius: var(--borderRadius); padding: 1rem; transition: var(--transition); } .member-card:hover { background: var(--tableHover); transform: translateY(-2px); } .member-name { font-weight: 600; color: var(--textColor); margin-bottom: 0.5rem; } .member-stats { display: flex; justify-content: space-between; font-size: 0.875rem; color: var(--textColor2); } .member-role { display: inline-block; padding: 0.25rem 0.5rem; border-radius: 0.25rem; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; } .member-role.leader { background: var(--accent); color: white; } .member-role.member { background: var(--contentColor2); color: var(--textColor2); } /* Animations */ /* @keyframes enlargeAndFlip { from { transform: scale(1) rotateY(0deg); } to { transform: scale(1.2) rotateY(360deg); } } */ /* .enlargeAndFlip { animation: enlargeAndFlip 1s forwards; } */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .fade-in-up { animation: fadeInUp 0.6s ease-out; }