:root{--bg0:#0d0620;--bg1:#160a2e;--bg2:#21103f;--panel:#160a2edb;--panel-solid:#1b0d38;--line:#a855f773;--purple:#a855f7;--pink:#ff4fd8;--teal:#2de2c8;--text:#f3eefc;--muted:#b7a8d6;--radius:14px;--glow:0 0 0 1px #a855f759, 0 0 18px #a855f740, inset 0 0 18px #2de2c80d;color:var(--text);background:var(--bg0);font-family:system-ui,-apple-system,Segoe UI,Roboto,Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic UI,Meiryo,Noto Sans JP,Noto Sans CJK JP,sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{touch-action:manipulation;-webkit-text-size-adjust:100%;position:fixed;inset:0}#root{left:0;right:0;top:var(--app-top,0px);height:var(--app-h,100dvh);position:fixed;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}input{font:inherit}.btn-primary{color:#fff;background:linear-gradient(135deg,#8b3dff,#c04bff 50%,#2de2c8 140%);border:0;border-radius:12px;padding:.7rem 1.4rem;font-weight:800;transition:transform .12s,box-shadow .12s,opacity .12s;box-shadow:0 0 18px #a855f78c}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 0 26px #a855f7cc}.btn-primary:disabled{opacity:.5;cursor:default}.btn-primary.small{padding:.35rem .8rem;font-size:.85rem}.ghost{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:10px;padding:.3rem .65rem}.ghost:hover{color:var(--text);border-color:var(--teal)}.chip{border:1px solid var(--line);background:#a855f71f;border-radius:999px;padding:.3rem .8rem;font-size:.85rem}.chip:hover,.chip.on{border-color:var(--teal);background:#2de2c829}.login{background:radial-gradient(1200px 600px at 50% 110%,#ff785a2e,#0000 60%),radial-gradient(900px 500px at 20% 10%,#a855f740,#0000 60%),radial-gradient(700px 500px at 85% 30%,#2de2c824,#0000 60%),linear-gradient(#0b051a,#170a31 60%,#2a1240);place-items:center;height:100%;display:grid;position:relative;overflow:hidden}.login-stars{opacity:.8;pointer-events:none;background-image:radial-gradient(1.5px 1.5px at 20% 30%,#fff8,#0000),radial-gradient(1px 1px at 70% 20%,#fff9,#0000),radial-gradient(1.2px 1.2px at 40% 70%,#c9a6ff,#0000),radial-gradient(1px 1px at 85% 60%,#fff7,#0000),radial-gradient(1.4px 1.4px at 10% 80%,#8ff5e6,#0000),radial-gradient(1px 1px at 55% 45%,#fff6,#0000);background-size:380px 380px;position:absolute;inset:0}.login-card{text-align:center;background:linear-gradient(#1e0e3cd9,#100822eb);border-radius:24px;width:min(560px,92vw);padding:2rem 2.2rem 1.6rem;position:relative;box-shadow:0 0 0 1px #a855f780,0 0 40px #a855f759,0 0 80px #2de2c81f}.brand-icon{object-fit:contain;-webkit-user-select:none;user-select:none;flex:none;display:block}.lockup{-webkit-user-select:none;user-select:none;max-width:100%;height:auto;display:block}.login-brand{justify-content:center;margin:0 0 .4rem;font-size:2.4rem;line-height:1;display:flex}.login-motto{letter-spacing:.32em;text-transform:uppercase;color:var(--text);opacity:.85;margin:0 0 .6rem;font-size:.78rem}.login-tag{color:var(--muted);margin:.3rem 0 1.4rem;line-height:1.45}.login-label{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin-bottom:.45rem;font-size:.8rem;display:block}.login-row{gap:.6rem;display:flex}.login-row input{border:1px solid var(--line);min-width:0;color:var(--text);background:#0a0418cc;border-radius:12px;outline:none;flex:1;padding:.75rem 1rem;font-size:1.05rem}.login-row input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #2de2c833}.login-error{text-align:left;background:#ff4fd81a;border:1px solid #ff4fd866;border-radius:12px;margin-top:.8rem;padding:.65rem .8rem;font-size:.92rem}.suggestions{flex-wrap:wrap;gap:.4rem;margin-top:.5rem;display:flex}.login-fine{color:var(--muted);margin:1rem 0 0;font-size:.8rem}.login-foot{letter-spacing:.4em;color:#f3eefc73;font-size:.75rem;position:absolute;bottom:18px}.game{-webkit-user-select:none;user-select:none;background:radial-gradient(1400px 700px at 50% 120%,#ff966e47,#0000 60%),radial-gradient(900px 500px at 50% -10%,#a855f747,#0000 60%),linear-gradient(#120827 0%,#24123f 55%,#4a2550 100%);height:100%;position:relative}.stage{position:absolute;inset:0}.stage canvas{touch-action:none;display:block}.fade{pointer-events:none;background:#0d0620;animation:.35s ease-out forwards fade;position:absolute;inset:0}.fade.hold{place-items:center;animation:none;display:grid}.fade-label{color:#cfc3ea;letter-spacing:.08em;opacity:.8;flex-direction:column;align-items:center;gap:.8rem;font-size:14px;display:flex}.fade-icon{animation:1.6s ease-in-out infinite boot-pulse}@keyframes boot-pulse{50%{opacity:.85;transform:scale(1.06)}}@media (prefers-reduced-motion:reduce){.fade-icon{animation:none}}@keyframes fade{0%{opacity:1}to{opacity:0}}.topbar{border-radius:var(--radius);background:var(--panel);box-shadow:var(--glow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5;align-items:center;gap:.8rem;padding:.4rem .7rem;display:flex;position:absolute;top:10px;left:10px;right:10px}.topbar-icon{width:34px;height:34px;margin:-2px 0}.topbar-nav{gap:.3rem;display:flex}.topbar-nav button{background:#a855f71f;border:1px solid #0000;border-radius:10px;padding:.45rem .85rem;font-size:.9rem;font-weight:700}.topbar-nav button:hover,.topbar-nav button.on{border-color:var(--purple);background:#a855f752;box-shadow:0 0 12px #a855f766}.location{white-space:nowrap;flex:1 1 0;align-items:center;gap:.5rem;min-width:0;font-size:.92rem;display:flex;overflow:hidden}.location>b,.location>.muted{text-overflow:ellipsis;min-width:0;overflow:hidden}.location>b{flex:0 auto}.location>.muted{flex:1 1 0}.loc-short,.sm-show,.xs-show{display:none}.muted{color:var(--muted)}.dot{background:#888;border-radius:50%;flex:none;width:9px;height:9px}.dot.online{background:var(--teal);box-shadow:0 0 8px var(--teal)}.dot.connecting,.dot.reconnecting{background:#f2c14e}.dot.kicked{background:var(--pink)}.me{align-items:center;gap:.5rem;font-weight:700;display:flex}.account-menu{position:relative}.account-btn{align-items:center;gap:.35rem;font-weight:700;display:inline-flex}.account-icon{display:none}.account-pop{background:var(--panel);min-width:220px;max-width:calc(100vw - 20px);box-shadow:var(--glow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;border-radius:12px;flex-direction:column;gap:.2rem;padding:.4rem;display:flex;position:absolute;top:calc(100% + 6px);right:0}.account-email{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #a855f740;padding:.35rem .6rem .45rem;font-size:.8rem;font-weight:400;overflow:hidden}.account-pop button{white-space:nowrap;text-align:left;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:.5rem .6rem;font-weight:600}.account-pop button:hover:not(:disabled){background:#a855f72e}.panel-head{letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid #a855f740;justify-content:space-between;align-items:center;padding:.7rem .9rem;font-size:.82rem;font-weight:800;display:flex}.navigator{border-radius:var(--radius);background:var(--panel);width:280px;box-shadow:var(--glow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:4;flex-direction:column;max-height:calc(100% - 84px);display:flex;position:absolute;top:74px;left:10px;overflow-y:auto}.nav-city{color:var(--teal);letter-spacing:.1em;text-transform:uppercase;padding:.5rem .9rem 0;font-size:.75rem}.nav-list{margin:0;padding:.4rem;list-style:none}.nav-list li button{text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:.6rem;width:100%;padding:.55rem .6rem;display:flex}.nav-list li button:hover:not(:disabled){border-color:var(--line);background:#a855f729}.nav-list li.here button{cursor:default;background:#2de2c81f;border-color:#2de2c880}.nav-icon{text-align:center;width:1.6rem;font-size:1.2rem}.nav-name{flex-direction:column;flex:1;font-weight:700;display:flex}.nav-name small{color:var(--muted);font-size:.75rem;font-weight:400}.nav-count{color:var(--teal);text-align:right;min-width:2rem;font-weight:800}.navigator>*{flex:none}.nav-landmarks{border-top:1px solid #a855f72e;margin-top:.1rem}.nav-landmarks .nav-city small{color:var(--muted);letter-spacing:0;text-transform:none;margin-left:.4rem;font-size:.72rem}.nav-landmarks .nav-list{overflow:visible}.nav-landmarks .nav-list li button{padding:.32rem .6rem}.nav-landmarks .nav-icon{border-left:3px solid;border-radius:2px;font-size:.95rem}.nav-dist{color:var(--muted);white-space:nowrap;font-size:.75rem}.nav-list li button:disabled .nav-dist{color:var(--teal)}.nav-empty,.nav-soon{color:var(--muted);padding:.5rem .9rem .8rem;font-size:.8rem}.chatlog{border-radius:var(--radius);width:300px;max-height:34vh;box-shadow:var(--glow);z-index:3;background:#100822b8;flex-direction:column;display:flex;position:absolute;bottom:96px;left:10px;overflow:hidden}.chatlog.closed{width:auto;box-shadow:none;background:0 0}.chatlog-toggle{border:1px solid var(--line);color:var(--muted);background:#160a2ee6;border-radius:8px;align-self:flex-start;margin:.4rem;padding:.2rem .55rem;font-size:.75rem}.chatlog-lines{flex-direction:column;gap:.2rem;padding:0 .7rem .6rem;font-size:.85rem;display:flex;overflow-y:auto}.line b{color:#d9b8ff}.line.self b{color:var(--teal)}.line.sys{color:var(--muted);font-style:italic}.bottombar{z-index:4;flex-direction:column;align-items:center;gap:.5rem;width:min(640px,100vw - 280px);display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.chatbox{border-radius:var(--radius);background:var(--panel);width:100%;box-shadow:var(--glow);gap:.4rem;padding:.35rem;display:flex}.chatbox input{min-width:0;color:var(--text);background:0 0;border:0;outline:none;flex:1;padding:.5rem .7rem}.chatbox .send{background:linear-gradient(135deg,#8b3dff,#c04bff);border:0;border-radius:10px;width:44px;box-shadow:0 0 12px #a855f799}.emotes{gap:.4rem;display:flex}.emotes button{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;align-items:center;gap:.1rem;width:62px;padding:.35rem 0;font-size:.72rem;font-weight:700;display:flex;box-shadow:0 0 10px #a855f72e}.emotes button span{font-size:1.15rem;line-height:1.2}.emotes button:hover{border-color:var(--teal);box-shadow:0 0 14px #2de2c859}.minimap{border-radius:var(--radius);background:var(--panel);box-shadow:var(--glow);z-index:3;padding:.4rem;position:absolute;bottom:12px;right:10px}.minimap-title{letter-spacing:.1em;text-transform:uppercase;color:var(--teal);padding:0 .2rem .3rem;font-size:.7rem}.minimap canvas{display:block}.minimap-credit{color:var(--muted);padding:.25rem .2rem 0;font-size:.6rem;text-decoration:none;display:block}.nav-credits{color:var(--muted);padding:0 .9rem .8rem;font-size:.7rem}.nav-credits a{color:inherit}.playercard{border-radius:var(--radius);background:var(--panel);box-shadow:var(--glow);z-index:5;min-width:220px;padding:.7rem;position:absolute;top:74px;right:10px}.playercard-name{margin-bottom:.5rem;font-weight:800}.playercard-actions{gap:.4rem;display:flex}.playercard-actions button{border:1px solid var(--line);background:#a855f724;border-radius:9px;padding:.35rem .7rem}.playercard-actions .danger{background:#ff4fd81f;border-color:#ff4fd899}.toast{z-index:6;background:#160a2ef2;border-radius:999px;max-width:80vw;padding:.55rem 1rem;font-size:.9rem;animation:.25s ease-out toast;position:absolute;top:78px;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #2de2c899,0 0 18px #2de2c84d}.move-hint{pointer-events:none;z-index:5;width:0;height:0;position:absolute;top:0;left:0}.move-hint-text{color:#f3eefcf2;white-space:nowrap;background:#100822a8;border-radius:14px;flex-direction:column;align-items:center;gap:.1rem;padding:.4rem .9rem;font-size:.85rem;font-weight:600;animation:6s ease-in-out forwards move-hint;display:flex;position:absolute;top:58px;left:0;transform:translate(-50%);box-shadow:0 0 0 1px #2de2c840}.move-hint-text small{color:#cfc3ead9;font-size:.72rem;font-weight:500}.move-hint-ring{border:2px solid #2de2c8d9;border-radius:50%;width:34px;height:34px;margin:-17px 0 0 -17px;animation:6s ease-in-out forwards move-hint,1.6s ease-out infinite tap-ring;position:absolute;top:-64px;left:120px;box-shadow:0 0 10px #2de2c873}.move-hint-dot{background:#2de2c8e6;border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;animation:6s ease-in-out forwards move-hint;position:absolute;top:-64px;left:120px;box-shadow:0 0 8px #2de2c8b3}@keyframes tap-ring{0%{transform:scale(.55)}70%,to{border-color:#2de2c800;transform:scale(1.25);box-shadow:0 0 10px #2de2c800}}@keyframes move-hint{0%{opacity:0}6%,88%{opacity:1}to{opacity:0}}.joystick.hinted{border-color:#2de2c8bf;animation:1.8s ease-in-out infinite stick-glow}@keyframes stick-glow{50%{box-shadow:var(--glow), 0 0 0 7px #2de2c829, 0 0 22px #2de2c873}}.joystick-hint{color:#f3eefcf2;white-space:nowrap;pointer-events:none;background:#100822b8;border-radius:12px;padding:.35rem .75rem;font-size:.82rem;font-weight:600;animation:6s ease-in-out forwards move-hint;position:absolute;bottom:calc(100% + 14px);right:0;box-shadow:0 0 0 1px #2de2c84d}.joystick-hint-arrow{border:7px solid #0000;border-top-color:#100822b8;position:absolute;top:100%;right:46px}@media (prefers-reduced-motion:reduce){.move-hint-ring{animation:6s step-end forwards move-hint}.joystick.hinted{box-shadow:var(--glow), 0 0 0 6px #2de2c829;animation:none}.move-hint-text,.move-hint-dot,.joystick-hint{animation-timing-function:step-end}}.update-toast{top:calc(118px + env(safe-area-inset-top));color:#fff;z-index:50;cursor:pointer;background:linear-gradient(135deg,#8b3dff,#c04bff);border:0;border-radius:999px;max-width:calc(100vw - 24px);padding:.6rem 1.1rem;font-size:.9rem;font-weight:800;animation:.25s ease-out toast;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 0 18px #a855f78c}@keyframes toast{0%{opacity:0;transform:translate(-50%,-6px)}}.banner{z-index:7;background:#3c0e32f2;border-radius:12px;align-items:center;gap:.6rem;padding:.6rem 1rem;display:flex;position:absolute;top:120px;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #ff4fd899}.modal-back{z-index:10;background:#06021099;place-items:center;display:grid;position:absolute;inset:0}.modal{background:linear-gradient(#200f40f7,#120826fa);border-radius:20px;width:min(640px,94vw);box-shadow:0 0 0 1px #a855f78c,0 0 40px #a855f759}.picker-body{flex-wrap:wrap;gap:1rem;padding:1rem;display:flex}.picker-left{flex-direction:column;align-items:center;gap:.5rem;display:flex}.picker-preview{background:radial-gradient(circle at 50% 70%,#2de2c81f,#0000 70%),#0a041899;border-radius:14px;box-shadow:inset 0 0 0 1px #a855f74d}.pose-row{gap:.3rem;display:flex}.pose-row button{border:1px solid var(--line);text-transform:capitalize;background:0 0;border-radius:8px;padding:.2rem .5rem;font-size:.75rem}.pose-row button.on{border-color:var(--teal);color:var(--teal)}.picker-right{flex-direction:column;flex:1;gap:.9rem;min-width:260px;display:flex}.swatch-row{flex-direction:column;gap:.35rem;display:flex}.swatch-label{letter-spacing:.1em;text-transform:uppercase;color:var(--teal);font-size:.75rem}.swatches{flex-wrap:wrap;gap:.4rem;display:flex}.swatch{clip-path:polygon(50% 0,100% 30%,100% 100%,0 100%,0 30%);border:2px solid #ffffff26;border-radius:8px;width:30px;height:30px}.swatch.on{border-color:var(--teal);outline:2px solid var(--teal);outline-offset:2px}.picker-actions{justify-content:flex-end;gap:.5rem;margin-top:auto;display:flex}@media (width<=479px){.topbar-nav{gap:.2rem}.topbar .topbar-nav button{padding:.4rem .5rem}.sm-hide{display:none}.sm-show{display:inline}.topbar .credits-pill{display:none}}@media (width<=359px){.xs-hide{display:none}.xs-show{display:inline}}@media (width<=767px),(pointer:coarse) and (width<=1024px){input,.chatbox input,.friends-add input{font-size:16px}.topbar{top:calc(6px + env(safe-area-inset-top));gap:.45rem;padding:.3rem .45rem;left:6px;right:6px}.topbar-icon{width:28px;height:28px}.topbar-nav button{padding:.4rem .6rem;font-size:.8rem}.topbar-nav .wide-only,.location .muted,.loc-long,.me .me-name{display:none}.account-icon{display:inline}.account-btn{padding:.3rem .45rem}.account-btn>span:last-child{display:none}.loc-short{display:inline}.location{gap:.35rem;font-size:.82rem}.topbar-nav{flex:none}.me .ghost{padding:.3rem .5rem;font-size:.8rem}.me{flex:none}.navigator,.friends{top:calc(54px + env(safe-area-inset-top));flex-direction:column;width:min(320px,100vw - 12px);max-height:min(52%,380px);animation:.18s ease-out sheet;display:flex;overflow:hidden}.navigator{left:6px}.friends{right:6px}.nav-list{overflow-y:auto}.nav-list li button{padding:.45rem .5rem}.nav-soon,.chatlog{display:none}.bottombar{width:calc(100vw - 12px);bottom:calc(6px + env(safe-area-inset-bottom));gap:.35rem}.emotes{gap:.3rem}.emotes button{width:50px;font-size:.66rem}.minimap{bottom:calc(112px + env(safe-area-inset-bottom));transform-origin:100% 100%;right:6px;transform:scale(.6)}.playercard{top:calc(54px + env(safe-area-inset-top));min-width:0;right:6px}.playercard.shifted{top:auto;right:6px;bottom:calc(112px + env(safe-area-inset-bottom))}.toast{top:calc(58px + env(safe-area-inset-top));text-align:center;max-width:calc(100vw - 24px)}.banner{top:calc(96px + env(safe-area-inset-top));max-width:calc(100vw - 24px)}}@keyframes sheet{0%{opacity:0;transform:translateY(-8px)}}.kb-open .emotes,.kb-open .minimap,.kb-open .chatlog,.kb-open .navigator{display:none}.kb-open .bottombar{bottom:6px}.topbar-nav .badge{background:var(--pink);color:#fff;border-radius:999px;place-items:center;min-width:1.1rem;height:1.1rem;margin-left:.35rem;padding:0 .25rem;font-size:.7rem;display:inline-grid;box-shadow:0 0 8px #ff4fd8b3}.friends{border-radius:var(--radius);background:var(--panel);width:290px;max-height:calc(100% - 200px);box-shadow:var(--glow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:4;flex-direction:column;display:flex;position:absolute;top:74px;right:10px;overflow:hidden}.friends-add{gap:.4rem;padding:.6rem .6rem .2rem;display:flex}.friends-add input{border:1px solid var(--line);min-width:0;color:var(--text);background:#0a0418cc;border-radius:10px;outline:none;flex:1;padding:.45rem .7rem}.friends-add input:focus{border-color:var(--teal)}.friends-err{color:#ffb3ee;margin:.3rem .6rem 0;font-size:.8rem}.friends-list{margin:0;padding:.4rem;list-style:none;overflow-y:auto}.friends-list li{border-radius:10px;align-items:center;gap:.5rem;padding:.45rem .5rem;display:flex}.friends-list li.on{background:#2de2c80f}.friends-name{flex-direction:column;flex:1;min-width:0;font-weight:700;display:flex}.friends-name small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:400;overflow:hidden}.friends-remove{opacity:.6;padding:.15rem .45rem;font-size:.75rem}.playercard.shifted{right:310px}.playercard-actions .primary{border-color:var(--teal);background:#2de2c82e;font-weight:700}.playercard-tag{color:var(--teal);align-self:center;font-size:.85rem;font-weight:700}.ai-badge{color:#2a1600;letter-spacing:.02em;vertical-align:.1em;background:#ffc94d;border-radius:999px;margin-left:.35rem;padding:.05rem .4rem;font-size:.68rem;font-weight:900;display:inline-block}.playercard-ai{opacity:.85;max-width:260px;margin-bottom:.55rem;font-size:.8rem;line-height:1.35}.sky-hud{background:var(--panel);box-shadow:var(--glow);z-index:3;white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .65rem;font-size:.8rem;display:flex;position:absolute;top:74px;left:10px}.nav-open .sky-hud{left:300px}.sky-hud b{color:var(--teal)}.sky-hud .sep{color:var(--muted)}.sky-vehicle{color:var(--text);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;-webkit-text-decoration:underline dotted #b7a8d6b3;text-decoration:underline dotted #b7a8d6b3}.sky-nearby{color:var(--muted)}.sky-crowded{color:#ffc94d;font-weight:700}.vehicle-picker{border-radius:var(--radius);background:var(--panel);box-shadow:var(--glow);z-index:6;grid-template-columns:repeat(4,104px);gap:.35rem;padding:.45rem;display:grid;position:absolute;top:108px;left:10px}.nav-open .vehicle-picker{left:300px}.vehicle-picker button{border:1px solid var(--line);color:var(--text);background:#ffffff0a;border-radius:10px;flex-direction:column;align-items:center;gap:.2rem;padding:.35rem .2rem;font-size:.7rem;font-weight:700;display:flex}.vehicle-picker button.on{border-color:var(--teal);box-shadow:0 0 10px #2de2c866}.vehicle-icon{justify-content:center;align-items:center;width:98px;height:60px;display:flex}.vehicle-icon>span{image-rendering:pixelated;flex:none;display:block}.game.sky .bottombar{bottom:26px}.game.sky .chatbox .send{color:#fff;width:auto;padding:0 1.2rem;font-weight:800}.game.sky .chatbox{padding:.45rem}.game.sky .chatbox input{padding:.8rem .9rem;font-size:1.02rem}.game.sky .chatlog{bottom:82px}.game.sky .minimap,.game.sky .minimap-toggle{bottom:24px}.joystick{right:calc(4px + env(safe-area-inset-right));width:112px;height:112px;box-shadow:var(--glow);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;z-index:5;background:radial-gradient(circle,#1d153447 0 34%,#1d15348c 35% 100%);border:2px solid #ffffff38;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:calc(100% + 12px)}.joystick.held{border-color:#2de2c8b3}.joystick-knob{pointer-events:none;background:radial-gradient(circle at 35% 30%,#8ff7e8,#2de2c8 55%,#169a89);border-radius:50%;width:50px;height:50px;transition:transform .18s cubic-bezier(.2,.9,.3,1.3);box-shadow:0 2px 8px #00000073,0 0 12px #2de2c880}.joystick.held .joystick-knob{transition:none}.kb-open .joystick{display:none}.sky-minimap canvas{cursor:crosshair;border-radius:6px}.minimap-title{justify-content:space-between;align-items:center;display:flex}.minimap-close{color:var(--muted);background:0 0;border:0;padding:0 .2rem;font-size:.75rem}.minimap-toggle{border:1px solid var(--line);background:var(--panel);width:40px;height:40px;box-shadow:var(--glow);z-index:3;border-radius:12px;font-size:1.15rem;position:absolute;bottom:12px;right:10px}.sky-credits{color:#f3eefcd9;white-space:nowrap;text-overflow:ellipsis;text-align:center;z-index:3;cursor:pointer;background:#1008229e;border-radius:8px;max-width:calc(100% - 20px);padding:0 8px;font-size:10px;line-height:16px;position:absolute;bottom:2px;left:50%;overflow:hidden;transform:translate(-50%)}.sky-credits.open{white-space:normal;text-align:left;background:var(--panel-solid);z-index:7;border-radius:10px;padding:.45rem .6rem}.sky-credits.open>span{display:block}.sky-credits.open .sep{display:none}.sky-credits a{color:inherit}@media (width<=767px),(pointer:coarse) and (width<=1024px){.sky-hud{top:calc(56px + env(safe-area-inset-top));padding:.22rem .55rem;font-size:.74rem;left:6px}.nav-open .sky-hud,.nav-open .vehicle-picker{display:none}.vehicle-picker{top:calc(84px + env(safe-area-inset-top));grid-template-columns:repeat(4,1fr);width:calc(100vw - 12px);left:6px}.vehicle-icon{width:74px;height:45px}.vehicle-icon>span{transform:scale(.75)}.game.sky .bottombar{bottom:calc(20px + env(safe-area-inset-bottom))}.game.sky .chatbox input{font-size:16px}.game.sky .minimap{bottom:calc(92px + env(safe-area-inset-bottom));right:auto;left:calc(6px + env(safe-area-inset-left));transform-origin:0 100%;transform:scale(.72)}.minimap-toggle{bottom:calc(112px + env(safe-area-inset-bottom));right:6px}.game.sky .minimap-toggle{bottom:calc(92px + env(safe-area-inset-bottom));right:auto;left:calc(6px + env(safe-area-inset-left))}.navigator{overflow-y:auto}.navigator .nav-list{flex:none;overflow-y:visible}.sky-credits{max-width:calc(100% - 12px);bottom:calc(2px + env(safe-area-inset-bottom));font-size:9px;line-height:15px}}.kb-open .minimap-toggle,.kb-open .sky-credits,.kb-open .vehicle-picker{display:none}.small{font-size:.78rem}.linkish{color:var(--teal);font:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.reg-badge{color:#8fd8ff;vertical-align:.05em;background:#7fd8ff2e;border-radius:50%;place-items:center;width:1.05em;height:1.05em;font-size:.8em;font-weight:900;display:inline-grid}.login-account{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.35rem .6rem;margin:.2rem 0 .7rem;font-size:.85rem;display:flex}.login-play{width:100%;padding:.8rem 1rem;font-size:1rem}.login-signin{margin-top:.8rem}.signin-form{min-width:0}.signin-form .login-row{flex-wrap:wrap}.signin-form .login-row input{flex:180px;width:100%;min-width:0}.signin-form .login-row .btn-primary{flex:none}.signin-sent{flex-direction:column;align-items:flex-start;gap:.45rem;font-size:.88rem;line-height:1.4;display:flex}.signin-sent p{margin:0}.dev-link{color:#ffc94d;font-weight:700}.auth-title{text-align:center;margin:.4rem 0 1rem;font-size:1.15rem}.auth-btn{text-align:center;width:100%;padding:.8rem;text-decoration:none;display:block}.credits-pill{color:#ffd36b;background:#ffc94d2e;border-radius:999px;margin-left:.35rem;padding:0 .4rem;font-size:.72rem;font-weight:800}.vehicle-picker button{position:relative}.vehicle-picker button.locked .vehicle-icon{filter:grayscale(.85)brightness(.75)}.lock-price{color:#ffd36b;background:#0d0620d9;border-radius:999px;padding:.05rem .3rem;font-size:.62rem;font-weight:800;position:absolute;top:4px;right:4px}.modal.shop{width:min(560px,94vw);max-height:calc(var(--app-h,100dvh) - 24px);flex-direction:column;display:flex}.test-banner{color:#2a1600;background:#ffc94d;border-radius:10px;margin-bottom:.7rem;padding:.5rem .7rem;font-size:.85rem;font-weight:700;line-height:1.35}.test-banner b{white-space:nowrap;font-variant-numeric:tabular-nums}.test-banner span{font-size:.78rem;font-weight:500;display:block}.test-badge{color:#2a1600;letter-spacing:.03em;text-transform:uppercase;background:#ffc94d;border-radius:999px;margin-left:.5rem;padding:.1rem .45rem;font-size:.68rem;font-weight:900}.shop-body{padding:.2rem 1rem .8rem;overflow-y:auto}.shop-account,.shop-signin,.shop-name,.pack-base{color:var(--muted);font-size:.72rem}.shop-fx{margin:.45rem 0 0}.shop-soon{border:1px solid var(--line);background:#ffffff08;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.6rem;padding:.7rem .8rem;font-size:.88rem;display:flex}.shop-signin{flex-direction:column;align-items:stretch}.shop-signin>*{min-width:0}.shop-signin p{margin:0}.shop-balance b{color:#ffd36b;font-size:1.35rem}.shop-h{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:1rem 0 .45rem;font-size:.8rem}.shop-vehicles{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:.45rem;display:grid}.shop-vehicle{border:1px solid var(--line);text-align:center;background:#ffffff08;border-radius:12px;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem .35rem .6rem;font-size:.85rem;display:flex}.shop-vehicle.focus{border-color:#ffc94d;box-shadow:0 0 14px #ffc94d59}.shop-vehicle:not(.owned) .vehicle-icon{filter:grayscale(.6)brightness(.85)}.speed-stat{width:100%;color:var(--muted);flex-direction:column;align-items:center;gap:.2rem;display:flex}.speed-bar{background:#ffffff1a;border-radius:3px;width:78%;height:6px;overflow:hidden}.speed-bar i{background:linear-gradient(90deg, var(--teal), #ffc94d);border-radius:3px;height:100%;display:block}.owned-tag{color:var(--teal);font-size:.78rem;font-weight:800}.price-tag{color:#ffd36b;font-size:.78rem;font-weight:800}.shop-packs{grid-template-columns:repeat(3,1fr);gap:.45rem;display:grid}.shop-pack{color:var(--text);cursor:pointer;background:linear-gradient(#ffc94d1f,#ffc94d08);border:1px solid #ffc94d80;border-radius:12px;flex-direction:column;align-items:center;gap:.1rem;padding:.7rem .3rem;display:flex}.shop-pack b{color:#ffd36b;font-size:1.15rem}.shop-pack:disabled{opacity:.55;cursor:default}.pack-price{margin-top:.25rem;font-weight:800}.shop-soon{color:var(--muted);display:block}.shop-ok{color:var(--teal);margin-top:.7rem;font-size:.88rem;font-weight:700}.shop-foot{border-top:1px solid #a855f740;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem 1rem;padding:.6rem 1rem .8rem;display:flex}.legal-links{gap:.9rem;font-size:.8rem;display:flex}.legal-links a{color:var(--muted)}.legal{background:var(--bg0);padding:1.5rem max(1rem,50vw - 340px) 3rem;line-height:1.55;position:fixed;inset:0;overflow-y:auto}.legal-home{font-size:1.35rem;text-decoration:none;display:inline-block}.legal-draft{color:#ffd36b;background:#ffc94d24;border:1px solid #ffc94d99;border-radius:10px;margin:1rem 0;padding:.6rem .8rem;font-weight:700}.legal h1{font-size:1.6rem}.legal h2{margin:1.2rem 0 .3rem;font-size:1.05rem}.legal p{color:var(--muted);margin:0}.legal .legal-links{margin-top:2rem}.lang-picker{border:1px solid var(--line);color:var(--text);cursor:pointer;white-space:nowrap;background:#0a041899;border-radius:999px;align-items:center;gap:.3rem;padding:.3rem .55rem;font-size:.78rem;font-weight:700;display:inline-flex;position:relative}.lang-picker:hover,.lang-picker:focus-within{border-color:var(--teal)}.lang-picker select{opacity:0;cursor:pointer;width:100%;font-size:16px;position:absolute;inset:0}.login-lang{top:max(14px, env(safe-area-inset-top));z-index:2;position:absolute;right:14px}.legal-top{align-items:flex-start;gap:.6rem;display:flex}.legal-top .legal-draft{flex:1}.legal-top .lang-picker{margin-top:1rem}.legal-english{margin-top:.3rem;font-weight:400}.nav-lang{margin:0 .5rem 0 auto;display:none}@media (width<=479px){.topbar-lang{display:none}.nav-lang{display:inline-flex}}:lang(ja) body,:lang(ja) .login-tag,:lang(ja) .legal{line-height:1.7}:lang(ja) .login-motto,:lang(ja) .login-label,:lang(ja) .login-foot,:lang(ja) .panel-head,:lang(ja) .shop-h,:lang(ja) .nav-city{letter-spacing:.04em}:lang(ja) .login-fine,:lang(ja) .muted.small{line-break:strict;word-break:normal}
