.compete-hero{text-align:center;margin-bottom:2.5rem}.compete-hero-title{font-size:2.25rem;font-weight:800;letter-spacing:-0.03em;margin-bottom:0.5rem}.compete-hero-desc{color:var(--text-secondary);font-size:1.05rem;max-width:600px;margin:0 auto}.compete-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;margin-bottom:3rem}.compete-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.75rem;display:flex;flex-direction:column;justify-content:space-between;transition:transform var(--transition-base),border-color var(--transition-base)}.compete-card:hover{border-color:var(--accent-primary);transform:translateY(-2px)}.compete-card-header{margin-bottom:1rem}.compete-card-badge{display:inline-block;font-size:0.75rem;font-family:var(--font-mono);font-weight:700;text-transform:uppercase;padding:0.2rem 0.6rem;border-radius:var(--radius-full);background:var(--accent-subtle);color:var(--accent-primary);margin-bottom:0.75rem}.compete-card-title{font-size:1.4rem;font-weight:700;margin-bottom:0.5rem}.compete-card-desc{color:var(--text-secondary);font-size:0.95rem;line-height:1.5}.compete-optin-box{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;margin-top:2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.race-container{max-width:900px;margin:0 auto}.race-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.race-track-wrapper{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:2rem;box-shadow:0 4px 20px rgba(0,0,0,0.25)}.race-lane{position:relative;padding:0.75rem 0;border-bottom:1px dashed var(--border-color)}.race-lane:last-child{border-bottom:none}.race-lane-meta{display:flex;justify-content:space-between;font-size:0.85rem;margin-bottom:0.4rem}.race-lane-name{font-weight:600;display:flex;align-items:center;gap:0.4rem}.race-lane-wpm{font-family:var(--font-mono);color:var(--text-secondary)}.race-lane-bar-track{position:relative;width:100%;height:14px;background:var(--bg-surface);border-radius:var(--radius-full);overflow:hidden;border:1px solid var(--border-subtle)}.race-lane-bar-fill{height:100%;width:0%;background:var(--text-muted);border-radius:var(--radius-full);transition:width 0.25s linear}.race-lane.is-you .race-lane-bar-fill{background:var(--accent-primary);box-shadow:0 0 10px var(--accent-glow)}.race-lane.is-bot .race-lane-bar-fill{background:#60a5fa}.race-lane.is-winner .race-lane-bar-fill{background:#f59e0b}.race-lane-avatar{position:absolute;top:-4px;font-size:1.1rem;transform:translateX(-50%);transition:left 0.25s linear;pointer-events:none}.race-prompt-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.75rem;position:relative;min-height:180px;cursor:text}.race-prompt-card.focused{border-color:var(--border-focus)}.race-prompt-words{font-family:var(--font-mono);font-size:1.25rem;line-height:2;color:var(--text-muted);letter-spacing:0.02em;user-select:none;outline:none}.race-word{display:inline-block;margin-right:0.6em;position:relative}.race-word.active{color:var(--text-primary);text-decoration:underline;text-underline-offset:4px}.race-char.correct{color:var(--accent-primary)}.race-char.incorrect{color:#ef4444;background:rgba(239,68,68,0.2);border-radius:2px}.race-hidden-input{position:absolute;opacity:0;pointer-events:none}.countdown-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.75);backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1000}.countdown-number{font-size:6rem;font-weight:900;font-family:var(--font-mono);color:var(--accent-primary);text-shadow:0 0 30px var(--accent-glow);animation:pulseCount 0.9s infinite}@keyframes pulseCount{0%{transform:scale(0.8);opacity:0.5}50%{transform:scale(1.15);opacity:1}100%{transform:scale(1);opacity:0.9}}.race-results-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:2rem;text-align:center;margin-top:2rem}.race-placement-badge{display:inline-block;font-size:2rem;font-weight:900;color:var(--accent-primary);margin-bottom:0.5rem}.race-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1rem;margin:1.5rem 0}.race-stat-box{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:1rem}.race-stat-val{font-size:1.5rem;font-family:var(--font-mono);font-weight:800;color:var(--text-primary)}.race-stat-lbl{font-size:0.75rem;color:var(--text-muted);text-transform:uppercase}.lobby-code-box{display:inline-flex;align-items:center;gap:0.75rem;background:var(--bg-surface);border:2px dashed var(--border-color);border-radius:var(--radius-md);padding:0.5rem 1rem;font-family:var(--font-mono);font-size:1.5rem;font-weight:800;letter-spacing:0.15em;color:var(--accent-primary)}.lobby-players-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin:1.5rem 0}.lobby-player-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:0.75rem;display:flex;align-items:center;gap:0.5rem}.lobby-player-card.is-host{border-color:var(--accent-primary)}