/* A continuous room, floor depth and close approaches to the stations. */
.workshop-world{transform-origin:0 0}
.workshop-full .workshop-scene{touch-action:manipulation}
.walking-carpenter{width:15%;transform:translate(-50%,-96%) scale(var(--walker-depth,1));transform-origin:50% 96%}
.walker-shadow{width:7%;height:1.5%;transform:translate(-50%,-20%) scale(var(--walker-depth,1));transform-origin:50% 20%}
.walker-label{top:0%;font-size:12px}
.workshop-machine{position:absolute;left:20%;top:82%;width:19%;aspect-ratio:1;transform:translate(-50%,-91.6%);padding:0;border:0;background:transparent;box-shadow:none;z-index:82;cursor:pointer;filter:brightness(var(--scene-brightness));transition:filter .6s}
.workshop-machine canvas{display:block;width:100%;height:100%;pointer-events:none;filter:drop-shadow(1px 6px 5px #110a0460)}
.machine-saw{left:82%;top:83%;width:21%;z-index:83}
.machine-label{position:absolute;left:50%;top:91.6%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;white-space:nowrap;padding:7px 12px;background:#251b10eb;color:#f5ddbb;border:1px solid #d5b17966;border-radius:5px;box-shadow:0 3px 15px #0d080877}
.machine-label strong{font:14px/1.4 Arial,sans-serif}.machine-label small{font:11px/1.4 Arial,sans-serif;color:#b6a389}
.workshop-machine:hover .machine-label,.workshop-machine[aria-pressed=true] .machine-label{background:#714b23f2;border-color:#f8d494}
.workshop-machine:focus-visible{outline:2px solid #f8d494;outline-offset:5px;border-radius:8px}
.drill-on .machine-drill small,.saw-on .machine-saw small{color:#c4efab}
.drill-on .machine-drill canvas,.saw-on .machine-saw canvas{animation:machine-vibration .12s linear infinite}
.workshop-full .hotspot-lights{left:43%;top:14%}
.workshop-full .hotspot-materials{right:10%;top:31%}
.workshop-full .hotspot-window{left:auto;right:1.5%;top:30%}
.workshop-full .hotspot-window small{display:inline}
.workshop-full .hotspot-bench{left:42%;top:47%;z-index:110}
.window-wash{position:absolute;inset:12% 0 0 48%;pointer-events:none;background:linear-gradient(125deg,transparent,#f6e0b017 50%,transparent 80%);mix-blend-mode:screen;opacity:.15;z-index:1;transition:opacity 1s}
.breeze-on .window-wash{opacity:1;animation:window-light-drift 8s ease-in-out infinite alternate}
.workshop-full .bench-plane{left:42%;top:42%;width:11%;z-index:81}
.board-tint{left:34%;top:47.8%;width:31%;height:5%;z-index:79}
.wood-specks{left:40%;top:50%;z-index:81}
.demo-tape{left:32%;top:43%;width:8%;z-index:81}
.demo-dimension{left:37%;top:50%;z-index:81}
.workshop-brush.tool-art{left:45%;top:43%;width:9%;z-index:81}
.workshop-top{z-index:200}.workshop-bottom{z-index:200}.machine-info{z-index:220}
.workshop-bottom-actions{padding-left:115px;position:relative;max-width:100%}
.workshop-dpad{position:absolute;left:0;bottom:0;display:grid;grid-template-columns:repeat(3,35px);grid-template-rows:repeat(2,35px);gap:3px}
.workshop-dpad button{border:1px solid #ead1a970;border-radius:5px;background:#22180eef;color:#f6d29b;font:22px/1 Arial,sans-serif;padding:0;touch-action:none;user-select:none}
.workshop-dpad button:hover,.workshop-dpad button:active{background:#78502a;border-color:#ffe1a7}
.workshop-dpad [data-walk-dir=up]{grid-column:2;grid-row:1}
.workshop-dpad [data-walk-dir=left]{grid-column:1;grid-row:2}
.workshop-dpad [data-walk-dir=down]{grid-column:2;grid-row:2}
.workshop-dpad [data-walk-dir=right]{grid-column:3;grid-row:2}
.workshop-stations{flex-wrap:wrap;justify-content:end}
.workshop-live-status{flex-shrink:0;max-width:270px}
.workshop-live-status small{font-size:11px}
.machine-info{top:138px;max-height:calc(100svh - 278px);width:min(350px,calc(100vw - 30px))}
.station-entering .machine-info{animation:station-info-enter .55s .12s both}
.station-entering .workshop-scene::after{animation:station-light-pass .78s both}
@keyframes machine-vibration{50%{translate:.4px .2px}}
@keyframes window-light-drift{to{translate:-2% 2%;opacity:.45}}
@keyframes station-info-enter{from{opacity:0;translate:18px 0}to{opacity:1;translate:0 0}}
@keyframes station-light-pass{50%{background-color:#e2b77712}}
@media(max-width:1100px){.workshop-bottom{flex-direction:column;align-items:start;gap:10px}.workshop-bottom-actions{width:100%;align-items:start}.workshop-stations{justify-content:start}.workshop-live-status{max-width:300px}.workshop-quick{flex-wrap:wrap;justify-content:end;max-width:390px}}
@media(max-width:600px){.walking-carpenter{width:15%}.workshop-top{padding:12px 15px}.workshop-title h2{font-size:25px}.workshop-back{margin-bottom:7px}.workshop-quick{justify-content:start;max-width:none;padding-top:10px}.workshop-quick button{font-size:11px;min-height:34px;padding:6px 9px}.workshop-bottom{left:15px;right:15px;bottom:12px}.workshop-bottom-actions{padding-left:0;padding-top:43px;gap:7px}.workshop-dpad{left:0;bottom:42px;grid-template-columns:repeat(3,34px);grid-template-rows:repeat(2,34px)}.workshop-crew{padding-left:118px;min-height:34px;gap:5px}.workshop-crew>span{display:none}.workshop-crew button{font-size:11px;padding:6px 10px}.workshop-stations{flex-wrap:nowrap;overflow:auto;justify-content:start;width:100%;gap:6px}.workshop-stations button{font-size:12px;min-height:36px}.workshop-live-status{position:absolute;bottom:132px;max-width:230px;opacity:.9}.machine-info{top:145px;right:15px;max-height:calc(100svh - 322px);padding:20px}.machine-info p{font-size:15px}.in-workshop .carpenter-guide{bottom:96px;right:15px}.machine-label{padding:6px 9px;gap:6px}.machine-label strong{font-size:13px}.machine-label small{font-size:11px}}
@media(max-height:620px){.workshop-title .eyebrow{display:none}.workshop-title h2{font-size:24px}.workshop-top{display:flex;align-items:start}.workshop-title{max-width:40%}.workshop-quick{padding-top:0;max-width:52%;justify-content:end}.workshop-back{margin-bottom:5px}.workshop-bottom-actions{padding-top:0}.workshop-live-status{display:none}.machine-info{top:91px;max-height:calc(100svh - 212px)}.in-workshop .carpenter-guide{bottom:97px}}
.motion-off .workshop-machine canvas,.motion-off .window-wash,.tab-hidden .workshop-machine canvas,.tab-hidden .window-wash,.tab-hidden .light-beam,.tab-hidden .wood-specks i{animation:none!important}
@media(prefers-reduced-motion:reduce){.workshop-machine canvas,.window-wash,.station-entering .machine-info,.station-entering .workshop-scene::after{animation:none!important}}
@media(max-width:600px) and (min-height:621px){.machine-info{top:auto;bottom:140px;max-height:30svh;padding:18px}.machine-info .eyebrow{margin-bottom:10px}.machine-info h3{font-size:25px;margin-bottom:10px}.machine-info p{font-size:14px;line-height:1.6}.machine-info .primary-button,.machine-info .secondary-button{min-height:42px}}
@media(max-width:600px) and (min-height:621px){.machine-info{display:flex;flex-direction:column;scrollbar-color:#bf9557 #23190e}.machine-info-top{order:0}.machine-info h3{order:1}#machine-action{order:2;flex-shrink:0}#machine-description{order:3}#machine-tags{order:4}#machine-request{order:5}.workshop-activities{order:6}.machine-disclaimer{order:7}}
@media(max-width:600px) and (min-height:621px){.machine-info>*{flex-shrink:0}}

/* A short conversation in the room; the visitor can interrupt it at any time. */
.encounter-art{position:absolute;inset:0;width:100%;height:100%;display:none;pointer-events:none;filter:drop-shadow(2px 4px 2px #110a034a)}
.has-encounter-pose .encounter-art{display:block}.has-encounter-pose .walker-art{visibility:hidden}
.walking-carpenter.is-in-encounter .walker-label{display:none}
.is-on-phone .encounter-art{animation:phone-idle 1.3s ease-in-out infinite;transform-origin:50% 96%}
.character-dialogue{position:absolute;z-index:205;max-width:min(270px,calc(100vw - 30px));padding:12px 17px;background:#fff0d9f5;border:1px solid #d4a35b;border-radius:12px 12px 12px 3px;box-shadow:0 7px 26px #0a05065c;transform:translate(-50%,-100%);pointer-events:none;color:#392513;animation:dialogue-arrive .22s both}
.character-dialogue strong{display:block;font:12px/1.4 Arial,sans-serif;color:#865420;margin-bottom:5px}
.character-dialogue p{margin:0;font:15px/1.5 Arial,sans-serif;color:#392513}
.character-dialogue[data-speaker=guide]{background:#fff1cedf;border-color:#e2b963}
.character-dialogue::after{content:'';position:absolute;bottom:-8px;left:50%;width:14px;height:14px;background:inherit;border-right:1px solid #d4a35b;border-bottom:1px solid #d4a35b;rotate:45deg}
@keyframes phone-idle{50%{rotate:.35deg;translate:0 -1px}}
@keyframes dialogue-arrive{from{opacity:0;translate:0 5px}to{opacity:1;translate:0 0}}
@media(max-width:600px){.character-dialogue{max-width:245px;padding:11px 14px}.character-dialogue p{font-size:14px}.character-dialogue strong{font-size:12px}}
.motion-off .encounter-art,.tab-hidden .encounter-art{animation:none!important}
@media(prefers-reduced-motion:reduce){.encounter-art,.character-dialogue{animation:none!important}}

/* Daniel asks the boss, then both resume their slower routes. */
.is-asking .walker-art{animation:worker-question 1.5s ease-in-out infinite;transform-origin:50% 94%}.character-dialogue[data-speaker=daniel]{background:#e9f2d8f2;border-color:#9ab972}.character-dialogue[data-speaker=daniel] strong{color:#536a36}
@keyframes worker-question{0%,100%{rotate:-1deg}50%{rotate:2deg}}
.motion-off .is-asking .walker-art{animation:none}
@media(prefers-reduced-motion:reduce){.is-asking .walker-art{animation:none}}
