/* twip/props.css — layer of 3D cut-out props (suitcases, plane, birds, plants…) */
.twip-props{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}
.twip-props .pr{position:absolute;display:block;transform:translate3d(0,var(--py,0px),0);will-change:transform}
.twip-props .pr .pr-i{display:block;filter:drop-shadow(0 18px 26px rgba(8,42,80,.28))}
.twip-props .pr img{display:block;width:100%;height:auto}
.twip-props .pr.pr-flat .pr-i{filter:drop-shadow(0 10px 18px rgba(8,42,80,.22))}
@keyframes prBob{0%,100%{transform:translate3d(0,0,0) rotate(var(--rot,0deg))}50%{transform:translate3d(0,var(--bob,-14px),0) rotate(calc(var(--rot,0deg) + var(--tilt,2deg)))}}
.twip-props .pr.bob .pr-i{transform:rotate(var(--rot,0deg));animation:prBob var(--dur,7s) ease-in-out infinite;animation-delay:var(--delay,0s)}
@keyframes prFly{from{transform:translate3d(-16vw,0,0) rotate(var(--rot,-4deg))}to{transform:translate3d(120vw,var(--rise,-60px),0) rotate(var(--rot,-4deg))}}
.twip-props .pr.fly .pr-i{animation:prFly var(--dur,26s) linear infinite;animation-delay:var(--delay,0s);filter:drop-shadow(0 8px 12px rgba(8,42,80,.18))}
.twip-props .pr.missing{display:none}
html.props-guide .twip-props .pr.missing{display:block}
html.props-guide .twip-props .pr.missing .pr-i{display:grid;place-items:center;min-height:64px;border:1.5px dashed rgba(255,255,255,.8);border-radius:14px;background:rgba(255,255,255,.16);filter:none;animation:none}
html.props-guide .twip-props .pr.missing .pr-i::after{content:attr(data-name);font:600 11px/1.3 var(--sans,system-ui);letter-spacing:.04em;color:#fff;text-align:center;padding:8px}
@media (max-width:900px){.twip-props .pr[data-mobile="off"]{display:none}}
@media (prefers-reduced-motion:reduce){.twip-props .pr .pr-i{animation:none!important}}
