/* Embedded border companion: rolls 1.6× faster, with an occasional soft hop. */
.work,.about,.process,.contact{position:relative}
.section-pet-rail{position:absolute;left:var(--pad);right:var(--pad);top:-1px;height:1px;border-top:1px solid #81976e33;z-index:5;pointer-events:none}
.about .section-pet-rail{border-color:#5b745944}
.floating-robot.ground-pet{position:absolute;top:0;left:0;width:92px;filter:drop-shadow(0 2px 2px #0003);z-index:6}
.ground-pet .robot-head{animation:pet-look 18s ease-in-out infinite}.ground-pet .robot-point-arm{transform:rotate(-22deg);transition:none}.ground-pet .robot-hint{display:none}.ground-pet .robot-treads{stroke-dasharray:2 3}.ground-pet.is-rolling .robot-treads{animation:pet-treads 1s linear infinite}.ground-pet.points-right svg{transform:scaleX(-1)}
@keyframes pet-look{0%,35%,100%{transform:rotate(0)}50%,65%{transform:rotate(2deg)}}@keyframes pet-treads{to{stroke-dashoffset:-10}}
@media(max-width:600px){.floating-robot.ground-pet{width:70px;opacity:.94}}
@media(prefers-reduced-motion:reduce){.ground-pet *{animation:none!important}}

/* A small expressive pet and a rock shelter, built into the section edges. */
.pet-cave{position:absolute;right:-1px;bottom:0;width:138px;height:103px;display:block;pointer-events:none}.pet-cave svg{display:block;width:100%;height:100%;overflow:visible}.pet-cave-back{z-index:1}.pet-cave-front{z-index:7;filter:drop-shadow(0 2px 1px #0003)}.about .pet-cave-front{filter:drop-shadow(0 2px 1px #59664722)}
.ground-pet{transition:opacity .45s ease}.ground-pet.is-in-cave{opacity:0}.ground-pet .robot-point-arm{transition:transform .35s cubic-bezier(.3,.8,.3,1);transform-origin:51px 91px}.robot-back-arm{transform-origin:0 0;transition:transform .35s cubic-bezier(.3,.8,.3,1)}.ground-pet.is-cheering .robot-point-arm{transform:rotate(42deg)}.ground-pet.is-cheering .robot-back-arm{transform:rotate(-120deg)}.robot-happy-eyes{opacity:0;transition:opacity .1s}.robot-open-eyes{opacity:1;transition:opacity .1s}.is-squinting .robot-happy-eyes{opacity:1}.is-squinting .robot-open-eyes{opacity:0}.closed-eye-lines{display:none}.is-blinking .happy-eye-arcs{display:none}.is-blinking .closed-eye-lines{display:block}
.pet-dust{position:absolute;left:67%;top:72%;width:36px;height:20px;pointer-events:none;opacity:0;transition:opacity .15s}.points-right .pet-dust{left:auto;right:67%;transform:scaleX(-1)}.is-kicking-dust .pet-dust{opacity:1}.pet-dust i{position:absolute;left:0;bottom:0;width:8px;height:6px;border-radius:50%;background:#c1bd9c;opacity:0;animation:pet-puff 1.15s ease-out infinite;animation-play-state:paused}.is-kicking-dust .pet-dust i{animation-play-state:running}.pet-dust i:nth-child(2){animation-delay:-.23s}.pet-dust i:nth-child(3){animation-delay:-.46s}.pet-dust i:nth-child(4){animation-delay:-.69s}.pet-dust i:nth-child(5){animation-delay:-.92s}.ground-pet.is-rolling .robot-treads{animation-duration:.5s}.pet-asleep *{animation-play-state:paused!important}
@keyframes pet-puff{0%{opacity:0;transform:translate(0,0) scale(.5)}15%{opacity:.32}100%{opacity:0;transform:translate(30px,-13px) scale(2)}}
@media(max-width:600px){.pet-cave{width:105px;height:78px}.pet-dust{width:27px;height:15px}.pet-dust i{width:6px;height:5px}}
.motion-paused .pet-dust{display:none}.motion-paused .ground-pet{transition:none}
@media(prefers-reduced-motion:reduce){.pet-dust{display:none}.ground-pet{transition:none}}

.ground-pet .robot-point-arm,.ground-pet .robot-back-arm{transform-origin:0 0}
/* Each border owns its pet. The cave has an unobstructed, left-facing entrance. */
.hero{padding-bottom:116px}.archive{padding-bottom:160px}.about{padding-bottom:150px}.process{padding-bottom:150px}
.pet-cave{right:0;width:150px;height:108px}.pet-cave-front{z-index:7}.floating-robot.ground-pet{padding:0;border:0;background:none;cursor:pointer;pointer-events:auto!important;transform-origin:0 0;transition:none;isolation:isolate;touch-action:manipulation}.floating-robot.ground-pet:focus-visible{outline:2px solid #d6bc83;outline-offset:3px;border-radius:12px}.ground-pet svg{display:block}.ground-pet .pet-dust{top:61%;height:16px}.points-right svg .catch-container{text-anchor:middle}
.catch-container{opacity:0;transition:opacity .15s}.is-collecting .catch-container{opacity:1}.caught-spark{opacity:var(--caught-flash,0)}.is-collecting .robot-status{opacity:0}.is-collecting .robot-point-arm{transform:rotate(5deg)}.is-collecting .robot-back-arm{transform:rotate(-35deg)}
.pet-debris{position:absolute;inset:0;pointer-events:none;z-index:8}.pet-debris[hidden]{display:none}.spare-part{position:absolute;top:0;left:0;pointer-events:none;will-change:transform,opacity;background-repeat:no-repeat;background-size:contain;filter:drop-shadow(0 1px 1px #0005)}
.part-nut{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4 1h8l4 7-4 7H4L0 8Zm4 4a3 3 0 1 0 0 6 3 3 0 0 0 0-6' fill='%23bdc6b4' stroke='%235e7266' stroke-width='.8'/%3E%3Cpath d='m4 1 2 3h4l2-3' fill='none' stroke='%23f1ebd2'/%3E%3C/svg%3E")}
.part-screw{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 1h6v4H9v10l-1 1-1-1V5H5Z' fill='%23b8b8a0' stroke='%235e7266' stroke-width='.7'/%3E%3Cpath d='M8 1v3m-2 4 4-1m-4 4 4-1m-4 4 4-1' stroke='%23f3dbac' stroke-width='.8'/%3E%3C/svg%3E")}
@media(max-width:600px){.pet-cave{width:112px;height:81px}.hero{padding-bottom:88px}.archive{padding-bottom:112px}.about,.process{padding-bottom:115px}.ground-pet .pet-dust{top:59%;height:12px}}

/* Brushed, bevelled steel parts with tumbling faces and contact shadows. */
.part-nut{background-image:url('assets/metal-nut.svg')}.part-bolt{background-image:url('assets/metal-bolt.svg')}.part-screw{background-image:url('assets/metal-screw.svg')}
.spare-part{filter:drop-shadow(1px 2px 1px #02060966);transform-origin:center}.part-contact-shadow{position:absolute;left:0;top:0;height:3px;border-radius:50%;background:#000;filter:blur(.8px);pointer-events:none;transform-origin:center}
.catch-container{transition:none}.is-bin-open .catch-container{opacity:1}.is-bin-open .robot-status{opacity:0}.ground-pet.is-rolling .robot-treads{animation-duration:.294s}.container-door-left,.container-door-right,.container-lid{transform-box:view-box}

