:root{color-scheme:dark;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e7edf5;background:#07101e;font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}button,a{touch-action:manipulation}button{font:inherit;color:inherit;border:1px solid #30445d;background:#142238;border-radius:8px;cursor:pointer;padding:9px 12px;font-size:12px;font-weight:600;white-space:nowrap;transition:background .2s,border-color .2s}button:hover{background:#203753;border-color:#76b7d7}button:focus-visible,a:focus-visible{outline:2px solid #69ddda;outline-offset:3px}button[aria-pressed=true]{background:#23466b;border-color:#69b9dd;color:white}button:disabled{opacity:.4;cursor:default}button[hidden],[hidden]{display:none!important}#studio{height:100%;display:flex;flex-direction:column;background:#0b1625}.studio-header{height:72px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:14px 22px;border-bottom:1px solid #28384c;gap:16px}.eyebrow{font-size:9px;font-weight:750;letter-spacing:.18em;color:#68d8cd}h1{font-size:20px;margin:5px 0 0;font-weight:650;letter-spacing:-.025em}.source-badge{font-size:10px;color:#9fb2c9;border:1px solid #344559;border-radius:20px;padding:7px 11px}.studio-toolbar{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:10px;min-height:54px;padding:9px 18px;background:#111f31}.view-tabs,.view-options{display:flex;gap:5px}.view-tabs button{background:transparent;border-color:transparent}.view-tabs button[aria-pressed=true]{background:#274868;border-color:#416889}.view-options button{padding:7px 9px;font-size:11px;background:transparent}.view-options button[aria-pressed=true]{background:#20495a}.view-options #fullscreen{font-size:19px;line-height:14px}#viewport{position:relative;flex:1;min-height:240px;isolation:isolate;background:radial-gradient(ellipse at 52% 30%,#384a60 0%,#1a2a3d 44%,#0b1421 100%)}#render{display:block;width:100%;height:100%;outline:none;touch-action:none}#loading{position:absolute;inset:0;background:#0c1828eb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;z-index:8;padding:30px;text-align:center}#loading small{font-size:12px;color:#9aaec5;max-width:500px}.loading-ring{height:28px;width:28px;border:2px solid #31475c;border-top-color:#6adde3;border-radius:50%;animation:rotate 1s linear infinite}@keyframes rotate{to{transform:rotate(360deg)}}.viewport-tag{position:absolute;top:18px;left:20px;display:flex;align-items:center;gap:7px;font-size:9px;letter-spacing:.13em;font-weight:700;color:#bec9d7;pointer-events:none}.status-dot{width:5px;height:5px;border-radius:50%;background:#62d9c7;box-shadow:0 0 8px #54cdbb77}.finish-tag{position:absolute;right:18px;top:18px;color:#9bb0c5;font-size:9px;display:flex;align-items:center;gap:5px;pointer-events:none}.swatch{display:inline-block;width:9px;height:9px;border-radius:50%;border:1px solid #ffffff55}.paint{background:#cdd4d8}.metal{background:linear-gradient(135deg,#c5d5e1,#546778)}.graphite{background:#2d3641}.orbit-hint{position:absolute;right:18px;bottom:17px;color:#92a4ba;font-size:10px;pointer-events:none}#part-labels{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}#label-lines{width:100%;height:100%;position:absolute;inset:0}#label-lines line{stroke:#80cce3;stroke-width:1;opacity:.58}#label-lines circle{fill:#a1e7ee;stroke:#173342;stroke-width:2}.component-label{position:absolute;padding:5px 8px;font-size:10px;border:1px solid #50748b;background:#102438e8;backdrop-filter:blur(10px);color:#e9faff;border-radius:5px;pointer-events:auto;max-width:165px;overflow:hidden;text-overflow:ellipsis;text-align:left;box-shadow:0 3px 12px #0002}.component-label.active{border-color:#7df2dc;background:#164c51}#part-drawer{position:absolute;inset:0 0 0 auto;width:270px;background:#101d30f5;backdrop-filter:blur(18px);padding:16px;z-index:6;border-left:1px solid #40556a;overflow:auto}.drawer-heading{display:flex;justify-content:space-between;align-items:center}.drawer-heading h2{font-size:16px;margin:0}.drawer-heading button{padding:3px 9px;font-size:20px}#part-drawer p{font-size:11px;color:#98acc3;line-height:1.5}#part-list{display:grid;gap:6px}#part-list button{text-align:left;white-space:normal;font-size:11px;padding:10px}#part-list button small{display:block;color:#91a5bd;font-size:9px;margin-top:4px;font-weight:400}#step-card{position:absolute;left:18px;bottom:19px;width:258px;max-width:36%;padding:17px;background:linear-gradient(145deg,#172b42f5,#0e1b2cf5);border:1px solid #3a556d;border-radius:12px;box-shadow:0 12px 35px #0003;z-index:4;backdrop-filter:blur(12px)}#step-card h2{font-size:16px;line-height:1.25;margin:8px 0}#step-card p{font-size:11px;color:#c2cfdf;line-height:1.6;margin:0 0 12px}#step-card small{display:block;color:#8ca1b9;font-size:9px;line-height:1.45;border-top:1px solid #304257;padding-top:10px}.text-button{background:none;border:none;padding:10px 0 0;font-size:10px;color:#80cddb}.playback-bar{padding:13px 18px;min-height:69px;display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:12px;background:#111f31;border-top:1px solid #304158}.playback-caption{display:flex;flex-direction:column;gap:5px}.playback-caption strong{font-size:11px;font-weight:600}.playback-caption small{font-size:10px;color:#8fa7c3;max-width:260px}.playback-buttons{display:flex;gap:6px;align-items:center}.playback-buttons button{padding:10px 12px;font-size:11px}#disassemble{background:#59cbd0;color:#052230;border-color:#76e6df}#assemble{background:#1d344e}#pause{background:#4c395e;border-color:#7e638e}#voice{font-size:10px;padding:8px;color:#a9bfce}.studio-footer{height:33px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-size:9px;color:#8ca1b8;gap:15px;flex-shrink:0}.studio-footer a{color:#87bacc;text-decoration:none;white-space:nowrap}#step-progress{display:flex;gap:3px;margin:0 0 12px}#step-progress span{height:3px;flex:1;background:#304760;border-radius:3px}#step-progress span.done{background:#5edacf}#step-progress span.current{background:#b2fded}body[data-mode=loading] .studio-toolbar button,body[data-mode=loading] .playback-bar button{opacity:.4;pointer-events:none}
.focus-view .studio-header,.focus-view .studio-footer{display:none}.focus-view #studio{height:100dvh}.focus-view #fullscreen{border-color:#77dfd3;background:#20495a}
#label-status{position:absolute;top:40px;left:50%;transform:translateX(-50%);max-width:calc(100% - 30px);padding:5px 9px;font-size:9px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;background:#102438eb;pointer-events:auto;z-index:2;color:#b9d8e4;border-color:#385570}
.voice-control{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0}.voice-status{max-width:130px;color:#92acc3;font-size:8px;line-height:1.25;text-align:right;overflow-wrap:anywhere}
.studio-toolbar{flex-wrap:wrap}.camera-controls{display:flex;align-items:center;gap:6px;flex:1 0 100%;flex-wrap:wrap;border-top:1px solid #293d54;padding-top:8px}.camera-controls label{display:flex;align-items:center;gap:8px;font-size:10px;color:#adc1d5;margin-right:4px}.camera-controls select{font:inherit;font-size:11px;color:#e7edf5;background:#142238;border:1px solid #30445d;border-radius:7px;padding:7px 9px;max-width:150px}.camera-controls button{font-size:11px;padding:7px 11px}.camera-controls #zoom-in,.camera-controls #zoom-out{font-size:18px;line-height:16px;min-width:34px;padding:7px}.camera-controls #focus-selected{min-width:112px}.camera-controls select:focus-visible{outline:2px solid #69ddda;outline-offset:3px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:780px){.studio-header{height:62px;padding:12px 14px}.source-badge{display:none}.studio-toolbar{padding:8px 10px;gap:6px;flex-wrap:wrap}.view-options{gap:2px}.view-options button{font-size:10px;padding:7px}.view-tabs button{padding:7px;font-size:11px}.playback-bar{flex-wrap:wrap;padding:10px;gap:8px}.playback-caption{flex-basis:100%;flex-direction:row;justify-content:space-between}.playback-caption small{max-width:220px;text-align:right}.playback-buttons{flex:1;gap:4px}.playback-buttons button{flex:1;padding:9px 7px;font-size:10px}.studio-footer{font-size:8px;padding:5px 10px;height:auto;min-height:30px}.studio-footer a{display:none}.finish-tag{display:none}.component-label{font-size:9px;max-width:130px}#step-card{max-width:42%;width:225px;padding:12px;left:10px;bottom:10px}#step-card h2{font-size:13px}#step-card p{font-size:10px;margin-bottom:8px}#step-card small{font-size:8px}.orbit-hint{font-size:9px}}@media(max-width:480px){h1{font-size:18px}.eyebrow{font-size:8px}.studio-toolbar{justify-content:center}.view-options{width:100%;justify-content:space-between}.playback-caption strong{font-size:10px}.playback-caption small{font-size:9px;max-width:150px}#voice{padding:9px 5px}#step-card{max-width:52%;width:195px}#step-card small{display:none}#part-drawer{width:240px}.component-label{max-width:110px;font-size:8px;padding:4px 5px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}.loading-ring{animation:none}}
@media(max-width:480px){.voice-status{max-width:73px;font-size:7px}}
@media(max-width:480px){.camera-controls{gap:5px}.camera-controls label{flex:1}.camera-controls select{max-width:134px}.camera-controls #focus-selected,.camera-controls #fit-model{flex:1}.camera-controls button{padding:7px 9px}}
@media(max-height:540px){#studio{overflow-y:auto;overscroll-behavior-y:contain}.studio-header{height:52px;padding:8px 14px}.studio-header h1{font-size:16px}.studio-toolbar{min-height:46px;padding-top:6px;padding-bottom:6px}#viewport{min-height:180px;flex:1 0 180px}.playback-bar{min-height:56px;padding-top:8px;padding-bottom:8px}.studio-footer{height:24px;min-height:24px}#step-card{max-height:calc(100% - 56px);overflow-y:auto;padding:10px}#step-card h2{font-size:13px}#step-card p{font-size:10px}.voice-status{max-width:115px}}

/* Missions keep the model stationary and give cards their own readable space. */
.studio-workspace{display:flex;flex:1;min-height:0;min-width:0}.studio-workspace #viewport{min-width:0}
#mission-panel{width:350px;flex:0 0 350px;overflow-y:auto;overscroll-behavior:contain;padding:18px;background:#0e1e30;border-left:1px solid #3b526a;font-size:12px;line-height:1.55}
.mission-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mission-heading h2{font-size:19px;line-height:1.25;margin:0}.mission-close{padding:1px 8px;font-size:20px}.mission-scope{color:#b0c4d6;font-size:11px}.mission-voice{color:#80cecf;font-size:10px;border-bottom:1px solid #30465e;padding-bottom:12px}
.mission-list{display:grid;gap:8px}.mission-list button{text-align:left;white-space:normal;min-height:44px;padding:10px 12px}.mission-list strong{display:block;font-size:14px;line-height:1.3}.mission-list small{display:block;margin-top:3px;font-size:12px;font-weight:400;line-height:1.3;color:#8fc4ce}
.mission-progress{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;font-size:10px;color:#95b7cb}.mission-progress progress{width:100%;height:7px;accent-color:#65d7cd}.mission-step-title{font-size:16px;margin:17px 0 10px}.mission-component{padding:12px;background:#17334a;border-left:3px solid #67dbd1;border-radius:4px}.mission-component p{margin:5px 0 0;font-size:11px;color:#c1d1df}.mission-fact{color:#cedae4}.mission-prompt{font-weight:650;font-size:13px}.mission-tools,.mission-navigation{display:flex;flex-wrap:wrap;gap:6px}.mission-tools button{font-size:10px;padding:7px 9px}.mission-instruction{font-size:10px;color:#a4bdce}.mission-options{display:grid;gap:7px;margin-top:14px}.mission-options button{white-space:normal;text-align:left;line-height:1.5}.mission-feedback{padding:10px 12px;border:1px solid #3b5369;border-radius:7px;font-size:11px;min-height:40px}.mission-feedback[data-kind=correct]{border-color:#66cbb1;background:#143d35}.mission-feedback[data-kind=incorrect]{border-color:#d1a667;background:#382e20}.mission-navigation button{font-size:11px}.mission-navigation [data-mission-next]{background:#58c9cc;color:#082533;border-color:#78e5dc}.mission-evidence{font-size:10px;color:#9fb7c9;margin-top:17px;border-top:1px solid #30465e;padding-top:12px}.mission-evidence summary{cursor:pointer}.mission-evidence a{color:#8bd6dd}.mission-evidence p{margin:8px 0}.mission-result{padding:12px;background:#16372f;border:1px solid #5eaa92;border-radius:8px;margin:15px 0}.mission-result h3{margin-top:0}.mission-legend{margin:14px 0;padding:12px;background:#d8e3e8;color:#152635;border-radius:7px}.mission-legend figcaption{font-size:10px;line-height:1.4;margin-bottom:8px}.mission-legend div{display:flex;gap:9px;align-items:center;font-size:10px}.mission-legend div>span:first-child{font-size:21px;min-width:25px}.legend-feed{color:#101820}.legend-rapid{color:#136a38}.legend-drill{color:#17496e}
.mission-open .playback-bar,.mission-open #step-card{display:none!important}.mission-open .view-tabs #assembled,.mission-open .view-tabs #explode{display:none}.mission-open #viewport{min-height:300px}
@media(max-width:780px){.mission-open #studio{overflow-y:auto}.mission-open .studio-workspace{flex-direction:column;flex:1 0 auto;min-height:0}.mission-open #viewport{min-height:280px;height:40vh;flex:0 0 40vh}.mission-open #mission-panel{width:100%;flex:0 0 auto;max-height:none;border-left:0;border-top:1px solid #3b526a;padding:15px}.mission-open .studio-footer{padding:8px 10px}.mission-navigation button,.mission-options button,.mission-list button{min-height:40px}}
@media(max-height:540px) and (min-width:781px){.mission-open .studio-workspace{min-height:300px;flex:1 0 300px}.mission-open #mission-panel{max-height:350px}}
.mission-menu-instruction{margin:12px 0;font-size:14px;line-height:1.45;color:#c1d1df}.mission-modes{display:grid;gap:10px}.mission-modes button{min-width:0;min-height:44px;padding:12px;text-align:left;white-space:normal}.mission-modes strong{display:block;font-size:15px}.mission-modes span{display:block;margin-top:5px;font-size:14px;font-weight:400;line-height:1.4;color:#b7c9dc}.mission-menu-back{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;font-size:14px}.mission-menu-back button{min-height:44px;font-size:14px}.mission-walkthrough-controls{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:6px;margin:12px 0}.mission-walkthrough-controls button{min-width:0;min-height:44px;padding:8px 4px;font-size:14px}.mission-walkthrough-controls .mission-play{background:#58c9cc;border-color:#78e5dc;color:#082533}.mission-voice-controls button{min-height:44px;font-size:14px}.mission-voice-controls{margin-bottom:6px}.mission-feedback[data-kind=recorded]{border-color:#749fce;background:#183552}

.studio-identity{display:flex;align-items:center;gap:22px;min-width:0}.studio-home{font-size:14px;color:#9fe4e5;text-decoration:none;white-space:nowrap;padding:8px 0}.studio-home:hover{text-decoration:underline}@media(max-width:650px){.studio-header{height:auto;min-height:72px}.studio-identity{flex-wrap:wrap;gap:7px 18px}.studio-home{padding:0}}

/* Keep the current mission label distinct without blurring the model. */
body[data-mission-stage="step"] .component-label.active{background:#ffda83;color:#112133;border-color:#fff0bb;font-weight:800;box-shadow:inset 3px 0 0 #fff4d8,0 2px 8px #0004;z-index:2}
body[data-mission-stage="step"] .component-label.active:hover{background:#ffe4a6;border-color:#fff4d8}

body[data-mission-focus]:not([data-mission-focus=""]) .component-label:not(.active){opacity:.45}
body[data-mission-focus]:not([data-mission-focus=""]) #label-lines line.active{stroke:#ffda83;stroke-width:2}
body[data-mission-focus]:not([data-mission-focus=""]) #label-lines circle.active{fill:#ffda83;r:4}

body[data-mission-focus]:not([data-mission-focus=""]) #label-lines line:not(.active),body[data-mission-focus]:not([data-mission-focus=""]) #label-lines circle:not(.active){opacity:.13}
body[data-mission-focus]:not([data-mission-focus=""]) #label-lines line.active{opacity:1}
