/* Separate dimensional props retain independent motion and overlays. */
.object-bitmap{display:block;object-fit:contain;max-width:100%;filter:drop-shadow(0 3px 2px #66432d33)}.hotspot-object>.object-bitmap{width:100%;height:100%}.choice>.object-bitmap,.choice>svg{width:110px;height:110px;max-width:100%;margin:auto}.chapter-options .choice>.object-bitmap{width:90px;height:90px}.bitmap-projector{transform:scaleX(-1)}
.bread-tray{position:relative;width:80%;height:auto;aspect-ratio:2.25796;margin:10px auto 15px;background:none;border:0;border-radius:0;box-shadow:none;isolation:isolate}.bread-tray .bread-tray-art{display:block;position:relative;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 2px #694b2933)}.bread-tray .bread-tray-lid{position:absolute;inset:auto;left:-1%;top:-20%;width:102%;height:auto;aspect-ratio:1.88028;object-fit:contain;background:none;border:0;border-radius:0;transform-origin:50% 80%;box-shadow:none;z-index:4}.bread-tray .broken-handle{z-index:5;right:-4%;top:24%;width:14%;height:30%;border-width:5px;border-color:#d6ae65;border-top-color:transparent;box-shadow:1px 2px 2px #593f2a66}.tray-problem{padding:15px 20px 5px}.tray-problem .bread-tray{width:85%;margin:30px auto 10px}.loaded-test>.bread-tray{left:23%;top:19%;width:52%;height:auto;aspect-ratio:2.25796}.finale-wagon .bread-tray{width:80%;margin:0 auto;aspect-ratio:2.25796}
.garden-device .water-tank{left:0;top:0;width:28%;height:70%;transform:none}.water-tank>.object-bitmap{width:100%;height:100%;object-fit:contain}.water-tank .bitmap-pump{transform:scaleX(-1)}.garden-device .garden-joint{left:22%;top:29%;width:12%;height:24%;z-index:3}.garden-device .water-channel{left:22%;top:28%;width:65%;height:40%;border:0;background:url('assets/prop-water-channel-v8.webp') center/100% 100% no-repeat;transform:rotate(4deg)}.garden-device .water-channel i{position:absolute;top:23%;left:18%;width:9%;height:4%;margin:0;border-radius:50%;background:#e9ffff;opacity:.2;box-shadow:0 0 4px #bcecf0;animation:none}.garden-device .water-channel i:nth-child(2){left:40%}.garden-device .water-channel i:nth-child(3){left:62%}.garden-device.flowing .water-channel i{animation:channel-glint 1.2s ease-in-out infinite;opacity:.8}.garden-device .garden-flowers{right:-1%;width:75%;height:43%;bottom:7%;gap:0;align-items:end}.garden-device .garden-flowers>.seed-tray{width:33.33%;height:auto;aspect-ratio:1.91429;transform:none}.seed-tray-art{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 1px #5f452533)}.is-watered .seed-tray-art{filter:brightness(.94) saturate(1.14) drop-shadow(0 2px 1px #5f452533)}.wet-glint{position:absolute;z-index:2;left:25%;right:20%;top:28%;height:20%;opacity:0;background:radial-gradient(ellipse,#b2e6e3aa,transparent 70%);border-radius:50%;pointer-events:none}.is-watered .wet-glint{opacity:.7}.tray-number,.drop-request,.tray-done{z-index:3}.drop-request{top:-25%}.tray-number{left:16%;bottom:15%;font-size:14px}.garden-device .leaking-water{left:26%;top:49%;height:23%;width:3%;z-index:4}.collection-tub{border:3px solid #b58a48;background:linear-gradient(#d4f7ef66 0 30%,#72b9cc 31% 43%,#b88745 45%,#dfb46c 63%,#9b6b34);box-shadow:inset 2px 2px 2px #ffe6ad,inset -3px -2px 3px #78552c66,0 2px 1px #69452744}.garden-device .mechanism-label{bottom:0}.bench-scraps{z-index:4}.garden-device .ozzlo-fountain{z-index:4}
.projector-model{left:0;bottom:19%;width:35%;height:57%}.projector-model>.object-bitmap{width:100%;height:100%}.low-screen{right:0;top:1%;width:58%;height:72%;background:url('assets/prop-projection-screen-v8.webp') center/100% 100% no-repeat;border:0;border-radius:0;box-shadow:none}.low-screen:after{display:none}.low-screen>svg{position:absolute;left:10%;top:13%;width:80%;height:56%;background:radial-gradient(ellipse,#fff9d799,transparent);opacity:.05}.is-lit .low-screen>svg{opacity:1}.is-upside-down .low-screen>svg{transform:rotate(180deg)}.reference-pattern{top:-16%;right:2%;z-index:5}.reference-pattern svg{background:#fff7d9}.projected-tassels{right:5%;top:5%;width:48%;height:50%}.optical-parts>svg,.optical-parts>.object-bitmap{width:31%;height:100%;object-fit:contain}.viewer-seats{bottom:0;height:27%}.viewer-seats>span .seat-picture{background:linear-gradient(#fff7dd,#ebd4a2);border-color:#b98d4e}.viewer-seats>span .seat-picture svg{filter:drop-shadow(0 1px #fff4c9)}
.finale-scene .finale-welcome{top:27%}.finale-scene .finale-delivery-table{left:39%;top:54%;width:24%;height:auto;aspect-ratio:2.1383;border:0;border-radius:0;background:url('assets/prop-picnic-table-v8.webp') center/100% 100% no-repeat;box-shadow:none}.finale-delivery-table:after{display:none}.finale-delivery.delivery-bread{left:15%;bottom:72%;width:74%;height:auto;aspect-ratio:2.25796}.finale-delivery.delivery-bread .bread-tray{width:100%;height:100%;margin:0}.finale-scene.is-cheering .bread-tray-lid,.finale-scene.is-finished .bread-tray-lid{transform:translate(8%,-65%) rotate(9deg);transition:transform 1.5s .8s}.finale-delivery.delivery-garden{left:6%;bottom:71%;width:88%;height:auto;aspect-ratio:5.74;gap:0;align-items:end}.delivery-garden>.seed-tray{width:33.33%;height:100%;aspect-ratio:1.91429}.delivery-garden .seed-tray-art{width:100%;height:100%;object-fit:contain}.delivery-garden .wet-glint{opacity:.8}.delivery-garden .delivery-water{right:-3%;top:-20%;height:55%}
.finale-scene.finale-signal .finale-welcome{top:20%}.finale-scene.finale-signal .finale-delivery-table{left:36%;top:35%;width:28%;height:auto;aspect-ratio:1.49016;background:none}.finale-delivery.delivery-star-show{inset:0;width:100%;height:100%;aspect-ratio:auto}.delivery-star-show .show-screen{inset:0;overflow:hidden;border:0;border-radius:0;background:url('assets/prop-projection-screen-v8.webp') center/100% 100% no-repeat}.show-screen>svg{position:absolute;left:11%;top:12%;width:78%;height:57%;background:radial-gradient(ellipse,#fff9dbbb,transparent)}.show-screen .show-curtain{top:10%;bottom:31%;width:41%}.show-screen .curtain-left{left:9%}.show-screen .curtain-right{right:9%}.delivery-star-show .show-projector{left:-25%;top:78%;width:35%;height:auto;aspect-ratio:1.10526}.show-projector>.object-bitmap{width:100%;height:100%}.delivery-star-show .show-light{left:-2%;top:30%;width:80%;height:63%}.portable-final-prop>.object-bitmap{width:100%;height:100%}
@keyframes channel-glint{0%{translate:0 0;opacity:0}30%,70%{opacity:.8}100%{translate:80% 20%;opacity:0}}
@media(max-width:760px){.chapter-options .choice>.object-bitmap{width:75px;height:80px}.garden-device .garden-joint{width:13%}.garden-device .garden-flowers{height:40%;bottom:13%}.drop-request{font-size:12px;padding:0 3px;top:-28%}.tray-number{font-size:11px}.tray-done{font-size:14px;line-height:20px;width:20px}.low-screen{height:70%}.show-screen .show-curtain{border-width:0}.bread-tray .broken-handle{border-width:3px}.finale-scene.finale-signal .finale-delivery-table{width:29%;left:35.5%}}

.piece.bow>.object-bitmap{width:100%;height:100%;object-fit:contain}.finale-picnic-load>.bread-tray{width:100%;height:auto;aspect-ratio:2.25796;margin:0}.finale-picnic-load{bottom:60%;height:28%}.tangled-ribbons i{border-style:solid;border-width:5px;border-color:#d95b9d;box-shadow:inset 1px 1px 0 #ffd7eb,1px 2px 1px #792c5f77}

.finale-signal .villager-gardener{left:23%}.finale-signal.is-cheering .villager-deer .left-arm{animation:viewer-point-left .55s ease-in-out infinite alternate}.finale-signal .villager-deer .right-arm{animation-name:finale-wave}@keyframes viewer-point-left{from{transform:rotate(45deg)}to{transform:rotate(68deg)}}

/* All three intended viewers stand on the viewing side of the shared screen. */
.finale-scene.finale-signal .finale-delivery-table{left:38%;top:27%;width:32%;aspect-ratio:1.49016}
.finale-signal .finale-villagers{z-index:5}
.finale-signal .villager-puppet{top:58%;width:10%}
.finale-signal .villager-baker{left:24%}.finale-signal .villager-gardener{left:46%}.finale-signal .villager-deer{left:68%}
.finale-signal .villager-baker .villager-rig{transform:perspective(400px) rotateY(-16deg) rotate(-3deg);transform-origin:70% 80%}
.finale-signal .villager-gardener .villager-rig{transform:rotate(-3deg);transform-origin:50% 80%}
.finale-signal .villager-deer .villager-rig{transform:perspective(400px) rotateY(16deg) rotate(3deg);transform-origin:30% 80%}
.finale-signal .finale-puppet{width:13%;bottom:1.5%}
.delivery-star-show .show-projector{left:-6%;top:95%;width:28%;height:auto;aspect-ratio:1.10526}
.delivery-star-show .show-light{left:8%;top:46%;width:80%;height:74%}
.finale-signal.is-finished .villager-baker .right-arm,.finale-signal.is-finished .villager-gardener .right-arm{transform:rotate(-65deg)}
.finale-signal.is-finished .villager-deer .left-arm{transform:rotate(65deg)}
.finale-signal.is-finished .villager-deer .right-arm{transform:rotate(0deg)}
@media(max-width:760px){.finale-scene.finale-signal .finale-delivery-table{width:32%;left:38%;top:27%}}

.object-gear .hotspot-object{position:relative}.object-gear .hotspot-object>.bitmap-gear{position:absolute;left:0;top:25%;width:66%;height:66%}.secondary-gear{position:absolute;left:49%;top:9%;width:33%;height:33%}.secondary-gear>.bitmap-gear{width:100%;height:100%}.object-gear.is-active .hotspot-object{animation:none}.object-gear.is-active .hotspot-object>.bitmap-gear{animation:object-turn 2.4s linear 1}.object-gear.is-active .secondary-gear>.bitmap-gear{animation:object-turn 1.2s linear 2 reverse}

/* Rear three-quarter pose variants make the viewers' actual gaze explicit. */
.finale-signal .villager-baker.is-star-viewer .villager-rig,.finale-signal .villager-gardener.is-star-viewer .villager-rig{transform:none}
.finale-signal .villager-deer.is-star-viewer .villager-rig{transform:scaleX(-1)}
.is-star-viewer .right-arm{z-index:4}
.finale-signal.is-cheering .is-star-viewer .right-arm{animation:star-viewer-point .7s ease-in-out infinite alternate}
.finale-signal.is-cheering .is-star-viewer .left-arm{animation:star-viewer-small-wave .85s ease-in-out infinite alternate}
.finale-signal.is-finished .is-star-viewer .right-arm{transform:rotate(-32deg)}
.finale-signal.is-finished .is-star-viewer .left-arm{transform:rotate(5deg)}
@keyframes star-viewer-point{from{transform:rotate(-22deg)}to{transform:rotate(-42deg)}}@keyframes star-viewer-small-wave{from{transform:rotate(3deg)}to{transform:rotate(13deg)}}
