*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;touch-action:manipulation}body,html{height:100%;overflow:hidden;position:fixed;width:100%;background-color:#0a0a1a;overscroll-behavior:none;-webkit-overflow-scrolling:touch}body{background-color:#0a0a1a;background-image:linear-gradient(180deg,#0a0a1a 0,#1a1a3a 50%,#0a0a1a 100%);display:flex;justify-content:center;align-items:center;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:#e0e0e0;flex-direction:column;padding:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}h1{font-family:Orbitron,sans-serif;color:#0f8;font-size:clamp(3rem, 10vw, 6rem);font-weight:900;letter-spacing:4px;text-transform:uppercase;margin:0 0 30px;flex-shrink:0;transform:skew(-10deg);position:relative;display:inline-block;align-self:center;text-align:center;background:linear-gradient(to bottom,#fff 0,#0f8 40%,#0a6 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 15px rgba(0, 255, 136, .6))}h1::after{content:'BLOCK RUNNER';position:absolute;left:0;top:0;z-index:-1;background:0 0;-webkit-text-fill-color:initial;color:transparent;text-shadow:2px 2px 0 rgba(0,0,0,.5)}@media (max-height:800px){h1{margin:0 0 20px;font-size:clamp(2.4rem, 6vw, 3.2rem)}.instructions{margin:20px 0 0;padding:10px 20px;font-size:.75rem}}@media (max-height:600px){h1{margin:0 0 10px;font-size:clamp(1.4rem, 6vw, 2.2rem);letter-spacing:2px}}.game-container{position:relative;width:100%;flex:0 1 auto;min-height:0;display:flex;justify-content:center;align-items:center;padding:0}.game-wrapper{position:relative;width:min(1000px,94vw);height:min(600px,65vh);border-radius:16px;appearance:none;-webkit-appearance:none;box-shadow:0 0 40px rgba(0,255,136,.15),0 20px 60px rgba(0,0,0,.5)}#gameCanvas{width:100%;height:100%;display:block;border-radius:0;background:#0a0a1a}.instructions{color:#666;font-size:clamp(.7rem, 2vw, .9rem);text-align:center;padding:12px 24px;margin:0;background:rgba(0,255,136,.05);border-radius:50px;border:1px solid rgba(0,255,136,.1);flex-shrink:0;letter-spacing:.5px}.instructions-bar{width:100%;display:flex;justify-content:center;flex-shrink:0;margin:30px 0 0}.instructions span{color:#0f8;font-weight:600}@media (pointer:coarse),(max-width:600px){body{align-items:stretch;padding:0}h1{display:block;margin:10px 0 8px;font-size:clamp(2rem, 8vw, 3rem);letter-spacing:2px;transform:skew(-8deg)}.game-container{padding:0;width:100vw;flex:1 1 auto;min-height:0}.game-wrapper{width:100vw;height:100%;max-width:none;max-height:none;aspect-ratio:auto;border-radius:0;box-shadow:none}#gameCanvas{border-radius:0}#nameOverlay{border-radius:0}.instructions{width:auto;max-width:calc(100vw - 24px);font-size:.85rem}.instructions-bar{margin:8px 0 0;padding:10px 0 20px;align-items:center}body.in-game .instructions-bar,body.in-game h1{display:none}body.in-game .game-container{position:fixed;top:0;left:0;width:100vw;height:100vh;height:var(--app-height,100vh);z-index:5;margin:0;padding:0}body.in-game .game-wrapper{width:100%;height:100%;border-radius:0}}.instructions.mobile{display:none}@media (pointer:coarse){.instructions.desktop{display:none}.instructions.mobile{display:block}}#overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(5,5,15,.97);display:flex;justify-content:flex-start;align-items:center;flex-direction:column;gap:20px;z-index:10;backdrop-filter:blur(20px);padding:20px;overflow-y:auto;overflow-x:hidden}#overlay.hidden{display:none}#overlay h2{color:#f46;font-size:clamp(1.8rem, 8vw, 3rem);text-transform:uppercase;letter-spacing:4px;text-shadow:0 0 30px rgba(255,68,102,.7)}#overlay .stats{display:flex;gap:15px;margin:15px 0;flex-wrap:wrap;justify-content:center}#overlay .stat-box{text-align:center;padding:20px 30px;border:2px solid #333;border-radius:20px;background:linear-gradient(145deg,#1a1a2e,#0d0d15);box-shadow:0 10px 40px rgba(0,0,0,.5);min-width:140px}#overlay .stat-box.player{border-color:#0f8;box-shadow:0 0 30px rgba(0,255,136,.2),0 10px 40px rgba(0,0,0,.5)}#overlay .stat-box.ghost{border-color:rgba(255,255,255,.3)}#overlay .stat-label{font-size:clamp(.7rem, 3vw, .9rem);color:#888;margin-bottom:8px;text-transform:uppercase;letter-spacing:1px}#overlay .stat-value{font-size:clamp(1.8rem, 6vw, 2.5rem);font-weight:700}#overlay .stat-box.player .stat-value{color:#0f8;text-shadow:0 0 20px rgba(0,255,136,.5)}#overlay .stat-box.ghost .stat-value{color:rgba(255,255,255,.8)}#overlay .result{font-size:clamp(1rem, 4vw, 1.4rem);margin-top:5px;letter-spacing:1px;text-align:center}#overlay .result.win{color:#0f8;text-shadow:0 0 20px rgba(0,255,136,.5)}#overlay .result.lose{color:#f46;text-shadow:0 0 20px rgba(255,68,102,.5)}#courseNameDisplay{color:#fff;letter-spacing:1px;font-weight:700;font-size:clamp(.95rem, 3vw, 1.15rem);margin-top:4px;margin-bottom:6px}.course-label{text-transform:none;color:rgba(255,255,255,.85);font-weight:600;margin-right:6px}.course-name{text-transform:uppercase;color:#fff;font-weight:900;letter-spacing:2px}#leaderboardContainer{width:100%;max-width:520px;margin:10px auto 0}.leaderboard{background:rgba(20,20,40,.6);border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:12px 16px;backdrop-filter:blur(10px)}.player-result-display{text-align:center;font-size:clamp(.85rem, 2.8vw, 1rem);color:rgba(255,255,255,.6);margin:4px 0 8px 0}.player-result-value{color:#0f8;font-weight:600}.leaderboard-player-result{background:linear-gradient(135deg,rgba(0,255,136,.1) 0,rgba(0,170,255,.1) 100%);border:1px solid rgba(0,255,136,.3);border-radius:6px;padding:8px 12px;margin-bottom:12px;text-align:center}.player-result-label{font-size:clamp(.7rem, 2vw, .8rem);font-weight:600;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.player-result-score{font-size:clamp(1.2rem, 3.5vw, 1.4rem);font-weight:700;color:#0f8;text-shadow:0 0 10px rgba(0,255,136,.4)}.player-result-rank{font-size:clamp(.75rem, 2.5vw, .85rem);font-weight:600;color:rgba(255,255,255,.5)}.leaderboard-header{font-size:clamp(1.1rem, 3.5vw, 1.3rem);font-weight:700;color:#0f8;text-align:center;margin-bottom:10px;letter-spacing:1px;text-shadow:0 0 10px rgba(0,255,136,.5)}.leaderboard-entries{display:flex;flex-direction:column;gap:6px;max-height:400px;overflow-y:auto;padding:2px}.leaderboard-entry{display:flex;align-items:center;gap:10px;padding:8px 10px;background:rgba(255,255,255,.05);border-radius:6px;transition:background .2s ease}.leaderboard-entry.current-player{background:rgba(0,255,136,.15);border:1px solid rgba(0,255,136,.3)}.leaderboard-rank{font-size:clamp(1rem, 3.5vw, 1.15rem);font-weight:700;color:rgba(255,255,255,.7);min-width:24px;text-align:center}.leaderboard-player-name{flex:1;font-size:clamp(.9rem, 3vw, 1rem);font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leaderboard-entry.current-player .leaderboard-player-name{color:#0f8;font-weight:700}.leaderboard-score{font-size:clamp(1rem, 3.5vw, 1.15rem);font-weight:700;color:#0f8;text-align:right;min-width:55px}.leaderboard-footer{text-align:center;font-size:clamp(.75rem, 2.5vw, .85rem);color:rgba(255,255,255,.5);margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.1)}.leaderboard-empty,.leaderboard-error,.leaderboard-loading{text-align:center;padding:16px;color:rgba(255,255,255,.6);font-size:clamp(.85rem, 3vw, 1rem)}.leaderboard-error{color:rgba(255,68,102,.8)}.leaderboard-entries::-webkit-scrollbar{width:5px}.leaderboard-entries::-webkit-scrollbar-track{background:rgba(255,255,255,.05);border-radius:3px}.leaderboard-entries::-webkit-scrollbar-thumb{background:rgba(0,255,136,.3);border-radius:3px}.leaderboard-entries::-webkit-scrollbar-thumb:hover{background:rgba(0,255,136,.5)}.btn{padding:16px 40px;font-size:clamp(.9rem, 3.5vw, 1.1rem);background:linear-gradient(145deg,#0f8,#00cc6a);color:#0a0a0f;border:none;border-radius:50px;cursor:pointer;text-transform:uppercase;letter-spacing:2px;font-weight:700;transition:all .2s ease;box-shadow:0 5px 25px rgba(0,255,136,.4);-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.96);box-shadow:0 2px 15px rgba(0,255,136,.4)}.btn.secondary{background:linear-gradient(145deg,#48f,#36c);color:#fff;box-shadow:0 5px 25px rgba(68,136,255,.4)}.btn.secondary:active{box-shadow:0 2px 15px rgba(68,136,255,.4)}#shareBtn.btn.secondary{background:linear-gradient(145deg,#ffb24a,#ff7a18);color:#0a0a0f;box-shadow:0 5px 25px rgba(255,138,28,.45)}#shareBtn.btn.secondary:active{box-shadow:0 2px 15px rgba(255,138,28,.45)}.btn-group{display:flex;gap:12px;flex-wrap:nowrap;justify-content:center;align-items:stretch;width:100%;max-width:520px;margin:0 auto}.btn-group.btn-group--stack{margin-bottom:12px}.btn-group .btn{flex:1 1 0;min-width:0;padding:14px 20px}.btn-group .btn{white-space:nowrap}#nameOverlay{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:5}#nameOverlay .top-section{text-align:center}#nameOverlay .middle-section{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%}#nameOverlay.hidden{display:none}#loadingSpinner{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(5,5,15,.97);display:flex;justify-content:center;align-items:center;z-index:15;backdrop-filter:blur(20px)}#loadingSpinner.hidden{display:none}.spinner{width:60px;height:60px;border:4px solid rgba(0,255,136,.2);border-top-color:#0f8;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#nameOverlay h2{color:#0f8;font-size:clamp(1.8rem, 7vw, 2.5rem);margin-bottom:12px;text-shadow:0 0 30px rgba(0,255,136,.8)}#nameOverlay #overlayTitle{display:none}#nameOverlay .subtitle{color:#ccc;margin:0;font-size:clamp(1.1rem, 4vw, 1.3rem);text-shadow:0 0 10px rgba(255,255,255,.3)}#nameOverlay #countdownText{font-size:clamp(4rem, 25vw, 15rem);color:#0f8;text-shadow:0 0 50px #0f8;font-weight:900;margin:0;line-height:1;padding:20px 0}#nameOverlay #countdownText.start-prompt{font-family:Orbitron,sans-serif;font-size:clamp(1.05rem, 3vw, 1.3rem);font-weight:900;letter-spacing:4px;text-transform:uppercase;color:#0f8;text-shadow:0 0 30px rgba(0,255,136,.8);padding:10px 0 16px}#nameOverlay .challenger-info{color:#f84;font-size:clamp(.8rem, 2.5vw, .95rem);margin:8px 0 0;padding:8px 14px;background:rgba(255,136,68,.1);border:1px solid rgba(255,136,68,.3);border-radius:10px;text-align:center}#nameOverlay .challenge-name-input{margin-top:10px;width:100%;max-width:320px;padding:0 20px}#nameOverlay .challenge-name-field{width:100%;padding:12px 18px;font-size:clamp(.9rem, 3.5vw, 1.1rem);background:rgba(20,20,40,.8);border:2px solid rgba(0,255,136,.3);border-radius:12px;color:#fff;text-align:center;outline:0;transition:all .2s ease}#nameOverlay .challenge-name-field:focus{border-color:rgba(0,255,136,.6);box-shadow:0 0 20px rgba(0,255,136,.3)}#nameOverlay .challenge-name-field::placeholder{color:rgba(255,255,255,.4)}#nameOverlay input{padding:16px 22px;font-size:clamp(1.1rem, 4vw, 1.4rem);border:2px solid #0f8;border-radius:14px;background:rgba(20,20,40,.9);color:#e0e0e0;text-align:center;outline:0;width:min(280px,85%);box-shadow:0 0 20px rgba(0,255,136,.2);transition:all .2s ease;appearance:none;-webkit-appearance:none}#nameOverlay input:focus{border-color:#0fa;box-shadow:0 0 30px rgba(0,255,136,.4)}#nameOverlay button{margin-top:0;width:min(220px,70%);display:none}@media (pointer:coarse){#nameOverlay button{display:block}}#shareLink{width:100%;max-width:400px;text-align:center;display:none;margin-top:25px}#nameInputSection{display:none;margin-bottom:20px}#shareLinkSection{display:none}.share-input{width:100%;max-width:350px;padding:12px;background:rgba(26,26,46,.9);border:1px solid #0f8;border-radius:12px;color:#e0e0e0;text-align:center;font-size:1rem;margin-bottom:15px;outline:0}.share-input--small{font-size:.85rem}.share-btn{width:100%;max-width:350px;padding:12px 16px;font-size:1rem;border-radius:50px}.copy-notification{margin-top:8px;color:#0f8;font-size:.75rem;opacity:0;transition:opacity .3s;height:18px}.share-actions{margin-top:15px}#shareLinkInput{width:100%!important;font-size:clamp(.7rem, 2.5vw, .9rem)!important;padding:12px!important}@media (max-width:400px){.btn{padding:14px 30px}#overlay h2{font-size:1.8rem;margin-bottom:12px}#overlay .stats{gap:10px;margin-bottom:8px}#overlay .stat-box{padding:12px 16px;min-width:120px}#overlay .stat-label{font-size:.7rem;margin-bottom:6px}#overlay .stat-value{font-size:1.6rem}#overlay .result{font-size:.95rem;margin-top:4px;margin-bottom:10px}.btn-group{gap:12px;margin-bottom:12px}.btn-group .btn{padding:12px 18px;font-size:.9rem;white-space:nowrap;letter-spacing:.5px}#shareLink{margin-top:20px!important}#nameInputSection{margin-bottom:15px!important}#shareLinkInput,#shareNameInput{padding:12px!important;font-size:.9rem!important;border-radius:10px!important}#getLinkBtn,#whatsappBtn{padding:12px 20px!important;font-size:.95rem!important}#copyNotification{height:16px!important;font-size:.75rem!important;margin-top:5px!important}}