:root{--ink:#1b3a43;--muted:#60797d;--paper:#f1f6f5;--line:#d9e4e2;--teal:#27646a;--pink:#d66f99;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Segoe UI','Malgun Gothic',sans-serif;font-size:14px}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;background:var(--white);border:1px solid var(--line);border-radius:8px;padding:10px 14px;transition:background .15s,border-color .15s}button:hover{background:#e8f0ef;border-color:#98b5b4}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #3979a8;outline-offset:3px}button:disabled{opacity:.45;cursor:default}.top{height:68px;display:flex;align-items:center;padding:0 4%;gap:30px;background:#fff;border-bottom:1px solid var(--line)}.back{color:var(--muted);text-decoration:none;font-size:13px}.brand{font-size:16px}.brand strong{margin-left:6px}.mode{margin-left:auto;font-size:12px;background:#edf5f1;padding:8px 12px;border-radius:30px;color:#406c58;display:flex;gap:7px;align-items:center}.mode i{width:6px;height:6px;background:#5b966f;border-radius:50%}main{max-width:1520px;margin:auto;padding:30px 4% 14px}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.eyebrow{font:10px Consolas,monospace;letter-spacing:2px;color:#6c8f91}h1{font-size:32px;letter-spacing:-1.6px;margin:8px 0 10px;font-weight:750}.heading p{margin:0;color:var(--muted);font-size:13px}.connection{text-align:right;line-height:1.65;min-width:155px}.connection span,.connection small{display:block;color:var(--muted);font-size:11px}.connection strong{font-size:14px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 276px;gap:20px}.arena{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff}.scoreboard{display:flex;align-items:center;justify-content:center;gap:70px;height:82px;border-bottom:1px solid var(--line)}.team{display:flex;align-items:center;gap:16px;font-size:17px;font-weight:650}.team strong{font:34px Consolas,monospace;font-weight:700;margin:0 6px}.team .dot{width:10px;height:10px;border-radius:50%;background:var(--pink)}.graphite .dot{background:#34434e}.match-clock{text-align:center;min-width:100px}.match-clock span{display:block;color:var(--muted);font-size:10px;letter-spacing:1px}.match-clock strong{display:block;font:22px Consolas,monospace;margin-top:3px}.viewport{height:470px;position:relative;background:#e4edea;overflow:hidden}.viewport canvas{display:block;outline:none;touch-action:none}.loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:13px;padding:30px;text-align:center}.scene-tools{position:absolute;top:16px;left:18px;display:flex;gap:5px;z-index:2}.scene-tools button{font-size:11px;padding:7px 11px;background:#ffffffdf}.scene-tools button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.pitch-caption{position:absolute;bottom:15px;left:20px;right:20px;display:flex;justify-content:space-between;font-size:10px;color:#667d78;pointer-events:none}.pitch-caption span:first-child{font-family:Consolas,monospace;letter-spacing:1px}.transport{display:flex;gap:8px;padding:16px;flex-wrap:wrap;align-items:center}.primary{background:var(--teal);border-color:var(--teal);color:white;font-weight:650;min-width:132px}.primary:hover{background:#1c5157;color:white}.stop{margin-left:auto;color:#a65050;background:#fff6f5;border-color:#edd2ce;font-size:12px}.controls{display:flex;flex-direction:column;gap:14px}.control-block{background:#fff;border:1px solid var(--line);border-radius:12px;padding:19px}.section-label{display:block;font-size:11px;font-weight:700;color:#658284;margin-bottom:13px;letter-spacing:.4px}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.switch-row strong{font-size:13px}.switch-row small{display:block;font-size:10px;color:var(--muted);margin-top:5px;line-height:1.4}.switch-row input{width:32px;height:18px;accent-color:var(--teal);cursor:pointer}.speed{display:flex;flex-wrap:wrap;align-items:center;font-size:11px;margin-top:22px}.speed output{margin-left:auto;font:12px Consolas,monospace}.speed input{width:100%;accent-color:var(--teal);margin-top:9px}.robot-tabs{display:flex;padding:3px;background:#f1f5f5;border-radius:9px;gap:3px}.robot-tabs button{width:50%;border:0;padding:8px;font-size:12px;background:transparent}.robot-tabs button.selected{background:#fff;box-shadow:0 1px 4px #1b3a4320}.robot-tabs button.younghee{color:#a65077}.robot-summary{display:flex;justify-content:space-between;margin:17px 0 12px;font-size:13px;font-weight:600}.robot-summary small{color:var(--muted);font-size:10px;font-weight:400}.motion-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.motion-pad button{font-size:23px;padding:9px 8px;background:#f7fafa}.motion-pad button span{display:block;font-size:10px;margin-top:3px}.motion-pad .forward{grid-column:2}.motion-pad [data-action=left]{grid-column:1}.tip{font-size:10px;line-height:1.8;color:var(--muted);margin:12px 0}.pose{display:flex;gap:10px;border-top:1px solid var(--line);margin:14px 0 0;padding-top:12px;justify-content:space-between}.pose dt{font-size:9px;color:var(--muted);margin-bottom:4px}.pose dd{margin:0;font:11px Consolas,monospace}.notes p{font-size:11px;line-height:1.8;margin:7px 0}.muted{color:var(--muted)}.export{width:100%;margin-top:12px;font-size:11px;padding:8px}.bottom{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:22px;padding:20px 24px;background:#fff;border:1px solid var(--line);border-radius:12px}.observations{display:flex;flex-wrap:wrap;gap:12px 35px}.observations>.section-label{width:100%;margin-bottom:0}.observations>div span{display:block;font-size:10px;color:var(--muted);margin-bottom:5px}.observations strong{font:13px Consolas,'Malgun Gothic',monospace}.events ol{list-style:none;padding:0;margin:0;font-size:11px;height:58px;overflow:auto}.events li{padding-bottom:6px;color:#536d70}.events time{font:10px Consolas,monospace;margin-right:12px;color:#9aabaa}footer{font-size:10px;color:#7c9294;text-align:center;padding:18px 0 4px}@media(min-width:1350px){.viewport{height:520px}}@media(max-width:1000px){main{padding:23px 3%}.workspace{grid-template-columns:minmax(0,1fr) 240px;gap:12px}.scoreboard{gap:30px}.viewport{height:410px}.control-block{padding:15px}.transport button{font-size:11px;padding:9px}.primary{min-width:105px}.stop{margin-left:0}.heading h1{font-size:27px}}@media(max-width:730px){.top{gap:14px;padding:0 16px;height:60px}.brand{font-size:12px}.mode{font-size:9px;padding:6px 8px}.back{font-size:10px}.heading{align-items:flex-start;margin-bottom:20px}.heading h1{font-size:23px;letter-spacing:-1px}.heading p{font-size:11px;max-width:240px;line-height:1.6}.connection{min-width:100px}.connection strong{font-size:11px}.connection span,.connection small{font-size:9px}.eyebrow{font-size:8px;letter-spacing:1px}.workspace{grid-template-columns:1fr}.viewport{height:370px}.controls{display:grid;grid-template-columns:1fr 1fr;gap:10px}.controls .notes{grid-column:1/-1}.bottom{grid-template-columns:1fr;padding:17px;gap:18px}.scoreboard{gap:30px;height:74px}.team{font-size:14px;gap:9px}.team strong{font-size:29px}.scene-tools{left:12px;top:12px}.pitch-caption{left:12px;right:12px;font-size:8px}.transport{padding:12px}.observations{gap:12px 22px}.heading .connection{padding-top:10px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
