@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(./ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(./ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(./ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(./ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(./ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(./ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:700;src:url(data:font/woff2;base64,d09GMgABAAAAAAQMABAAAAAAB+AAAAOwAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbgQwcLgZgP1NUQVQqAFwRCAqDJIJtCxQAATYCJAMiBCAFhEYHZwwHG3oGIxFmfM0O8M/D2IE2KXexlvRX30jl4k0ByoIFW5Pm075+YpPjCMK6+K9Osusn4APwSeKJ0ARA/zfCdz9c0xILi5BPgVU7UACUe6B7QO0mZzupNnE5/rFs1LZf+AIRJzI3rkEf/YdjYxmFr42NC6Q839aFT4hla06fRTcFxCDqdm5WoAtIQshCoG2qheXlV1x9ff23O2Tf3fXffZv999RfgYpA7LbDvntqIhCKlqbQFBKakuEKFjRRkqFa83rN1eChoJIElHjEY5huuu3gAmICbC/po/SQGunUtDFWwzixpbmxkUXUQPIDWHOZNbnM6NF35U+qPOX7GEmc+8KL0mLpe0bLQmgK9BcYLh200877R0ESEO30EEjI6C8L9FesjJ6akrrRlnGZxyONvquC7hvVp36BZcQH6wr9MiEqeoEW6IsOdsLZGE6GrFIlg3cIFZDNOUXRc6tOqd0+aDK79tBNso2ily0l1fLOzu3dtjn19dfjmDtfeGOjjZ54RZC/3j711eHtN2h557TXXnP0bc++uv76dz15k6NfUxbfGNV5tUv7Rp9Dp/mw/PrtxPn3nxHPDHPcXf36Ct89+f2Tje/23z91xXc/3/HzqVjujbOurV17wOv637034uzFR579nnBtnuy168WLbaSuOOngf6u8aXGPIY/sU520Wn+lk5VnbvNXW36zXS5edGfh/IXW+1526gV/71vZuLT1kLeOvGbQ5HWHq56vO+2+Z2orOW6525WL9O+72eabLfDYWeME7e2e//Kma5/3ycsXfv1vY1z36wsHbXrixltthQ+kiQINjVibZnfTK2ZDkB/Kz/Pgy2cRdx5w/rdL9t6q1+K/NXP+Eh8sdebx8OHm49YR1e2n1SUQ/FSq88Piv9/zQx+02sybW9HCt1v9qbl8jQnop6dAyyKKofJT9ksCbUfKorRwSwyVhdA3mkLSDEI224tCMdxdQs2GthTqhluW72lBXVEUXTa3NYM5G4EkiA7+YY5hrznO/rYkw7GJLakELYE7Pz651b/Q1Rmw4Q5VdgeWLaFeGZEFHW0E3kFU7WdKVmS8JAy8WV8ANl4tVuzVK1rp9ZI622L0TZRefpBd5wEaoZUjZWVMx8RUbsThlXgmXVgow/fNzNbNsHq07Eon2xlBspLcL0IZ1E60jiiowKPu2Jzrt9KNWexWFxnv2cL4fSQ5cpSoRb2+zFcd/nVpV5co3VL+zTHdTUvbfLsOlKThqk0jWXBNMhM6V9T+hBNuKwEAAA==)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:700;src:url(./unbounded-cyrillic-700-normal-BnWDpkfm.woff2)format("woff2"),url(./unbounded-cyrillic-700-normal-BKv7sql3.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:700;src:url(./unbounded-vietnamese-700-normal-CjKRcRIV.woff2)format("woff2"),url(./unbounded-vietnamese-700-normal-Bvu7IMCd.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:700;src:url(./unbounded-latin-ext-700-normal-BLzWLLjG.woff2)format("woff2"),url(./unbounded-latin-ext-700-normal-C5zWdd_U.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:700;src:url(./unbounded-latin-700-normal-CaoNriVp.woff2)format("woff2"),url(./unbounded-latin-700-normal-CZtriu5h.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#0a0b0c;--panel:#111315;--panel-2:#16191c;--line:#2a2e33;--line-strong:#3a4047;--text:#e6e3dc;--muted:#8b8a85;--accent:#ff5b1f;--cyan:#4fd1e0;--ok:#5fcf7a;--warn:#f2c14e;--bad:#ff3b3b;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--font-display:"Unbounded", var(--font-mono);--radius:2px;--gap:12px;--header-h:52px;--fs-xs:10px;--fs-s:11px;--fs-m:13px;--fs-l:18px;--track:.08em}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-mono);font-size:var(--fs-m);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;margin:0;padding:0}body{overflow:hidden}.app{grid-template-rows:var(--header-h) minmax(0, 1fr);height:100vh;height:100dvh;display:grid}.header{border-bottom:1px solid var(--line);background:var(--panel);align-items:center;gap:16px;min-width:0;padding:0 16px;display:flex}.brand{font-family:var(--font-display);font-weight:700;font-size:var(--fs-l);letter-spacing:.02em;white-space:nowrap}.brand__slash{color:var(--accent)}.header__meta{color:var(--muted);font-size:var(--fs-s);text-transform:uppercase;letter-spacing:var(--track);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.columns{grid-template-columns:300px minmax(0,1fr) 320px;min-height:0;display:grid}.col{border-right:1px solid var(--line);background:var(--panel);min-width:0;overflow-y:auto}.col:last-child{border-right:none}.col--stage{background:var(--bg);min-height:0;position:relative}.section{border-bottom:1px solid var(--line);padding:14px 16px;position:relative}.section:before{content:"";background:var(--accent);width:16px;height:1px;position:absolute;top:-1px;left:0}.section__title{font-size:var(--fs-s);text-transform:uppercase;letter-spacing:var(--track);color:var(--muted);margin:0 0 10px;font-weight:500}.section__num{color:var(--accent);margin-right:6px}.placeholder{font-family:var(--font-display);font-size:var(--fs-m);color:var(--muted)}.stage__placeholder{text-align:center;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.modes{flex-shrink:0;gap:6px;display:flex}.stage__boards{grid-template-columns:minmax(0,1fr);display:grid;position:absolute;inset:0}.app[data-mode=compare] .stage__boards{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.stage__board{min-width:0;min-height:0;position:relative}.stage__board[hidden]{display:none}.stage__board+.stage__board{border-left:1px solid var(--line)}.stage__tag{font-family:var(--font-display);font-size:var(--fs-l);color:var(--accent);pointer-events:none;position:absolute;bottom:52px;right:12px}.stage__turn{font-size:var(--fs-xs);letter-spacing:var(--track);color:var(--accent);background:color-mix(in srgb, var(--bg) 80%, transparent);border:1px solid var(--line);pointer-events:none;padding:2px 6px;position:absolute;top:64px;right:12px}.stage__turn[hidden],.app[data-mode=build] .stage__tag,.app[data-mode=test] .stage__tag{display:none}.stage__viewport{position:absolute;inset:0;overflow:hidden}.stage__canvas{touch-action:none;width:100%;height:100%;display:block}.stage__labels{pointer-events:none;position:absolute;inset:0}.stage__labels[hidden]{display:none}.stage__leaders{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.stage__leaders polyline{fill:none;stroke:var(--muted);stroke-width:1px}.stage__leaders circle{fill:var(--accent)}.stage__label{border:1px solid var(--line);background:var(--panel);color:var(--text);font-family:var(--font-mono);font-size:var(--fs-s);white-space:nowrap;padding:1px 6px;line-height:14px;position:absolute;transform:translateY(-50%)}.stage__label[data-side=left]{transform:translate(-100%,-50%)}.stage__views{pointer-events:none;flex-wrap:wrap;gap:6px;display:flex;position:absolute;bottom:12px;left:12px;right:12px}.chip{pointer-events:auto;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel);min-height:28px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--track);cursor:pointer;padding:4px 10px}.chip:hover{color:var(--text);border-color:var(--muted)}.chip[aria-pressed=true]{color:var(--text);border-color:var(--accent)}.chip--hold{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-style:dashed}.chip--hold[hidden]{display:none}.stage__top{pointer-events:none;gap:6px;display:grid;position:absolute;top:12px;left:12px;right:12px}.lean{pointer-events:auto;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel);grid-template-columns:auto auto minmax(0,1fr) auto 7ch auto;align-items:center;gap:8px;padding:6px 10px;display:grid}.lean[data-wide=true]{grid-template-columns:auto auto minmax(0,1fr) auto 18ch auto}.lean__label,.lean__side{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--track);color:var(--muted)}.lean__input{width:100%;min-width:0;min-height:28px;accent-color:var(--accent);margin:0}.lean__value{text-align:right;font-size:var(--fs-m);color:var(--text)}.lean__value[data-tone=bad]{color:var(--bad)}.lean__reset{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel);min-height:28px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);cursor:pointer;padding:2px 8px}.lean__reset:hover,.lean__reset:focus-visible{color:var(--text);border-color:var(--accent)}.banners{gap:4px;display:grid}.banners[hidden]{display:none}.banner{border:1px solid var(--warn);border-radius:var(--radius);background:var(--panel);color:var(--warn);font-size:var(--fs-s);border-left-width:3px;padding:6px 10px}.banner[data-tone=bad]{border-color:var(--bad);color:var(--bad)}.spec{gap:14px;display:grid}.metrics__group{gap:4px;min-width:0;display:grid}.metrics{margin:0;display:grid}.metric{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:8px;min-width:0;padding:3px 0;display:flex}.metric__label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--track);color:var(--muted);min-width:0}.metric__value{font-size:var(--fs-s);color:var(--text);text-align:right;white-space:nowrap;margin:0}[data-col=spec] .metric{flex-wrap:wrap;row-gap:1px}[data-col=spec] .metric__value{white-space:normal;min-width:0;margin-left:auto}.metric[data-tone=bad] .metric__value{color:var(--bad)}.metric[data-tone=warn] .metric__value{color:var(--warn)}.metric[data-tone=ok] .metric__value{color:var(--ok)}.riser{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);font-size:var(--fs-s);gap:4px;margin-top:10px;padding:8px 10px;display:grid}.riser[hidden]{display:none}.riser__head{color:var(--text)}.riser__head[data-tone=ok]{color:var(--ok)}.riser__head[data-tone=warn]{color:var(--warn)}.riser__head[data-tone=bad]{color:var(--bad)}.riser__apply{color:var(--text);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.riser__note{font-size:var(--fs-xs);color:var(--muted)}.bpick{gap:6px;min-width:0;margin-top:14px;display:grid}.bpick[hidden]{display:none}.bpick__body{gap:2px;min-width:0;display:grid}.bpick__head{font-size:var(--fs-xs);color:var(--muted)}.bpick__row{border-radius:var(--radius);width:100%;color:var(--text);font:inherit;font-size:var(--fs-xs);text-align:left;font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:1px solid #0000;grid-template-columns:minmax(0,1fr) 3.4em 3.8em 4.2em 5.6em;align-items:baseline;gap:4px;padding:4px 6px;display:grid}.bpick__row--head{color:var(--muted);cursor:default}.bpick__row[data-in-range=true]{border-color:var(--ok);background:color-mix(in srgb, var(--ok) 10%, transparent)}.bpick__row[aria-pressed=true] .bpick__name{color:var(--accent)}.bpick__row:not(.bpick__row--head):hover{border-color:var(--muted)}.bpick__name{overflow-wrap:anywhere}.bpick__lim{color:var(--muted)}.goal{gap:6px;min-width:0;margin-bottom:14px;display:grid}.goal[hidden]{display:none}.goal__body{gap:8px;min-width:0;display:grid}.goal__head{font-size:var(--fs-xs);color:var(--muted)}.goal__card{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);font-size:var(--fs-xs);gap:6px;min-width:0;padding:8px 10px 8px 30px;display:grid;position:relative}.goal__rank{font-family:var(--font-display);font-size:var(--fs-m);color:var(--accent);position:absolute;top:7px;left:9px}.goal__parts,.goal__why{overflow-wrap:anywhere;gap:2px;margin:0;padding:0;list-style:none;display:grid}.goal__parts{color:var(--text)}.goal__why{color:var(--muted)}.goal__why li:before{content:"· "}.goal__nums{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:0;display:grid}.goal__nums dt{color:var(--muted);font-size:var(--fs-xs)}.goal__nums dd{color:var(--cyan);font-size:var(--fs-s);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0}.goal__actions{flex-wrap:wrap;gap:6px;display:flex}.tune{gap:6px;min-width:0;margin-bottom:14px;display:grid}.tune[hidden]{display:none}.tune__goals{flex-wrap:wrap;gap:4px;display:flex}.tune__body{gap:6px;min-width:0;display:grid}.tune__base{font-size:var(--fs-xs);color:var(--muted);overflow-wrap:anywhere;margin:0}.tune__row{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);font-size:var(--fs-xs);gap:4px;min-width:0;padding:6px 10px;display:grid}.tune__label{color:var(--text);overflow-wrap:anywhere}.tune__nums{font-family:var(--font-mono);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;flex-wrap:wrap;gap:2px 10px;margin:0;padding:0;list-style:none;display:flex}.tune__nums li{min-width:0}.tune__nums li[data-main]{font-weight:700}.tune__nums li[data-tone=good]{color:var(--ok)}.tune__nums li[data-tone=bad]{color:var(--bad)}.tune__nums li[data-tone=zero]{color:var(--muted)}.curves{gap:6px;margin-top:14px;display:grid}.curves[hidden]{display:none}.curves__chart{background:var(--bg);border:1px solid var(--line);width:100%;max-width:420px;height:auto;display:block}.curves__chart text{font-family:var(--font-mono);font-size:var(--fs-xs);fill:var(--muted)}.curves__chart .curves__title{fill:var(--text);letter-spacing:var(--track)}.curves__frame{fill:none;stroke:var(--line-strong)}.curves__grid{stroke:var(--line);stroke-width:.5px}.curves__line{fill:none;stroke-width:1.8px;stroke-linejoin:round}.curves__line[data-side=a],.curves__dot[data-side=a]{stroke:var(--accent)}.curves__line[data-side=b],.curves__dot[data-side=b]{stroke:var(--cyan)}.curves__dot{fill:var(--bg);stroke-width:2px}.curves__bite{fill:var(--bad);fill-opacity:.12}.curves__marker{stroke-dasharray:3 3;stroke-width:1px;stroke:var(--muted)}.curves__marker[data-tone=bite]{stroke:var(--bad)}.curves__marker[data-tone=stop]{stroke:var(--warn)}.curves__chart .curves__mlabel[data-tone=bite]{fill:var(--bad)}.curves__chart .curves__mlabel[data-tone=stop]{fill:var(--warn)}.curves__rider{stroke:var(--ok);stroke-dasharray:5 3;stroke-width:1px}.curves__chart .curves__note{fill:var(--ok)}.curves__legend{font-size:var(--fs-xs);color:var(--muted);flex-wrap:wrap;gap:10px;display:flex}.curves__key[data-side=a]{color:var(--accent)}.curves__key[data-side=b]{color:var(--cyan)}.curves__key:before{content:"— "}.speed{gap:6px;margin-top:14px;display:grid}.speed[hidden]{display:none}.speed__line[data-surface=wet]{stroke-dasharray:4 3}.speed__slip{fill:var(--bad);fill-opacity:.1}.speed__chart .speed__sliplabel{fill:var(--bad)}.speed__chart .speed__kmh{font-size:9px}.speed__chart .speed__klabel{fill:var(--text)}.speed__out{font-size:var(--fs-s);color:var(--muted);overflow-wrap:anywhere}.wobble{gap:6px;margin-top:14px;display:grid}.wobble[hidden]{display:none}.wobble__body{gap:6px;display:grid}.wobble__zone{fill:var(--bad);fill-opacity:.08}.wobble__chart .wobble__zlabel[data-zone=up]{fill:var(--bad)}.wobble__chart .wobble__zlabel[data-zone=down]{fill:var(--ok)}.wobble__zero{stroke:var(--line-strong);stroke-width:1px}.wobble__vline{stroke-dasharray:3 3;stroke-width:1px}.wobble__vline[data-side=a]{stroke:var(--accent)}.wobble__vline[data-side=b]{stroke:var(--cyan)}.wobble__chart .wobble__vlabel{fill:var(--text)}.wobble__status:empty{display:none}.wobble__status,.wobble__note{font-size:var(--fs-xs);color:var(--muted);margin:0}.wobble__why{font-size:var(--fs-s);color:var(--muted);overflow-wrap:anywhere;margin:0;padding-left:16px}.wobble__delta{font-size:var(--fs-s);color:var(--text);overflow-wrap:anywhere}.wobble-live{border-top:1px solid var(--line);gap:6px;margin-top:10px;padding-top:10px;display:grid}.wobble-live__env{fill:none;stroke-width:1px;stroke-dasharray:3 3}.wobble-live__env[data-side=a]{stroke:var(--accent)}.wobble-live__env[data-side=b]{stroke:var(--cyan)}.wobble-live__stop{stroke:var(--bad);stroke-width:1px;stroke-dasharray:1 3}.wobble-live__cursor{stroke:var(--text);stroke-width:1px;stroke-opacity:.6}.descent{gap:6px;margin-top:14px;display:grid}.descent[hidden]{display:none}.descent__body{gap:6px;display:grid}.descent__selects{grid-template-columns:1fr 1fr;gap:6px;display:grid}.descent__hline{stroke-width:1px}.descent__hline[data-kind=wobble]{stroke-dasharray:5 3}.descent__hline[data-kind=grip]{stroke-dasharray:1 3;stroke-linecap:round;stroke-width:1.5px}.descent__hline[data-side=a]{stroke:var(--accent)}.descent__hline[data-side=b]{stroke:var(--cyan)}.descent__brake{fill:none;stroke:var(--warn);stroke-width:2px;stroke-linejoin:round}.descent__brake[data-side=b]{stroke-dasharray:4 2}.curves__dot.descent__brake-start{stroke:var(--warn)}.descent__brake-out{border-left:2px solid var(--warn);padding-left:6px}.descent__chart .descent__hlabel{fill:var(--text);paint-order:stroke;stroke:var(--panel);stroke-width:3px}.passport{gap:6px;margin-bottom:14px;display:grid}.passport[hidden]{display:none}.passport__status{color:var(--muted);font-size:var(--fs-xs)}.passport__body{gap:6px;display:grid}.passport__card{border:1px solid var(--line);background:var(--panel-2);gap:2px;padding:4px;display:grid}.passport__row{width:100%;color:var(--text);font:inherit;font-size:var(--fs-s);text-align:left;cursor:pointer;background:0 0;border:0;gap:2px;padding:4px 6px;display:grid}.passport__row:hover,.passport__row:focus-visible{background:var(--panel);outline:1px solid var(--line-strong)}.passport__label{font-size:var(--fs-xs);color:var(--muted);letter-spacing:var(--track);text-transform:uppercase}.passport__value{overflow-wrap:anywhere}.passport__tag{color:var(--accent)}.passport__tag[data-side=b]{color:var(--cyan)}.passport__bars{width:100%;height:auto;margin-top:2px;display:block}.passport__track{fill:var(--line)}.passport__fill{fill:var(--accent)}.passport__fill[data-side=b]{fill:var(--cyan)}.passport__bars--flat .passport__fill{opacity:.45}.route{gap:6px;margin-top:14px;display:grid}.route[hidden]{display:none}.route__body{gap:6px;display:grid}.route__editor{gap:4px;display:grid}.route__seg{grid-template-columns:14px minmax(0,1fr) auto minmax(0,1fr) auto 24px;align-items:center;gap:4px;display:grid}.route__segnum,.route__unit{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted)}.route__del,.route__add{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel-2);min-height:28px;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-s);cursor:pointer}.route__add{justify-self:start;padding:2px 10px}.route__del:hover,.route__add:hover{border-color:var(--accent)}.route__chart{width:100%;height:auto;display:block}.route__ground{fill:var(--panel-2)}.route__profile{fill:none;stroke:var(--text);stroke-width:1.5px}.route__chart .route__grade{font-family:var(--font-mono);fill:var(--muted);font-size:9px}.route__chart .route__tag{font-family:var(--font-mono);fill:var(--accent);font-size:10px}.route__chart .route__tag[data-side=b]{fill:var(--cyan)}.route__mode[data-mode=push],.route__key[data-mode=push]:before{fill:var(--accent);background:var(--accent)}.route__mode[data-mode=coast],.route__key[data-mode=coast]:before{fill:var(--ok);background:var(--ok)}.route__mode[data-mode=brake],.route__key[data-mode=brake]:before{fill:var(--warn);background:var(--warn)}.route__mode[data-mode=walk],.route__key[data-mode=walk]:before{fill:var(--muted);background:var(--muted)}.route__wobble,.route__key[data-mode=wobble]:before{fill:var(--bad);background:var(--bad)}.route__frame{fill:none;stroke:var(--line-strong);stroke-width:1px}.route__frame[data-side=a]{stroke:var(--accent)}.route__frame[data-side=b]{stroke:var(--cyan);stroke-dasharray:4 2}.route__legend{font-size:var(--fs-xs);color:var(--muted);flex-wrap:wrap;gap:4px 10px;display:flex}.route__key:before{content:"";vertical-align:baseline;width:8px;height:8px;margin-right:4px;display:inline-block}.push{gap:6px;margin-top:14px;display:grid}.push[hidden]{display:none}.push__body{gap:6px;display:grid}.pump{gap:6px;margin-top:14px;display:grid}.pump[hidden]{display:none}.pump__body{gap:6px;display:grid}.pump__limit{stroke-width:1px}.pump__limit[data-limit=wobble]{stroke-dasharray:5 3}.pump__limit[data-limit=grip]{stroke-dasharray:1 3;stroke-linecap:round;stroke-width:1.5px}.pump__limit[data-side=a]{stroke:var(--accent)}.pump__limit[data-side=b]{stroke:var(--cyan)}.pump__chart .pump__limit-label{fill:var(--text);paint-order:stroke;stroke:var(--panel);stroke-width:3px}.pump__cursor[hidden]{display:none}.pump__free{color:var(--muted)}.push__caption{font-size:var(--fs-xs);color:var(--muted);letter-spacing:var(--track)}.push__chart{width:100%;height:auto;display:block}.push__part[data-part=rolling],.push__key[data-part=rolling]:before{fill:var(--accent);background:var(--accent)}.push__part[data-part=air],.push__key[data-part=air]:before{fill:var(--cyan);background:var(--cyan)}.push__part[data-part=climb],.push__key[data-part=climb]:before{fill:var(--warn);background:var(--warn)}.push__part[data-part=squat],.push__key[data-part=squat]:before{fill:var(--ok);background:var(--ok)}.push__frame{fill:none;stroke:var(--line-strong);stroke-width:1px}.push__frame[data-side=a]{stroke:var(--accent)}.push__frame[data-side=b]{stroke:var(--cyan);stroke-dasharray:4 2}.push__chart .push__tag{font-family:var(--font-mono);fill:var(--accent);font-size:10px}.push__chart .push__tag[data-side=b]{fill:var(--cyan)}.push__chart .push__pct{font-family:var(--font-mono);fill:var(--bg);font-size:9px}.push__legend{font-size:var(--fs-xs);color:var(--muted);flex-wrap:wrap;gap:10px;display:flex}.push__key:before{content:"";vertical-align:baseline;width:8px;height:8px;margin-right:4px;display:inline-block}.obstacle{gap:6px;margin-top:14px;display:grid}.obstacle[hidden]{display:none}.obstacle__body{gap:6px;display:grid}.obstacle__marks{font-size:var(--fs-xs);color:var(--muted)}.obstacle__zone[data-zone=stop]{fill:var(--bad);fill-opacity:.14}.obstacle__zone[data-zone=jolt]{fill:var(--warn);fill-opacity:.14}.obstacle__chart .obstacle__zlabel[data-zone=stop]{fill:var(--bad)}.obstacle__chart .obstacle__zlabel[data-zone=jolt]{fill:var(--warn)}.obstacle__jolt{stroke-dasharray:4 3;stroke-width:1.2px}.obstacle__wheels{flex-wrap:wrap;gap:6px;display:flex}.obstacle__wheelview{background:var(--bg);border:1px solid var(--line);width:130px;height:auto;display:block}.obstacle__wheelview text{font-family:var(--font-mono);font-size:var(--fs-xs);fill:var(--muted)}.obstacle__ground{stroke:var(--line-strong);stroke-width:1px}.obstacle__block{fill:var(--muted)}.obstacle__swallow{fill:var(--ok);fill-opacity:.6}.obstacle__wheel{fill:var(--panel-2);fill-opacity:.85;stroke-width:1.5px}.obstacle__wheel[data-side=a]{stroke:var(--accent)}.obstacle__wheel[data-side=b]{stroke:var(--cyan)}.obstacle__axle{fill:var(--text)}.turn{font-size:var(--fs-s);gap:6px;margin-top:14px;display:grid}.turn[hidden]{display:none}.turn__map{background:var(--bg);border:1px solid var(--line);width:100%;max-width:420px;height:auto;display:block}.turn__map text{font-family:var(--font-mono);font-size:var(--fs-xs);fill:var(--muted)}.turn__frame{fill:none;stroke:var(--line-strong)}.turn__deck{fill:var(--panel-2);stroke:var(--line-strong)}.turn__ray{stroke:var(--text);stroke-width:.8px;stroke-dasharray:4 3;opacity:.7}.turn__path{fill:none;stroke:var(--cyan);stroke-width:1.2px;stroke-dasharray:1 3}.turn__pivot{stroke:var(--warn);stroke-width:2px;stroke-linecap:round}.turn__axle{stroke:var(--muted);stroke-width:1.5px}.turn__wheel{fill:var(--accent);stroke:var(--accent);stroke-width:.5px}.turn__mid{fill:var(--text)}.turn__radius{stroke:var(--accent);stroke-width:1px}.turn__center{fill:var(--accent);stroke:var(--bg);stroke-width:1px}.turn__arrow{stroke:var(--accent);stroke-width:1.5px}.turn__arrowhead,.turn__map .turn__rlabel,.turn__map .turn__clabel{fill:var(--accent)}.turn__map .turn__delta{fill:var(--text)}.turn__out{font-family:var(--font-mono)}.turn__board .turn__deck{fill-opacity:.35}.turn__board[data-side=a] .turn__deck,.turn__board[data-side=a] .turn__path{stroke:var(--accent)}.turn__board[data-side=b] .turn__deck{stroke:var(--cyan);stroke-dasharray:3 2}.turn__board[data-side=b] .turn__ray,.turn__board[data-side=b] .turn__axle{stroke:var(--cyan)}.turn__board[data-side=b] .turn__wheel,.turn__board[data-side=b] .turn__center,.turn__board[data-side=b] .turn__arrowhead{fill:var(--cyan)}.turn__board[data-side=b] .turn__wheel,.turn__board[data-side=b] .turn__radius,.turn__board[data-side=b] .turn__arrow{stroke:var(--cyan)}.turn__map .turn__tag{paint-order:stroke;stroke:var(--bg);stroke-width:3px;stroke-linejoin:round}.turn__map .turn__tag[data-side=b]{fill:var(--cyan)}.turn__out[data-side=a]{color:var(--accent)}.turn__out[data-side=b]{color:var(--cyan)}.turn__note,.turn__legend{font-size:var(--fs-xs);color:var(--muted)}.assume{font-size:var(--fs-xs);color:var(--muted);border-top:1px dashed var(--line);margin-top:6px;padding-top:4px}.assume__title{cursor:pointer;letter-spacing:var(--track)}.assume__list{gap:2px;margin:4px 0 0;padding-left:14px;display:grid}.assume__kind{color:var(--warn)}.assume__item[data-kind=omitted] .assume__kind{color:var(--cyan)}.side{font-size:var(--fs-s);gap:6px;margin-top:14px;display:grid}.side[hidden]{display:none}.side__modes{flex-wrap:wrap;gap:4px;display:flex}.side__body{gap:6px;display:grid}.side__map{background:var(--bg);border:1px solid var(--line);width:100%;max-width:420px;height:auto;display:block}.side__map text{font-family:var(--font-mono);font-size:var(--fs-xs);fill:var(--muted)}.side__ground{stroke:var(--line-strong);stroke-width:1px}.side__deck{fill:var(--panel-2);stroke:var(--text);stroke-width:.8px}.side__truck{stroke:var(--muted);stroke-width:3px;stroke-linecap:round}.side__wheel{fill:var(--accent);stroke:var(--accent)}.side__wheel[data-on-ground=false]{fill:none}.side__touch{fill:none;stroke:var(--warn);stroke-width:1.2px}.side__touch[data-touching=true]{fill:var(--warn)}.side__press{stroke:var(--cyan);stroke-width:1.5px}.side__presshead,.side__map .side__plabel{fill:var(--cyan)}.side__map .side__tlabel{fill:var(--warn)}.side__out{font-family:var(--font-mono);font-size:var(--fs-xs);gap:2px;display:grid}.side__note{font-size:var(--fs-xs);color:var(--muted);margin:0}.stance{font-size:var(--fs-s);gap:6px;margin-top:14px;display:grid}.stance[hidden]{display:none}.stance__preset,.stance__foot-ctl select{min-width:0;max-width:100%;font-family:var(--font-mono);font-size:var(--fs-s);color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);padding:3px 4px}.stance__map{background:var(--bg);border:1px solid var(--line);touch-action:none;-webkit-user-select:none;user-select:none;width:100%;max-width:420px;height:auto;display:block}.stance__deck{fill:var(--panel-2);stroke:var(--line-strong)}.stance__center{stroke:var(--line);stroke-dasharray:4 3}.stance__axle{stroke:var(--muted);stroke-width:2px}.stance__wheel{fill:var(--accent);stroke:var(--accent);stroke-width:1px}.stance__wheel[data-lifted=true]{stroke:var(--bad);stroke-dasharray:2 2}.stance__map text{font-family:var(--font-mono);font-size:var(--fs-xs);fill:var(--muted)}.stance__map .stance__load[data-lifted=true]{fill:var(--bad)}.stance__foot{cursor:grab}.stance__foot circle{fill:var(--cyan);fill-opacity:.35;stroke:var(--cyan);stroke-width:1.5px}.stance__foot[data-kind=toe-rail] circle{stroke-dasharray:3 2}.stance__foot[data-kind=heel-hang] circle{fill:var(--warn);stroke:var(--warn)}.stance__map .stance__fl{fill:var(--text);pointer-events:none}.stance__foot-ctl{border-bottom:1px solid var(--line);grid-template-columns:6ch minmax(0,1fr) auto;grid-template-areas:"name share val""kind kind pos";align-items:center;gap:4px 6px;padding:4px 0;display:grid}.stance__fname{color:var(--text);grid-area:name}.stance__foot-ctl input[type=range]{width:100%;min-width:0;accent-color:var(--accent);grid-area:share}.stance__share{text-align:right;grid-area:val}.stance__foot-ctl select{grid-area:kind}.stance__pos{white-space:nowrap;font-size:var(--fs-xs);color:var(--muted);grid-area:pos;justify-self:end}.stance__out{gap:2px;display:grid}.stance__row{border-bottom:1px solid var(--line);justify-content:space-between;gap:8px;padding:2px 0;display:flex}.stance__k{color:var(--muted)}.stance__lifted{color:var(--bad);border:1px solid var(--bad);border-radius:var(--radius);padding:3px 6px}.stance__limit{color:var(--warn)}.stance__note{font-size:var(--fs-xs);color:var(--muted)}.forces{font-size:var(--fs-s);gap:6px;margin-top:14px;display:grid}.forces[hidden]{display:none}.forces__ctl{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;display:grid}.forces__speed{color:var(--muted);grid-template-columns:auto minmax(0,1fr) 8ch;align-items:center;gap:6px;display:grid}.forces__speed input[type=range]{width:100%;min-width:0;accent-color:var(--accent)}.forces__speed [data-forces-speed-val]{text-align:right;color:var(--text)}.forces__table{display:grid}.forces__row{border-bottom:1px solid var(--line);text-align:right;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:6px;padding:2px 0;display:grid}.forces__row>:first-child{text-align:left}.forces__head{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--track);color:var(--muted)}.forces__row[data-lifted=true]{color:var(--bad)}.forces__out{color:var(--text)}.forces__note{font-size:var(--fs-xs);color:var(--muted)}.stage__forces{max-width:calc(100% - 170px);font-size:var(--fs-xs);letter-spacing:var(--track);color:var(--text);background:color-mix(in srgb, var(--bg) 80%, transparent);border:1px solid var(--line);pointer-events:none;padding:2px 6px;position:absolute;top:64px;left:12px}.stage__forces[hidden]{display:none}.cmp__head,.cmp__row{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"a b d";align-items:baseline;column-gap:8px;min-width:0;padding:3px 0;display:grid}.cmp__row{grid-template-areas:"label label label""a b d"}.cmp__label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--track);color:var(--muted);grid-area:label}.cmp__cell{font-size:var(--fs-s);white-space:normal;overflow-wrap:anywhere;min-width:0}.cmp__head .cmp__cell{font-size:var(--fs-xs);letter-spacing:var(--track);color:var(--accent)}.cmp__a{grid-area:a}.cmp__b{grid-area:b}.cmp__d{text-align:right;color:var(--muted);grid-area:d}.cmp__d[data-tone=gt],.cmp__d[data-tone=lt]{color:var(--cyan)}.cmp__cell[data-tone=bad]{color:var(--bad)}.cmp__cell[data-tone=warn]{color:var(--warn)}.cmp__cell[data-tone=ok]{color:var(--ok)}.target{gap:6px;margin-bottom:12px;display:flex}.target[hidden]{display:none}.settings{gap:14px;display:grid}.group{border:none;gap:8px;min-width:0;margin:0;padding:0;display:grid}.group__title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--track);color:var(--text);padding:0 0 4px}.field{gap:3px;min-width:0;display:grid}.field-row{grid-template-columns:minmax(0,1fr) minmax(0,6.5em);align-items:end;gap:8px;min-width:0;display:grid}.field__label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--track);color:var(--muted)}.field__range{width:100%;min-width:0;accent-color:var(--accent);margin:2px 0}.field-row--rider{grid-template-columns:minmax(0,5em) minmax(0,1fr);align-items:center}.field__number{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel-2);width:100%;min-width:0;min-height:28px;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-s);padding:4px 6px}.field__number:focus-visible{outline:1px solid var(--accent);outline-offset:0}.field__label output{color:var(--text)}.field__hint{font-size:var(--fs-xs);color:var(--muted);margin:0;line-height:1.4}.field__select{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel-2);width:100%;min-width:0;min-height:28px;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-s);padding:4px 6px}.field__select:focus-visible{outline:1px solid var(--accent);outline-offset:0}.field__select:disabled{color:var(--muted);opacity:.6}.field__check{font-size:var(--fs-s);color:var(--muted);cursor:pointer;align-items:center;gap:6px;display:flex}.field__check input{accent-color:var(--accent);margin:0}@media (max-width:860px){.columns{overscroll-behavior:contain;grid-template-columns:minmax(0,1fr);align-content:start;scroll-padding-top:max(58dvh,280px);overflow-y:auto}.col{border-right:none;border-bottom:1px solid var(--line);overflow-y:visible}.col--stage{z-index:2;height:58vh;order:1;height:58dvh;min-height:280px;position:sticky;top:0}.col--settings{order:2}.col--spec{order:3}.header__meta{display:none}.header{gap:10px;padding:0 12px}.app[data-mode=compare] .stage__boards{grid-template-rows:minmax(0,1fr) minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.stage__board+.stage__board{border-left:none;border-top:1px solid var(--line)}.app[data-mode=test] .col--spec{order:2}.app[data-mode=test] .col--settings{order:3}.chip,.field__select,.lean__input,.lean__reset{min-height:32px}}.testpanel{gap:14px;display:grid}.testpanel[hidden],.spec[hidden],.stage__map[hidden],.stage__replay[hidden]{display:none}.stage__replay{pointer-events:auto;background:color-mix(in srgb, var(--bg) 80%, transparent);border:1px solid var(--line);justify-self:start;gap:6px;max-width:100%;padding:6px 8px;display:grid}.stage__note[hidden]{display:none}.stage__note{max-width:100%;font-size:var(--fs-xs);letter-spacing:var(--track);color:var(--warn);background:color-mix(in srgb, var(--bg) 80%, transparent);border:1px solid var(--line);justify-self:start;margin:0;padding:6px 8px}.stage__replay-text{font-size:var(--fs-xs);letter-spacing:var(--track);color:var(--accent);margin:0}.testctl{gap:8px;display:grid}.testctl__label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--track);color:var(--muted)}.testctl__buttons{flex-wrap:wrap;gap:6px;display:flex}.testctl__hint,.testctl__status{font-size:var(--fs-xs);color:var(--muted);margin:0}.testctl__status:empty{display:none}.sharp{font-size:var(--fs-s);gap:8px;display:grid}.sharp__ctl,.sharp__out,.sharp__charts{gap:6px;display:grid}.sharp__out:empty{display:none}.sharp__map,.sharp__chart{background:var(--bg);border:1px solid var(--line);width:100%;max-width:420px;height:auto;display:block}.sharp__map text,.sharp__chart text{font-family:var(--font-mono);font-size:var(--fs-xs);fill:var(--muted)}.sharp__chart .sharp__ctitle{fill:var(--text);letter-spacing:var(--track)}.sharp__frame{fill:none;stroke:var(--line-strong)}.sharp__deck{fill:var(--panel-2);fill-opacity:.35;stroke:var(--line-strong);stroke-width:.6px}.sharp__deck[data-last]{fill-opacity:.8;stroke:var(--text)}.sharp__track{fill:none;stroke-width:1.2px;stroke-linejoin:round}.sharp__track[data-end=front],.sharp__key[data-end=front]{stroke:var(--accent);color:var(--accent)}.sharp__track[data-end=rear],.sharp__key[data-end=rear]{stroke:var(--cyan);color:var(--cyan)}.sharp__key:before{content:"— "}.sharp__start{fill:var(--text)}.sharp__skid{stroke:var(--bad);stroke-width:2px}.sharp__map .sharp__label--skid{fill:var(--bad)}.sharp__bar{stroke:var(--text);stroke-width:2px}.sharp__line{fill:none;stroke:var(--accent);stroke-width:1.6px;stroke-linejoin:round}.sharp__zero{stroke:var(--line);stroke-width:.6px}.sharp__phase{stroke:var(--muted);stroke-width:.8px;stroke-dasharray:2 3}.sharp__phase--skid{stroke:var(--bad);stroke-dasharray:none}.sharp__ref{stroke:var(--ok);stroke-width:1px;stroke-dasharray:5 3}.sharp__legend{font-size:var(--fs-xs);color:var(--muted);flex-wrap:wrap;gap:10px;display:flex}.slalom{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}.slalom__line,.slalom__loop{fill:none;stroke-width:1.4px;stroke-linejoin:round}.slalom__loop{stroke:var(--accent);stroke-width:1px}.slalom__line[data-series=speed],.slalom__line[data-series=riderWorkJ],.slalom__key[data-series=riderWorkJ]{stroke:var(--accent);color:var(--accent)}.slalom__line[data-series=deltaEJ],.slalom__key[data-series=deltaEJ]{stroke:var(--text);color:var(--text)}.slalom__line[data-series=rollingLossJ],.slalom__key[data-series=rollingLossJ]{stroke:var(--cyan);color:var(--cyan)}.slalom__line[data-series=bushingDampLossJ],.slalom__key[data-series=bushingDampLossJ]{stroke:var(--ok);color:var(--ok)}.slalom__line[data-series=otherLossJ],.slalom__key[data-series=otherLossJ]{stroke:var(--warn);color:var(--warn)}.slalom__line[data-series=snug],.slalom__key[data-series=snug]{stroke:var(--cyan);color:var(--cyan)}.slalom__line[data-series=loose],.slalom__key[data-series=loose]{stroke:var(--warn);color:var(--warn)}.slalom__key:before{content:"— "}.slalom__rows .metric{flex-direction:column;align-items:stretch;gap:2px}.slalom__rows .metric__value{text-align:left;white-space:normal;overflow-wrap:anywhere}.slalom__rows .metric[data-current] .metric__label{color:var(--text)}.slalom__shape{font-size:var(--fs-xs);color:var(--warn);display:block}.slalom__bushings{border-top:1px solid var(--line);gap:6px;margin-top:8px;padding-top:8px;display:grid}.slalom__btitle{font-size:var(--fs-xs);color:var(--muted)}.stage__map{pointer-events:none;width:140px;height:140px;position:absolute;bottom:52px;right:12px}.minimap{width:100%;height:100%;display:block}.minimap__frame{fill:var(--panel);fill-opacity:.85;stroke:var(--line-strong)}.minimap__path{fill:none;stroke:var(--cyan);stroke-width:1.5px;vector-effect:non-scaling-stroke}.minimap__head{fill:var(--accent)}
