.run-rivals-container{align-items:center;background:#fff;display:flex;flex-direction:column;justify-content:center;margin:0 auto;max-width:600px;min-height:100vh;padding:2rem 1rem}.screen{animation:fadeIn .3s ease-in;display:none;max-width:500px;width:100%}.screen.active{align-items:center;display:flex;flex-direction:column}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.game-title{color:#000;font-size:3rem;font-weight:900;letter-spacing:2px;margin:0 0 .5rem;text-align:center}.game-subtitle{color:#666;font-size:1.2rem;font-weight:300;margin:0 0 2rem;text-align:center}.fitness-display{background:#f5f5f5;border-radius:12px;margin-bottom:2rem;padding:1.5rem 2rem;text-align:center;width:100%}.fitness-label{color:#666;font-size:.9rem;letter-spacing:1px;margin-bottom:.5rem;text-transform:uppercase}.fitness-score{color:#2196f3;font-size:3rem;font-weight:700}.opponent-card{background:#000;border-radius:12px;color:#fff;margin-bottom:2rem;padding:1.5rem 2rem;text-align:center;width:100%}.opponent-name{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.opponent-fitness{font-size:1rem;opacity:.8}.game-button{background:#2196f3;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:700;letter-spacing:1px;margin:.5rem 0;max-width:300px;padding:1rem 3rem;text-transform:uppercase;transition:all .2s;width:100%}.game-button:hover{background:#1976d2;box-shadow:0 4px 12px rgba(33,150,243,.3);transform:translateY(-2px)}.game-button:active{transform:translateY(0)}.game-button.secondary{background:transparent;border:2px solid #2196f3;color:#2196f3}.game-button.secondary:hover{background:#2196f3;color:#fff}.instructions{background:#fff8e1;border-left:4px solid #ffc107;border-radius:8px;margin-top:2rem;padding:1.5rem;width:100%}.instructions p{color:#666;margin:.5rem 0}.instructions strong{color:#000}.race-header{margin-bottom:1rem;text-align:center;width:100%}.countdown{animation:pulse 1s infinite;color:#2196f3;font-size:6rem;font-weight:900}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.race-view{background:#f5f5f5;border-radius:12px;margin-bottom:2rem;overflow:hidden;width:100%}#race-canvas{display:block;height:250px;width:100%}.cadence-controls{align-items:center;display:flex;flex-direction:column;margin-bottom:2rem;width:100%}.cadence-meter-container{margin-bottom:1rem;position:relative}.meter-label{color:#666;font-size:1.5rem;font-weight:700;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%)}#cadence-meter{cursor:pointer}.stride-feedback{animation:feedbackPop .3s ease-out;font-size:1.5rem;font-weight:700;min-height:2rem}@keyframes feedbackPop{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.stride-feedback.perfect{color:#4caf50}.stride-feedback.good{color:#ffc107}.stride-feedback.miss{color:#f44336}.race-stats{display:flex;gap:1rem;justify-content:space-around;width:100%}.stat{background:#f5f5f5;border-radius:8px;flex:1;padding:1rem;text-align:center}.stat-label{color:#666;display:block;font-size:.8rem;letter-spacing:1px;margin-bottom:.5rem;text-transform:uppercase}.stat-value{color:#000;display:block;font-size:1.5rem;font-weight:700}.result-title{font-size:2.5rem;font-weight:900;margin:0 0 2rem;text-align:center}.result-title.win{color:#4caf50}.result-title.lose{color:#f44336}.result-stats{background:#f5f5f5;border-radius:12px;margin-bottom:2rem;padding:2rem;width:100%}.result-stat{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:1rem 0}.result-stat:last-child{border-bottom:none}.result-label{color:#666;font-size:1rem;letter-spacing:1px;text-transform:uppercase}.result-value{color:#000;font-size:1.5rem;font-weight:700}.result-actions{align-items:center;display:flex;flex-direction:column;gap:.5rem;width:100%}.lobby-info{margin-bottom:2rem;text-align:center;width:100%}.share-link-container{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1rem}.share-link-input{background:#f5f5f5;border:2px solid #2196f3;border-radius:4px;flex:1;font-family:monospace;font-size:.9rem;min-width:200px;padding:.75rem}.lobby-players{display:flex;flex-wrap:wrap;gap:2rem;justify-content:center;margin:2rem 0}.lobby-player{background:#f5f5f5;border-radius:8px;min-width:150px;padding:1.5rem;text-align:center}.player-indicator{font-size:3rem;margin-bottom:.5rem}.player-fitness{color:#2196f3;font-size:1.2rem;font-weight:700;margin-top:.5rem}.status-indicator{color:#666;font-size:.85rem;margin-top:.5rem}.status-indicator.ready{color:#4caf50;font-weight:700}.leaderboard-container{margin-bottom:2rem;max-width:500px;width:100%}.leaderboard-loading{color:#666;font-size:1.2rem;padding:2rem;text-align:center}.leaderboard-entry{align-items:center;background:#f5f5f5;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:1rem 1.5rem}.leaderboard-entry.top-3{background:gold;font-weight:700}.leaderboard-rank{color:#2196f3;font-size:1.5rem;font-weight:700;min-width:40px}.leaderboard-entry.top-3 .leaderboard-rank{color:#000}.leaderboard-info{flex:1;margin:0 1rem}.leaderboard-user-id{color:#000;font-size:1rem;font-weight:600;margin-bottom:.25rem}.leaderboard-stats{color:#666;font-size:.85rem}.leaderboard-wins{color:#4caf50;font-size:1.5rem;font-weight:700}.leaderboard-entry.top-3 .leaderboard-wins{color:#000}@media (max-width:600px){.game-title{font-size:2rem}.fitness-score{font-size:2rem}.countdown{font-size:4rem}#cadence-meter{height:150px;width:150px}}