/* V8 • The little explorer. Homepage-only, small, polite and accessible. */
.bdk-rope-world{position:fixed;inset:0;z-index:87;pointer-events:none;isolation:isolate;overflow:hidden;--kid-rope-x:44px;--kid-rope-y:156px;--kid-extent:200px}
.bdk-rope-world *{box-sizing:border-box}
.bdk-rope-track{position:absolute;left:var(--kid-rope-x);top:70px;width:3px;height:var(--kid-extent);max-height:calc(100vh - 70px);border-radius:9px;background:repeating-linear-gradient(165deg,#ffb12e 0px,#ffd897 6px,#715029 9px,#ffc45e 12px);box-shadow:0 0 9px #ffac4280,1px 0 3px #122042;transform-origin:top;transition:height .28s ease}
.bdk-rope-track::after{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:12px;height:11px;border-radius:50% 50% 5px 5px;background:#ffb52d;box-shadow:0 0 0 3px #10213d,0 0 14px #ffc45d}
.bdk-rope-traveler{position:absolute;left:0;top:0;transform:translate3d(3px,150px,0);will-change:transform;pointer-events:none}
.bdk-kid-hit{display:block;position:relative;width:84px;height:122px;padding:0;border:0;background:none;cursor:pointer;pointer-events:auto;touch-action:manipulation;user-select:none;-webkit-tap-highlight-color:transparent;filter:drop-shadow(0 8px 9px #0011268c);outline-offset:4px}
.bdk-kid-hit:focus-visible{outline:2px dashed #ffa827;border-radius:15px}
.bdk-kid-art{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 8px #ffb13a40);transition:filter .3s ease}
.bdk-kid-art .kid-torso,.bdk-kid-art .kid-head{transform-box:fill-box;transform-origin:center;transition:transform .25s ease}
.bdk-kid-art .kid-arm,.bdk-kid-art .kid-leg{transform-box:view-box}
.bdk-kid-art .kid-eye{transform-box:fill-box;transform-origin:center;animation:bdk-natural-blink 5.8s ease-in-out infinite}
.bdk-kid-art .kid-gasp,.bdk-kid-art .kid-angry-mouth{opacity:0}
.bdk-kid-art .kid-smile{opacity:1}
.bdk-kid-art .kid-arm-left{transform:rotate(21deg)}
.bdk-kid-art .kid-arm-right{transform:rotate(-13deg)}
.bdk-rope-world.is-rope-travel .kid-leg-left{animation:bdk-climb-left .48s ease-in-out infinite alternate}
.bdk-rope-world.is-rope-travel .kid-leg-right{animation:bdk-climb-right .48s ease-in-out infinite alternate}
.bdk-rope-world.is-rope-travel .kid-arm-left{animation:bdk-climb-left .48s ease-in-out infinite alternate}
.bdk-rope-world.is-rope-travel .kid-arm-right{animation:bdk-climb-right .48s ease-in-out infinite alternate}
.bdk-rope-world.is-sliding .kid-torso{transform:rotate(-6deg)}
.bdk-rope-world.is-climbing .kid-torso{transform:rotate(6deg)}
.bdk-rope-world.is-jumping .kid-leg-left{animation:bdk-hop-left .5s ease-in-out both}
.bdk-rope-world.is-jumping .kid-leg-right{animation:bdk-hop-right .5s ease-in-out both}
.bdk-rope-world.is-landed .kid-head{animation:bdk-head-look 3.2s ease-in-out infinite}
.bdk-rope-world.is-landed .kid-arm-right{animation:bdk-wave 1.4s ease-in-out infinite}
.bdk-rope-world.is-curious .kid-head{animation:bdk-curious-look 1.65s ease-in-out both}
.bdk-rope-world.is-curious .kid-arm-right{animation:bdk-search-scratch 1.65s ease-in-out both}
.bdk-rope-world.is-curious .kid-gasp{opacity:1}
.bdk-rope-world.is-curious .kid-smile{opacity:0}
.bdk-rope-world.is-suspicious .kid-head{transform:rotate(-12deg)}
.bdk-rope-world.is-suspicious .kid-brow-l{transform:translateY(-4px) rotate(-13deg);transform-origin:center}
.bdk-rope-world.is-suspicious .kid-brow-r{transform:translateY(2px) rotate(9deg);transform-origin:center}
.bdk-rope-world.is-suspicious .kid-arm-left{transform:rotate(-50deg)}
.bdk-rope-world.is-suspicious .kid-arm-right{transform:rotate(42deg)}
.bdk-rope-world.is-angry .kid-head{animation:bdk-angry-look .5s ease-in-out 2}
.bdk-rope-world.is-angry .kid-arm-left{animation:bdk-angry-arms .4s ease-in-out 3 alternate}
.bdk-rope-world.is-angry .kid-arm-right{animation:bdk-angry-arms .4s ease-in-out 3 alternate-reverse}
.bdk-rope-world.is-angry .kid-leg-right{animation:bdk-angry-stomp .4s ease-in-out 3}
.bdk-rope-world.is-angry .kid-angry-mouth{opacity:1}
.bdk-rope-world.is-angry .kid-smile{opacity:0}
.bdk-rope-world.is-angry .kid-brow-l{transform:rotate(15deg);transform-origin:center}
.bdk-rope-world.is-angry .kid-brow-r{transform:rotate(-15deg);transform-origin:center}
.bdk-kid-bubble{position:absolute;left:57px;top:-20px;min-width:104px;max-width:170px;padding:8px 10px;background:#fffdf4;border:2px solid #ffb943;border-radius:14px 14px 14px 3px;color:#14233d;font:800 11px/1.3 system-ui,sans-serif;text-align:center;box-shadow:0 8px 25px #0003;opacity:0;transform:translateY(8px) scale(.93);transition:opacity .22s,transform .22s;pointer-events:none;white-space:normal}
.bdk-rope-world.has-bubble .bdk-kid-bubble{opacity:1;transform:translateY(0) scale(1)}
.bdk-rope-world.is-angry .bdk-kid-bubble{background:#fff0e3;border-color:#ff744d}
.bdk-kid-shadow{position:absolute;left:22px;bottom:-2px;width:42px;height:5px;background:#0008;border-radius:50%;filter:blur(3px);opacity:.35;transform:scale(1.05)}
/* Keep him a small, optional character in the margin: not an overlay across copy. */
@keyframes bdk-natural-blink{0%,40%,43%,100%{transform:scaleY(1)}41%{transform:scaleY(.12)}}
@keyframes bdk-climb-left{from{transform:rotate(14deg)}to{transform:rotate(-23deg)}}
@keyframes bdk-climb-right{from{transform:rotate(-23deg)}to{transform:rotate(19deg)}}
@keyframes bdk-hop-left{50%{transform:rotate(38deg)}}
@keyframes bdk-hop-right{50%{transform:rotate(-38deg)}}
@keyframes bdk-wave{0%,100%{transform:rotate(-20deg)}45%{transform:rotate(-98deg)}75%{transform:rotate(-60deg)}}
@keyframes bdk-head-look{0%,100%{transform:rotate(0)}45%{transform:rotate(9deg)}70%{transform:rotate(-7deg)}}
@keyframes bdk-curious-look{0%,100%{transform:rotate(0)}25%{transform:rotate(-17deg)}50%{transform:rotate(12deg)}75%{transform:rotate(-8deg)}}
@keyframes bdk-search-scratch{0%,100%{transform:rotate(0)}22%,40%{transform:rotate(-80deg)}55%{transform:rotate(-110deg)}73%{transform:rotate(-78deg)}}
@keyframes bdk-angry-look{0%,100%{transform:rotate(0)}30%{transform:rotate(11deg)}70%{transform:rotate(-11deg)}}
@keyframes bdk-angry-arms{to{transform:rotate(45deg)}}
@keyframes bdk-angry-stomp{60%{transform:translateY(-10px) rotate(4deg)}}
/* Project bee must stay only a small Drofree brand accent. */
.bdk-home .bdk-project-identity-drofree .bdk-project-mascot{width:clamp(75px,9vw,112px)!important;max-width:112px!important;height:auto!important;right:7%!important;top:67px!important;animation:bdk-dorbee-float 6s ease-in-out infinite}
.bdk-digital-products .bdk-detail-dorbee{width:clamp(70px,9vw,110px)!important;max-width:110px!important;right:3%!important;top:18%!important}
@media(max-width:850px){.bdk-rope-world{--kid-rope-x:24px}.bdk-kid-hit{width:68px;height:99px}.bdk-kid-bubble{left:50px;top:-17px;font-size:10px;min-width:85px}.bdk-home .bdk-project-identity-drofree .bdk-project-mascot{width:72px!important;top:80px!important;right:5%!important}}
@media(max-width:600px){.bdk-rope-world{--kid-rope-x:17px}.bdk-kid-hit{width:48px;height:71px}.bdk-kid-bubble{left:38px;max-width:125px;font-size:9px;padding:6px 7px}.bdk-rope-track{top:64px}.bdk-home .bdk-project-identity-drofree .bdk-project-mascot{width:58px!important;top:68px!important}}
@media(prefers-reduced-motion:reduce){.bdk-rope-world *,.bdk-rope-world *::after,.bdk-rope-world *::before{animation:none!important;transition:none!important}.bdk-rope-traveler{will-change:auto}}
/* When he lands or notices the visitor, pupils track the last pointer position. */
.bdk-rope-world .kid-eyes{transform:translate(var(--kid-look-x,0px),var(--kid-look-y,0px));transition:transform .22s ease}
