.vision-board{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;gap:5px;padding:3% 5%;text-align:center;overflow:auto}
.vision-heading{display:flex;gap:8px;align-items:center;justify-content:center;width:100%}
.vision-heading,.vision-instruction,.vision-result,.vision-privacy{flex-shrink:0}
.vision-board .vision-task{font-family:'Shantell Sans','Trebuchet MS',sans-serif;font-weight:800;font-size:18px;line-height:1.25;margin:0}
.vision-progress{border-radius:8px;background:#d9eab9;color:#537458;font-size:11px;font-weight:700;padding:3px 5px;white-space:nowrap}
.vision-instruction{font-size:12px;line-height:1.3;color:#4f6d56;margin:0;max-width:96%}
.vision-stage{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;min-height:89px;flex:1}
.vision-camera{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;width:190px;max-width:65%;flex-shrink:1}
.vision-feed{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;border:2px dashed #a5b394;border-radius:14px;background:#f6efd944}
.vision-feed.is-live{border-style:solid;border-color:#4e9374;background:#183d36}
.vision-live{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
.vision-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.vision-placeholder svg{width:58px;height:58px}
.vision-feed-caption{font-size:10px;line-height:1.25;color:#446d51;font-weight:700}
.vision-camera+.vision-target{min-width:0;width:94px;max-width:30%;flex-shrink:0}
.vision-ready,.vision-target{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:94px;max-width:47%;font-size:12px;line-height:1.25}
.vision-ready{width:155px;padding:4px 9px;background:#f6efd944;border:2px dashed #a5b394;border-radius:14px;color:#62775b}
.vision-ready.is-ready{border-color:#4e9374;background:#dbead155}
.vision-ready svg{width:58px;height:58px}
.vision-target svg{width:58px;height:58px}
.vision-target{min-width:120px;font-weight:700;color:#446d51}
.vision-result{margin:0;font-size:13px;line-height:1.3;min-height:2.6em;max-width:98%;display:flex;align-items:center;justify-content:center;font-weight:600;color:#3f6954}
.vision-result.is-correct{color:#256c4f;font-weight:800}
.vision-privacy{margin:0;color:#61755c;font-size:10px;line-height:1.3;max-width:98%}
.vision-cards{display:flex;justify-content:center;gap:8px;width:100%}
.vision-cards button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:1;min-width:0;min-height:91px;max-width:110px;padding:5px 3px;border:2px solid #b69c68;border-radius:13px;background:#fff8df;color:#40634d;font:inherit;font-weight:700;font-size:12px;line-height:1.2;box-shadow:0 3px 0 #a58e5e33;transition:background .15s}
.vision-cards button:hover{background:#eaf0c9}
.vision-cards button:focus-visible{outline:3px solid #19776b;outline-offset:3px}
.vision-cards svg{width:52px;height:52px;flex:none}
.room-actions.vision-actions{flex-wrap:wrap;align-items:center;gap:7px;left:17%;width:57%;top:71.4%}
.room-actions.vision-actions button{padding:9px 12px;min-height:44px;font-size:13px}
.room-actions.vision-actions button[aria-pressed='true']{background:#dbeabc;border-color:#3c795b}
body[data-room='objects'] .room-actions.vision-actions{top:68.7%}
@media(max-width:900px){.vision-board{gap:4px;padding:2.5% 4%}.vision-board .vision-task{font-size:17px}.vision-ready,.vision-target{min-height:87px}}
@media(max-width:600px){.vision-board{padding:3% 4%;gap:4px}.vision-board .vision-task{font-size:16px}.vision-instruction{font-size:11px}.vision-stage{min-height:82px;gap:12px}.vision-ready,.vision-target{min-height:83px;font-size:11px}.vision-ready svg,.vision-target svg{width:48px;height:48px}.vision-result{font-size:12px}.vision-privacy{font-size:9px}.vision-cards{gap:5px}.vision-cards button{min-height:81px;font-size:11px}.vision-cards svg{width:47px;height:47px}.room-actions.vision-actions{left:calc(var(--scene-scroll,0px) + 10px);width:calc(100vw - 20px);gap:5px}.room-actions.vision-actions button{padding:8px 10px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.vision-cards button{transition:none}}
@media(max-width:600px){body[data-room='gestures'] .room-axel,body[data-room='objects'] .room-axel{width:56px}body[data-room='gestures'] #exercise,body[data-room='objects'] #exercise{left:calc(var(--scene-scroll,0px) + 8px);width:calc(100vw - 16px)}}

/* Painted hand cutouts: larger silhouettes and reserved space prevent layout jumps. */
.vision-hand{display:block;width:74px;height:82px;object-fit:contain;flex:none}
body[data-room='gestures'] .vision-cards button{min-height:125px;max-width:132px;gap:5px}
body[data-room='gestures'] .vision-cards .vision-hand{width:78px;height:88px}
@media(max-width:600px){.vision-hand{width:52px;height:60px}body[data-room='gestures'] .vision-cards button{min-height:106px}body[data-room='gestures'] .vision-cards .vision-hand{width:57px;height:68px}}
@media(max-width:600px){.vision-camera{width:172px}.vision-camera+.vision-target{width:80px}.vision-feed-caption{font-size:9px}}

/* Object expedition: choose an available target and help check the model's guess. */
.hunt-targets{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;width:100%;flex-shrink:0}
.hunt-targets button,.hunt-confirm button{border:2px solid #b69c68;border-radius:10px;background:#fff8df;color:#40634d;font:inherit;font-size:11px;min-height:32px;padding:4px 9px}
.hunt-targets button[aria-pressed='true']{background:#dbecad;border-color:#4d8664;font-weight:700}
.hunt-targets button:focus-visible,.hunt-confirm button:focus-visible{outline:3px solid #19776b;outline-offset:2px}
.hunt-confirm{display:grid;grid-template-columns:1fr 1fr;gap:4px;width:100%}
.object-hunt .vision-camera+.vision-target{width:148px;max-width:42%}
.object-hunt .vision-stage{gap:10px;min-height:72px}
.object-hunt .vision-result{min-height:2.6em}
@media(max-width:600px){.hunt-targets{gap:4px}.hunt-targets button{min-height:30px;padding:3px 6px;font-size:10px}.object-hunt .vision-camera+.vision-target{width:125px}.hunt-confirm button{padding:3px;font-size:10px;min-height:30px}.object-hunt .vision-result{font-size:11px}}

.object-hunt .vision-camera+.vision-target{min-height:64px}
@media(max-width:600px){.object-hunt{gap:3px;padding:2% 4%}.object-hunt .vision-stage{min-height:68px}.object-hunt .hunt-confirm button{min-height:27px}.object-hunt .vision-privacy{font-size:8px}}

.hunt-reject{font:inherit;font-size:11px;min-height:30px;padding:3px 9px;border:2px solid #b69c68;border-radius:10px;color:#40634d;background:#fff8df}
.hunt-reject:focus-visible{outline:3px solid #19776b;outline-offset:2px}

/* Painted object cutouts share the treehouse illustration style. */
.vision-object{display:block;width:96px;height:96px;object-fit:contain;flex:none}
.hunt-targets button{display:flex;align-items:center;justify-content:center;gap:4px}
.hunt-targets .vision-object{width:26px;height:26px}
@media(max-width:600px){.vision-object{width:60px;height:60px}.hunt-targets .vision-object{width:19px;height:19px}.hunt-targets button{gap:2px;padding:3px 4px}.object-hunt .vision-stage{min-height:72px}}
