:root{color-scheme:dark;--bg:#101617;--panel:#151d1f;--line:#2b3739;--text:#edf2e9;--muted:#98aaa5;--lime:#d3ef88;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,a,canvas{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;background:#202b2d;border:1px solid #354344;border-radius:8px;min-height:44px;padding:10px 14px;cursor:pointer;touch-action:manipulation}button:hover{background:#2b393a}button:disabled{opacity:.45;cursor:wait}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--lime);outline-offset:3px}a{color:var(--lime)}.app{height:100vh;height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) 330px;overflow:hidden}.stage{min-width:0;min-height:0;position:relative;overflow:hidden}#field{width:100%;height:100%;display:block;touch-action:none}.stage-header{position:absolute;top:27px;left:30px;right:30px;display:flex;justify-content:space-between;align-items:center;gap:10px;pointer-events:none}.back{pointer-events:auto;text-decoration:none;color:#d6e0da;font-size:13px;padding:10px 0}.badge{font-size:10px;font-weight:600;letter-spacing:.1em;border:1px solid #53654d;background:#152321c9;border-radius:30px;padding:8px 11px;color:var(--lime)}.title{position:absolute;top:97px;left:32px;pointer-events:none;text-shadow:0 2px 20px #101617}.eyebrow{font-size:9px;letter-spacing:.15em;font-weight:650;color:var(--muted)}h1{font-size:clamp(25px,3.6vw,53px);font-weight:450;letter-spacing:-0.055em;line-height:1.12;margin:14px 0}h1 em{font-style:normal;color:var(--lime)}.stage-footer{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));left:28px;right:24px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;color:#b9c9c2;pointer-events:none}.stage-footer span{padding:8px;background:#101617b8;border-radius:6px}.stage-footer button{pointer-events:auto;white-space:nowrap}.quiet{background:transparent;border-color:transparent;color:var(--muted);padding:8px;font-size:12px}.panel{background:var(--panel);border-left:1px solid var(--line);padding:28px 24px 20px;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:22px}.panel-heading{display:flex;justify-content:space-between;gap:8px;align-items:center}.panel-heading p{margin:8px 0 0;font-size:18px;line-height:1.2;letter-spacing:-0.03em}.info{border:1px solid var(--line);border-radius:50%;width:34px;height:34px;min-height:34px;flex-shrink:0;font:italic 17px Georgia,serif}.metrics{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0}.metrics div+div{padding-left:22px;border-left:1px solid var(--line)}.metrics span{font-size:9px;letter-spacing:.13em;color:var(--muted)}.metrics strong{display:block;font-size:31px;font-weight:450;letter-spacing:-0.04em;margin-top:6px;font-variant-numeric:tabular-nums}.metrics small{font-size:13px;color:var(--muted)}.section-label{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.1em;color:var(--muted);margin-bottom:12px}.section-label span+span{letter-spacing:0}.map-wrap{position:relative;background:#122721;border:1px solid #3d5146;border-radius:9px;overflow:hidden}.map-wrap canvas{display:block;width:100%;aspect-ratio:4/3;touch-action:none}.map-label{position:absolute;right:10px;bottom:7px;font-size:9px;color:#8aab94;pointer-events:none}.legend{display:flex;justify-content:center;gap:17px;font-size:10px;color:var(--muted);margin:10px 0 16px}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;vertical-align:1px;margin-right:3px}.robot{background:#70b7d0}.ball{background:#fff}.target{background:var(--lime)}.segmented{display:flex;background:#101719;border:1px solid var(--line);padding:3px;border-radius:9px;gap:3px}.segmented button{flex:1;min-width:0;border:0;background:transparent;color:var(--muted);font-size:11px;padding:7px 3px;min-height:36px}.segmented button[aria-pressed="true"]{background:#34423a;color:var(--lime)}.hint{font-size:11px;color:var(--muted);line-height:1.5;margin:10px 0 0;min-height:34px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.actions button{font-size:12px}.actions .primary{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;background:var(--lime);color:#1d2c20;border-color:var(--lime);font-weight:650;font-size:13px;min-height:48px}.actions #replay{grid-column:1/-1;background:transparent;border-color:var(--line);color:var(--muted)}.performance{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted);gap:8px;margin-top:auto}.live-dot{width:5px;height:5px;border-radius:50%;background:var(--lime);flex-shrink:0}.footnote{font-size:10px;color:#78908a;line-height:1.6;margin:0}.loading{position:absolute;inset:0;background:#101617f5;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;padding:30px;text-align:center;font-size:12px;color:var(--muted);z-index:3}.loading strong{font-size:19px;color:var(--text);font-weight:500}.loading[hidden]{display:none}.loader{width:28px;height:28px;border:2px solid #31413b;border-top-color:var(--lime);border-radius:50%;animation:spin 1s linear infinite}.loader[hidden]{display:none}@keyframes spin{to{transform:rotate(360deg)}}dialog{max-width:560px;width:calc(100% - 30px);max-height:85dvh;background:#182123;border:1px solid #3d4c46;border-radius:14px;color:var(--text);padding:32px;line-height:1.7;font-size:13px}dialog::backdrop{background:#0009;backdrop-filter:blur(5px)}dialog h2{font-size:29px;font-weight:450;letter-spacing:-0.04em;margin:10px 0 20px}.close{float:right;font-size:22px;background:transparent;border:0;padding:0;width:36px;min-height:36px}@media(max-width:700px) and (orientation:portrait){.app{grid-template-columns:1fr;grid-template-rows:minmax(200px,1fr) auto}.stage-header{top:max(10px,env(safe-area-inset-top));left:18px;right:18px}.title{top:64px;left:20px}h1{font-size:27px;margin-top:8px}.title .eyebrow{font-size:8px}.stage-footer{left:14px;right:12px;bottom:9px;font-size:9px}.stage-footer .quiet{font-size:10px}.panel{border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;padding:15px 18px max(12px,env(safe-area-inset-bottom));max-height:57dvh}.panel-heading{grid-column:1/-1}.panel-heading p{font-size:18px;margin-top:4px}.metrics{grid-column:2;grid-row:2;align-self:start;padding:10px 0}.metrics strong{font-size:24px}.metrics div+div{padding-left:12px}.metrics span{font-size:8px}.setup{grid-column:1;grid-row:2/5;min-width:0}.section-label{font-size:8px;margin-bottom:8px}.section-label span+span{font-size:8px}.legend{font-size:9px;gap:9px;margin:7px 0}.segmented button{font-size:10px;min-height:34px}.hint{font-size:9px;margin-top:7px;min-height:0}.actions{grid-column:2;grid-row:3/5;gap:6px}.actions button{font-size:10px;padding:7px 4px;min-height:36px}.actions .primary{font-size:11px;min-height:42px;padding:10px}.performance{grid-column:1/-1;font-size:9px;margin-top:0}.footnote{display:none}}@media(max-height:560px) and (orientation:landscape){.app{grid-template-columns:minmax(0,1fr) 280px}.panel{padding:14px 16px;gap:10px}.panel-heading .eyebrow{font-size:8px}.panel-heading p{font-size:16px;margin:4px 0 0}.metrics{padding:8px 0}.metrics strong{font-size:24px;margin-top:2px}.setup{display:grid;grid-template-columns:112px 1fr;gap:6px 10px}.section-label{grid-column:1/-1;margin:0;font-size:8px}.map-wrap{grid-column:1;grid-row:2/5;align-self:start}.legend{grid-column:2;margin:0;gap:6px;font-size:8px;justify-content:start;align-items:center}.segmented{grid-column:2;padding:2px;gap:1px}.segmented button{font-size:8px;padding:5px 1px;min-height:32px}.hint{grid-column:2;font-size:9px;margin:0;min-height:0}.actions{gap:6px}.actions button{min-height:34px;font-size:10px;padding:7px}.actions .primary{min-height:38px;font-size:11px}.actions #replay{min-height:30px;padding:5px}.performance{margin:0;font-size:8px}.footnote{display:none}.stage-header{top:10px;left:20px;right:20px}.title{top:65px;left:22px}h1{font-size:31px}.stage-footer{bottom:10px;left:18px;right:14px;font-size:10px}}@media(prefers-reduced-motion:reduce){.loader{animation:none}}