:root{--bg-dark:#0f1411;--bg-card:#151d18;--bg-card-hover:#1c2620;--border-subtle:#52e0782e;--border-strong:#52e07873;--text-main:#edf2eb;--text-muted:#95a396;--accent-green:#52e078;--accent-yellow:#ffd230;--accent-purple:#c084fc;--accent-cyan:#38bdf8;--accent-red:#f87171;--shadow-glow:0 0 16px #52e0782e}*{box-sizing:border-box}html,body{background:var(--bg-dark);color:var(--text-main);justify-content:center;min-height:100vh;margin:0;padding:0;font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif;display:flex;overflow-x:hidden}#app{flex-direction:column;align-items:center;width:100%;max-width:1020px;padding:16px 20px 40px;display:flex}#cockpit-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-bottom:12px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-badge{border:1px solid var(--accent-green);color:var(--accent-green);letter-spacing:1px;background:#52e0781f;border-radius:4px;padding:4px 8px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;box-shadow:0 0 10px #52e07833}.brand-text h1{letter-spacing:.5px;color:#fff;background:linear-gradient(135deg,#fff 40%,#b8e2b8);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:0;font-size:20px;font-weight:800}.brand-text .subtitle{color:var(--text-muted);letter-spacing:1.5px;font-family:JetBrains Mono,monospace;font-size:10px;display:block}.telemetry-bar{flex-wrap:wrap;gap:8px;display:flex}.stat-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;flex-direction:column;min-width:90px;padding:6px 12px;display:flex}.stat-label{color:var(--text-muted);letter-spacing:.8px;font-family:JetBrains Mono,monospace;font-size:9px}.stat-value{margin-top:2px;font-family:JetBrains Mono,monospace;font-size:14px;font-weight:700}.highlight-green{color:var(--accent-green);text-shadow:0 0 8px #52e07866}.highlight-yellow{color:var(--accent-yellow);text-shadow:0 0 8px #ffd23066}.highlight-purple{color:var(--accent-purple);text-shadow:0 0 8px #c084fc66}#viewport-container{width:900px;max-width:100%;box-shadow:0 12px 36px #0009, 0 0 0 1px var(--border-subtle);background:#1e2819;border-radius:8px;position:relative;overflow:hidden}#track-canvas{aspect-ratio:3/2;cursor:crosshair;background:#28371c;width:100%;height:auto;display:block}#viewport-controls{pointer-events:none;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex;position:absolute;bottom:12px;left:12px;right:12px}@media (width<=700px){#viewport-controls{padding:8px;position:static}.control-group{flex-wrap:wrap}}.control-group{pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-subtle);background:#0e1410d1;border-radius:6px;gap:6px;padding:4px;display:flex}.hud-btn{color:var(--text-main);cursor:pointer;background:#1e2a22b3;border:1px solid #52e07833;border-radius:4px;align-items:center;gap:6px;padding:6px 12px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.hud-btn:hover{border-color:var(--accent-green);color:#fff;background:#324b3ad9;box-shadow:0 0 8px #52e07840}.hud-btn.active{background:var(--accent-green);color:#0b140d;border-color:var(--accent-green);font-weight:700;box-shadow:0 0 12px #52e07880}.hud-btn.primary{color:#fff;background:linear-gradient(135deg,#44b865,#2f944d);border:1px solid #75e994;font-weight:700;box-shadow:0 0 12px #52e07859}.hud-btn.primary:hover{background:linear-gradient(135deg,#52e078,#3baa5d);box-shadow:0 0 16px #52e07899}#floating-notifications{pointer-events:none;z-index:50;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.notification-toast{border:1px solid var(--accent-green);color:#fff;white-space:nowrap;background:#0e1611eb;border-radius:20px;padding:6px 16px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700;animation:2.2s cubic-bezier(.16,1,.3,1) forwards floatUpFade;box-shadow:0 4px 20px #0009,0 0 12px #52e07866}@keyframes floatUpFade{0%{opacity:0;transform:translateY(12px)scale(.9)}15%{opacity:1;transform:translateY(0)scale(1)}75%{opacity:1;transform:translateY(-8px)scale(1)}to{opacity:0;transform:translateY(-24px)scale(.95)}}#drive-helper{border:1px solid var(--accent-cyan);width:900px;max-width:100%;color:var(--accent-cyan);text-align:center;background:#38bdf81f;border-radius:6px;margin-top:8px;padding:8px 14px;font-size:12px}.shop-panel{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;width:900px;max-width:100%;margin-top:14px;padding:16px 20px;display:none;box-shadow:0 8px 24px #0006}.shop-panel.open{animation:.2s ease-out fadeIn;display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.shop-tabs{border-bottom:1px solid var(--border-subtle);gap:8px;margin-bottom:14px;padding-bottom:10px;display:flex}.shop-tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 14px;font-family:Plus Jakarta Sans,sans-serif;font-size:13px;font-weight:700;transition:all .15s}.shop-tab-btn:hover{color:var(--text-main);background:#ffffff0d}.shop-tab-btn.active{color:var(--accent-green);background:#52e0781f}.shop-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.upgrade-card{background:#18221c99;border:1px solid #52e07826;border-radius:6px;flex-direction:column;justify-content:space-between;gap:10px;padding:12px 14px;transition:border-color .15s;display:flex}.upgrade-card:hover{border-color:#52e07859}.card-top{justify-content:space-between;align-items:flex-start;display:flex}.card-title-group strong{color:#fff;font-size:14px;display:block}.card-level-badge{color:var(--accent-green);background:#52e0781a;border-radius:4px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:11px}.card-desc{color:var(--text-muted);margin-top:4px;font-size:12px;line-height:1.4}.card-bottom{justify-content:space-between;align-items:center;margin-top:4px;display:flex}.card-cost{color:var(--accent-yellow);font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700}.card-cost.legacy{color:var(--accent-purple)}.buy-btn{color:#e5f0e6;cursor:pointer;background:#2a3a2f;border:1px solid #52e0784d;border-radius:4px;padding:6px 14px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;transition:all .15s}.buy-btn:hover:not(:disabled){background:var(--accent-green);color:#0d160e;border-color:var(--accent-green);box-shadow:0 0 10px #52e07866}.buy-btn:disabled{opacity:.35;cursor:not-allowed;border-color:#ffffff1a}.retire-box{border-top:1px solid var(--border-subtle);flex-direction:column;gap:8px;margin-top:18px;padding-top:14px;display:flex}.retire-description{color:var(--text-muted);font-size:12px}.retire-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#882c2c,#631e1e);border:1px solid #c24b4b;border-radius:6px;padding:10px 16px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700;transition:all .15s}.retire-btn:hover{background:linear-gradient(135deg,#a83838,#7a2525);box-shadow:0 0 14px #dc3c3c66}.danger-box{margin-top:10px}.danger-btn{background:linear-gradient(135deg,#3a3f3a,#2a2e2a);border-color:#5a625a}.danger-btn:hover{background:linear-gradient(135deg,#4a504a,#363b36);box-shadow:0 0 14px #a0aaa040}.offline-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:999;background:#0a0e0cd9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.offline-card{background:var(--bg-card);border:1px solid var(--border-strong);max-width:400px;box-shadow:0 12px 36px #000c, var(--shadow-glow);border-radius:8px;flex-direction:column;align-items:center;gap:16px;padding:24px 32px;display:flex}.offline-spinner{border:3px solid #52e07833;border-top-color:var(--accent-green);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.progress-bar-wrap{background:#ffffff1a;border-radius:4px;width:240px;height:8px;overflow:hidden}.progress-bar-fill{background:var(--accent-green);width:0%;height:100%;box-shadow:0 0 8px var(--accent-green);transition:width .1s linear}#drive-pad,.drive-touch{display:none}@media (pointer:coarse){html,body{touch-action:manipulation;overscroll-behavior:none}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.hud-btn{justify-content:center;min-width:44px;min-height:44px}.drive-keys{display:none}.drive-touch{display:inline}#drive-pad{justify-content:space-between;gap:12px;margin-top:10px;display:flex}.pad-group{flex:1;gap:10px;display:flex}.pad-btn{border:1px solid var(--accent-cyan);min-width:0;min-height:64px;color:var(--accent-cyan);touch-action:none;background:#38bdf81f;border-radius:12px;flex:1;padding:0 6px;font:700 18px JetBrains Mono,monospace}.pad-btn.gas{border-color:var(--accent-green);color:var(--accent-green)}.pad-btn.on{background:#38bdf859}.pad-btn.gas.on{background:#52e07859}}:root{--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px)}#app{padding-left:max(20px, var(--safe-l));padding-right:max(20px, var(--safe-r));padding-bottom:max(40px, calc(var(--safe-b) + 24px))}.overlay{z-index:900;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:max(12px, var(--safe-t)) max(12px, var(--safe-r)) max(12px, var(--safe-b)) max(12px, var(--safe-l));background:#080c0ae0;justify-content:center;align-items:center;animation:.25s ease-out fadeIn;display:flex;position:fixed;inset:0}.overlay.leaving{opacity:0;pointer-events:none;transition:opacity .3s}.title-screen{z-index:1000;background:radial-gradient(at 50% 30%,#1d3322 0%,#0b100d 70%)}.title-card{text-align:center;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:420px;display:flex;position:relative}.title-art{width:min(320px,80vw);height:auto;overflow:visible}.ab-dash{fill:none;stroke:var(--accent-green);stroke-width:3px;stroke-dasharray:10 8;filter:drop-shadow(0 0 6px #52e07899);animation:1.2s linear infinite dashMove}.ab-pt{fill:var(--accent-yellow);font:700 12px monospace}@keyframes dashMove{to{stroke-dashoffset:-36px}}.title-tractor{filter:drop-shadow(0 6px 8px #0009);font-size:44px;animation:1.4s ease-in-out infinite tractorBob}@keyframes tractorBob{0%,to{transform:translate(-26px)rotate(-1deg)}50%{transform:translate(26px)rotate(1deg)}}.title-logo{letter-spacing:2px;color:#fff;text-shadow:0 0 24px #52e07873;margin:0;font-size:clamp(34px,11vw,56px);font-weight:800;line-height:1}.title-logo span{color:var(--accent-green)}.title-tag{color:var(--text-muted);margin:0;font-size:15px}.title-stats{min-height:28px;color:var(--text-main);flex-wrap:wrap;justify-content:center;gap:8px;font:600 12px monospace;display:flex}.title-stats span{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:14px;padding:4px 10px}.title-hint{color:var(--text-muted);margin:4px 0 0;font-size:12px}.big-btn{letter-spacing:1px;color:#08140c;cursor:pointer;background:linear-gradient(135deg,#7af09a,#3fcf6a);border:0;border-radius:14px;min-width:200px;min-height:56px;margin-top:6px;padding:0 28px;font:800 20px system-ui,-apple-system,sans-serif;transition:transform 80ms,box-shadow 80ms;box-shadow:0 0 24px #52e07873,0 6px #1f7d3b}.big-btn:active{transform:translateY(4px);box-shadow:0 0 24px #52e07873,0 2px #1f7d3b}.big-btn.ghost{color:var(--text-main);border:1px solid var(--border-strong);box-shadow:none;background:0 0;min-width:0;min-height:48px;font-size:15px}.sheet{background:var(--bg-card);border:1px solid var(--border-strong);width:min(640px,100%);max-height:100%;box-shadow:0 16px 48px #000c, var(--shadow-glow);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.sheet-head{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.sheet-tabs{gap:6px;display:flex}.sheet-tab,.sheet-close{border:1px solid var(--border-subtle);min-width:44px;min-height:44px;color:var(--text-main);cursor:pointer;background:#1e2a22b3;border-radius:8px;padding:0 16px;font:700 13px monospace}.sheet-tab.active{border-color:var(--accent-green);color:var(--accent-green);background:#52e07833}.sheet-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;flex-direction:column;gap:10px;padding:12px;display:flex;overflow-y:auto}.field-card{border:1px solid var(--border-subtle);background:#151d18e6;border-radius:10px;align-items:center;gap:12px;padding:12px;display:flex}.field-card.current{border-color:var(--accent-green);box-shadow:var(--shadow-glow)}.field-card.locked{opacity:.5}.field-info{flex:1;min-width:0}.field-name{color:#fff;font-size:15px;font-weight:800}.field-blurb{color:var(--text-muted);margin-top:2px;font-size:12px}.field-meta{color:var(--text-muted);margin-top:4px;font:600 11px monospace}.stars{letter-spacing:2px;color:#3a463d;white-space:nowrap;font-size:18px}.stars .on{color:var(--accent-yellow);text-shadow:0 0 8px #ffd23099}.field-go{border:1px solid var(--accent-green);min-width:76px;min-height:44px;color:var(--accent-green);cursor:pointer;background:#52e07826;border-radius:8px;font:700 13px monospace}.field-go:disabled{border-color:var(--border-subtle);color:var(--text-muted);cursor:default;background:0 0}.medal{border:1px solid var(--border-subtle);border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}.medal .m-ico{filter:grayscale()opacity(.45);font-size:26px}.medal.got{border-color:var(--accent-yellow);background:#ffd23012}.medal.got .m-ico{filter:none}.medal .m-name{color:#fff;font-size:14px;font-weight:800}.medal .m-desc{color:var(--text-muted);font-size:12px}.medal-count{color:var(--text-muted);text-align:center;font:700 12px monospace}.clear-card{text-align:center;background:var(--bg-card);border:1px solid var(--accent-yellow);border-radius:14px;width:min(420px,100%);padding:22px 18px 18px;animation:.5s cubic-bezier(.2,1.4,.4,1) cardPop;position:relative;overflow:hidden;box-shadow:0 16px 48px #000c,0 0 40px #ffd23040}@keyframes cardPop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.clear-card h3{color:var(--accent-yellow);letter-spacing:1px;text-shadow:0 0 18px #ffd23080;margin:0;font-size:28px;font-weight:800}.clear-sub{color:var(--text-muted);margin:4px 0 10px;font-size:13px}.clear-stars{justify-content:center;gap:10px;margin:8px 0 12px;display:flex}.clear-stars .st{color:#2e3a31;font-size:52px;line-height:1}.clear-stars .st.on{color:var(--accent-yellow);text-shadow:0 0 20px #ffd230cc;opacity:0;animation:.45s cubic-bezier(.2,1.6,.4,1) forwards starPop;transform:scale(.2)}@keyframes starPop{0%{opacity:0;transform:scale(.2)rotate(-40deg)}to{opacity:1;transform:scale(1)rotate(0)}}.clear-bonus{color:var(--accent-yellow);margin-bottom:4px;font:700 16px monospace}.clear-par{color:var(--text-muted);margin-bottom:14px;font:600 12px monospace}.clear-actions{flex-direction:column;align-items:center;gap:8px;display:flex}.confetti{pointer-events:none;border-radius:2px;width:8px;height:12px;animation:2.2s ease-in forwards confettiFall;position:absolute;top:-10px}@keyframes confettiFall{to{opacity:0;transform:translateY(520px)rotate(720deg)}}.notification-toast.medal-toast{border-color:var(--accent-yellow);color:var(--accent-yellow);box-shadow:0 4px 20px #0009,0 0 14px #ffd23080}#viewport-container.shake{animation:.45s cubic-bezier(.36,.07,.19,.97) shake}@keyframes shake{10%,90%{transform:translate(-1px,1px)}20%,80%{transform:translate(3px,-2px)}30%,50%,70%{transform:translate(-5px,3px)}40%,60%{transform:translate(5px,-3px)}}@media (width<=700px){#app{padding-left:max(10px, var(--safe-l));padding-right:max(10px, var(--safe-r));padding-top:max(10px, var(--safe-t))}.stat-card{flex:28%;min-width:0;padding:5px 8px}.clear-stars .st{font-size:44px}.field-card{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){.ab-dash,.title-tractor,#viewport-container.shake{animation:none}}.overlay{overflow-y:auto}.title-card,.sheet,.clear-card{margin:auto}@media (height<=520px){.title-art,.title-hint,.title-logo br{display:none}.title-card{gap:6px}.title-tractor,.title-logo{font-size:30px}.big-btn{min-height:48px;margin-top:2px;font-size:18px}.clear-stars .st{font-size:36px}.clear-card{padding:12px 14px}.clear-card h3{font-size:22px}.clear-par{margin-bottom:8px}}
