@import"https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&display=swap";:root{font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;color:#fff5db;background:#91afb2;font-synthesis:none;--cream:#fff5db;--orange:#ff6943;--ink:#132e29;--muted:#a3b8a7}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{overscroll-behavior:none;touch-action:none}button,input{font:inherit}button{cursor:pointer;color:inherit;border:0;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:3px solid #ffca69;outline-offset:4px}button:disabled{opacity:.38;cursor:default}button svg{width:21px;height:21px;flex-shrink:0}#world{position:absolute;inset:0;background:linear-gradient(#6e9ba8,#b7c2b1 32%,#e9c896 61%,#74764a 80%)}#world canvas{display:block;width:100%;height:100%}.vignette{pointer-events:none;position:absolute;inset:0;background:radial-gradient(ellipse at 65% 42%,transparent 38%,#0b211c70 100%)}.grain{position:absolute;inset:0;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.topbar{position:absolute;z-index:4;top:0;left:0;right:0;padding:26px 38px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:12px;font-size:13px;letter-spacing:2px;font-weight:800}.brand-icon{width:39px;height:39px;border:1px solid #fff5db80;display:grid;place-items:center;transform:skew(-7deg);font-family:Barlow Condensed,sans-serif;font-size:24px;font-weight:900}.brand small{display:block;font-size:8px;letter-spacing:3px;font-weight:500;margin-top:5px;opacity:.6}.top-actions{display:flex;gap:8px;align-items:center}.icon-button{display:grid;place-items:center;width:40px;height:40px;background:#142e2c70;border:1px solid #ecedd33b;border-radius:50%;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.icon-button:hover{background:#183e36}.radio-button{width:auto;padding:0 15px;border-radius:24px;gap:9px;display:flex;font-size:11px;letter-spacing:1px}.radio-led{width:5px;height:5px;border-radius:50%;background:#ff6943;box-shadow:0 0 9px #ff6943}.radio-led.off{background:#829385;box-shadow:none}.home{position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,#0d272ded 0%,#173836b8 25%,#143b3133 57%,transparent 76%);padding:112px 5.2vw 35px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.eyebrow{font-family:Barlow Condensed,sans-serif;font-size:12px;font-weight:600;letter-spacing:4px;color:#ffc77f;display:flex;align-items:center;gap:10px}.eyebrow:before{content:"";display:block;width:23px;height:2px;background:#ff7750}h1{font-size:clamp(72px,8.1vw,120px);line-height:1.04;letter-spacing:-6px;font-weight:950;font-style:italic;margin:19px 0 15px;transform:translate(-7px);text-shadow:3px 5px 0 #143c3690}h1 span{color:var(--orange)}.hero-subtitle{font-size:15px;letter-spacing:4px;margin:0 0 25px;color:#d4dbc9}.hero-subtitle b{color:var(--cream)}.characters-label{font-size:10px;letter-spacing:2px;display:flex;justify-content:space-between;align-items:center;width:386px;max-width:100%;color:#b5c3ad;margin-bottom:10px}.characters-label span{font-family:Barlow Condensed,sans-serif;font-size:11px;color:#e9d6ad;letter-spacing:1px}.characters{display:flex;gap:8px;margin-bottom:12px}.character{width:89px;height:86px;padding:5px 8px 8px;background:#173b3590;border:1px solid #b6c5a63d;position:relative;transition:background .18s,transform .18s}.character:hover{transform:translateY(-3px)}.character.active{border:1px solid var(--orange);background:#ed754b24}.character.active:after{content:"";position:absolute;bottom:-1px;left:25%;right:25%;height:3px;background:var(--orange)}.character svg{width:52px;height:52px;display:block;margin:0 auto 3px}.character span{font-size:10px;letter-spacing:1px}.character-description{height:29px;margin:0;color:#c7d2bc;font-size:11px;letter-spacing:1px}.character-description b{color:#ffb378}.home-buttons{display:flex;gap:9px;margin-top:5px;width:386px;max-width:100%}.primary{min-height:56px;padding:0 28px;background:var(--orange);color:#192d29;font-weight:850;letter-spacing:2px;display:flex;align-items:center;justify-content:center;gap:19px;transition:filter .15s,transform .15s;box-shadow:0 4px #a9422e}.primary:hover{filter:brightness(1.12);transform:translateY(-2px)}.primary:active{transform:translateY(2px);box-shadow:0 1px #a9422e}.home-buttons .primary{flex:1}.secondary{min-height:54px;padding:0 18px;border:1px solid #efe5c25a;background:#163b32aa;font-size:12px;font-weight:600;letter-spacing:1px}.secondary:hover{background:#2a5145}.home-hint{font-size:9px;letter-spacing:1px;color:#91a99b;margin:18px 0 0}.sticker{position:absolute;right:7.5vw;top:24%;display:flex;align-items:center;gap:8px;padding:9px 17px 9px 9px;border:3px solid var(--cream);outline:2px solid #172c28;background:#182a27;border-radius:11px;box-shadow:0 9px 30px #142c3250;transform:rotate(-6deg)}.sticker svg{width:69px;height:69px}.sticker strong{font-size:23px;line-height:1.27;letter-spacing:1px}.sticker:after{content:"公路之王认证";font-size:9px;color:#d0dbc4;position:absolute;right:8px;bottom:-23px;letter-spacing:3px}.track-tag{position:absolute;bottom:41px;right:43px;text-align:right}.track-tag .number{font:700 54px/.9 Barlow Condensed,sans-serif;color:#fff0cb50;margin-right:8px}.track-tag strong{font-size:12px;letter-spacing:3px}.track-tag p{font-size:9px;letter-spacing:2px;color:#d6dfc6b0;margin:8px 0}.track-tag .line{width:160px;height:1px;background:#ecedd35c;margin:16px 0 0 auto}.hint-top{position:absolute;top:40px;left:50%;transform:translate(-50%);letter-spacing:3px;font-size:9px;color:#f5edd8a8}.hud{position:absolute;inset:0;z-index:3;pointer-events:none}.hud-top{position:absolute;top:92px;left:38px;right:38px;display:flex;justify-content:space-between;align-items:flex-start}.score-label{font-size:10px;letter-spacing:3px;color:#cbd7bc}.score{font:700 57px/.95 Barlow Condensed,sans-serif;letter-spacing:1px;text-shadow:0 2px 15px #17342a80}.score small{font-size:13px;margin-left:5px;opacity:.6}.health{display:flex;gap:5px;margin:13px 0 7px}.health i{display:block;width:26px;height:5px;background:var(--orange);transform:skew(-20deg);box-shadow:0 0 8px #ff8d4b40}.health i.dead{background:#f0dabb35;box-shadow:none}.distance{font-size:10px;letter-spacing:2px}.mission{background:#173b2ea3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-left:3px solid #ffb95e;padding:12px 18px;text-align:right}.mission small{display:block;font-size:9px;letter-spacing:2px;color:#c4ceba;margin-bottom:5px}.mission strong{font-size:13px;letter-spacing:1px}.combo{position:absolute;right:40px;top:43%;text-align:center;transform:rotate(-5deg);text-shadow:0 3px 20px #163a36}.combo strong{font:800 64px/.85 Barlow Condensed,sans-serif;color:#ffca74}.combo span{display:block;letter-spacing:4px;font-size:11px;margin-top:8px}.dash{position:absolute;left:38px;bottom:41px;width:240px}.speed{font:700 87px/.85 Barlow Condensed,sans-serif;display:flex;gap:8px;align-items:baseline;font-style:italic;letter-spacing:1px}.speed small{font-size:13px;letter-spacing:2px;color:#d4ddcc}.nitro-label{display:flex;justify-content:space-between;margin-top:16px;font-size:9px;letter-spacing:2px}.nitro-bar{height:6px;margin-top:7px;background:#e4e8cf3d;transform:skew(-15deg)}.nitro-bar i{display:block;width:55%;height:100%;background:#7fd5c3;box-shadow:0 0 17px #70eed150;transition:width .08s}.nitro-bar.active i{background:var(--orange);box-shadow:0 0 22px #ffae48}.game-help{position:absolute;bottom:37px;left:50%;transform:translate(-50%);display:flex;gap:16px;font-size:9px;letter-spacing:1px;white-space:nowrap;color:#e7e7cdaf}.key{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 4px;border:1px solid #efeed94d;border-radius:3px;margin-right:5px;color:var(--cream)}.skill-status{position:absolute;right:39px;bottom:41px;display:flex;align-items:center;gap:11px;text-align:right}.skill-status svg{width:55px;height:55px}.skill-status strong{display:block;font-size:14px;letter-spacing:2px}.skill-status small{display:block;color:#c9d5bc;font-size:10px;margin-top:5px;letter-spacing:1px}.toast{position:absolute;left:50%;top:29%;transform:translate(-50%,10px) rotate(-3deg);opacity:0;pointer-events:none;transition:opacity .15s,transform .2s;text-align:center;z-index:12;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%) rotate(-3deg)}.toast strong{display:block;font-size:clamp(22px,3vw,42px);font-style:italic;font-weight:900;text-shadow:0 3px 0 #142d2f,0 0 30px #112a24}.toast small{display:block;margin-top:8px;color:#ffc780;font-size:12px;letter-spacing:3px;text-shadow:0 2px 5px #142d2f}.damage-flash{position:absolute;inset:0;box-shadow:inset 0 0 120px #ff422dcc;opacity:0;pointer-events:none;z-index:5}.damage-flash.hit{animation:hit .5s ease-out}.boost-frame{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 70px #55cff53d;opacity:0;transition:opacity .2s}.boost-frame.on{opacity:1}.overlay{position:absolute;inset:0;background:#071d25ae;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:10;display:flex;align-items:center;justify-content:center;padding:25px}.panel{background:#163730;border:1px solid #69887965;max-width:100%;width:460px;padding:32px;box-shadow:0 20px 90px #061c3080;max-height:90dvh;overflow:auto;touch-action:pan-y}.panel h2{font-size:32px;letter-spacing:-1px;margin:10px 0 12px}.panel p{color:#bfcbb5;font-size:12px;line-height:1.7}.panel .primary,.panel>.secondary{width:100%;margin-top:12px}.panel .eyebrow{font-size:10px;letter-spacing:2px}.close-panel{float:right;background:transparent;padding:0;color:#c1d2bd}.result-avatar{width:84px;height:84px;float:right;transform:rotate(7deg)}.result-rank{color:#ffc980;font-size:12px;letter-spacing:4px;margin-top:18px}.result-number{font:700 85px/1 Barlow Condensed,sans-serif;letter-spacing:2px;margin:5px 0}.result-number small{font-size:15px;letter-spacing:1px;color:#b4c7b4}.result-record{font-size:11px;color:#eab86c;letter-spacing:1px;margin:0 0 20px}.result-stats{display:flex;justify-content:space-between;border-top:1px solid #a0b3933b;border-bottom:1px solid #a0b3933b;padding:18px 0;margin-bottom:16px}.result-stats strong{font:600 28px/1 Barlow Condensed,sans-serif;display:block}.result-stats small{font-size:9px;letter-spacing:1px;color:#a2b99f;display:block;margin-top:5px}.result-actions{display:flex;gap:8px;margin-top:12px}.result-actions button{flex:1;font-size:11px;min-height:43px}.text-button{background:transparent;color:#b9c8b0;font-size:11px;letter-spacing:1px;padding:15px;text-align:center}.panel>.text-button{width:100%}.radio-panel{position:absolute;right:38px;top:79px;width:290px;background:#122f2cf5;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid #a1bc9250;z-index:20;padding:21px}.radio-panel h3{font:600 20px Barlow Condensed,sans-serif;letter-spacing:3px;margin:0 0 7px}.radio-panel p{font-size:11px;color:#b3c6a9}.radio-controls{display:flex;align-items:center;gap:12px;margin:15px 0}.radio-controls button{background:#315043;width:35px;height:35px;display:grid;place-items:center;border-radius:50%}.radio-controls strong{font-size:12px}.radio-panel input{width:100%;accent-color:var(--orange)}.radio-panel label{display:block;font-size:9px;color:#a4b99d;letter-spacing:2px;margin:17px 0 7px}.radio-panel .note{font-size:9px;line-height:1.6;color:#8da68d;margin-top:12px}.form-label{display:block;font-size:11px;letter-spacing:2px;color:#c9d2ba;margin:18px 0 8px}.field{width:100%;height:45px;background:#0f2925;border:1px solid #6b8b7166;color:var(--cream);padding:0 13px;outline:none}.room-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}.room-actions button{font-size:12px;padding:0 10px}.room-actions .primary{margin:0}.room-code{font:700 39px Barlow Condensed,sans-serif;letter-spacing:8px;color:#ffca75}.room-players{list-style:none;padding:0;margin:20px 0;display:flex;flex-direction:column;gap:8px}.room-players li{display:flex;justify-content:space-between;align-items:center;background:#26463b;padding:12px;font-size:12px;gap:8px}.room-players small{color:#a8c097;font-size:10px}.room-players .ready{color:#89e2af}.room-message{min-height:21px;font-size:11px;color:#ffd292;margin-top:12px;line-height:1.5}.race-players{position:absolute;top:180px;right:38px;display:flex;flex-direction:column;gap:5px;min-width:150px}.race-player{font-size:10px;padding:7px 9px;background:#16382ac2;display:flex;justify-content:space-between;gap:14px}.race-player.self{border-left:2px solid var(--orange)}.touch-controls{display:none;position:absolute;inset:0;pointer-events:none;z-index:6}.touch-steer{position:absolute;bottom:28px;left:20px;display:flex;gap:10px;pointer-events:auto}.touch-action{position:absolute;bottom:28px;right:18px;display:grid;grid-template-columns:58px 66px;gap:9px;pointer-events:auto}.touch-button{-webkit-user-select:none;user-select:none;touch-action:none;background:#12362ab3;border:1px solid #d8e3bc70;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:61px;height:61px;border-radius:17px;font-size:22px;display:grid;place-items:center}.touch-button:active,.touch-button.pressed{background:#ff794bc9;border-color:#ffbb78}.touch-button small{font-size:9px;display:block;letter-spacing:1px}.touch-button.action{font-size:16px;gap:0;align-content:center;width:100%;height:53px}.touch-button.fire{background:#ff7448e6;color:#132e29;border-color:#ffb27f;height:67px;grid-row:1/3;grid-column:2;align-self:end;font-size:19px;font-weight:800}.touch-button.skill{height:42px;border-color:#a7dbdf;color:#b1f1df}.touch-brake{position:absolute;left:29px;bottom:102px;width:51px;height:33px;border-radius:10px;font-size:10px;pointer-events:auto}.fatal{position:absolute;z-index:50;inset:0;display:grid;place-items:center;background:#123c32;padding:30px;text-align:center}.hidden{display:none!important}@keyframes hit{0%{opacity:1}to{opacity:0}}@media(max-height:730px)and (min-width:801px){.home{padding-top:95px}.home h1{font-size:80px;margin:12px 0}.hero-subtitle{margin-bottom:17px}.character{height:76px}.character svg{width:43px;height:43px}.home-hint{margin-top:12px}.topbar{padding-top:20px}}@media(max-width:800px){.topbar{padding:19px 20px}.brand{font-size:10px;gap:9px;letter-spacing:1px}.brand-icon{width:31px;height:31px;font-size:20px}.brand small{font-size:7px;letter-spacing:2px}.icon-button{width:34px;height:34px}.radio-button{width:34px;padding:0;justify-content:center}.radio-button .radio-title,.radio-button .radio-led,.hint-top{display:none}.home{padding:93px 24px 29px;background:linear-gradient(90deg,#102e3399,transparent 95%),linear-gradient(0deg,#0e2929 0%,#15372ced 21%,transparent 61%);justify-content:flex-start}.eyebrow{font-size:10px;letter-spacing:3px}h1{font-size:69px;line-height:1.02;letter-spacing:-4px;margin:13px 0 10px}h1 br{display:none}h1 span{margin-left:4px}.hero-subtitle{font-size:11px;letter-spacing:2px;margin:0}.home-bottom{margin-top:auto;width:100%;max-width:386px}.characters-label,.home-buttons{width:100%}.characters{width:100%;gap:7px}.character{flex:1;width:auto;height:75px}.character svg{width:43px;height:43px}.character-description{font-size:10px;height:24px}.home-buttons .primary{min-height:54px;font-size:14px;gap:15px}.home-buttons .secondary{padding:0 15px;font-size:11px}.home-hint{font-size:8px;margin-top:14px;letter-spacing:.7px}.sticker{top:32%;right:22px;transform:rotate(-7deg) scale(.76);transform-origin:right top}.sticker svg{width:52px;height:52px}.sticker strong{font-size:18px}.track-tag{display:none}.hud-top{left:21px;right:20px;top:80px}.score{font-size:43px}.score-label{font-size:8px}.mission{padding:9px 11px}.mission strong{font-size:11px}.mission small{font-size:8px}.health{margin-top:11px}.health i{width:21px}.dash{left:23px;bottom:171px;width:160px}.speed{font-size:57px}.speed small{font-size:10px}.nitro-label{margin-top:10px;font-size:8px}.nitro-bar{height:5px}.game-help{display:none}.skill-status{bottom:174px;right:20px;gap:6px}.skill-status svg{width:40px;height:40px}.skill-status strong{font-size:11px;letter-spacing:1px}.skill-status small{font-size:8px}.combo{right:25px;top:37%}.combo strong{font-size:49px}.combo span{font-size:8px;letter-spacing:3px}.touch-controls{display:block}.panel{padding:25px;width:420px}.panel h2{font-size:28px}.overlay{padding:20px}.result-number{font-size:75px}.radio-panel{right:20px;top:66px}.race-players{right:20px;top:151px;min-width:124px}.race-player{font-size:9px;padding:5px 7px}.toast{top:33%}.toast strong{font-size:25px}.toast small{font-size:10px;letter-spacing:2px}}@media(pointer:coarse)and (min-width:801px){.touch-controls{display:block}.game-help{display:none}.dash{bottom:115px}.skill-status{bottom:150px}}@media(max-width:800px)and (max-height:680px){.home{padding-top:80px;padding-bottom:20px}h1{font-size:57px;margin:11px 0}.sticker{top:31%;transform:rotate(-7deg) scale(.62)}.character{height:65px}.character svg{width:34px;height:34px}.home-hint{margin-top:10px}.hero-subtitle{font-size:10px}.dash{bottom:156px}.skill-status{bottom:153px}}@supports (padding:max(0px)){.topbar{padding-top:max(19px,env(safe-area-inset-top))}.home{padding-bottom:max(29px,env(safe-area-inset-bottom))}.touch-steer,.touch-action{bottom:max(28px,env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.garage-open{width:386px;max-width:100%;display:flex;justify-content:space-between;align-items:center;background:#11352e80;border:1px solid #b6c5a633;min-height:36px;margin:0 0 10px;padding:0 10px;font-size:10px;color:#b7cbb1;letter-spacing:1px}.garage-open b{color:#f1e4c7;font-weight:500}.garage-open>span:last-child{font-size:9px}.home-buttons .secondary{display:flex;align-items:center;gap:7px}.home-buttons .secondary svg{width:17px;height:17px}.garage-panel{width:520px}.vehicle-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}.vehicle{position:relative;display:flex;gap:10px;align-items:center;text-align:left;background:#204137;border:1px solid #b6c5a62c;padding:12px;min-height:72px}.vehicle.active{border-color:#ff8455;background:#84553555}.vehicle-number{font:600 24px Barlow Condensed,sans-serif;color:#a6b39b66}.vehicle strong{display:block;font-size:14px;letter-spacing:1px}.vehicle small{display:block;font-size:9px;color:#b6c6ad;margin-top:5px}.vehicle i{width:31px;height:14px;background:var(--car-color);margin-left:auto;border-radius:9px 10px 3px 3px;border-bottom:3px solid #0d2526;box-shadow:inset 0 3px 1px #fff3}.garage-note{font-size:9px!important;opacity:.65}.shift-row{display:flex;align-items:center;gap:9px;margin-top:13px;height:23px}.shift-row>b{font:600 21px Barlow Condensed,sans-serif;color:#cfdbc1}.shift-row>span{font-size:8px;white-space:nowrap;letter-spacing:1px;color:#c8d4b8}.rpm{position:relative;height:4px;flex:1;background:#ffffff25}.rpm i{position:absolute;left:0;top:0;height:4px;background:#d9e3c4;width:0}.rpm>span{position:absolute;left:68%;width:22%;height:8px;top:-2px;background:#c5f48a55;border-left:1px solid #b9ed8b;border-right:1px solid #b9ed8b}.shift-row.perfect b,.shift-row.perfect>span{color:#b9ee85}.touch-shift{position:absolute;bottom:33px;left:50%;transform:translate(-50%);width:44px;height:44px;border-radius:50%;border:1px solid #cbdabe70;background:#1c433caa;color:#e8e4c8;font:700 18px Barlow Condensed,sans-serif;pointer-events:auto;touch-action:none}.touch-shift span{display:block;font:8px sans-serif}.touch-shift.perfect{background:#b5e58c;color:#172e2b;box-shadow:0 0 20px #c4f58e60}.share-status{font-size:10px!important;text-align:center;margin:0!important}.home-bottom{flex-shrink:0}@media(max-width:800px){.garage-open{width:100%;min-height:31px;margin-bottom:9px}.shift-row{margin-top:9px;gap:6px}.shift-row b{font-size:17px}.shift-row>span{font-size:7px}.home-bottom{max-width:386px}.characters-label{font-size:9px}.characters{margin-bottom:8px}.vehicle{padding:9px;gap:7px}.vehicle strong{font-size:12px}.vehicle i{width:24px}.garage-panel h2{font-size:25px}}
