.obstacle-lab{--green:#237460;--field-radius:6px;container:gym-obstacle/inline-size}.obstacle-lab *{box-sizing:border-box}.obstacle-lab body{margin:0}.obstacle-lab button,.obstacle-lab input,.obstacle-lab select{font:inherit}.obstacle-lab button,.obstacle-lab select{min-height:44px}.obstacle-lab button{cursor:pointer;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:6px;padding:10px 14px;font-size:13px;font-weight:600;transition:background .15s}.obstacle-lab button:hover:not(:disabled){background:var(--selected)}.obstacle-lab button:disabled{cursor:default;opacity:.45}.obstacle-lab :focus-visible{outline-offset:3px;outline:3px solid #418397}.obstacle-lab header{background:var(--accent);height:82px;color:var(--soft);justify-content:space-between;align-items:center;padding:0 3.5%;display:flex}.obstacle-lab .brand{color:var(--selected);align-items:center;gap:24px;text-decoration:none;display:flex}.obstacle-lab .brand img{object-fit:contain}.obstacle-lab .brand>span{letter-spacing:.25em;border-left:1px solid var(--muted);padding-left:24px;font-size:11px}.obstacle-lab .header-right{letter-spacing:.12em;align-items:center;gap:10px;font-size:10px;display:flex}.obstacle-lab .version{color:var(--muted);margin-left:28px}.obstacle-lab .live-dot{background:var(--green);border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.obstacle-lab .header-right .live-dot{background:var(--selected)}.obstacle-lab main{max-width:1600px;margin:auto;padding:48px 3.5% 32px}.obstacle-lab .intro{justify-content:space-between;align-items:center;margin-bottom:38px;display:flex}.obstacle-lab .eyebrow,.obstacle-lab .section-label{letter-spacing:.12em;color:var(--accent);font-size:10px;font-weight:650}.obstacle-lab h1{letter-spacing:-.055em;margin:10px 0 12px;font-size:clamp(36px,4vw,58px);font-weight:550;line-height:1}.obstacle-lab h1 span{color:var(--accent)}.obstacle-lab .intro p{color:var(--muted);margin:0;font-size:15px;line-height:1.6}.obstacle-lab .intro-note{border-left:1px solid var(--line);margin-right:35px;padding:0 0 0 30px}.obstacle-lab .intro-note>span{letter-spacing:.12em;color:var(--accent);font-size:10px}.obstacle-lab .intro-note p{margin-top:8px;font-size:13px}.obstacle-lab .lab{border:1px solid var(--line);background:var(--paper);border-radius:10px;grid-template-columns:190px minmax(0,1fr) 252px;display:grid;overflow:hidden}.obstacle-lab .scenarios{border-right:1px solid var(--line);padding:24px 16px}.obstacle-lab .section-label{align-items:center;gap:9px;line-height:1.6;display:flex}.obstacle-lab .section-label>span{color:var(--muted);font-size:9px}.obstacle-lab .scenario-btn{text-align:left;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:12px;width:100%;min-height:58px;margin-top:7px;padding:15px 10px;font-weight:500;display:flex}.obstacle-lab .scenario-btn:first-child{margin-top:22px}.obstacle-lab .scenario-btn.active{color:var(--accent);background:var(--selected);border-color:#b8cbd0}.obstacle-lab .scenario-icon{justify-content:center;width:28px;font-size:21px;display:flex}.obstacle-lab .scenario-btn small{color:var(--muted);margin-top:4px;font-size:10px;font-weight:400;display:block}.obstacle-lab .mission{border-top:1px solid var(--line);margin-top:28px;padding-top:24px}.obstacle-lab .mission p{color:var(--muted);margin:12px 0 24px;font-size:12px;line-height:1.7}.obstacle-lab .body-label{color:var(--muted);letter-spacing:.08em;font-size:9px}.obstacle-lab .body-label strong{color:var(--ink);letter-spacing:-.02em;margin-top:8px;font-size:22px;font-weight:500;display:block}.obstacle-lab .scenario-foot{color:var(--muted);margin-top:50px}.obstacle-lab .small-mark{color:var(--accent);font-size:23px}.obstacle-lab .scenario-foot p{font-size:11px;line-height:1.7}.obstacle-lab .workspace{background:var(--soft);flex-direction:column;min-width:0;display:flex}.obstacle-lab .stage-header{background:var(--paper);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:20px 22px;display:flex}.obstacle-lab .stage-header>div{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.obstacle-lab .stage-header strong{font-size:13px;font-weight:600}.obstacle-lab .scene-meta{color:var(--muted);margin-left:8px;font-size:10px}.obstacle-lab .pill{border:1px solid var(--line);white-space:nowrap;color:var(--muted);border-radius:5px;padding:5px 9px;font-size:10px}.obstacle-lab .stage-wrap{background:radial-gradient(var(--paper),var(--shell));flex:1;align-items:center;min-height:365px;display:flex;position:relative;overflow:hidden}.obstacle-lab #ob-scene{touch-action:manipulation;user-select:none;width:100%;min-height:320px;display:block}.obstacle-lab .compass{color:var(--muted);align-items:center;gap:7px;font-size:10px;display:flex;position:absolute;top:20px;right:22px}.obstacle-lab .compass span{color:var(--muted);font-size:22px}.obstacle-lab .scene-caption{letter-spacing:.1em;color:var(--muted);align-items:center;gap:8px;font-size:8px;display:flex;position:absolute;bottom:18px;left:22px}.obstacle-lab .right-caption{left:auto;right:22px}.obstacle-lab .legend-dot{border-radius:50%;width:6px;height:6px;margin-left:8px;display:inline-block}.obstacle-lab .bot-dot{background:var(--accent)}.obstacle-lab .goal-dot{background:var(--green)}.obstacle-lab .line-key{border-top:1px dashed var(--accent);width:14px;margin-left:8px}.obstacle-lab .transport{background:var(--paper);border-top:1px solid var(--line);align-items:center;gap:8px;padding:16px 20px;display:flex}.obstacle-lab .primary{background:var(--accent);border-color:var(--accent);color:#fff}.obstacle-lab .primary:hover:not(:disabled){background:var(--deep)}.obstacle-lab .speed-label{color:var(--muted);align-items:center;gap:6px;margin-left:auto;font-size:10px;display:flex}.obstacle-lab .speed-label select{background-position:right 8px center;width:64px;min-height:44px;padding-left:10px;padding-right:24px;font-size:12px}.obstacle-lab .metric-strip{background:var(--paper);border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:10px;padding:18px 22px;display:grid}.obstacle-lab .metric-strip>div{border-right:1px solid var(--line);padding-left:12px}.obstacle-lab .metric-strip>div:first-child{padding-left:0}.obstacle-lab .metric-strip>div:last-child{border:0}.obstacle-lab .metric-strip span{letter-spacing:.07em;color:var(--muted);font-size:8px;line-height:1.5;display:block}.obstacle-lab .metric-strip strong{letter-spacing:-.04em;margin-top:8px;font-size:23px;font-weight:450;display:block}.obstacle-lab .metric-strip small{color:var(--muted);letter-spacing:0;font-size:11px}.obstacle-lab .floor-help{color:var(--muted);background:var(--paper);margin:0;padding:0 22px 18px;font-size:10px;line-height:1.6}.obstacle-lab .tools{border-left:1px solid var(--line);padding:24px 20px}.obstacle-lab .tool-tabs{gap:6px;margin:16px 0 18px;display:flex}.obstacle-lab .tool-tabs button{flex:1}.obstacle-lab .tool-tabs button.active{color:var(--accent);background:var(--selected);border-color:#b8cbd0}.obstacle-lab label:not(.check):not(.speed-label){color:var(--muted);margin:15px 0;font-size:11px;display:block}.obstacle-lab select{appearance:none;background:var(--soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23697078' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 16px center;width:100%;color:var(--ink);border:1px solid var(--line);border-radius:var(--field-radius);min-height:50px;margin-top:8px;padding:10px 40px 10px 12px;font-size:13px;display:block;box-shadow:0 1px 2px #16161a12}.obstacle-lab .range-label{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex!important}.obstacle-lab .range-label output{font-variant-numeric:tabular-nums;color:var(--ink)}.obstacle-lab input[type=range]{width:100%;height:20px;accent-color:var(--accent);margin:0}.obstacle-lab input[type=checkbox]{accent-color:var(--accent);flex-shrink:0;width:17px;height:17px;margin:0}.obstacle-lab .height-diagram{min-height:38px;color:var(--muted);align-items:center;gap:10px;font-size:10px;display:flex;position:relative}.obstacle-lab .height-bar{background:var(--selected);border:1px solid var(--accent);width:28px;height:20px;box-shadow:3px 3px var(--line)}.obstacle-lab .divider{border-top:1px solid var(--line);margin:22px 0}.obstacle-lab .check{align-items:center;gap:9px;margin:14px 0;font-size:11px;line-height:1.5;display:flex}.obstacle-lab .outline{color:var(--accent);border-color:var(--accent);width:100%;margin-top:7px}.obstacle-lab .learning-card{background:var(--soft);border-radius:7px;margin-top:16px;padding:14px 12px}.obstacle-lab .learning-card>div:first-child{align-items:center;gap:7px;display:flex}.obstacle-lab .learning-card strong{font-size:11px;font-weight:550}.obstacle-lab .learning-card p{color:var(--muted);min-height:30px;margin:8px 0;font-size:10px;line-height:1.6}.obstacle-lab .learning-card small{color:var(--muted);margin-top:9px;font-size:8px;line-height:1.5;display:block}.obstacle-lab .learning-track{background:var(--line);border-radius:5px;height:3px}.obstacle-lab .learning-track span{background:var(--accent);width:0;height:100%;display:block}.obstacle-lab .below{grid-template-columns:1fr 1fr;gap:32px;margin:28px 0;display:grid}.obstacle-lab .readout,.obstacle-lab .activity{min-width:0;padding:0 4px}.obstacle-lab .readout .section-label,.obstacle-lab .activity .section-label{justify-content:space-between}.obstacle-lab .readout>p{color:var(--muted);font-size:10px;line-height:1.6}.obstacle-lab .sensor-row{border-bottom:1px solid var(--line);color:var(--muted);grid-template-columns:45px 1fr 1fr 70px;gap:12px;padding:10px 0;font-size:11px;display:grid}.obstacle-lab .sensor-row b{color:var(--ink);font-weight:500}.obstacle-lab .sensor-row .blocked{color:var(--error)}.obstacle-lab .activity>p{min-height:45px;margin:20px 0;font-size:13px;line-height:1.7}.obstacle-lab .utility{flex-wrap:wrap;gap:7px;display:flex}.obstacle-lab .utility button{font-size:11px}.obstacle-lab #ob-manual{padding-bottom:14px;font-size:12px}.obstacle-lab #ob-manual-buttons{flex-wrap:wrap;gap:5px;margin:10px 0;display:flex}.obstacle-lab #ob-manual small{color:var(--muted);line-height:1.6;display:block}.obstacle-lab .method{border-top:1px solid var(--line);color:var(--muted);margin-top:18px;padding:22px 0;font-size:12px}.obstacle-lab summary{cursor:pointer;color:var(--ink);padding:10px 0;font-size:13px;font-weight:500}.obstacle-lab .method>div{max-width:860px;line-height:1.8}.obstacle-lab .comparison-top{justify-content:space-between;align-items:center;gap:15px;display:flex}.obstacle-lab #ob-comparison{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:24px}.obstacle-lab h2{letter-spacing:-.03em;font-size:23px;font-weight:500}.obstacle-lab #ob-comparison>p{color:var(--muted);font-size:12px;line-height:1.7}.obstacle-lab .table-wrap{overflow-x:auto}.obstacle-lab table{border-collapse:collapse;width:100%;font-size:12px}.obstacle-lab th,.obstacle-lab td{text-align:left;border-bottom:1px solid var(--line);padding:13px 10px}.obstacle-lab th{color:var(--muted);font-size:10px;font-weight:500}.obstacle-lab footer{border-top:1px solid var(--line);letter-spacing:.08em;color:var(--muted);justify-content:space-between;gap:20px;padding:25px 3.5%;font-size:9px;display:flex}.obstacle-lab footer b{color:var(--accent);margin:0 10px;font-weight:400}.obstacle-lab [hidden]{display:none!important}@container gym-obstacle (width>=1500px){.obstacle-lab .lab{grid-template-columns:210px minmax(0,1fr) 270px}}@container gym-obstacle (width<=1150px){.obstacle-lab .lab{grid-template-columns:160px minmax(0,1fr)}.obstacle-lab .tools{border-left:0;border-top:1px solid var(--line);grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 24px;display:grid}.obstacle-lab .tools>.section-label{grid-column:1/-1}.obstacle-lab .tools>.divider{grid-column:1/-1;margin:10px 0}.obstacle-lab .learning-card{grid-column:2/4;margin:0}.obstacle-lab .intro-note{margin:0}.obstacle-lab .scenarios{padding:20px 10px}.obstacle-lab .scenario-btn{padding:13px 7px;font-size:12px}.obstacle-lab .scenario-icon{width:23px}.obstacle-lab .tools label:not(.check){margin:8px 0}.obstacle-lab .stage-wrap{min-height:360px}}@container gym-obstacle (width<=680px){.obstacle-lab header{height:68px;padding:0 20px}.obstacle-lab .brand{gap:15px}.obstacle-lab .brand img{width:120px}.obstacle-lab .brand>span{padding-left:15px;font-size:9px}.obstacle-lab .header-right{font-size:8px}.obstacle-lab .version{display:none}.obstacle-lab main{padding:30px 16px 20px}.obstacle-lab .intro{margin-bottom:24px}.obstacle-lab .intro-note{display:none}.obstacle-lab .eyebrow{font-size:9px}.obstacle-lab h1{font-size:42px}.obstacle-lab .intro p{font-size:12px}.obstacle-lab .lab{grid-template-columns:1fr}.obstacle-lab .scenarios{border:0;padding:14px 12px 8px}.obstacle-lab .scenarios>.section-label{font-size:9px}.obstacle-lab #ob-scenario-list{gap:7px;padding:12px 0 8px;display:flex;overflow-x:auto}.obstacle-lab .scenario-btn,.obstacle-lab .scenario-btn:first-child{text-align:center;border-color:var(--line);flex-direction:column;flex-shrink:0;justify-content:center;gap:5px;width:auto;min-width:82px;min-height:74px;margin:0;padding:10px 12px;font-size:10px}.obstacle-lab .scenario-btn small{display:none}.obstacle-lab .scenario-icon{font-size:22px}.obstacle-lab .mission{align-items:center;gap:12px;margin:4px 0 12px;padding:10px 0 0;display:flex}.obstacle-lab .mission>.section-label,.obstacle-lab .scenario-foot{display:none}.obstacle-lab .mission p{flex:1;margin:0;font-size:10px}.obstacle-lab .body-label{font-size:7px}.obstacle-lab .body-label strong{margin-top:3px;font-size:16px}.obstacle-lab .stage-header{padding:14px 16px}.obstacle-lab .scene-meta{font-size:9px}.obstacle-lab .stage-wrap{min-height:280px}.obstacle-lab #ob-scene{min-height:270px}.obstacle-lab .scene-caption{gap:5px;font-size:7px;bottom:12px;left:12px}.obstacle-lab .right-caption{left:auto;right:12px}.obstacle-lab .transport{flex-wrap:wrap;gap:5px;padding:12px}.obstacle-lab .transport>button{padding:10px;font-size:11px}.obstacle-lab .speed-label{font-size:9px}.obstacle-lab .speed-label select{width:57px;margin:0;font-size:11px}.obstacle-lab .metric-strip{gap:5px;padding:16px 12px}.obstacle-lab .metric-strip>div{padding-left:8px}.obstacle-lab .metric-strip span{font-size:7px}.obstacle-lab .metric-strip strong{font-size:20px}.obstacle-lab .floor-help{padding:0 12px 14px;font-size:9px}.obstacle-lab .tools{grid-template-columns:1fr 1fr;gap:12px;padding:20px 16px}.obstacle-lab .tools>.section-label{grid-column:1/-1}.obstacle-lab .tools .tool-tabs{grid-column:1/-1;margin:0}.obstacle-lab .tools>label:first-of-type,.obstacle-lab .tools>label:has(#ob-controller),.obstacle-lab .tools>.height-diagram{grid-column:1/-1}.obstacle-lab .check{margin:8px 0;font-size:10px}.obstacle-lab .learning-card,.obstacle-lab .outline{grid-column:1/-1}.obstacle-lab .tools select{font-size:16px}.obstacle-lab .tools .check:last-of-type{grid-column:1/-1}.obstacle-lab .below{grid-template-columns:1fr;gap:24px;margin:24px 0}.obstacle-lab .section-label>span{font-size:8px}.obstacle-lab footer{flex-direction:column;gap:12px;padding:20px 16px;font-size:8px}.obstacle-lab .comparison-top{align-items:flex-start}.obstacle-lab h2{margin-top:8px;font-size:20px}.obstacle-lab #ob-comparison{padding:16px}.obstacle-lab .sensor-row{gap:7px}}@media (prefers-reduced-motion:reduce){.obstacle-lab *{transition:none!important}}@media (forced-colors:active){.obstacle-lab select{appearance:auto;background-image:none}}.obstacle-lab .scenarios,.obstacle-lab .tools{min-width:0}@container gym-obstacle (width<=680px){.obstacle-lab .lab{grid-template-columns:minmax(0,1fr)}.obstacle-lab .tools{grid-template-columns:repeat(2,minmax(0,1fr))}.obstacle-lab .tools .check,.obstacle-lab .tools button{min-width:0}.obstacle-lab .stage-wrap{width:100%}.obstacle-lab .scene-caption,.obstacle-lab .right-caption{font-size:6px}}.obstacle-lab .tile-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.obstacle-lab .tile-controls label{margin:8px 0!important}.obstacle-lab .tile-controls input{border:1px solid var(--line);background:var(--soft);border-radius:6px;width:100%;min-width:0;min-height:50px;margin-top:8px;padding:10px;font-size:16px}.obstacle-lab .tile-controls button{grid-column:1/-1;font-size:11px}.obstacle-lab .check{min-height:32px}.obstacle-lab input[type=range]{height:32px}@container gym-obstacle (width<=1150px){.obstacle-lab .tile-controls{grid-column:1/-1;grid-template-columns:1fr 1fr 2fr;align-items:end}.obstacle-lab .tile-controls button{grid-column:auto;margin-bottom:8px}}@container gym-obstacle (width<=680px){.obstacle-lab .tile-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.obstacle-lab .tile-controls button{grid-column:1/-1}.obstacle-lab .check{min-height:44px}.obstacle-lab input[type=range]{height:44px}}.obstacle-lab .lab,.obstacle-lab .below{min-width:0}.obstacle-lab .ob-neural-card{border:1px solid var(--line);background:var(--soft);border-radius:8px;margin-top:22px;padding:18px}.obstacle-lab .ob-neural-card h2{font-size:15px}.obstacle-lab #ob-nn-status{overflow-wrap:anywhere;min-height:3.4em;font-size:12px;line-height:1.7}.obstacle-lab .play-actions,.obstacle-lab .utility{flex-wrap:wrap}.obstacle-lab .check{align-items:center;gap:8px;display:flex}.obstacle-lab .check input{width:auto;min-height:0;margin:0}.obstacle-lab .tile-controls{min-width:0}.obstacle-lab select{padding-inline:12px 44px}.obstacle-lab button{min-height:44px}.obstacle-lab .stage-wrap svg{max-width:100%}.obstacle-lab .robot-roster{border:1px solid var(--line);background:var(--soft);border-radius:8px;align-items:center;gap:20px;min-width:0;margin-bottom:20px;padding:16px;display:flex}.robot-roster>img{object-fit:contain;flex-shrink:0;width:160px;height:140px}.robot-roster-info{flex:1;min-width:0}.robot-roster-info label{margin-bottom:8px;font-size:12px;display:block}.robot-roster-info select{width:100%;max-width:360px;min-height:50px;font-size:16px}.robot-roster-info p{overflow-wrap:anywhere;margin:8px 0;font-size:11px;line-height:1.6}.robot-roster-info #ob-asset-status{min-height:18px;color:var(--muted)}@container gym-obstacle (width<=500px){.obstacle-lab .robot-roster{flex-direction:column;align-items:stretch;gap:8px}.robot-roster>img{align-self:center;width:160px;height:110px}}.obstacle-lab .tool-tabs{flex-wrap:wrap;gap:6px;display:flex}.obstacle-lab .tool-tabs button{flex:auto;min-width:0}.obstacle-lab #ob-scene [data-goal]{cursor:grab;touch-action:none}.obstacle-lab #ob-scene[data-mode=goal]{cursor:crosshair}.obstacle-lab .vision-card{margin-bottom:22px}.obstacle-lab #ob-vision-preview{aspect-ratio:4/3;background:#132a31;border-radius:6px;width:100%;overflow:hidden}.obstacle-lab #ob-vision-preview canvas{width:100%;height:100%;display:block}.obstacle-lab .vision-card .section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.obstacle-lab .vision-card h2{margin:0}.obstacle-lab .gaze-pad button{min-width:44px;padding:6px}.obstacle-lab #ob-scene[data-dragging=true],.obstacle-lab #ob-scene[data-dragging=true] [data-goal]{cursor:grabbing}.obstacle-lab #ob-scene:has([data-goal]){touch-action:none}.obstacle-lab .goal-feedback{z-index:2;pointer-events:none;background:var(--selected);color:var(--ink);border-radius:6px;min-height:40px;margin:0;padding:10px 16px;font-size:12px;position:absolute;top:8px;left:8px;right:8px}
