:root{--o:#ff8a1f;--r:#ff3d6e;--y:#ffd23f;--g:#4ed34a;--p:#8a4fe0;--b:#33b6ff;--ink:#2a1450;--glass:rgba(40,16,80,.62);--font:ui-rounded,"Arial Rounded MT Bold","Trebuchet MS","Segoe UI",system-ui,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:none}html,body{margin:0;height:100%;overflow:hidden;background:#79c8ff;font-family:var(--font);color:#fff}#gl{position:fixed;inset:0;width:100%;height:100%;display:block}.hidden{display:none!important}button{font-family:inherit;cursor:pointer}#ui{position:fixed;inset:0;pointer-events:none}.screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.2vh;padding:2vh 3vw;pointer-events:auto;overflow-x:hidden;overflow-y:auto;background:radial-gradient(ellipse at 50% 40%,#1e0a4640,#1e0a46b3 90%)}.screen.overlay{background:#19083cb8;backdrop-filter:blur(3px)}h2{margin:0;font-size:clamp(22px,4.6vh,44px);font-weight:900;letter-spacing:.04em;text-shadow:0 3px 0 #3b1470,0 0 18px rgba(255,210,63,.45);text-transform:uppercase}h3{margin:.2em 0;color:var(--y);font-size:clamp(14px,2.2vh,20px)}.logo{text-align:center;line-height:.86;transform:rotate(-3deg);filter:drop-shadow(0 8px 0 rgba(40,10,80,.55))}.logo-a{font-size:clamp(46px,min(15vh,21vw),150px);font-weight:900;letter-spacing:.06em;color:#fff;-webkit-text-stroke:clamp(5px,1.1vh,11px) #3b1470;paint-order:stroke fill;background:linear-gradient(#fff,#ffe9a6);-webkit-background-clip:text;background-clip:text}.logo-b{font-size:clamp(50px,min(17.5vh,24vw),170px);font-weight:900;letter-spacing:.04em;color:var(--o);-webkit-text-stroke:clamp(5px,1.2vh,12px) #3b1470;paint-order:stroke fill;background:linear-gradient(#ffd23f,#ff5a2f 60%,#ff3d6e);-webkit-background-clip:text;background-clip:text}.tag{margin:0;font-weight:800;text-shadow:0 2px 0 #3b1470;font-size:clamp(12px,2.2vh,20px);opacity:.95;text-align:center}.menu{display:flex;flex-direction:column;gap:1.4vh;min-width:min(78vw,340px)}.btn{pointer-events:auto;border:0;border-radius:16px;padding:1.5vh 2.4vw;min-height:44px;font-size:clamp(14px,2.6vh,22px);font-weight:900;letter-spacing:.05em;color:#fff;background:linear-gradient(#a56bff,#6a35c8);box-shadow:0 5px #3b1470,0 8px 16px #0000004d;text-shadow:0 2px 0 rgba(0,0,0,.3);transition:transform .08s}.btn:hover,.btn:focus-visible{transform:translateY(-2px) scale(1.03);outline:3px solid var(--y);outline-offset:2px}.btn:active{transform:translateY(3px);box-shadow:0 2px #3b1470}.btn.big{background:linear-gradient(#ffb02f,#ff5a2f);box-shadow:0 5px #8a2410,0 8px 16px #0000004d;font-size:clamp(18px,3.4vh,30px);padding:1.8vh 3vw}.btn.ghost{background:linear-gradient(#5a4a8a,#3a2a66);box-shadow:0 5px #1d1240,0 8px 16px #0000004d}.btn.small{font-size:clamp(11px,1.9vh,16px);padding:1vh 1.4vw}.foot{position:absolute;bottom:1.4vh;font-size:12px;opacity:.8;text-shadow:0 1px 2px #000}.row{display:flex;gap:2vw;align-items:center;justify-content:center;flex-wrap:wrap}.grid8{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.4vh 1.2vw}.racer-wrap{display:flex;gap:2.4vw;align-items:center;justify-content:center;width:min(1100px,96vw);flex-wrap:wrap}.card{pointer-events:auto;border:0;border-radius:18px;padding:.8vh .6vw 1vh;background:linear-gradient(#ffffff30,#ffffff10);box-shadow:inset 0 0 0 3px #fff5,0 4px #1e0a4699;color:#fff;font-weight:800;display:flex;flex-direction:column;align-items:center;gap:.3vh;width:clamp(78px,11vw,128px)}.card img{width:100%;aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 4px 2px rgba(0,0,0,.35))}.card span{font-size:clamp(10px,1.8vh,15px);text-shadow:0 2px 0 rgba(0,0,0,.45);text-align:center;line-height:1.05}.card.sel{background:linear-gradient(#ffd23f,#ff8a1f);box-shadow:inset 0 0 0 3px #fff,0 4px #8a2410,0 0 20px #ffd23fcc;transform:scale(1.06)}.card:focus-visible{outline:3px solid var(--y)}.racer-detail{width:clamp(220px,28vw,330px);background:var(--glass);border-radius:22px;padding:1.2vh 1.2vw;text-align:center;box-shadow:inset 0 0 0 3px #ffffff40}.racer-detail img{width:100%;aspect-ratio:4/3;object-fit:contain}.rd-name{font-size:clamp(18px,3.2vh,28px);font-weight:900;color:var(--y);text-shadow:0 2px 0 #3b1470}.rd-fruit{font-size:clamp(11px,1.8vh,15px);opacity:.85;margin-bottom:.4vh}.rd-bio{font-size:clamp(11px,1.9vh,15px);min-height:2.4em;line-height:1.2;margin-bottom:.8vh}.stat{display:flex;align-items:center;gap:.6em;font-size:clamp(11px,1.8vh,15px);font-weight:800;margin:.3vh 0}.stat span{width:5.2em;text-align:left}.stat i{flex:1;height:.9em;background:#ffffff25;border-radius:99px;overflow:hidden;display:block}.stat i b{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#7aff6a,#ffd23f 60%,#ff8a1f)}.diff{font-weight:800;display:flex;gap:.6em;align-items:center}select{font:inherit;font-weight:800;border-radius:12px;border:0;padding:.7em 1em;background:#fff;color:var(--ink);pointer-events:auto;min-height:40px}.cards3{display:flex;gap:2vw;flex-wrap:wrap;justify-content:center;width:min(1100px,96vw)}.tcard{pointer-events:auto;border:0;color:#fff;border-radius:22px;padding:1.2vh 1.2vw;width:clamp(210px,29vw,330px);background:var(--glass);box-shadow:inset 0 0 0 3px #ffffff40,0 5px #140532b3;text-align:center;display:flex;flex-direction:column;gap:.5vh;align-items:center;font-weight:800}.tcard canvas{width:min(70%,27vh);aspect-ratio:1;border-radius:14px;background:#ffffff1f}.tcard .tn{font-size:clamp(17px,3vh,26px);font-weight:900;color:var(--y);text-shadow:0 2px 0 #3b1470}.tcard .ts{font-size:clamp(11px,1.8vh,14px);opacity:.9}.tcard .tb{font-size:clamp(11px,1.8vh,14px)}.tcard.sel{background:linear-gradient(#ffb02f,#ff5a2f);box-shadow:inset 0 0 0 3px #fff,0 5px #8a2410,0 0 24px #ffd23fcc;transform:scale(1.04)}.tcard.sel .tn{color:#fff}.tcard:focus-visible{outline:3px solid var(--y)}.tabs{display:flex;gap:1vw;flex-wrap:wrap;justify-content:center}.tab{pointer-events:auto;border:0;border-radius:99px;padding:1vh 2vw;font-weight:900;color:#fff;background:#ffffff25;min-height:40px}.tab.sel{background:linear-gradient(#ffd23f,#ff8a1f);color:#3b1470}.rank-body,.res-top{background:var(--glass);border-radius:18px;padding:1.4vh 1.4vw;width:min(640px,94vw);max-height:48vh;overflow:auto;touch-action:pan-y}table.rk{width:100%;border-collapse:collapse;font-weight:800;font-size:clamp(12px,2vh,17px)}table.rk td{padding:.5vh .6vw;border-bottom:1px solid #ffffff20}table.rk tr.me td{color:var(--y)}table.rk td:first-child{width:2.4em;color:var(--y)}table.rk td:last-child{text-align:right;font-variant-numeric:tabular-nums}.dot{display:inline-block;width:.9em;height:.9em;border-radius:50%;margin-right:.5em;vertical-align:-1px;box-shadow:inset 0 0 0 2px #fff8}.note{font-size:12px;opacity:.85;max-width:420px;line-height:1.3}.settings{display:flex;flex-direction:column;gap:1.2vh;background:var(--glass);border-radius:20px;padding:2vh 2.4vw;min-width:min(88vw,420px);pointer-events:auto}.sw,.sel{display:flex;justify-content:space-between;align-items:center;gap:1em;font-weight:800;font-size:clamp(13px,2.2vh,18px)}.sw input{width:1.5em;height:1.5em;accent-color:var(--o);pointer-events:auto}.help{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.4vh 2vw;width:min(1000px,94vw);background:var(--glass);border-radius:20px;padding:2vh 2vw;font-size:clamp(12px,1.9vh,16px);line-height:1.35;max-height:62vh;overflow:auto;touch-action:pan-y}.help p{margin:.2em 0}.c1{color:#4db8ff;font-weight:900}.c2{color:#ff9a1f;font-weight:900}.c3{color:#e04dff;font-weight:900}.res-wrap{display:flex;gap:2vw;flex-wrap:wrap;justify-content:center;align-items:flex-start;width:min(1000px,96vw)}#resList{list-style:none;margin:0;padding:1vh 1vw;background:var(--glass);border-radius:18px;min-width:min(330px,92vw);font-weight:800;font-size:clamp(12px,2vh,17px)}#resList li{display:flex;gap:.6em;align-items:center;padding:.5vh .4vw;border-bottom:1px solid #ffffff20}#resList li b:first-child{width:1.6em;color:var(--y)}#resList li span{flex:1}#resList li.me{background:linear-gradient(90deg,#ffd23f55,transparent);border-radius:10px}#resList li em{font-style:normal;font-variant-numeric:tabular-nums;opacity:.9}.res-side{display:flex;flex-direction:column;gap:1vh;min-width:min(330px,92vw);align-items:stretch}.res-time{background:linear-gradient(#ffb02f,#ff5a2f);border-radius:16px;padding:1vh 1.4vw;text-align:center;box-shadow:0 5px #8a2410}.res-time span{display:block;font-size:12px;letter-spacing:.14em}.res-time b{font-size:clamp(26px,5vh,44px);font-variant-numeric:tabular-nums;text-shadow:0 3px 0 #8a2410}.res-mini{display:flex;justify-content:space-between;background:var(--glass);border-radius:12px;padding:.8vh 1vw;font-weight:800;font-size:clamp(12px,2vh,16px)}.res-mini b{font-variant-numeric:tabular-nums;color:var(--y)}.res-rank{font-weight:900;text-align:center;font-size:clamp(14px,2.4vh,20px);min-height:1.4em;color:var(--y);text-shadow:0 2px 0 #3b1470}.res-name{display:flex;gap:.6vw;align-items:center}.res-name input{flex:1;min-width:0;font:inherit;font-weight:800;padding:.8em 1em;border-radius:12px;border:0;background:#fff;color:var(--ink);text-transform:uppercase;pointer-events:auto;-webkit-user-select:text;user-select:text;touch-action:auto}.res-top{max-height:22vh;width:auto}#loading{position:absolute;inset:0;background:linear-gradient(#ff8a1f,#ff3d6e);display:flex;flex-direction:column;gap:2vh;align-items:center;justify-content:center;font-weight:900;font-size:clamp(16px,3vh,26px);pointer-events:auto;z-index:20}.spin{width:64px;height:64px;border-radius:50%;border:8px solid #ffffff55;border-top-color:#fff;animation:sp .8s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}#rotate{position:absolute;left:50%;top:2vh;transform:translate(-50%);background:#281050e0;padding:1vh 2vw;border-radius:14px;font-weight:800;font-size:13px;pointer-events:auto;display:flex;gap:1em;align-items:center;z-index:30;text-align:center}#hud{position:fixed;inset:0;pointer-events:none;font-weight:900;text-shadow:0 3px 0 rgba(40,10,80,.8),0 0 10px rgba(0,0,0,.35)}#fxLines{position:absolute;inset:0;opacity:0;background:repeating-conic-gradient(from 0deg at 50% 52%,transparent 0 6deg,rgba(255,255,255,.55) 6.4deg 7deg,transparent 7.4deg 14deg);-webkit-mask:radial-gradient(ellipse at 50% 52%,transparent 38%,#000 88%);mask:radial-gradient(ellipse at 50% 52%,transparent 38%,#000 88%);transition:opacity .15s}#fxFlash{position:absolute;inset:0;background:#fff;opacity:0}.hud-tl{position:absolute;left:max(1.6vw,env(safe-area-inset-left));top:1.6vh;display:flex;flex-direction:column;gap:1vh}#hPos{font-size:clamp(46px,12vh,110px);line-height:.9;color:var(--y);-webkit-text-stroke:clamp(3px,.8vh,7px) #3b1470;paint-order:stroke fill;font-style:italic}#hPos .ord{font-size:.45em;vertical-align:.7em}#hPos .of{font-size:.38em;color:#fff;margin-left:.1em}#hBoard{list-style:none;margin:0;padding:0;font-size:clamp(10px,1.8vh,15px);display:flex;flex-direction:column;gap:2px}#hBoard li{display:flex;align-items:center;gap:.5em;background:#1e0a468c;padding:1px .8em 1px .4em;border-radius:99px;min-width:9em;text-shadow:none}#hBoard li.me{background:linear-gradient(90deg,#ffb02f,#ff5a2f);transform:translate(.4em)}#hBoard .dot{margin:0}.hud-tr{position:absolute;right:max(1.6vw,env(safe-area-inset-right));top:1.6vh;display:flex;flex-direction:column;align-items:flex-end;gap:.8vh}.hbox{background:#1e0a4699;border-radius:14px;padding:.6vh 1.2vw;text-align:right;min-width:9em}.hbox .lbl{font-size:clamp(9px,1.4vh,12px);letter-spacing:.14em;color:#ffd23f;text-shadow:none}.hbox div:last-child{font-size:clamp(18px,3.4vh,30px);font-variant-numeric:tabular-nums}.hbox.small div:last-child{font-size:clamp(13px,2.2vh,19px)}#hMap{width:clamp(96px,22vh,170px);height:clamp(96px,22vh,170px);background:#1e0a4680;border-radius:18px}#hItem{position:absolute;left:50%;top:1.6vh;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:2px}#hItem img{width:clamp(56px,12vh,100px);height:clamp(56px,12vh,100px);background:radial-gradient(circle,#ffffff59,#1e0a4699);border-radius:22px;box-shadow:inset 0 0 0 3px #fff9,0 4px #1e0a46b3;padding:6px}#hItem.empty img{opacity:.35}#hItem.roll img{animation:pulse .25s infinite alternate}#hItem.has img{box-shadow:inset 0 0 0 3px #ffd23f,0 0 22px #ffd23f}@keyframes pulse{to{transform:scale(1.08)}}#hItemName{font-size:clamp(10px,1.8vh,15px);min-height:1.2em}#hItemKey{font-size:clamp(9px,1.4vh,12px);opacity:.85;text-shadow:none}body.touch #hItemKey{display:none}#hSpeed{position:absolute;left:50%;bottom:2.2vh;transform:translate(-50%);width:min(34vw,320px);text-align:center}body.touch #hSpeed{bottom:1.2vh;opacity:.9;left:50%;width:min(24vw,220px)}#hSpeedBar{height:12px;background:#1e0a4699;border-radius:99px;overflow:hidden;box-shadow:inset 0 0 0 2px #fff6}#hSpeedBar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#7aff6a,#ffd23f 60%,#ff3d6e);border-radius:99px}#hKmh{font-size:clamp(20px,4vh,34px);font-variant-numeric:tabular-nums}#hKmh small{font-size:.45em}#hDrift{height:8px;margin-top:3px;background:#1e0a4680;border-radius:99px;overflow:hidden;opacity:0}#hDrift i{display:block;height:100%;width:0;background:#4db8ff}#hCount{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);font-size:clamp(90px,28vh,260px);color:#fff;-webkit-text-stroke:clamp(6px,1.4vh,14px) #3b1470;paint-order:stroke fill;font-style:italic}#hCount.pop{animation:pop .9s ease-out}@keyframes pop{0%{transform:translate(-50%,-50%) scale(1.8);opacity:0}15%{opacity:1}to{transform:translate(-50%,-50%) scale(.9);opacity:.9}}#hMsg{position:absolute;left:50%;top:26%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:4px}.msg{font-size:clamp(22px,5.4vh,48px);color:var(--y);-webkit-text-stroke:clamp(3px,.7vh,6px) #3b1470;paint-order:stroke fill;font-style:italic;animation:msg 1.6s ease-out forwards;white-space:nowrap}.msg.b{color:#4db8ff}.msg.o{color:#ff9a1f}.msg.p{color:#e04dff}.msg.r{color:#ff5470}.msg.w{color:#fff}@keyframes msg{0%{transform:scale(.4);opacity:0}12%{transform:scale(1.15);opacity:1}25%{transform:scale(1)}80%{opacity:1}to{opacity:0;transform:translateY(-16px)}}#hWrong{position:absolute;left:50%;top:48%;transform:translate(-50%);font-size:clamp(26px,6vh,56px);color:#ff3d3d;-webkit-text-stroke:5px #3b1470;paint-order:stroke fill;animation:blink .5s infinite alternate}@keyframes blink{to{opacity:.35}}.iconbtn{position:absolute;left:50%;bottom:2.2vh;margin-left:min(20vw,210px);pointer-events:auto;width:46px;height:46px;border-radius:50%;border:0;background:#1e0a46a6;color:#fff;font-weight:900;box-shadow:inset 0 0 0 3px #fff8;font-size:14px}body.touch .iconbtn{left:auto;right:max(1.6vw,env(safe-area-inset-right));bottom:auto;top:calc(1.6vh + clamp(190px,46vh,330px));margin:0}body.touch .hud-tr .hbox.small,body.touch #hBoard{display:none}#touch{position:fixed;inset:0;pointer-events:none}#tSteer{position:absolute;left:max(2vw,env(safe-area-inset-left));bottom:max(3vh,env(safe-area-inset-bottom));width:clamp(220px,38vw,380px);height:clamp(100px,30vh,170px);display:flex;gap:2%;pointer-events:auto}.tbtn{display:flex;align-items:center;justify-content:center;font-weight:900;color:#fff;background:#28105080;border-radius:26px;box-shadow:inset 0 0 0 4px #ffffff70;text-shadow:0 2px 0 rgba(0,0,0,.4);font-size:clamp(20px,5vh,38px)}#tSteer .tbtn{flex:1}.tbtn.on{background:#ffb22fd9;transform:scale(.96)}#tRightCl{position:absolute;right:max(2vw,env(safe-area-inset-right));bottom:max(3vh,env(safe-area-inset-bottom));width:clamp(220px,36vw,360px);height:clamp(150px,40vh,230px)}#tRightCl .tbtn{position:absolute;pointer-events:auto;border-radius:50%;font-size:clamp(10px,2.4vh,17px);letter-spacing:.04em}#tDrift{right:0;bottom:0;width:clamp(100px,26vh,150px);height:clamp(100px,26vh,150px);background:#8a4fe099}#tItem{right:clamp(100px,28vh,160px);bottom:clamp(50px,13vh,80px);width:clamp(76px,19vh,110px);height:clamp(76px,19vh,110px);background:#ff8a1f99}#tBrake{right:clamp(0px,1vw,10px);bottom:clamp(110px,29vh,165px);width:clamp(60px,14vh,86px);height:clamp(60px,14vh,86px);background:#ff3d6e8c}@media(max-height:520px){.logo-a{font-size:min(13vh,18vw)}.logo-b{font-size:min(15vh,21vw)}.screen{gap:1.2vh;padding:1.2vh 2vw}.menu{gap:.8vh}.btn{padding:.9vh 2vw;min-height:38px}.card{width:clamp(58px,8.4vw,110px);padding:.4vh .4vw}.racer-detail img{max-height:24vh}.rd-bio{min-height:0}.tcard .ts,.tcard .top{display:none}.tcard canvas{width:min(60%,19vh)}.stat{margin:.1vh 0}.settings{gap:.6vh;padding:1vh 2vw}h2{font-size:clamp(18px,4vh,30px)}}@media(orientation:portrait){.card{width:clamp(60px,21vw,120px)}.racer-detail img{max-height:19vh}.tcard{flex-direction:row;width:92vw;max-width:92vw;min-width:0;text-align:left;gap:3vw;padding:1vh 3vw}.cards3{width:100%}.tcard .tb{overflow-wrap:anywhere}.tcard canvas{width:20vh;max-width:30vw}.tcard .ts{display:none}.grid8{grid-template-columns:repeat(4,1fr)}.racer-detail{width:min(92vw,360px)}.hud-tr .hbox.small,#hBoard{display:none}}
