.nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-6);width:100%;max-width:1200px;margin:0 auto;padding:var(--space-4) 0;flex-shrink:0}.nav-brand{font-size:var(--text-4xl);font-weight:700;letter-spacing:2px;text-decoration:none;background:linear-gradient(135deg,var(--ink) 0%,var(--personal-best) 50%,var(--ink) 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 20px color-mix(in srgb,var(--ink) 50%,transparent),0 0 40px color-mix(in srgb,var(--ink) 30%,transparent),0 4px 8px rgba(0,0,0,.5);animation:brandGlow 3s ease-in-out infinite}@keyframes brandGlow{0%,to{filter:brightness(1)}50%{filter:brightness(1.2)}}.nav-links{display:flex;align-items:center;gap:var(--space-5)}.nav-link{color:var(--ink-secondary);font-size:var(--text-xl);font-weight:600;text-decoration:none;padding:var(--space-1) 0;border-bottom:2px solid transparent}.nav-link:hover{color:var(--ink)}.nav-link[aria-current=page]{color:var(--ink);border-bottom-color:var(--personal-best)}.nav-help{width:40px;height:40px;border:2px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--panel);color:var(--ink);font-size:var(--text-xl);font-weight:700;cursor:pointer}.nav-help:hover{border-color:var(--ink-muted)}.nav-brand:focus-visible,.nav-link:focus-visible,.nav-help:focus-visible{outline:2px solid var(--key-target);outline-offset:4px}.nav-brand:focus-visible,.nav-link:focus-visible{border-radius:var(--radius-sm)}@media (max-width: 768px){.nav{column-gap:var(--space-3);padding:var(--space-2) 0 var(--space-3)}.nav-brand{font-size:var(--text-xl);letter-spacing:1px}.nav-links{gap:var(--space-3)}.nav-link{font-size:var(--text-base)}.nav-help{width:36px;height:36px;font-size:var(--text-lg)}}:root{--bg-0: #0a0a0f;--bg-1: #1a1a2e;--bg-2: #16213e;--panel: rgba(30, 30, 45, .8);--panel-end: rgba(50, 50, 70, .6);--ink: #fff6da;--ink-secondary: rgba(255, 246, 218, .7);--ink-muted: rgba(255, 246, 218, .5);--line-strong: rgba(255, 246, 218, .3);--line: rgba(255, 246, 218, .2);--line-subtle: rgba(255, 246, 218, .1);--finger-pinky: #ffc300;--finger-ring: #ff5733;--finger-middle: #c70039;--finger-index-left: #900c3f;--finger-index-right: #581845;--on-finger-pinky: var(--bg-1);--on-finger-ring: var(--bg-1);--on-finger-middle: var(--ink);--on-finger-index-left: var(--ink);--on-finger-index-right: var(--ink);--key-target: #33ffe0;--key-target-edge: #00ffd0;--on-key-target: #000000;--weak-key: #ff4d4d;--typed: #90ee90;--personal-best: #ffd700;--action-primary: #3a863d;--action-primary-end: #337736;--action-secondary: #15847a;--action-secondary-end: #10675f;--on-action: #ffffff;--wpm-fast: #4caf50;--wpm-steady: #ffa500;--wpm-slow: var(--weak-key);--chart-series: #1aa89a;--chart-best: rgba(255, 215, 0, .7);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono: "Consolas", "Monaco", "Courier New", monospace;--font-symbols: system-ui, "Segoe UI Symbol", sans-serif;--text-xs: 12px;--text-sm: 13px;--text-md: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 28px;--text-4xl: 32px;--text-5xl: 36px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--key-gap: 6px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-pill: 999px;--shadow-raised: 0 8px 30px rgba(0, 0, 0, .4), inset 0 2px 10px rgba(255, 255, 255, .05);--shadow-floating: 0 10px 40px rgba(0, 0, 0, .5), inset 0 2px 10px rgba(255, 255, 255, .05);--shadow-key: 0 4px 8px rgba(0, 0, 0, .3), inset 0 -3px 8px rgba(0, 0, 0, .3), inset 0 2px 4px rgba(255, 255, 255, .1);--shadow-key-hover: 0 6px 12px rgba(0, 0, 0, .4), inset 0 -3px 8px rgba(0, 0, 0, .3), inset 0 2px 4px rgba(255, 255, 255, .15), 0 0 15px rgba(255, 246, 218, .2);--shadow-key-pressed: 0 2px 4px rgba(0, 0, 0, .3), inset 0 2px 6px rgba(0, 0, 0, .4)}*{box-sizing:border-box}html{background-color:var(--bg-1);color-scheme:dark}body{margin:0;padding:0;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;min-height:100vh}.app{background:linear-gradient(135deg,var(--bg-0) 0%,var(--bg-1) 50%,var(--bg-2) 100%);min-height:100vh;margin:0;padding:var(--space-4) var(--space-5);position:relative;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;box-sizing:border-box}.app-content{display:flex;flex-direction:column;width:100%}.site-footer{margin-top:auto;padding-top:var(--space-2);flex-shrink:0;color:var(--ink-secondary);font-size:var(--text-sm);text-align:center}@media (min-width: 769px){.app{padding:var(--space-6) var(--space-10)}.app-content{zoom:.75}}.app:before{content:"";position:fixed;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,color-mix(in srgb,var(--ink) 3%,transparent) 1px,transparent 1px);background-size:30px 30px;pointer-events:none;animation:backgroundMove 20s linear infinite}@keyframes backgroundMove{0%{transform:translate(0)}to{transform:translate(30px,30px)}}.restart-button{--button-color: var(--action-primary);--button-color-end: var(--action-primary-end);background:linear-gradient(135deg,var(--button-color),var(--button-color-end));color:var(--on-action);border:none;padding:var(--space-4) var(--space-10);font-size:var(--text-2xl);font-weight:700;border-radius:var(--radius-lg);cursor:pointer;box-shadow:0 6px 20px color-mix(in srgb,var(--button-color) 40%,transparent),inset 0 2px 5px #fff3;transition:all .3s ease;text-transform:uppercase;letter-spacing:1px;position:relative;overflow:hidden}.restart-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s}.restart-button:hover:before{left:100%}.restart-button:hover{transform:translateY(-2px);box-shadow:0 8px 25px color-mix(in srgb,var(--button-color) 60%,transparent),inset 0 2px 5px #ffffff4d}.restart-button:active{transform:translateY(1px);box-shadow:0 4px 15px color-mix(in srgb,var(--button-color) 40%,transparent),inset 0 2px 5px #0003}.secondary-button{--button-color: var(--action-secondary);--button-color-end: var(--action-secondary-end)}@media (max-width: 768px){.restart-button{padding:var(--space-3) var(--space-8);font-size:var(--text-xl)}}
