*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;color:#1e293b;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.container{margin:0 auto;max-width:800px;padding:20px}.btn{border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .2s}.btn-primary{background-color:#3b82f6;color:#fff}.btn-primary:hover{background-color:#2563eb}.btn-secondary{background-color:#6b7280;color:#fff}.btn-secondary:hover{background-color:#4b5563}.card{background:#fff;border-radius:12px;box-shadow:0 1px 3px 0 rgba(0,0,0,.1);margin-bottom:20px;padding:24px}.homepage{background:#fff;color:#1a1a1a;font-family:system-ui,-apple-system,sans-serif;min-height:100vh}.homepage-container{margin:0 auto;max-width:1200px;padding:0 1rem}.hero-section{padding:3rem 0 2rem;text-align:center}.hero-title{color:#1a1a1a;font-size:3rem;font-weight:800;letter-spacing:-.025em;line-height:1.1;margin:0 0 1rem}.hero-subtitle{color:#6b7280;font-size:1.25rem;font-weight:400;line-height:1.4;margin:0 0 2rem}.how-it-works-section{padding:1.5rem 0 2rem}.section-title{color:#1a1a1a;font-size:2rem;font-weight:700;margin:0 0 2rem;text-align:center}.steps-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(3,1fr);margin:0 auto;max-width:1000px}.step{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:1.5rem 1rem;text-align:center;transition:all .2s ease}.step:hover{box-shadow:0 8px 25px rgba(0,0,0,.1);transform:translateY(-4px)}.step-number{align-items:center;background:#3b82f6;border-radius:50%;color:#fff;display:inline-flex;font-size:1.25rem;font-weight:700;height:50px;justify-content:center;margin:0 0 1rem;width:50px}.step-title{color:#1e293b;font-size:1.125rem;font-weight:600;margin:0 0 .75rem}.step-description{color:#64748b;font-size:.9rem;line-height:1.5;margin:0}.early-access-section{padding:1.5rem 0 3rem}.early-access-card{background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:16px;box-shadow:0 8px 25px rgba(59,130,246,.3);color:#fff;margin:0 auto;max-width:600px;padding:2rem 1.5rem;text-align:center}.early-access-title{font-size:1.25rem;font-weight:600;line-height:1.3;margin:0 0 .75rem}.early-access-subtitle{font-size:.95rem;line-height:1.4;margin:0 0 1.5rem;opacity:.9}.early-access-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:hsla(0,0%,100%,.15);border:1px solid hsla(0,0%,100%,.2);border-radius:12px;color:#fff;display:inline-block;font-size:1rem;font-weight:600;padding:.875rem 2rem;text-decoration:none;transition:all .2s ease}.early-access-button:hover{background:hsla(0,0%,100%,.25);box-shadow:0 6px 20px rgba(0,0,0,.15);color:#fff;text-decoration:none;transform:translateY(-2px)}@media (max-width:1024px){.steps-grid{gap:1rem}.step{padding:1.25rem .75rem}.step-description{font-size:.85rem}}@media (max-width:768px){.hero-title{font-size:2.5rem}.hero-subtitle{font-size:1.125rem}.section-title{font-size:1.75rem;margin:0 0 1.5rem}.steps-grid{gap:1rem;grid-template-columns:1fr;max-width:400px}.early-access-card,.step{padding:1.5rem 1rem}.early-access-card{margin:0 1rem}.early-access-title{font-size:1.125rem}}@media (max-width:480px){.hero-section{padding:2rem 0 1.5rem}.hero-title{font-size:2rem}.hero-subtitle{font-size:1rem}.how-it-works-section{padding:1rem 0 1.5rem}.early-access-section{padding:1rem 0 2rem}}.share-page{background:#fff;color:#1a1a1a;min-height:100vh}.error-container,.loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:2rem;text-align:center}.loading-spinner{animation:spin 1s ease-in-out infinite;border:4px solid hsla(0,0%,100%,.3);border-radius:50%;border-top-color:#fff;height:48px;margin-bottom:1rem;width:48px}@keyframes spin{to{transform:rotate(1turn)}}.loading-skeleton{padding:0}.skeleton-header{background:#fff;border-radius:0 0 24px 24px;box-shadow:0 8px 32px rgba(0,0,0,.1);margin-bottom:1rem;overflow:hidden}.skeleton-banner{background:linear-gradient(135deg,#e5e7eb,#d1d5db);height:200px;position:relative}.skeleton-overlay{bottom:0;left:0;padding:1.5rem;position:absolute;right:0}.skeleton-profile{align-items:center;display:flex;gap:1rem}.skeleton-avatar{animation:pulse 2s ease-in-out infinite;background:hsla(0,0%,100%,.8);border-radius:50%;height:60px;width:60px}.skeleton-info{display:flex;flex:1 1;flex-direction:column;gap:.5rem}.skeleton-name{background:hsla(0,0%,100%,.9);height:20px;width:150px}.skeleton-name,.skeleton-race{animation:pulse 2s ease-in-out infinite;border-radius:4px}.skeleton-race{background:hsla(0,0%,100%,.8);height:16px;width:120px}.skeleton-date{animation:pulse 2s ease-in-out infinite;background:hsla(0,0%,100%,.7);border-radius:4px;height:14px;width:80px}.skeleton-content{padding:0 1rem 2rem;text-align:center}.skeleton-title{background:#e5e7eb;height:24px;margin:0 auto .5rem;width:200px}.skeleton-subtitle,.skeleton-title{animation:pulse 2s ease-in-out infinite;border-radius:4px}.skeleton-subtitle{background:#f3f4f6;height:16px;margin:0 auto 1.5rem;width:280px}.skeleton-progress{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;margin-bottom:1.5rem;padding:1rem}.skeleton-progress-bar{animation:pulse 2s ease-in-out infinite;background:#e5e7eb;border-radius:4px;height:8px;width:100%}.skeleton-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(40px,1fr));margin:0 auto;max-width:520px}.skeleton-mile-btn{animation:pulse 2s ease-in-out infinite;background:#f3f4f6;border-radius:6px;height:32px;width:40px}.error-container{color:#fff}.error-icon{font-size:4rem;margin-bottom:1rem}.race-header{background:#fff;border-radius:0 0 24px 24px;box-shadow:0 8px 32px rgba(0,0,0,.1);margin-bottom:1rem;overflow:hidden;position:relative}.race-image-container{height:200px;overflow:hidden;position:relative}.race-image{height:100%;object-fit:cover;width:100%}.image-overlay{background:linear-gradient(180deg,rgba(0,0,0,.1) 0,rgba(0,0,0,.3) 50%,rgba(0,0,0,.7));top:0}.banner-overlay-content,.image-overlay{bottom:0;left:0;position:absolute;right:0}.banner-overlay-content{padding:1.5rem;z-index:2}.runner-profile-overlay{align-items:center;display:flex;gap:1rem}.runner-avatar-overlay{object-fit:cover}.runner-avatar-overlay,.runner-avatar-overlay-placeholder{border:3px solid hsla(0,0%,100%,.9);border-radius:50%;box-shadow:0 4px 12px rgba(0,0,0,.3);flex-shrink:0;height:60px;width:60px}.runner-avatar-overlay-placeholder{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center}.avatar-initial-overlay{color:#fff;font-size:1.4rem;font-weight:700}.runner-info-overlay{flex:1 1;min-width:0}.runner-name-overlay{align-items:center;color:#fff;display:flex;font-size:1.5rem;font-weight:700;gap:.5rem;margin:0 0 .25rem;text-shadow:0 2px 4px rgba(0,0,0,.7)}.race-details-overlay{color:hsla(0,0%,100%,.95);font-size:1rem;font-weight:600;margin:0 0 .25rem;text-shadow:0 1px 3px rgba(0,0,0,.7)}.race-date-overlay{color:hsla(0,0%,100%,.85);font-size:.875rem;font-weight:500;margin:0;text-shadow:0 1px 3px rgba(0,0,0,.7)}.header-content{padding:1.5rem;position:relative}.runner-profile{align-items:flex-start;display:flex;gap:1rem;margin-bottom:1.5rem}.runner-avatar{object-fit:cover}.runner-avatar,.runner-avatar-placeholder{border:3px solid #fff;border-radius:50%;box-shadow:0 4px 12px rgba(0,0,0,.15);flex-shrink:0;height:64px;width:64px}.runner-avatar-placeholder{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center}.avatar-initial{color:#fff;font-size:1.5rem;font-weight:700}.runner-info{flex:1 1;min-width:0}.runner-name{align-items:center;color:#1e293b;display:flex;font-size:1.5rem;font-weight:800;gap:.5rem;line-height:1.2;margin:0 0 .25rem}.runner-emoji{font-size:1.25rem}.race-details{color:#64748b;font-size:1rem;font-weight:500;margin:0 0 .25rem}.race-date{color:#94a3b8;font-size:.875rem;font-weight:400;margin:0}.call-to-action{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border:1px solid #e2e8f0;border-radius:16px;padding:1rem;text-align:center}.cta-main{color:#1e293b;font-size:1.125rem;font-weight:600;margin:0 0 .5rem}.cta-sub{color:#64748b;font-size:.875rem;margin:0}.main-content{padding:0 1rem 2rem}.selection-header{margin-bottom:1.5rem;text-align:center}.selection-header h2{color:#1a1a1a;font-size:1.5rem;font-weight:700;margin:0 0 .5rem}.selection-subtext{color:#6b7280;font-size:1rem;line-height:1.4;margin:0 0 1rem}.is-running{font-weight:400;opacity:.8}.overall-progress{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:1rem}.progress-summary{align-items:baseline;display:flex;gap:.25rem;justify-content:center;margin-bottom:.75rem}.completed-count{color:#10b981;font-size:2rem;font-weight:800}.total-count{color:#374151;font-size:1.25rem;font-weight:600}.progress-label{color:#6b7280;font-size:.875rem;margin-left:.5rem}.overall-progress-bar{background:#e5e7eb;border-radius:4px;height:8px;overflow:hidden}.overall-progress-fill{background:linear-gradient(90deg,#10b981,#059669);border-radius:4px;height:100%;transition:width .3s ease}.mile-sections{display:flex;flex-direction:column;gap:1rem}.mile-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:hsla(0,0%,100%,.95);border:1px solid hsla(0,0%,100%,.2);border-radius:16px;box-shadow:0 4px 20px rgba(0,0,0,.1);padding:1rem}.mile-section-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:.75rem;padding-bottom:.75rem}.mile-range{color:#374151;font-size:.875rem;font-weight:600}.section-progress{align-items:center;display:flex;gap:.5rem}.progress-bar{background:#e5e7eb;border-radius:2px;height:4px;overflow:hidden;width:40px}.progress-fill{background:#10b981;border-radius:2px;height:100%;transition:width .3s ease}.progress-text{color:#6b7280;font-size:.75rem;font-weight:500}.mile-grid{grid-gap:.5rem;gap:.5rem;grid-template-columns:repeat(5,1fr)}.mile-grid-simple{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(40px,1fr));margin:0 auto;max-width:520px}.mile-btn{align-items:center;aspect-ratio:1;background:#f8fafc;border-radius:12px;color:#374151;display:flex;font-size:1rem;justify-content:center;min-height:48px;position:relative;transition:all .2s ease}.mile-btn:hover:not(:disabled){box-shadow:0 4px 12px rgba(0,0,0,.15);transform:translateY(-2px)}.mile-btn.available:hover{background:#3b82f6;border-color:#3b82f6;color:#fff}.mile-btn.selected{border-color:#2563eb;box-shadow:0 4px 12px rgba(59,130,246,.4);transform:translateY(-2px)}.mile-btn.taken{background:#10b981;border-color:#059669;color:#fff;cursor:default}.mile-btn:disabled{cursor:not-allowed}.mile-number{position:relative;z-index:1}.mile-status{background:#059669;border:2px solid #fff;border-radius:50%;color:#fff;font-size:.75rem;height:18px;position:absolute;right:-2px;top:-2px;width:18px}.mile-btn-compact,.mile-status{align-items:center;display:flex;justify-content:center}.mile-btn-compact{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;color:#374151;cursor:pointer;font-size:.875rem;font-weight:600;height:32px;position:relative;transition:all .15s ease;width:40px}.mile-btn-compact:hover:not(:disabled){background:#3b82f6;border-color:#3b82f6;color:#fff;transform:translateY(-1px)}.mile-btn-compact.selected{background:#3b82f6;border-color:#2563eb;color:#fff;transform:translateY(-1px)}.mile-btn-compact.taken{background:#10b981;border-color:#059669;color:#fff;cursor:default}.mile-btn-compact:disabled{cursor:not-allowed}.checkmark{align-items:center;background:#059669;border:1px solid #fff;border-radius:50%;color:#fff;display:flex;font-size:.625rem;height:14px;justify-content:center;position:absolute;right:-4px;top:-4px;width:14px}.record-button-container{align-items:center;display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem;text-align:center}.selected-mile-info{align-items:center;color:#1a1a1a;display:flex;font-size:.95rem;font-weight:500;gap:.5rem}.record-voice-note-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:12px;box-shadow:0 4px 12px rgba(59,130,246,.3);color:#fff;cursor:pointer;font-size:1rem;font-weight:600;min-width:200px;padding:.875rem 2rem;transition:all .2s ease}.record-voice-note-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 6px 16px rgba(59,130,246,.4);transform:translateY(-2px)}.record-voice-note-btn:active{box-shadow:0 2px 8px rgba(59,130,246,.3);transform:translateY(0)}.inline-recorder{margin-top:1rem;width:100%}.inline-recording-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:hsla(0,0%,100%,.95);border:1px solid hsla(0,0%,100%,.2);border-radius:16px;box-shadow:0 4px 20px rgba(0,0,0,.08);padding:1.5rem}.error-message{background:#fef2f2;color:#dc2626}.error-message,.success-message{border-radius:8px;font-size:.875rem;margin-bottom:1rem;padding:.75rem}.success-message{background:#ecfdf5;color:#059669;text-align:center}.success-redirect{color:#6b7280;font-size:.875rem;padding:1rem;text-align:center}.inline-record-controls{align-items:center;display:flex;flex-direction:column;gap:.75rem}.inline-record-btn{align-items:center;border:none;border-radius:12px;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;justify-content:center;min-width:160px;padding:.875rem 1.5rem;transition:all .2s ease}.inline-record-btn.ready{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 4px 12px rgba(239,68,68,.3);color:#fff}.inline-record-btn.ready:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 6px 16px rgba(239,68,68,.4);transform:translateY(-2px)}.inline-record-btn.recording{background:linear-gradient(135deg,#6b7280,#4b5563);box-shadow:0 4px 12px hsla(220,9%,46%,.3);color:#fff}.pulse-dot{animation:pulse 1.5s ease-in-out infinite}.inline-timer{background:rgba(239,68,68,.1);border-radius:8px;color:#ef4444;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:1rem;font-weight:600;padding:.5rem 1rem}.inline-hint{color:#6b7280;font-size:.875rem;margin:0;text-align:center}.inline-cancel-btn{background:none;border:1px solid #d1d5db;border-radius:6px;color:#6b7280;cursor:pointer;font-size:.875rem;margin-top:.5rem;padding:.5rem 1rem;transition:all .15s ease}.inline-cancel-btn:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af;color:#374151}.inline-audio-preview{display:flex;flex-direction:column;gap:1rem}.preview-header{align-items:center;color:#374151;display:flex;font-weight:600;gap:.5rem;justify-content:center}.inline-audio-player{background:#f8fafc;border-radius:8px;width:100%}.inline-duration{color:#6b7280;font-size:.875rem;text-align:center}.inline-actions{display:flex;gap:.75rem;justify-content:center}.inline-btn{border:none;border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:600;min-width:100px;padding:.75rem 1.5rem;transition:all .15s ease}.inline-btn.secondary{background:#f3f4f6;border:1px solid #d1d5db;color:#374151}.inline-btn.secondary:hover:not(:disabled){background:#e5e7eb;border-color:#9ca3af}.inline-btn.primary{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 2px 8px rgba(16,185,129,.3);color:#fff}.inline-btn.primary:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);box-shadow:0 4px 12px rgba(16,185,129,.4);transform:translateY(-1px)}.inline-btn:disabled{cursor:not-allowed;opacity:.6;transform:none!important}.recording-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:hsla(0,0%,100%,.95);border:1px solid hsla(0,0%,100%,.2);border-radius:20px;box-shadow:0 8px 32px rgba(0,0,0,.1);padding:1.5rem}.selected-mile-header{margin-bottom:1.5rem}.back-button{background:none;border:none;color:#6b7280;cursor:pointer;font-size:.875rem;margin-bottom:.5rem;padding:.5rem 0;transition:color .2s}.back-button:hover{color:#374151}.selected-mile-title{color:#1e293b;font-size:1.25rem;font-weight:700;margin:0}.selection-indicator{bottom:2rem;left:1rem;position:fixed;right:1rem;z-index:10}.selected-mile-card{align-items:center;animation:slideUp .3s ease;background:#3b82f6;border-radius:16px;box-shadow:0 8px 24px rgba(59,130,246,.4);color:#fff;display:flex;font-weight:600;gap:.5rem;justify-content:center;padding:1rem}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.selection-icon{font-size:1.25rem}@media (min-width:640px){.main-content{margin:0 auto;max-width:600px;padding:0 2rem 2rem}.race-header{margin:0 auto 1rem;max-width:600px}.mile-grid{gap:.75rem;grid-template-columns:repeat(5,1fr)}.runner-name{font-size:1.75rem}.selection-indicator{left:50%;right:auto;transform:translateX(-50%);width:300px}}@media (min-width:768px){.race-image-container{height:240px}.header-content{padding:2rem}.mile-grid{gap:1rem}.mile-btn{font-size:1.125rem;min-height:52px}}.recording-section h3{color:#1e293b;font-size:1.25rem;font-weight:600;margin-bottom:1.5rem}@media (prefers-color-scheme:dark){.mile-btn{background:#374151;border-color:#4b5563;color:#f9fafb}.mile-btn.available:hover{background:#3b82f6;border-color:#3b82f6}}@media (max-width:767px){.banner-overlay-content{padding:1rem}.runner-avatar-overlay,.runner-avatar-overlay-placeholder{border-width:2px;height:50px;width:50px}.avatar-initial-overlay{font-size:1.2rem}.runner-name-overlay{font-size:1.3rem}.race-details-overlay{font-size:.9rem}.race-date-overlay{font-size:.8rem}}.App{background:#fff;min-height:100vh}.share-container{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:20px}.share-card{background:#fff;border-radius:16px;box-shadow:0 20px 25px -5px rgba(0,0,0,.1);max-width:500px;padding:32px;width:100%}.runner-name{margin-bottom:24px;text-align:center}.runner-name h2{color:#1e293b;font-size:1.8rem;margin-bottom:8px}.runner-name p{color:#64748b;font-size:1rem}.mile-selector{margin-bottom:24px}.mile-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(60px,1fr));margin-top:12px}.mile-btn{background:#fff;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;font-weight:600;padding:12px;transition:all .2s}.mile-btn:hover{border-color:#3b82f6;color:#3b82f6}.mile-btn.selected{background:#3b82f6;border-color:#3b82f6;color:#fff}.mile-btn.taken{background:#f1f5f9;border-color:#cbd5e1;color:#94a3b8;cursor:not-allowed}.recording-section{text-align:center}.record-btn{align-items:center;border:none;border-radius:50%;cursor:pointer;display:flex;height:80px;justify-content:center;margin:20px auto;transition:all .2s;width:80px}.record-btn.ready{background:#dc2626;color:#fff}.record-btn.recording{animation:pulse 1s infinite;background:#991b1b}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.timer{color:#dc2626;font-size:1.2rem;font-weight:600;margin:10px 0}.audio-preview{background:#f8fafc;border-radius:8px;margin:20px 0;padding:16px}.submit-section{margin-top:24px;text-align:center}.submit-section .btn{margin:0 8px}
/*# sourceMappingURL=main.70aeeded.css.map*/