#restructure300-fx{position:fixed;inset:0;z-index:1200;pointer-events:none;overflow:hidden;display:grid;place-items:center;contain:layout style paint}
#restructure300-fx .r300-object-burst{position:relative;width:min(78vw,420px);height:min(65vh,440px);display:grid;place-items:center;animation:r300-arrive 6.3s ease both}
#restructure300-fx .r300-prop{width:min(64vw,320px);aspect-ratio:1;background-image:url('/assets/restructure300/effects-props.webp');background-size:300% 300%;background-position:calc(var(--col)*50%) calc(var(--row)*50%);filter:drop-shadow(0 12px 18px #33221166);animation:r300-breathe 2s ease-in-out infinite alternate}
#restructure300-fx .r300-glow{position:absolute;inset:12%;border-radius:50%;background:radial-gradient(ellipse,#fff0c2b0,transparent 70%)}
#restructure300-fx .r300-caravan .r300-prop,#restructure300-fx .r300-journey .r300-prop{animation:r300-travel 5s ease-in-out both}
#restructure300-fx .r300-birth .r300-prop{animation:r300-cradle 2s ease-in-out infinite alternate;transform-origin:50% 75%}
#restructure300-fx .r300-well .r300-prop{animation:r300-bucket 5s ease-in-out both}
#restructure300-fx .r300-stones .r300-prop{animation:r300-stones 1.3s ease-out both}
#restructure300-fx .r300-blessing .r300-prop{animation:r300-bless 3s ease-in-out infinite alternate}
#restructure300-fx .r300-flock{position:absolute;bottom:5%;left:calc(5% + var(--i)*25%);width:27%;max-height:28%;object-fit:contain;animation:r300-sheep 1.4s calc(var(--i)*-.3s) ease-in-out infinite alternate}
#restructure300-fx .r300-wheat{position:absolute;bottom:7%;width:46%;height:55%;object-fit:contain;transform-origin:50% 100%;animation:r300-grain 2s ease-in-out infinite alternate}
#restructure300-fx .r300-spark{position:absolute;width:5px;height:5px;background:#f1cf7c;border-radius:50%;left:calc(8% + var(--i)*10%);top:calc(25% + var(--i)*5%);animation:r300-dust 2s calc(var(--i)*-.2s) ease-in-out infinite alternate}
@keyframes r300-arrive{0%{opacity:0;transform:scale(.8)}12%,85%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.96)}}
@keyframes r300-breathe{to{transform:translateY(-8px)}}@keyframes r300-travel{0%{transform:translateX(-50px) rotate(-5deg)}100%{transform:translateX(50px) rotate(5deg)}}@keyframes r300-cradle{from{transform:rotate(-6deg)}to{transform:rotate(6deg)}}@keyframes r300-bucket{0%{transform:translateY(-50px)}45%{transform:translateY(35px)}100%{transform:translateY(-35px)}}@keyframes r300-stones{from{transform:translateY(-70px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes r300-bless{to{transform:translateY(-12px) scale(1.05)}}@keyframes r300-grain{from{transform:rotate(-7deg)}to{transform:rotate(7deg)}}@keyframes r300-sheep{to{transform:translateX(12px) translateY(-4px)}}@keyframes r300-dust{to{transform:translateY(-30px);opacity:.1}}
#restructure300-fx.r300-static *,#restructure300-fx.r300-static *:before,#restructure300-fx.r300-static *:after{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){#restructure300-fx *,#restructure300-fx *:before,#restructure300-fx *:after{animation:none!important;transition:none!important}}
/* The brothers travel together; Joseph's earlier journey keeps a single bag. */
#restructure300-fx .r300-journey .r300-prop{animation:r300-brothers 5s ease-in-out both}
#restructure300-fx .r300-journey .r300-prop:before,#restructure300-fx .r300-journey .r300-prop:after{content:"";position:absolute;bottom:-6%;width:58%;height:58%;background-image:inherit;background-size:inherit;background-position:inherit}
#restructure300-fx .r300-journey .r300-prop:before{left:-24%;transform:rotate(-12deg)}#restructure300-fx .r300-journey .r300-prop:after{right:-24%;transform:rotate(12deg)}
@keyframes r300-brothers{0%{transform:translateY(28px) scale(.92)}35%{transform:translateY(-6px) scale(1)}70%{transform:translateY(5px) scale(1)}100%{transform:translateY(-4px) scale(1)}}
