*{box-sizing:border-box}:root{color:#1d1d1f;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}.goatmech-page{--goatmech-paper:#f5f7fb;--goatmech-panel:#fff;--goatmech-panel-2:#eef4fb;--goatmech-ink:#1d1d1f;--goatmech-ink-2:#4d5663;--goatmech-muted:#6e7785;--goatmech-rule:#1d1d1f2e;--goatmech-rule-soft:#1d1d1f1a;--goatmech-blue:#06c;--goatmech-blue-soft:#0066cc1c;--goatmech-red:#b42318;--goatmech-red-bright:#d92d20;--goatmech-red-soft:#b423181f;--goatmech-green:#1f7a3f;--goatmech-gold:#936b00;width:min(100%,1480px);min-height:100vh;color:var(--goatmech-ink);margin:0 auto;padding:22px 24px 64px}body{background:radial-gradient(circle at 18% 8%,#0066cc1f,#0000 30%),linear-gradient(#fff 0%,#f5f7fb 44%,#eef2f7 100%);min-width:320px;margin:0}.goatmech-lab{gap:42px;width:min(100%,1328px);margin:0 auto;padding:34px 0 24px;display:grid}.goatmech-back{color:#1a161294;text-transform:uppercase;width:fit-content;font-size:12px;font-weight:700}.goatmech-back:before{content:"<- "}.goatmech-lab-hero{gap:12px;max-width:760px;margin:6px 0;display:grid}.goatmech-hero-meta{justify-content:space-between;align-items:center;gap:16px;display:flex}.goatmech-lab-hero p,.servo-toolbar,.servo-readouts,.servo-loop-diagram,.pid-status,.setpoint-label,.time-label,.pid-slider,.dof-toolbar,.dof-joint-control,.dof-mini-controls,.dof-body-copy{font-family:inherit}.goatmech-lab-hero p{color:var(--goatmech-blue);text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.goatmech-lab-hero h1{color:var(--goatmech-ink);letter-spacing:0;margin:0;font-size:clamp(46px,6vw,76px);font-weight:850;line-height:1}.goatmech-lab-hero span{max-width:700px;color:var(--goatmech-ink-2);font-size:clamp(17px,2vw,22px);line-height:1.45}.language-toggle{border:1px solid var(--goatmech-rule-soft);background:#fffc;border-radius:8px;grid-template-columns:repeat(2,minmax(52px,1fr));display:inline-grid;overflow:hidden}.language-toggle button{border:0;border-left:1px solid var(--goatmech-rule-soft);min-height:34px;color:var(--goatmech-muted);cursor:pointer;background:0 0;padding:0 12px;font-size:12px;font-weight:800}.language-toggle button:first-child{border-left:0}.language-toggle button.active{background:var(--goatmech-ink);color:var(--goatmech-paper)}.language-toggle button:focus-visible{outline-offset:-2px;outline:3px solid #0066cc47}.goatmech-lab-stack{gap:54px;display:grid}.goatmech-figure{border-bottom:1px solid var(--goatmech-rule);gap:18px;min-width:0;margin:0;padding-bottom:22px;display:grid}.goatmech-figure-rule{background:var(--goatmech-rule);height:1px}.goatmech-figure-label{color:var(--goatmech-blue);text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:12px;font-size:13px;font-weight:700;display:flex}.goatmech-figure-label span{color:inherit}.goatmech-figure-label span:nth-child(2){color:var(--goatmech-muted)}.goatmech-stage{min-width:0}.goatmech-canvas{touch-action:pan-y;background:0 0;width:100%;height:auto;display:block;overflow:visible}.goatmech-canvas *{vector-effect:non-scaling-stroke}.goatmech-canvas:focus-visible,.servo-toolbar button:focus-visible,.segmented-control button:focus-visible,.dof-mini-controls button:focus-visible,.pid-slider input:focus-visible,.dof-joint-control input:focus-visible{outline-offset:4px;outline:3px solid #0066cc47}.goatmech-canvas-interactive{cursor:crosshair;touch-action:none}.goatmech-figure figcaption{max-width:1240px;color:var(--goatmech-ink-2);margin:0;font-size:18px;line-height:1.6}.goatmech-figure figcaption b{color:var(--goatmech-ink);font-weight:700}.goatmech-caption-tag{color:var(--goatmech-blue);text-transform:uppercase;margin-right:12px;font-size:12px;font-weight:700}.paper-floor{fill:none;stroke:var(--goatmech-rule);stroke-width:1.6px}.paper-hatch{stroke:var(--goatmech-rule-soft);stroke-width:1px}.callout{fill:none;stroke-width:1.2px}.callout-movement{stroke:#0066ccb8}.callout-sensor{stroke:#3a6b2ab8}.callout-body{stroke:#a07b1cb8}.label-title{font-size:14px;font-weight:700}.label-note{fill:var(--goatmech-muted);font-size:13px}.label-title-red{fill:var(--goatmech-blue)}.label-title-green{fill:var(--goatmech-green)}.label-title-gold{fill:var(--goatmech-gold)}.arm-base-shadow{fill:var(--goatmech-ink)}.arm-base-block{fill:var(--goatmech-panel);stroke:var(--goatmech-ink);stroke-width:1.6px}.robot-link{stroke:var(--goatmech-ink);stroke-linecap:round}.robot-link-shoulder{stroke-width:12px}.robot-link-forearm{stroke-width:10px}.error-line{stroke:var(--goatmech-red-bright);stroke-dasharray:6 6;stroke-linecap:round;stroke-width:2px}.robot-gripper line{stroke:var(--goatmech-ink);stroke-linecap:round;stroke-width:4px}.joint-ring{fill:var(--goatmech-paper);stroke:var(--goatmech-blue);stroke-width:4px}.joint-base{stroke-width:5px}.joint-dot{fill:var(--goatmech-paper);stroke-width:3px}.joint-body-sensor{stroke:var(--goatmech-gold)}.joint-green{stroke:var(--goatmech-green)}.target-ring{fill:none;stroke:var(--goatmech-muted);stroke-dasharray:3 4;stroke-width:1.4px}.target-cross{stroke:var(--goatmech-muted);stroke-linecap:round;stroke-width:1px}.tracking-callouts,.servo-html-readouts,.pid-status-panel{color:var(--goatmech-muted);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin-top:12px;font-size:12px;display:grid}.tracking-callouts span,.servo-html-readouts span,.pid-status-panel span{border:1px solid var(--goatmech-rule-soft);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;background:#ffffff9e;border-radius:6px;min-width:0;padding:10px 12px}.tracking-callouts b,.servo-html-readouts b,.pid-status-panel b{color:var(--goatmech-ink);text-transform:uppercase;margin-bottom:4px;font-size:11px;display:block}.servo-html-readouts{grid-template-columns:repeat(3,minmax(0,1fr))}.servo-html-readouts .is-good{color:var(--goatmech-green)}.servo-html-readouts .is-error{color:var(--goatmech-red-bright)}.servo-toolbar{width:fit-content;color:var(--goatmech-muted);text-transform:uppercase;gap:10px;margin-bottom:16px;font-size:16px;font-weight:700;display:grid}.servo-toolbar button,.segmented-control button,.dof-mini-controls button{border:1px solid var(--goatmech-rule);background:var(--goatmech-panel);color:var(--goatmech-ink-2);cursor:pointer;font:inherit;text-transform:uppercase;border-radius:4px;transition:background .15s,border-color .15s,color .15s}.servo-toolbar button{width:fit-content;min-height:46px;padding:0 24px;font-size:15px;font-weight:800}.servo-toolbar button:hover,.dof-mini-controls button:hover{border-color:var(--goatmech-red);color:var(--goatmech-red)}.dial-ticks line{stroke:var(--goatmech-rule);stroke-linecap:round;stroke-width:1px}.dial-face{fill:none;stroke:var(--goatmech-rule);stroke-width:1.6px}.servo-error-wedge{fill:var(--goatmech-red-soft)}.servo-target{stroke:var(--goatmech-muted);stroke-dasharray:4 5;stroke-linecap:round;stroke-width:2.5px}.servo-actual{stroke:var(--goatmech-blue);stroke-linecap:round;stroke-width:5px}.servo-hub{fill:var(--goatmech-ink)}.servo-handle{fill:var(--goatmech-paper);stroke:var(--goatmech-red);stroke-width:3px}.servo-readouts{fill:var(--goatmech-muted);font-size:10px;font-weight:750}.servo-number{fill:var(--goatmech-blue);font-size:18px;font-weight:650}.servo-muted{fill:var(--goatmech-muted)}.servo-green{fill:var(--goatmech-green)}.servo-red{fill:var(--goatmech-red-bright)}.servo-loop-diagram rect{fill:var(--goatmech-panel);stroke:var(--goatmech-rule);stroke-width:1.2px}.servo-loop-diagram text{fill:var(--goatmech-ink-2);text-anchor:middle;font-size:11px;font-weight:750}.servo-loop-diagram path{fill:none;stroke:var(--goatmech-rule);stroke-width:1.6px}.servo-loop-diagram .servo-sensor-label{fill:var(--goatmech-muted);text-anchor:start;font-size:10px}#servo-arrow path{fill:var(--goatmech-muted)}.plot-axis,.plot-floor{stroke:var(--goatmech-rule);stroke-width:1.2px}.plot-floor{stroke:var(--goatmech-rule-soft)}.setpoint-line{stroke:var(--goatmech-rule);stroke-dasharray:6 7;stroke-width:1.2px}.pid-area{fill:var(--goatmech-blue-soft)}.pid-line{fill:none;stroke:var(--goatmech-blue);stroke-linejoin:round;stroke-width:2.8px}.pid-endpoint{fill:var(--goatmech-blue)}.pid-status,.setpoint-label,.time-label{fill:var(--goatmech-muted);font-size:12px}.setpoint-label{text-anchor:end}.time-label{text-anchor:middle}.pid-controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:12px;display:grid}.pid-status-panel{grid-template-columns:.7fr .7fr 1.6fr}.pid-slider{gap:14px;min-width:0;display:grid}.pid-slider-head{justify-content:space-between;align-items:baseline;gap:18px;display:flex}.pid-term{color:var(--goatmech-blue);text-transform:uppercase;font-size:16px;font-weight:700}.pid-value{color:var(--goatmech-ink);font-variant-numeric:tabular-nums;font-size:18px}.pid-slider input,.dof-joint-control input{appearance:none;background:var(--goatmech-rule);cursor:pointer;border-radius:4px;width:100%;height:4px}.pid-slider input::-webkit-slider-thumb{appearance:none;border:3px solid var(--goatmech-paper);background:var(--goatmech-blue);width:19px;height:19px;box-shadow:0 0 0 2px var(--goatmech-blue);border-radius:50%}.dof-joint-control input::-webkit-slider-thumb{appearance:none;border:3px solid var(--goatmech-paper);background:var(--goatmech-blue);width:19px;height:19px;box-shadow:0 0 0 2px var(--goatmech-blue);border-radius:50%}.pid-slider input::-moz-range-thumb{border:3px solid var(--goatmech-paper);background:var(--goatmech-blue);width:15px;height:15px;box-shadow:0 0 0 2px var(--goatmech-blue);border-radius:50%}.dof-joint-control input::-moz-range-thumb{border:3px solid var(--goatmech-paper);background:var(--goatmech-blue);width:15px;height:15px;box-shadow:0 0 0 2px var(--goatmech-blue);border-radius:50%}.dof-toolbar{justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;display:flex}.segmented-control{border:1px solid var(--goatmech-rule);background:var(--goatmech-panel);border-radius:5px;display:inline-flex;overflow:hidden}.segmented-control button{background:0 0;border:0;border-radius:0;min-height:44px;padding:0 24px;font-size:15px;font-weight:700;transition:none}.segmented-control button+button{border-left:1px solid var(--goatmech-rule)}.segmented-control button.active,.dof-mini-controls button.active{background:var(--goatmech-ink);color:var(--goatmech-paper)}.segmented-control button:not(.active){color:var(--goatmech-ink-2);background:0 0}.dof-count{color:var(--goatmech-muted);text-transform:uppercase;align-items:baseline;gap:12px;font-size:16px;display:inline-flex}.dof-count strong{color:var(--goatmech-blue);font-size:28px;font-weight:500}.dof-envelope path{fill:none;stroke:#0066cc24;stroke-dasharray:4 7;stroke-width:1.2px}.dof-arm-link{fill:none;stroke:var(--goatmech-ink);stroke-linecap:round;stroke-linejoin:round;stroke-width:10px}.dof-joint-ring{fill:var(--goatmech-paper);stroke:var(--goatmech-blue);stroke-width:4px}.dof-tip{fill:var(--goatmech-blue)}.dof-joint-control{width:min(100%,650px);color:var(--goatmech-ink-2);text-transform:uppercase;grid-template-columns:auto minmax(160px,1fr) auto;align-items:center;gap:20px;margin:-16px auto 0;font-size:16px;font-weight:700;display:grid}.dof-joint-control strong{color:var(--goatmech-blue);font-size:18px;font-weight:500}.free-cube-face{fill:#ffffffd1;stroke:var(--goatmech-ink);stroke-linejoin:round;stroke-width:1.6px}.free-cube-face-y{fill:#0066cc17}.free-cube-face-back,.free-cube-face-top{fill:#0066cc0e}.free-cube-face-bottom{fill:#1d1d1f0a}.free-cube-edge{fill:none;stroke:var(--goatmech-ink);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px}.free-body-axis line{stroke-linecap:round;stroke-width:2.6px}.axis-x{stroke:var(--goatmech-red)}.axis-y{stroke:var(--goatmech-gold)}.axis-z{stroke:var(--goatmech-green)}.free-body-axis text,.dof-body-copy{fill:var(--goatmech-muted);text-transform:uppercase;font-size:13px}.dof-body-copy{fill:var(--goatmech-blue);font-size:15px}.dof-body-copy-small{fill:var(--goatmech-muted);font-size:12px}.dof-mini-controls{flex-wrap:wrap;justify-content:center;gap:9px;margin-top:-16px;display:flex}.dof-mini-controls button{min-height:34px;padding:0 12px;font-size:11px}.goatmech-credit{max-width:860px;color:var(--goatmech-muted);margin:-12px 0 0;font-size:13px;line-height:1.55}.goatmech-credit a{color:var(--goatmech-blue);text-underline-offset:3px;font-weight:800;-webkit-text-decoration:underline #0066cc3d;text-decoration:underline #0066cc3d}@media (width<=980px){.goatmech-lab{gap:32px}.goatmech-figure figcaption{font-size:17px}.pid-controls{grid-template-columns:1fr}.tracking-callouts,.servo-html-readouts,.pid-status-panel{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.goatmech-page{padding-left:18px;padding-right:18px}.goatmech-hero-meta{flex-direction:column;align-items:flex-start}.language-toggle{width:100%;max-width:220px}.goatmech-figure-label{font-size:12px}.goatmech-figure figcaption{font-size:18px}.figure-side-label,.servo-readouts{display:none}.tracking-callouts,.servo-html-readouts,.pid-status-panel{grid-template-columns:1fr}.servo-toolbar{width:100%;font-size:13px}.servo-toolbar button{width:100%}.dof-toolbar,.dof-joint-control{flex-direction:column;align-items:stretch}.dof-toolbar{display:grid}.segmented-control{grid-template-columns:1fr 1fr;width:100%;display:grid}.dof-joint-control{grid-template-columns:1fr;gap:12px;display:grid}}@media (prefers-reduced-motion:reduce){.servo-toolbar button,.segmented-control button,.dof-mini-controls button{transition:none}}
