:root{--wheel-color:#080b0e;--wheel-rim:#ffffff24;color:#f3f5f7;font-synthesis:none;text-rendering:optimizelegibility;background:#101214;font-family:Inter,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}body{background:linear-gradient(#0c1015f5,#12191ff5),linear-gradient(135deg,#1b2732,#0d1217 58%);min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}#app{min-height:100vh;padding:1.25rem}.trainer-shell{width:min(96rem,100%);margin:0 auto;padding:1rem}.trainer-header{margin-bottom:1.25rem}.trainer-header__eyebrow{color:#79c7f2;letter-spacing:0;text-transform:uppercase;margin:0 0 .5rem;font-size:.82rem;font-weight:700}.trainer-header__title{margin:0;font-size:clamp(2rem,4vw,3.6rem);line-height:1}.trainer-header__copy{color:#f3f5f7bd;max-width:62rem;margin:.9rem 0 0;font-size:1rem}.trainer-layout{grid-template-columns:minmax(18rem,23rem) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.trainer-sidebar{gap:1rem;display:grid}.trainer-panel{background:#11151aeb;border:1px solid #79c7f224;border-radius:.5rem;padding:1rem}.trainer-panel h2{letter-spacing:0;text-transform:uppercase;margin:0 0 .85rem;font-size:.95rem}.trainer-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.trainer-metric{gap:.2rem;display:grid}.trainer-metric__label{color:#f3f5f78c;text-transform:uppercase;font-size:.8rem}.trainer-metric__value{font-size:1.05rem}.trainer-control-grid{gap:.8rem;display:grid}.trainer-control-row{grid-template-columns:minmax(6rem,1fr) repeat(2,3rem);align-items:center;gap:.5rem;display:grid}.trainer-control-row .trainer-metric{display:block}.trainer-control-row .trainer-metric__label,.trainer-control-row .trainer-metric__value{display:none}.trainer-key{background:#f3f5f70f;border:1px solid #f3f5f72e;border-radius:.4rem;place-items:center;width:3rem;height:3rem;font-weight:700;display:grid}.trainer-key--active{color:#79c7f2;background:#79c7f238;border-color:#79c7f2c7}.trainer-control-note,.trainer-footer__note{color:#f3f5f7a8;font-size:.9rem}.trainer-run-stats{gap:.75rem;display:grid}.trainer-run-metric{background:#f3f5f70d;border:1px solid #f3f5f71f;border-radius:.5rem;min-height:5.5rem;padding:.85rem}.trainer-run-metric .trainer-metric__value{font-size:2.25rem;line-height:1}.trainer-run-metric--timer .trainer-metric__value{color:#79c7f2}.trainer-run-metric--mistakes .trainer-metric__value{color:#ffb6a6}.trainer-result{border-color:#f3f5f72e}.trainer-result--passed{background:#163a2bdb;border-color:#66dda37a}.trainer-result--failed{background:#471f1ddb;border-color:#ff7e677a}.trainer-result__message,.trainer-result__summary{margin:0}.trainer-result__message{color:#f3f5f7c7}.trainer-result__summary{margin-top:.75rem;font-size:1.15rem;font-weight:700}.trainer-roads{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.road-card{background:#11151aeb;border:1px solid #79c7f224;border-radius:.5rem;padding:1rem}.road-viewport{background:linear-gradient(#1f2b24e6,#0f1613f5),linear-gradient(90deg,#31412d5c,#10141247);border-radius:.5rem;min-height:42rem;position:relative;overflow:hidden}.road-surface{position:absolute;inset:0}.road-svg{width:100%;height:100%;position:absolute;inset:0}.road-asphalt-shape{fill:#2f3639;stroke:#070a0cd1;stroke-width:.22px;filter:drop-shadow(0 .55rem .7rem #0000003d)}.road-shoulder-shape{fill:#4b443b;stroke:#080a09c7;stroke-width:.42px;filter:drop-shadow(0 .9rem 1.1rem #00000052)}.road-boundary{fill:none;stroke:#0a0c0be6;stroke-linecap:round;stroke-linejoin:round;stroke-width:.72px;vector-effect:non-scaling-stroke}.road-edge{fill:none;stroke:#f5f9fcf5;stroke-linecap:round;stroke-linejoin:round;stroke-width:.72px;paint-order:stroke;vector-effect:non-scaling-stroke}.road-center-path{fill:none;stroke:#ffe276f2;stroke-dasharray:8 7;stroke-linecap:butt;stroke-linejoin:round;stroke-width:.62px;vector-effect:non-scaling-stroke}.road-pothole{z-index:3;background:radial-gradient(at 42% 36%,#5d544ab8 0 13%,#0000 14%),radial-gradient(at 54% 57%,#040505fa 0 58%,#181614e0 72%),#090a0a;border:1px solid #79624ab3;border-radius:54% 46% 48% 52%;position:absolute;transform:translate(-50%,-50%)rotate(-7deg);box-shadow:inset 0 .28rem .8rem #000000e0,0 .12rem .2rem #ffffff14}.road-pothole:nth-of-type(2n){border-radius:47% 53% 56% 44%;transform:translate(-50%,-50%)rotate(9deg)}.road-pothole--hit{border-color:#ff7e67e0;box-shadow:inset 0 .28rem .8rem #000000e6,0 0 .55rem #ff7e6761}.road-car{z-index:5;background:linear-gradient(#ffffff57,#fff0 22%),linear-gradient(#b3efff,#4bb4ff 58%,#1767a1);border:3px solid #fffffff5;border-radius:.7rem;width:3.2rem;height:5.8rem;position:absolute;bottom:1.1rem;transform:translate(-50%);box-shadow:0 1rem 2rem #0000006b}.road-car:before,.road-car:after{content:"";background:var(--wheel-color);width:.34rem;height:1rem;box-shadow:inset 0 0 0 1px var(--wheel-rim);border-radius:999px;position:absolute;top:.8rem}.road-car:before{left:-.28rem}.road-car:after{right:-.28rem}.road-car__rear-wheels{pointer-events:none;width:calc(100% + .8rem);height:1.1rem;position:absolute;bottom:.7rem;left:50%;transform:translate(-50%)}.road-car__rear-wheels:before,.road-car__rear-wheels:after{content:"";background:var(--wheel-color);width:.5rem;height:1.15rem;box-shadow:inset 0 0 0 1px var(--wheel-rim);border-radius:999px;position:absolute;bottom:0}.road-car__rear-wheels:before{left:0}.road-car__rear-wheels:after{right:0}.road-car--warning{background:linear-gradient(#ffffff47,#fff0 24%),linear-gradient(#ffc5ab,#ff744f 56%,#c74427);box-shadow:0 1rem 2rem #0000006b}.road-car:after,.road-car:before,.road-car__rear-wheels{pointer-events:none}.trainer-footer{background:#11151aeb;border:1px solid #79c7f224;border-radius:.5rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding:1rem;display:flex}.trainer-restart{color:#f3f5f7;cursor:pointer;background:#79c7f22e;border:1px solid #79c7f24d;border-radius:.4rem;min-width:10rem;min-height:2.9rem;padding:.8rem 1rem;transition:transform .16s,background-color .16s,border-color .16s}.trainer-restart:hover,.trainer-restart:focus-visible{background:#79c7f247;border-color:#79c7f2b3;transform:translateY(-1px)}@media (width<=980px){.trainer-layout,.trainer-roads{grid-template-columns:1fr}.road-viewport{min-height:32rem}}@media (width<=640px){#app,.trainer-shell{padding:.75rem}.trainer-metrics{grid-template-columns:1fr 1fr}.trainer-control-row{grid-template-columns:1fr repeat(2,3rem)}.trainer-footer{align-items:stretch}.trainer-restart{width:100%}}
