.dinosaur{position:absolute;display:flex;align-items:flex-end;justify-content:center;transform-origin:center bottom;transition:transform .08s ease-out;pointer-events:none;overflow:visible}.dinosaur:before{content:"";position:absolute;bottom:8%;left:50%;width:120%;height:22%;background:radial-gradient(circle at 50% 20%,rgba(0,0,0,.28),transparent 72%);transform:translate(-50%);pointer-events:none;filter:blur(1px);opacity:.65}.dinosaur.running:not(.jumping):not(.ducking):not(.idle){animation:runBounce .42s ease-in-out infinite}@keyframes runBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.run-frame,.state-character{position:absolute;left:50%;bottom:0;width:120%;height:120%;transform:translate(-50%);object-fit:contain;object-position:center bottom;image-rendering:pixelated;-webkit-user-select:none;user-select:none;pointer-events:none;filter:drop-shadow(0 4px 8px rgba(0,0,0,.28))}.run-frame,.state-character{opacity:0}.run-frame.active,.state-character.active{opacity:1}.frame-jump,.frame-duck{opacity:0}.dinosaur.jumping{transform:translateY(-2px) rotate(-5deg)}.dinosaur.ducking{transform:translateY(0) scaleY(.95)}.dinosaur.jumping .run-frame,.dinosaur.ducking .run-frame{opacity:0}.dinosaur.jumping .frame-jump,.dinosaur.ducking .frame-duck{z-index:3}.dinosaur.ducking .frame-duck{width:170%;height:170%;opacity:1!important;filter:drop-shadow(0 6px 14px rgba(0,0,0,.32))}.dinosaur.has-skate.running:not(.jumping):not(.ducking) .run-frame{opacity:1}.player-skate{position:absolute;width:86%;height:22%;left:7%;bottom:-4%;pointer-events:none}.player-skate-deck{position:absolute;width:100%;height:50%;top:0;border-radius:999px;background:linear-gradient(90deg,#ffca3a,#fb5607);box-shadow:0 0 0 2px #272727 inset}.player-skate-wheel{position:absolute;width:17%;aspect-ratio:1;border-radius:50%;background:#1f1f1f;top:52%}.player-skate-wheel-left{left:15%}.player-skate-wheel-right{right:15%}@media (max-width: 768px){.run-frame,.state-character{filter:drop-shadow(0 3px 6px rgba(0,0,0,.24))}}.dinosaur.dashing{filter:drop-shadow(0 0 10px rgba(80,220,255,.85)) brightness(1.12)}.dash-trail{position:absolute;top:12%;left:8%;width:84%;height:76%;border-radius:18px;background:linear-gradient(90deg,#50dcff8c,#50dcff00);pointer-events:none;z-index:-1}.dash-trail-1{transform:translate(-16px) scaleX(.9);opacity:.55}.dash-trail-2{transform:translate(-34px) scaleX(.8);opacity:.35}.dash-trail-3{transform:translate(-54px) scaleX(.7);opacity:.18}.dinosaur.facing-left .state-character,.dinosaur.facing-left .run-frame{transform:translate(-50%) scaleX(-1)}.dinosaur.facing-left .dash-trail{background:linear-gradient(270deg,#50dcff8c,#50dcff00)}.dinosaur.facing-left .dash-trail-1{transform:translate(16px) scaleX(.9)}.dinosaur.facing-left .dash-trail-2{transform:translate(34px) scaleX(.8)}.dinosaur.facing-left .dash-trail-3{transform:translate(54px) scaleX(.7)}.dinosaur.wall-clinging{filter:drop-shadow(-6px 0 8px rgba(0,0,0,.35))}.dinosaur.wall-clinging .state-character,.dinosaur.wall-clinging .run-frame{transform:translate(-50%) rotate(-4deg)}.dinosaur.wall-clinging.facing-left .state-character,.dinosaur.wall-clinging.facing-left .run-frame{transform:translate(-50%) scaleX(-1) rotate(-4deg)}.obstacles{position:absolute;width:100%;height:100%;pointer-events:none}.obstacle{position:absolute;border-radius:4px;display:flex;align-items:stretch;justify-content:center}.obstacle-cactus{background:linear-gradient(180deg,#2a7f3a,#1b5f2b);border-radius:5px 5px 2px 2px;box-shadow:0 2px 6px #0003}.cactus-body{position:absolute;left:30%;width:40%;height:100%;border-radius:5px;background:inherit}.cactus-arm{position:absolute;width:30%;height:35%;top:30%;background:inherit;border-radius:4px}.cactus-arm-left{left:2%}.cactus-arm-right{right:2%}.obstacle-bird{background:linear-gradient(180deg,#4b5e6d,#2f3f4a);border-radius:16px;box-shadow:0 3px 8px #0000003d;animation:birdBob .45s ease-in-out infinite}.bird-body{position:absolute;width:55%;height:60%;left:22%;top:20%;background:inherit;border-radius:50% 45%}.bird-eye{position:absolute;width:10%;height:14%;right:18%;top:28%;background:#fff;border-radius:50%}.bird-eye:after{content:"";position:absolute;width:45%;height:45%;top:30%;left:35%;background:#111;border-radius:50%}.bird-wing{position:absolute;width:28%;height:36%;top:38%;background:#41525f;border-radius:8px;animation:wingFlap .25s ease-in-out infinite}.bird-wing-left{left:5%}.bird-wing-right{right:5%;animation-delay:.08s}.obstacle-skate{background:transparent;animation:skateGlow .9s ease-in-out infinite}.obstacle-spray{background:transparent}.spray-sprite{position:absolute;left:50%;top:50%;width:110%;height:110%;transform:translate(-50%,-15%);object-fit:contain;object-position:center bottom;image-rendering:pixelated;pointer-events:none}.obstacle-spray .spray-sprite,.obstacle-cactus .spray-sprite,.obstacle-duck-bar .spray-sprite{filter:drop-shadow(0 6px 14px rgba(0,0,0,.24))}.obstacle-duck-bar{background:transparent}.duck-bar-beam{position:absolute;top:0;left:0;width:100%;height:38%;background:linear-gradient(90deg,#7a5a2f,#a57b3f);border-radius:5px}.duck-bar-leg{position:absolute;top:34%;width:12%;height:66%;background:#6b4d29;border-radius:3px}.duck-bar-leg-left{left:8%}.duck-bar-leg-right{right:8%}.obstacle-train{background:transparent;animation:platformFloat 1.2s ease-in-out infinite;overflow:visible}.obstacle-floating-platform{background:transparent;overflow:visible;border-radius:0}.ledge-beam{position:absolute;top:0;right:0;bottom:0;left:0;border:3px solid #1f2430;border-radius:4px;background:linear-gradient(180deg,rgba(255,255,255,.35) 0 3px,transparent 3px),repeating-linear-gradient(-45deg,#ffd23f 0,#ffd23f 14px,#2b2f3a 14px,#2b2f3a 28px);box-shadow:0 8px 14px #00000047}.ledge-bracket{position:absolute;top:100%;width:10px;height:26px;background:#3a4050;border:2px solid #1f2430;border-top:none}.ledge-bracket-left{left:12%}.ledge-bracket-right{right:12%}.obstacle-checkpoint{background:transparent;overflow:visible}.flag-pole{position:absolute;left:8px;top:0;bottom:0;width:7px;border-radius:4px;background:linear-gradient(90deg,#e5e7eb,#9ca3af);border:2px solid #1f2430}.flag-cloth{position:absolute;left:15px;top:38%;width:46px;height:32px;display:flex;align-items:center;justify-content:center;border:2px solid #1f2430;border-radius:0 6px 6px 0;background:#ff4d9d;transform-origin:left center;animation:flagWave .9s ease-in-out infinite;transition:top .5s ease-out,background-color .3s}.flag-cloth:after{content:"";width:10px;height:10px;border-radius:50%;background:#fff}.obstacle-checkpoint.reached .flag-cloth{top:4px;background:#34d399}.flag-base{position:absolute;left:-2px;bottom:0;width:28px;height:8px;border-radius:3px;background:#3a4050;border:2px solid #1f2430}@keyframes flagWave{0%,to{transform:skewY(0) scaleX(1)}50%{transform:skewY(-6deg) scaleX(.92)}}.train-sprite{position:absolute;left:50%;top:0;width:110%;height:auto;max-height:140%;transform:translate(-50%,-3px);object-fit:contain;object-position:center top;image-rendering:pixelated;pointer-events:none}.obstacle-train .train-sprite{filter:drop-shadow(0 8px 18px rgba(0,0,0,.24))}.floating-platform-top{position:absolute;top:0;width:100%;height:28%;border-radius:999px;background:linear-gradient(180deg,#8aa7ff,#5f79d9)}.floating-platform-body{position:absolute;top:22%;width:94%;left:3%;height:54%;border-radius:0 0 10px 10px;background:linear-gradient(180deg,#3f4b87,#2a3260)}.floating-platform-light{position:absolute;bottom:8%;width:10%;aspect-ratio:1;border-radius:50%;background:#5ef5ff;box-shadow:0 0 8px #5ef5ffe6}.floating-platform-light-left{left:18%}.floating-platform-light-right{right:18%}.obstacle-trampoline{background:transparent;animation:trampolinePulse .85s ease-in-out infinite}.obstacle-coin{background:transparent;animation:coinFloat .8s ease-in-out infinite}.obstacle-power-lightning,.obstacle-power-jump{background:transparent;animation:powerFloat .95s ease-in-out infinite}.coin-core{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.coin-shine{position:absolute;width:30%;height:30%;top:20%;left:26%;border-radius:50%;background:#ffffffa6}.power-orb{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%}.power-icon-image{position:absolute;left:50%;top:50%;width:320%;height:320%;transform:translate(-50%,-50%);object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 0 12px rgba(255,255,255,.7))}.power-icon-lightning,.power-icon-jump{width:340%;height:340%}.power-orb-lightning{background:radial-gradient(circle at 30% 30%,#f6f8ff,#8eb1ff 48%,#4f74ff);box-shadow:0 0 10px #627cffd9}.power-orb-jump{background:radial-gradient(circle at 30% 30%,#fff8dc,#ffe169 45%,#ff9800);box-shadow:0 0 10px #ffa920cc}.power-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.power-icon-lightning,.power-icon-jump{width:100%;height:100%}.trampoline-base{position:absolute;bottom:0;width:92%;left:4%;height:46%;border-radius:8px;background:linear-gradient(180deg,#4f4f5e,#2f2f3b)}.trampoline-surface{position:absolute;top:8%;width:100%;height:28%;border-radius:999px;background:linear-gradient(90deg,#ff7a8a,#ff4f67)}.trampoline-leg{position:absolute;top:24%;width:10%;height:54%;background:#26262d}.trampoline-leg-left{left:16%}.trampoline-leg-right{right:16%}.skate-deck{position:absolute;width:86%;height:30%;left:7%;top:24%;border-radius:999px;background:linear-gradient(90deg,#f5a524,#f3722c);box-shadow:0 0 0 2px #1f1f1f inset}.skate-wheel{position:absolute;width:18%;aspect-ratio:1;top:56%;border-radius:50%;background:#1f1f1f}.skate-wheel-left{left:20%}.skate-wheel-right{right:20%}@keyframes wingFlap{0%,to{transform:rotate(-10deg) translateY(0)}50%{transform:rotate(12deg) translateY(-2px)}}@keyframes birdBob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes skateGlow{0%,to{filter:drop-shadow(0 0 0 rgba(255,187,0,0))}50%{filter:drop-shadow(0 0 8px rgba(255,187,0,.8))}}@keyframes platformFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes trampolinePulse{0%,to{transform:scaleY(1)}50%{transform:scaleY(.96)}}@keyframes coinFloat{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.04)}}@keyframes powerFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.obstacle-graffiti-artist{background:transparent;border:2px solid rgba(0,0,0,.1);border-radius:50%;box-shadow:0 0 20px #0000001a;animation:graffitiPulse 1.2s ease-in-out infinite}.graffiti-artist{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative}.artist-head{position:absolute;width:25px;height:25px;border-radius:50%;top:8px;left:50%;transform:translate(-50%);box-shadow:0 2px 4px #0003}.artist-body{position:absolute;width:20px;height:24px;border-radius:3px;top:32px;left:50%;transform:translate(-50%);box-shadow:0 2px 4px #0003}.artist-arm{position:absolute;width:12px;height:18px;border-radius:50%;top:36px;box-shadow:0 2px 4px #0003}.artist-arm-left{left:12px;transform:rotate(-30deg)}.artist-arm-right{right:12px;transform:rotate(30deg)}.artist-leg{position:absolute;width:10px;height:16px;border-radius:3px;top:54px;box-shadow:0 2px 4px #0003}.artist-leg-left{left:18px}.artist-leg-right{right:18px}@keyframes graffitiPulse{0%,to{transform:scale(1);filter:drop-shadow(0 0 0 rgba(0,0,0,.1))}50%{transform:scale(1.05);filter:drop-shadow(0 0 8px rgba(0,0,0,.2))}}@media (max-width: 768px){.obstacle{border-radius:3px}}.obstacle-building{overflow:visible}.building-face{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:6px 6px 0 0;background:linear-gradient(160deg,#2b2f45,#1b1e2e 60%,#14162200),repeating-linear-gradient(180deg,#232741 0,#232741 22px,#1e2137 22px,#1e2137 24px);box-shadow:inset 0 0 0 2px #00000059,0 8px 22px #0006}.building-roof{position:absolute;top:-6px;left:-4px;right:-4px;height:12px;border-radius:4px;background:linear-gradient(90deg,#3d4370,#575ea0,#3d4370);box-shadow:0 2px #00000059}.building-tag{position:absolute;left:8px;bottom:14px;width:calc(100% - 16px);height:30px;border-radius:4px;background:linear-gradient(90deg,#ff4d9d,#ffd23f);clip-path:polygon(0 30%,12% 0,30% 40%,50% 5%,68% 45%,88% 8%,100% 35%,92% 100%,8% 100%);opacity:.92}.building-windows{position:absolute;top:14px;right:10px;bottom:52px;left:10px;display:grid;grid-template-columns:repeat(2,1fr);gap:8px 10px;align-content:start}.building-window{height:14px;border-radius:2px;background:radial-gradient(circle at 40% 35%,#ffe89b,#d89a2e);box-shadow:0 0 6px #ffd27880;opacity:.85}.hud{position:absolute;top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));z-index:4;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:stretch;gap:10px;max-width:min(760px,calc(100% - 146px));pointer-events:none}.hud-sticker{display:flex;flex-direction:column;justify-content:center;min-width:78px;padding:6px 12px 7px;border:3px solid var(--ink);border-radius:10px;background:var(--paper);color:var(--ink);box-shadow:3px 3px 0 var(--ink);font-family:var(--font-display);line-height:1.1}.hud-sticker:nth-child(odd){transform:rotate(-1deg)}.hud-sticker:nth-child(2n){transform:rotate(1deg)}.hud-sticker small{font-family:var(--font-pixel);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;opacity:.8}.hud-sticker strong{font-size:1.15rem;font-weight:400;white-space:nowrap}.hud-sticker em{font-family:var(--font-pixel);font-size:.66rem;font-style:normal;opacity:.7}.hud-score{min-width:110px}.hud-score strong{font-size:1.6rem}.hud-score.is-record{background:var(--spray-pink);color:#fff}.hud-coins{background:var(--spray-yellow)}.hud-phase.phase-1{background:#ffd9b8}.hud-phase.phase-2{background:#bcd4ff}.hud-phase.phase-3{background:#3a1f78;color:#f5d0fe}.speed-bar{display:block;width:96px;height:12px;margin-top:5px;border:2px solid var(--ink);border-radius:999px;background:#fff;overflow:hidden}.speed-fill{display:block;height:100%;background:repeating-linear-gradient(-45deg,var(--spray-pink) 0 6px,#ff79b6 6px 12px);transition:width .2s linear}.hud-dash.ready{background:var(--spray-green)}.hud-dash.cooling{background:#d7d2e4}.hud-power.is-lightning{background:#9cc4ff}.hud-power.is-jump{background:#ffc27a}.hud-power.is-skate{background:var(--spray-cyan)}.signature-dots{display:flex;gap:5px;margin-top:5px}.signature-dot{width:14px;height:14px;border:2px solid var(--ink);border-radius:50%;background:#fff;opacity:.45}.signature-dot.collected{background:var(--artist);opacity:1}.hud-blackbook{pointer-events:auto;cursor:pointer;background:var(--spray-cyan);text-align:left}.hud-blackbook:active{box-shadow:none;translate:3px 3px}@media (max-width: 760px),(max-height: 520px){.hud{gap:6px;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));max-width:calc(100% - 104px)}.hud-sticker{min-width:0;padding:4px 8px 5px;border-width:2px;border-radius:8px;box-shadow:2px 2px 0 var(--ink)}.hud-sticker small{font-size:.58rem}.hud-sticker strong{font-size:.95rem}.hud-score strong{font-size:1.2rem}.hud-sticker em,.hud-optional{display:none}}.touch-controls{display:none}.touch-ui .touch-controls{position:absolute;left:0;right:0;bottom:0;z-index:20;display:flex;justify-content:space-between;align-items:flex-end;padding:0 max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));pointer-events:none}.touch-cluster{display:flex;align-items:flex-end;gap:12px}.touch-button{display:grid;place-items:center;width:64px;height:64px;padding:0;border:2px solid rgba(255,255,255,.6);border-radius:50%;background:#0f172a80;color:#fff;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;transition:transform .08s ease,background .08s ease}.touch-button[data-pressed]{transform:scale(.92);background:#667eead9}.touch-button-jump{width:80px;height:80px;background:#667eea8c}.touch-button-dash{background:#f59e0b8c}.touch-icon,.touch-icon-filled{width:30px;height:30px}.touch-icon{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.touch-icon-filled{fill:currentColor}@media (orientation: portrait){.touch-cluster-actions{display:grid;grid-template-areas:".    dash" "down jump";align-items:end;justify-items:center;gap:10px}.touch-button-dash{grid-area:dash}.touch-button-down{grid-area:down}.touch-button-jump{grid-area:jump}}@media (max-height: 420px){.touch-button{width:56px;height:56px}.touch-button-jump{width:68px;height:68px}}.street-dialog{position:relative;display:grid;grid-template-columns:170px minmax(0,1fr);gap:24px;width:min(640px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;padding:28px;font-family:var(--font-body);animation:stickerPop .25s ease-out}.street-dialog:before{content:"";position:absolute;left:18px;right:18px;top:-3px;height:8px;border-radius:0 0 8px 8px;background:var(--artist, var(--spray-pink));border:3px solid var(--ink);border-top:none}.street-dialog-artist{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.artist-tag-name{margin-top:4px;font-family:var(--font-tag);font-size:2.6rem;font-weight:400;line-height:1;color:var(--artist, var(--spray-pink));-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:3px 3px 0 var(--ink);transform:rotate(-4deg)}.artist-role{font-family:var(--font-pixel);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-ink)}.artist-portrait{position:relative;width:132px;height:132px;flex-shrink:0;border:3px solid var(--ink);border-radius:50%;overflow:hidden;background:radial-gradient(rgba(20,15,31,.18) 1.5px,transparent 2px) 0 0 / 9px 9px,var(--night-2);box-shadow:var(--shadow-hard)}.artist-portrait span{position:absolute;display:block}.portrait-body{left:26px;bottom:-14px;width:80px;height:62px;border:3px solid var(--ink);border-radius:28px 28px 0 0;background:var(--artist, var(--spray-pink))}.portrait-head{left:44px;top:34px;width:44px;height:46px;border:3px solid var(--ink);border-radius:12px;background:#c98a5b}.portrait-cap{left:38px;top:26px;width:58px;height:20px;border:3px solid var(--ink);border-radius:12px 12px 4px 4px;background:var(--ink);box-shadow:inset 0 -5px 0 var(--artist, var(--spray-pink))}.portrait-can{right:16px;top:58px;width:16px;height:30px;border:3px solid var(--ink);border-radius:4px;background:var(--spray-yellow);transform:rotate(18deg)}.portrait-mist{right:6px;top:40px;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle,var(--artist, var(--spray-pink)) 0 30%,transparent 70%);opacity:.8;animation:sprayMist 1.2s ease-in-out infinite}@keyframes sprayMist{0%,to{transform:scale(.7);opacity:.5}50%{transform:scale(1.25);opacity:.9}}.street-dialog-body{display:flex;flex-direction:column;gap:16px;min-width:0}.speech-bubble{position:relative;margin:0;padding:14px 16px;border:3px solid var(--ink);border-radius:14px;background:#fff;color:var(--ink);font-size:1rem;font-style:italic;line-height:1.45}.speech-bubble:before{content:"";position:absolute;left:-14px;top:22px;border-width:9px 14px 9px 0;border-style:solid;border-color:transparent var(--ink) transparent transparent}.speech-bubble:after{content:"";position:absolute;left:-9px;top:25px;border-width:6px 10px 6px 0;border-style:solid;border-color:transparent #fff transparent transparent}.dialog-ask{margin:0;font-family:var(--font-body);font-size:1.15rem;font-weight:800;line-height:1.35;color:var(--ink)}.street-dialog-actions{display:flex;flex-wrap:wrap;gap:10px}.street-dialog-actions .sticker-btn{flex:1 1 0}.street-dialog-actions .sticker-btn.is-pink{flex-basis:100%;padding-block:14px;font-size:1.2rem}.street-dialog-actions .sticker-btn.is-ghost{color:var(--muted-ink)}.signature-sticker{position:relative;margin:8px 0 0;padding:18px 16px 12px;border:3px solid var(--ink);border-radius:12px;background:#fff;box-shadow:var(--shadow-hard);transform:rotate(-1.5deg);text-align:center}.signature-sticker img{display:block;width:100%;max-height:150px;object-fit:contain}.signature-sticker figcaption{margin-top:8px;font-family:var(--font-pixel);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-ink)}@media (max-width: 560px){.street-dialog{grid-template-columns:minmax(0,1fr);gap:16px;padding:22px 18px}.street-dialog-artist{flex-direction:row;justify-content:center;gap:14px}.artist-portrait{margin:-17px;transform:scale(.74)}.artist-tag-name{font-size:2.2rem}.artist-role{display:none}.speech-bubble:before{left:40px;top:-14px;border-width:0 9px 14px 9px;border-color:transparent transparent var(--ink) transparent}.speech-bubble:after{left:43px;top:-9px;border-width:0 6px 10px 6px;border-color:transparent transparent #fff transparent}}.drawing-backdrop{z-index:1310}.drawing-panel{display:flex;flex-direction:column;gap:14px;width:min(860px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;padding:22px;font-family:var(--font-body);animation:stickerPop .25s ease-out}.drawing-header{text-align:center}.drawing-header h2{font-family:var(--font-tag);font-size:clamp(1.8rem,5vw,2.6rem);font-weight:400;line-height:1.1;color:var(--spray-pink);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:3px 3px 0 var(--ink)}.drawing-header p{margin-top:6px;font-family:var(--font-body);font-weight:600;color:var(--muted-ink)}.drawing-canvas{display:block;width:min(100%,calc(58dvh * 4 / 3));height:auto;margin:0 auto;border:3px solid var(--ink);border-radius:10px;background:#fff;box-shadow:var(--shadow-hard);cursor:crosshair;touch-action:none}.drawing-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.spray-swatches{display:flex;flex-wrap:wrap;gap:8px}.spray-swatch{width:34px;height:34px;border:3px solid var(--ink);border-radius:50%;cursor:pointer;box-shadow:2px 2px 0 var(--ink);transition:transform .1s ease}.spray-swatch:hover{transform:translateY(-2px)}.spray-swatch.active{outline:3px solid var(--spray-pink);outline-offset:2px;transform:scale(1.1)}.custom-swatch{position:relative;overflow:hidden;background:conic-gradient(#ff4d9d,#ffd23f,#34d399,#4ecdc4,#7c3aed,#ff4d9d)}.custom-swatch input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.brush-size{display:flex;align-items:center;gap:10px;font-family:var(--font-pixel);font-weight:600;color:var(--ink)}.brush-size input{width:140px;accent-color:var(--spray-pink)}.drawing-actions{display:flex;justify-content:flex-end;gap:10px}.drawing-actions .sticker-btn.is-ghost{color:var(--muted-ink)}@media (max-width: 600px){.drawing-panel{padding:16px}.drawing-tools{justify-content:center}.drawing-actions .sticker-btn{flex:1}}.confirmation-panel{display:flex;flex-direction:column;align-items:center;gap:12px;width:min(520px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;padding:26px 22px 22px;text-align:center;font-family:var(--font-body);animation:stickerPop .25s ease-out}.confirmation-title{font-family:var(--font-tag);font-size:2.6rem;font-weight:400;line-height:1;color:var(--spray-yellow);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:3px 3px 0 var(--ink);transform:rotate(-3deg)}.confirmation-subtitle,.confirmation-ask{font-family:var(--font-body);color:var(--muted-ink)}.confirmation-ask{font-size:1.1rem;font-weight:800;color:var(--ink)}.confirmation-sticker{position:relative;width:100%;margin:10px 0 4px;padding:10px;border:3px solid var(--ink);border-radius:12px;background:#fff;box-shadow:var(--shadow-hard);transform:rotate(1.5deg)}.confirmation-sticker img{display:block;width:100%;max-height:46dvh;object-fit:contain}.confirmation-actions{display:flex;gap:10px;width:100%}.confirmation-actions .sticker-btn{flex:1}.confirmation-actions .sticker-btn.is-ghost{color:var(--muted-ink)}.chaser{position:absolute;z-index:2;width:100px;height:100px;pointer-events:none}.chaser img{position:absolute;left:50%;bottom:0;width:120%;height:120%;transform:translate(-50%);object-fit:contain;object-position:center bottom;image-rendering:pixelated;filter:drop-shadow(0 4px 8px rgba(0,0,0,.28))}.chaser.caught{left:-140px;animation:copCatch .55s cubic-bezier(.3,0,.6,1) forwards}@keyframes copCatch{to{left:var(--catch-x)}}.shout-bubble{position:absolute;left:40%;bottom:118%;padding:5px 10px;border:3px solid var(--ink);border-radius:10px;background:#fff;color:var(--ink);font-family:var(--font-display);font-size:1.1rem;white-space:nowrap;box-shadow:3px 3px 0 var(--ink);transform:rotate(-4deg);animation:shoutPop .25s ease-out}.shout-bubble:after{content:"";position:absolute;left:18px;bottom:-12px;border-width:12px 8px 0 0;border-style:solid;border-color:var(--ink) transparent transparent transparent}@keyframes shoutPop{0%{transform:rotate(-4deg) scale(.4);opacity:0}}.alert-bubble{position:absolute;z-index:4;width:34px;height:40px;display:flex;align-items:center;justify-content:center;border:3px solid var(--ink);border-radius:10px;background:var(--spray-yellow);color:var(--ink);font-family:var(--font-display);font-size:1.5rem;box-shadow:3px 3px 0 var(--ink);animation:shoutPop .2s ease-out;pointer-events:none}.spray-mist{position:absolute;z-index:3;width:46px;height:36px;pointer-events:none;background:radial-gradient(circle at 20% 50%,rgba(255,77,157,.9) 0 3px,transparent 4px),radial-gradient(circle at 45% 30%,rgba(255,77,157,.7) 0 2px,transparent 3px),radial-gradient(circle at 55% 70%,rgba(255,210,63,.8) 0 2px,transparent 3px),radial-gradient(circle at 80% 45%,rgba(255,77,157,.5) 0 4px,transparent 5px);animation:mistPuff .25s steps(2) infinite}@keyframes mistPuff{50%{transform:translate(4px) scale(1.15);opacity:.7}}.obstacle-wall{background:transparent;border-radius:0}.obstacle-wall img{position:absolute;image-rendering:pixelated;pointer-events:none}.wall-bricks{top:0;right:0;bottom:0;left:0;width:100%;height:100%}.wall-tag{position:absolute;left:7%;top:22%;width:86%}.wall-tag img{position:static;display:block;width:100%}.caught-sticker{position:absolute;left:50%;top:32%;z-index:7;padding:10px 26px;border:4px solid var(--ink);border-radius:14px;background:var(--spray-pink);color:#fff;font-family:var(--font-display);font-size:clamp(2.2rem,7vw,4rem);box-shadow:6px 6px 0 var(--ink);transform:translate(-50%) rotate(-6deg);animation:caughtSlap .3s .45s ease-out both;pointer-events:none}@keyframes caughtSlap{0%{opacity:0;transform:translate(-50%) rotate(-6deg) scale(2.2)}}@media (prefers-reduced-motion: reduce){.spray-mist,.chaser.caught{animation:none}.chaser.caught{left:var(--catch-x)}}.route-map{position:absolute;top:max(14px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));z-index:5;width:104px;height:156px;overflow:visible;pointer-events:none}.route-plate{fill:#140f1f47;stroke:#140f1f59;stroke-width:1}.route-map polyline{fill:none;stroke-linecap:round;stroke-linejoin:round}.route-shadow{stroke:var(--ink);stroke-width:9;opacity:.55}.route-outline{stroke:var(--ink);stroke-width:9}.route-ahead{stroke:#ffffffbf;stroke-width:4;stroke-dasharray:5 4}.route-done{stroke:#ff9ad5;stroke-width:5}.route-map text{font-family:var(--font-display);fill:#ff9ad5;stroke:var(--ink);stroke-width:3px;paint-order:stroke fill;stroke-linejoin:round}.route-start{font-size:9px}.route-distance{font-size:15px}.route-flag line{stroke:var(--ink);stroke-width:2.5}.route-flag polygon{fill:#fff;stroke:var(--ink);stroke-width:1.5}.route-flag text{font-size:7.5px}.route-flag.is-reached polygon{fill:var(--spray-green)}.route-flag.is-due polygon,.route-flag.is-due text{animation:routeDue .6s steps(2) infinite}.route-flag.is-due text{fill:var(--spray-yellow)}@keyframes routeDue{50%{opacity:.35}}.route-player{fill:var(--spray-yellow);stroke:var(--ink);stroke-width:2}.route-pulse{fill:#ffd23f59;transform-box:fill-box;transform-origin:center;animation:routePulse 1.2s ease-out infinite}@keyframes routePulse{0%{transform:scale(.6);opacity:.9}to{transform:scale(1.8);opacity:0}}@media (max-width: 760px),(max-height: 520px){.route-map{width:70px;height:105px}}@media (prefers-reduced-motion: reduce){.route-pulse,.route-flag.is-due polygon,.route-flag.is-due text{animation:none}}.slam-fire{position:absolute;z-index:4;image-rendering:pixelated;pointer-events:none;filter:drop-shadow(0 0 10px rgba(255,140,20,.55))}.slam-board{position:absolute;z-index:4;width:64px;height:18px;pointer-events:none;animation:slamBoard 1s cubic-bezier(.2,.6,.4,1) forwards}.slam-board-deck{position:absolute;top:0;right:0;bottom:6px;left:0;border:3px solid var(--ink);border-radius:999px;background:#fdf6c3}.slam-board-wheel{position:absolute;bottom:0;width:11px;height:11px;border:3px solid var(--ink);border-radius:50%;background:#0b4a3c}.slam-board-wheel.is-left{left:8px}.slam-board-wheel.is-right{right:8px}@keyframes slamBoard{0%{transform:translate(0) rotate(0)}45%{transform:translate(-30px,-170px) rotate(-300deg)}to{transform:translate(-90px,60px) rotate(-560deg);opacity:0}}.slam-sticker{position:absolute;z-index:6;display:grid;place-items:center;width:150px;height:90px;transform:translate(-50%) rotate(-8deg);pointer-events:none;animation:slamPop .28s cubic-bezier(.2,1.6,.5,1) both}.slam-burst{position:absolute;top:0;right:0;bottom:0;left:0;background:#0b4a3c;clip-path:polygon(50% 0%,60% 26%,88% 8%,76% 36%,100% 42%,78% 56%,96% 82%,66% 70%,58% 100%,46% 74%,20% 96%,26% 66%,0% 64%,22% 48%,4% 22%,34% 30%)}.slam-burst:after{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;background:#fdf6c3;clip-path:inherit}.slam-sticker strong{position:relative;font-family:var(--font-display);font-size:1.9rem;font-weight:400;color:#fdf6c3;-webkit-text-stroke:3px #0b4a3c;paint-order:stroke fill;text-shadow:3px 3px 0 #0b4a3c;letter-spacing:.04em}@keyframes slamPop{0%{opacity:0;transform:translate(-50%) rotate(-8deg) scale(2.2)}}.game-scene.is-slammed{animation:slamShake .3s linear}@keyframes slamShake{25%{translate:-5px 3px}50%{translate:4px -2px}75%{translate:-3px 1px}}.obstacle.knocked{animation:knockedAway .75s cubic-bezier(.2,.6,.4,1) forwards}@keyframes knockedAway{to{transform:translate(160px,-260px) rotate(540deg) scale(.6);opacity:0}}.dinosaur.recovering{animation:recoverBlink .18s steps(2,jump-none) infinite}@keyframes recoverBlink{50%{opacity:.3}}@media (prefers-reduced-motion: reduce){.game-scene.is-slammed,.slam-board{animation:none}}.blackbook-backdrop{z-index:1300}.blackbook{position:relative;display:flex;flex-direction:column;width:min(980px,100%);height:min(780px,calc(100dvh - 32px));padding:18px 26px 18px 18px;border:3px solid var(--ink);border-radius:18px;background:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1.5px) 0 0 / 6px 6px,linear-gradient(160deg,#2a2238,#120d1c);box-shadow:var(--shadow-hard-lg);font-family:var(--font-body);animation:stickerPop .25s ease-out}.blackbook:after{content:"";position:absolute;top:-3px;bottom:-3px;right:8px;width:9px;background:var(--spray-pink);border-left:2px solid var(--ink);border-right:2px solid var(--ink);pointer-events:none}.blackbook-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 6px 12px}.blackbook-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;min-width:0}.blackbook-title{font-family:var(--font-tag);font-size:clamp(2.2rem,6vw,3.2rem);font-weight:400;line-height:1;color:#fff;text-shadow:3px 3px 0 var(--spray-pink),6px 6px 0 var(--ink);transform:rotate(-3deg)}.blackbook-count{font-family:var(--font-pixel);font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;color:var(--spray-yellow)}.blackbook-close{flex-shrink:0;width:42px;height:42px;padding:0;font-size:1.1rem}.blackbook-tabs{display:flex;gap:8px;padding:0 10px}.blackbook-tabs button{display:inline-flex;align-items:center;gap:8px;padding:9px 16px 8px;border:3px solid var(--ink);border-bottom:none;border-radius:12px 12px 0 0;background:#3b3150;color:#d9d2ea;font-family:var(--font-display);font-size:.9rem;white-space:nowrap;cursor:pointer;transform:translateY(3px)}.blackbook-tabs button.active{background:var(--paper);color:var(--ink);transform:none}.blackbook-tabs button:focus-visible{outline:3px dashed var(--spray-yellow);outline-offset:2px}.tab-count{min-width:24px;padding:1px 7px;border:2px solid var(--ink);border-radius:999px;background:var(--spray-yellow);color:var(--ink);font-size:.8rem;text-align:center}.blackbook-pages{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 20px 24px;border:3px solid var(--ink);border-radius:4px 14px 14px;background:radial-gradient(rgba(20,15,31,.13) 1.2px,transparent 1.6px) 0 0 / 22px 22px,var(--paper)}.blackbook-section+.blackbook-section{margin-top:26px;padding-top:20px;border-top:3px dashed rgba(20,15,31,.2)}.section-title{margin-bottom:18px;font-family:var(--font-display);font-size:1.05rem;font-weight:400;color:var(--ink);text-transform:uppercase;letter-spacing:.05em}.section-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.section-toolbar p{font-family:var(--font-body);font-weight:600;font-size:1rem;color:var(--muted-ink)}.art-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(210px,100%),1fr));gap:28px 22px;padding-top:8px}.art-sticker{position:relative;margin:0;padding:10px 10px 8px;border:3px solid var(--ink);border-radius:10px;background:#fff;box-shadow:var(--shadow-hard);transform:rotate(var(--tilt, 0deg));transition:transform .15s ease}.art-sticker:hover{transform:rotate(0) translateY(-3px)}.art-frame{display:flex;align-items:center;justify-content:center;aspect-ratio:4 / 3;border-radius:6px;background:#fff;overflow:hidden}.art-frame img{width:100%;height:100%;object-fit:contain}.art-sticker figcaption{display:flex;align-items:center;gap:8px;margin-top:8px}.art-label{min-width:0;overflow:hidden;padding:3px 10px;border:2px solid var(--ink);border-radius:999px;color:var(--ink);font-family:var(--font-pixel);font-size:.8rem;font-weight:700;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.art-date{margin-left:auto;font-family:var(--font-pixel);font-size:.8rem;color:var(--muted-ink)}.art-download{flex-shrink:0;width:30px;height:30px;border:2px solid var(--ink);border-radius:8px;background:var(--spray-yellow);box-shadow:2px 2px 0 var(--ink);font-size:.95rem;cursor:pointer}.art-download:active{transform:translate(2px,2px);box-shadow:none}.blackbook-empty{padding:60px 20px;text-align:center;font-family:var(--font-pixel)}.blackbook-empty p{font-family:var(--font-display);font-size:1.2rem;color:var(--ink)}.blackbook-empty .empty-hint{margin-top:8px;font-family:var(--font-body);font-size:1rem;font-weight:400;color:var(--muted-ink)}.blackbook-bottom{display:flex;justify-content:center;padding-top:14px}.blackbook-bottom .sticker-btn{min-width:180px}@media (max-width: 600px){.blackbook-backdrop{padding:0}.blackbook{width:100%;height:100dvh;padding:max(12px,env(safe-area-inset-top)) 18px max(12px,env(safe-area-inset-bottom)) 10px;border-radius:0;border:none}.blackbook:after{right:4px;width:7px;top:0;bottom:0}.blackbook-tabs{padding:0 4px}.blackbook-tabs button{flex:1;justify-content:center;gap:6px;padding:8px 6px 7px;font-size:.78rem}.blackbook-pages{padding:14px 12px 20px}.blackbook-bottom .sticker-btn{width:100%}}.game-wrapper{width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:#fff}.game-wrapper.is-night{background:#fff}.game-container{position:relative;width:100%;max-width:none;min-height:100vh;height:100vh;min-height:100dvh;height:100dvh;background:linear-gradient(180deg,#87ceeb,#e0f6ff);border:none;border-radius:0;overflow:hidden;box-shadow:none}.game-world{position:absolute;top:0;left:0;z-index:0;transform-origin:0 0;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.game-container.is-night{border-color:#8397ff;box-shadow:0 20px 70px #04091da6}.game-background{position:absolute;width:100%;height:100%;z-index:0;pointer-events:none}.background-image-layer{position:absolute;top:0;right:0;bottom:0;left:0;background-repeat:no-repeat;background-position:center center;background-size:cover;transition:opacity 1.2s ease-in-out}.background-image-layer.day{z-index:0}.background-image-layer.night{z-index:1}.bg-layer{position:absolute;width:100%;z-index:2}.bg-clouds{height:60%;display:none}.game-container.is-night .bg-clouds{display:none}.bg-stars{height:58%;display:none}.game-container.is-night .bg-stars{display:none}.game-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.scene-ground{position:absolute;left:0;right:0;bottom:0;height:24%;background:linear-gradient(180deg,#8f949e,#676d78 42%,#474c56);border-top:6px solid #b6bcc6;box-shadow:inset 0 8px #ffffff0f}.game-container.is-night .scene-ground{background:linear-gradient(180deg,#5b6270,#3f4653 42%,#2a303a);border-top-color:#8f98aa}.phase-banner{position:absolute;left:50%;top:22%;z-index:6;display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 28px;border:3px solid var(--ink);border-radius:16px;box-shadow:6px 6px #000;background:#1f1147eb;color:#fff;text-align:center;pointer-events:none;transform:translate(-50%);animation:phaseBanner 2.6s ease-in-out forwards}.phase-banner-kicker{color:var(--spray-yellow);font-family:var(--font-pixel);font-size:.85rem;letter-spacing:.12em;text-transform:uppercase}.phase-banner-title{font-family:var(--font-display);font-size:clamp(1.4rem,4vw,2.2rem);font-weight:400}.phase-banner-note{color:#c7d2fe;font-size:.9rem;font-weight:600}@keyframes phaseBanner{0%{opacity:0;transform:translate(-50%,12px) scale(.92)}12%,80%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,-8px) scale(1)}}.dinosaur{z-index:3}.controls-hint{position:absolute;left:50%;bottom:5%;transform:translate(-50%);z-index:5;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;width:max-content;max-width:min(860px,calc(100% - 200px));padding:12px 18px;border:3px solid var(--ink);border-radius:12px;background:#140f1fe0;box-shadow:4px 4px #000;color:#e9e2ff;font-size:.85rem;line-height:1.4;pointer-events:none;animation:controlsHintFade 7s ease forwards}.controls-hint-title{width:100%;text-align:center;font-family:var(--font-display);font-size:.95rem;color:var(--spray-yellow)}.controls-hint-item strong{margin-right:6px;font-family:var(--font-pixel);font-size:.8rem;font-weight:400;color:var(--spray-yellow)}@keyframes controlsHintFade{0%,80%{opacity:1}to{opacity:0;visibility:hidden}}.touch-ui .controls-hint{display:none}.grind-combo{position:absolute;top:max(20px,env(safe-area-inset-top));left:calc(max(14px,env(safe-area-inset-left)) + 118px);z-index:6;display:flex;align-items:baseline;gap:8px;padding:6px 16px 8px;border:3px solid var(--ink);border-radius:12px;background:var(--night);box-shadow:4px 4px #000;transform:rotate(-4deg);font-family:var(--font-display);text-transform:uppercase;pointer-events:none}.grind-combo-x{color:#ffd23f;font-size:1rem}.grind-combo-value{display:inline-block;color:#ff4d9d;font-size:2rem;line-height:1;text-shadow:2px 2px 0 #1f1147;animation:grindPop .25s ease-out}@keyframes grindPop{0%{transform:scale(1.4)}to{transform:scale(1)}}.obstacles{z-index:2}.hud{z-index:4}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@media (max-width: 768px){.controls-hint{bottom:96px;max-width:calc(100% - 32px);font-size:.78rem}}.title-screen{position:relative;min-height:100dvh;color:#fff;background:var(--ink);font-family:var(--font-body);overflow-x:hidden}.title-scene{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.title-city{position:absolute;top:0;bottom:0;left:0;width:116%;background-repeat:no-repeat;background-size:cover;background-position:center 70%;image-rendering:pixelated;animation:cityDrift 70s ease-in-out infinite alternate;will-change:transform}@keyframes cityDrift{to{transform:translate(-13.79%)}}.title-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.12) 0 2px,transparent 2px 4px),linear-gradient(90deg,#140f1feb,#140f1fb3 38%,#1f114733 70%,#1f11470d),linear-gradient(0deg,rgba(255,77,157,.18),transparent 45%)}.title-street{position:absolute;left:0;right:0;bottom:0;height:18%;background:linear-gradient(180deg,#5b6270,#3f4653 42%,#2a303a);border-top:6px solid #8f98aa}.title-street:after{content:"";position:absolute;left:0;right:0;top:42%;height:6px;background:repeating-linear-gradient(90deg,rgba(255,210,63,.75) 0 48px,transparent 48px 110px);animation:laneMarks .9s linear infinite}@keyframes laneMarks{to{background-position:-110px 0}}.title-runner{position:absolute;left:64%;bottom:calc(100% - 4px);height:clamp(130px,24vh,230px);image-rendering:pixelated;filter:drop-shadow(0 6px 0 rgba(0,0,0,.35))}.title-stats{position:absolute;top:clamp(14px,3vh,28px);right:clamp(14px,3vw,36px);z-index:2;display:flex;gap:12px}.stat-sticker{display:flex;flex-direction:column;align-items:center;min-width:108px;padding:8px 14px;border:3px solid var(--ink);border-radius:12px;background:var(--paper);color:var(--ink);box-shadow:var(--shadow-hard);transform:rotate(2deg)}.stat-sticker.is-coin{background:var(--spray-yellow);transform:rotate(-2deg)}.stat-sticker small{font-family:var(--font-pixel);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.stat-sticker strong{font-family:var(--font-display);font-size:1.6rem;font-weight:400;line-height:1.1}.title-layout{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;gap:22px;width:min(460px,100%);min-height:100dvh;padding:clamp(24px,5vh,56px) 0 72px clamp(18px,7vw,110px)}.title-logo{position:relative}.logo-tag{font-family:var(--font-tag);font-size:clamp(3.6rem,8.5vw,6.6rem);font-weight:400;line-height:.82;transform:rotate(-6deg);transform-origin:left bottom}.logo-line{display:block;color:#fff;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:5px 5px 0 var(--spray-pink),9px 9px 0 var(--ink)}.logo-line-2{margin-left:1.1em;color:var(--spray-yellow);text-shadow:5px 5px 0 var(--night-2),9px 9px 0 var(--ink)}.beta-sticker{position:absolute;top:-6px;left:72%;padding:4px 10px;border:3px solid var(--ink);border-radius:8px;background:var(--spray-cyan);color:var(--ink);font-family:var(--font-display);font-size:.85rem;box-shadow:3px 3px 0 var(--ink);transform:rotate(12deg)}.logo-tagline{margin-top:18px;font-family:var(--font-pixel);font-size:.95rem;letter-spacing:.1em;text-transform:uppercase;color:#e9e2ff;text-shadow:2px 2px 0 var(--ink)}.is-gameover .logo-tag{font-size:clamp(3rem,6.2vw,4.8rem)}.result-card{position:relative;padding:16px 18px 18px;animation:stickerPop .3s ease-out}@media (min-width: 761px){.result-card{position:absolute;top:20%;left:max(540px,44vw);width:350px;rotate:2deg}}.result-title{font-family:var(--font-display);font-size:1.7rem;font-weight:400;color:var(--spray-pink);-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill;text-shadow:2px 2px 0 var(--ink);transform:rotate(-2deg)}.record-sticker{position:absolute;top:-16px;right:14px;padding:5px 10px;border:3px solid var(--ink);border-radius:8px;background:var(--spray-yellow);font-family:var(--font-display);font-size:.85rem;box-shadow:3px 3px 0 var(--ink);transform:rotate(8deg);animation:recordWiggle 1.2s ease-in-out infinite}@keyframes recordWiggle{50%{transform:rotate(3deg) scale(1.06)}}.result-scores{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.result-scores div{display:flex;flex-direction:column;padding:8px 12px;border:2px dashed rgba(20,15,31,.3);border-radius:10px}.result-scores small{font-family:var(--font-pixel);font-size:.75rem;text-transform:uppercase;color:var(--muted-ink)}.result-scores strong{font-family:var(--font-display);font-size:2rem;font-weight:400;line-height:1.1}.title-menu{display:flex;flex-direction:column;gap:12px}.title-menu .sticker-btn{box-shadow:4px 4px #000}.title-menu .sticker-btn:hover{box-shadow:6px 6px #000}.menu-main{padding:16px 20px;font-size:1.35rem}.btn-continue{flex-direction:column;gap:2px}.btn-note{font-family:var(--font-pixel);font-size:.8rem;opacity:.8}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}.title-menu .mode-chip{background:#3b3150;color:#fff}.title-menu .mode-chip.active{background:var(--spray-yellow);color:var(--ink)}.mode-tagline{margin-top:-2px;font-size:.9rem;line-height:1.4;color:#d9d2ea;text-shadow:1px 1px 0 var(--ink)}.menu-row{display:flex;gap:10px}.menu-row>*{flex:1}.title-menu .menu-link{color:#fff;border-color:#ffffff8c;background:#140f1fb8;box-shadow:none}.continue-hint{margin-top:-4px;padding:6px 10px;border-radius:8px;background:#140f1fcc;color:var(--spray-yellow);font-size:.85rem;font-weight:600}.result-online{margin-top:12px;padding:7px 10px;border-radius:8px;background:var(--ink);color:var(--spray-yellow);font-family:var(--font-display);font-size:.9rem}.result-online.is-refused{color:#ffb4b4;font-family:var(--font-body);font-weight:700}.board-tabs{display:flex;gap:8px;margin-bottom:12px}.board-tabs button{flex:1;padding:8px 10px;border:3px solid var(--ink);border-radius:10px;background:#fff;color:var(--ink);font-family:var(--font-display);font-size:.85rem;cursor:pointer}.board-tabs button.active{background:var(--ink);color:var(--spray-yellow)}.board-tag{margin-left:8px;padding:1px 7px;border:2px solid currentColor;border-radius:999px;font-size:.7rem;font-weight:700;opacity:.75}.result-distance{margin-top:10px;font-family:var(--font-display);font-size:.95rem;color:var(--ink)}.result-online.is-local{background:var(--night-2);color:#fff}.leaderboard-mode{margin-bottom:12px;color:var(--muted-ink);font-size:.9rem}.leaderboard-empty{padding:24px 0;text-align:center;font-family:var(--font-display)}.leaderboard-list{display:grid;gap:6px;list-style:none}.leaderboard-list li{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:10px;padding:7px 12px;border:2px solid var(--ink);border-radius:10px;background:#fff}.leaderboard-list li:nth-child(1){background:var(--spray-yellow)}.leaderboard-list li.is-me{background:var(--spray-pink);color:#fff}.leaderboard-rank{font-family:var(--font-pixel);font-weight:700}.leaderboard-name{min-width:0;overflow:hidden;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.leaderboard-score{font-family:var(--font-display);font-size:1.1rem}.nickname-form{display:grid;gap:6px;margin-top:18px;padding-top:14px;border-top:2px dashed rgba(20,15,31,.25)}.nickname-form label{font-family:var(--font-display);font-size:.9rem}.nickname-row{display:flex;gap:8px}.nickname-row input{flex:1;min-width:0;padding:8px 10px;border:3px solid var(--ink);border-radius:9px;background:#fff;font:inherit;font-weight:600}.nickname-error{color:#b42318;font-weight:600}.title-hints{position:fixed;left:50%;bottom:14px;z-index:2;display:flex;gap:18px;padding:8px 16px;border-radius:10px;background:#140f1fb8;font-family:var(--font-pixel);font-size:.72rem;white-space:nowrap;transform:translate(-50%)}.title-hints kbd,.controls-list kbd{display:inline-block;margin-right:4px;padding:1px 6px;border:2px solid currentColor;border-radius:5px;font-family:var(--font-pixel);font-size:.9em}.title-panel{position:relative;width:min(560px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;padding:26px 24px 24px;animation:stickerPop .25s ease-out}.panel-close{position:absolute;top:14px;right:14px;width:40px;height:40px;padding:0}.panel-title{margin:0 52px 16px 0;font-family:var(--font-display);font-size:1.35rem;font-weight:400}.controls-list{display:grid;gap:10px;list-style:none}.controls-list li{display:flex;align-items:baseline;gap:10px;line-height:1.4}.controls-list kbd{flex-shrink:0;padding:3px 8px;border:none;background:var(--ink);color:var(--spray-yellow)}.tips-list{margin-top:18px;padding:14px 16px 14px 34px;border:2px dashed rgba(20,15,31,.3);border-radius:12px;color:var(--muted-ink);line-height:1.45}.tips-list li+li{margin-top:6px}.panel-text{line-height:1.5;margin-bottom:16px}.partner-cards{display:grid;gap:12px;margin-bottom:18px}.partner-card{display:flex;align-items:center;gap:14px;padding:12px;border:3px solid var(--ink);border-radius:12px;background:#fff;color:var(--ink);text-decoration:none;box-shadow:3px 3px 0 var(--ink);transition:transform .12s ease}.partner-card:hover{transform:translate(-1px,-2px) rotate(-.5deg)}.partner-card strong{display:block;font-family:var(--font-display);font-weight:400}.partner-card small{color:var(--muted-ink)}.partner-avatar{width:56px;height:56px;flex-shrink:0;border:3px solid var(--ink);border-radius:50%;object-fit:cover;background:var(--paper-2)}.partner-avatar-crop{object-position:32% 40%}.store-link{width:100%;text-decoration:none}.controls-list li.only-touch{display:none}.touch-ui .controls-list li.only-touch{display:flex}.touch-ui .controls-list li.only-keyboard,.touch-ui .title-hints{display:none}@media (max-width: 900px){.title-hints{display:none}}@media (max-width: 760px){.title-layout{width:min(480px,100%);margin:0 auto;padding:104px 16px calc(16vh + 32px);justify-content:flex-start}.title-stats{left:16px;right:16px;justify-content:center}.title-logo{text-align:center}.logo-tag{transform-origin:center}.logo-line-2{margin-left:.6em}.beta-sticker{left:auto;right:4%}.title-street{height:14%}.title-runner{left:auto;right:8%;height:120px}.title-shade{background:repeating-linear-gradient(0deg,rgba(0,0,0,.12) 0 2px,transparent 2px 4px),linear-gradient(180deg,#140f1f8c,#140f1fcc 55%,#140f1f59)}}@media (prefers-reduced-motion: reduce){.title-city,.title-street:after,.record-sticker{animation:none}}.feedback-widget{position:fixed;right:24px;bottom:24px;z-index:1200;display:flex;flex-direction:column;align-items:flex-end;gap:12px}.feedback-fab{border:none;border-radius:999px;height:56px;min-width:56px;padding:0 18px;background:linear-gradient(90deg,#6f42db,#8d57ff);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 10px 24px #5834b46b;cursor:pointer;transition:transform .16s ease,box-shadow .2s ease,width .2s ease}.feedback-fab:hover{transform:translateY(-1px);box-shadow:0 12px 28px #5834b485}.feedback-fab.expanded{padding-right:20px;padding-left:16px}.feedback-fab-icon{font-size:19px;line-height:1}.feedback-fab-text{font-size:1.05rem;font-weight:600}.feedback-panel{width:min(420px,calc(100vw - 24px));background:linear-gradient(180deg,#171922,#11131b);border:1px solid #2b3040;border-radius:8px;color:#e9e9ef;padding:18px;box-shadow:0 14px 32px #0000008c;animation:feedbackPanelIn .2s ease}.feedback-panel-header{display:flex;align-items:center;justify-content:center;margin-bottom:16px;position:relative}.feedback-panel-header h3{margin:0;font-size:1.1rem;font-weight:500;display:inline-flex;align-items:center;gap:8px}.feedback-panel-header.with-back{justify-content:space-between}.feedback-icon-btn{border:none;color:#aeb3c2;background:transparent;font-size:1.55rem;cursor:pointer;line-height:1;width:34px;height:34px;border-radius:7px}.feedback-panel-header:not(.with-back) .feedback-icon-btn{position:absolute;right:0}.feedback-icon-btn:hover{background:#ffffff0f}.feedback-types-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}.feedback-type-card{border:1px solid #2b3040;border-radius:10px;background:#252833;color:#e9e9ef;min-height:110px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;cursor:pointer}.feedback-type-card:hover{border-color:#5249c8;transform:translateY(-1px)}.feedback-type-emoji{font-size:1.95rem;line-height:1}.feedback-type-label{font-size:1.05rem}.feedback-textarea{width:100%;border:1px solid #505770;border-radius:8px;background:#171922;color:#d7dae4;font-size:1.02rem;padding:14px;resize:none;outline:none;margin-bottom:12px}.feedback-textarea::placeholder{color:#9ca3b8}.feedback-textarea:focus{border-color:#7d61ec;box-shadow:0 0 0 2px #7d61ec40}.feedback-form-actions{display:grid;grid-template-columns:50px 1fr;gap:10px;margin-bottom:10px}.feedback-upload-btn{border-radius:8px;border:1px solid #3a3f50;background:#262a35;color:#f0f3fb;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.2rem}.feedback-upload-btn:hover{border-color:#5f6791}.feedback-upload-btn input{display:none}.feedback-submit-btn{border:none;border-radius:8px;background:#5d43a3;color:#fff;font-weight:500;font-size:1.02rem;cursor:pointer;min-height:50px}.feedback-submit-btn:disabled{opacity:.55;cursor:not-allowed}.feedback-help,.feedback-status{margin:0;text-align:center;font-size:.95rem}.feedback-help{color:#aeb3c2;margin-bottom:8px}.feedback-status{margin-bottom:10px}.feedback-status.success{color:#6fe4a9}.feedback-status.error{color:#ff9ea5}@keyframes feedbackPanelIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 640px){.feedback-widget{right:12px;bottom:12px}.feedback-panel{width:min(420px,calc(100vw - 12px));padding:14px}.feedback-types-grid{grid-template-columns:1fr}}.app{width:100%;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding:0}.touch-ui .app.is-playing .feedback-widget{display:none}:root{--ink: #140f1f;--night: #1f1147;--night-2: #2d1b63;--paper: #fff6e5;--paper-2: #f4e7cd;--spray-pink: #ff4d9d;--spray-yellow: #ffd23f;--spray-cyan: #4ecdc4;--spray-coral: #ff6b6b;--spray-green: #34d399;--muted-ink: #5b5170;--font-tag: "Sedgwick Ave Display", "Permanent Marker", cursive;--font-display: "Bungee", "Arial Black", sans-serif;--font-pixel: "Silkscreen", "Courier New", monospace;--font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--shadow-hard: 4px 4px 0 var(--ink);--shadow-hard-lg: 7px 7px 0 var(--ink)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;min-height:100%;height:100%}body{font-family:Arial,sans-serif;overflow-x:hidden;margin:0}#root{min-height:100vh;min-height:100dvh}.only-touch{display:none}.touch-ui .only-touch{display:revert}.touch-ui .only-keyboard{display:none}.sticker-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:0;padding:12px 20px;border:3px solid var(--ink);border-radius:12px;background:var(--paper);color:var(--ink);box-shadow:var(--shadow-hard);font-family:var(--font-display);font-size:1rem;font-weight:400;letter-spacing:.02em;line-height:1.15;text-transform:uppercase;text-align:center;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background-color .15s ease;-webkit-tap-highlight-color:transparent}.sticker-btn:hover{transform:translate(-1px,-2px) rotate(-1deg);box-shadow:6px 6px 0 var(--ink)}.sticker-btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink)}.sticker-btn:focus-visible{outline:3px dashed var(--spray-yellow);outline-offset:4px}.sticker-btn.is-pink{background:var(--spray-pink);color:#fff}.sticker-btn.is-yellow{background:var(--spray-yellow)}.sticker-btn.is-green{background:var(--spray-green)}.sticker-btn.is-cyan{background:var(--spray-cyan)}.sticker-btn.is-ghost{background:transparent;box-shadow:none;border-color:currentColor}.sticker-btn.is-ghost:hover{box-shadow:none;background:#ffffff14}.sticker-btn.is-small{padding:7px 12px;border-width:2px;border-radius:9px;font-size:.85rem;box-shadow:3px 3px 0 var(--ink)}.paper-panel{background:var(--paper);color:var(--ink);border:3px solid var(--ink);border-radius:16px;box-shadow:var(--shadow-hard-lg)}.tape{position:absolute;top:-12px;left:50%;width:84px;height:22px;transform:translate(-50%) rotate(-3deg);background:#ffe599d9;border-left:2px dashed rgba(20,15,31,.18);border-right:2px dashed rgba(20,15,31,.18);box-shadow:0 1px 2px #00000026;pointer-events:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.street-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1300;display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(rgba(255,77,157,.12) 1px,transparent 1.5px) 0 0 / 14px 14px,#0c0816c7;animation:streetFadeIn .2s ease}@keyframes streetFadeIn{0%{opacity:0}to{opacity:1}}@keyframes stickerPop{0%{opacity:0;transform:translateY(14px) rotate(-2deg) scale(.96)}to{opacity:1;transform:none}}.dev-ad{z-index:1400}.dev-ad-card{display:flex;flex-direction:column;align-items:center;gap:10px;width:min(420px,100%);padding:28px 24px 22px;text-align:center;animation:stickerPop .25s ease-out}.dev-ad-kicker{font-family:var(--font-pixel);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-ink)}.dev-ad-title{font-family:var(--font-display);font-size:1.6rem;font-weight:400}.dev-ad-count{font-family:var(--font-display);font-size:3rem;color:var(--spray-pink)}.dev-ad-close{color:var(--muted-ink)}.sticker-btn:disabled{cursor:progress;opacity:.75;transform:none}@media (prefers-reduced-motion: reduce){.sticker-btn,.street-backdrop{transition:none;animation:none}}
