/* Small paper companions in the project margins. No hit targets or CSS loops. */
.project-sheet { position: relative; }
.gallery-life { position:absolute; inset:0; z-index:4; pointer-events:none; user-select:none; overflow:visible; visibility:hidden; }
body.gallery-active .gallery-life { visibility:visible; }
.gallery-life *, .gallery-life *::before, .gallery-life *::after { pointer-events:none!important; }
.life-flower { position:absolute; width:var(--flower-size,108px); height:calc(var(--flower-size,108px) * 1.075); transform:translate(-50%,-100%) rotate(var(--flower-lean,0deg)); transform-origin:50% 100%; }
.life-flower img { width:100%; height:100%; object-fit:contain; display:block; transform:translate3d(var(--flower-wind-x,0px),var(--flower-wind-y,0px),0) rotate(var(--flower-wind-angle,0deg)); transform-origin:50% 100%; filter:drop-shadow(calc(1px + var(--flower-shadow-dx,0px)) calc(2px + var(--flower-shadow-dy,0px)) 1px #354c3620); }
.life-moon { position:absolute; width:var(--moon-size,67px); height:var(--moon-size,67px); transform:translate(-50%,-50%); color:#566e75; }
.life-moon svg { display:block; width:100%; height:100%; overflow:visible; }
.life-moon-outline,.life-moon-mark { fill:none; stroke:currentColor; stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.life-moon-outline { opacity:.7; }
.life-moon-dark { fill:#71817b; opacity:.16; }
.life-moon-light { fill:#f3eee3; stroke:#728385; stroke-width:.65; }
.life-moon-crater { fill:currentColor; opacity:.2; }
.life-moon-mark { opacity:.45; stroke-width:.8; }
.life-cat { position:absolute; width:var(--cat-size,86px); height:calc(var(--cat-size,86px) * .731); transform:translate(-50%,-89%); color:#365869; }
.life-cat svg { width:100%; height:100%; display:block; overflow:visible; transform-origin:50% 89%; }
.life-cat-rest { fill:currentColor; }
.life-cat-flight { fill:currentColor; }
.life-cat-limb,.life-cat-tail { fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; }
.life-cat-limb { stroke-width:6; }
.life-cat-limb.far { opacity:.72; stroke-width:5; }
.life-cat-tail { stroke-width:5; }
.life-cat-eye { fill:#e4e3dc; }
.life-cat-shadow { position:absolute; height:4px; width:32px; background:#3b4a4030; border-radius:50%; filter:blur(2px); transform:translate(-50%,-50%); }
@media(max-width:700px) { .life-flower img{filter:drop-shadow(var(--flower-shadow-dx,0px) calc(1px + var(--flower-shadow-dy,0px)) 1px #354c361a)} .life-cat-shadow{height:3px;width:23px} }
@media(prefers-reduced-motion:reduce) { .gallery-life *, .gallery-life *::before, .gallery-life *::after { animation:none!important; transition:none!important; } .life-flower img { transform:none!important; --flower-shadow-dx:0px!important; --flower-shadow-dy:0px!important; } }
