/*
 * typefast.ninja™ - Typing Games to Improve Your Speed and Accuracy
 * Copyright (c) 2025 Stuart E. Green - All Rights Reserved
 * Unauthorized copying, modification, distribution, or use of this software
 * via any medium is strictly prohibited without express written permission.
 * typefast.ninja
 */
:root{--primary-color:#6366f1;--secondary-color:#8b5cf6;--success-color:#10b981;--danger-color:#ef4444;--dark-color:#1f2937;--light-bg:#f9fafb}body{min-height:100vh;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif}#app{flex:1;display:flex;flex-direction:column}main{flex:1}.navbar-brand{font-weight:700;font-size:1.5rem}.navbar-brand i{color:var(--primary-color)}.hero{background:linear-gradient(135deg,var(--primary-color) 0,var(--secondary-color) 100%);color:#fff;padding:4rem 0;margin-bottom:3rem}.hero h1{font-size:3rem;font-weight:700;margin-bottom:1rem}.hero p{font-size:1.25rem;opacity:.9}.game-card{transition:transform .3s,box-shadow .3s;border:none;border-radius:12px;overflow:hidden}.game-card:hover{transform:translateY(-5px);box-shadow:0 10px 25px rgba(0,0,0,.15)}.game-card .card-header{background:linear-gradient(135deg,var(--primary-color) 0,var(--secondary-color) 100%);color:#fff;font-weight:700;padding:1.25rem}.game-card .difficulty-badge{font-size:.875rem}.game-container{max-width:900px;margin:2rem auto}.game-display{background:#f8f9fa;border:2px solid #dee2e6;border-radius:12px;padding:2rem;min-height:200px;font-family:'Courier New',monospace;font-size:1.5rem;line-height:2;position:relative}.game-text{user-select:none}.char{display:inline-block;position:relative}.char.correct{color:var(--success-color)}.char.incorrect{color:var(--danger-color);background-color:rgba(239,68,68,.1)}.char.current{background-color:rgba(99,102,241,.2);animation:1s infinite pulse}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}.game-input{font-family:'Courier New',monospace;font-size:1.25rem;padding:1rem;border:2px solid var(--primary-color);border-radius:8px}.game-input:focus{box-shadow:0 0 0 .25rem rgba(99,102,241,.25)}.stats-panel{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 10px rgba(0,0,0,.1)}.stat-item{text-align:center}.stat-value{font-size:2rem;font-weight:700;color:var(--primary-color)}.stat-label{font-size:.875rem;color:#6b7280;text-transform:uppercase}.results-summary{text-align:center;padding:2rem}.results-summary .main-stat{font-size:4rem;font-weight:700;color:var(--primary-color)}.results-summary .stat-row{display:flex;justify-content:space-around;margin-top:2rem}.keyboard-visual{background:#fff;border-radius:12px;padding:1.5rem;margin-top:1.5rem}.keyboard-row{display:flex;justify-content:center;gap:.25rem;margin-bottom:.25rem}.key{background:#e5e7eb;border:2px solid #d1d5db;border-radius:6px;padding:.75rem 1rem;font-weight:700;min-width:45px;text-align:center;transition:.2s}.key.highlight{background:var(--primary-color);color:#fff;transform:scale(1.1);box-shadow:0 4px 12px rgba(99,102,241,.4)}.key.target{background:var(--secondary-color);color:#fff;animation:1s infinite targetPulse}@keyframes targetPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}@media (max-width:768px){.hero h1{font-size:2rem}.game-display{font-size:1.25rem;padding:1rem}.key{padding:.5rem .75rem;min-width:35px;font-size:.875rem}}.spinner-border-lg{width:3rem;height:3rem}.modal.show{background-color:rgba(0,0,0,.5)}.text-gradient{background:linear-gradient(135deg,var(--primary-color) 0,var(--secondary-color) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn-gradient{background:linear-gradient(135deg,var(--primary-color) 0,var(--secondary-color) 100%);border:none;color:#fff;transition:transform .2s}.btn-gradient:hover{transform:translateY(-2px);box-shadow:0 5px 15px rgba(99,102,241,.3);color:#fff}