/* Chapter two is assembled from a terrace and three separate bitmap cutouts.
   Native overlays keep code and tiny instrument lights crisp at every scale. */
.workshop-world > .journey-image { object-position: 50% 55%; }
.workshop-motion-control { display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 12px;margin:12px 0 0 12px;border:1px solid #91a88b;background:#f5f6e9;color:#34513b;font:500 12px/1.4 var(--sans);cursor:pointer; }
.workshop-motion-control:hover { background:#e5edcf; }
.workshop-motion-control:focus-visible { outline:3px solid #385c3e;outline-offset:3px; }
.workshop-v45 {
 position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;isolation:isolate;
 --workshop-x:0px;--workshop-y:0px;
}
.workshop-station { position:absolute;isolation:isolate;transform-origin:50% 75%; }
.workshop-station > img { width:100%;height:auto;max-width:none;user-select:none; }
.workshop-station:not([data-art-ready='true']) > div { visibility:hidden; }
.workshop-software {
 left:42%;top:49%;width:31%;z-index:3;
 filter:drop-shadow(0 18px 14px #28483c30);
 transform:translate3d(calc(var(--workshop-x) + var(--asset-near-scroll-x,0px) * .16),calc(var(--workshop-y) + var(--asset-near-scroll-y,0px) * .1),0);
}
.workshop-hardware {
 left:71%;top:53%;width:26%;z-index:4;
 filter:drop-shadow(0 20px 15px #25413930);
 transform:translate3d(calc(var(--workshop-x) * 1.4 + var(--asset-near-scroll-x,0px) * .22),calc(var(--workshop-y) * 1.3 + var(--asset-near-scroll-y,0px) * .16),0);
}
.workshop-infrastructure {
 left:59%;top:20%;width:19%;z-index:2;
 filter:drop-shadow(0 12px 10px #25483e26);
 transform:translate3d(calc(var(--workshop-x) * -.45 + var(--asset-mid-scroll-x,0px) * .2),calc(var(--workshop-y) * -.4 + var(--asset-mid-scroll-y,0px) * .2),0);
}
.workshop-network { display:none;position:absolute;inset:0;width:100%;height:100%;z-index:1;overflow:visible;fill:none;stroke-width:1.7;opacity:.55; }
.workshop-network-track { stroke:#59775c;stroke-dasharray:3 8; }
.workshop-network-pulse { stroke:#e8f5bd;stroke-width:3;stroke-dasharray:6 180;stroke-linecap:round;animation:workshop-network 9s linear infinite; }
.workshop-console {
 position:absolute;left:48.6%;top:13.5%;width:17.8%;height:25%;overflow:hidden;
 background:#183a35;clip-path:polygon(9% 0,100% 15%,87% 100%,0 83%);
 transform-origin:50% 50%;color:#d7f3ad;
}
.workshop-code-lines { position:absolute;left:10%;top:15%;width:83%;font:500 clamp(2px,.34vw,6px)/1.6 var(--mono,monospace);white-space:nowrap;letter-spacing:-.04em;transform:rotate(9deg) skewX(-6deg);transform-origin:0 0; }
.workshop-code-lines span { display:block;width:0;overflow:hidden;animation:workshop-code 11s steps(20,end) infinite; }
.workshop-code-lines span:nth-child(2) { animation-delay:.8s;color:#aee2db; }
.workshop-code-lines span:nth-child(3) { animation-delay:1.6s; }
.workshop-code-lines span:nth-child(4) { animation-delay:2.4s;color:#f0d598; }
.workshop-code-lines b { color:#95cc9d;font-weight:400; }
.workshop-cursor { position:absolute;left:10%;top:67%;width:4%;height:4%;min-height:1px;background:#d7f3ad;animation:workshop-blink 1.1s steps(2,end) infinite; }
.workshop-software-led,.workshop-pi-leds,.workshop-infra-status { position:absolute;pointer-events:none; }
.workshop-software-led { left:63.5%;top:42%; }
.workshop-software-led i,.workshop-pi-leds i,.workshop-infra-status i { display:block;width:3px;height:3px;min-width:2px;min-height:2px;border-radius:50%;background:#d7ef9d;box-shadow:0 0 4px #e8f8ad;animation:workshop-status 4s linear infinite; }
.workshop-pi-leds { left:45.5%;top:49.5%;display:flex;gap:3px; }
.workshop-pi-leds i:nth-child(2) { background:#efa96d;box-shadow:0 0 4px #eab87b;animation-delay:-1.35s; }
.workshop-infra-status { left:63.9%;top:34.2%;height:33%;display:flex;flex-direction:column;justify-content:space-between; }
.workshop-infra-status > span { height:14%;display:flex;flex-direction:column;justify-content:space-between; }
.workshop-infra-status i { width:2px;height:2px;min-width:1px;min-height:1px; }
.workshop-infra-status i:nth-child(2) { animation-delay:-.8s;background:#a4e87b; }
.workshop-infra-status i:nth-child(3) { animation-delay:-2.5s;background:#edc36e; }
.workshop-solder-glow { position:absolute;left:84%;top:48%;width:.7%;aspect-ratio:1;border-radius:50%;background:#ffe5af;box-shadow:0 0 3px #ffd89a80;opacity:.55;animation:workshop-warmth 5.7s ease-in-out infinite; }
.workshop-hardware-screen { position:absolute;left:62.4%;top:18.1%;width:12%;height:15.3%;padding:1.2%;clip-path:polygon(3% 0,100% 8%,98% 100%,0 91%);background:#133c3c;color:#badfab;font:500 clamp(2px,.27vw,5px)/1.6 var(--mono,monospace);transform:rotate(3deg);transform-origin:50% 50%;white-space:nowrap;overflow:hidden; }
.workshop-hardware-screen span { display:block; }
.workshop-hardware-screen .workshop-hardware-ok { color:#efcf87; }
.workshop-v45:not(.is-working) *, .workshop-v45.is-paused * { animation-play-state:paused!important; }
@keyframes workshop-network { to { stroke-dashoffset:-372; } }
@keyframes workshop-code { 0%,3%{width:0}24%,86%{width:100%}94%,100%{width:0} }
@keyframes workshop-blink { 0%,49%{opacity:1}50%,100%{opacity:0} }
@keyframes workshop-status { 0%,18%,25%,61%,71%,100%{opacity:.95}20%,23%,64%,67%{opacity:.18} }
@keyframes workshop-warmth { 0%,100%{opacity:.35}32%{opacity:.7}45%{opacity:.45}72%{opacity:.65} }
@media(min-width:1101px) and (min-height:481px) {
 .journey-copy[data-chapter='1'] { top:24%;left:7.5%;width:31%;max-width:470px;text-align:left;transform:translateY(var(--copy-y,0px)); }
 .journey-copy[data-chapter='1']::before { top:-48px;left:-48px;transform:none;width:calc(100% + 100px);height:calc(100% + 96px);background:radial-gradient(ellipse at 35% 45%,#f0f3e9e8 0%,#f0f3e9c7 56%,#f0f3e900 75%); }
 .journey-copy[data-chapter='1'] .eyebrow { justify-content:flex-start;font-size:11px; }
 .journey-copy[data-chapter='1'] h2 { font-size:clamp(44px,3.7vw,62px);line-height:1.06; }
 .journey-copy[data-chapter='1'] .journey-lede { max-width:370px!important;margin:20px 0 24px;font-size:18px;line-height:1.65; }
 .journey-copy[data-chapter='1'] > .text-link { font-size:15px; }
}
@media(min-width:761px) and (max-width:1100px) and (min-height:481px) {
 .workshop-software { left:37%;top:55%;width:34%; }
 .workshop-hardware { left:70%;top:58%;width:28%; }
 .workshop-infrastructure { left:60%;top:33%;width:18%; }
 .workshop-console .workshop-code-lines { font-size:clamp(3px,.6vw,7px); }
 .workshop-network { opacity:.3; }
}
@media(min-width:1101px) and (max-height:720px) and (min-height:481px) {
 .workshop-infrastructure { top:20%;width:18%; }
 .workshop-software { top:48%;width:31%; }
 .workshop-hardware { top:52%;width:26%; }
 .journey-copy[data-chapter='1'] { top:19%; }
 .journey-copy[data-chapter='1'] h2 { font-size:48px; }
}
@media(max-width:760px), (max-height:480px) {
 .workshop-v45 { display:none; }
}
@media(prefers-reduced-motion:reduce) {
 .workshop-v45 * { animation:none!important; }
 .workshop-station { transform:none!important; }
 .workshop-network-pulse,.workshop-cursor { display:none; }
 .workshop-code-lines span { width:100%; }
}
