/* Physical halves keep the original illustration and cabinet registration. */
.doors.is-resetting .door{transition:none!important}
.doors[data-reduced-motion="true"] .door{transition-duration:.08s}
.door-impact{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}
.door-impact-glow,.door-seam-flash,.door-impact-spark{position:absolute;display:block;pointer-events:none}
.door-impact-glow{inset:0;background:radial-gradient(ellipse 5% 52% at 50% 50%,#fff9d7b0 0,#ffd48652 30%,#ff3eab1c 60%,transparent 100%);opacity:0;animation:door-contact-glow .55s ease-out both}
.door-seam-flash{left:calc(50% - 3px);top:3%;width:6px;height:94%;border-radius:100%;background:linear-gradient(transparent,#fff9d6 12%,#fff 50%,#fff9d6 88%,transparent);box-shadow:0 0 .6cqw #fff,0 0 1.8cqw #ffe5a9,0 0 3cqw #ff48b888;opacity:0;animation:door-contact-flash .5s ease-out both}
.door-impact-spark{left:50%;top:var(--door-spark-top);width:.3cqw;height:.65cqw;min-width:2px;min-height:4px;border-radius:1px;background:var(--door-spark-color);box-shadow:0 0 .35cqw var(--door-spark-color);opacity:0;animation:door-contact-spark .62s cubic-bezier(.1,.5,.35,1) var(--door-spark-delay) both}
@keyframes door-contact-flash{0%{opacity:0;transform:scaleY(.94)}10%{opacity:1;transform:scaleY(1)}40%{opacity:.7}100%{opacity:0;transform:scaleY(1.025)}}
@keyframes door-contact-glow{0%{opacity:0;transform:scaleX(.5)}12%{opacity:1;transform:scaleX(1)}100%{opacity:0;transform:scaleX(1.8)}}
@keyframes door-contact-spark{0%{opacity:0;transform:translate(-50%,-50%) rotate(0) scale(.8)}10%{opacity:1}65%{opacity:.85}100%{opacity:0;transform:translate(calc(-50% + var(--door-spark-x)),calc(-50% + var(--door-spark-y))) rotate(var(--door-spark-turn)) scale(.35)}}
.doors[data-reduced-motion="true"] .door-impact-glow{animation:none;opacity:.25}
.doors[data-reduced-motion="true"] .door-seam-flash{animation:none;opacity:.4;box-shadow:0 0 .35cqw #fff3ce}
.doors[data-reduced-motion="true"] .door-impact-spark{display:none}
