:root{--sky:#7ec5e8;--sky-soft:#e6f2ff;--sky-deep:#2a7fb8;--mint:#a8dfb1;--mint-deep:#2e9e5b;--cream:#fff4cf;--sun:#ffd23f;--sun-deep:#c98a00;--coral:#ff6b5a;--coral-deep:#e04a38;--navy:#1f3a68;--bg:#ffffffeb;--panel:#f3f9ff;--fg:var(--navy);--muted:#6a7fa6;--line:#cfe6f7;--shadow:0 10px 28px #346eaa38;--num:"Baloo 2", "Fredoka", "Noto Sans TC", sans-serif;--ink:var(--navy);--lift:inset 0 2px 0 #fff9, inset 0 -4px 0 #1f3a6824, 0 5px 0 var(--ink), 0 10px 22px #1f3a6838;--lift-pressed:inset 0 2px 0 #fff6, inset 0 -2px 0 #1f3a6824, 0 1px 0 var(--ink), 0 3px 8px #1f3a6833;--o2:2px 0 0 var(--ink), 1.4px 1.4px 0 var(--ink), 0 2px 0 var(--ink), -1.4px 1.4px 0 var(--ink), -2px 0 0 var(--ink), -1.4px -1.4px 0 var(--ink), 0 -2px 0 var(--ink), 1.4px -1.4px 0 var(--ink);--o4:4px 0 0 var(--ink), 3.7px 1.5px 0 var(--ink), 2.8px 2.8px 0 var(--ink), 1.5px 3.7px 0 var(--ink), 0 4px 0 var(--ink), -1.5px 3.7px 0 var(--ink), -2.8px 2.8px 0 var(--ink), -3.7px 1.5px 0 var(--ink), -4px 0 0 var(--ink), -3.7px -1.5px 0 var(--ink), -2.8px -2.8px 0 var(--ink), -1.5px -3.7px 0 var(--ink), 0 -4px 0 var(--ink), 1.5px -3.7px 0 var(--ink), 2.8px -2.8px 0 var(--ink), 3.7px -1.5px 0 var(--ink), 0 7px 0 var(--ink);--g-coral:linear-gradient(180deg, #ffa497, var(--coral) 52%, var(--coral-deep));--g-sun:linear-gradient(180deg, #fff3b0, var(--sun) 50%, #f2b100);--g-sky:linear-gradient(180deg, #c9ebfb, var(--sky) 55%, #4ea5d5);--g-mint:linear-gradient(180deg, #dcf5e0, var(--mint) 55%, #78c688);--g-white:linear-gradient(180deg, #fff, #f3f9ff 60%, #dbeaf7);--go-focus:linear-gradient(180deg, #fffbe0, #ffe27a 50%, var(--sun));--back-focus:linear-gradient(180deg, #fff, var(--sky-soft) 60%, #cfe6f7);--danger-focus:linear-gradient(180deg, #ffc0b6, #ff8576 52%, var(--coral));--display:"Huninn", "Noto Sans TC", "Microsoft JhengHei", sans-serif;--pop:cubic-bezier(.3, 1.6, .5, 1)}*{box-sizing:border-box}html,body{height:100%;color:var(--fg);background:radial-gradient(circle at 84% 14%,#fffbe0 0 54px,#ffe26ebf 58px,#ffe26e38 110px,#0000 190px),radial-gradient(70px 30px at 58% 16%,#fff 0 96%,#0000),radial-gradient(54px 36px at 61% 12.5%,#fff 0 96%,#0000),radial-gradient(90px 28px at 92% 34%,#ffffffe6 0 96%,#0000),radial-gradient(120% 34% at 72% 104%,#bfe9c6 0 60%,#bfe9c600 61%),linear-gradient(#8fd0f0 0%,#c4e6f8 58%,#eaf6ff 100%);margin:0;font-family:Noto Sans TC,Microsoft JhengHei,PingFang TC,system-ui,sans-serif;overflow:hidden}#game{touch-action:none;outline:none;width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}#ui,#ui>.hud{inset:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}@media (pointer:coarse){html,body,#ui{touch-action:manipulation;-webkit-tap-highlight-color:transparent}#ui,.toast,.turn-phone{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}#ui :is(input,textarea,select){-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}#ui.settling>:not(.touch-controls),#ui.settling>:not(.touch-controls) *{pointer-events:none!important}}.screen{width:min(580px,100% - 48px);box-shadow:var(--shadow), inset 0 0 0 1px var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffffff0;border:3px solid #fff;border-radius:24px;padding:22px 26px;scroll-padding:16px 0;position:absolute;top:24px;bottom:24px;left:24px;overflow-y:auto}.screen h2{color:var(--navy);background:linear-gradient(90deg, var(--sky-soft) 70%, transparent);border-left:6px solid var(--coral);border-radius:6px;margin:0 0 14px;padding:4px 18px 4px 12px;font-size:22px;font-weight:900;display:inline-block}.logo{letter-spacing:2px;background:linear-gradient(180deg, #fff6b8 0%, var(--sun) 45%, var(--coral) 100%);color:#0000;-webkit-text-stroke:3px var(--navy);paint-order:stroke fill;filter:drop-shadow(0 4px #1f3a6859);-webkit-background-clip:text;background-clip:text;margin:0 0 20px;font-size:58px;font-weight:900;line-height:1.05}.logo:has(img){filter:none;margin-bottom:12px}.logo img{width:min(100%,300px);height:auto;display:block}#ui>.screen.home{width:auto;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:0 0;border:0;border-radius:0;padding:0;inset:0;overflow:hidden}.screen.home>*{pointer-events:auto}.screen.home .logo{pointer-events:none;margin:0;position:absolute;top:16px;left:34px}.menu{flex-direction:column;gap:14px;display:flex}.screen.home .menu{width:380px;position:absolute;top:150px;left:40px}.menu button{white-space:nowrap;border-radius:18px;align-items:center;gap:14px;height:62px;margin:0;padding:0 18px 0 10px;font-size:26px;display:flex;transform:skew(-8deg)}.menu button>*{transform:skew(8deg)}.menu button.is-focus{transform:skew(-8deg)translate(26px)scale(1.05)}.menu button:active:not(:disabled),.menu button.is-press{transform:skew(-8deg)translate(26px)translateY(4px)scale(1.03)}.menu button.is-focus:after{border-radius:24px}.menu button .arrow{color:var(--navy);opacity:0;margin-left:auto;font-size:24px;display:grid}.menu button.is-focus .arrow{opacity:1;animation:.5s ease-in-out infinite alternate nudge}.menu button.is-focus .ico{background:#fff;animation:.6s ease-in-out infinite alternate wiggle}@keyframes wiggle{0%{transform:skew(8deg)rotate(-8deg)}to{transform:skew(8deg)rotate(8deg)scale(1.08)}}@keyframes nudge{0%{transform:skew(8deg)translate(0)}to{transform:skew(8deg)translate(6px)}}@media (prefers-reduced-motion:reduce){.menu button.is-focus{transform:skew(-8deg)}.menu button.is-focus .arrow,.menu button.is-focus .ico{animation:none}}.screen.home .profile{align-items:flex-end;gap:12px;display:flex;position:absolute;top:20px;right:24px}.profile-box{border:3px solid var(--ink);max-width:420px;box-shadow:var(--shadow);background:#fffffff2;border-radius:18px;flex-direction:column;gap:8px;padding:10px 14px;font-size:14px;display:flex}.profile-box .guest-name{margin:0}.profile-box button{margin-bottom:4px}button.icon-btn{place-items:center;width:54px;height:54px;margin:0;padding:0;display:grid}button.icon-btn .icon{width:30px;height:30px}.menu-desc{border:3px solid var(--ink);width:min(360px,100% - 48px);box-shadow:var(--shadow);background:#fffffff2;border-radius:18px;padding:12px 18px;position:absolute;bottom:24px;right:24px}.menu-desc h4{font-family:var(--display);font-synthesis:none;color:var(--coral-deep);margin:0 0 4px;font-size:22px;font-weight:400}.menu-desc p{margin:0;font-size:15px;line-height:1.55}.menu-desc p.why{color:var(--coral-deep);margin-top:6px;font-weight:700}.menu-desc.swap{animation:desc-pop .22s var(--pop)}@keyframes desc-pop{0%{opacity:.4;transform:translateY(8px)scale(.96)}}@media (prefers-reduced-motion:reduce){.menu-desc.swap{animation:none}}@media (pointer:coarse){.screen.home .menu-desc{display:none}}.screen.home .errors{max-width:420px;position:absolute;bottom:16px;left:40px}@media (height<=640px){.screen.home .logo img{width:240px}.screen.home .menu{gap:10px;top:124px}.menu button{height:50px;font-size:22px}.screen.home .menu button .ico{width:40px;height:40px}.screen.home .menu button .ico img{width:33px;height:33px}}@media (height<=480px){.screen.home .logo{top:8px;left:20px}.screen.home .logo img{width:150px}.screen.home .menu{gap:6px;width:250px;top:76px;left:24px}.menu button{border-width:2.5px;border-radius:13px;gap:10px;height:40px;padding:0 12px 0 6px;font-size:17px}.menu button.is-focus{transform:skew(-8deg)translate(14px)scale(1.04)}.menu button:active:not(:disabled),.menu button.is-press{transform:skew(-8deg)translate(14px)translateY(3px)scale(1.02)}.screen.home .menu button .ico{border-width:2px;border-radius:9px;width:30px;height:30px}.screen.home .menu button .ico img{width:25px;height:25px}.screen.home .profile{top:8px;right:12px}.profile-box{max-width:340px;padding:6px 10px;font-size:12px}.profile-box .guest-name label{white-space:nowrap}.screen.home .profile-box .player-line,.profile-box .board-name{display:none}button.icon-btn{width:44px;height:44px}.menu-desc{width:280px;padding:8px 12px;bottom:12px;right:12px}.menu-desc h4{font-size:17px}.menu-desc p{font-size:13px;line-height:1.45}}@media (width<=700px) and (height>=481px){#ui>.screen.home{pointer-events:auto;flex-direction:column;gap:12px;padding:12px 16px 20px;display:flex;overflow-y:auto}.screen.home .logo,.screen.home .menu,.screen.home .profile,.screen.home .errors{width:auto;max-width:none;position:static}.screen.home .logo img{width:190px}.screen.home .profile{order:1;margin-top:max(12px,46vh - 120px)}.screen.home .menu{order:2;grid-template-columns:1fr 1fr;gap:10px;display:grid}.screen.home .errors{order:3}.profile-box{flex:1;max-width:none}.screen.home .settings-btn{position:absolute;top:16px;right:16px}.menu button{gap:8px;height:56px;padding:0 8px 0 6px;font-size:19px;position:relative}.screen.home .menu button .ico{width:40px;height:40px}.screen.home .menu button .ico img{width:33px;height:33px}.menu button .arrow{display:none}.menu button.is-focus{transform:skew(-8deg)scale(1.04)}.menu button:active:not(:disabled),.menu button.is-press{transform:skew(-8deg)translateY(3px)scale(1.02)}.menu button .soon{margin:0;position:absolute;top:-10px;right:-4px}.screen.home .menu-desc{display:none}}#ui>.screen.step{width:auto;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:0 0;border:0;border-radius:0;padding:0;inset:0;overflow:hidden}.screen.step>*{pointer-events:auto}.screen.step>.top{align-items:center;gap:14px;display:flex;position:absolute;top:20px;left:24px}button.round-back{border-radius:50%;place-items:center;width:52px;height:52px;margin:0;padding:0;display:grid}button.round-back .icon{stroke-width:3px;width:26px;height:26px}button.round-back.is-focus{transform:scale(1.12)rotate(-8deg)}button.round-back.is-focus:after{border-radius:50%}.screen h2.step-title{font-family:var(--display);font-synthesis:none;color:#fff;text-shadow:var(--o4);box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0 2px;font-size:34px;font-weight:400;line-height:1.1;transform:none}h2.step-title>span{display:inline-block;transform:none}.crumbs{background:#fffc;border-radius:8px;align-items:center;padding:3px 12px;display:flex}.crumbs>span{color:var(--navy);background:0 0;border:0;border-radius:0;padding:0;font-size:15px;font-weight:700}.crumbs>span+span:before{content:"›";color:var(--muted);margin:0 8px}.key-hint{z-index:45;color:var(--navy);pointer-events:none;background:#fffc;border-radius:8px;gap:14px;padding:3px 10px;font-size:13px;font-weight:700;display:flex;position:fixed;bottom:12px;left:24px}.key-hint[hidden]{display:none}.key-hint>span{align-items:center;gap:5px;display:flex}.key-hint kbd{font:800 12px var(--num);border:1.5px solid var(--navy);background:#fff;border-radius:5px;padding:0 5px}body:has(#ui .tour)>.key-hint{left:calc(100% - 444px)}.screen.step>.actions{background:0 0;gap:12px;margin:0;padding:0;position:absolute;bottom:24px;right:24px}.mode-cards{flex-direction:column;gap:24px;width:min(460px,100% - 80px);display:flex;position:absolute;top:130px;left:40px}.mode-cards button{text-align:left;border-radius:22px;flex-direction:column;align-items:flex-start;gap:8px;margin:0;padding:14px 22px 18px;display:flex}.mode-cards button:nth-child(odd){background:var(--g-coral)}.mode-cards button:nth-child(2n){background:var(--g-sky)}.mode-cards button b{color:#fff;text-shadow:var(--o2);font-size:40px;font-weight:400;line-height:1.15}.mode-cards button span{color:var(--navy);text-shadow:none;background:#ffffffeb;border-radius:12px;padding:6px 12px;font-family:Noto Sans TC,sans-serif;font-size:15px;font-weight:700;line-height:1.5}.mode-cards button.sel:before,.kart-cards button.sel:before,.track-cards button.sel:before{content:"✓";background:var(--mint-deep);border:2px solid var(--ink);color:#fff;text-align:center;width:26px;height:26px;text-shadow:none;border-radius:50%;font:900 15px/22px Noto Sans TC,sans-serif;position:absolute}.mode-cards button.sel:before{top:14px;right:14px}.kart-cards{grid-template-columns:repeat(4,132px);gap:18px 16px;display:grid;position:absolute;top:104px;left:34px}.kart-cards button,.track-cards button{border:3px solid var(--ink);box-shadow:0 5px 0 var(--ink);transition:transform .2s var(--pop);border-radius:18px;margin:0;padding:0;position:relative}.kart-cards button{height:164px}.kart-cards button:nth-child(4n+1){background:var(--g-coral)}.kart-cards button:nth-child(4n+2){background:var(--g-sky)}.kart-cards button:nth-child(4n+3){background:var(--g-white)}.kart-cards button:nth-child(4n+4){background:var(--g-mint)}.kart-cards .face{place-items:center;height:118px;display:grid;position:absolute;top:4px;left:4px;right:4px}.kart-shot{place-items:center;display:grid}.kart-shot img{filter:drop-shadow(0 4px 2px #1f3a684d);max-width:124px;max-height:116px}.kart-cards .face .kart-shot.painted{position:absolute;inset:0 0 -8px}.kart-cards .face .kart-shot.painted img{object-fit:contain;object-position:50% 100%;width:100%;max-width:none;height:100%;max-height:none}.kart-cards .nm,.track-cards .nm{border:3px solid var(--ink);font-family:var(--display);font-synthesis:none;white-space:nowrap;text-overflow:ellipsis;background:#fff;place-items:center;padding:0 6px;display:grid;position:absolute;bottom:-3px;left:-3px;right:-3px;overflow:hidden}.kart-cards .nm{border-radius:0 0 18px 18px;height:40px;font-size:19px}.kart-cards button.sel:before,.track-cards button.sel:before{z-index:1;top:-9px;right:-9px}.track-cards button.sel .laps{right:26px}.kart-cards button.is-focus{transform:scale(1.1)rotate(-2deg)}.track-cards button.is-focus{transform:translateY(-4px)scale(1.06)rotate(-1deg)}.kart-cards button.is-focus .nm,.track-cards button.is-focus .nm{background:var(--sun)}.kart-cards button.is-focus .kart-shot{animation:.7s ease-in-out infinite alternate bob}.kart-cards button.is-focus:after,.track-cards button.is-focus:after{border-radius:24px}@keyframes bob{to{transform:translateY(-7px)scale(1.06)rotate(3deg)}}.char-side{width:330px;position:absolute;bottom:96px;right:24px}.char-panel{animation:desc-pop .22s var(--pop)}.char-panel h3{font-family:var(--display);font-synthesis:none;color:#fff;text-shadow:var(--o4);white-space:nowrap;margin:0 0 6px;font-size:48px;font-weight:400;line-height:1.1}.char-panel .char-line{color:var(--navy);background:#ffffffeb;border-radius:12px;margin:0 0 6px;padding:6px 12px;font-size:15px;font-weight:700;line-height:1.45}.char-panel .tags,.track-panel .facts{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.char-panel .tags span,.track-panel .facts span{box-shadow:inset 0 0 0 1.5px var(--line);background:#ffffffeb;border:0;border-radius:6px;padding:2px 10px;font-size:14px;font-weight:700}.char-panel .tags span.hot{color:var(--coral-deep);box-shadow:none;background:#ffe1dc;border:0;border-radius:6px;padding:1px 8px;font-weight:700}.char-panel .segs{border:3px solid var(--ink);box-shadow:var(--shadow);background:#fffffff2;border-radius:16px;gap:7px;padding:12px 16px;display:grid}.char-panel .s{grid-template-columns:36px 1fr 20px;align-items:center;gap:10px;font-size:14px;font-weight:900;display:grid}.char-panel .s b{font-family:var(--num);text-align:right}.char-panel .bar{gap:3px;display:flex}.char-panel .bar i{background:#e2eaf5;border:2px solid #1f3a6833;border-radius:3px;flex:1;height:12px;transform:skew(-12deg)}.char-panel .bar i.f{border-color:var(--ink)}.char-panel .s-speed i.f{background:var(--coral)}.char-panel .s-accel i.f{background:var(--sun)}.char-panel .s-handling i.f{background:var(--sky)}.char-panel .s-weight i.f{background:#b79cf0}.char-panel .s-drift i.f{background:var(--mint-deep)}.track-cards{grid-template-columns:repeat(auto-fill,minmax(156px,1fr));align-content:start;gap:16px 14px;padding:14px 14px 90px;scroll-padding:14px 0 90px;display:grid;position:absolute;inset:92px 470px 12px 22px;overflow-y:auto}.track-cards button{background:#fff;height:124px;overflow:hidden}.track-cards button.is-focus,.track-cards button.sel{overflow:visible}.track-cards .map-thumb{aspect-ratio:auto;border-bottom:3px solid var(--ink);border-radius:15px 15px 0 0;width:100%;height:86px;display:block}.track-cards .laps{color:#fff;background:#1f3a68d9;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:900;position:absolute;top:6px;right:6px}.track-cards .nm{border-radius:0 0 18px 18px;height:36px;font-size:16px}.track-side{flex-direction:column;gap:10px;width:420px;display:flex;position:absolute;top:92px;bottom:96px;right:24px}.track-slot{flex:0 auto;min-height:0;overflow-y:auto}.track-panel{animation:desc-pop .22s var(--pop)}.track-panel .map-thumb{border:3px solid var(--ink);width:100%;box-shadow:var(--shadow);background-color:#fff;border-radius:18px;display:block}.track-panel .map-thumb.painted{padding:26% 3% 3% 74%}.track-panel h3{font-family:var(--display);font-synthesis:none;color:#fff;text-shadow:var(--o4);margin:12px 0 0;font-size:34px;font-weight:400;line-height:1.15}.track-panel .map-desc{color:var(--navy);border:3px solid var(--ink);box-shadow:var(--shadow);cursor:auto;background:#fffffff2;border-radius:14px;margin:0;padding:10px 14px;font-size:15px;line-height:1.6;display:block}.track-panel .ghost-note{margin:0 0 10px}.track-side .row.setting{border:3px solid var(--ink);background:#fffffff2;border-radius:14px;flex:none;margin:0;padding:8px 12px}.track-side .row.setting .board-hint{flex-basis:100%;margin:2px 0 0;font-size:13px}.tour{--d:58px;place-items:center;display:grid;position:absolute;inset:92px 470px 16px 22px;container-type:size}.tour-box{width:min(100cqw, 100cqh * var(--r));aspect-ratio:var(--r);border:3px solid var(--ink);box-shadow:0 6px 0 var(--ink), 0 14px 28px #1f3a6840;touch-action:none;background:radial-gradient(circle at 18% 22%,#ffffff59 0 2px,#0000 3px) 0 0/46px 38px,radial-gradient(at 55% 45%,#c4ecfc,#8fd2f2 55%,#62b6e3);border-radius:26px;position:relative}.tour-box .tour-view{border-radius:23px;position:absolute;inset:0;overflow:clip}.tour-box .tour-world{width:100%;height:100%;position:absolute;top:0;left:0}.tour-box.glide .tour-world{transition:left .3s,top .3s,width .3s,height .3s}.tour-box.zoomed .tour-view{cursor:grab}.tour-box.dragging .tour-view{cursor:grabbing}.tour-box .tour-zoom{z-index:3;gap:6px;display:flex;position:absolute;bottom:10px;left:10px}.tour-box .tour-zoom>button{min-width:38px;height:34px;margin:0;padding:0 9px;font-size:16px;font-weight:900;line-height:1}.tour-art{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.tour-art .isle{fill:#9bd977;stroke:var(--ink);stroke-width:3px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.tour-art .isle-edge{fill:var(--ink)}.tour-art line{stroke-linecap:round;vector-effect:non-scaling-stroke}.tour-art .route-edge{stroke:var(--ink);stroke-width:8px}.tour-art .route{stroke:#fff;stroke-width:3px;stroke-dasharray:1 7}.tour-art .route.lit{stroke:var(--sun);stroke-width:4px;stroke-dasharray:none}.tour-stops{position:absolute;inset:0}.tour-stops>button{width:var(--d);height:var(--d);box-shadow:none;background:0 0;border:0;border-radius:50%;margin:0;padding:0;position:absolute;translate:-50% -50%}.tour-stops .pic{border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink);background:#fff;border-radius:50%;position:absolute;inset:0;overflow:hidden}.tour-stops .pic img{object-fit:cover;width:100%;height:100%}.tour-stops .shut .pic img{filter:grayscale()brightness(.8)}.tour-stops .lock{background:#1f3a6859;place-items:center;display:grid;position:absolute;inset:0}.tour-stops .lock .icon{color:#fff;stroke:#fff;width:45%;height:45%;filter:drop-shadow(0 2px 0 var(--ink))}.tour-stops .done{z-index:1;background:var(--mint-deep);border:2px solid var(--ink);color:#fff;text-align:center;border-radius:50%;width:22px;height:22px;font:900 13px/18px Noto Sans TC,sans-serif;position:absolute;top:-6px;right:-6px}.tour-stops .nm{z-index:1;white-space:nowrap;color:var(--navy);border:2px solid var(--ink);pointer-events:none;background:#fff;border-radius:999px;padding:1px 8px 2px;font-size:13px;line-height:1.3;position:absolute}.tour-stops .shut .nm{color:var(--muted);border-color:#9aabc6}.tour-stops .at-left .nm{top:50%;right:calc(100% + 4px);translate:0 -50%}.tour-stops .at-right .nm{top:50%;left:calc(100% + 4px);translate:0 -50%}.tour-stops .at-below .nm{top:calc(100% + 6px);left:50%;translate:-50%}.tour-stops .at-above .nm{bottom:calc(100% + 4px);left:50%;translate:-50%}.tour-stops .first .nm:before{content:"起點";color:#fff;background:var(--coral);border-radius:6px;padding:0 5px;font-size:11px;line-height:1.4;position:absolute;bottom:calc(100% - 2px);left:50%;translate:-50%}.tour-stops .next:before{content:"";border:4px solid var(--sun);border-radius:50%;animation:1.4s ease-out infinite tour-next;position:absolute;inset:-7px}@keyframes tour-next{0%{opacity:1;transform:scale(.9)}to{opacity:0;transform:scale(1.35)}}.tour-stops>button.is-focus{transform:scale(1.18)}.tour-stops>button.is-focus:after{border-radius:50%}.tour-stops>button.is-focus .nm{background:var(--sun)}.tour-stops .event .pic{border-color:#c8102e}.tour-stops .event .tag{color:#fff;background:#c8102e;border-radius:6px;margin-right:5px;padding:0 5px;font-size:11px;font-style:normal}.tour-stops .event:before{content:"";border:3px dashed var(--sun);border-radius:50%;animation:8s linear infinite tour-event;position:absolute;inset:-8px}@keyframes tour-event{to{rotate:360deg}}.tour-stops .fresh .pic{animation:tour-fresh .8s var(--pop) .3s both}@keyframes tour-fresh{0%{opacity:0;transform:scale(.2)rotate(-40deg)}}.tour-me{z-index:2;translate:-50% calc(-100% - var(--d) / 2 - 2px);pointer-events:none;transition:left .3s var(--pop), top .3s var(--pop);position:absolute}.tour-me .av{border:2.5px solid var(--ink);width:34px;height:34px;box-shadow:0 3px 0 var(--ink);background:#fff;border-radius:50% 50% 50% 4px;place-items:center;display:grid;overflow:hidden;rotate:-45deg}.tour-me .av img{width:100%;rotate:45deg}.track-panel .lock-note{color:var(--navy);background:var(--cream);border:0;border-left:5px solid var(--sun-deep);border-radius:6px;align-items:center;gap:8px;margin:8px 0 10px;padding:8px 12px;font-size:15px;font-weight:700;line-height:1.5;display:flex}.track-panel .lock-note .icon{flex:none;width:22px;height:22px}.my-card .tour-note{color:var(--navy);background:var(--sky-soft);border:0;border-left:5px solid var(--sky-deep);border-radius:6px;margin-top:10px;padding:8px 12px;font-size:15px;font-weight:700;line-height:1.5}.my-card .tour-note.new{border-left-color:var(--mint-deep);animation:desc-pop .3s var(--pop) .8s both;background:#e3f6e6;font-size:17px}.my-card .tour-note b{color:#fff;background:var(--mint-deep);border-radius:4px;margin-right:8px;padding:1px 8px}@media (prefers-reduced-motion:reduce){.my-card .tour-note.new,.tour-stops .next:before,.tour-stops .event:before,.tour-stops .fresh .pic{animation:none}.tour-me{transition:none}}@media (width<=1100px),(height<=640px){.tour{--d:46px;right:380px}.tour-stops .nm{font-size:12px}}@media (width<=700px) and (height>=481px){.tour{flex:auto;min-height:0;padding:4px;position:static}}@media (height<=480px){.tour{--d:min(36px, 9.5cqh);inset:56px 290px 8px 8px}.tour-box{border-radius:18px}.tour-box .tour-view{border-radius:15px}.tour-stops .nm{display:none}.tour-box.near .tour-stops .nm{display:block}.tour-box .tour-zoom{gap:4px;bottom:6px;left:6px}.tour-box .tour-zoom>button{min-width:30px;height:28px;padding:0 6px;font-size:13px}.tour-stops .done{width:18px;height:18px;font-size:11px;line-height:14px}.tour-me .av{width:26px;height:26px}}@media (prefers-reduced-motion:reduce){.kart-cards button.is-focus .kart-shot,.char-panel,.track-panel{animation:none}}@media (width<=1100px),(height<=640px){.kart-cards{grid-template-columns:repeat(4,112px);gap:14px 12px;top:92px}.kart-cards button{height:140px}.kart-cards .face{height:98px}.kart-shot img{max-width:104px;max-height:96px}.kart-cards .nm{height:36px;font-size:17px}.char-side{width:290px;bottom:88px}.char-panel h3{font-size:38px}.track-cards{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));right:380px}.track-side{width:340px;bottom:88px}.track-panel .map-thumb{height:120px}}@media (height<=480px){.screen.step>.top{gap:10px;top:8px;left:12px}button.round-back{width:42px;height:42px}.screen h2.step-title{text-shadow:var(--o2), 0 4px 0 var(--ink);font-size:24px}.screen.step>.actions{bottom:12px;right:12px}.mode-cards{gap:14px;top:70px}.mode-cards button b{font-size:28px}.mode-cards button span{font-size:13px}.kart-cards{grid-template-columns:repeat(4,96px);gap:12px 10px;padding:12px 12px 8px 8px;top:62px;bottom:8px;left:12px;overflow-y:auto}.kart-cards button{height:118px}.kart-cards .face{height:80px}.kart-shot img{max-width:88px;max-height:78px}.kart-cards .nm{height:32px;font-size:15px}.char-side{width:250px;bottom:70px;right:12px}.char-panel h3{font-size:28px}.char-panel .char-line{margin-bottom:4px;padding:4px 8px;font-size:12px;line-height:1.35}.char-panel .tags{margin:4px 0}.char-panel .segs{gap:4px;padding:8px 12px}.char-panel .bar{gap:2px}.char-panel .bar i{border-width:1.5px;border-radius:2px;height:8px}.track-cards{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));padding:12px 12px 60px 8px;top:56px;left:4px;right:290px}.track-cards button{height:100px}.track-cards .map-thumb{height:66px}.track-cards .nm{height:30px;font-size:14px}.track-side{width:270px;top:60px;bottom:70px;right:12px}.track-panel .map-thumb{display:none}.track-panel h3{margin-top:0;font-size:24px}.track-panel{flex-direction:column;display:flex}.track-panel .map-desc{-webkit-line-clamp:3;-webkit-box-orient:vertical;order:1;margin-top:6px;padding:6px 10px 3px;font-size:13px;display:-webkit-box;overflow:hidden}.track-panel .facts{order:2;margin:6px 0 0}}.garage-left{flex-direction:column;align-items:flex-start;gap:12px;width:min(560px,45%);padding:10px 16px 90px 14px;scroll-padding:14px 0 90px;display:flex;position:absolute;top:84px;bottom:12px;left:20px;overflow-y:auto}.garage-left>p{background:#ffffffeb;border-radius:10px;margin:0;padding:4px 12px;font-size:14px}.garage-left .row.chars{gap:8px;margin:0}.garage-left .row.chars button{margin:0}.part-cards{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));align-self:stretch;gap:14px;display:grid}.part-cards button,.shop-cards button{text-align:left;border:3px solid var(--ink);min-height:72px;box-shadow:0 5px 0 var(--ink);transition:transform .2s var(--pop), background .15s;background:#fff;border-radius:16px;margin:0;padding:8px 12px 10px;position:relative}.part-cards button.sel,.track-cards button.sel{color:var(--navy);background:#fff}.part-cards button.is-focus,.shop-cards button.is-focus{background:var(--cream);transform:translateY(-4px)scale(1.05)rotate(-1deg)}.part-cards button.is-focus:after,.shop-cards button.is-focus:after{border-radius:22px}.part-cards button.sel:before{content:"✓";z-index:1;background:var(--mint-deep);border:2px solid var(--ink);color:#fff;text-align:center;border-radius:50%;width:26px;height:26px;font:900 15px/22px Noto Sans TC,sans-serif;position:absolute;top:-9px;right:-9px}:is(.part-cards,.shop-cards,.buy-modal) .part{flex-direction:column;gap:5px;display:flex}:is(.part-cards,.shop-cards,.buy-modal) .part .title{line-height:1.25}.chips{flex-wrap:wrap;align-items:center;gap:4px;line-height:1.2;display:flex}:is(.part-cards,.shop-cards,.buy-modal) .part .stars{color:var(--sun-deep);letter-spacing:-1px;margin-right:4px;font-size:13px}:is(.part-cards,.shop-cards,.buy-modal) .part .name{font-size:17px;font-weight:400}.chips .chip{color:var(--muted);border:1px solid;border-radius:999px;padding:0 7px;font-family:Noto Sans TC,sans-serif;font-size:12px;font-style:normal;font-weight:700;line-height:17px}.chips .chip.up{color:var(--mint-deep);background:#a8dfb14d}.chips .chip.down{color:var(--coral-deep);background:#ff6b5a1f}.chips .chip.trait{color:var(--sun-deep);background:#ffd23f2e}.char-panel .s .bar i.f.up{background:var(--mint-deep);border-color:var(--ink);animation:seg-in .3s var(--pop)}.char-panel .bar i.down{border:2px dashed var(--coral-deep);background:#ff6b5a40}@keyframes seg-in{0%{transform:skew(-12deg)scaleX(.2)}}.char-panel .s{grid-template-columns:36px 1fr 46px}.char-panel .delta{font-family:var(--num);margin-left:4px;font-size:13px}.char-panel .delta.up{color:var(--mint-deep)}.char-panel .delta.down{color:var(--coral-deep)}@media (prefers-reduced-motion:reduce){.char-panel .s .bar i.f.up{animation:none}}@media (height<=480px){.garage-left{width:calc(100% - 444px);padding-bottom:60px;top:58px;left:8px}.garage-left .row.chars{flex-wrap:nowrap;flex:none;align-self:stretch;padding:4px 4px 10px;overflow-x:auto}.garage-left .row.chars button{flex:none}.garage-left .seg button{white-space:nowrap;padding:4px 10px}}.shop-cards{--cols:3;flex-wrap:wrap;align-content:flex-start;gap:16px 14px;padding:14px 14px 40px;scroll-padding:14px 0 40px;display:flex;position:absolute;inset:92px 470px 12px 22px;overflow-y:auto}body:has(>.key-hint:not([hidden])) :is(.shop-cards,.board-screen .track-cards){bottom:46px}.shop-cards button{flex:0 0 calc((100% - (var(--cols) - 1) * 14px) / var(--cols));min-height:96px;padding-bottom:40px}.shop-cards button.locked{background:#eef2f8}.shop-cards button.locked .part{opacity:.6}.shop-cards .tag{justify-content:space-between;align-items:center;gap:6px;display:flex;position:absolute;bottom:9px;left:12px;right:12px}.shop-cards .slot{color:var(--muted);font-size:12px;font-weight:900}.shop-cards .price{font:800 16px var(--num);color:var(--coral-deep)}.pill{box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap;border-radius:6px;max-width:100%;height:24px;padding:0 9px;font-size:13px;font-weight:700;line-height:24px;display:inline-block;overflow:hidden}.pill.lock{color:var(--muted);background:#6a7fa624}.pill.owned{color:var(--mint-deep);background:#a8dfb159}.pill .icon{vertical-align:-2px;width:14px;height:14px;margin-right:4px}.shop-side{width:420px;position:absolute;top:92px;right:24px}.shop-panel{animation:desc-pop .22s var(--pop)}.shop-panel h3{font-family:var(--display);font-synthesis:none;color:#fff;text-shadow:var(--o4);margin:0;font-size:38px;font-weight:400;line-height:1.15}.shop-panel .facts{gap:8px;margin:10px 0;display:flex}.shop-panel .facts span{box-shadow:inset 0 0 0 1.5px var(--line);background:#ffffffeb;border:0;border-radius:6px;padding:2px 10px;font-size:14px;font-weight:700}.shop-panel .facts .stars{color:var(--sun-deep)}.shop-card{border:3px solid var(--ink);box-shadow:var(--shadow);background:#fffffff2;border-radius:16px;padding:14px 16px}.shop-card .chips .chip{padding:0 12px;font-size:15px;line-height:24px}.shop-card p{margin:10px 0 0;line-height:1.6}.shop-card .how{border-top:3px dashed var(--line);padding-top:10px;font-weight:900}.wallet{box-shadow:var(--shadow);background:#fff;border:0;border-radius:10px;padding:4px 16px;font-size:15px;font-weight:900;position:absolute;top:26px;right:24px}.wallet b{font:800 20px var(--num);color:var(--coral-deep)}.buy-modal .modal{width:min(420px,100% - 32px)}.buy-modal h2{margin:0 0 6px}.buy-modal .part{align-items:center}.buy-modal p{margin:10px 0;font-weight:900}.buy-modal .actions{justify-content:center;gap:12px;display:flex}@media (prefers-reduced-motion:reduce){.shop-panel{animation:none}}@media (width<=1100px),(height<=640px){.shop-cards{--cols:2;right:380px}.shop-side{width:340px}.shop-panel h3{font-size:30px}}@media (height<=480px){.shop-cards{--cols:3;padding:12px 12px 20px 8px;top:56px;left:4px;right:300px}.shop-side{width:280px;top:56px;right:12px}.shop-panel h3{font-size:24px}.shop-panel .facts{margin:4px 0}.shop-card{padding:8px 12px}.wallet{padding:2px 12px;font-size:13px;top:10px;right:12px}}@media (height<=480px) and (width<=760px){.kart-cards{grid-template-columns:repeat(3,96px)}.shop-cards{--cols:2}.garage-left{width:calc(100% - 420px)}.garage-left .seg button{padding:4px 7px;font-size:14px}}.form-card{border:3px solid var(--ink);width:min(460px,100% - 80px);box-shadow:var(--shadow);background:#fffffff2;border-radius:20px;flex-direction:column;gap:10px;padding:16px 20px;display:flex;position:absolute;top:110px;left:40px}.form-card p{margin:0;line-height:1.6}.form-card input{font-size:20px}.form-card .field{width:auto;margin:0}.form-card .field input{text-align:left;background:#fff;border-radius:12px;padding:5px 10px;font-family:inherit}.screen .form-card .actions{background:0 0;justify-content:flex-end;margin:0;padding:0;display:flex;position:static}.room-hint{background:#ffffffeb;border-radius:10px;margin:0;padding:4px 12px;font-size:14px;position:absolute;top:88px;left:24px}.room-list{flex-direction:column;gap:12px;width:min(700px,100% - 36px);padding:8px 14px 20px 6px;display:flex;position:absolute;top:128px;bottom:90px;left:18px;overflow-y:auto}.room-list>p{background:#ffffffeb;border-radius:12px;margin:0;padding:10px 14px}.room-list button.room{text-align:left;grid-template-columns:1fr auto auto;grid-template-areas:"rt rp rs""rm rh rs";align-items:center;gap:2px 16px;margin:0;padding:8px 16px 10px;display:grid}.room .rt{grid-area:rt;min-width:0;font-size:19px}.room .rt b{font-weight:400}.room .lock .icon,.crumbs .lock .icon{vertical-align:-2px;width:15px;height:15px;margin-left:6px}.room .rm,.room .rh{color:var(--muted);font-family:Noto Sans TC,sans-serif;font-size:13px;font-weight:700}.room .rm{grid-area:rm}.room .rh{white-space:nowrap;grid-area:rh}.room .rp{font:800 18px var(--num);grid-area:rp}.room .rs{color:var(--navy);text-shadow:none;background:var(--g-sun);border:2px solid var(--ink);white-space:nowrap;border-radius:999px;grid-area:rs;padding:2px 14px}.room.closed .rs{color:var(--muted);text-shadow:none;background:#e2eaf5}.form-modal .modal{text-align:left;width:min(420px,100% - 32px)}.form-modal h2{text-align:center;margin:0 0 6px}.form-modal form{flex-direction:column;gap:10px;display:flex}.form-modal label{color:var(--muted);flex-direction:column;gap:4px;font-size:14px;font-weight:900;display:flex}.form-modal input{font-size:18px}.form-modal .form-err{min-height:20px;font-weight:900}.form-modal .actions{justify-content:center;gap:12px;display:flex}.lobby-left{flex-direction:column;gap:12px;width:min(560px,46%);padding:10px 16px 90px 14px;scroll-padding:14px 0 90px;display:flex;position:absolute;top:84px;bottom:12px;left:20px;overflow-y:auto}.lobby-left>*{flex-shrink:0}.lobby-left .share{border:3px solid var(--ink);background:#fffffff2;border-radius:14px;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0;padding:8px 12px;font-size:13px;line-height:1.6;display:flex}.lobby-left .share code{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--navy);background:var(--sky-soft);border:2px solid var(--ink);border-radius:999px;flex:1 1 0;margin:0;padding:2px 12px;font:700 13px Noto Sans TC,sans-serif;overflow:hidden}.lobby-left .share button{flex:none;margin:0}.lobby-left table.lobby{border:3px solid var(--ink);box-shadow:var(--shadow);background:#fffffff2;border-radius:16px;margin:0;padding:2px 10px 4px}.lobby-left table.lobby td{white-space:nowrap}.lobby-left h4{font-family:var(--display);font-synthesis:none;color:#fff;text-shadow:var(--o2);margin:4px 0 0;font-size:24px;font-weight:400}.lobby-left .kart-cards{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:14px 12px;padding:4px;position:static}.lobby-left .kart-cards button{height:140px}.lobby-left .kart-cards .face{height:98px}.lobby-left .kart-shot img{max-width:100px;max-height:94px}.lobby-left .kart-cards .nm{height:36px;font-size:17px}.lobby-side{flex-direction:column;gap:14px;width:350px;display:flex;position:absolute;top:84px;bottom:92px;right:24px;overflow-y:auto}.room-card{border:3px solid var(--ink);box-shadow:var(--shadow);background:#fffffff2;border-radius:16px;padding:4px 14px}.room-card .row.setting{margin:8px 0}.room-card .row.setting>label{min-width:52px}.room-card .seg button{padding:4px 12px}.room-card>p{margin:0 0 8px;font-size:13px}button.map-pick{align-items:center;gap:6px;margin:0;display:inline-flex}button.map-pick .icon{width:16px;height:16px}.lobby-stats .char-panel h3{font-size:38px}.lobby-screen>.actions{flex-wrap:wrap;justify-content:flex-end}.lobby-screen>.actions .hint{text-align:right;background:0 0;flex-basis:100%;order:-1;padding:0;font-size:14px;font-weight:700}.lobby-screen>.actions .hint>span{background:#fffc;border-radius:8px;padding:3px 12px}.lobby-screen:has(>.actions .hint)>.lobby-side{bottom:126px}.map-modal .modal{text-align:left;width:min(1100px,100% - 32px);max-width:none;height:min(640px,100% - 32px)}.map-modal h2{text-align:center;margin:0}.map-modal-body{flex:1;grid-template-columns:1fr 360px;gap:18px;min-height:0;display:grid}.map-modal .track-cards{padding:12px;position:static}.map-modal .track-slot{overflow-y:auto}@media (width<=1100px),(height<=640px){.lobby-side{width:290px;bottom:84px}.lobby-stats .char-panel h3{font-size:30px}.map-modal-body{grid-template-columns:1fr 300px}}@media (height<=480px){.form-card{top:62px;left:12px}.room-hint{display:none}.room-list{top:56px;bottom:64px;left:4px}#ui>.screen.lobby-screen{background:linear-gradient(#8fd0f0 0%,#c4e6f8 58%,#eaf6ff 100%)}.lobby-left{width:calc(100% - 320px);padding-bottom:70px;top:56px;bottom:0;left:4px}.lobby-side{width:304px;top:56px;bottom:64px;right:8px;-webkit-mask-image:linear-gradient(#000 calc(100% - 22px),#0000);mask-image:linear-gradient(#000 calc(100% - 22px),#0000)}.room-card .seg button{padding:4px 8px;font-size:14px}.lobby-screen>.actions .hint{flex-basis:auto;order:0}.lobby-screen:has(>.actions .hint)>.lobby-side{bottom:64px}.map-modal-body{grid-template-columns:1fr}.map-modal .track-slot{display:none}}.pause .modal{text-align:left;flex-direction:row;align-items:flex-start;gap:26px;max-width:min(880px,100% - 32px)}.pause-main{flex-direction:column;flex:none;gap:10px;width:230px;display:flex}.pause-main h2,.leave-modal h2{text-align:center;margin:0 0 4px}.pause-main p{text-align:center;margin:0;font-size:13px}.pause-main button{margin:0}.pause-side{border-left:3px dashed var(--line);flex:1;min-width:0;padding-left:24px}.pause-side h3{color:var(--muted);margin:4px 0 10px;font-size:15px}.leave-modal .modal{width:min(420px,100% - 32px)}.leave-modal p{margin:4px 0 10px}.leave-modal .actions{justify-content:center;gap:12px;display:flex}@media (width<=700px) and (height>=481px){.pause .modal{flex-direction:column;align-items:stretch}.pause-main{width:auto}.pause-side{border-left:0;border-top:3px dashed var(--line);padding:12px 0 0}}.results-left{border:3px solid var(--ink);width:min(560px,48%);max-height:calc(100% - 188px);box-shadow:var(--shadow);background:#fffffff2;border-radius:20px;padding:4px 16px 8px;position:absolute;top:92px;left:24px;overflow-y:auto}.results-left table.results{margin:0}table.results caption.dnf-note{caption-side:bottom;text-align:left;color:var(--muted);padding:8px 6px 0;font-size:13px;font-weight:700}table.standings tr:not(:first-child){animation:row-in .36s var(--pop) both}@keyframes row-in{0%{opacity:0;transform:translate(-40px)}}.results-side{width:380px;position:absolute;top:92px;right:24px}.my-card{border:3px solid var(--ink);box-shadow:var(--shadow);animation:desc-pop .3s var(--pop) .45s both;background:#fffffff2;border-radius:20px;padding:14px 20px 16px}.my-card .my-result{font-family:var(--display);font-synthesis:none;color:#fff;text-shadow:var(--o4);margin:0;font-size:30px;font-weight:400}.my-card .my-result b{font:800 80px/1 var(--num);color:var(--sun);vertical-align:-8px;margin:0 6px}.my-card .my-line{color:var(--navy);margin:6px 0 0;font-size:18px;font-weight:900}.my-card .reward{border-top:3px dashed var(--line);margin-top:12px;padding-top:10px;font-size:16px;line-height:1.6}.my-card .reward button{margin:8px 0 0;display:block}.board-screen .track-cards{right:620px}.board-screen .track-cards button.sel:before{content:none}.board-screen .track-cards button.sel .laps{right:6px}.board-side{flex-direction:column;width:570px;display:flex;position:absolute;top:92px;bottom:24px;right:24px}.board-panel{min-height:0;animation:desc-pop .22s var(--pop);flex-direction:column;display:flex}.board-panel h3{font-family:var(--display);font-synthesis:none;color:#fff;text-shadow:var(--o4);margin:0 0 8px;font-size:34px;font-weight:400;line-height:1.15}.board-list{border:3px solid var(--ink);min-height:0;box-shadow:var(--shadow);background:#fffffff2;border-radius:18px;padding:4px 14px 8px;overflow-y:auto}.board-list table.results{margin:0}.board-list>p{margin:10px 4px}table.board td:nth-child(2),table.board td:nth-child(3){white-space:nowrap}table.board button{margin:0}@media (prefers-reduced-motion:reduce){table.standings tr,.my-card,.board-panel{animation:none}}@media (width<=1100px),(height<=640px){.results-left{width:min(500px,52%);max-height:calc(100% - 180px)}.results-side{width:330px}.my-card .my-result b{font-size:64px}.board-screen .track-cards{right:470px}.board-side{width:430px}table.board .cn{display:none}}@media (height<=480px){.results-left{width:calc(100% - 330px);max-height:calc(100% - 66px);top:58px;left:8px}.results-screen>.actions{flex-wrap:wrap;justify-content:flex-end;width:300px}.results-side{width:300px;top:58px;right:12px}.my-card{padding:8px 14px 10px}.my-card .my-result{font-size:22px}.my-card .my-result b{vertical-align:-4px;font-size:46px}.my-card .my-line{font-size:15px}.my-card .reward{margin-top:6px;padding-top:6px;font-size:14px}.board-screen .track-cards{right:410px}.board-side{width:396px;top:56px;bottom:8px;right:8px}.board-panel h3{margin-bottom:4px;font-size:22px}}@media (width<=700px) and (height>=481px){#ui>.screen.step{pointer-events:auto;background:linear-gradient(#8fd0f0 0%,#c4e6f8 58%,#eaf6ff 100%);flex-direction:column;gap:10px;padding:12px 12px 0;display:flex;overflow:hidden}.screen.step>.top,.room-hint,.form-card{flex:none;position:static}.wallet{top:20px;right:12px}.screen.step>.top{flex-wrap:wrap;gap:6px 10px}.screen h2.step-title{text-shadow:var(--o2), 0 4px 0 var(--ink);white-space:nowrap;font-size:24px}.crumbs{flex-wrap:wrap}.crumbs>span{white-space:nowrap;font-size:13px}.form-card{width:auto}.room-hint{align-self:flex-start}.mode-cards,.kart-cards,.track-cards,.garage-left,.shop-cards,.results-left,.room-list,.lobby-left{flex:auto;width:auto;min-height:0;max-height:none;margin:0;padding:10px 14px 14px;position:static;overflow-y:auto;-webkit-mask-image:linear-gradient(#000 calc(100% - 22px),#0000);mask-image:linear-gradient(#000 calc(100% - 22px),#0000)}.kart-cards,.track-cards{grid-template-columns:repeat(2,1fr);align-content:start}.lobby-left .kart-cards{flex:none;padding:4px;overflow:visible;-webkit-mask-image:none;mask-image:none}.kart-cards button.is-focus{transform:scale(1.04)rotate(-1deg)}.track-cards button.is-focus{transform:translateY(-2px)scale(1.03)rotate(-1deg)}.kart-cards button.is-focus:after,.track-cards button.is-focus:after{inset:-6px}.garage-left .seg button{padding:4px 10px}.garage-left .row.chars{flex-wrap:nowrap;align-self:stretch;padding:4px 4px 10px;overflow-x:auto}.garage-left .row.chars button{flex:none}.shop-cards{--cols:2}.results-left{flex-grow:0}.lobby-left table.lobby{display:block;overflow-x:auto}.char-side,.track-side,.shop-side,.board-side,.results-side,.lobby-side{border-top:3px solid var(--ink);background:#fffffff7;border-radius:22px 22px 0 0;flex:none;width:auto;max-height:40%;margin:0 -12px;padding:12px 16px;position:static;overflow-y:auto;box-shadow:0 -6px 16px #1f3a6826}:is(.char-side,.track-side,.shop-side,.board-side,.results-side,.lobby-side)>*{flex-shrink:0}.track-slot{overflow:visible}.track-side .track-panel .map-thumb{display:none}.track-side .row.setting{order:-1}.char-side .char-panel h3,.lobby-stats .char-panel h3{font-size:34px}.track-panel h3{margin-top:0;font-size:28px}.screen.step>.actions{background:#fffffff7;flex:none;order:9;justify-content:flex-end;margin:-10px -12px 0;padding:8px 12px 12px;position:static}.screen.step:not(:has(>:is(.char-side,.track-side,.shop-side,.board-side,.results-side,.lobby-side)))>.actions{border-top:3px solid var(--ink);border-radius:22px 22px 0 0}.map-modal-body{grid-template-columns:1fr}.map-modal .track-slot{display:none}}.menu button{background:var(--g-sun);color:var(--navy);text-shadow:0 2px #ffffffb3}.menu button:nth-child(4n+1):not(.is-focus) .ico{background:#ffd9d3}.menu button:nth-child(4n+2):not(.is-focus) .ico{background:#d6eefa}.menu button:nth-child(4n+3):not(.is-focus) .ico{background:#dcf5e0}.menu button:nth-child(4n+4):not(.is-focus) .ico{background:var(--cream)}.menu button.is-focus:not(:disabled){background:var(--go-focus)}.menu button .ico{border:2.5px solid var(--ink);background:#ffffffd9;border-radius:13px;flex:none;place-items:center;width:48px;height:48px;display:grid}.menu button:disabled .ico{filter:grayscale();opacity:.6;border-color:#b9c7dc}.menu button .ico img{object-fit:contain;filter:drop-shadow(0 2px #1f3a6840);width:40px;height:40px}.icon{vertical-align:-.14em;flex:none;width:1em;height:1em}button{font:inherit;font-family:var(--display);font-synthesis:none;color:var(--navy);background:var(--g-white);border:3px solid var(--ink);box-shadow:var(--lift);cursor:pointer;transition:transform .2s var(--pop), box-shadow 80ms, background .15s;-webkit-tap-highlight-color:transparent;border-radius:14px;margin:3px 4px 8px 0;padding:5px 14px 7px;font-size:16px;line-height:1.3;position:relative}button .soon{background:var(--navy);color:#fff;text-shadow:none;white-space:nowrap;border-radius:999px;margin-left:6px;padding:2px 8px;font-family:Noto Sans TC,sans-serif;font-size:12px;font-weight:700}button.sel{background:var(--sky-soft);color:var(--navy)}button.primary{background:var(--g-sun);color:var(--navy);text-shadow:0 2px #ffffffb3;padding:7px 28px 9px;font-size:22px}button.danger{background:var(--g-coral);color:#fff;text-shadow:var(--o2)}button.back{color:var(--muted)}button.small{box-shadow:inset 0 2px 0 #fff9, 0 3px 0 var(--ink), 0 6px 12px #1f3a682e;border-width:2.5px;border-radius:11px;margin-bottom:6px;padding:2px 11px 4px;font-size:14px}button.primary.small{font-size:15px}button:disabled{cursor:not-allowed}button:disabled:not(:where(.kart-cards,.track-cards,.part-cards,.shop-cards,.row.chars,.hud-upgrade,.seg,.tour-stops) button),.menu button:disabled{color:#9aabc6;text-shadow:none;background:#e8eef6;border-color:#b9c7dc;box-shadow:0 3px #b9c7dc}:where(.kart-cards,.track-cards,.part-cards,.shop-cards,.row.chars,.hud-upgrade,.seg,.tour-stops) button:disabled{opacity:.5;filter:grayscale(.6)}button.sel:disabled{opacity:1;filter:none;cursor:default}button.sel:disabled:not(:where(.kart-cards,.track-cards,.part-cards,.shop-cards,.row.chars,.hud-upgrade,.seg,.tour-stops) button){background:var(--sky-soft);color:var(--navy);border-color:var(--ink);box-shadow:0 3px 0 var(--ink)}.is-focus{z-index:1}button.is-focus,summary.is-focus{transform:translateY(-3px)scale(1.04)}button.is-focus:not(:disabled):not(:where(.kart-cards,.track-cards,.part-cards,.shop-cards,.row.chars,.hud-upgrade,.seg,.tour-stops) button){background:var(--back-focus);color:var(--navy);text-shadow:none}button.primary.is-focus:not(:disabled){background:var(--go-focus);color:var(--navy);text-shadow:0 2px #ffffffb3}button.danger.is-focus:not(:disabled){background:var(--danger-focus);color:#fff;text-shadow:var(--o2)}button.is-focus:disabled:not(:where(.kart-cards,.track-cards,.part-cards,.shop-cards,.row.chars,.hud-upgrade,.seg,.tour-stops) button){color:#8193b3;background:#f1f5fa}button.is-focus:after,summary.is-focus:after{content:"";box-shadow:0 0 0 3px var(--ink);pointer-events:none;border:3px solid #fff;border-radius:20px;animation:1.1s ease-out infinite focus-ring;position:absolute;inset:-9px}@keyframes focus-ring{0%{opacity:1;transform:scale(.97)}to{opacity:0;transform:scale(1.1)}}button:active:not(:disabled):not(:where(.kart-cards,.track-cards,.part-cards,.shop-cards,.row.chars,.hud-upgrade,.seg,.tour-stops) button),button.is-press:not(:where(.kart-cards,.track-cards,.part-cards,.shop-cards,.row.chars,.hud-upgrade,.seg,.tour-stops) button){box-shadow:var(--lift-pressed);transition:transform 50ms,box-shadow 50ms;transform:translateY(4px)scale(1.02)}.shake{animation:.36s shake}@keyframes shake{20%{translate:-8px}40%{translate:7px}60%{translate:-5px}80%{translate:3px}}button:focus-visible,summary:focus-visible{outline:none}input,select{font:inherit;color:var(--fg);border:3px solid var(--ink);background:#fff;border-radius:12px;padding:5px 10px;box-shadow:inset 0 3px #1f3a6814}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF6B5A' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;background-size:16px 16px;padding-right:36px}select option{color:var(--navy);background:#fff}input:focus-visible,select:focus-visible,input.is-focus,select.is-focus{box-shadow:0 0 0 4px var(--sun);outline:none}input[type=range]{appearance:none;border:3px solid var(--ink);height:14px;box-shadow:none;cursor:pointer;background:#fff;border-radius:999px;padding:0}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--g-sun);border:3px solid var(--ink);width:24px;height:24px;box-shadow:0 2px 0 var(--ink);border-radius:50%}input[type=range]::-moz-range-thumb{background:var(--g-sun);border:3px solid var(--ink);border-radius:50%;width:18px;height:18px}input[type=range]:focus-visible,input[type=range].is-focus{box-shadow:0 0 0 4px var(--sun)}@media (prefers-reduced-motion:reduce){button,summary{transition:background .15s}button.is-focus,summary.is-focus{transform:none}.is-focus:after,.shake{animation:none}}.seg{border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);background:#fff;border-radius:999px;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--muted);box-shadow:none;background:0 0;border:0;border-radius:999px;margin:0;padding:4px 16px;font-size:15px}.seg button.sel{background:var(--navy);color:#fff;box-shadow:none}.seg button.is-focus:not(.sel){background:var(--sky-soft);color:var(--navy)}.seg button.is-focus:after{border-radius:999px;inset:-6px}.row{flex-wrap:wrap;align-items:center;gap:4px;margin:8px 0;display:flex}.row.setting{gap:10px;margin:10px 0}.row.setting>label{min-width:56px}.row.setting>button{margin:0 0 4px}.row>label{min-width:96px;color:var(--sky-deep);font-weight:700}.row select{flex:1;min-width:0}.row.chars button{border:2px solid var(--line);background:#fff;border-radius:14px;align-items:center;min-width:92px;min-height:58px;font-weight:900;display:inline-flex;box-shadow:0 3px #d6e8f6}.row.chars button.sel{background:var(--cream);color:var(--navy);border:3px solid var(--sun);box-shadow:0 0 0 3px #ffd23f59,0 3px #e8c25a}label.check{min-width:0;color:var(--fg);gap:4px;margin-right:10px;display:inline-flex}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;margin:10px 0;padding:10px 14px}.form{flex-direction:column;gap:8px;max-width:280px;display:flex}.muted{color:var(--muted)}.errors{color:var(--coral-deep);white-space:pre-wrap;font-size:13px}code{color:var(--coral-deep)}table.results{border-collapse:separate;border-spacing:0 5px;width:100%;margin:8px 0 14px}table.results th{text-align:left;color:var(--muted);padding:2px 10px;font-size:13px;font-weight:700}table.results td{text-align:left;background:var(--panel);font-variant-numeric:tabular-nums;padding:7px 10px}table.results td:first-child{font-family:var(--num);color:var(--coral);border-radius:10px 0 0 10px;font-size:20px;font-style:italic;font-weight:800}table.results td:last-child{border-radius:0 10px 10px 0}table.results tr:nth-child(2) td:first-child:before{content:"👑";margin-right:4px;font-style:normal}table.results tr.me td{background:linear-gradient(180deg, #fff1a8, var(--sun));color:var(--navy);font-weight:900}table.results tr.me td:first-child{color:var(--navy)}.stats{margin:8px 0}.stat{grid-template-columns:48px 1fr 28px;align-items:center;gap:8px;font-size:14px;display:grid}.stat .bar{background:#dcecf8;border-radius:5px;height:9px;overflow:hidden}.stat .bar i{background:linear-gradient(90deg, #ffe27a, var(--sun), #ffa53a);border-radius:5px;height:100%;display:block}.profile-box .player-line{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.title-tag{color:var(--coral-deep);box-shadow:none;background:#ffe1dc;border:0;border-radius:6px;padding:1px 8px;font-size:12px;font-weight:700}.toast{border:3px solid var(--ink);color:var(--navy);box-shadow:var(--shadow);z-index:50;pointer-events:none;background:#fff;border-radius:999px;padding:9px 22px;font-size:18px;font-weight:900;position:fixed;top:18%;left:50%;transform:translate(-50%)}.hud{color:var(--navy);font-weight:800;position:fixed;inset:0;pointer-events:none!important}.hud.behind-intro{opacity:.01}.hud-tl{flex-direction:column;align-items:flex-start;gap:6px;display:flex;position:absolute;top:14px;left:22px}.hud-rank,.hud-center,.hud-gauge b{font-family:var(--num);background:linear-gradient(180deg, #fff6b8 0%, var(--sun) 40%, var(--coral) 100%);color:#0000;-webkit-text-stroke:6px var(--ink);paint-order:stroke fill;text-shadow:none;filter:drop-shadow(0 4px 0 var(--ink));-webkit-background-clip:text;background-clip:text;font-style:italic;font-weight:800}.hud-rank,.hud-gauge b{color:#fff;-webkit-text-stroke:5px var(--ink);background:0 0}.hud-rank{filter:drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff) drop-shadow(0 2px 0 #fff) drop-shadow(0 -2px 0 #fff) drop-shadow(0 4px 0 var(--ink));padding-right:10px;font-size:84px;line-height:.95}.hud-rank small{font-size:40px}.hud-lap,.hud-timer{font-family:var(--num);border:3px solid var(--ink);color:var(--navy);box-shadow:0 4px 0 var(--ink);font-variant-numeric:tabular-nums;background:#fff;border-radius:999px;padding:1px 16px 0 14px;font-size:22px;font-style:italic}.hud-timer:before{content:"";vertical-align:-2px;background:var(--navy);width:18px;height:18px;margin-right:6px;display:inline-block;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='13.5' r='7.5'/%3E%3Cpath d='M12 13.5V9.5M9.5 2.5h5M12 2.5v3.5M18.5 6.5l1.5-1.5'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='13.5' r='7.5'/%3E%3Cpath d='M12 13.5V9.5M9.5 2.5h5M12 2.5v3.5M18.5 6.5l1.5-1.5'/%3E%3C/svg%3E") 50%/contain no-repeat}.hud-lap:empty,.hud-timer:empty,.hud-rank:empty{display:none}.hud-tr{flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;top:16px;right:22px}.hud-slots{gap:10px;display:flex}.hud-item{width:80px;height:80px;text-shadow:none;background:linear-gradient(180deg, #fff, var(--sky-soft));box-shadow:0 0 0 3px var(--ink), 0 6px 0 2px var(--ink);border:4px solid #fff;border-radius:18px;justify-content:center;align-items:center;display:flex;position:relative}.hud-item:before{content:"";pointer-events:none;border:2px dashed #7ec5e8b3;border-radius:11px;position:absolute;inset:5px}.hud-item-icon{object-fit:contain;filter:drop-shadow(0 2px 2px #1f3a684d);width:62px;height:62px}.hud-item-icon:not([src]){display:none}.hud-item.has{border-color:var(--sun);box-shadow:0 0 0 3px var(--ink), 0 6px 0 2px var(--ink), 0 0 18px #ffd23fcc;background:linear-gradient(#fffbe6,#fff0b3);animation:.9s ease-in-out infinite alternate itemPulse}@keyframes itemPulse{to{box-shadow:0 0 0 3px var(--ink), 0 6px 0 2px var(--ink), 0 0 30px #ff6b5abf}}.hud-item.rolling{background:radial-gradient(circle at 50% 35%, #ffd6cf, var(--coral) 85%);border-color:#fff;animation:.14s ease-in-out infinite alternate itemRoll}@keyframes itemRoll{to{transform:scale(1.08)rotate(-5deg)}}.hud-item .hud-charges{min-width:34px;height:26px;font:800 16px var(--num);color:#fff;text-shadow:var(--o2);background:var(--coral);border:2px solid var(--ink);border-radius:8px;place-items:center;padding:0 4px;display:grid;position:absolute;top:-8px;left:-8px}.hud-item .hud-charges:empty{display:none}.hud-item:after{content:attr(data-key);width:24px;height:24px;font:800 14px var(--num);color:var(--navy);background:var(--sun);border:2px solid var(--ink);border-radius:7px;place-items:center;display:grid;position:absolute;bottom:-6px;right:-6px}.hud-item-hint{border:2.5px solid var(--ink);box-shadow:0 3px 0 var(--ink);color:var(--navy);background:#fff;border-radius:999px;padding:3px 12px;font-size:15px}.hud-item-hint:empty{display:none}.hud-warm{opacity:.01;pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;top:16px;right:22px}.hud-speedlines{pointer-events:none;opacity:0;background:repeating-conic-gradient(at 50% 55%,#ffffff8c 0deg .6deg,#0000 .6deg 7deg);transition:opacity .15s;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 50% 55%,#0000 38%,#000 80%);mask-image:radial-gradient(at 50% 55%,#0000 38%,#000 80%)}.hud-speedlines.on{opacity:.8;animation:.12s steps(2,end) infinite speedlines}@keyframes speedlines{to{transform:rotate(2.5deg)scale(1.02)}}.hud-board{flex-direction:column;gap:4px;margin-top:10px;font-size:15px;display:flex}.hud-board>div{border:2.5px solid var(--ink);min-width:170px;color:var(--navy);box-shadow:0 3px 0 var(--ink);white-space:nowrap;background:#fff;border-radius:10px;padding:2px 14px 2px 10px}.hud-board>div b{min-width:26px;font-family:var(--num);color:var(--coral);font-size:20px;font-style:italic;display:inline-block}.hud-board>div.me{background:var(--g-coral);color:#fff;text-shadow:var(--o2)}.hud-board>div.me b{color:#fff}.av{vertical-align:middle;background:var(--sky-soft);width:28px;height:28px;box-shadow:0 0 0 1px var(--sky);color:var(--navy);border:2px solid #fff;border-radius:50%;flex:none;justify-content:center;align-items:center;margin-right:6px;font-size:13px;font-weight:900;display:inline-flex;overflow:hidden}.av img{object-fit:cover;width:100%;height:100%}.hud-board>div{align-items:center;height:36px;display:flex}.hud-board .zs{margin-left:6px}.hud-board .zs .icon{margin:0 2px 0 1px}.av.big{border-width:3px;width:84px;height:84px;margin:0 auto 4px;font-size:34px}.hud-br{flex-direction:column;align-items:flex-end;display:flex;position:absolute;bottom:16px;right:24px}.hud-gauge{width:210px;height:124px;position:relative}.hud-gauge svg{position:absolute;inset:0;overflow:visible}.hud-gauge b{text-align:center;font-variant-numeric:tabular-nums;font-size:54px;line-height:1;position:absolute;bottom:22px;left:0;right:0}.hud-gauge span{text-align:center;font:italic 800 17px var(--num);color:#fff;text-shadow:var(--o2);position:absolute;bottom:2px;left:0;right:0}.hud-drift{color:#fff;min-height:26px;text-shadow:var(--o2);font-size:20px;font-style:italic}.hud-drift.tier1{color:#5cc8ff}.hud-drift.tier2{color:#ff9f1c}.hud-drift.tier3{color:#c77dff}.hud-bl{align-items:flex-end;gap:12px;display:flex;position:absolute;bottom:20px;left:20px}.hud-mini{filter:drop-shadow(0 2px 4px #1f3a6880);width:190px;height:190px}.hud-panel{border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink);white-space:pre-line;background:#fff;border-radius:12px;padding:6px 12px;font-size:15px}.hud-panel:empty{display:none}.hud-panel .icon{margin-right:6px}.hud-center{white-space:nowrap;-webkit-text-stroke:0;--edge:5px;filter:drop-shadow(var(--edge) 0 0 var(--ink)) drop-shadow(calc(-1 * var(--edge)) 0 0 var(--ink)) drop-shadow(0 var(--edge) 0 var(--ink)) drop-shadow(0 calc(-1 * var(--edge)) 0 var(--ink)) drop-shadow(0 4px 0 var(--ink));font-size:140px;position:absolute;top:30%;left:50%;transform:translate(-50%,-50%)}.hud-upgrade{flex-wrap:wrap;justify-content:center;gap:10px;width:640px;animation:.2s ease-out upgradeIn;display:flex;position:absolute;bottom:96px;left:50%;transform:translate(-50%)}.hud-upgrade .title{text-align:center;color:#fff;width:100%;text-shadow:var(--o2);font-size:13px}.hud-upgrade button{border:3px solid var(--ink);width:200px;height:64px;box-shadow:0 4px 0 var(--ink);color:var(--navy);font:inherit;text-align:left;cursor:pointer;background:#fff;border-radius:12px;align-items:center;gap:8px;margin:0;padding:0 10px;animation:.5s 10s infinite alternate upgradeNudge;display:flex}.hud-upgrade button .num{background:var(--sun);height:28px;color:var(--navy);text-align:center;border-radius:50%;flex:0 0 28px;font-weight:800;line-height:28px}.hud-upgrade button .txt{flex-direction:column;font-size:14px;line-height:1.2;display:flex}.hud-upgrade button .txt small{opacity:.8;font-size:12px}@keyframes upgradeIn{0%{opacity:0;transform:translate(-50%,40px)}}@keyframes upgradeNudge{to{border-color:var(--coral);background:#fff4cf}}.hud-upgrade:empty{display:none}.hud-smoke{pointer-events:none;opacity:0;background:radial-gradient(at 50% 62%,#d9cbb800 0%,#d9cbb859 35%,#beb2a5d9 100%);transition:opacity .25s;position:absolute;inset:0}.hud-blind{opacity:0;background:#fff6e0;border-radius:4px;transition:transform .55s cubic-bezier(.5,0,.9,.5),opacity .55s step-end;position:absolute;inset:26% 22% 10%;transform:translate(12%,135%)rotate(26deg);box-shadow:0 14px 34px #00000080}.hud-blind.on{opacity:.93;transition:none;animation:.24s cubic-bezier(.2,1.6,.5,1) flyerSlap;transform:rotate(-3deg)}@keyframes flyerSlap{0%{opacity:0;transform:scale(1.7)rotate(-16deg)}50%{opacity:.93}}.hud-blind.warm{opacity:.01;transition:none;transform:rotate(-3deg)}.hud-blind .sheet{border-radius:inherit;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;position:absolute;inset:0}.hud-blind:not(.warm) .sheet:not(.pick){visibility:hidden}.hud-blind .tape{background:#fff9;width:16%;height:9%;position:absolute;top:-3%;box-shadow:0 1px 3px #00000026}.hud-blind .tape.l{left:-4%;transform:rotate(-32deg)}.hud-blind .tape.r{right:-4%;transform:rotate(32deg)}.hud-ink{pointer-events:none;opacity:0;transition:opacity .4s;position:absolute;inset:0}.hud-ink.on{opacity:1;transition:none;animation:.22s cubic-bezier(.2,1.5,.5,1) inkSlap}.hud-ink.on.fading{opacity:0;transition:opacity .7s}.hud-ink svg{width:100%;height:100%}.hud-ink .blots{fill:#15112a;fill-opacity:.94}.hud-ink .gloss{fill:#b0a6ec59}.hud-ink .drip{transform-box:fill-box;transform-origin:top;animation:2.6s ease-in both inkDrip}@keyframes inkSlap{0%{opacity:0;transform:scale(1.35)}}@keyframes inkDrip{0%{transform:scaleY(.2)}to{transform:scaleY(1.7)}}.hud-flash{opacity:0;background:#f5f0ff;position:absolute;inset:0}.hud-flash.on{animation:.5s ease-out boltFlash}@keyframes boltFlash{0%{opacity:.95}12%{opacity:.15}22%{opacity:.8}to{opacity:0}}.hud-warn{border:3px solid var(--ink);color:#fff;text-shadow:var(--o2);box-shadow:0 4px 0 var(--ink);background:#ff6b5af2;border-radius:999px;padding:6px 24px;font-size:28px;display:none;position:absolute;bottom:21%;left:50%;transform:translate(-50%)}.hud-warn>.icon{margin-right:6px}.hud-warn.on{animation:.36s steps(2,end) infinite warnBlink;display:block}.hud-warn.rear{bottom:3%}.hud-warn .dir{filter:drop-shadow(0 0 3px #1f3a68e6);width:40px;height:40px;margin-left:-20px;position:absolute;top:-80px;left:50%}.hud-warn .dir svg{width:40px;height:40px;display:block}.hud-warn .dir path{fill:var(--coral-deep);stroke:#fff;stroke-width:2.2px;stroke-linejoin:round}@keyframes warnBlink{to{background:#c8281ef2}}.hud-warn.typhoon{background:#547096f2}.hud-warn.typhoon.on{animation:.7s steps(2,end) infinite warnStorm}.hud-warn.typhoon .dir path{fill:#5d7fa8}@keyframes warnStorm{to{background:#324664f2}}.screen:has(>.actions){scroll-padding-bottom:96px}.screen .actions{z-index:2;background:linear-gradient(#fff0 0,#fffffff7 16px);flex-wrap:wrap;align-items:center;gap:8px;margin:14px -26px -22px;padding:16px 26px;display:flex;position:sticky;bottom:-22px}.screen .actions>button{margin:0}.map-thumb{box-sizing:border-box;aspect-ratio:16/9;object-fit:contain;background:50%/cover no-repeat;border-radius:8px;width:100%}.map-thumb.painted{padding:22% 2px 2px 66%}.ghost-note{color:var(--coral-deep);font-weight:700}.reward .name-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.reward .name-form>div{flex-basis:100%}.reward .name-form input{flex:1;min-width:0;margin:0}.guest-name{align-items:center;gap:8px;margin-bottom:8px;font-weight:700;display:flex}.guest-name input{width:11em}.form-err{color:var(--coral-deep);min-height:1.4em;font-weight:700}.controls{text-align:left;color:var(--fg);grid-template-columns:auto 1fr;align-items:center;gap:6px 12px;font-size:15px;font-weight:700;display:grid}.controls .keys{flex-wrap:wrap;gap:4px;display:flex}.controls kbd{min-width:26px;color:var(--navy);border:1px solid var(--line);font:800 13px var(--num);text-align:center;background:#fff;border-radius:6px;padding:2px 7px;display:inline-block;box-shadow:0 2px #b9d3ea}.controls .rule{color:var(--coral-deep);grid-column:1/-1;margin:4px 0 0}.modal{border:3px solid var(--ink);max-width:min(520px,100% - 32px);max-height:calc(100% - 32px);box-shadow:var(--shadow);text-align:center;background:#fff;border-radius:24px;flex-direction:column;align-items:stretch;gap:6px;padding:20px 28px;display:flex;overflow-y:auto}.modal-layer{inset:0;top:var(--vv-top,0px);height:var(--vv-h,100dvh);padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:40;background:#1f3a6859;justify-content:center;align-items:center;animation:.18s ease-out both layer-in;display:flex;position:fixed;bottom:auto;container:modal/size}.modal-layer>.modal{animation:modal-in .28s var(--pop) both}@keyframes layer-in{0%{opacity:0}}@keyframes modal-in{0%{transform:scale(.88)}}@media (prefers-reduced-motion:reduce){.modal-layer,.modal-layer>.modal{animation:none}}.name-modal .modal{width:min(480px,100% - 32px);margin-top:24px;padding-top:44px;position:relative;overflow:visible}.name-modal .ribbon{font-family:var(--display);font-synthesis:none;color:#fff;text-shadow:var(--o2);white-space:nowrap;background:var(--g-coral);border:3px solid var(--ink);box-shadow:none;border-radius:16px;padding:2px 26px 6px;font-size:32px;position:absolute;top:-30px;left:50%;transform:translate(-50%)rotate(-3deg)}.name-modal .rank{font:800 60px/1 var(--num);color:var(--sun);text-shadow:var(--o4);margin:4px 0 8px}.name-modal .rank small{font-size:24px}.name-modal p{margin:4px 0;line-height:1.6}.name-modal .note{font-size:12px}.name-modal .actions{justify-content:center;gap:12px;margin-top:8px;display:flex}.name-modal .form-err{min-height:22px;font-weight:900}@container modal (height<=480px){.name-modal .modal{flex-flow:wrap;justify-content:center;align-items:center;gap:2px 14px;margin-top:0;padding:10px 20px 0;scroll-padding-bottom:64px;overflow-y:auto}.name-modal .modal>*,.name-modal form>*{flex-basis:100%}.name-modal form{display:contents}.name-modal .modal>.ribbon,.name-modal .modal>.rank{flex-basis:auto}.name-modal .ribbon{padding:0 18px 3px;font-size:22px;position:static;transform:rotate(-3deg)}.name-modal .rank{margin:0;font-size:40px}.name-modal .rank small{font-size:18px}.name-modal p{margin:0;line-height:1.45}.name-modal .field{margin:4px auto 0}.name-modal .field input{padding:2px 54px 2px 16px;font-size:22px}.name-modal .form-err{min-height:0}.name-modal .actions{z-index:1;background:#fff;margin-top:0;padding-top:4px;position:sticky;bottom:0}.name-modal .note{padding-bottom:10px}.name-modal .done-name{margin:0;font-size:32px}}.field{width:min(330px,100%);margin:12px auto 4px;position:relative}.field input{width:100%;font-family:var(--display);font-synthesis:none;text-align:center;background:var(--cream);border-radius:16px;padding:6px 54px 6px 16px;font-size:28px}.field input:focus{background:#fff}.field.bad input{border-color:var(--coral-deep);box-shadow:0 0 0 4px #ff6b5a59}.field .count{font:800 14px var(--num);color:var(--muted);position:absolute;top:50%;right:14px;transform:translateY(-50%)}.done-name{font-family:var(--display);font-synthesis:none;color:#fff;text-shadow:var(--o4);margin:6px 0 10px;font-size:42px}.settings-modal .modal{text-align:left;width:min(560px,100% - 32px)}.settings-modal h2{text-align:center;margin:0 0 6px}.settings-modal .modal>.seg{align-self:center;margin-bottom:6px}.settings-body{min-height:250px}.settings-modal .hint{margin:-4px 0 8px 66px;font-size:13px}.settings-modal .actions{justify-content:center;margin-top:8px;display:flex}@media (height<=480px){.settings-body{min-height:0}.settings-modal h2{display:none}.settings-modal .actions{background:#fff;padding-top:8px;position:sticky;bottom:0}}@media (height<=400px){.settings-modal .modal{max-height:calc(100% - 16px);padding:12px 24px}.settings-modal .row.setting{margin:4px 0}.settings-modal .actions{margin-top:4px;padding-top:4px}}.reward{color:var(--sun-deep);font-size:18px;font-weight:900}.reward button{margin-left:8px}.levelup{color:var(--fg);margin-top:6px}table.results tr.dnf td:last-child{color:var(--muted)}table.results tr.me.dnf td:last-child{color:#7a5a00}table.results th{white-space:nowrap}table.results.lobby td:first-child{color:inherit;font-family:inherit;font-size:16px;font-style:normal}table.results.lobby tr td:first-child:before{content:none}table.results.lobby .title-tag{margin-left:6px}.share code{margin:0 6px}.hud-center.loading{color:#fff;-webkit-text-stroke:0;filter:none;text-shadow:var(--o2), 0 4px 0 var(--ink);background:0 0;font-size:40px;font-style:normal}.hud-center small{text-align:center;color:#fff;-webkit-text-fill-color:#fff;-webkit-text-stroke:0;font-size:44px;font-style:normal;font-weight:700;display:block}.hud-center.loading small{font-size:24px}.hud-cutoff{border:2.5px solid var(--ink);color:#fff;text-shadow:var(--o2);box-shadow:0 3px 0 var(--ink);background:#ff6b5af2;border-radius:999px;padding:5px 18px;font-size:18px;display:none;position:absolute;top:16px;left:50%;transform:translate(-50%)}.hud-cutoff.on{display:block}.hud-cutoff.blink{animation:.5s steps(2,end) infinite alternate warnBlink}.hud-wrongway{background:var(--sun);border:3px solid var(--ink);color:var(--navy);text-shadow:none;box-shadow:0 5px 0 var(--ink);border-radius:999px;align-items:center;gap:10px;padding:8px 24px;font-size:30px;font-weight:900;display:none;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.hud-wrongway.on{display:flex}.hud-wrongway .icon{width:34px;height:34px}.hud-controls{border:3px solid var(--ink);width:max-content;max-width:min(560px,100% - 32px);box-shadow:0 5px 0 var(--ink);text-shadow:none;background:#fff;border-radius:14px;padding:12px 18px;display:none;position:absolute;bottom:150px;left:50%;transform:translate(-50%)}.hud-controls.on{display:block}.hud-rank.up{animation:.4s rankUp}@keyframes rankUp{50%{transform:scale(1.25)}}@media (height<=640px){.hud-upgrade{width:500px}.hud-upgrade button{width:160px;height:52px}.hud-rank{font-size:60px}.hud-rank small{font-size:30px}.hud-mini{width:130px;height:130px}}@media (height<=480px){.hud-board>div:not(.me){display:none}.hud-gauge{transform-origin:100% 100%;transform:scale(.6)}.hud-mini{width:110px;height:110px}.hud-controls{padding:4px 14px;top:calc(30% + 112px);bottom:auto}.hud-controls .controls>:not(.rule){display:none}.hud-controls .controls .rule{text-align:center;margin:0;font-size:14px}}@media (width<=700px) and (height>=481px){.hud-cutoff{text-align:center;padding:3px 14px;font-size:15px;line-height:1.35;top:14px}.hud-cutoff span{display:block}.hud-center{--edge:4px;font-size:96px;top:42%}.hud-center small{font-size:32px}.screen{width:auto;inset:8px}.hud-mini{width:110px;height:110px}.hud-rank{font-size:56px}.hud-gauge{transform-origin:100% 100%;transform:scale(.7)}}.intro{pointer-events:none;z-index:30;position:fixed;inset:0}.intro-veil{opacity:1;background:#000;position:absolute;inset:0}.intro-title{background:linear-gradient(90deg, var(--sky) 0%, #7ec5e8d9 70%, #7ec5e800);border-left:8px solid var(--coral);font-family:var(--num);color:#fff;-webkit-text-stroke:5px var(--ink);paint-order:stroke fill;filter:drop-shadow(0 4px #1f3a6859);padding:10px 34px 14px 26px;font-size:64px;font-style:italic;font-weight:900;transition:opacity .4s;position:absolute;bottom:14vh;left:6vw}.intro-skip{color:#fff;text-shadow:0 0 3px var(--navy), 0 2px 3px #1f3a68b3;opacity:.9;font-size:16px;font-weight:800;position:absolute;bottom:24px;right:28px}.intro.late .intro-title{opacity:0}#ui>.touch-controls{inset:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:fixed}.touch-controls .tc-btn,.touch-controls .tc-pause{pointer-events:auto;touch-action:none}.touch-controls .tc-btn{box-sizing:border-box;isolation:isolate;color:#fff;width:28%;height:50%;text-shadow:0 0 4px var(--navy), 0 2px 3px var(--navy);justify-content:center;align-items:center;font-size:24px;font-weight:900;line-height:1;display:flex;position:absolute}.touch-controls .tc-btn:before{content:"";z-index:-1;background:#ffffff14;border:3px solid #ffffff80;border-radius:22px;position:absolute;inset:5px}.touch-controls .tc-drift:before{background:#ff6b5a2e}.touch-controls .tc-gas:before{background:#6ed3a633}.touch-controls .tc-btn.on:before{background:#ffd23f73;border-color:#fff}.touch-controls .tc-item,.touch-controls .tc-back{align-items:flex-end;padding-bottom:8px;top:0}.touch-controls .tc-item{justify-content:flex-end;align-items:flex-start;padding:18px 22px 0 0}.touch-controls .tc-drift,.touch-controls .tc-gas{bottom:0}.touch-controls .tc-item,.touch-controls .tc-drift{left:0}.touch-controls .tc-back,.touch-controls .tc-gas{right:0}.touch-controls .tc-pause{background:var(--g-white);border:3px solid var(--ink);width:52px;height:40px;box-shadow:var(--lift);color:var(--navy);border-radius:999px;justify-content:center;align-items:center;margin-left:-26px;font-size:15px;font-weight:900;display:flex;position:absolute;top:8px;left:50%}.touch-controls .tc-wheel{background:#1f3a6833;border:3px solid #ffffffd9;border-radius:50%;width:44px;height:44px;margin-left:-22px;position:absolute;top:54px;left:50%}.touch-controls .tc-wheel i{background:var(--sun);transform-origin:50% 16px;border-radius:2px;width:4px;height:16px;margin-left:-2px;position:absolute;top:3px;left:50%}.touch-controls .tc-wheel.off i{background:#9aa7b8}.touch-controls:not([data-tilt=ask]) .tc-allow{display:none}.touch-controls .tc-allow{background:var(--g-white);border:3px solid var(--ink);box-shadow:var(--lift);color:var(--navy);white-space:nowrap;pointer-events:auto;border-radius:999px;padding:4px 14px;font-size:14px;font-weight:900;position:absolute;top:106px;left:50%;transform:translate(-50%)}.touch-controls .tc-why{box-sizing:border-box;color:#fff;text-align:center;background:#ff6b5aeb;border-radius:14px;width:min(440px,44% - 24px);padding:8px 14px;font-size:14px;font-weight:800;line-height:1.4;position:absolute;top:106px;left:50%;transform:translate(-50%)}.touch-controls .tc-why:empty{display:none}@media (height<=480px){.touch-controls .tc-why{width:max-content;max-width:min(540px,100% - 300px);padding:4px 12px;font-size:13px;line-height:1.35}#ui:has(>.hud.countdown)>.touch-controls :is(.tc-why,.tc-allow){top:calc(30% + 112px)}#ui:has(>.hud.countdown .hud-controls.on)>.touch-controls :is(.tc-why,.tc-allow){text-wrap:balance;max-width:calc(50% - 240px);top:54px;left:auto;right:calc(50% + 44px);transform:none}}.touch-controls .tc-rotate{display:none}@media (orientation:portrait){.touch-controls .tc-rotate{pointer-events:auto;color:#fff;background:#1f3a68d9;justify-content:center;align-items:center;font-size:22px;font-weight:900;display:flex;position:fixed;inset:0}}.turn-phone{display:none}@media (orientation:portrait) and (width<=700px) and (pointer:coarse){.turn-phone{z-index:100;background:var(--navy);color:#fff;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;display:flex;position:fixed;inset:0}.turn-phone .icon{width:76px;height:76px;animation:2.4s ease-in-out infinite turn-phone}.turn-phone p{margin:0;font:900 26px Noto Sans TC,sans-serif}.turn-phone p.sub{opacity:.8;font-size:15px;font-weight:700}}@keyframes turn-phone{0%,25%{transform:rotate(0)}55%,to{transform:rotate(-90deg)}}#ui:has(>.touch-controls) .hud .hud-br{align-items:center;bottom:8px;left:50%;right:auto;transform:translate(-50%)}#ui:has(>.touch-controls) .hud .hud-gauge{transform-origin:bottom}#ui:has(>.touch-controls) .hud .hud-bl{align-items:flex-start;inset:14px 128px auto auto}.hud-item[data-key=""]:after,.touch-controls[data-mode=stick] :is(.tc-gas,.tc-back,.tc-wheel,.tc-allow,.tc-why),.touch-controls[data-mode=tilt] .tc-stick{display:none}.touch-controls .tc-stick{pointer-events:auto;touch-action:none;width:46%;height:100%;position:absolute;top:0;left:0}.touch-controls .tc-ring{box-sizing:border-box;opacity:.45;pointer-events:none;background:#1f3a6838;border:3px solid #ffffff8c;border-radius:50%;width:112px;height:112px;margin:-56px 0 0 -56px;position:absolute;top:74%;left:120px}.touch-controls .tc-stick.on .tc-ring{opacity:1}.touch-controls .tc-knob{border:3px solid var(--ink);box-sizing:border-box;background:#ffffffd9;border-radius:50%;width:52px;height:52px;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%}.touch-controls[data-mode=stick] .tc-drift,.touch-controls[data-mode=stick] .tc-item{justify-content:center;align-items:center;width:124px;height:124px;padding:0;inset:auto 24px 22px auto}.touch-controls[data-mode=stick] .tc-item{width:96px;height:96px;font-size:20px;bottom:158px;right:52px}.touch-controls[data-mode=stick] .tc-btn:before{border-radius:50%;inset:0}@media (height<=480px){.touch-controls[data-mode=stick] .tc-item{bottom:116px;right:158px}#ui:has(>.touch-controls[data-mode=stick]) .hud .hud-br{align-items:flex-start;left:calc(46% + 8px);transform:none}#ui:has(>.touch-controls[data-mode=stick]) .hud .hud-gauge{transform-origin:0 100%}#ui:has(>.touch-controls) .hud .hud-tl{gap:4px;top:8px}#ui:has(>.touch-controls) .hud .hud-rank{font-size:52px}#ui:has(>.touch-controls) .hud .hud-rank small{font-size:26px}#ui:has(>.touch-controls) .hud :is(.hud-lap,.hud-timer){font-size:18px}#ui:has(>.touch-controls[data-mode=stick]) .hud .hud-controls{text-wrap:balance;width:fit-content;max-width:none;margin:0 auto;left:200px;right:262px;transform:none}#ui:has(>.touch-controls[data-mode=stick]) .hud.countdown:has(.hud-controls.on) .hud-br{visibility:hidden}}.touch-controls .tc-mode{background:var(--g-white);border:3px solid var(--ink);box-shadow:var(--lift);color:var(--navy);white-space:nowrap;pointer-events:auto;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:900;position:absolute;top:12px;right:calc(50% + 36px)}.pad-pair .qr{align-self:center;width:160px;height:160px}.pad-pair .qr svg{width:100%;height:100%;display:block}.pad-pair .note{color:var(--navy);font-size:13px}.pad-pair code{font:700 16px var(--num);word-break:break-all;color:var(--navy);display:block}.pad-pair code.alt{opacity:.7;font-size:13px;font-weight:600}.pad-pair .pad-code{letter-spacing:4px;color:var(--coral-deep);font-size:24px}.pad-pair .pad-status.ok{color:var(--mint-deep);font-weight:900}#ui>.pad-bar{color:var(--navy);pointer-events:none;background:#fffc;border-radius:999px;padding:4px 14px;font-size:14px;font-weight:800;position:fixed;top:8px;left:12px}.sound-body{border:3px solid var(--ink);width:min(980px,100% - 48px);box-shadow:var(--shadow);background:#fffffff2;border-radius:20px;padding:12px 20px 16px;position:absolute;top:92px;bottom:96px;left:50%;overflow-y:auto;transform:translate(-50%)}.sound-body>p.muted{margin:0 0 6px;font-size:14px}.screen.step>.actions .sfx-status{background:#fffc;border-radius:8px;padding:3px 12px}.screen.step>.actions .sfx-status:empty{display:none}@media (height<=480px){.sound-body{width:calc(100% - 24px);padding:8px 14px 12px;top:60px;bottom:66px}.sound-body>p.muted{font-size:12px}}.sfx-group{color:var(--sky-deep);margin:16px 0 2px;font-size:16px}.sfx-row{border-bottom:1px solid var(--sky-soft);grid-template-columns:minmax(150px,1fr) auto minmax(140px,1.2fr) 46px;align-items:center;gap:4px 10px;padding:5px 0;display:grid}.sound-screen.dev .sfx-row:not(.sfx-master):not(.sfx-music){grid-template-columns:minmax(140px,.9fr) minmax(0,1.8fr) auto minmax(110px,1fr) 46px}.sfx-master,.sfx-music{border-bottom:2px solid var(--line);grid-template-columns:minmax(150px,1fr) minmax(140px,1.2fr) 46px}.sfx-name b{color:var(--navy);display:block}.sfx-name small{color:var(--muted);font-size:12px}.sfx-row select{width:100%;min-width:0;font-size:14px}.sfx-row input[type=range]{width:100%}.sfx-row output{font-variant-numeric:tabular-nums;text-align:right;color:var(--muted);font-size:14px}.sfx-row .sfx-play{min-width:40px;margin:0}.sfx-status{color:var(--muted);font-weight:700}.sfx-status.ok{color:var(--mint-deep)}.sfx-status.err{color:var(--coral-deep)}@media (width<=640px){.sfx-row,.sound-screen.dev .sfx-row:not(.sfx-master),.sfx-master{grid-template-columns:1fr auto 46px}.sfx-row select{grid-area:2/1/auto/-1}.sfx-row input[type=range]{grid-column:1/3}}@media (height<=480px){.char-panel h3,.track-panel h3,.shop-panel h3,.board-panel h3,.my-card .my-result,.lobby-left h4{text-shadow:var(--o2), 0 3px 0 var(--ink)}}@media (height<=340px){.screen.home .logo img{width:120px}.screen.home .menu{grid-template-columns:repeat(2,210px);gap:6px 12px;width:auto;display:grid;top:62px}.tour-box .tour-zoom{white-space:nowrap;flex-direction:column;bottom:0;left:calc(100% + 8px)}.results-side{bottom:70px;overflow-y:auto}.my-card .my-result{font-size:18px}.my-card .my-result b{vertical-align:-3px;font-size:34px}#ui:has(>.touch-controls) .hud .hud-tl{grid-template-columns:auto auto;justify-items:start;gap:4px 6px;display:grid}#ui:has(>.touch-controls) .hud :is(.hud-rank,.hud-board){grid-column:1/-1}#ui:has(>.touch-controls) .hud .hud-rank{font-size:40px}#ui:has(>.touch-controls) .hud .hud-rank small{font-size:20px}#ui:has(>.touch-controls) .hud :is(.hud-lap,.hud-timer){font-size:15px}#ui:has(>.touch-controls) .hud .hud-board{margin-top:0}.hud .hud-gauge{transform:scale(.5)}.hud-mini{width:80px;height:80px}.touch-controls[data-mode=stick] .tc-drift{width:104px;height:104px}.touch-controls[data-mode=stick] .tc-item{width:84px;height:84px;bottom:32px;right:144px}}@container modal (height<=340px){.modal{max-height:calc(100% - 16px);padding:10px 20px}.settings-modal .modal{padding:8px 20px 4px;overflow:hidden}.settings-body{flex:auto;min-height:0;overflow-y:auto}.settings-modal .actions{margin-top:2px;padding-top:0;position:static}.pause .modal{align-items:stretch;gap:18px;overflow:hidden}.pause-main,.pause-side{min-height:0;overflow-y:auto}.pause-main{gap:4px;width:200px}.pause-main h2{margin:0;font-size:20px}.pause-main button{padding:2px 14px 4px;font-size:16px}.pause-main button.primary{font-size:19px}}.phone-locked{text-align:center;color:#fff;background:#10233a;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100dvh;padding:24px;font-size:18px;line-height:1.6;display:flex}.phone-locked h1{margin:0;font-size:30px}.phone-locked-url{color:#ffd84d;word-break:break-all;-webkit-user-select:all;user-select:all;font-weight:700}
