body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-tap-highlight-color:transparent;background:linear-gradient(135deg,#667eea,#764ba2);font-family:Orbitron,monospace;overflow-x:hidden;touch-action:manipulation}.App,.game-container,body{min-height:100vh}.game-container{display:flex;flex-direction:column;gap:20px;max-width:100vw;padding:20px}.game-header{color:#fff;margin-bottom:20px;text-align:center}.header-top{align-items:center;display:flex;flex-direction:column;gap:15px;margin-bottom:20px}.game-header h1{font-size:clamp(1.5rem,5vw,2.5rem);font-weight:900;letter-spacing:2px;margin-bottom:0;text-shadow:2px 2px 4px #00000080}.device-info{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:25px;display:flex;gap:15px;padding:10px 20px}.device-info span{font-size:1rem;font-weight:600}.sign-out-btn{background:#dc3545cc;border:none;border-radius:15px;color:#fff;cursor:pointer;font-size:.8rem;padding:5px 12px;transition:all .3s ease}.sign-out-btn:hover{background:#dc3545;transform:translateY(-1px)}.stats{display:flex;flex-wrap:wrap;gap:30px;justify-content:center}.stat-item{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:25px;min-width:120px;padding:10px 20px}.stat-label{display:block;font-size:.9rem;margin-bottom:5px;opacity:.8}.stat-value{color:gold;font-size:1.5rem;font-weight:700;text-shadow:1px 1px 2px #00000080}.unit{font-size:.8rem;margin-left:5px;opacity:.7}.game-area{background:linear-gradient(180deg,#87ceeb 0,#90ee90);border:3px solid #333;border-radius:20px;box-shadow:0 10px 30px #0000004d;height:60vh;min-height:300px;overflow:hidden;position:relative;width:100%}.progress-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000c;border:2px solid #ffffff4d;border-radius:25px;left:50%;padding:10px 20px;position:absolute;text-align:center;top:20px;transform:translateX(-50%);z-index:20}.progress-bar{background:#ffffff4d;border-radius:6px;height:12px;margin-bottom:8px;overflow:hidden;width:200px}.progress-fill{background:linear-gradient(90deg,#4caf50,#45a049);border-radius:6px;box-shadow:0 0 10px #4caf5080;height:100%;transition:width .3s ease}.progress-text{color:#fff;font-size:.9rem;font-weight:700;text-shadow:1px 1px 2px #000c}.road{align-items:center;background:#333;bottom:0;display:flex;flex-direction:row;height:40%;justify-content:flex-start;padding-left:clamp(10px,2vw,30px);position:absolute;transition:transform .1s ease-out}.road:after{background:linear-gradient(90deg,#0000,#333);content:"";height:100%;pointer-events:none;position:absolute;right:0;top:0;width:500%}.road-lines{background:#fff!important;border:1px solid red!important;border-radius:4px!important;box-sizing:border-box!important;display:inline-block!important;flex-grow:0!important;flex-shrink:0!important;height:8px!important;margin-right:20px!important;max-width:60px!important;min-width:60px!important;width:60px!important}.car{bottom:40%;height:40px;position:absolute;transition:transform .1s ease-out;width:80px;z-index:10}.car-body{height:100%;position:relative;width:100%}.car-top{border:2px solid #900;border-radius:20px 20px 0 0;height:60%;left:20%;top:0;width:60%}.car-bottom,.car-top{background:linear-gradient(45deg,#f44,#c00);position:absolute}.car-bottom{border:2px solid #900;border-radius:0 0 20px 20px;bottom:0;height:40%;width:100%}.car-wheel{background:#333;border:3px solid #666;border-radius:50%;bottom:-5px;height:20px;position:absolute;width:20px}.front-wheel{right:5px}.back-wheel{left:5px}.car-lights{animation:blink 1s infinite;background:#ff0;border-radius:50%;box-shadow:0 0 10px #ff0;height:8px;position:absolute;right:5px;top:5px;width:8px}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:.3}}.client{bottom:40%;left:0;position:absolute;text-align:center;z-index:5}.client-icon{animation:bounce 2s infinite;filter:drop-shadow(2px 2px 4px rgba(0,0,0,.5));font-size:3rem}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.finish-line{background:repeating-linear-gradient(90deg,#000,#000 20px,#fff 0,#fff 40px);border-radius:4px;height:8px;margin:10px auto;width:100px}.tap-area{align-items:center;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:start;left:0;position:absolute;top:20px;width:100%;z-index:15}.tap-instruction{animation:pulse 2s infinite;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000b3;border:2px solid #ffffff4d;border-radius:25px;color:#fff;font-size:clamp(1rem,3vw,1.3rem);font-weight:700;padding:15px 25px;text-align:center}.tap-feedback{color:gold;font-size:2rem;font-weight:900;opacity:0;pointer-events:none;position:absolute;text-shadow:2px 2px 4px #000c;transition:all .3s ease}.game-controls{align-items:center;display:flex;flex-direction:column;gap:20px;margin:20px 0}.controls-main{gap:20px}.controls-main,.controls-secondary{display:flex;justify-content:center}.controls-secondary{gap:15px}.group-info-display{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:15px;padding:15px 25px}.group-badge{align-items:center;display:flex;gap:15px}.group-name{color:#fff;font-size:1rem;font-weight:600}.player-indicator{align-items:center;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 8px #0000004d;display:flex;height:40px;justify-content:center;width:40px}.lane-number{font-size:1.1rem}.btn-outline{background:#0000;border:2px solid #ffffff80;box-shadow:none;color:#fff}.btn-outline:hover{background:#ffffff1a;border-color:#fffc;transform:translateY(-2px)}.btn{border-radius:25px;font-size:1.1rem;font-weight:700;letter-spacing:1px;min-width:150px;overflow:hidden;padding:15px 30px;position:relative;text-transform:uppercase}.btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.btn:hover:before{left:100%}.btn-primary{background:linear-gradient(45deg,#4caf50,#45a049);box-shadow:0 4px 15px #4caf5066}.btn-primary:hover:not(:disabled){box-shadow:0 6px 20px #4caf5099}.btn-primary:disabled{background:linear-gradient(45deg,#666,#555)}.btn-secondary{background:linear-gradient(45deg,#f44336,#d32f2f);box-shadow:0 4px 15px #f4433666}.btn-secondary:hover{box-shadow:0 6px 20px #f4433699}.btn-primary[data-state=paused]{animation:pulse-orange 2s infinite;background:linear-gradient(45deg,#ff9800,#f57c00)}@keyframes pulse-orange{0%,to{box-shadow:0 4px 15px #ff980066;transform:scale(1)}50%{box-shadow:0 6px 20px #ff980099;transform:scale(1.05)}}.modal{align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000c;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal-content{border-radius:20px;box-shadow:0 20px 60px #00000080;max-width:90vw;padding:40px;text-align:center;width:400px}.modal-content h2{color:#4caf50;font-size:2rem;margin-bottom:20px}.modal-content p{color:#333;font-size:1.1rem;margin-bottom:15px}.instructions{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:20px;color:#fff;margin-top:20px;padding:25px}.instructions h3{color:gold;font-size:1.3rem;margin-bottom:15px;text-align:center}.instructions h4{align-items:center;color:gold;display:flex;font-size:1.1rem;gap:8px;margin:20px 0 10px}.instructions ul{list-style:none;padding-left:0}.instructions li{align-items:center;border-bottom:1px solid #ffffff1a;display:flex;margin:8px 0;padding:8px 0}.instructions li:last-child{border-bottom:none}.instructions strong{color:gold;font-weight:700;margin-right:8px}.3d-features,.game-tips,.keyboard-controls{border-top:1px solid #fff3;margin-top:20px;padding-top:20px}.keyboard-controls li strong{background:#fff3;border-radius:4px;font-family:Courier New,monospace;font-size:.9rem;padding:2px 8px}.game-tips li{color:#e3f2fd;font-style:italic}.instructions li:before{content:"🚀";left:0;position:absolute}@media (max-width:768px){.game-container{gap:15px;padding:15px}.game-area{height:50vh;min-height:250px}.car{height:30px;width:60px}.car-top{border-radius:15px 15px 0 0}.car-bottom{border-radius:0 0 15px 15px}.car-wheel{height:15px;width:15px}.client-icon{font-size:2.5rem}.finish-line{height:6px;width:80px}.road-lines{display:inline-block!important;height:6px!important;max-width:50px!important;min-width:50px!important;width:50px!important}.progress-container{padding:8px 16px}.progress-bar{height:10px;width:160px}.progress-text{font-size:.8rem}.stats{gap:20px}.stat-item{min-width:100px;padding:8px 16px}.btn{font-size:1rem;min-width:120px;padding:12px 24px}}@media (max-width:480px){.game-header h1{font-size:1.8rem}.stats{flex-direction:column;gap:15px}.game-controls{align-items:center;flex-direction:column}.btn{max-width:200px;width:100%}.modal-content{margin:20px;padding:30px 20px}.road-lines{display:inline-block!important;height:5px!important;max-width:40px!important;min-width:40px!important;width:40px!important}.progress-container{padding:6px 12px}.progress-bar{height:8px;width:120px}.progress-text{font-size:.7rem}}@media (min-width:1200px){.road-lines{display:inline-block!important;height:10px!important;max-width:80px!important;min-width:80px!important;width:80px!important}.progress-container{padding:12px 24px}.progress-bar{height:14px;width:250px}.progress-text{font-size:1rem}}@media (hover:none) and (pointer:coarse){.tap-area{cursor:default}.btn:active{transform:scale(.95)}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.car,.finish-line,.road-lines{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}@keyframes fall{0%{opacity:1;transform:translateY(-50px) rotate(0deg)}to{opacity:0;transform:translateY(100vh) rotate(1turn)}}.game-area-3d{align-items:center;display:flex;flex-direction:column;height:100%;position:relative;width:100%}.game-area-3d canvas{border-radius:10px;box-shadow:0 4px 20px #0000004d}.game-area-3d .progress-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000c;border:2px solid #fff3;border-radius:25px;left:50%;padding:15px 20px;position:absolute;top:20px;transform:translateX(-50%);z-index:10}.game-area-3d .progress-bar{background:#fff3;border-radius:10px;height:20px;margin-bottom:10px;overflow:hidden;width:300px}.game-area-3d .progress-fill{background:linear-gradient(90deg,#4caf50,#8bc34a);border-radius:10px;box-shadow:0 0 10px #4caf5080;height:100%;transition:width .3s ease}.game-area-3d .progress-text{color:#fff;font-size:16px;font-weight:700;text-align:center;text-shadow:0 2px 4px #00000080}.game-area-3d .tap-instruction{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000c;border:2px solid #fff3;border-radius:25px;bottom:20px;box-shadow:0 4px 20px #0000004d;color:#fff;font-size:18px;font-weight:700;left:50%;padding:15px 25px;position:absolute;text-align:center;transform:translateX(-50%);z-index:10}.game-area-3d .progress-container:hover,.game-area-3d .tap-instruction:hover{transform:translateX(-50%) scale(1.05);transition:transform .2s ease}.multiplayer-indicator{animation:pulse 2s infinite;background:linear-gradient(45deg,#ff6b6b,#4ecdc4);border-radius:20px;box-shadow:0 4px 15px #0003;color:#fff;font-size:.9rem;font-weight:600;padding:8px 16px;position:absolute;right:20px;top:20px;z-index:10}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@media (max-width:768px){.game-area-3d .progress-container{padding:10px 15px;top:10px}.game-area-3d .progress-bar{height:15px;width:250px}.game-area-3d .progress-text{font-size:14px}.game-area-3d .tap-instruction{bottom:10px;font-size:16px;padding:12px 20px}}@media (max-width:480px){.game-area-3d .progress-bar{width:200px}.game-area-3d .tap-instruction{font-size:14px;padding:10px 15px}}.winner-info{background:linear-gradient(135deg,#ffd7001a,#ffc1071a);border:1px solid #ffd7004d;border-radius:10px;margin-bottom:20px;padding:15px;text-align:center}.winner-info p{color:#333;font-size:1.1rem;margin:0}.winner-info strong{color:#ffc107;text-shadow:1px 1px 2px #0000004d}.3d-features{background:linear-gradient(135deg,#4caf501a,#2196f31a);border:1px solid #4caf504d;border-radius:10px;margin-top:20px;padding:15px}.3d-features h4{color:#4caf50;font-size:18px;margin-bottom:10px;text-align:center}.3d-features ul{margin:0;padding-left:20px}.3d-features li{color:#666;font-size:14px;margin-bottom:5px}.game-container[data-paused=true] .game-area-3d{filter:brightness(.7) saturate(.8);transition:filter .3s ease}.game-container[data-paused=true] .game-area-3d:after{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ff9800e6;border:3px solid #ffffff4d;border-radius:15px;color:#fff;content:"⏸️ PAUSED";font-size:2rem;font-weight:700;left:50%;padding:20px 40px;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:1000}.signin-page{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.signin-container{background:#fff;border-radius:20px;box-shadow:0 25px 50px #00000026;max-width:600px;overflow:hidden;width:100%}.signin-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:40px 30px;text-align:center}.signin-header h1{font-size:2.5rem;font-weight:700;margin-bottom:15px}.signin-header p{font-size:1.2rem;margin:0;opacity:.9}.qr-section{padding:40px 30px;text-align:center}.loading,.loading-message{align-items:center;display:flex;flex-direction:column;gap:20px}.loading-message{background:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;padding:30px}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#667eea;height:50px;width:50px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.qr-display{align-items:center;display:flex;flex-direction:column;gap:25px}.qr-code{border-radius:15px;box-shadow:0 15px 35px #0003;cursor:pointer;height:auto;max-width:250px;transition:transform .3s ease,box-shadow .3s ease;width:100%}.qr-code:hover{box-shadow:0 20px 40px #0000004d;transform:scale(1.05)}.qr-info{background:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;padding:20px}.qr-info p{color:#495057;font-size:.95rem;margin:8px 0}.no-qr{color:#6c757d;padding:40px}.error-message{align-items:center;border-radius:10px;display:flex;gap:15px;justify-content:space-between;margin:0 30px 20px;padding:15px 30px}.registration-modal{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.registration-content{background:#fff;border-radius:15px;box-shadow:0 25px 50px #00000040;max-width:500px;padding:40px;width:100%}.registration-content h2{color:#333;font-size:1.8rem;margin-bottom:15px;text-align:center}.registration-content p{color:#666;margin-bottom:30px;text-align:center}.form-group{margin-bottom:25px}.form-group label{color:#333;display:block;font-size:.95rem;font-weight:600;margin-bottom:8px}.form-group input{border:2px solid #e9ecef;border-radius:8px;font-size:1rem;padding:12px 16px;transition:border-color .3s ease;width:100%}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-actions{display:flex;gap:15px;margin-top:30px}.btn{flex:1 1}.btn-primary:hover{box-shadow:0 10px 20px #667eea4d;transform:translateY(-2px)}.signin-footer{background:#f8f9fa;border-top:1px solid #e9ecef;padding:25px 30px;text-align:center}.signin-footer p{color:#6c757d;font-size:.9rem;margin:5px 0}@media (max-width:768px){.signin-container{border-radius:15px;margin:10px}.signin-header{padding:30px 20px}.signin-header h1{font-size:2rem}.qr-section{padding:30px 20px}.registration-content{margin:20px;padding:30px 20px}.form-actions{flex-direction:column}.btn{width:100%}.error-message{flex-direction:column;margin:0 20px 20px;text-align:center}}.group-manager{margin:0 auto;max-width:800px;padding:20px}.group-header{margin-bottom:30px;text-align:center}.group-header h2{color:#333;font-size:2rem;margin-bottom:10px}.group-header p{color:#666;font-size:1.1rem;margin-bottom:20px}.btn{border:none;border-radius:8px;cursor:pointer;display:inline-block;font-size:1rem;font-weight:600;padding:12px 24px;text-align:center;text-decoration:none;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover:not(:disabled){box-shadow:0 10px 20px #667eea4d;transform:translateY(-2px)}.btn-primary:disabled{background:#ccc;box-shadow:none;cursor:not-allowed;transform:none}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#5a6268;transform:translateY(-2px)}.error-message{background:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#721c24}.error-message,.loading-message{margin:20px 0;padding:15px;text-align:center}.loading-message{background:#d1ecf1;border:1px solid #bee5eb;border-radius:8px;color:#0c5460}.no-groups{color:#666;padding:40px;text-align:center}.no-groups p{font-size:1.1rem;margin:10px 0}.groups-list{grid-gap:20px;display:grid;gap:20px}.group-card{background:#fff;border:2px solid #eee;border-radius:12px;box-shadow:0 5px 15px #0000001a;padding:25px;transition:all .3s ease}.group-card:hover{box-shadow:0 15px 30px #00000026;transform:translateY(-5px)}.group-card .group-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px;text-align:left}.group-card .group-header h3{color:#333;font-size:1.4rem;margin:0}.group-status{background:#e9ecef;border-radius:20px;color:#495057;font-size:.9rem;font-weight:600;padding:6px 12px}.group-details{margin-bottom:20px}.group-details p{color:#666;margin:8px 0}.status-badge{border-radius:12px;font-size:.8rem;font-weight:600;margin-left:8px;padding:4px 8px}.status-waiting{background:#fff3cd;color:#856404}.status-active{background:#d4edda;color:#155724}.status-completed{background:#e2e3e5;color:#383d41}.group-actions{display:flex;flex-wrap:wrap;gap:15px}.group-actions .btn{flex:1 1;min-width:120px}.group-manager.joined{text-align:center}.group-info h3{color:#333;font-size:1.6rem;margin-bottom:20px}.player-details{background:#f8f9fa;border-radius:12px;gap:20px;margin-bottom:30px;padding:20px}.player-color,.player-details{align-items:center;display:flex;justify-content:center}.player-color{border:3px solid #fff;border-radius:50%;box-shadow:0 5px 15px #0003;height:60px;position:relative;width:60px}.lane-number{color:#fff;font-size:1.2rem;font-weight:700;text-shadow:1px 1px 2px #00000080}.player-info{text-align:left}.player-info p{color:#333;font-size:1rem;margin:8px 0}.waiting-message{background:#fff3cd;border:1px solid #ffeaa7;border-radius:12px;color:#856404;font-size:1.1rem;line-height:1.5;margin:20px 0;padding:20px}.waiting-message small{font-size:.9rem;opacity:.8}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0000004d;max-height:80vh;max-width:500px;overflow-y:auto;width:100%}.modal-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:20px 25px}.modal-header h3{color:#333;margin:0}.close-btn{align-items:center;background:none;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:1.5rem;height:30px;justify-content:center;padding:0;transition:all .3s ease;width:30px}.close-btn:hover{background:#f8f9fa;color:#333}.modal-body{padding:25px}.modal-actions{display:flex;gap:15px;margin-top:20px}.modal-actions .btn{flex:1 1}@media (max-width:768px){.group-manager{padding:15px}.group-card{padding:20px}.group-card .group-header{flex-direction:column;gap:15px;text-align:center}.group-actions{flex-direction:column}.group-actions .btn{width:100%}.player-details{flex-direction:column;text-align:center}.modal-content{margin:20px;max-height:calc(100vh - 40px)}.modal-actions{flex-direction:column}}
/*# sourceMappingURL=main.f450f597.css.map*/