:root{--mallow-size: clamp(62px, 7.7vw, 92px)}.nio-mallow{position:fixed;display:flex;flex-direction:column;align-items:center;width:var(--mallow-size);pointer-events:none;filter:drop-shadow(0 12px 20px #1620332b);transform:translate(var(--mallow-roam-x, 0),var(--mallow-roam-y, 0));transition:inset .8s ease,transform 1.6s cubic-bezier(.2,.8,.3,1)}.nio-mallow--anchor-bottom-right{right:clamp(12px,4vw,60px);bottom:18px}.nio-mallow--anchor-bottom-left{left:clamp(12px,4vw,60px);bottom:18px}.nio-mallow--anchor-right-middle{right:16px;top:42%}.nio-mallow--anchor-left-middle{left:16px;top:42%}.nio-mallow--anchor-top-right{right:20px;top:72px}.nio-mallow.nio-mallow--dom{inset:0 auto auto 0;transform:translateZ(0);transition:none}.nio-mallow--dom .nio-mallow__speech{position:absolute;right:0;bottom:calc(100% + 4px)}.nio-mallow--dom.nio-mallow--chat-open .nio-mallow__speech{bottom:calc(100% + 137px)}.nio-mallow--dom .nio-mallow__chat{position:absolute;right:0;bottom:calc(100% + 2px)}.nio-mallow__character{width:100%;border:0;background:none;padding:0;cursor:pointer;pointer-events:auto;transform-origin:50% 100%;outline-offset:4px;will-change:transform,opacity}.nio-mallow__character:hover{filter:brightness(1.025)}.nio-mallow__character svg{display:block;width:100%;overflow:visible}.nio-mallow__body{fill:#fff;stroke:#dbe3f0;stroke-width:4}.nio-mallow__eye{fill:#182033;transform-box:fill-box;transform-origin:center}.nio-mallow__eye{animation:mallow-blink 4.8s ease-in-out infinite}.nio-mallow__shine{fill:#fff}.nio-mallow__cheek{fill:#f7a9b8;opacity:.42}.nio-mallow__mouth{fill:none;stroke:#d87386;stroke-width:5;stroke-linecap:round}.nio-mallow__leg{stroke:#fff;stroke-width:11;stroke-linecap:round}.nio-mallow__arm{fill:none;stroke:#fff;stroke-width:14;stroke-linecap:round;transform-box:fill-box;transform-origin:center bottom}.nio-mallow__arm--right{filter:drop-shadow(0 0 1.5px #9eabc0)}.nio-mallow__hand{fill:#fff;stroke:#dbe3f0;stroke-width:2}.nio-mallow__shoe{fill:#222b3b;stroke:#fff;stroke-width:3}.nio-mallow__flagpole{stroke:#555f70;stroke-width:4}.nio-mallow__flag{fill:#673de6;transform-origin:133px 76px}.nio-mallow__flag{animation:mallow-idle-flag 2.6s ease-in-out infinite alternate}.nio-mallow__flag-secret{cursor:help;pointer-events:auto}.nio-mallow__nio{font:800 13px system-ui;fill:#fff}.nio-mallow__speech{max-width:min(260px,75vw);width:max-content;margin-bottom:-10px;padding:12px 14px;border:1px solid #dde4f0;border-radius:16px 16px 4px;background:#fff;color:#172033;font:600 13px/1.35 system-ui;box-shadow:0 10px 30px #1d294022;white-space:pre-line;animation:mallow-speech-in .22s ease-out}.nio-mallow__chat{position:relative;width:min(270px,82vw);margin:16px 0 -6px;padding:12px;border:1px solid #dce3f0;border-radius:16px 16px 5px;background:#fff;box-shadow:0 14px 38px #1d294029;color:#172033;font-family:system-ui;pointer-events:auto;animation:mallow-speech-in .22s ease-out}.nio-mallow__chat label{display:block;margin:0 24px 8px 2px;font-size:12px;font-weight:800;color:#5732c8}.nio-mallow__chat-close{position:absolute;top:6px;right:7px;width:25px;height:25px;border:0;border-radius:50%;background:#f1effb;color:#51485f;font-size:18px;line-height:1;cursor:pointer}.nio-mallow__chat-row{display:flex;gap:6px}.nio-mallow__chat input{min-width:0;flex:1;border:1px solid #d6deeb;border-radius:10px;padding:9px 10px;color:#172033;font:13px system-ui;outline:none}.nio-mallow__chat input:focus{border-color:#7653e8;box-shadow:0 0 0 3px #7653e81c}.nio-mallow__chat-row button{width:38px;border:0;border-radius:10px;background:#673de6;color:#fff;font-size:18px;cursor:pointer}.nio-mallow__chat-row button:disabled{cursor:not-allowed;opacity:.45}.nio-mallow__chat small{display:block;margin:7px 2px 0;color:#81899a;font-size:9px}.nio-mallow__debug{position:fixed;left:8px;bottom:8px;padding:5px 8px;border-radius:6px;background:#121828e8;color:#c7ffdf;font:11px monospace;z-index:99999}.nio-mallow__confetti{position:absolute;inset:-25px;pointer-events:none}.nio-mallow__confetti i{position:absolute;left:50%;top:45%;width:8px;height:14px;border-radius:3px;background:#673de6;animation:mallow-confetti 1.2s ease-out infinite}.nio-mallow__confetti i:nth-child(2){background:#13bfa6;animation-delay:.12s;--confetti-x: 72px}.nio-mallow__confetti i:nth-child(3){background:#ffbd3e;animation-delay:.24s;--confetti-x: -68px}.nio-mallow__confetti i:nth-child(4){background:#e68;animation-delay:.36s;--confetti-x: 42px}.nio-mallow__confetti i:nth-child(5){background:#3188e8;animation-delay:.48s;--confetti-x: -40px}.nio-mallow__confetti i:nth-child(6){background:#9d65ed;animation-delay:.6s;--confetti-x: 92px}.nio-mallow--party .nio-mallow__body{animation:mallow-rainbow .8s linear infinite alternate}.nio-mallow--idle{animation:mallow-breathe 2.7s ease-in-out infinite}.nio-mallow--portal_in{animation:mallow-pop .65s cubic-bezier(.2,1.4,.4,1)}.nio-mallow--portal_out{animation:mallow-portal-out .55s ease-in forwards}.nio-mallow--jump{animation:mallow-jump .62s cubic-bezier(.2,.8,.35,1) 2}.nio-mallow--walk{animation:mallow-walk .9s ease-in-out 2}.nio-mallow--run{animation:mallow-run .55s ease-in-out 3}.nio-mallow--peek{animation:mallow-peek 1.15s ease-in-out}.nio-mallow--sleep{animation:mallow-sleep 2.8s ease-in-out infinite}.nio-mallow--talk{animation:mallow-talk .25s ease-in-out infinite alternate}.nio-mallow--look .nio-mallow__eye{animation:mallow-look .7s ease-in-out}.nio-mallow--wave{animation:mallow-wave-body 1.1s ease-in-out}.nio-mallow--wave .nio-mallow__arm--right{animation:mallow-wave-arm .25s ease-in-out 4 alternate}.nio-mallow--wave .nio-mallow__flag{animation:mallow-flag-wave .3s ease-in-out 3 alternate}.nio-mallow--surprised{animation:mallow-surprised .55s ease}.nio-mallow--sit{animation:mallow-sit 1.2s ease-in-out}.nio-mallow--hide{animation:mallow-hide .8s ease-in forwards}.nio-mallow--climb{animation:mallow-climb 1.4s ease-in-out}.nio-mallow--fall{animation:mallow-fall .8s cubic-bezier(.3,.7,.4,1)}.nio-mallow[data-motion=walk] .nio-mallow__leg--left,.nio-mallow[data-motion=walk] .nio-mallow__shoe--left{animation:mallow-step-left .32s ease-in-out infinite alternate;transform-origin:center top}.nio-mallow[data-motion=walk] .nio-mallow__leg--right,.nio-mallow[data-motion=walk] .nio-mallow__shoe--right{animation:mallow-step-right .32s ease-in-out infinite alternate;transform-origin:center top}.nio-mallow[data-motion=jump] .nio-mallow__shoe--left{animation:mallow-shoe-dangle .28s ease-in-out infinite alternate;transform-origin:center top}.nio-mallow[data-motion=jump] .nio-mallow__shoe--right{animation:mallow-shoe-dangle .28s .12s ease-in-out infinite alternate-reverse;transform-origin:center top}.nio-mallow[data-motion=jump] .nio-mallow__eye{transform:scale(1.15)}.nio-mallow[data-motion=hang] .nio-mallow__character{animation:mallow-hang-body 1.7s ease-in-out infinite}.nio-mallow[data-motion=hang] .nio-mallow__arm--left{transform:rotate(145deg) translate(-12px,-18px)}.nio-mallow[data-motion=hang] .nio-mallow__arm--right{transform:rotate(-24deg) translate(3px,-8px)}.nio-mallow[data-motion=hang] .nio-mallow__leg--left,.nio-mallow[data-motion=hang] .nio-mallow__shoe--left{animation:mallow-hang-legs .65s ease-in-out infinite alternate;transform-origin:center top}.nio-mallow[data-motion=hang] .nio-mallow__leg--right,.nio-mallow[data-motion=hang] .nio-mallow__shoe--right{animation:mallow-hang-legs .65s ease-in-out infinite alternate-reverse;transform-origin:center top}.nio-mallow[data-motion=peek] .nio-mallow__character{clip-path:inset(0 0 42% 0);animation:mallow-peek-head 1.7s ease-in-out infinite}@keyframes mallow-breathe{50%{transform:scaleY(.975) scaleX(1.015) translateY(2px)}}@keyframes mallow-pop{0%{opacity:0;transform:scale(.15) rotate(-18deg)}70%{transform:scale(1.08) rotate(3deg)}to{opacity:1;transform:none}}@keyframes mallow-portal-out{to{opacity:0;transform:scale(.15) rotate(20deg)}}@keyframes mallow-jump{45%{transform:translateY(-34px) rotate(5deg) scaleX(.96)}70%{transform:translateY(-5px) scaleY(1.04)}}@keyframes mallow-walk{25%{transform:translate(-24px) rotate(-5deg)}75%{transform:translate(18px) rotate(4deg)}}@keyframes mallow-run{35%{transform:translate(-48px) rotate(-9deg) scaleX(.96)}75%{transform:translate(30px) rotate(7deg)}}@keyframes mallow-peek{0%,to{transform:translate(0)}40%{transform:translate(42%) rotate(5deg)}65%{transform:translate(34%) rotate(2deg)}}@keyframes mallow-sleep{50%{transform:scaleY(.95) translateY(5px) rotate(-2deg)}}@keyframes mallow-talk{to{transform:scale(1.025) translateY(-2px)}}@keyframes mallow-look{35%{transform:translate(-5px)}70%{transform:translate(5px)}}@keyframes mallow-wave-body{45%{transform:rotate(-4deg) translateY(-5px)}}@keyframes mallow-wave-arm{to{transform:rotate(28deg) translateY(-4px)}}@keyframes mallow-flag-wave{to{transform:skewY(7deg) scaleX(.92)}}@keyframes mallow-surprised{45%{transform:scale(1.13) translateY(-9px)}}@keyframes mallow-sit{45%,70%{transform:scaleY(.82) scaleX(1.08) translateY(20px)}}@keyframes mallow-hide{to{opacity:0;transform:translateY(65%) scale(.75)}}@keyframes mallow-climb{35%{transform:translateY(-45px) rotate(-5deg)}70%{transform:translateY(-20px) rotate(5deg)}}@keyframes mallow-fall{35%{transform:translateY(-18px) rotate(16deg)}75%{transform:translateY(15px) rotate(-10deg) scaleY(.9)}}@keyframes mallow-speech-in{0%{opacity:0;transform:translateY(8px) scale(.96)}}@keyframes mallow-confetti{0%{opacity:1;transform:translate(0) rotate(0)}to{opacity:0;transform:translate(var(--confetti-x, -85px),-90px) rotate(280deg)}}@keyframes mallow-rainbow{0%{stroke:#dbe3f0}to{stroke:#9d65ed}}@keyframes mallow-blink{0%,44%,48%,to{transform:scaleY(1)}46%{transform:scaleY(.08)}}@keyframes mallow-idle-flag{to{transform:skewY(3deg) scaleX(.96)}}@keyframes mallow-step-left{0%{transform:rotate(13deg) translateY(-2px)}to{transform:rotate(-14deg) translateY(2px)}}@keyframes mallow-step-right{0%{transform:rotate(-13deg) translateY(2px)}to{transform:rotate(14deg) translateY(-2px)}}@keyframes mallow-shoe-dangle{to{transform:rotate(14deg) translateY(4px)}}@keyframes mallow-hang-body{50%{transform:rotate(2deg) translateY(4px)}}@keyframes mallow-hang-legs{to{transform:rotate(18deg) translate(4px)}}@keyframes mallow-peek-head{50%{transform:translateY(5px) rotate(2deg)}}@media(max-width:600px){:root{--mallow-size: 59px}.nio-mallow__speech{font-size:12px}}@media(prefers-reduced-motion:reduce){.nio-mallow,.nio-mallow__character,.nio-mallow__character *,.nio-mallow__speech{animation:none!important;transition:none!important}}
