/* Ônibus dos Animais: cena em camadas (céu, colinas, árvores, estrada) com parallax. */
.toy-onibus .toy-scene{background:linear-gradient(#cfe9f1,#e9f5ef 55%,#e7f3f5)}
.toy-onibus-sun{position:absolute;left:6cqw;top:6cqh;width:14cqmin;aspect-ratio:1;border-radius:50%;background:var(--sun);box-shadow:0 0 0 2.4cqmin rgba(255,211,109,.28),0 0 0 5cqmin rgba(255,211,109,.14)}
.toy-onibus-layer{position:absolute;left:0;display:flex;width:300cqw;will-change:transform;pointer-events:none}
.toy-onibus-far{top:0;bottom:31cqh}
.toy-onibus-mid{bottom:32cqh;height:30cqmin;align-items:flex-end}
.toy-onibus-tile{position:relative;flex:none;width:50cqw;height:100%}
.toy-onibus-hills{position:absolute;left:0;bottom:0;width:100%;height:22cqh}
.toy-onibus-hills svg{display:block;width:100%;height:100%}
.toy-onibus-cloud{position:absolute;width:24cqmin;aspect-ratio:2;opacity:.95}
.toy-onibus-deco{position:absolute;bottom:0;display:block}
.toy-onibus-grass{position:absolute;left:0;right:0;bottom:30cqh;height:6cqh;background:#8fc77a}
.toy-onibus-near{bottom:0;height:34cqh}
.toy-onibus-pave{position:absolute;left:0;right:0;bottom:0;height:18cqh;background:#f3e8d4 repeating-linear-gradient(90deg,transparent 0 9.7cqw,rgba(67,55,77,.08) 9.7cqw 10cqw)}
.toy-onibus-curb{position:absolute;left:0;right:0;bottom:18cqh;height:1.6cqh;background:#e3d3b8}
.toy-onibus-road{position:absolute;left:0;right:0;bottom:19.6cqh;height:14.4cqh;background:#7c7385}
.toy-onibus-dash{position:absolute;left:0;right:0;bottom:26cqh;height:1.3cqh;background:repeating-linear-gradient(90deg,#fffdf8 0 16cqw,transparent 16cqw 50cqw);border-radius:1cqh}
.toy-onibus-lane{position:absolute;left:0;right:0;bottom:21cqh;z-index:4;display:flex;justify-content:center;pointer-events:none}
.toy-onibus-bus{width:min(90cqw,120cqh);aspect-ratio:440/230;pointer-events:none}
.toy-onibus-body{position:relative;width:100%;height:100%;transform-origin:50% 100%;pointer-events:auto;cursor:pointer}
.toy-onibus-body>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.toy-onibus-wheel{transform-box:fill-box;transform-origin:center}
.toy-onibus.driving .toy-onibus-wheel{animation:toy-onibus-spin .45s linear infinite}
@keyframes toy-onibus-spin{to{transform:rotate(360deg)}}
.toy-onibus-slot{position:absolute;top:calc(54/230*100%);height:calc(76/230*100%);width:calc(72/440*100%);border-radius:12% / 10%;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;pointer-events:none}
.toy-onibus-slot::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,rgba(255,255,255,.4) 0 18%,transparent 18% 30%,rgba(255,255,255,.22) 30% 38%,transparent 38%)}
.toy-onibus-cab{left:calc(356/440*100%);width:calc(56/440*100%)}
.toy-onibus-cab .toy-actor{position:relative;width:150%;height:130%;flex:none;margin-bottom:-18%}
.toy-onibus-rider{width:88%;height:88%;pointer-events:auto;cursor:pointer;touch-action:manipulation;transform-origin:50% 100%}
.toy-onibus-rider .art-img{pointer-events:none}
.toy-onibus-pole{position:absolute;z-index:3;right:7cqw;bottom:16cqh;width:18cqmin;height:64cqh;display:flex;flex-direction:column;align-items:center;pointer-events:none}
.toy-onibus-pole .stick{flex:1;width:2.4cqmin;background:#9d93a8;border-radius:2cqmin}
.toy-onibus-pole .base{width:9cqmin;height:2cqmin;background:#7c7385;border-radius:2cqmin}
.toy-onibus-pole svg{width:100%;aspect-ratio:1;flex:none;display:block}
.toy-onibus-park{position:absolute;z-index:3;right:-4cqw;bottom:16cqh;width:68cqmin;display:block;pointer-events:none}
.toy-onibus-park svg{display:block;width:100%;height:auto}
.toy-onibus-front{position:absolute;z-index:6;right:5cqw;bottom:2cqh;width:min(30cqw,max(88px,34cqh));aspect-ratio:1;pointer-events:none}
.toy-onibus-wait{position:absolute;inset:0;width:100%;height:100%;cursor:pointer;touch-action:manipulation;pointer-events:auto;transform-origin:50% 100%}
.toy-onibus-front .toy-actor{position:absolute;inset:-12% -10% 0 -10%;width:120%;height:112%;pointer-events:none}
.toy-onibus-horn{position:absolute;z-index:7;left:5cqw;bottom:3cqh;width:clamp(96px,26cqmin,128px);aspect-ratio:1;border:0;padding:0;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ef8a80,var(--tomato) 60%,#c4524a);box-shadow:0 .9cqmin 0 #a8433c,0 2cqmin 3cqmin rgba(67,55,77,.25);display:grid;place-items:center;visibility:hidden;touch-action:manipulation}
.toy-onibus-horn.on{visibility:visible}
.toy-onibus-horn svg{width:56%;height:56%;fill:#fffdf8;stroke:#fffdf8;stroke-width:1;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}
.toy-onibus-horn.on::before{content:"";position:absolute;inset:-9%;border-radius:50%;border:.8cqmin solid rgba(223,105,94,.5);animation:toy-onibus-pulse 1.5s ease-out infinite;pointer-events:none}
@keyframes toy-onibus-pulse{from{transform:scale(.88);opacity:1}to{transform:scale(1.28);opacity:0}}
.toy-onibus-puff{position:absolute;z-index:3;width:5cqmin;aspect-ratio:1;border-radius:50%;background:rgba(255,253,248,.85);pointer-events:none}
@media (prefers-reduced-motion:reduce){.toy-onibus-horn.on::before{animation:none;opacity:.6}}
/* Retrato alto: a estrada sobe para a cena não ficar com céu vazio demais. */
@container (max-aspect-ratio:4/5){
  .toy-onibus-far{bottom:38cqh}.toy-onibus-mid{bottom:39cqh}.toy-onibus-grass{bottom:37cqh}
  .toy-onibus-near{height:41cqh}.toy-onibus-pave{height:25cqh}.toy-onibus-curb{bottom:25cqh}
  .toy-onibus-road{bottom:26.6cqh;height:14.4cqh}.toy-onibus-dash{bottom:33cqh}
  .toy-onibus-lane{bottom:28cqh}.toy-onibus-pole{bottom:23cqh;height:50cqh}
  .toy-onibus-park{bottom:23cqh}.toy-onibus-front{bottom:5cqh}.toy-onibus-horn{bottom:5cqh}
}
