.start-stage{display:flex;align-items:center;justify-content:center;min-height:calc(var(--vh, 1vh) * 100);min-height:100dvh;min-height:100vh;background:#000;position:fixed;top:0;left:0;width:100vw;height:calc(var(--vh, 1vh) * 100);height:100dvh;height:100vh}#start-form{text-align:center;padding:2rem;background:#00000080;border:4px solid #ffffff;width:min(95vh,95vw);height:min(95vh,95vw);min-width:320px;min-height:320px;box-sizing:border-box;overflow:hidden;box-shadow:inset 0 0 0 2px #00000080,4px 4px #fff;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;aspect-ratio:1 / 1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}#start-canvas{width:100%;height:100%;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;position:absolute;top:0;left:0;z-index:1}#tap-prompt{position:absolute;bottom:8%;left:50%;transform:translate(-50%);color:#ffffffe6;font-size:1rem;text-transform:uppercase;letter-spacing:3px;font-weight:500;animation:pulse 2s ease-in-out infinite;pointer-events:auto;z-index:1000;text-align:center;text-shadow:0 2px 10px rgba(0,0,0,.5);touch-action:manipulation;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif}@keyframes pulse{0%,to{opacity:.3}50%{opacity:.8}}body.on-start-stage .game-title{color:#e0e0e0!important;animation:none!important;opacity:1!important}body.on-start-stage .about-link{color:#e0e0e0!important;opacity:1!important}.tap-stage{display:flex;align-items:center;justify-content:center;min-height:calc(var(--vh, 1vh) * 100);min-height:100dvh;min-height:100vh;background:#ff69b4;position:fixed;top:0;left:0;width:100vw;height:calc(var(--vh, 1vh) * 100);height:100dvh;height:100vh}#tap-form{text-align:center;padding:2rem;background:#00000080;border:4px solid #ffffff;width:min(95vh,95vw);height:min(95vh,95vw);min-width:320px;min-height:320px;box-sizing:border-box;overflow:hidden;box-shadow:inset 0 0 0 2px #00000080,4px 4px #fff;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;aspect-ratio:1 / 1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}#tap-canvas{width:100%;height:100%;position:absolute;top:0;left:0;object-fit:contain;z-index:1;background:transparent}.tap-stage-3d{position:absolute;top:0;left:0;width:100%;height:100%;min-width:0;min-height:0}.tap-stage-3d canvas{display:block;width:100%;height:100%}#tap-prompt{font-size:1.2rem;font-weight:400;color:#ffffff80;text-transform:uppercase;letter-spacing:1px;cursor:pointer;padding:.75rem 1.5rem;border:1px solid rgba(255,255,255,.3);background:#00000080;transition:opacity .2s ease;text-align:center;position:relative;z-index:10}#tap-prompt:hover{opacity:.7}#tap-prompt:active{opacity:.5}body.on-tap-stage .game-title{animation:none!important;opacity:1!important}body.on-tap-stage .about-link{opacity:1!important}.name-stage{display:flex;align-items:center;justify-content:center;min-height:calc(var(--vh, 1vh) * 100);min-height:100dvh;min-height:100vh;background:#fff;position:fixed;top:0;left:0;width:100vw;height:calc(var(--vh, 1vh) * 100);height:100dvh;height:100vh}#name-form{text-align:center;padding:2rem;background:#00000080;border:4px solid #ffffff;width:min(95vh,95vw);height:min(95vh,95vw);min-width:320px;min-height:320px;box-sizing:border-box;overflow-y:auto;box-shadow:inset 0 0 0 2px #00000080,4px 4px #fff;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;aspect-ratio:1 / 1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}#name-input{padding:.5rem;font-size:1rem;margin:0 auto 1rem;width:100%;max-width:280px;background:#fff;color:#000;border:3px solid #ffffff;outline:none;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;display:block;box-shadow:inset 2px 2px #ccc}#name-input:focus{border-color:#ff69b4;background:#fff;box-shadow:inset 2px 2px #ff69b4}#name-input::placeholder{color:#999;opacity:1}#name-submit{padding:.5rem 1.5rem;font-size:1rem;border:3px solid #ffffff;cursor:pointer;margin:.25rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;background:#ff69b4;color:#fff;text-transform:uppercase;box-shadow:3px 3px #fff,inset 1px 1px #ffffff4d;transition:all .1s;letter-spacing:1px}#name-submit:hover{background:#ff1493;color:#fff;box-shadow:2px 2px #fff,inset 1px 1px #ff69b4;transform:translate(1px,1px)}#name-submit:active{transform:translate(3px,3px);box-shadow:1px 1px #fff,inset 1px 1px #ff69b4}#name-error{color:#ff69b4;margin-top:.75rem;font-size:.85rem;min-height:1.2rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;line-height:1.5}.app-title{margin-top:1rem;font-size:1.5rem;font-weight:700;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif}body.on-name-stage .game-title{color:#333!important;animation:none!important;opacity:1!important}body.on-name-stage .about-link{color:#333!important;opacity:1!important}.namegp-stage{display:flex;align-items:center;justify-content:center;min-height:calc(var(--vh, 1vh) * 100);min-height:100dvh;min-height:100vh;background:#fff;position:fixed;top:0;left:0;width:100vw;height:calc(var(--vh, 1vh) * 100);height:100dvh;height:100vh}#namegp-form{text-align:center;padding:2rem;background:#00000080;border:4px solid #ffffff;width:min(95vh,95vw);height:min(95vh,95vw);min-width:320px;min-height:320px;box-sizing:border-box;overflow-y:auto;box-shadow:inset 0 0 0 2px #00000080,4px 4px #fff;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;aspect-ratio:1 / 1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.bike-lock-container{display:flex;flex-direction:column;align-items:center;gap:1.5rem;width:100%}.bike-lock-label{font-size:1.2rem;font-weight:700;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;text-transform:uppercase;letter-spacing:2px}.bike-lock-wheels{display:flex;gap:.75rem;justify-content:center;align-items:center;flex-wrap:wrap}.bike-lock-wheel{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.5rem;background:#ffffff1a;border:2px solid rgba(255,255,255,.3);border-radius:6px;min-width:50px;transition:all .2s}.bike-lock-wheel.active{background:#ff69b44d;border-color:#ff69b4;box-shadow:0 0 15px #ff69b480;transform:scale(1.1)}.wheel-letter{font-size:1rem;font-weight:700;color:#fff;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;text-shadow:2px 2px 4px rgba(0,0,0,.5);min-height:1.2rem;display:flex;align-items:center;justify-content:center}@media (max-width: 480px){.wheel-letter{font-size:.85rem;min-height:1rem}}.wheel-indicator{font-size:1.2rem;color:#ffffff80;transition:color .2s}.bike-lock-wheel.active .wheel-indicator{color:#ff69b4}.bike-lock-instructions{display:flex;flex-direction:column;gap:.5rem;font-size:.9rem;color:#fffc;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin-top:.5rem}.bike-lock-instructions div{padding:.25rem 0}#namegp-submit{padding:.5rem 1.5rem;font-size:1rem;border:3px solid #ffffff;cursor:pointer;margin:.25rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;background:#ff69b4;color:#fff;text-transform:uppercase;box-shadow:3px 3px #fff,inset 1px 1px #ffffff4d;transition:all .1s;letter-spacing:1px}#namegp-submit:hover{background:#ff1493;color:#fff;box-shadow:2px 2px #fff,inset 1px 1px #ff69b4;transform:translate(1px,1px)}#namegp-submit:active{transform:translate(3px,3px);box-shadow:1px 1px #fff,inset 1px 1px #ff69b4}#namegp-error{color:#ff69b4;margin-top:.75rem;font-size:.85rem;min-height:1.2rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;line-height:1.5}body.on-namegp-stage .game-title{color:#333!important;animation:none!important;opacity:1!important}body.on-namegp-stage .about-link{color:#333!important;opacity:1!important}.color-stage{display:flex;align-items:center;justify-content:center;min-height:calc(var(--vh, 1vh) * 100);min-height:100dvh;min-height:100vh;background:#000;position:fixed;top:0;left:0;width:100vw;height:calc(var(--vh, 1vh) * 100);height:100dvh;height:100vh;transition:background-color .3s ease}#color-form{text-align:center;padding:2rem;background:#00000080;border:4px solid #ffffff;width:min(95vh,95vw);height:min(95vh,95vw);min-width:320px;min-height:320px;box-sizing:border-box;overflow-y:auto;box-shadow:inset 0 0 0 2px #00000080,4px 4px #fff;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;aspect-ratio:1 / 1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.color-section{width:100%;transition:opacity .3s ease}.color-section.section-completed{opacity:.5}.color-section.section-active{opacity:1}.action-section{width:100%;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.color-palette{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;justify-content:center;margin:1rem auto;max-width:240px}.color-palette.grid-3x3{grid-template-columns:repeat(3,1fr);max-width:180px}.color-option{width:40px;height:40px;border:3px solid #ffffff;border-radius:50%;cursor:pointer;box-sizing:border-box;transition:all .1s;box-shadow:2px 2px #fff,inset 1px 1px #ffffff4d;margin:0 auto}.color-option:hover{transform:scale(1.1)}.color-option.selected{border:4px solid #ff69b4;transform:scale(1.15);box-shadow:4px 4px #fff,inset 2px 2px #ffffff80,0 0 0 3px #ff69b4}.color-option.disabled{opacity:.6;cursor:default}#color-submit{padding:.5rem 1.5rem;font-size:1rem;border:3px solid #ffffff;cursor:pointer;margin:.25rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;background:#ff69b4;color:#fff;text-transform:uppercase;box-shadow:3px 3px #fff,inset 1px 1px #ffffff4d;transition:all .1s;letter-spacing:1px;min-width:180px}#color-submit:hover{background:#ff1493;color:#fff;box-shadow:2px 2px #fff,inset 1px 1px #ff69b4;transform:translate(1px,1px)}#color-submit:active{transform:translate(3px,3px);box-shadow:1px 1px #fff,inset 1px 1px #ff69b4}#app-title{font-size:1.5rem;font-weight:700;margin-top:1rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;text-transform:uppercase;letter-spacing:3px;color:#fff}body.on-color-stage .game-title{color:#333!important;animation:none!important;opacity:1!important}body.on-color-stage .about-link{color:#333!important;opacity:1!important}.color-scan-stage{display:flex;align-items:center;justify-content:center;min-height:calc(var(--vh, 1vh) * 100);min-height:100dvh;min-height:100vh;background:#000;position:fixed;top:0;left:0;width:100vw;height:calc(var(--vh, 1vh) * 100);height:100dvh;height:100vh;transition:background-color .3s ease}body.on-color-scan-stage .game-title{color:#333!important;animation:none!important;opacity:1!important}body.on-color-scan-stage .about-link{color:#333!important;opacity:1!important}#color-scan-submit{padding:.5rem 1.5rem;font-size:1rem;border:3px solid #ffffff;cursor:pointer;margin:.25rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;background:#ff69b4;color:#fff;text-transform:uppercase;box-shadow:3px 3px #fff,inset 1px 1px #ffffff4d;transition:all .1s;letter-spacing:1px;min-width:180px}#color-scan-submit:hover{background:#ff1493;color:#fff;box-shadow:2px 2px #fff,inset 1px 1px #ff69b4;transform:translate(1px,1px)}#color-scan-submit:active{transform:translate(3px,3px);box-shadow:1px 1px #fff,inset 1px 1px #ff69b4}#color-scan-scan-btn{padding:.5rem 1.5rem;font-size:1rem;border:3px solid #ffffff;cursor:pointer;margin:.25rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;background:#ff69b4;color:#fff;text-transform:uppercase;box-shadow:3px 3px #fff,inset 1px 1px #ffffff4d;transition:all .1s;letter-spacing:1px;min-width:180px}#color-scan-scan-btn:hover{background:#ff1493;color:#fff;box-shadow:2px 2px #fff,inset 1px 1px #ff69b4;transform:translate(1px,1px)}#color-scan-scan-btn:active{transform:translate(3px,3px);box-shadow:1px 1px #fff,inset 1px 1px #ff69b4}#color-scan-localseed-btn{padding:.5rem 1.5rem;font-size:1rem;border:3px solid #ffffff;cursor:pointer;margin:.25rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;background:#ff69b4;color:#fff;text-transform:uppercase;box-shadow:3px 3px #fff,inset 1px 1px #ffffff4d;transition:all .1s;letter-spacing:1px;min-width:180px}#color-scan-localseed-btn:hover{background:#ff1493;color:#fff;box-shadow:2px 2px #fff,inset 1px 1px #ff69b4;transform:translate(1px,1px)}#color-scan-localseed-btn:active{transform:translate(3px,3px);box-shadow:1px 1px #fff,inset 1px 1px #ff69b4}#color-scan-loadlevels-btn{padding:.5rem 1.5rem;font-size:1rem;border:3px solid #ffffff;cursor:pointer;margin:.25rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;background:#ff69b4;color:#fff;text-transform:uppercase;box-shadow:3px 3px #fff,inset 1px 1px #ffffff4d;transition:all .1s;letter-spacing:1px;min-width:180px}#color-scan-loadlevels-btn:hover{background:#ff1493;color:#fff;box-shadow:2px 2px #fff,inset 1px 1px #ff69b4;transform:translate(1px,1px)}#color-scan-loadlevels-btn:active{transform:translate(3px,3px);box-shadow:1px 1px #fff,inset 1px 1px #ff69b4}#color-scan-submit.selected,#color-scan-scan-btn.selected,#color-scan-localseed-btn.selected,#color-scan-loadlevels-btn.selected{border:4px solid #ff69b4;box-shadow:4px 4px #fff,inset 2px 2px #ffffff80,0 0 0 3px #ff69b4}#color-scan-submit:focus,#color-scan-scan-btn:focus,#color-scan-localseed-btn:focus,#color-scan-loadlevels-btn:focus{outline:none}#color-submit.selected,#color-scan-btn.selected{border:4px solid #ff69b4;transform:scale(1.05);box-shadow:4px 4px #fff,inset 2px 2px #ffffff80,0 0 0 3px #ff69b4}.game-stage{margin:0;padding:0;overflow:hidden;background:#000;position:fixed;top:0;left:0;width:100vw;height:calc(var(--vh, 1vh) * 100);height:100dvh;height:100vh;display:flex;align-items:center;justify-content:center;transition:background-color .3s ease}body.on-game-stage .game-title{color:#333!important;animation:none!important;opacity:1!important}body.on-game-stage .about-link{color:#333!important;opacity:1!important}#app{position:relative;display:flex;align-items:center;justify-content:center;width:100vw;height:calc(var(--vh, 1vh) * 100);height:100dvh;height:100vh}#app canvas{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(95vh,95vw);height:min(95vh,95vw);image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;display:block;aspect-ratio:1 / 1}.tap-zone{position:fixed;top:0;bottom:0;width:50%;pointer-events:none;z-index:100001;opacity:0;transition:opacity .12s ease-out}.tap-zone.show{opacity:.65}#tap-zone-left{left:0;background:linear-gradient(to right,#0064ff99,#0064ff00)}#tap-zone-right{right:0;background:linear-gradient(to left,#ff69b499,#ff69b400)}.airplay-container{position:fixed;bottom:20px;right:20px;z-index:100000}.airplay-button{background:#ffffffe6!important;border-radius:12px!important;box-shadow:0 2px 8px #0003;color:#333}.airplay-button:hover{background:#fff!important;transform:scale(1.05)}.airplay-button.airplay-active{background:#007aff26!important;box-shadow:0 2px 12px #007aff66}.win-stage{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#000;position:fixed;top:0;left:0;width:100vw;height:100vh;overflow:hidden}#win-canvas{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(95vh,95vw);height:min(95vh,95vw);image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;z-index:1}body.on-win-stage .game-title{color:#333!important;animation:none!important;opacity:1!important}body.on-win-stage .about-link{color:#333!important;opacity:1!important}.lose-stage{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#000;position:fixed;top:0;left:0;width:100vw;height:100vh;overflow:hidden}#lose-canvas{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(95vh,95vw);height:min(95vh,95vw);image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;z-index:1}.tap-zone{position:fixed;top:0;bottom:0;width:50%;pointer-events:none;z-index:10;opacity:0;transition:opacity .15s ease-out}.tap-zone.show{opacity:1}#tap-zone-left{left:0}#tap-zone-right{right:0}body.on-lose-stage .game-title{color:#333!important;animation:none!important;opacity:1!important}body.on-lose-stage .about-link{color:#333!important;opacity:1!important}.gameover-stage{display:flex;align-items:center;justify-content:center;min-height:calc(var(--vh, 1vh) * 100);min-height:100dvh;min-height:100vh;background:#000;position:fixed;top:0;left:0;width:100vw;height:calc(var(--vh, 1vh) * 100);height:100dvh;height:100vh;transition:background-color .3s ease}body.on-gameover-stage .game-title{color:#333!important;animation:none!important;opacity:1!important}body.on-gameover-stage .about-link{color:#333!important;opacity:1!important}#gameover-form{text-align:center;padding:2rem;background:#fff;border:4px solid #000000;width:1080px;height:1080px;max-width:min(95vh,95vw);max-height:min(95vh,95vw);box-sizing:border-box;overflow-y:auto;box-shadow:inset 0 0 0 2px #fff,4px 4px #000;position:relative;display:flex;flex-direction:column;justify-content:flex-start;align-items:center}#gameover-title{margin:2rem 0 1.5rem;color:#ff69b4;font-size:1.5rem;font-weight:700;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;text-transform:uppercase;letter-spacing:2px;text-shadow:1px 1px 0px #000000}#gameover-list{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin:1rem 0 2rem;width:100%;max-width:800px}.gameover-item{display:inline-block;padding:1rem 1.5rem;background:#fff;border:3px solid #000000;box-shadow:3px 3px #000;text-align:center;min-width:140px;flex:0 0 auto}.gameover-rank{font-size:1.5rem;font-weight:700;margin-bottom:.5rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.gameover-player{font-weight:700;color:#000;font-size:1rem;margin-bottom:.25rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.gameover-time{color:#ff69b4;font-weight:700;font-size:1.1rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.medal-gold .gameover-rank{color:gold}.medal-silver .gameover-rank{color:silver}.medal-bronze .gameover-rank{color:#cd7f32}.gameover-loading,.gameover-error,.gameover-empty{padding:2rem;color:#666;font-size:1rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.gameover-error{color:#a00}#gameover-play-again{padding:.5rem 1.5rem;font-size:1rem;border:3px solid #000000;cursor:pointer;margin:1rem 0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;background:#ff69b4;color:#000;text-transform:uppercase;box-shadow:3px 3px #000,inset 1px 1px #fff;transition:all .1s;letter-spacing:1px;min-width:180px}#gameover-play-again:hover{background:#ff1493;color:#fff;box-shadow:2px 2px #000,inset 1px 1px #ff69b4;transform:translate(1px,1px)}#gameover-play-again:active{transform:translate(3px,3px);box-shadow:1px 1px #000,inset 1px 1px #ff69b4}.app-title{margin-top:1rem;font-size:1.5rem;font-weight:700;color:#000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif}
