/* Ambiente da plataforma: decorativo no fundo, personagens interativos à frente. */
body{isolation:isolate;background:var(--page)}
.world-atmosphere{position:fixed;inset:0;z-index:-1;pointer-events:none}
.world-orbits{position:fixed;inset:0;overflow:hidden;z-index:-1;pointer-events:none;opacity:.22}
.world-orbits i{position:absolute;right:-110px;top:6%;width:330px;height:330px;border:1px solid #9c6fbf30;border-radius:50%;animation:login-orbit 64s linear infinite}
.world-orbits i::after{content:'';position:absolute;left:50%;top:-3px;width:5px;height:5px;border-radius:50%;background:var(--lilac);box-shadow:0 0 14px var(--lilac)}
.world-orbits i:nth-child(2){right:auto;left:-160px;top:52%;width:400px;height:400px;animation-direction:reverse;animation-duration:82s}
.world-orbits i:nth-child(3){right:28%;top:70%;width:250px;height:250px;animation-duration:97s}
.login{background:transparent}.workspace{background:transparent}.workspace main{background:transparent}
.login-robot-frame{clip-path:none;overflow:visible}.login-robot-arrival{animation:none!important}
.login-robot-strip,.login-robot-gesture-strip{display:none!important}
.world-character-model{display:block;position:relative;width:100%;height:100%;transform-origin:50% 82%}
.login-robot-frame .world-character-model{position:absolute;inset:0}
.world-character-canvas{display:block;width:100%;height:100%;pointer-events:none}
.world-rig-fallback{position:absolute;inset:0;display:block;background-repeat:no-repeat;animation:world-fallback-breathe 3s ease-in-out infinite alternate}
@keyframes world-fallback-breathe{to{transform:translateY(-2px) rotate(.7deg)}}
.login-robot-hit{z-index:3}.login-robot-reply{z-index:4;max-width:170px;pointer-events:none}
.world-visitors{position:fixed;inset:0;z-index:35;pointer-events:none;overflow:hidden;contain:paint}
.world-visitor{position:absolute;z-index:35;pointer-events:none;will-change:transform,opacity;display:flex;align-items:center;flex-direction:column;gap:6px}
.world-visitor>.world-character-model{width:96px;height:112px;flex-shrink:0}
.world-visitor[data-kind=robot]>.world-character-model{height:130px}
.world-character-hit{position:absolute;left:calc(50% - 65px);top:0;width:130px;height:150px;border-radius:35px;pointer-events:auto;background:transparent;cursor:pointer;padding:0}
.world-character-hit:focus-visible{outline:2px solid var(--accent-text);outline-offset:5px}
.world-character-reply{display:block;max-width:100%;padding:11px 13px;border-radius:13px;border:1px solid var(--line-accent);background:#252432f5;color:var(--text);font:400 11px/1.45 var(--body);text-align:center;opacity:0;transform:translateY(4px);transition:opacity 160ms ease,transform 180ms var(--proposal-ease-out);pointer-events:none;box-shadow:0 12px 35px #0003}
.world-reacting>.world-character-reply{opacity:1;transform:translateY(0)}
.world-character-reply:empty{display:none}
.world-reward{position:absolute;inset:0;pointer-events:none;z-index:-1;overflow:visible}
.world-reward .world-spark{position:absolute;top:35%;font:600 18px var(--display);font-style:normal;color:var(--accent-text);opacity:0;animation:world-reward-rise 2200ms var(--proposal-ease-out) both}
@keyframes world-reward-rise{0%{opacity:0;transform:translateY(8px) scale(.9)}20%{opacity:.9}100%{opacity:0;transform:translateY(-65px) rotate(16deg) scale(1.15)}}
.world-motion-control{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:20px 10px 0;padding:9px 0;font-size:10px;color:var(--muted);text-align:left}
[data-world-paused] :is(.world-atmosphere,.world-orbits,.world-visitor,.login) *,[data-world-paused] :is(.world-atmosphere,.world-orbits,.world-visitor,.login) *::before,[data-world-paused] :is(.world-atmosphere,.world-orbits,.world-visitor,.login) *::after{animation-play-state:paused!important}
@media(max-width:760px){.world-motion-control{margin:0 8px;padding:6px;font-size:9px}.world-orbits{opacity:.14}.world-visitor>.world-character-model{width:82px;height:92px}.world-visitor[data-kind=robot]>.world-character-model{height:112px}.world-character-hit{height:128px;width:112px;left:calc(50% - 56px)}.world-character-reply{padding:9px 10px;font-size:10px}.login-robot-reply{max-width:125px;left:-25%}}
@media(prefers-reduced-motion:reduce){.world-orbits{display:none}.world-atmosphere *{animation:none!important}.world-rig-fallback{animation:none}.world-reward{display:none}.world-character-reply{transform:none;transition:opacity 160ms ease}.world-visitor{display:none}}

.world-motion-control:disabled{cursor:default;opacity:.65}

.world-reward .world-firework{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--lilac);box-shadow:0 0 8px var(--lilac);opacity:0;animation:world-firework-burst 1100ms var(--proposal-ease-out) both}
.world-reward .world-firework:nth-child(3n){background:#f4d5a1;box-shadow:0 0 8px #f4d5a1}
@keyframes world-firework-burst{0%{opacity:0;transform:translate3d(0,0,0) scale(.6)}15%{opacity:1}100%{opacity:0;transform:translate3d(var(--burst-x),var(--burst-y),0) scale(.6)}}
.world-walking>.world-character-model{animation:world-walk-step 360ms linear infinite}
.world-walking>.world-character-hit{pointer-events:none}
@keyframes world-walk-step{0%,100%{transform:translate3d(0,0,0) rotate(-2deg)}50%{transform:translate3d(0,-4px,0) rotate(2deg)}}
@media(prefers-reduced-motion:reduce){.world-walking>.world-character-model{animation:none}}

/* A fala ocupa uma linha própria abaixo da arte; nunca cobre cabeça ou mãos. */
.login-robot-reply{position:relative;display:block;left:auto;right:auto;top:auto;width:100%;max-width:none;min-height:64px;margin:12px 0 0;text-align:center;border-radius:12px;box-sizing:border-box}

@media(max-width:760px){.login form{padding-top:150px}}

.world-visitor>.world-character-model{margin-top:32px}
.world-character-hit{top:32px}
