:root{color:#f7f4ea;font-family:Segoe UI,Inter,Arial,sans-serif;font-synthesis:none;letter-spacing:0;background:#172126}*{box-sizing:border-box}html,body,#app,#viewport{width:100%;height:100%;margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none;overscroll-behavior:none}button{font:inherit;letter-spacing:0}.garage{position:absolute;z-index:30;inset:0;overflow:hidden;color:#f7f4ea;background:#182126;opacity:1;visibility:visible;font-family:Segoe UI,Inter,Arial,sans-serif;transition:opacity .32s ease,visibility .32s ease}.garage.is-leaving{opacity:0;visibility:hidden;pointer-events:none}.garage-preview{position:absolute;inset:0;display:block;width:100%;height:100%;opacity:1;transition:opacity .18s ease;touch-action:none}.garage-preview.is-loading{opacity:.42}.garage-atmosphere{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 48% 42% at 48% 58%,rgb(255 214 140 / 18%),transparent 62%),linear-gradient(90deg,rgb(12 18 21 / 78%) 0%,rgb(12 18 21 / 32%) 16%,transparent 32%,transparent 64%,rgb(12 18 21 / 22%) 78%,rgb(12 18 21 / 78%) 100%),linear-gradient(180deg,rgb(10 16 18 / 42%) 0%,transparent 18%,transparent 68%,rgb(10 16 18 / 58%) 100%)}.garage-header{position:absolute;z-index:6;top:18px;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 18px 0 14px;border:1px solid rgb(255 255 255 / 12%);border-radius:16px;background:#0c121594;box-shadow:0 16px 40px #0000002e;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);pointer-events:auto}.garage-account{position:relative;display:flex;align-items:center;justify-content:flex-end;min-width:160px}.account-toggle{min-height:34px;padding:0 12px;border:1px solid rgb(255 255 255 / 18%);border-radius:999px;color:#f1c54d;background:#0c12156b;font-size:11px;font-weight:800;cursor:pointer}.garage-account .account-form{position:absolute;top:calc(100% + 8px);right:0;z-index:8;width:240px;padding:12px;border:1px solid rgb(255 255 255 / 14%);border-radius:14px;background:#0c1215eb;box-shadow:0 16px 40px #00000047}.garage-header-meta em{color:#77dce7;font-size:10px;font-style:normal;font-weight:800;letter-spacing:2px}.garage-header-meta b,.garage-header>b{color:#c5cecb;font-size:11px;font-weight:800;letter-spacing:1.6px}.garage-brand{display:flex;align-items:center;gap:12px}.garage-brand>span{display:grid;place-items:center;width:42px;height:42px;color:#172126;background:linear-gradient(160deg,#ffe27a,#f1c54d);font-family:Segoe UI,Inter,Impact,Arial,sans-serif;font-size:18px;font-weight:900;transform:skew(-8deg);box-shadow:4px 5px #e85d3f}.garage-brand div{display:grid;gap:2px}.garage-brand strong{font-family:Segoe UI,Inter,Impact,Arial,sans-serif;font-size:22px;font-weight:900;letter-spacing:1.4px}.garage-brand small{color:#ff8268;font-size:10px;font-weight:800;letter-spacing:2.4px}.garage-vehicle{position:absolute;z-index:2;bottom:36px;left:50%;width:min(560px,calc(100% - 760px));text-align:center;transform:translate(-50%);text-shadow:0 8px 24px rgb(0 0 0 / 55%);pointer-events:none}.garage-vehicle>span{display:inline-block;margin-bottom:8px;padding:4px 10px;border:1px solid rgb(241 197 77 / 40%);border-radius:999px;color:#f1c54d;background:#0c12156b;font-size:11px;font-weight:800;letter-spacing:2px}.garage-vehicle h1{margin:0;font-family:Segoe UI,Inter,Impact,Arial,sans-serif;font-size:clamp(22px,2.5vw,34px);line-height:1;font-style:italic;font-weight:900;letter-spacing:.6px}.garage-vehicle p{margin:10px auto 8px;max-width:360px;color:#dbe4e0;font-size:12px;font-weight:700;letter-spacing:1.8px}.garage-vehicle>b{display:inline-block;padding:3px 8px;border-left:3px solid #e85d3f;color:#ffb09c;background:#e85d3f1f;font-size:11px;font-weight:800;letter-spacing:1.6px}.vehicle-dots{display:flex;justify-content:center;gap:8px;margin-top:8px;padding:14px 10px 10px;overflow-x:auto;overflow-y:hidden;pointer-events:auto;scrollbar-width:none}.vehicle-dots::-webkit-scrollbar{display:none}.vehicle-card{flex:0 0 72px;width:72px;height:56px;overflow:hidden;padding:0;border:2px solid rgb(255 255 255 / 18%);border-radius:5px;background:linear-gradient(180deg,rgb(255 255 255 / 8%),transparent 42%),linear-gradient(180deg,#2c383c,#12181b);box-shadow:0 8px 16px #00000047;transform:skew(-8deg);cursor:pointer}.vehicle-card img,.vehicle-card i{display:block;width:124%;height:100%;object-fit:cover;transform:skew(8deg) translate(-10%)}.vehicle-card i{background:linear-gradient(135deg,#3a474c,#1a2225)}.vehicle-card.is-active{border-color:#f1c54d;box-shadow:0 0 0 2px #e85d3f,0 10px 22px #f1c54d47;transform:skew(-8deg) translateY(-3px) scale(1.06)}.vehicle-switcher{display:flex;justify-content:center;gap:8px;margin-top:12px;pointer-events:auto}.vehicle-switcher button,.music-setup button{display:grid;place-items:center;width:46px;height:42px;border:1px solid rgb(255 255 255 / 24%);border-radius:12px;color:#fff;background:#0c12159e;box-shadow:0 10px 24px #0000002e;font-size:18px;font-weight:800;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .14s ease,background .14s ease,color .14s ease,border-color .14s ease}.vehicle-switcher button:hover,.music-setup button:hover{border-color:#f1c54d;color:#f1c54d}.vehicle-switcher button:active,.music-setup button:active{color:#172126;background:#f1c54d;transform:translateY(1px)}.garage-setup{position:absolute;z-index:3;top:100px;right:24px;bottom:24px;width:352px;display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:hidden;border:1px solid rgb(255 255 255 / 12%);border-radius:22px;background:#0c1215b8;box-shadow:0 24px 70px #00000047;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.garage-setup:before{position:absolute;inset:0 auto 0 0;width:4px;content:"";background:linear-gradient(180deg,#f1c54d,#e85d3f)}.setup-scroll{min-height:0;overflow-y:auto;overflow-x:hidden;padding:22px 20px 8px 24px;scrollbar-width:thin;scrollbar-color:#4a585c transparent}.setup-section summary{display:flex;align-items:center;justify-content:space-between;min-height:42px;margin:0 -4px;padding:0 14px;border:1px solid rgb(255 255 255 / 16%);border-radius:12px;color:#f7f4ea;background:#ffffff12;font-size:13px;font-weight:800;letter-spacing:1px;cursor:pointer;list-style:none}.setup-section summary::-webkit-details-marker{display:none}.setup-section summary:after{content:"＋";color:#f1c54d;font-size:16px}.setup-section[open] summary{border-color:#f1c54d;color:#172126;background:linear-gradient(180deg,#ffe27a,#f1c54d)}.setup-section[open] summary:after{content:"－";color:#172126}.match-setup[open] summary{background:linear-gradient(180deg,#9be7a8,#55b77b);border-color:#55b77b}.setup-section[open]>:not(summary){margin-top:12px}.garage.is-drift-mode .garage-atmosphere{background:radial-gradient(ellipse 48% 42% at 48% 58%,rgb(119 220 231 / 16%),transparent 62%),linear-gradient(90deg,rgb(12 18 21 / 78%) 0%,rgb(12 18 21 / 32%) 16%,transparent 32%,transparent 64%,rgb(12 18 21 / 22%) 78%,rgb(12 18 21 / 78%) 100%),linear-gradient(180deg,rgb(10 16 18 / 42%) 0%,transparent 18%,transparent 68%,rgb(10 16 18 / 58%) 100%)}.garage-stages{position:absolute;z-index:3;top:100px;left:24px;bottom:150px;width:338px;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;pointer-events:none}.stages-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:12px;padding:14px 14px 0;pointer-events:auto}.stages-heading div{display:grid;gap:3px}.stages-heading b{color:#fff;font-family:Segoe UI,Inter,Impact,Arial,sans-serif;font-size:18px;font-weight:900;letter-spacing:1.8px;text-shadow:0 2px 8px rgb(12 20 22 / 55%)}.stages-heading small{color:#f1c54d;font-size:10px;font-weight:800;letter-spacing:2px}.stage-links{display:flex;gap:6px}.stages-heading .manage-stages{min-height:34px;padding:0 12px;border:1px solid rgb(255 255 255 / 18%);border-radius:999px;color:#d7dfdc;background:#0c12157a;font-size:11px;font-weight:800;text-decoration:none;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.stages-heading .manage-stages:hover,.stages-heading .manage-stages.is-active{border-color:#f1c54d;color:#f1c54d}.stages-heading .manage-stages.is-quiet{width:34px;padding:0;color:#8f9b99;font-size:14px}.garage-rail{min-height:0;overflow:hidden;pointer-events:auto}.garage-rail-track{display:flex;height:100%;width:200%;transform:translate(0);transition:transform .32s cubic-bezier(.22,1,.36,1)}.garage-stages.is-board .garage-rail-track{transform:translate(-50%)}.garage-stages.is-instant .garage-rail-track{transition:none}.garage-rail-pane{display:flex;flex-direction:column;box-sizing:border-box;width:50%;min-width:0;height:100%;padding:0 8px 0 14px}.garage-rail-pane .stage-cards{flex:1;min-height:0;padding:2px 4px 16px 0}.garage-board-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 10px}.garage-board-tabs button{min-height:30px;border:1px solid rgb(255 255 255 / 14%);border-radius:999px;color:#d7dfdc;background:#0c12157a;font-size:11px;font-weight:800}.garage-board-tabs button.is-active{color:#172126;background:#f1c54d;border-color:#f1c54d}.garage-board-stages{display:flex;gap:6px;margin:0 0 10px;padding:0 0 4px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#3d4a4e transparent}.garage-board-stages[hidden]{display:none}.garage-board-stages button{flex:0 0 auto;min-height:28px;padding:0 12px;border:1px solid rgb(255 255 255 / 14%);border-radius:999px;color:#d7dfdc;background:#0c12157a;font-size:11px;font-weight:800;white-space:nowrap}.garage-board-stages button.is-active{color:#172126;background:#f1c54d;border-color:#f1c54d}.garage-board-list{min-height:0}.garage-board-card{cursor:default}.garage-board-empty,.garage-board-label{margin:8px 0 4px;color:#8f9b99;font-size:12px;font-weight:700}.garage-board-label{position:sticky;top:0;z-index:1;margin:4px 0 8px;padding:8px 10px;border:1px solid rgb(255 255 255 / 10%);border-radius:10px;color:#fff;background:#0c1215e0;font-family:Segoe UI,Inter,Impact,Arial,sans-serif;font-size:13px;font-weight:800;letter-spacing:.6px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.stage-cards{display:grid;gap:10px;align-content:start;padding:2px 8px 16px 2px;overflow-y:auto;overflow-x:hidden;pointer-events:auto;scrollbar-width:thin;scrollbar-color:#3d4a4e transparent}.stage-card{display:grid;grid-template-columns:auto minmax(0,1fr) 66px;gap:11px;align-items:center;min-height:96px;padding:12px 12px 12px 14px;border:1px solid rgb(255 255 255 / 12%);border-radius:16px;color:#dfe5e2;background:#0c12159e;box-shadow:0 12px 28px #00000029;text-align:left;cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:border-color .16s ease,background .16s ease,transform .16s ease}.stage-card:hover{border-color:#f1c54d8c;transform:translateY(-1px)}.stage-card.is-selected{border-color:#f1c54d;background:#1c2629db;box-shadow:inset 4px 0 #e85d3f,0 14px 30px #0000002e}.stage-card.is-selected .stage-card-index:after{display:block;margin-top:2px;color:#77dce7;font-family:Segoe UI,Inter,Arial,sans-serif;font-size:9px;font-style:normal;font-weight:800;letter-spacing:1px;content:"当前"}.stage-card-index{color:#f1c54d;font-family:Segoe UI,Inter,Impact,Arial,sans-serif;font-size:28px;font-style:italic;font-weight:900}.stage-card-info{display:grid;gap:4px;min-width:0}.stage-card-info strong{overflow:hidden;font-family:Segoe UI,Inter,Impact,Arial,sans-serif;font-size:16px;font-weight:800;letter-spacing:.4px;text-overflow:ellipsis;white-space:nowrap}.stage-card-info small{color:#a7b4b1;font-size:10px;font-weight:700;letter-spacing:.4px}.stage-card-meta{display:grid;gap:2px;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.stage-card-meta i{margin-right:5px;color:#8f9b99;font-size:9px;font-style:normal;font-weight:800}.stage-card-meta em{color:#77dce7;font-style:normal}.stage-card-map{width:66px;height:42px;overflow:visible}.stage-card-map polyline{fill:none;stroke:#f1c54de5;stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round}.setup-stage{display:block;margin-bottom:4px;font-family:Segoe UI,Inter,Impact,Arial,sans-serif;font-size:28px;font-weight:900;letter-spacing:.6px}.stage-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:12px}.stage-meta div{display:grid;gap:3px;padding:8px;border:1px solid rgb(255 255 255 / 10%);border-radius:10px;background:#ffffff0d}.stage-meta span{color:#8f9b99;font-size:9px;font-weight:800;letter-spacing:.8px}.stage-meta b{font-size:12px;font-variant-numeric:tabular-nums}.record-section{border-top:1px solid rgb(255 255 255 / 10%);padding-top:18px}.record-time{display:block;color:#f1c54d;font-family:Segoe UI,Inter,Impact,Arial,sans-serif;font-size:42px;font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:.5px;text-shadow:0 2px 18px rgb(241 197 77 / 28%)}.record-rows{display:grid;gap:6px;margin-top:12px}.record-rows>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:12px}.record-rows span{color:#8f9b99;font-size:10px;font-weight:800}.record-rows b{color:#dfe5e2;font-variant-numeric:tabular-nums}.record-rows .rank-soon{color:#6d7977}.account-form{display:grid;gap:6px}.account-form input{width:100%;min-width:0;height:36px;padding:0 10px;border:1px solid rgb(255 255 255 / 16%);border-radius:10px;color:#eef1eb;background:#ffffff0f;font-size:12px;font-weight:600}.account-form input:focus{border-color:#f1c54d;outline:none}.account-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:2px}.account-actions button{min-height:34px;border:1px solid rgb(255 255 255 / 16%);border-radius:10px;color:#eef1eb;background:transparent;font-size:12px;font-weight:800;cursor:pointer}.account-actions button:first-child{border-color:#f1c54d;color:#f1c54d}.account-actions button:first-child:hover{color:#172126;background:#f1c54d}.account-actions button:disabled{opacity:.55;cursor:wait}.account-message{color:#93a09d;font-size:11px;font-weight:600}.account-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.account-row b{color:#f1c54d;font-size:15px;font-weight:800}.account-logout{min-height:30px;padding:0 10px;border:1px solid rgb(255 255 255 / 16%);border-radius:999px;color:#aeb9b8;background:transparent;font-size:11px;font-weight:800;cursor:pointer}.account-logout:hover{color:#ff8268;border-color:#85493e}.leaderboard{margin-top:14px;padding-top:12px;border-top:1px solid rgb(255 255 255 / 10%)}.leaderboard-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}.leaderboard-heading span,.leaderboard-heading a,.leaderboard-heading button{color:#77dce7;border:0;padding:0;background:none;font-size:11px;font-weight:800;letter-spacing:.6px;text-decoration:none;cursor:pointer}.leaderboard-heading a:hover,.leaderboard-heading button:hover{color:#f1c54d}.leaderboard-heading b,[data-garage=leaderboard-note]{color:#8f9b99;font-size:10px;font-weight:700}.leaderboard-rows{display:grid;gap:4px;margin:0;padding:0;list-style:none}.leaderboard-rows li{display:flex;align-items:baseline;gap:8px;min-height:24px;padding:4px 8px;font-size:12px;border-radius:8px}.leaderboard-rows li.is-me{background:#f1c54d24}.leaderboard-rows i{min-width:24px;color:#8f9b99;font-size:11px;font-style:italic;font-weight:800;font-variant-numeric:tabular-nums}.leaderboard-rows b{flex:1;overflow:hidden;color:#dfe5e2;font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.leaderboard-rows span{color:#77dce7;font-variant-numeric:tabular-nums}.setup-section{padding:0 0 18px}.setup-section>span,.music-setup>label{display:block;margin-bottom:8px;color:#f1c54d;font-size:11px;font-weight:800;letter-spacing:1.4px}.setup-section>small{display:block;margin-top:9px;color:#aeb9b8;font-size:11px;font-weight:600}.setup-section>.stage-record{min-height:14px;color:#77dce7;font-variant-numeric:tabular-nums}.stage-select{width:100%;height:38px;padding:0 10px;border:1px solid rgb(255 255 255 / 28%);border-radius:3px;color:#fff;background:#263135;font-size:14px;font-weight:900}.stage-direction{display:grid;grid-template-columns:1fr 1fr;margin-top:14px;overflow:hidden;border:1px solid rgb(255 255 255 / 14%);border-radius:12px}.stage-direction button{min-height:36px;border:0;color:#aeb9b8;background:transparent;font-size:11px;font-weight:800;letter-spacing:1px;cursor:pointer}.stage-direction button+button{border-left:1px solid rgb(255 255 255 / 14%)}.stage-direction button.is-active{color:#172126;background:linear-gradient(180deg,#ffe27a,#f1c54d)}.drive-mode{margin-top:14px}.drive-mode button.is-active[data-drive-mode=drift]{background:linear-gradient(180deg,#9be7a8,#55b77b)}.music-setup{border-top:1px solid rgb(255 255 255 / 10%);padding-top:16px}.music-setup>div{display:grid;grid-template-columns:1fr 42px;gap:7px}.music-setup select{min-width:0;height:40px;padding:0 10px;border:1px solid rgb(255 255 255 / 16%);border-radius:10px;color:#fff;background:#ffffff0f;font-size:12px;font-weight:700}.volume-sliders{display:grid;gap:8px;width:100%;margin-top:10px}.volume-sliders label{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px 10px;color:#d7ddd8;font-size:11px;font-weight:800}.volume-sliders b{color:#f1c54d;font-variant-numeric:tabular-nums}.volume-sliders input[type=range]{grid-column:1 / -1;width:100%;accent-color:#f1c54d}.pause-panel .volume-sliders{margin:16px 0 4px}.match-setup{border-top:1px solid rgb(255 255 255 / 10%);padding-top:16px}.match-actions,.match-join{display:grid;grid-template-columns:1fr;gap:7px;margin-top:8px}.match-join,.match-room .match-actions{grid-template-columns:1fr 72px}.match-room .match-actions{grid-template-columns:1fr 1fr}.match-setup button,.match-join input{height:36px;border:1px solid rgb(255 255 255 / 16%);border-radius:8px;color:#fff;background:#ffffff0f;font-size:12px;font-weight:800}.match-setup button[data-action=match-create],.match-setup button[data-action=match-join]{color:#172126;background:linear-gradient(180deg,#ffe27a,#f1c54d);border:0}.match-setup button[data-action=match-ready].is-ready{color:#172126;background:linear-gradient(180deg,#9be7a8,#55b77b);border:0}.match-setup input{padding:0 10px}.match-code-chip{display:block;width:100%;margin:10px 0 8px;min-height:44px;border:1px solid rgb(241 197 77 / 40%);border-radius:12px;color:#f1c54d;background:#f1c54d1a;font-size:22px;font-weight:900;letter-spacing:4px;cursor:pointer}.start-stage{width:100%;min-height:58px;border:0;border-radius:0 0 22px 22px;color:#172126;background:linear-gradient(180deg,#ffe27a,#f1c54d);box-shadow:0 -12px 30px #f1c54d2e;font-family:Segoe UI,Inter,Impact,Arial,sans-serif;font-size:15px;font-weight:900;letter-spacing:.4px;cursor:pointer}.start-stage:hover{filter:brightness(1.05)}.start-stage:disabled{color:#738083;background:#303b3e;box-shadow:none;cursor:wait}.manage-stages{display:grid;place-items:center;min-height:38px;color:#c2ccca;font-size:11px;font-weight:800;text-decoration:none}.manage-stages:hover{color:#f1c54d}.race-viewport{opacity:0;visibility:hidden;transition:opacity .26s ease}.race-viewport.is-active{opacity:1;visibility:visible}#viewport{position:relative;background:#9ebbc5}#viewport canvas{display:block;width:100%;height:100%}.loading-screen{position:absolute;z-index:20;inset:0;display:grid;place-content:center;justify-items:center;gap:15px;background:#172126;transition:opacity .36s ease,visibility .36s ease}.is-ready .loading-screen{opacity:0;visibility:hidden}.loading-mark{display:grid;place-items:center;width:58px;height:58px;border:3px solid #f1c54d;color:#f1c54d;font-size:22px;font-weight:900;transform:skew(-8deg)}.loading-screen p{margin:0;font-size:11px;font-weight:800}.loading-screen>span{width:120px;height:3px;overflow:hidden;background:#38464a}.loading-screen>span:after{display:block;width:45%;height:100%;content:"";background:#e85d3f;animation:loading 1s ease-in-out infinite alternate}@keyframes loading{0%{transform:translate(0)}to{transform:translate(150%)}}.topbar{position:absolute;z-index:4;top:0;left:0;width:100%;display:flex;align-items:flex-start;justify-content:space-between;padding:max(18px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) 0 max(22px,env(safe-area-inset-left));pointer-events:none}.identity{display:grid;gap:3px;padding-left:11px;border-left:4px solid #e85d3f;text-shadow:0 2px 9px rgb(12 20 22 / 45%)}.identity strong{font-size:17px;font-weight:900}.identity span{color:#e6e0cf;font-size:10px;font-weight:700}.stage-actions{display:flex;gap:8px;pointer-events:auto}.damage-hud{position:absolute;z-index:4;top:calc(max(18px,env(safe-area-inset-top)) + 54px);left:max(22px,env(safe-area-inset-left));display:grid;justify-items:center;gap:2px;width:52px;color:#d7e0dc;pointer-events:none;filter:drop-shadow(0 2px 7px rgb(12 20 22 / 38%))}.damage-hud svg{width:34px;height:56px}.damage-hud path{fill:#d6e0dc29;stroke:#d6e0dcb8;stroke-width:1.5;stroke-linejoin:round}.damage-hud path.is-light{fill:#e2b15a;stroke:#f3d48a}.damage-hud path.is-heavy{fill:#e85d3f;stroke:#ffb2a2}.damage-hud path.is-critical{fill:#ff4d3a;stroke:#ffe1da}.damage-hud path.is-hit{filter:brightness(1.45)}.damage-hud b{color:#b7c3bf;font-size:9px;font-style:normal;font-weight:800;letter-spacing:1px}.damage-hud.is-damaged b{color:#f1c54d}.minimap{position:absolute;z-index:4;top:calc(max(18px,env(safe-area-inset-top)) + 54px);right:max(22px,env(safe-area-inset-right));width:142px;height:107px;overflow:visible;pointer-events:none;filter:drop-shadow(0 2px 7px rgb(12 20 22 / 38%))}.minimap [data-minimap=route]{fill:none;stroke:#e6ece9d9;stroke-width:5}.minimap [data-minimap=checkpoints] circle{fill:#f1c54d;stroke:#0c141699;stroke-width:.8}.minimap [data-minimap=start]{fill:#55b77b;stroke:#0c141699;stroke-width:.8}.minimap [data-minimap=vehicle]{fill:#ff6a3d;stroke:#fff;stroke-width:1.5}.minimap [data-minimap=opponent]{fill:#5fd0e6;stroke:#fff;stroke-width:1.2}.icon-button{width:38px;height:38px;border:1px solid rgb(255 255 255 / 32%);border-radius:4px;color:#fff;background:#151f22ad;font-size:17px;font-weight:800;cursor:pointer;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.icon-button:active{transform:translateY(1px);background:#e85d3f}.icon-button.is-muted{color:#aeb9b8;border-color:#ffffff2e}.icon-button.ghost-toggle{color:#77dce7}.icon-button.camera-toggle,.icon-button.quality-toggle{color:#f1c54d;font-size:12px}.icon-button.ghost-toggle.is-hidden,.icon-button.ghost-toggle:disabled{color:#7a8584;border-color:#ffffff29;cursor:not-allowed;opacity:.64}.pace-note{position:absolute;z-index:4;top:max(18px,env(safe-area-inset-top));left:50%;display:flex;align-items:center;min-width:106px;height:40px;border-bottom:3px solid #f1c54d;background:#151f22c7;box-shadow:0 4px 12px #0a111347;transform:translate(-50%);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none}.pace-note span{min-width:47px;padding:0 8px;color:#b9c4c2;font-size:8px;font-weight:800;text-align:center}.pace-note span b{color:#fff;font-size:12px;font-variant-numeric:tabular-nums}.pace-note strong{display:grid;place-items:center;align-self:stretch;min-width:59px;padding:0 9px;border-left:1px solid rgb(255 255 255 / 16%);color:#f1c54d;font-size:20px;font-weight:950}.pace-note.is-compound strong{min-width:108px;font-size:14px}.race-hud{position:absolute;z-index:4;bottom:max(22px,env(safe-area-inset-bottom));left:50%;width:min(490px,calc(100% - 36px));transform:translate(-50%);filter:drop-shadow(0 4px 10px rgb(10 17 19 / 40%));pointer-events:none}.drift-score-hud{position:absolute;z-index:4;top:50%;left:max(22px,env(safe-area-inset-left));display:grid;gap:4px;min-width:168px;padding:16px 18px 14px;border-left:5px solid #f1c54d;color:#fff;background:linear-gradient(90deg,#0c1215c7,#0c12152e);pointer-events:none;transform:translateY(-50%);text-shadow:0 2px 10px rgb(8 12 14 / 55%)}.drift-score-hud[hidden]{display:none}.drift-score-hud>span{color:#f1c54d;font-size:12px;font-weight:900;letter-spacing:4px}.drift-score-hud>strong{color:#fff;font-family:Segoe UI,Inter,Impact,Arial,sans-serif;font-size:64px;font-style:italic;font-weight:950;font-variant-numeric:tabular-nums;line-height:.92}.drift-score-hud.is-chaining>strong{color:#77dce7}.drift-score-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.drift-score-meta div{display:grid;gap:2px}.drift-score-meta i{color:#8f9b99;font-size:9px;font-style:normal;font-weight:800;letter-spacing:1.4px}.drift-score-meta b{color:#dbe4e2;font-size:18px;font-variant-numeric:tabular-nums;font-weight:900}.drift-score-hud.is-chaining [data-hud=drift-chain]{color:#77dce7}.best-time-hud{position:absolute;bottom:100%;left:14px;display:flex;gap:7px;align-items:baseline;padding:5px 8px;color:#dbe4e2;background:#151f22b3;font-size:9px;font-variant-numeric:tabular-nums}.best-time-hud span{color:#77dce7;font-size:7px;font-weight:900}.best-time-hud [data-hud=best-label]{min-width:34px}.best-time-hud.is-hidden{display:none}.best-time-hud b{min-width:56px;padding-left:7px;border-left:1px solid rgb(255 255 255 / 18%);color:#aeb9b8;text-align:right}.best-time-hud .is-ahead,.split-feedback.is-ahead,.finish-splits em.is-ahead{color:#77dce7}.best-time-hud .is-behind,.split-feedback.is-behind,.finish-splits em.is-behind{color:#ff8268}.race-stats{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;min-height:45px;padding:0 94px 7px 14px;background:linear-gradient(90deg,#151f22db,#151f229e);clip-path:polygon(0 0,92% 0,100% 100%,0 100%)}.surface{color:#f1c54d;font-size:10px;font-weight:900}.timer{font-variant-numeric:tabular-nums;font-size:17px;font-weight:800}.checkpoint{display:flex;align-items:baseline;justify-content:flex-end;gap:5px;font-size:12px}.checkpoint span{color:#aeb9b8;font-size:9px;font-weight:800}.checkpoint.is-pulse{animation:checkpoint .5s ease-out}@keyframes checkpoint{50%{color:#f1c54d;transform:scale(1.22)}}.speedometer{position:absolute;right:14px;bottom:12px;display:grid;grid-template-columns:28px 1fr;grid-template-rows:1fr auto;align-items:center;width:112px;height:112px;padding:23px 15px 16px;border:5px solid rgb(239 197 77 / 88%);border-top-color:#e85d3fe0;border-radius:50%;background:#151f22d1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.speedometer .gear{grid-row:1 / 3;align-self:center;color:#f1c54d;font-size:18px;font-weight:900}.speedometer strong{align-self:end;font-size:28px;font-variant-numeric:tabular-nums;line-height:1}.speedometer small{color:#b9c4c2;font-size:8px;font-weight:800}.progress{position:relative;width:calc(100% - 106px);height:5px;overflow:hidden;background:#ffffff40}.progress i{display:block;width:var(--progress, 0%);height:100%;background:#e85d3f;transition:width .14s linear}.countdown{position:absolute;z-index:6;top:46%;left:50%;color:#f6ce52;font-size:88px;font-style:italic;font-weight:950;text-shadow:5px 6px 0 rgb(20 30 33 / 58%);transform:translate(-50%,-50%) scale(1.2);opacity:0;transition:opacity .12s ease,transform .12s ease}.countdown.is-visible{opacity:1;transform:translate(-50%,-50%) scale(1)}.countdown.is-wait{font-size:42px;letter-spacing:6px}.impact-feedback{position:absolute;z-index:6;top:21%;left:50%;padding:7px 13px;border-left:4px solid #e85d3f;color:#fff;background:#151f22bd;font-size:11px;font-weight:900;opacity:0;transform:translate(-50%,8px) scale(calc(1 + var(--impact, 0) * .08));transition:opacity 90ms ease,transform 90ms ease;pointer-events:none}.impact-feedback.is-visible{opacity:1;transform:translate(-50%) scale(calc(1 + var(--impact, 0) * .08))}.split-feedback{position:absolute;z-index:6;top:29%;left:50%;padding:8px 14px;border-top:3px solid #f1c54d;color:#fff;background:#151f22d1;font-size:12px;font-variant-numeric:tabular-nums;font-weight:900;opacity:0;transform:translate(-50%,8px);transition:opacity .12s ease,transform .12s ease;pointer-events:none}.split-feedback.is-visible{opacity:1;transform:translate(-50%)}.route-warning{position:absolute;z-index:6;top:35%;left:50%;min-width:132px;padding:7px 13px;border-left:4px solid #f0ad3d;color:#fff;background:#151f22d1;font-size:11px;font-weight:900;text-align:center;opacity:0;transform:translate(-50%,8px);transition:opacity .12s ease,transform .12s ease,border-color .12s ease;pointer-events:none}.route-warning.is-visible{opacity:1;transform:translate(-50%)}.route-warning.is-cliff{border-left-color:#e85d5a;color:#ffb1a2}.route-warning.is-shortcut{border-left-color:#e7ad45;color:#f6d27c}.route-warning.is-unsupported{border-left-color:#c982e8;color:#e7b8fa}.route-warning.is-off-route{border-left-color:#f0ad3d;color:#f6d27c}.overlay-panel{position:absolute;z-index:8;top:50%;left:50%;display:grid;justify-items:center;min-width:min(340px,calc(100% - 36px));padding:30px;border-top:4px solid #e85d3f;border-radius:4px;color:#fff;background:#141e21e8;box-shadow:0 18px 60px #00000057;transform:translate(-50%,-46%);visibility:hidden;opacity:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:opacity .16s ease,transform .16s ease,visibility .16s ease}.overlay-panel.is-visible{transform:translate(-50%,-50%);visibility:visible;opacity:1}.overlay-panel span{color:#f1c54d;font-size:12px;font-weight:900}.overlay-panel strong{margin:10px 0 18px;font-size:31px;font-variant-numeric:tabular-nums}.overlay-panel button{min-width:138px;padding:10px 17px;border:0;border-radius:3px;color:#152023;background:#f1c54d;font-size:13px;font-weight:900;cursor:pointer}.overlay-actions{display:flex;gap:8px}.overlay-panel button.secondary-action{border:1px solid rgb(255 255 255 / 30%);color:#fff;background:transparent}.finish-panel>strong{margin-bottom:12px}.finish-record{min-height:18px;margin:0 0 12px;color:#b7c2c0;font-size:10px;font-variant-numeric:tabular-nums;font-weight:800}.finish-record.is-best{color:#77dce7}.finish-splits{display:flex;gap:14px;margin-bottom:20px;padding-top:11px;border-top:1px solid rgb(255 255 255 / 18%)}.finish-splits span{display:grid;gap:3px;color:#aeb9b8;font-size:8px;text-align:center}.finish-splits b{color:#fff;font-size:12px;font-variant-numeric:tabular-nums}.finish-splits em{min-height:10px;color:#889492;font-size:8px;font-style:normal;font-variant-numeric:tabular-nums;font-weight:850}.finish-splits span.is-best,.finish-splits span.is-best b{color:#f1c54d}.finish-duel{width:min(420px,86vw);margin:0 0 14px}.finish-duel-head{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px}.finish-duel-head div{display:grid;gap:2px}.finish-duel-head b{color:#fff;font-size:12px}.finish-duel-head small{color:#8f9b99;font-size:10px}.finish-duel-rows{display:grid;gap:6px}.finish-duel-rows span{display:grid;grid-template-columns:28px 1fr 1fr auto;gap:8px;align-items:baseline;padding:6px 0;border-top:1px solid rgb(255 255 255 / 12%);color:#aeb9b8;font-size:10px;font-weight:800}.finish-duel-rows b,.finish-duel-rows em{color:#fff;font-size:12px;font-style:normal;font-variant-numeric:tabular-nums}.finish-duel-rows small{min-width:52px;text-align:right;font-variant-numeric:tabular-nums}.finish-duel-rows .is-ahead{color:#77dce7}.finish-duel-rows .is-behind{color:#e85d3f}.touch-controls{display:none}@media(min-width:981px)and (max-width:1280px){.garage-stages{width:280px}.garage-setup{width:312px}.garage-vehicle{width:min(420px,calc(100% - 660px))}.garage-vehicle h1{font-size:44px}}@media(pointer:coarse),(max-width:980px){.garage-header{top:10px;left:12px;right:12px;height:54px;padding:0 10px 0 8px}.garage-header-meta{display:none}.garage-header>b{display:none}.garage-brand>span{width:32px;height:32px;font-size:14px;box-shadow:3px 3px #e85d3f}.garage-brand strong{font-size:16px}.garage-vehicle{bottom:14px;left:calc((100% - 44px)/2);width:min(240px,calc(100% - 548px));transform:translate(-50%)}.garage-vehicle h1{font-size:18px;white-space:nowrap}.vehicle-card{flex-basis:54px;width:54px;height:42px}.garage-vehicle p{display:none}.stages-heading b{font-size:14px;letter-spacing:1px;white-space:nowrap}.stages-heading small{display:none}.vehicle-switcher{margin-top:10px}.vehicle-switcher button,.music-setup button{width:40px;height:36px}.garage-setup{top:74px;right:12px;bottom:12px;width:276px;border-radius:16px}.setup-scroll{padding:14px 12px 6px 16px}.garage-stages{top:74px;left:12px;bottom:118px;width:232px}.stages-heading{padding:0 4px}.stage-card{grid-template-columns:auto minmax(0,1fr);min-height:74px}.stage-card-map{display:none}.record-time{font-size:28px}.setup-section{padding:0 0 12px}.setup-section>small{margin-top:5px}.setup-section>.stage-record{margin-top:2px;font-size:10px}.setup-stage{font-size:22px}.stage-direction{margin-top:8px}.music-setup{padding-top:8px}.start-stage{min-height:46px;font-size:16px;border-radius:0 0 16px 16px}.topbar{padding:max(12px,env(safe-area-inset-top)) max(13px,env(safe-area-inset-right)) 0 max(13px,env(safe-area-inset-left))}.identity strong{font-size:14px}.drift-score-hud{top:calc(max(18px,env(safe-area-inset-top)) + 62px);left:max(12px,env(safe-area-inset-left));min-width:132px;padding:10px 12px 8px;transform:none}.drift-score-hud>strong{font-size:42px}.drift-score-meta b{font-size:15px}.icon-button{width:36px;height:36px}.pace-note{top:max(12px,env(safe-area-inset-top));min-width:92px;height:36px}.pace-note span{min-width:40px;padding:0 5px}.pace-note strong{min-width:52px;padding:0 7px;font-size:18px}.pace-note.is-compound strong{min-width:88px;font-size:12px}.race-hud{bottom:max(14px,env(safe-area-inset-bottom));width:min(340px,calc(100% - 112px))}.race-stats{min-height:39px;padding-right:72px}.surface,.checkpoint{display:none}.race-stats{grid-template-columns:1fr}.timer{font-size:14px}.speedometer{right:6px;bottom:8px;width:84px;height:84px;padding:17px 9px 13px;border-width:4px;grid-template-columns:20px 1fr}.speedometer strong{font-size:21px}.speedometer .gear{font-size:14px}.progress{width:calc(100% - 78px)}.touch-controls{position:absolute;z-index:5;inset:auto 0 max(16px,env(safe-area-inset-bottom));display:flex;align-items:flex-end;justify-content:space-between;padding:0 max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));pointer-events:none}.touch-steering,.touch-pedals{display:flex;align-items:flex-end;gap:10px;pointer-events:auto}.touch-controls button{display:grid;place-items:center;width:68px;height:68px;border:1.5px solid rgb(255 255 255 / 32%);border-radius:50%;color:#eef1eb;background:#121b1e8c;font-size:24px;font-weight:900;touch-action:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 6px 18px #0000004d;transition:transform 70ms ease,background 70ms ease,border-color 70ms ease}.touch-controls button i{font-size:12px;font-style:normal;font-weight:950;letter-spacing:1px}.touch-controls button:active{transform:scale(.92);border-color:#f1c54d;color:#f1c54d;background:#f1c54d3d}.touch-pedals .brake{margin-bottom:30px}.touch-pedals .handbrake{margin-bottom:54px;color:#ff8268;border-color:#e85d3f9e}.touch-pedals .handbrake:active{border-color:#e85d3f;color:#172126;background:#e85d3fd1}.touch-pedals .accelerator{width:84px;height:84px;border-color:#f1c54de5;color:#172126;background:#f1c54de0}.touch-pedals .accelerator:active{border-color:#ffe084;color:#172126;background:#ffdf7e}}@media(max-width:540px)and (orientation:portrait){.garage-preview{height:56%}.garage-vehicle{top:78px;bottom:auto;left:50%;width:calc(100% - 28px);transform:translate(-50%)}.garage-stages{display:none}.garage-setup{inset:auto 0 0;width:100%;max-height:52%;border-radius:20px 20px 0 0}.garage-setup:before{inset:0 0 auto;width:100%;height:4px;background:linear-gradient(90deg,#f1c54d,#e85d3f)}.start-stage{border-radius:0}}html.is-editor,html.is-editor body,html.is-editor #app,body.is-editor,body.is-editor #app{min-width:320px;height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto;-webkit-user-select:auto;user-select:auto;background:#11191c}html.is-editor{overflow-y:auto}.stage-editor{min-height:100vh;color:#eef1eb;background:#11191c}.editor-header{position:sticky;z-index:10;top:0;display:flex;align-items:center;justify-content:space-between;min-height:68px;padding:0 28px;border-bottom:1px solid #344044;background:#11191cf5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.editor-brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}.editor-brand>span{display:grid;place-items:center;width:36px;height:36px;color:#172126;background:#f1c54d;font-size:14px;font-weight:950;transform:skew(-7deg)}.editor-brand div{display:grid;gap:2px}.editor-brand strong{font-size:14px}.editor-brand small{color:#e85d3f;font-size:8px;font-weight:900}.editor-header nav{display:flex;gap:7px}.editor-header a.board-back,.editor-header button,.editor-section-title button,.inspector-actions button,.point-actions button,.editor-play,.form-save{min-height:36px;padding:0 14px;border:1px solid #465357;border-radius:3px;color:#dce2df;background:transparent;font-size:9px;font-weight:900;text-decoration:none;cursor:pointer}.editor-header button:hover,.editor-section-title button:hover,.inspector-actions button:hover,.point-actions button:hover{border-color:#f1c54d;color:#f1c54d}.editor-header button.editor-primary,.stage-form button.editor-primary{border-color:#f1c54d;color:#172126;background:#f1c54d}.editor-summary{display:grid;grid-template-columns:130px 130px 210px minmax(240px,1fr);align-items:stretch;min-height:84px;border-bottom:1px solid #344044;background:#172125}.editor-summary>div{display:grid;align-content:center;gap:5px;padding:0 24px;border-right:1px solid #344044}.editor-summary span,.editor-section-title span,.inspector-heading span,.stage-form label span{color:#8f9b99;font-size:8px;font-weight:900}.editor-summary strong{color:#f1c54d;font-size:18px;font-variant-numeric:tabular-nums}.editor-message{align-self:center;justify-self:end;max-width:520px;margin:0;padding:0 28px;color:#99a5a3;font-size:10px;font-weight:700;text-align:right}.editor-message.is-success{color:#66c38a}.editor-message.is-error{color:#ff8268}.submission-panel{padding:22px 28px;border-bottom:1px solid #344044;background:#141e21}.submission-panel .editor-section-title{margin-bottom:8px}.submission-help,.submission-empty{margin:0 0 14px;color:#8f9b99;font-size:10px;font-weight:700}.submission-list{display:grid;gap:8px}.submission-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:11px 13px;border:1px solid #344044;border-left:3px solid #e7ad45;background:#1a2528}.submission-row.is-approved{border-left-color:#55b77b}.submission-row.is-rejected{border-left-color:#e85d3f}.submission-main,.submission-meta{display:grid;gap:4px}.submission-main strong{color:#eef1eb;font-size:12px}.submission-main span,.submission-meta b,.submission-meta em,.submission-row p{color:#96a29f;font-size:9px;font-weight:800}.submission-meta{justify-items:end}.submission-status{color:#e7ad45!important}.submission-status.is-approved{color:#66c38a!important}.submission-status.is-rejected{color:#ff8268!important}.submission-row p{grid-column:1 / -1;margin:0;color:#ffb09e}.submission-actions{display:flex;gap:6px}.submission-actions button{min-height:30px;padding:0 9px;border:1px solid #465357;border-radius:3px;color:#dce2df;background:transparent;font-size:9px;font-weight:900;cursor:pointer}.submission-actions button:first-child{border-color:#55b77b;color:#8de0ab}.submission-actions button:last-child{border-color:#85493e;color:#ff8268}.submission-actions button:hover{filter:brightness(1.2)}.editor-workspace{display:grid;grid-template-columns:340px minmax(0,1fr);min-height:calc(100vh - 153px)}.stage-library{padding:28px 18px;border-right:1px solid #344044}.editor-section-title,.inspector-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.editor-section-title div,.inspector-heading div{display:grid;gap:5px}.editor-section-title h1,.inspector-heading h2{margin:0;font-size:21px;line-height:1.1}.stage-table{max-height:calc(100vh - 260px);overflow-y:auto;border-top:1px solid #344044}.stage-row{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:68px;padding:0 14px;border:0;border-bottom:1px solid #2a3538;color:#dfe5e2;background:transparent;text-align:left;cursor:pointer}.stage-row:hover{background:#182326}.stage-row.is-selected{box-shadow:inset 3px 0 #e85d3f;background:#202c2f}.stage-row>span:nth-child(2){display:grid;gap:4px;min-width:0}.stage-row strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.stage-row small{overflow:hidden;color:#889492;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.stage-row b{color:#c8d0ce;font-size:10px;font-variant-numeric:tabular-nums}.stage-row em{display:none}.stage-status{width:7px;height:7px;border-radius:50%;background:#687573}.stage-status.is-enabled{background:#55b77b;box-shadow:0 0 0 3px #55b77b24}.stage-inspector{min-width:0;padding:28px 32px 40px;background:#151e21}.editor-play{display:grid;place-items:center;border-color:#e85d3f;color:#fff;background:#e85d3f}.editor-play.is-disabled{border-color:#465357;color:#707c7a;background:transparent;pointer-events:none}.route-editor{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:16px;margin-bottom:28px}.route-canvas-wrap{position:relative;min-width:0}.route-preview{display:block;width:100%;height:clamp(380px,50vh,520px);border:1px solid #344044;border-radius:3px;background:#0f1719;cursor:grab;touch-action:none}.route-preview.is-dragging,.route-preview.is-panning{cursor:grabbing}.route-zoom{position:absolute;top:10px;left:10px;display:flex;overflow:hidden;border:1px solid #465357;border-radius:3px;background:#0f1719e0}.route-zoom button{min-width:28px;min-height:28px;padding:0 8px;border:0;border-right:1px solid #344044;color:#dce2df;background:transparent;font-size:11px;font-weight:900;cursor:pointer}.route-zoom button:last-child{border-right:0}.route-hint{position:absolute;right:10px;bottom:9px;padding:4px 6px;color:#788481;background:#0f1719d1;font-size:7px;font-weight:900;pointer-events:none}.route-legend{display:flex;flex-wrap:wrap;gap:7px 12px;margin-top:8px;color:#8f9b99;font-size:8px;font-weight:800}.route-legend span{display:inline-flex;align-items:center;gap:5px}.route-legend i,.danger-zone-index i{display:inline-block;width:9px;height:4px;border-radius:2px;background:#344044}.route-legend .legend-road{background:#344044}.route-legend .legend-shoulder{background:#b58b58}.route-legend .legend-safe{background:#4e8d72}.route-legend .legend-cliff,.danger-zone-index .legend-cliff{background:#e85d5a}.route-legend .legend-shortcut,.danger-zone-index .legend-shortcut{background:#e7ad45}.route-legend .legend-gravel{background:#8d694c}.surface-editor{display:grid;gap:8px;padding:13px;border:1px solid #344044;border-radius:3px;background:#1a2528}.surface-hint,.surface-range{margin:0;color:#8f9b99;font-size:8px;font-weight:800;line-height:1.5}.surface-range{color:#dce2df;font-variant-numeric:tabular-nums}.surface-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.surface-actions button{min-height:34px;border:1px solid #465357;border-radius:3px;color:#dce2df;background:transparent;font-size:9px;font-weight:900;cursor:pointer}.surface-actions button.is-active{color:#172126;background:#f1c54d;border-color:#f1c54d}.checkpoint-actions button:disabled{opacity:.45;cursor:not-allowed}.generate-editor,.generate-form{display:grid;gap:8px}.generate-editor{padding:13px;border:1px solid #344044;border-radius:3px;background:#1a2528}.generate-form textarea,.generate-grid input,.generate-grid select,.stage-form small{color:#dce2df}.generate-form textarea{width:100%;min-height:72px;padding:8px;border:1px solid #3d4a4e;border-radius:3px;background:#11191c;font:inherit;resize:vertical}.generate-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.generate-grid label,.stage-form label{display:grid;gap:4px}.stage-form small{color:#8f9b99;font-size:8px;font-weight:800}.route-point-form{display:grid;align-self:start;align-content:start;gap:10px;padding:13px;border:1px solid #344044;border-radius:3px;background:#1a2528}.point-heading{display:grid;gap:3px;padding-bottom:8px;border-bottom:1px solid #344044}.point-heading span,.point-coordinates label span{color:#8f9b99;font-size:7px;font-weight:900}.point-heading strong{color:#f1c54d;font-size:12px;font-variant-numeric:tabular-nums}.point-coordinates{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px}.point-coordinates label{display:grid;gap:4px;min-width:0}.point-coordinates input{width:100%;min-width:0;height:31px;padding:0 5px;border:1px solid #3d4a4e;border-radius:3px;color:#eef1eb;background:#11191c;font-size:9px;font-variant-numeric:tabular-nums;font-weight:800;appearance:textfield}.point-coordinates input::-webkit-inner-spin-button,.point-coordinates input::-webkit-outer-spin-button{margin:0;appearance:none}.point-actions{display:grid;gap:5px}.point-actions button{width:100%;min-height:29px;padding:0 6px;font-size:7px}.point-actions button:first-child{border-color:#f1c54d;color:#172126;background:#f1c54d}.point-actions button.danger-action{color:#ff8268;border-color:#85493e}.point-actions button:disabled{color:#5c6867;border-color:#303b3e;cursor:not-allowed}.route-analysis{grid-column:1 / -1;display:grid;gap:10px;padding:13px 0 0;border-top:1px solid #344044}.route-analysis-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.route-analysis-heading>div:first-child{display:grid;gap:4px}.route-analysis-heading span{color:#8f9b99;font-size:8px;font-weight:900}.route-analysis-heading strong{color:#55b77b;font-size:10px}.route-analysis.is-warning .route-analysis-heading strong{color:#f0ad3d}.route-analysis.is-error .route-analysis-heading strong{color:#ff8268}.route-analysis-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.route-analysis-actions button{min-height:30px;padding:0 10px;border:1px solid #536164;border-radius:3px;color:#dce2df;background:transparent;font-size:8px;font-weight:900;cursor:pointer}.route-analysis-actions button:first-child{border-color:#f0ad3d;color:#f0ad3d}.route-analysis-actions button:hover{border-color:#f1c54d;color:#f1c54d}.route-analysis>p{margin:0;color:#81908d;font-size:9px}.route-issue-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px}.route-issue{display:grid;gap:4px;min-width:0;min-height:54px;padding:9px 10px;border:1px solid #465357;border-left-width:3px;border-radius:3px;color:#dce2df;background:#1a2528;text-align:left;cursor:pointer}.route-issue.is-warning{border-left-color:#f0ad3d}.route-issue.is-error{border-left-color:#ff655c}.route-issue:hover{border-color:#f1c54d}.route-issue strong{font-size:9px}.route-issue span{overflow-wrap:anywhere;color:#8f9b99;font-size:8px;line-height:1.45}.stage-status.is-invalid{background:#ff655c;box-shadow:0 0 0 3px #ff655c24}.stage-rules{display:grid;gap:14px;margin-bottom:28px;padding-top:20px;border-top:1px solid #344044}.rules-heading{margin-bottom:0}.rules-heading h2{margin:0;font-size:17px}.rules-summary{color:#f1c54d;font-size:8px;font-weight:900;white-space:nowrap}.rules-form{display:grid;gap:14px}.rules-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.rules-grid label,.danger-zone-row label{display:grid;gap:5px;min-width:0}.rules-grid label>span,.danger-zone-row label>span{color:#8f9b99;font-size:8px;font-weight:900}.rules-grid input,.danger-zone-row input,.danger-zone-row select{width:100%;min-width:0;height:34px;padding:0 8px;border:1px solid #3d4a4e;border-radius:3px;color:#eef1eb;background:#202b2e;font-size:10px;font-variant-numeric:tabular-nums;font-weight:800}.rules-grid input:focus,.danger-zone-row input:focus,.danger-zone-row select:focus{border-color:#f1c54d;outline:1px solid #f1c54d}.rules-grid small{overflow:hidden;color:#687674;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.danger-zone-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:5px;border-top:1px solid #2e3a3d}.danger-zone-heading>div{display:grid;gap:4px}.danger-zone-heading span{color:#8f9b99;font-size:8px;font-weight:900}.danger-zone-heading strong{color:#c6cfcc;font-size:10px}.danger-zone-heading button{min-height:30px;padding:0 10px;border:1px solid #536164;border-radius:3px;color:#e7ad45;background:transparent;font-size:8px;font-weight:900;cursor:pointer}.danger-zone-heading button:hover{border-color:#f1c54d;color:#f1c54d}.danger-zone-list{display:grid;gap:7px}.empty-danger-zones{margin:0;padding:12px;border:1px dashed #465357;color:#81908d;font-size:9px}.danger-zone-row{display:grid;grid-template-columns:38px 1fr 1fr 90px 1.2fr 110px 44px;align-items:end;gap:7px;padding:9px;border:1px solid #344044;border-left:3px solid #e85d5a;border-radius:3px;background:#1a2528}.danger-zone-row.is-shortcut{border-left-color:#e7ad45}.danger-zone-index{display:flex;align-items:center;gap:6px;height:34px;color:#f1c54d;font-size:11px;font-variant-numeric:tabular-nums}.danger-zone-index i{width:12px;height:6px}.danger-remove{height:34px;border:1px solid #85493e;border-radius:3px;color:#ff8268;background:transparent;font-size:8px;font-weight:900;cursor:pointer}.danger-remove:hover{border-color:#ff8268;background:#e85d3f1f}.stage-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.stage-form label{display:grid;gap:6px}.stage-form input{width:100%;min-width:0;height:38px;padding:0 10px;border:1px solid #3d4a4e;border-radius:3px;color:#eef1eb;background:#202b2e;font-size:11px;font-weight:750}.stage-form input:focus{border-color:#f1c54d;outline:1px solid #f1c54d}.form-facts{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:7px;padding:12px 0 2px}.form-facts span{padding:6px 8px;border-left:2px solid #596668;color:#9ca7a5;background:#1d282b;font-size:8px;font-weight:850}.stage-form .form-save{grid-column:1 / -1;height:40px}.inspector-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin-top:14px;padding-top:14px;border-top:1px solid #344044}.inspector-actions button:disabled{color:#5c6867;border-color:#303b3e;cursor:not-allowed}.inspector-actions button.danger-action{color:#ff8268;border-color:#85493e}.empty-catalog{color:#8f9b99;font-size:12px}@media(max-width:900px){.submission-panel{padding:18px}.submission-row{grid-template-columns:1fr;justify-items:start}.submission-meta{justify-items:start}.editor-header{align-items:flex-start;gap:14px;padding:16px 18px}.editor-header nav{flex-wrap:wrap;justify-content:flex-end}.editor-summary{grid-template-columns:repeat(3,1fr)}.editor-message{grid-column:1 / -1;justify-self:stretch;padding:13px 18px;border-top:1px solid #344044;text-align:left}.editor-workspace{grid-template-columns:1fr}.stage-library{border-right:0;border-bottom:1px solid #344044}.stage-table{max-height:280px}}@media(max-width:580px){.editor-header{position:static;display:grid}.editor-header nav{display:grid;grid-template-columns:1fr 1fr 1fr}.editor-header nav button{padding:0 7px}.editor-summary{grid-template-columns:1fr 1fr}.editor-summary>div:nth-child(3){grid-column:1 / -1;min-height:64px;border-top:1px solid #344044}.stage-library,.stage-inspector{padding:24px 16px}.stage-row{grid-template-columns:14px minmax(130px,1fr) 80px;gap:9px;padding:0 8px}.stage-row em{display:none}.stage-form,.route-editor{grid-template-columns:1fr}.route-preview{height:330px}.rules-grid{grid-template-columns:1fr 1fr}.danger-zone-row{grid-template-columns:34px 1fr 1fr 1fr}.danger-zone-row label:nth-of-type(3),.danger-zone-row label:nth-of-type(4),.danger-zone-row label:nth-of-type(5){grid-column:span 1}.danger-remove{grid-column:4}.route-point-form{grid-template-columns:90px minmax(0,1fr);align-items:end}.point-heading{align-self:stretch}.point-actions{grid-column:1 / -1;grid-template-columns:1fr 1fr 1fr}.stage-form .form-save,.form-facts{grid-column:1}}@media(max-width:390px){.rules-grid{grid-template-columns:1fr}.danger-zone-row{grid-template-columns:34px 1fr 1fr}.danger-zone-row label,.danger-zone-row label:nth-of-type(3),.danger-zone-row label:nth-of-type(4),.danger-zone-row label:nth-of-type(5){grid-column:span 1}.danger-remove{grid-column:3}}@media(max-width:540px)and (orientation:portrait){.stage-actions{gap:4px}.stage-actions .icon-button{width:32px;height:32px;font-size:14px}.stage-actions .camera-toggle{font-size:10px}.race-hud{bottom:92px;width:min(330px,calc(100% - 28px))}.touch-controls{bottom:max(14px,env(safe-area-inset-bottom))}}[hidden]{display:none!important}.stage-editor{font-size:13px}.stage-editor .editor-brand small,.stage-editor .stage-row small,.stage-editor .route-legend,.stage-editor .route-hint,.stage-editor .surface-hint,.stage-editor .surface-range,.stage-editor .stage-form small,.stage-editor .rules-grid small,.stage-editor .form-facts span,.stage-editor .editor-summary span,.stage-editor .editor-section-title span,.stage-editor .inspector-heading span,.stage-editor .stage-form label span,.stage-editor .point-heading span,.stage-editor .point-coordinates label span,.stage-editor .route-analysis-heading span,.stage-editor .rules-grid label>span,.stage-editor .danger-zone-row label>span,.stage-editor .danger-zone-heading span,.stage-editor .rules-summary,.stage-editor .generate-grid label span{font-size:12px}.stage-editor .editor-header button,.stage-editor .editor-section-title button,.stage-editor .inspector-actions button,.stage-editor .point-actions button,.stage-editor .route-analysis-actions button,.stage-editor .surface-actions button,.stage-editor .danger-zone-heading button,.stage-editor .danger-remove,.stage-editor .editor-play,.stage-editor .form-save{font-size:13px}.stage-editor .editor-message{font-size:14px}.stage-editor .stage-row strong{font-size:15px}.stage-editor .stage-row b,.stage-editor .stage-row em{font-size:12px}.stage-editor .point-heading strong,.stage-editor .route-analysis-heading strong{font-size:15px}.stage-editor .point-coordinates input,.stage-editor .rules-grid input,.stage-editor .danger-zone-row input,.stage-editor .danger-zone-row select,.stage-editor .stage-form input,.stage-editor .generate-form textarea,.stage-editor .generate-grid input,.stage-editor .generate-grid select{font-size:13px}.stage-editor .point-coordinates input{height:34px}.stage-editor .point-actions button{min-height:34px}.stage-editor .route-issue strong{font-size:13px}.stage-editor .route-issue span,.stage-editor .route-analysis>p{font-size:12px}html.is-board,html.is-board body,html.is-board #app,body.is-board,body.is-board #app{min-width:320px;height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto;-webkit-user-select:auto;user-select:auto;background:#11191c}html.is-board{overflow-y:auto}.board-page{min-height:100vh;color:#eef1eb;background:radial-gradient(ellipse 70% 40% at 80% 0%,rgb(241 197 77 / 10%),transparent 58%),#11191c}.board-header{position:sticky;z-index:10;top:0;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:68px;padding:0 28px;border-bottom:1px solid #344044;background:#11191cf5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.board-tabs{display:flex;gap:7px}.board-tabs button,.board-dirs button,.board-back{min-height:36px;padding:0 14px;border:1px solid #465357;border-radius:3px;color:#dce2df;background:transparent;font-size:12px;font-weight:800;text-decoration:none}.board-tabs button.is-active,.board-dirs button.is-active{color:#172126;background:#f1c54d;border-color:#f1c54d}.board-back{display:grid;place-items:center}.board-back:hover,.board-tabs button:hover,.board-dirs button:hover,.board-stage:hover{border-color:#f1c54d;color:#f1c54d}.board-status,.board-empty{margin:48px auto;max-width:640px;color:#9aa6a3;text-align:center;font-size:14px}.board-status.is-error{color:#e85d3f}.board-layout,.board-split{display:grid;grid-template-columns:240px minmax(0,1fr);gap:18px;width:min(1180px,calc(100% - 48px));margin:24px auto 48px}.board-split{grid-template-columns:1fr 1fr}.board-wide{width:min(1180px,calc(100% - 48px));margin:24px auto 48px}.board-stages{display:grid;align-content:start;gap:8px}.board-stage,.board-panel{border:1px solid #344044;border-radius:12px;background:#141c1fd1}.board-stage{display:grid;gap:3px;padding:12px 14px;color:inherit;text-align:left}.board-stage.is-active{border-color:#f1c54d;background:#f1c54d1a}.board-stage b{color:#77dce7;font-size:11px}.board-stage strong{font-size:14px}.board-stage small{color:#8f9b99;font-size:11px}.board-panel{overflow:hidden;padding:8px 0 12px}.board-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:10px 18px 12px}.board-toolbar strong{display:block;font-size:16px}.board-toolbar small{color:#8f9b99;font-size:11px}.board-dirs{display:flex;gap:6px}.board-table{width:100%;border-collapse:collapse}.board-table th,.board-table td{padding:10px 18px;border-top:1px solid rgb(255 255 255 / 8%);text-align:left;font-size:13px;font-variant-numeric:tabular-nums}.board-table th{color:#8f9b99;font-size:11px;font-weight:800}.board-table td small{display:block;color:#8f9b99;font-size:11px;font-weight:600}.board-table tr.is-me{background:#f1c54d1f}.board-recent{margin:0;padding:0 18px;list-style:none}.board-recent li{display:grid;grid-template-columns:auto auto auto 1fr;gap:8px;align-items:baseline;padding:10px 0;border-top:1px solid rgb(255 255 255 / 8%);font-size:13px}.board-recent li.is-me{color:#f1c54d}.board-recent span{color:#8f9b99}.board-recent small{grid-column:1 / -1;color:#8f9b99;font-size:11px}@media(max-width:900px){.board-header{flex-wrap:wrap;min-height:auto;padding:12px 16px}.board-layout,.board-split,.board-wide{grid-template-columns:1fr;width:calc(100% - 24px);margin:16px auto 32px}}
