:root{--red:#d33a2c;--red-dark:#8f2219;--ink:#1b1f2a;--glass:#12161ebd;--glass-line:#ffffff24;--text:#f4f1ea;--muted:#b9b4a8;--gold:#f2c14e;--male:#5aa9ff;--female:#ff7ab8;font-family:Trebuchet MS,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--text);background:#0b0d12;margin:0;overflow:hidden}body{justify-content:center;align-items:center;display:flex}#screen{image-rendering:pixelated;touch-action:none;outline:none;display:block}#ui,#modals{pointer-events:none;position:fixed;inset:0}#ui>*,#modals>*{pointer-events:auto}.hidden{display:none!important}.btn{color:var(--text);border:1px solid var(--glass-line);cursor:pointer;white-space:nowrap;background:#ffffff14;border-radius:10px;padding:7px 12px;font:700 15px Trebuchet MS,system-ui,sans-serif;transition:background .12s,transform 80ms,border-color .12s}.btn:hover{background:#ffffff2e;border-color:#ffffff4d}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.btn.primary{background:var(--red);border-color:#ff8a7a55}.btn.primary:hover{background:#e24a3b}.btn.small{padding:3px 9px;font-size:14px}.title{background:#000;position:fixed;inset:0;overflow:hidden}.title-bg,.title-art{background-position:50%;background-repeat:no-repeat;position:absolute;inset:0}.title-art{inset:2vh 0 var(--menu-h,170px) 0;filter:drop-shadow(0 12px 40px #0009)}.title-bg{filter:blur(28px)brightness(.55)saturate(1.2);background-size:cover;transform:scale(1.15)}.title-art{background-size:contain;animation:24s ease-in-out infinite alternate drift}@keyframes drift{0%{transform:scale(1)}to{transform:scale(1.04)}}.title-shade{background:linear-gradient(#0000 60%,#05060ab3 100%);position:absolute;inset:0}.title-ui{flex-direction:column;align-items:center;gap:14px;padding:0 16px 22px;display:flex;position:absolute;bottom:0;left:0;right:0}.title .menu{flex-wrap:wrap;justify-content:center;gap:12px;max-width:900px;display:flex}.title .menu .btn.big{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f121ac7;border-radius:14px;flex-direction:column;align-items:center;gap:2px;min-width:200px;padding:13px 28px;font-size:20px;display:flex}.title .menu .btn.big.primary{background:var(--red);box-shadow:0 6px 0 var(--red-dark), 0 10px 30px #d33a2c73}.title .menu .btn.big small{color:var(--muted);font-size:12px;font-weight:400}.title .menu .hint{text-align:center;color:var(--muted);flex-basis:100%;margin:4px 0 0;animation:1.6s ease-in-out infinite blink}@keyframes blink{50%{opacity:.35}}.title>.lang{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f121ab3;position:absolute;top:16px;right:16px}.title-foot{color:#ffffff73;text-align:center;margin:0;font-size:12px}.loading[hidden]{display:none}.loading{width:min(420px,90vw);color:var(--muted);flex-direction:column;align-items:center;gap:8px;font-size:14px;display:flex}.loading .bar{background:#ffffff26;border-radius:99px;width:100%;height:8px;overflow:hidden}.loading .bar i{background:linear-gradient(90deg, var(--red), var(--gold));width:0;height:100%;transition:width .15s;display:block}#ui>.hud{pointer-events:none;position:fixed;inset:0}.hud>*{pointer-events:auto}.chip{background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-size:15px;display:flex;box-shadow:0 4px 18px #0000004d}.chip .value{font:700 17px Consolas,Courier New,monospace}.chip small{color:var(--muted);font-size:12px}.hud-left{gap:8px;display:flex;position:absolute;top:12px;left:12px}.money .value{color:var(--gold)}.hud-center{gap:4px;padding:5px 12px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.badges img{object-fit:contain;filter:grayscale()brightness(.5);opacity:.45;width:26px;height:26px;transition:all .3s}.badges img.earned{filter:none;opacity:1;transform:scale(1.08)}.hud-right{padding:4px 6px;position:absolute;top:12px;right:12px}.speed-label{text-align:center;min-width:92px}.terrain{color:var(--ink);background:#f2c14eeb;border-color:#0000;font-weight:700;display:none;position:absolute;top:60px;left:50%;transform:translate(-50%)}.terrain.on{display:flex}.toolbar{background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;width:max-content;max-width:calc(100% - 24px);padding:6px;transition:opacity .2s;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000059}.toolbar .sep{background:var(--glass-line);align-self:stretch;width:1px;margin:2px 4px}.shop{background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;flex-direction:column;gap:10px;width:310px;padding:12px;animation:.18s ease-out shop-in;display:flex;position:absolute;top:60px;bottom:84px;left:12px;box-shadow:0 10px 34px #0006}@keyframes shop-in{0%{opacity:0;transform:translate(-16px)}}.shop header{align-items:center;gap:8px;display:flex}.shop h2{flex:1;margin:0;font-size:18px}.shop header .chip{box-shadow:none;padding:3px 10px}.shop-grid{flex:1;grid-template-columns:repeat(4,1fr);grid-auto-rows:max-content;gap:8px;min-height:0;padding:2px;display:grid;overflow-y:auto}.shop-footer{border-top:1px solid var(--glass-line);flex-wrap:wrap;gap:6px;padding-top:10px;display:flex}.shop-footer .shop-item{width:52px}.shop-footer .shop-item canvas{width:40px}.shop-item{cursor:pointer;color:var(--text);background:#ffffff0d;border:1px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:4px 2px;font:700 13px Consolas,Courier New,monospace;transition:background .12s,border-color .12s,transform 80ms;display:flex}.shop-item:hover,.shop-item:focus-visible{border-color:var(--gold);background:#ffffff29;outline:none}.shop-item:active{transform:translateY(1px)}.shop-item canvas{width:54px;height:auto;image-rendering:pixelated}.shop-item .price{color:var(--gold)}.shop-item.wide{flex-flow:wrap;justify-content:center;align-items:center;gap:6px 10px;padding:8px}.shop-item.wide canvas.extra{object-fit:contain;flex-basis:100%;max-width:100%;height:auto}.shop-item.wide .desc{text-align:left;flex:1}.shop-item .desc{color:var(--text);white-space:pre-line;text-align:center;font:13px/1.4 Trebuchet MS,system-ui,sans-serif}.shop-item .label{color:var(--muted);font:600 11px Trebuchet MS,system-ui,sans-serif}.shop-info{min-height:3.6em;color:var(--muted);white-space:pre-line;background:#00000040;border-radius:10px;margin:0;padding:8px 10px;font-size:13px;line-height:1.4}.shop-info.on{color:var(--text)}.card{background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;align-items:center;gap:10px;width:230px;padding:8px 12px 8px 8px;display:none;position:fixed;top:0;left:0;box-shadow:0 6px 24px #00000059;pointer-events:none!important}.card.on{display:flex}.card img{object-fit:contain;width:52px;height:52px;image-rendering:pixelated;background:#ffffff0f;border-radius:10px;flex:none}.card>div{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.card-title{align-items:baseline;gap:6px;display:flex}.card-title strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gender.m{color:var(--male)}.gender.f{color:var(--female)}.exp{color:var(--muted);flex-direction:column;gap:2px;font-size:12px;display:flex}.exp .bar{background:#ffffff24;border-radius:99px;height:6px;overflow:hidden}.exp .bar i{background:linear-gradient(90deg,#5bd16b,#b6f06a);height:100%;display:block}.card small{color:var(--gold);font-size:12px}.toasts{flex-direction:column-reverse;gap:6px;display:flex;position:absolute;bottom:76px;left:12px;pointer-events:none!important}.toast{background:var(--glass);border:1px solid var(--glass-line);border-left:4px solid var(--gold);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:10px;max-width:360px;padding:8px 12px;font-size:14px;transition:opacity .5s,transform .5s;animation:.25s ease-out slide}.toast.out{opacity:0;transform:translate(-12px)}@keyframes slide{0%{opacity:0;transform:translate(-16px)}}.modal-back{background:#05060a8c;justify-content:center;align-items:center;padding:16px;animation:.15s ease-out fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal,#help .panel{color:var(--ink);border-top:6px solid var(--red);background:#fbf8f1;border-radius:16px;flex-direction:column;gap:14px;width:min(520px,100%);max-height:calc(100vh - 32px);padding:18px 20px;display:flex;overflow:auto;box-shadow:0 20px 60px #00000080}.modal .btn,#help .btn{color:var(--ink);background:#ece6d8;border-color:#d6cdb8}.modal .btn:hover,#help .btn:hover{background:#e2dac8}.modal .btn.primary,#help .btn.primary{color:#fff;background:var(--red);border-color:var(--red-dark)}.modal h2,#help h2{margin:0;font-size:20px}.message p{white-space:pre-wrap;margin:0;font-size:16px;line-height:1.45}.message .btn{align-self:flex-end;min-width:110px}.row{gap:8px;display:flex}.row.end{justify-content:flex-end}.modal input{min-width:0;color:var(--ink);background:#fff;border:1px solid #d6cdb8;border-radius:10px;flex:1;padding:8px 10px;font:15px Trebuchet MS,system-ui,sans-serif}.saves{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.saves li{background:#f1ece0;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;display:flex}.saves li.empty{color:#7a7364;justify-content:center}.save-info{flex-direction:column;flex:1;min-width:0;display:flex}.save-info strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.save-info small{color:#7a7364}#help{z-index:10;background:#05060a8c;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}#help.open{display:flex}#help .panel{width:min(720px,100%)}#help pre{white-space:pre-wrap;margin:0;font:15px/1.5 Trebuchet MS,system-ui,sans-serif;overflow:auto}#help .btn{align-self:flex-end}@media (width<=1400px){.toolbar .lbl{display:none}}@media (width<=700px){.hud-center{top:56px}.toolbar .btn{padding:6px 8px;font-size:13px}}
