*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{width:100%;height:100%;overflow:hidden;background:#1a1a2e;font-family:Poppins,sans-serif;touch-action:none;-webkit-user-select:none;user-select:none}#game-container{width:100%;height:100%;position:relative}#game-container canvas{display:block;width:100%;height:100%}.screen{position:absolute;top:0;left:0;width:100%;height:100%;display:none;z-index:10}.screen.active{display:flex}#menu-screen{flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(180deg,#1a1a2e99,#1a1a2e33)}.game-title{font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(3rem,10vw,6rem);color:#ffc107;text-shadow:0 4px 0 #e6a800,0 8px 0 #cc9600,0 12px 20px rgba(0,0,0,.5);letter-spacing:2px;animation:titleBounce 2s ease-in-out infinite}.game-subtitle{font-family:Poppins,sans-serif;font-size:clamp(1rem,3vw,1.5rem);color:#fff;margin-top:.5rem;opacity:.8;font-weight:600}@keyframes titleBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.start-hint{margin-top:3rem;font-size:clamp(1rem,3vw,1.3rem);color:#fff;animation:pulse 1.5s ease-in-out infinite;background:#ffc10726;border:2px solid rgba(255,193,7,.4);padding:.8rem 2.5rem;border-radius:50px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer}.start-hint a{color:inherit;text-decoration:none}.start-hint a:hover{text-decoration:underline}.start-hint.start-hint--loading{animation:none;opacity:.9;cursor:wait;display:inline-flex;align-items:center;justify-content:center;gap:.6rem}.start-hint .loader-sm,.start-status .loader-sm{width:20px;height:20px;border-width:2px}.start-hint.start-hint--error{animation:none;background:#ff6b6b33;border-color:#ff6b6b80;cursor:default}.start-status{margin-top:1rem;text-align:center;font-size:.95rem;color:#ffffffe6;min-height:1.5rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.start-status .start-status-retry{margin-top:.5rem;font-size:.85rem;padding:.4rem 1rem;border-radius:8px;background:#ffc10733;border:1px solid rgba(255,193,7,.4);color:#ffc107;cursor:pointer;font-family:Poppins,sans-serif}@keyframes pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}.menu-decoration{margin-top:2rem;display:flex;gap:.5rem;align-items:center}.menu-decoration span{font-size:2rem}#menu-leaderboard,#gameover-leaderboard{margin-top:1rem;width:100%;max-width:360px;min-height:120px;background:#00000059;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:16px;border:1px solid rgba(255,255,255,.1);padding:1rem;overflow:hidden}#menu-leaderboard{margin-top:1.5rem}#gameover-leaderboard{margin-top:0;margin-bottom:1rem;max-height:280px;overflow-y:auto;width:100%;max-width:360px}.leaderboard-title{font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(1rem,2.5vw,1.2rem);color:#ffc107;margin-bottom:.6rem;text-align:center}.leaderboard-loading,.leaderboard-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100px;color:#ffffffb3;font-size:.9rem;text-align:center;gap:.5rem}.leaderboard-loading .loader{width:32px;height:32px;border-width:3px}.leaderboard-error-detail{font-size:.8rem;color:#f44;margin-top:.25rem}.leaderboard-retry-btn{font-family:Poppins,sans-serif;font-size:.85rem;padding:.5rem 1.2rem;border-radius:8px;background:#ffc10733;border:1px solid rgba(255,193,7,.4);color:#ffc107;cursor:pointer;pointer-events:auto;transition:background .2s}.leaderboard-retry-btn:hover{background:#ffc10759}.leaderboard-row{display:flex;align-items:center;gap:.5rem;padding:.4rem .3rem;border-radius:8px;font-size:.85rem;color:#fff;transition:transform .3s ease,background .2s}.leaderboard-row--player{background:#ffc10733;border:1px solid rgba(255,193,7,.35)}.leaderboard-row--player.leaderboard-row--animate{animation:leaderboardSlideUp .5s cubic-bezier(.25,.1,.25,1) forwards}@keyframes leaderboardSlideUp{0%{transform:translateY(24px);opacity:.5;background:#ffc1070d}60%{transform:translateY(-2px);opacity:1;background:#ffc10766}to{transform:translateY(0);opacity:1;background:#ffc10733}}.leaderboard-pos{font-family:Roboto,sans-serif;font-weight:700;min-width:1.8rem;color:#ffc107;font-size:.95rem}.leaderboard-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;background:#ffffff1a}.leaderboard-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-score{font-family:Roboto,sans-serif;font-weight:700;color:#ffc107;font-size:.9rem}.leaderboard-time{font-family:Roboto,sans-serif;font-weight:700;color:#4ecdc4;font-size:.8rem;min-width:3rem;text-align:right}.leaderboard-me-sep{height:1px;background:#ffffff26;margin:.4rem 0}.leaderboard-me-label{font-size:.8rem;opacity:.8;margin-bottom:.2rem}.leaderboard-no-position{font-size:.8rem;opacity:.75;text-align:center;padding:.6rem .4rem .2rem;color:#fffc}#auth-modal{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:50;align-items:center;justify-content:center;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#auth-modal.active{display:flex}.auth-modal-content{background:#1a1a2efa;border-radius:20px;padding:2rem;max-width:340px;text-align:center;border:1px solid rgba(255,255,255,.1);box-shadow:0 12px 40px #00000080}.auth-modal-title{font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(1.3rem,4vw,1.6rem);color:#ffc107;margin-bottom:.8rem}.auth-modal-text{font-family:Roboto,sans-serif;color:#ffffffd9;font-size:1rem;margin-bottom:1.5rem;line-height:1.5}.auth-modal-btn{font-family:Roboto,sans-serif;font-weight:700;font-size:1.1rem;padding:.9rem 2rem;border-radius:50px;background:linear-gradient(135deg,#ffc107,#ff9800);border:none;color:#fff;cursor:pointer;text-decoration:none;display:inline-block;box-shadow:0 4px #e6a800;transition:transform .15s,box-shadow .15s}.auth-modal-btn:hover{transform:translateY(-2px);box-shadow:0 6px #e6a800}#hud-screen{flex-direction:column;pointer-events:none;padding:1rem}.hud-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;width:100%}.hud-top-right{display:flex;align-items:center;gap:.5rem}.hud-stats{display:flex;gap:1rem;align-items:center}.mute-btn{height:2.8rem;width:2.8rem;box-sizing:border-box;padding:0;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:#00000073;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-size:1.3rem;cursor:pointer;pointer-events:auto;transition:transform .15s,background .15s}.mute-btn:hover{background:#0009;transform:scale(1.05)}.top-right-buttons{position:absolute;top:1rem;right:1rem;display:flex;align-items:center;gap:.5rem}.lang-select{display:flex;gap:.25rem;height:2.8rem;align-items:center}.lang-select button{height:2.4rem;min-width:2.4rem;padding:0 .5rem;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#00000073;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-family:Poppins,sans-serif;font-size:.85rem;font-weight:600;cursor:pointer;pointer-events:auto;transition:transform .15s,background .15s}.lang-select button:hover{background:#0009;transform:scale(1.05)}.lang-select button.active{background:#ffc1074d;color:#ffc107;border-color:#ffc10780}.mute-btn.mute-btn-menu,.mute-btn.mute-btn-pause{position:static}.hud-item{background:#00000073;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:16px;padding:.5rem 1rem;color:#fff;font-weight:700;font-size:clamp(.9rem,2.5vw,1.2rem);display:flex;align-items:center;gap:.5rem;border:1px solid rgba(255,255,255,.1);transition:transform .2s}.hud-item.pulse{transform:scale(1.15)}.hud-icon{font-size:1.3em}.hud-score,.hud-timer{height:2.8rem;box-sizing:border-box;padding:0 1rem;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;line-height:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1)}.hud-score{font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(1.2rem,3vw,1.8rem);color:#ffc107;text-shadow:0 2px 4px rgba(0,0,0,.5);background:#00000073}.hud-timer{font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(1.1rem,2.8vw,1.6rem);color:#4ecdc4;text-shadow:0 2px 4px rgba(0,0,0,.5);background:#00000073}.hud-booster{display:none;align-items:center;gap:.5rem;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:12px;padding:.4rem .8rem;border:2px solid rgba(255,255,255,.3);position:absolute;top:4.5rem;left:50%;transform:translate(-50%);min-width:140px;pointer-events:none}.booster-icon{font-size:1.2rem}.booster-label{color:#fff;font-weight:700;font-size:.75rem;letter-spacing:1px}.booster-bar{flex:1;height:6px;background:#ffffff26;border-radius:3px;overflow:hidden;min-width:60px}.booster-bar-fill{height:100%;border-radius:3px;transition:width .15s linear;background:#0f8}.police-warning{position:absolute;bottom:28%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.35rem;font-family:Roboto,sans-serif;font-size:clamp(.7rem,1.8vw,.85rem);font-weight:600;color:#ff6b6b;text-align:center;background:#0009;padding:.5rem 1rem;border-radius:10px;border:1px solid rgba(255,107,107,.5);pointer-events:none;min-width:160px}.police-warning-icon{font-size:1.4rem}.police-warning-text{line-height:1.2}.police-warning-bar{width:100%;height:5px;background:#ffffff26;border-radius:3px;overflow:hidden}.police-warning-bar-fill{height:100%;border-radius:3px;transition:width .15s linear;background:#ff6b6b}#tutorial-hint{position:absolute;bottom:15%;left:50%;transform:translate(-50%);color:#fffc;font-family:Roboto,sans-serif;font-size:clamp(.8rem,2.5vw,1rem);text-align:center;opacity:0;transition:opacity .5s;pointer-events:none;background:#0006;padding:.6rem 1.5rem;border-radius:12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#tutorial-hint.visible{opacity:1}#gameover-screen{flex-direction:column;align-items:center;justify-content:flex-start;background:#1a1a2ed9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);overflow-y:auto;padding:1rem}.gameover-title{font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(2rem,6vw,3rem);color:#ff6b6b;text-shadow:0 4px 0 #cc4444,0 8px 16px rgba(0,0,0,.5);margin-bottom:.5rem}.gameover-score-block{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1rem;padding:.6rem 1.2rem;background:#ffc10726;border-radius:16px;border:1px solid rgba(255,193,7,.35)}.gameover-score-icon{font-size:1.5rem}.gameover-score-value{font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(1.4rem,4vw,2rem);color:#ffc107;text-shadow:0 2px 4px rgba(0,0,0,.4)}#new-record{display:none;font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(1rem,2.5vw,1.4rem);color:gold;text-shadow:0 0 20px rgba(255,215,0,.5);animation:recordPulse .8s ease-in-out infinite alternate;margin-bottom:.5rem}@keyframes recordPulse{0%{transform:scale(1);opacity:.8}to{transform:scale(1.1);opacity:1}}#restart-btn{font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(1.2rem,3.5vw,1.6rem);color:#fff;background:linear-gradient(135deg,#ffc107,#ff9800);border:none;border-radius:50px;padding:1rem 3rem;cursor:pointer;box-shadow:0 6px #e6a800,0 8px 20px #0000004d;transition:transform .15s,box-shadow .15s;pointer-events:all}#restart-btn:active{transform:translateY(3px);box-shadow:0 3px #e6a800,0 4px 10px #0000004d}#loading{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:#1a1a2e;z-index:100;transition:opacity .5s}#loading.hidden{opacity:0;pointer-events:none}.loader{width:60px;height:60px;border:5px solid rgba(255,193,7,.2);border-top-color:#ffc107;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#tutorial-overlay{display:none;position:absolute;top:0;left:0;right:0;bottom:0;z-index:18;pointer-events:none}#tutorial-overlay.active{display:flex;flex-direction:column;align-items:center;justify-content:center}.tutorial-dim{position:absolute;top:0;left:0;right:0;bottom:0;background:#0000008c}.tutorial-content{position:relative;z-index:1;text-align:center;color:#fff}.tutorial-arrow{position:absolute;font-size:3rem;animation:tutArrowBounce .8s ease-in-out infinite;z-index:2;pointer-events:none;transform:translate(-50%);color:#fff}.tutorial-arrow.tutorial-arrow-passenger{color:#0f8;text-shadow:0 2px 8px rgba(0,255,136,.6)}@keyframes tutArrowBounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(12px)}}.tutorial-text{font-family:Roboto,sans-serif;font-size:clamp(1.2rem,4vw,1.8rem);font-weight:600;color:#ffc107;text-shadow:0 2px 8px rgba(0,0,0,.5);margin-bottom:.8rem}.tutorial-direction{display:none}.tutorial-dir-arrow{font-size:2.5rem;animation:tutDirPulse 1s ease-in-out infinite}@keyframes tutDirPulse{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.3);opacity:1}}#combo-popup{display:none;position:absolute;top:30%;left:50%;transform:translate(-50%);text-align:center;z-index:20;pointer-events:none}.combo-formula{font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(1.5rem,5vw,2.5rem);color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.6)}.combo-n{color:#4ecdc4}.combo-score-val{color:gold;font-size:1.2em}.combo-count{font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(1.2rem,4vw,2rem);color:#0f8;text-shadow:0 2px 8px rgba(0,255,136,.5)}.combo-score{font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(2rem,6vw,3.5rem);color:gold;text-shadow:0 4px 12px rgba(255,215,0,.5)}.combo-anim{animation:comboIn .4s ease-out forwards}@keyframes comboIn{0%{transform:translate(-50%) scale(.3);opacity:0}60%{transform:translate(-50%) scale(1.15);opacity:1}to{transform:translate(-50%) scale(1);opacity:1}}#pause-screen{display:none;position:absolute;top:0;left:0;right:0;bottom:0;z-index:25;flex-direction:column;align-items:center;justify-content:center;background:#0a0a14bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#pause-screen.active{display:flex}.pause-title{font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(2.5rem,8vw,4rem);color:#ffc107;text-shadow:0 4px 0 #e6a800,0 8px 16px rgba(0,0,0,.5);margin-bottom:1.5rem}.pause-hint{font-family:Roboto,sans-serif;font-size:clamp(.9rem,2.5vw,1.2rem);color:#ffffffb3;animation:pulse 1.5s ease-in-out infinite;text-align:center;padding:0 1rem;overflow:visible;white-space:nowrap}#dropoff-overlay{display:none;position:absolute;top:0;left:0;right:0;bottom:0;z-index:19;pointer-events:none;flex-direction:column;align-items:center;justify-content:center}#dropoff-overlay.active{display:flex}.dropoff-counter{font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(1.8rem,5vw,2.8rem);color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.6);text-align:center;transition:transform .15s}.dropoff-counter .do-n{color:#4ecdc4;font-size:1.1em}.dropoff-counter .do-score{color:gold;font-size:1.15em}.dropoff-mult{font-family:Roboto,sans-serif;font-weight:700;margin-top:.3rem;opacity:0;transition:opacity .3s}.dropoff-mult.visible{opacity:1}.dropoff-total{font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(2rem,6vw,3.5rem);color:gold;text-shadow:0 4px 12px rgba(255,215,0,.5);margin-top:.5rem;opacity:0;transition:opacity .3s}.dropoff-total.visible{opacity:1}.dropoff-skip-hint{position:absolute;bottom:12%;left:50%;transform:translate(-50%);font-family:Roboto,sans-serif;font-size:clamp(.85rem,2.5vw,1.1rem);color:#fffc;text-align:center}.score-fly{position:absolute;font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(1.5rem,4vw,2.5rem);color:gold;text-shadow:0 2px 8px rgba(255,215,0,.5);pointer-events:none;z-index:22}#coin-collect-overlay{display:none;position:absolute;top:0;left:0;right:0;bottom:0;z-index:18;pointer-events:none;flex-direction:column;align-items:center;justify-content:center}#coin-collect-overlay.active{display:flex}.coin-collect-total{font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(2rem,6vw,3.5rem);color:gold;text-shadow:0 4px 12px rgba(255,215,0,.5);text-align:center}@keyframes coinWobble{0%,to{transform:scale(1)}25%{transform:scale(1.15) rotate(-3deg)}75%{transform:scale(1.15) rotate(3deg)}}.coin-collect-total.wobble{animation:coinWobble .2s ease-out}#flash-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#fff;opacity:0;z-index:15;pointer-events:none}.flash-anim{animation:flashFade .4s ease-out forwards}@keyframes flashFade{0%{opacity:.5}to{opacity:0}}
