@font-face{font-family:Space;src:url(assets/space.ttf) format('truetype');font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{--bg:#f4f3ec;--surface:#fffefa;--ink:#152d3a;--muted:#536673;--line:#d3dcd9;--accent:#a8481a;--soft:#e9eeea;--blue:#126783;margin:0;background:var(--bg);color:var(--ink);font:18px/1.85 Arial,'Noto Sans KR',sans-serif}body.dark{--bg:#091b28;--surface:#102837;--ink:#edf2ec;--muted:#a5bac7;--line:#304956;--accent:#ffb276;--soft:#183443;--blue:#88cde4}body.large{font-size:24px}a{color:var(--blue);text-underline-offset:4px}button,select,input{font:inherit}button,select{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:3px;padding:7px 13px;cursor:pointer;line-height:1.5}button:hover,button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}button:focus-visible,a:focus-visible,input:focus-visible,svg:focus-visible{outline:3px solid #f59b55;outline-offset:4px}input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer;min-height:28px}input[type=checkbox]{accent-color:var(--accent)}header{max-width:1200px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:24px 36px;border-bottom:1px solid var(--line)}.brandname{font:600 17px Space,Arial;letter-spacing:.01em;color:var(--ink);text-decoration:none}.utilities{display:flex;gap:8px;flex-wrap:wrap}.utilities button{font-size:13px;padding:6px 11px}.title{max-width:1160px;margin:44px auto 26px;padding:0 28px}.eyebrow{font:13px Space,monospace;letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}h1,h2,h3,h4{font-family:Space,Arial,sans-serif;font-weight:500;line-height:1.18;letter-spacing:-.03em}h1{font-size:clamp(38px,5vw,66px);margin:16px 0 20px}h2{font-size:34px;margin:0 0 30px}h3{font-size:26px;margin:46px 0 22px}h4{font-size:20px;margin:20px 0}p{margin:0 0 23px}.lead{max-width:720px;color:var(--muted);line-height:1.8}.tabs{max-width:1100px;margin:20px auto 28px;border-block:1px solid var(--line);display:flex;overflow:auto;gap:24px;padding:0 0;white-space:nowrap}.tabs a{padding:14px 0;text-decoration:none;color:var(--muted);font:15px Space,Arial}.tabs a.active{color:var(--ink);border-bottom:3px solid var(--accent);font-weight:600}.wide{max-width:1100px;margin:0 auto;padding:0}.article{max-width:760px;margin:auto;padding:0 0}.reading{padding-top:72px;padding-bottom:30px;border-top:1px solid var(--line);margin-top:60px}.sectionlabel{display:flex;align-items:baseline;gap:18px}.sectionlabel span{color:var(--muted);font-size:.65em;letter-spacing:0}.anchor{font-size:19px;text-decoration:none;color:var(--muted)}.scene-panel{background:#071b2b;color:#e5f1f4;position:relative;border:1px solid #304956;overflow:hidden}.live-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;min-height:470px}.viewport{position:relative;min-height:450px;touch-action:none}.viewport canvas{display:block;width:100%;height:100%}.scene-top{position:absolute;top:20px;left:22px;pointer-events:none;font:12px Space,monospace;letter-spacing:.11em;color:#a8c7d8;z-index:1}.scene-bottom{position:absolute;bottom:16px;left:22px;right:22px;font:12px/1.7 Arial;color:#aac1cb;pointer-events:none}.scene-aside{padding:30px 23px;border-left:1px solid #304956;display:flex;flex-direction:column;gap:15px;background:#102633}.scene-aside label,.scene-aside small{font-size:13px;color:#b7cbd6}.scene-aside select,.scene-aside button{background:#102633;color:#e5f1f4;border-color:#3a5361;font-size:13px}.scene-aside .number{font:34px Space,monospace;color:#ffb276;line-height:1.2}.scene-aside .statname{font-size:12px;color:#b7cbd6}.scene-aside .divider{border-top:1px solid #304956;padding-top:15px}.spectrum{display:flex;gap:5px;height:85px;align-items:flex-end}.spectrum .sbar{flex:1;background:#80bed6;min-height:1px;position:relative}.spectrum .sbar:last-child{background:#ffb276}.spectrum .sbar span{position:absolute;bottom:-24px;font:10px monospace;width:100%;text-align:center;color:#a4bdc8}.values{font-family:monospace;font-size:13px;overflow-wrap:anywhere}.scene-controls{padding:20px 24px;border-top:1px solid #304956;display:flex;align-items:center;gap:18px;flex-wrap:wrap}.scene-controls button{background:transparent;color:#e5f1f4;border-color:#3a5361;font-size:13px}.scene-controls .primary{background:#f0ab72;color:#10222e;border-color:#f0ab72}.hero-elbow{display:flex;align-items:center;gap:12px;flex:1;min-width:220px;font-size:14px}.hero-elbow input{accent-color:#f0ab72}.hint{font-size:14px;color:var(--muted);line-height:1.7;margin-top:12px}.caption{font-size:13px;color:var(--muted);margin:16px 0 32px}.formula{padding:22px 12px;margin:28px 0;background:var(--soft);border-left:3px solid var(--accent);overflow-x:auto;text-align:center}.katex{font-size:1.08em!important}.katex-display{margin:0!important}.note{border-left:2px solid var(--line);padding-left:22px;color:var(--muted);font-size:.9em}.diagram{width:100%;display:block;color:var(--ink);background:var(--surface);border:1px solid var(--line);margin:30px 0}.diagram text{font-family:Arial,sans-serif;fill:currentColor}.controls-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:24px;background:var(--surface);border:1px solid var(--line)}.control label{display:flex;justify-content:space-between;gap:8px;font-size:14px}.control output{font-family:monospace;color:var(--accent)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.actions button{font-size:14px}table{width:100%;border-collapse:collapse;font-size:.85em;line-height:1.65}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{font-weight:500;color:var(--muted)}.tablewrap{overflow-x:auto;margin:20px 0}.matrix{font:13px/1.8 monospace;text-align:right;white-space:nowrap}.matrix td{padding:7px 13px}.matrix th{font:12px monospace}.lab-b{display:grid;grid-template-columns:320px minmax(0,1fr);gap:28px}.vector svg,.chart svg{width:100%;height:auto;display:block;touch-action:none;background:var(--surface);border:1px solid var(--line)}.chart text,.vector text{fill:var(--muted);font:12px Arial}.plotline{fill:none;stroke-width:2}.statrow{display:flex;gap:20px;flex-wrap:wrap;border-block:1px solid var(--line);padding:20px 0;margin:24px 0}.statrow>div{flex:1;min-width:150px}.statrow label{font-size:13px;color:var(--muted);display:block}.statrow strong{font:26px Space,monospace}.small{font-size:14px;color:var(--muted)}.badge{font:11px Space,monospace;letter-spacing:.05em;padding:5px 8px;border:1px solid var(--line);display:inline-block}ul{padding-left:23px}li{margin-bottom:16px}.references li{font-size:.85em}.disclaimer{font-size:13px;color:var(--muted);text-align:center;margin-top:90px;padding:0 24px}footer{max-width:1100px;margin:20px auto 0;padding:30px 0 40px;border-top:1px solid var(--line);display:flex;align-items:center;gap:20px;flex-wrap:wrap;font-size:13px;color:var(--muted)}footer img{height:20px}.dark footer .lightmark,body:not(.dark) footer .darkmark{display:none}footer a:last-child{margin-left:auto}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:12px 24px;z-index:10;font-size:14px;max-width:90vw;overflow-wrap:anywhere}.cover{height:480px;position:relative;margin:30px auto 60px;background:#071b2b;overflow:hidden}.cover img{width:100%;height:100%;object-fit:cover}.cover-copy{position:absolute;left:5%;top:16%;max-width:390px;color:#fff;text-shadow:0 2px 16px #071b2b}.cover h1{font-size:52px}.topic-link{display:block;text-decoration:none;border-block:1px solid var(--line);padding:28px 0;margin-bottom:40px}.topic-link h2{margin:0 0 12px}.topic-link p{color:var(--muted);margin:0;font-size:16px}.topic-link:hover h2{color:var(--accent)}.built{max-width:760px;padding:50px 24px;margin:auto}.built h1{font-size:36px}.built h2{margin-top:50px;font-size:27px}.built li{font-size:16px}.fallback{width:100%;height:450px}.fallback text{fill:#b7cbd6}.fallback line{stroke:#a0c8db;stroke-width:12;stroke-linecap:round} @media(min-width:1600px){.title{margin-top:60px}.live-grid{min-height:520px}.viewport{min-height:520px}}@media(max-width:1160px){.wide,.tabs,footer{margin-left:24px;margin-right:24px}.article{padding-left:24px;padding-right:24px}}@media(max-width:740px){body{font-size:17px}body.large{font-size:23px}header{padding:16px 20px;align-items:flex-start}.brandname{font-size:13px;max-width:140px}.utilities{justify-content:flex-end;gap:5px}.utilities button{font-size:11px;padding:5px 7px}.title{margin-top:30px;padding:0 20px}.title h1{font-size:38px}.wide,.tabs,footer{margin-left:16px;margin-right:16px}.live-grid{display:flex;flex-direction:column}.viewport{min-height:360px;height:360px}.scene-aside{border-left:0;border-top:1px solid #304956;display:grid;grid-template-columns:1fr 1fr;padding:20px;gap:20px}.scene-aside .number{font-size:29px}.scene-aside .divider{padding-top:0;border:0}.scene-aside .full{grid-column:1/-1}.spectrum{height:60px;max-width:250px;margin-bottom:22px}.scene-controls{gap:12px;padding:16px}.hero-elbow{flex-basis:100%}.controls-grid{grid-template-columns:1fr 1fr;padding:18px;gap:16px}.lab-b{grid-template-columns:1fr;gap:20px}.vector{max-width:340px;margin:auto}.reading{padding-top:46px;margin-top:44px}.article{padding-inline:20px}h2{font-size:29px}h3{font-size:23px}.sectionlabel{gap:12px}.sectionlabel span{font-size:13px}.formula{font-size:.85em}.cover{height:430px}.cover img{object-position:65% center;opacity:.6}.cover-copy{left:7%;max-width:280px}.cover h1{font-size:38px}.matrix td{padding:7px}.statrow strong{font-size:23px}footer{gap:14px}footer a:last-child{margin-left:0}}
@media print{body{background:white;color:black;font-size:12pt}header,.tabs,.utilities,button,.scene-controls,.controls-grid,.toast{display:none!important}.reading{break-inside:avoid;margin-top:20px;padding-top:20px}.wide,.article{max-width:100%;margin:0;padding:0}.viewport{height:350px}.scene-panel{-webkit-print-color-adjust:exact;print-color-adjust:exact}.live-grid{min-height:350px;grid-template-columns:2fr 1fr}.lab-b{grid-template-columns:1fr 2fr}.formula{overflow:visible}.tabcontent{display:block!important}a{color:inherit}footer{padding:15px 0}.disclaimer{margin-top:30px}}
.lab-b>div,.controls-grid>div{min-width:0}select{max-width:100%}.katex-display>.katex{text-align:center}.katex .katex-mathml{overflow:hidden} .scene-aside{min-width:0}
.large .chart text,.large .vector text{font-size:16px}.large .scene-bottom,.large .scene-top{font-size:16px}.large .scene-aside .statname{font-size:16px}.large .hint,.large .small{font-size:18px}.large .diagram text{font-size:20px}
#printAll{display:none}@media print{body.printing-all>#app{display:none!important}#printAll{display:block}.print-tab{break-before:page}.print-tab:first-child{break-before:auto}.print-tab .scene-panel{break-inside:avoid}.print-tab .scene-top{position:static}.print-tab .scene-bottom{position:static;padding:8px}.print-tab .viewport{height:auto!important;min-height:0}.print-tab .wide{max-width:100%}.print-tab .article{max-width:100%}.print-tab .chart svg{max-height:300px}.print-tab .scene-aside .number{font-size:20px}.print-tab .title{margin:10px 0}.print-tab .title h1{font-size:30px}}
.pusht-live{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;background:var(--surface);border:1px solid var(--line);padding:28px}.pusht-live .vector{max-width:570px;width:100%;margin:auto}.pusht-live aside{padding-top:20px}.pusht-live aside label{font-size:14px;display:flex;justify-content:space-between;gap:12px}.pusht-live aside output{font:14px monospace}.model-controls{display:flex;gap:22px;flex-wrap:wrap;padding:20px;background:var(--surface);border:1px solid var(--line)}.model-controls label{font-size:14px}.model-controls select{display:block}.model-controls input[type=number]{width:90px;background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:6px}.model-controls #mlpControls{display:flex;gap:12px;align-items:end}.progress{font-size:14px;color:var(--muted);min-height:30px;padding:12px 0}@media(max-width:740px){.pusht-live{grid-template-columns:1fr;padding:12px;gap:5px}.pusht-live aside{padding:10px}.model-controls{gap:15px;padding:15px}.model-controls label{max-width:100%}.model-controls #mlpControls{flex-wrap:wrap}.model-controls select{max-width:100%}}
.article table:not(.matrix){table-layout:fixed;overflow-wrap:anywhere}.vector text,.chart text{stroke:none}
.three-models{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.mini-viewport{height:230px;background:#071b2b}.mini-viewport canvas{width:100%;height:100%;display:block}.elevation-live{padding:24px;background:var(--surface);border:1px solid var(--line)}.elevation-live>div:first-child{display:flex;align-items:center;flex-wrap:wrap;gap:18px;font-size:14px}.elevation-images{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.elevation-images figure{margin:14px 0 0}.elevation-images canvas{width:100%;height:auto;display:block;image-rendering:pixelated;touch-action:none;cursor:crosshair;background:#000}.elevation-images figcaption{font-size:12px;color:var(--muted);padding:8px 0}.law-quote{border-left:3px solid var(--line);margin:24px 0;padding-left:24px;font-size:.9em}details{border-block:1px solid var(--line);padding:15px 0;margin:15px 0}summary{cursor:pointer;color:var(--blue)}.chart [role=button]{cursor:pointer}@media(max-width:740px){.three-models{grid-template-columns:1fr}.mini-viewport{height:250px}.elevation-live{padding:14px}.elevation-images{gap:12px;grid-template-columns:1fr}.elevation-images figure{max-width:300px;margin-inline:auto;width:100%}.elevation-images figcaption{font-size:14px}.law-quote{padding-left:15px}.model-controls input[type=number]{max-width:120px}}
.article p,.article li,.note,.references{overflow-wrap:anywhere}@media(max-width:740px){body{font-size:18px}body.large{font-size:24px}}
.map-live{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:26px;padding:24px;background:var(--surface);border:1px solid var(--line)}.map-live aside{padding:18px 0}.map-live aside .control{margin:24px 0}.map-live .vector{width:100%;max-width:650px;margin:auto}.map-live .statrow{display:block;margin:16px 0;padding:10px 0}.map-live .statrow>div{margin:12px 0}.map-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:28px 0}.map-pair figure{margin:0;min-width:0}.map-pair figcaption{font-size:14px;margin-bottom:12px;color:var(--muted)}.reference-card{padding:24px;border:1px solid var(--line);background:var(--surface);margin:25px 0}.reference-grid{display:grid;grid-template-columns:1fr 1fr;max-width:600px;margin:auto;gap:30px}.reference-grid svg{width:100%;height:auto}.reference-grid text{fill:var(--ink);font:13px Arial}.vector [data-endpoint],.vector [data-obstacle]{cursor:grab}@media(max-width:740px){.map-live{grid-template-columns:1fr;padding:12px;gap:8px}.map-live .vector{max-width:100%}.map-live aside{padding:0 10px}.map-live .statrow{display:flex}.map-pair{grid-template-columns:1fr;gap:25px}.map-pair .vector{max-width:100%}.reference-card{padding:14px}.reference-grid{gap:10px}}
#floorPlot text,#rrtPlot text,#starPlot text{font-size:20px}#gridA text,#gridB text,#gridReference text,#trajectoryPlot text{font-size:17px}#armWorkspace text,#armConfiguration text{font-size:17px}.large #floorPlot text,.large #rrtPlot text,.large #starPlot text{font-size:27px}.large #gridA text,.large #gridB text,.large #gridReference text,.large #trajectoryPlot text,.large #armWorkspace text,.large #armConfiguration text{font-size:23px}@media(max-width:740px){#floorPlot text,#rrtPlot text,#starPlot text{font-size:31px}#gridA text,#gridB text,#gridReference text,#trajectoryPlot text,#armWorkspace text,#armConfiguration text{font-size:22px}.large #floorPlot text,.large #rrtPlot text,.large #starPlot text{font-size:39px}.large #gridA text,.large #gridB text,.large #gridReference text,.large #trajectoryPlot text,.large #armWorkspace text,.large #armConfiguration text{font-size:29px}}
.topic-cards{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:50px 0}.topic-card{display:flex;flex-direction:column;gap:15px;padding:32px;background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none;transition:transform .2s,border-color .2s}.topic-card:hover{border-color:var(--accent);transform:translateY(-3px)}.topic-card h2{font-size:30px;margin:0}.topic-card p{font-size:16px;line-height:1.8;margin:0;color:var(--muted)}.card-tabs{font:12px/1.9 Space,Arial;color:var(--muted);margin-top:auto;padding-top:20px;border-top:1px solid var(--line)}.cover-foot{height:270px}.cover-foot .cover-copy{max-width:440px}.cover-foot h2{font-size:38px;color:#fff}.large .topic-card p{font-size:22px}.large .card-tabs{font-size:16px}@media(max-width:740px){.topic-cards{grid-template-columns:1fr;gap:16px;margin:35px 0}.topic-card{padding:25px}.topic-card h2{font-size:28px}.cover-foot{height:240px}.cover-foot h2{font-size:32px}}
.chart .line-plot text{font-size:var(--plot-font,12px)}.large .chart .line-plot text{font-size:16px}@media(max-width:740px){.large .chart .line-plot text{font-size:24px}}
.hero-elbow output{white-space:nowrap;font:12px monospace;min-width:78px}
