/* ===== Cursor: fatia de pizza (nativo do navegador → sem atraso) ===== */
@media (hover: hover) and (pointer: fine) {
  html { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='34' viewBox='0 0 34 34'%3E%3Cpath d='M4 6 Q17 0 30 6 L18 31 Q17 33 16 31 Z' fill='%23FBC82F' stroke='%238F4E12' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M4 6 Q17 0 30 6 Q31 9 28 10 Q17 5 6 10 Q3 9 4 6Z' fill='%23D68A34' stroke='%238F4E12' stroke-width='1.6'/%3E%3Ccircle cx='13' cy='15' r='2.7' fill='%23C92E1C'/%3E%3Ccircle cx='20' cy='18' r='2.4' fill='%23C92E1C'/%3E%3Ccircle cx='15' cy='12' r='.9' fill='%23fff'/%3E%3C/svg%3E") 5 3, auto; }
  a, button, [role="button"], .card, summary, label, select, .promo-pill, .size, input[type="checkbox"], input[type="radio"], .q-float { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='38' height='38' viewBox='0 0 38 38'%3E%3Cpath d='M4 7 Q19 0 34 7 L20 35 Q19 37 18 35 Z' fill='%23FFD84D' stroke='%23FF7A1A' stroke-width='2.6' stroke-linejoin='round'/%3E%3Cpath d='M4 7 Q19 0 34 7 Q35 10 32 11 Q19 5 6 11 Q3 10 4 7Z' fill='%23E89A3C' stroke='%23FF7A1A' stroke-width='2'/%3E%3Ccircle cx='15' cy='17' r='3' fill='%23D8321F'/%3E%3Ccircle cx='23' cy='20' r='2.6' fill='%23D8321F'/%3E%3Cpath d='M30 2 l1.2 3 3 1.2 -3 1.2 -1.2 3 -1.2 -3 -3 -1.2 3 -1.2Z' fill='%23fff'/%3E%3C/svg%3E") 6 3, pointer; }
  input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="search"], textarea { cursor: text; }
}
.burst { position: fixed; z-index: 9999; pointer-events: none; font-size: 18px; will-change: transform, opacity; }

/* ===== Botões do topo ===== */
.sound-btn, .mascote-btn { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line); background: var(--surface-2); color: inherit; font-size: 1.05rem; display: grid; place-items: center; transition: transform .2s, opacity .2s; }
.sound-btn:hover, .mascote-btn:hover { transform: scale(1.1) rotate(-6deg); }
.mascote-btn[aria-pressed="false"] { opacity: .45; }

/* ===== Pizza 3D leve: 1 imagem inclinada + borda (cópia escurecida), giro por animação CSS ===== */
.p3d { position: relative; width: 100%; aspect-ratio: 1; perspective: 1100px; touch-action: pan-y; user-select: none; -webkit-user-select: none; contain: layout; }
.p3d-tilt { position: absolute; inset: 6%; transform-style: preserve-3d; transform: rotateX(var(--tilt)); }
.p3d-drag { position: absolute; inset: 0; transform-style: preserve-3d; }
.p3d-drag img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; pointer-events: none; -webkit-user-drag: none; backface-visibility: hidden; }
.p3d-edge { transform: translateZ(-9px); filter: brightness(.45) saturate(1.2); }
.p3d-top { transform: translateZ(0); }
.p3d.flat .p3d-drag img { transform: none; filter: drop-shadow(0 14px 14px rgba(0, 0, 0, .45)); }
.p3d.can-drag { cursor: grab; }
.p3d.dragging { cursor: grabbing; }
.p3d-shadow { position: absolute; left: 8%; right: 8%; bottom: 10%; height: 22%; background: radial-gradient(closest-side, rgba(0, 0, 0, .5), rgba(0, 0, 0, .18) 55%, transparent 75%); pointer-events: none; }
.p3d.flat .p3d-shadow { bottom: 2%; height: 14%; }
.p3d-steam { position: absolute; left: 16%; right: 16%; top: 0; height: 55%; pointer-events: none; }
.p3d-steam span { position: absolute; bottom: 0; width: 30%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(255, 255, 255, .42) 0%, rgba(255, 255, 255, .16) 38%, rgba(255, 255, 255, 0) 70%); opacity: 0; animation: p3dRise 3.8s ease-in infinite; will-change: transform, opacity; }
.p3d-steam span:nth-child(1) { left: 4%; }
.p3d-steam span:nth-child(2) { left: 24%; animation-delay: -.8s; animation-duration: 4.4s; }
.p3d-steam span:nth-child(3) { left: 44%; animation-delay: -1.6s; }
.p3d-steam span:nth-child(4) { left: 62%; animation-delay: -2.4s; animation-duration: 4.2s; }
.p3d-steam span:nth-child(5) { left: 34%; animation-delay: -3.1s; animation-duration: 5s; }
@keyframes p3dRise { 0% { transform: translate(0, 30%) scale(.5); opacity: 0; } 20% { opacity: .85; } 60% { transform: translate(14%, -70%) scale(1.15); opacity: .4; } 100% { transform: translate(-10%, -150%) scale(1.7); opacity: 0; } }
.lite .p3d-edge { display: none; }
.lite .p3d-steam { display: none; }
.thumb.live > img { opacity: 0; }
.thumb .p3d { position: absolute; inset: -6%; width: 112%; z-index: 3; }
.thumb img[src*="/img/render/"], .thumb img[src*="/img/produtos/"] { object-fit: contain; border-radius: 0; aspect-ratio: auto; }
.ps-stage .p3d { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(92%, 440px); z-index: 2; }

/* ===== Topo: só o Queijinho, grande ===== */
.hero-pizza, .hero-hint, .hero-photos { display: none !important; }
#mascote-hero { position: absolute; left: 50%; top: 50%; width: min(80%, 430px); aspect-ratio: 300 / 368; transform: translate(-50%, -46%); pointer-events: none; }
.hero-stage .fc-1 { left: 0; right: auto; bottom: 6%; }

/* ===== Queijinho ===== */
.queijinho { position: fixed; left: 0; top: 0; z-index: 45; pointer-events: none; }
.queijinho.q-off { display: none; }
.q-pos { position: absolute; left: 0; top: 0; width: 300px; height: 368px; will-change: transform; }
.q-scale { width: 100%; height: 100%; transform-origin: 50% 50%; will-change: transform; }
.q-float { width: 100%; height: 100%; pointer-events: auto; animation: qBob 3.2s ease-in-out infinite; }
.q-corner .q-float { animation: qHover 1.6s ease-in-out infinite; }
@keyframes qBob { 0%, 100% { transform: translateY(0) scale(1, 1); } 50% { transform: translateY(-8px) scale(1.015, .985); } }
@keyframes qHover { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-14px) rotate(2deg); } }
.q-tilt { width: 100%; height: 100%; transform-style: preserve-3d; }
.q-svg { width: 100%; height: 100%; overflow: visible; }
.q-shadow { transition: opacity .3s; }
.q-corner .q-shadow { opacity: 0; }
/* asas e varinha: só na fadinha */
.q-wings, .q-wand { opacity: 0; transition: opacity .35s; }
.q-corner .q-wings, .q-corner .q-wand { opacity: 1; }
.q-wing { transform-box: fill-box; }
.q-wing-l { transform-origin: 100% 50%; }
.q-wing-r { transform-origin: 0% 50%; }
.q-corner .q-wing-l { animation: qFlapL .2s ease-in-out infinite alternate; }
.q-corner .q-wing-r { animation: qFlapR .2s ease-in-out infinite alternate; }
@keyframes qFlapL { from { transform: scaleX(1) rotate(0); } to { transform: scaleX(.4) rotate(12deg); } }
@keyframes qFlapR { from { transform: scaleX(1) rotate(0); } to { transform: scaleX(.4) rotate(-12deg); } }
.q-legs { transition: transform .3s; transform-box: view-box; transform-origin: 110px 238px; }
.q-corner .q-legs { transform: scaleY(.8) rotate(6deg); }
/* braços */
.q-arm { transform-box: view-box; transform-origin: 44px 128px; transition: transform .3s; }
.q-arm-r { transform-origin: 176px 128px; }
.q-hero .q-arm-r { animation: qWave 4.5s ease-in-out infinite; }
@keyframes qWave { 0%, 70%, 100% { transform: rotate(0); } 76%, 88% { transform: rotate(-40deg); } 82%, 94% { transform: rotate(-12deg); } }
.q-corner .q-arm-r { transform: rotate(-24deg); }
/* queijo pingando */
.q-drip { transform-box: fill-box; transform-origin: 50% 0; animation: qDrip 3.6s ease-in-out infinite; }
.q-drip.d2 { animation-delay: -1.1s; animation-duration: 4.2s; }
.q-drip.d3 { animation-delay: -2.3s; }
.q-drip.d4 { animation-delay: -.6s; animation-duration: 3.2s; }
@keyframes qDrip { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.5); } }
.a-drip .q-drip { animation-duration: .9s; }
/* rosto e expressões */
.q-face, .q-pupil { transform-box: view-box; }
.q-lid { transform-box: fill-box; transform-origin: 50% 0; transform: scaleY(0); }
.q-mouth { transform-box: view-box; transform-origin: 110px 150px; }
.q-eyes-happy, .q-eyes-love, .q-eyes-sleep, .q-mouth-o { opacity: 0; }
[data-face="happy"] .q-eyes-open, [data-face="love"] .q-eyes-open, [data-face="sleep"] .q-eyes-open { opacity: 0; }
[data-face="happy"] .q-eyes-happy, [data-face="love"] .q-eyes-love, [data-face="sleep"] .q-eyes-sleep { opacity: 1; }
[data-face="love"] .q-eyes-love { animation: qBeat .5s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes qBeat { 50% { transform: scale(1.18); } }
[data-face="wow"] .q-mouth { opacity: 0; }
[data-face="wow"] .q-mouth-o { opacity: 1; }
[data-face="wow"] .q-brow { transform: translateY(-7px); }
.q-brow { transition: transform .2s; }
.q-cheek { animation: qBlush 3s ease-in-out infinite; }
@keyframes qBlush { 50% { opacity: .85; } }
.q-zz { opacity: 0; }
.q-asleep .q-zz { opacity: 1; }
.q-zz text { animation: qZ 2.4s ease-in-out infinite; }
.q-zz text:nth-child(2) { animation-delay: -1.2s; }
@keyframes qZ { 0% { transform: translate(0, 8px); opacity: 0; } 50% { opacity: 1; } 100% { transform: translate(8px, -16px); opacity: 0; } }
.q-asleep .q-float { animation-duration: 6s; }
/* ações */
.a-hop .q-tilt { animation: qHop .7s cubic-bezier(.3, 1.6, .5, 1); }
@keyframes qHop { 0% { transform: none; } 25% { transform: translateY(8px) scale(1.14, .84); } 55% { transform: translateY(-40px) scale(.9, 1.12); } 80% { transform: translateY(3px) scale(1.06, .94); } 100% { transform: none; } }
.a-spin .q-tilt { animation: qSpin .9s cubic-bezier(.4, 1.4, .5, 1); }
@keyframes qSpin { to { transform: rotateY(720deg); } }
.a-flip .q-tilt { animation: qFlip 1s cubic-bezier(.4, 1.3, .5, 1); }
@keyframes qFlip { 0% { transform: none; } 40% { transform: translateY(-50px) rotate(-180deg); } 100% { transform: rotate(-360deg); } }
.a-wiggle .q-tilt { animation: qWiggle .8s ease-in-out; }
@keyframes qWiggle { 20% { transform: rotate(-8deg); } 40% { transform: rotate(7deg); } 60% { transform: rotate(-5deg); } 80% { transform: rotate(3deg); } }
.a-look .q-face { animation: qLook 1.2s ease-in-out; }
@keyframes qLook { 30% { transform: translateX(-6px); } 70% { transform: translateX(6px); } }
/* fumaça de quente saindo da cabeça (gradiente suave, sem filtro de desfoque) */
.q-steam { position: absolute; left: 18%; right: 18%; top: -6%; height: 42%; pointer-events: none; }
.q-steam i { position: absolute; bottom: 0; width: 34%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(255, 255, 255, .5) 0%, rgba(255, 255, 255, .2) 38%, rgba(255, 255, 255, 0) 70%); opacity: 0; animation: p3dRise 3.6s ease-in infinite; will-change: transform, opacity; }
.q-steam i:nth-child(1) { left: 0; }
.q-steam i:nth-child(2) { left: 18%; animation-delay: -.6s; animation-duration: 4.2s; }
.q-steam i:nth-child(3) { left: 36%; animation-delay: -1.3s; }
.q-steam i:nth-child(4) { left: 54%; animation-delay: -2s; animation-duration: 4s; }
.q-steam i:nth-child(5) { left: 66%; animation-delay: -2.7s; }
.q-steam i:nth-child(6) { left: 28%; animation-delay: -3.1s; animation-duration: 5s; }
.q-steam i:nth-child(7) { left: 46%; animation-delay: -.2s; animation-duration: 4.6s; }
/* brilho mágico em volta da fadinha */
.q-corner .q-float::before { content: ''; position: absolute; inset: 10%; border-radius: 50%; background: radial-gradient(circle, rgba(255, 236, 160, .35), rgba(255, 236, 160, 0) 65%); animation: qGlow 1.6s ease-in-out infinite; }
@keyframes qGlow { 50% { opacity: .5; transform: scale(1.1); } }
/* balão de fala (fora da escala do boneco, tamanho normal) */
.q-bubble { position: absolute; left: 0; top: 0; width: max-content; max-width: 260px; padding: 11px 14px; border-radius: 18px 18px 18px 4px; background: #fff8e8; color: #3a2410; font-weight: 600; font-size: .92rem; line-height: 1.3; box-shadow: 0 12px 30px rgba(0, 0, 0, .45); opacity: 0; pointer-events: none; transition: opacity .2s; }
.q-bubble.left { translate: -100% 0; border-radius: 18px 18px 4px 18px; }
.q-bubble.show { opacity: 1; pointer-events: auto; }
.q-actions { display: flex; gap: 6px; margin-top: 8px; }
.q-actions button { border: 0; border-radius: 999px; padding: 5px 11px; font: inherit; font-size: .78rem; font-weight: 700; background: #f6b526; color: #2a1806; cursor: pointer; }
.q-actions [data-q="hide"] { background: #eadfc9; margin-left: auto; }
.q-spark { position: fixed; z-index: 46; pointer-events: none; font-size: 18px; font-style: normal; }
@media (max-width: 820px) { .q-bubble { max-width: 210px; font-size: .84rem; } #mascote-hero { width: min(64%, 300px); } }
@media (prefers-reduced-motion: reduce) { .q-float, .q-drip, .q-cheek, .q-wing, .q-steam i, .q-arm-r { animation: none !important; } }

/* ===== Modo leve (computador sem aceleração de vídeo): mantém o mascote, corta o que redesenha a tela ===== */
.lite .q-drip, .lite .q-cheek, .lite .q-hero .q-arm-r, .lite .q-zz text, .lite .p3d-steam, .lite .stage-ring { animation: none !important; }
.lite .q-steam i:nth-child(n + 4), .lite .q-corner .q-float::before { display: none; }
.lite .q-float { animation-duration: 4s; }
.lite .q-corner .q-wing-l, .lite .q-corner .q-wing-r { animation-duration: .35s; }
.lite .hero-floaters img { animation: none; }
.lite .card { transform: none !important; }
.lite .card .shine, .lite .bg-glow { display: none; }
.lite body { background: radial-gradient(60vw 60vw at 78% 8%, rgba(240, 138, 36, .18), transparent 60%), var(--bg); }
.lite .q-svg, .lite .thumb img { filter: none !important; }
@media (max-width: 820px) {
  .sound-btn, .mascote-btn { width: 34px; height: 34px; font-size: .9rem; }
  .status-pill span { display: none; }
  .status-pill { padding: 8px; }
  .brand small { display: none; }
}
@media (max-width: 440px) { .brand > span { display: none; } .topbar { gap: 6px; } }
.queijinho.q-over { z-index: 70; }

/* avatar do cantinho: sem asas, sem varinha, sem brilho de fada, sem seguir o mouse */
.q-wings, .q-wand { display: none !important; }
.q-corner .q-float { animation: qBob 3.6s ease-in-out infinite; }
.q-corner .q-float::before { display: none; }
.q-corner .q-shadow { opacity: .5; }
.q-corner .q-legs { transform: none; }
.q-corner .q-arm-r { transform: none; }

.queijinho.q-sheet { display: none; }
.q-bubble { max-width: min(260px, calc(100vw - 24px)); }
@media (max-width: 700px) { .track-link { padding: 6px 10px; font-size: .72rem; } }
@media (max-width: 400px) { .track-link { display: none; } }
.m-steam, .q-steam { contain: layout paint; }

/* ===== fumaça de "quentinho" nos cartões (só nos que aparecem na tela) ===== */
.card-steam { position: absolute; left: 22%; right: 22%; top: 2%; height: 42%; pointer-events: none; z-index: 2; }
.card-steam i { position: absolute; bottom: 0; width: 34%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(255, 255, 255, .5) 0%, rgba(255, 255, 255, .2) 40%, rgba(255, 255, 255, 0) 70%); opacity: 0; animation: p3dRise 3.4s ease-in infinite; animation-play-state: paused; will-change: transform, opacity; }
.card-steam i:nth-child(1) { left: 4%; }
.card-steam i:nth-child(2) { left: 26%; animation-delay: -.9s; animation-duration: 4s; }
.card-steam i:nth-child(3) { left: 48%; animation-delay: -1.7s; }
.card-steam i:nth-child(4) { left: 62%; animation-delay: -2.5s; animation-duration: 4.4s; }
.card.vis .card-steam i { animation-play-state: running; }
.card.soldout .card-steam { display: none; }
.lite .card-steam { display: none; }
.thumb.live .card-steam { display: none; }
@media (prefers-reduced-motion: reduce) { .card-steam { display: none; } }
/* voo da pizza ao carrinho */
.fly { position: fixed; z-index: 95; pointer-events: none; transition: none; will-change: transform, opacity; }
.fly img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 10px 12px rgba(0, 0, 0, .5)); }
.fly-steam { position: absolute; left: 30%; top: 0; width: 40%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(255, 255, 255, .55), rgba(255, 255, 255, 0) 70%); opacity: 0; animation: p3dRise 1s ease-out 2; }
.fly-steam.s2 { left: 10%; animation-delay: .15s; }
.fly-steam.s3 { left: 52%; animation-delay: .3s; }
.badge.pop { animation: badgePop .5s cubic-bezier(.3, 1.8, .5, 1); }
@keyframes badgePop { 0% { transform: scale(1); } 40% { transform: scale(1.6); } 100% { transform: scale(1); } }

/* ===== Modo infantil: por padrão o Queijinho fica parado (só os olhos mexem) ===== */
.queijinho:not(.q-kids) .q-float, .queijinho:not(.q-kids) .q-drip, .queijinho:not(.q-kids) .q-cheek, .queijinho:not(.q-kids) .q-arm-r, .queijinho:not(.q-kids) .q-wing, .queijinho:not(.q-kids) .q-zz text { animation: none !important; }
.queijinho:not(.q-kids) .q-steam { display: none; }
.kids-btn { position: fixed; right: 14px; top: calc(var(--hdr-h, 76px) + 10px); z-index: 44; border: 0; border-radius: 999px; padding: 9px 16px; font: inherit; font-size: .85rem; font-weight: 800; background: #f6b526; color: #2a1806; box-shadow: 0 6px 18px rgba(0,0,0,.35); cursor: pointer; }
.kids-btn.on { background: #ff5d73; color: #fff; }
.queijinho.q-off ~ .kids-btn { display: none; }

/* esconder-fada-som: botoes da fadinha e do som saem do cabecalho */
#mascote-btn, #sound-btn { display: none !important; }
.q-actions [data-q="hide"] { display: none !important; }

/* kids-btn-topo: botao do modo infantil dentro do cabecalho */
.kids-btn { position: static; top: auto; right: auto; z-index: auto; flex: none; display: inline-flex; align-items: center; height: 42px; padding: 0 16px; white-space: nowrap; box-shadow: none; }
@media (max-width: 820px) { .kids-btn { height: 34px; padding: 0 10px; font-size: .75rem; } }
@media (max-width: 520px) { .kids-btn { padding: 0 8px; font-size: .7rem; } }

/* menu-no-inicio: o menu fica no comeco da pagina e rola junto com ela */
.topbar { position: absolute !important; z-index: 60 !important; }


/* vapor-ondulado: fiapos de vapor em S subindo da pizza */
.p3d-steam { left: 14%; right: 14%; top: -10%; height: 66%; }
.p3d-steam span {
  bottom: 0; width: 15%; height: 100%; aspect-ratio: auto; border-radius: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 160'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='1' x2='0' y2='0'%3E%3Cstop offset='0' stop-color='white' stop-opacity='0'/%3E%3Cstop offset='.35' stop-color='white' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='white' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M20 158 C4 130 36 110 20 82 C4 54 36 34 20 2' fill='none' stroke='url(%23g)' stroke-width='7' stroke-linecap='round'/%3E%3C/svg%3E") center bottom / 100% 100% no-repeat;
  transform-origin: 50% 100%; opacity: 0;
  animation: p3dWisp 4.2s ease-in-out infinite; will-change: transform, opacity;
}
.p3d-steam span:nth-child(1) { left: 6%; animation-delay: -.4s; animation-duration: 4.6s; }
.p3d-steam span:nth-child(2) { left: 26%; animation-delay: -1.8s; animation-duration: 3.9s; }
.p3d-steam span:nth-child(3) { left: 46%; animation-delay: -1s; animation-duration: 4.4s; }
.p3d-steam span:nth-child(4) { left: 66%; animation-delay: -2.6s; animation-duration: 4s; }
.p3d-steam span:nth-child(5) { left: 36%; animation-delay: -3.2s; animation-duration: 5s; }
@keyframes p3dWisp {
  0%   { transform: translate(0, 40%) scale(.7, .5); opacity: 0; }
  20%  { opacity: .9; }
  45%  { transform: translate(-14%, 5%) scale(.9, .85); }
  70%  { transform: translate(12%, -30%) scale(1.05, 1.05); opacity: .55; }
  100% { transform: translate(-6%, -70%) scale(1.2, 1.25); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { .p3d-steam { display: none; } }

/* ===== Queijinho reage ao tempo real (chuva, frio, calor, manhã, noite) — animado só com transform/opacity ===== */
.wx { display: none; }
.queijinho[data-wx="chuva"] .wx-chuva, .queijinho[data-wx="frio"] .wx-frio, .queijinho[data-wx="calor"] .wx-calor,
.queijinho[data-wx="manha"] .wx-sono, .queijinho[data-wx="noite"] .wx-sono { display: inline; }
.wx :is(g, path, circle, ellipse, text, rect) { transform-box: view-box; }
.q-corner .wx-rh { transform: translate(9.6px, -14.8px); }
.queijinho[data-wx="chuva"] .q-arm-r, .queijinho[data-wx="calor"] .q-arm-r, .queijinho[data-wx="frio"] .q-arm-r { animation: none !important; }
.queijinho[data-wx="manha"] .q-arm, .queijinho[data-wx="noite"] .q-arm { opacity: 0; }

/* chuva: guarda-chuva balançando, pingos e poça */
.wx-umb { transform-origin: 206px 158px; transform: rotate(-22deg); animation: wxUmb 3s ease-in-out infinite; }
.q-corner .wx-umb { transform: rotate(0deg); animation-name: wxUmbC; }
@keyframes wxUmb { 0%, 100% { transform: rotate(-25deg); } 50% { transform: rotate(-19deg); } }
@keyframes wxUmbC { 0%, 100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
.wx-rain .d { animation: wxDrop .9s linear infinite; }
@keyframes wxDrop { 0% { transform: translateY(0); opacity: 0; } 12% { opacity: 1; } 100% { transform: translateY(340px); opacity: .2; } }
.wx-ripple { transform-origin: 110px 274px; animation: wxRip 1.6s ease-out infinite; }
.wx-ripple.r2 { animation-delay: -.8s; }
@keyframes wxRip { 0% { transform: scale(.3); opacity: 1; } 100% { transform: scale(1.3); opacity: 0; } }

/* frio: tremendo, dentes batendo, bafinho e neve */
.queijinho[data-wx="frio"] .q-body { transform-origin: 110px 250px; animation: wxShiver .14s linear infinite; }
@keyframes wxShiver { 0%, 100% { transform: translate(-1.6px, 0) rotate(-.6deg); } 50% { transform: translate(1.6px, .6px) rotate(.6deg); } }
.wx-pom { transform-origin: 110px -10px; animation: wxSway 1.1s ease-in-out infinite alternate; }
.wx-tail { transform-origin: 92px 216px; animation: wxSway .9s ease-in-out infinite alternate; }
@keyframes wxSway { from { transform: rotate(-7deg); } to { transform: rotate(7deg); } }
.queijinho[data-wx="frio"]:not(.q-talking) .q-mouth { opacity: 0; }
.q-talking .wx-cmouth { display: none; }
.wx-cmouth { transform-origin: 110px 166px; animation: wxMouthCh .3s ease-in-out infinite alternate; }
@keyframes wxMouthCh { from { transform: scaleY(.8); } to { transform: scaleY(1.08); } }
.wx-teeth { animation: wxChat .15s linear infinite; }
@keyframes wxChat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(3px); } }
.wx-breath circle { opacity: 0; animation: wxBreath 2.6s ease-out infinite; }
.wx-breath circle:nth-child(2) { animation-delay: .25s; }
.wx-breath circle:nth-child(3) { animation-delay: .5s; }
@keyframes wxBreath { 0% { transform: translate(0, 0) scale(.4); opacity: 0; } 20% { opacity: .75; } 100% { transform: translate(-46px, -26px) scale(1.7); opacity: 0; } }
.wx-snow .f { animation: wxSnow 6s linear infinite; }
@keyframes wxSnow { 0% { transform: translate(0, 0); opacity: 0; } 10% { opacity: .95; } 50% { transform: translate(12px, 190px); } 100% { transform: translate(-8px, 380px); opacity: .3; } }
.queijinho[data-wx="frio"] .q-cheek { fill: #9CCBFF; opacity: .8; }

/* manhã e noite: touca de dormir, cobertor, bocejo, sonequinha */
.queijinho[data-wx="manha"] .q-body, .queijinho[data-wx="noite"] .q-body { transform-origin: 110px 250px; animation: wxSnoozeBody 4s ease-in-out infinite; }
@keyframes wxSnoozeBody { 0%, 100% { transform: scale(1, 1); } 50% { transform: scale(1.012, 1.022); } }
.wx-cap-pom { transform-origin: 226px 96px; animation: wxSway 2.4s ease-in-out infinite alternate; }
.wx-yawn, .wx-ysq, .wx-snore { display: none; }
.queijinho[data-wx="manha"] .wx-yawn, .queijinho[data-wx="manha"] .wx-ysq { display: inline; }
.queijinho[data-wx="noite"] .wx-snore { display: inline; }
.wx-yawn { opacity: 0; transform-origin: 110px 170px; animation: wxYawn 8s ease-in-out infinite; }
.wx-ysq { opacity: 0; animation: wxYsq 8s ease-in-out infinite; }
@keyframes wxYawn { 0%, 74% { opacity: 0; transform: scale(.3); } 80%, 92% { opacity: 1; transform: scale(1); } 98%, 100% { opacity: 0; transform: scale(.4); } }
@keyframes wxYsq { 0%, 74% { opacity: 0; } 79%, 93% { opacity: 1; } 98%, 100% { opacity: 0; } }
.queijinho[data-wx="manha"] .q-lid { animation: wxLid 8s ease-in-out infinite; }
@keyframes wxLid { 0%, 28% { transform: scaleY(.5); } 32% { transform: scaleY(1); } 37%, 58% { transform: scaleY(.5); } 62% { transform: scaleY(1); } 67%, 100% { transform: scaleY(.5); } }
.queijinho[data-wx="noite"]:not(.q-woke) .q-eyes-open { opacity: 0; }
.queijinho[data-wx="noite"]:not(.q-woke) .q-eyes-sleep { opacity: 1; }
.queijinho[data-wx="noite"]:not(.q-woke) .q-zz { opacity: 1; }
.queijinho[data-wx="noite"] .q-zz text { animation: qZ 2.4s ease-in-out infinite !important; }
.queijinho[data-wx="noite"] .q-zz text:nth-child(2) { animation-delay: -1.2s !important; }
.wx-snore { transform-origin: 92px 166px; animation: wxSnore 3.2s ease-in-out infinite; }
@keyframes wxSnore { 0%, 100% { transform: scale(.25); opacity: .9; } 55% { transform: scale(1.25); opacity: 1; } 62% { transform: scale(1.4); opacity: 0; } }

/* ===== calor: tudo se mexe — ele bebe o guaraná de verdade, abana o leque, sol de óculos, suor escorrendo ===== */
.queijinho[data-wx="calor"] .q-arm { opacity: 0; }
.queijinho[data-wx="calor"] .q-arm-r, .queijinho[data-wx="calor"] .q-arm-l { animation: none !important; }
.queijinho.q-corner[data-wx="calor"] .wx-rh { transform: none; }
.queijinho[data-wx="calor"] .q-cheek { fill: #FF3B2E; opacity: .9; }
.queijinho[data-wx="calor"] .q-body { transform-origin: 110px 250px; animation: wxPant 1.3s ease-in-out infinite; }
@keyframes wxPant { 0%, 100% { transform: scale(1, 1); } 50% { transform: scale(1.025, .975) rotate(-.6deg); } }
.wx-sun { animation: wxSunPulse 2.4s ease-in-out infinite; }
.wx-rays { animation: wxSpin 7s linear infinite; }
@keyframes wxSpin { to { transform: rotate(360deg); } }
@keyframes wxSunPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.12); } }
.wx-heat { animation: wxHeat 2s ease-in-out infinite; }
.wx-heat path:nth-child(2) { animation: wxHeatW 1.4s ease-in-out infinite; }
@keyframes wxHeat { 0%, 100% { opacity: 0; transform: translateY(10px); } 50% { opacity: .85; transform: translateY(-6px); } }
@keyframes wxHeatW { 0%, 100% { transform: translateX(-3px); } 50% { transform: translateX(3px); } }
.wx-sweat path { transform-box: fill-box; transform-origin: 50% 0; animation: wxSweat 1.7s ease-in infinite; }
.wx-sweat .s2 { animation-delay: -.35s; }
.wx-sweat .s3 { animation-delay: -.7s; }
.wx-sweat .s4 { animation-delay: -1.05s; }
.wx-sweat .s5 { animation-delay: -1.4s; }
@keyframes wxSweat { 0% { transform: translateY(-6px) scale(.5); opacity: 0; } 18% { transform: translateY(0) scale(1); opacity: 1; } 80% { opacity: .9; } 100% { transform: translateY(58px) scale(.9, 1.25); opacity: 0; } }
/* o gole: o braço leva o copo até a boca, o suco desce pelo canudo, os olhos fecham de prazer e a bochecha incha */
.wx-armL { transform-origin: 44px 128px; transform: rotate(135deg); animation: wxArm 5s ease-in-out infinite; }
@keyframes wxArm { 0%, 26% { transform: rotate(135deg) scale(1, 1); } 40%, 76% { transform: rotate(70deg) scale(1.1, 1); } 90%, 100% { transform: rotate(135deg) scale(1, 1); } }
.wx-glass { transform-origin: 14px 158px; animation: wxGlass 5s ease-in-out infinite; }
@keyframes wxGlass { 0%, 26% { transform: translate(0, 0) rotate(0deg); } 40%, 76% { transform: translate(46px, 14px) rotate(-10deg); } 90%, 100% { transform: translate(0, 0) rotate(0deg); } }
.wx-gulp { animation: wxGulp 5s ease-in-out infinite; }
@keyframes wxGulp { 0%, 40% { transform: translateY(0); } 46% { transform: translateY(3px); } 52% { transform: translateY(0); } 58% { transform: translateY(3px); } 64% { transform: translateY(0); } 70% { transform: translateY(3px); } 76%, 100% { transform: translateY(0); } }
.liq { transform-origin: 14px 164px; animation: wxLiq 5s ease-in-out infinite; }
@keyframes wxLiq { 0%, 40% { transform: scaleY(1); } 76%, 88% { transform: scaleY(.42); } 100% { transform: scaleY(1); } }
.wx-flow { opacity: 0; animation: wxFlow 5s linear infinite, wxDash .45s linear infinite; }
@keyframes wxFlow { 0%, 42% { opacity: 0; } 48%, 76% { opacity: 1; } 82%, 100% { opacity: 0; } }
@keyframes wxDash { to { stroke-dashoffset: -32; } }
.wx-sipeyes { opacity: 0; animation: wxSipEyes 5s ease-in-out infinite; }
@keyframes wxSipEyes { 0%, 42% { opacity: 0; } 48%, 76% { opacity: 1; } 84%, 100% { opacity: 0; } }
.wx-puff { transform-box: fill-box; transform-origin: 100% 50%; opacity: 0; animation: wxPuff 5s ease-in-out infinite; }
@keyframes wxPuff { 0%, 42% { opacity: 0; transform: scale(.5); } 50%, 58%, 66%, 74% { opacity: .8; transform: scale(1.25); } 54%, 62%, 70% { transform: scale(.9); } 84%, 100% { opacity: 0; transform: scale(.5); } }
.ice { transform-box: fill-box; transform-origin: 50% 50%; animation: wxIce .7s ease-in-out infinite alternate; }
.ice.i2 { animation-delay: -.35s; animation-duration: .9s; }
@keyframes wxIce { from { transform: translateY(0) rotate(-9deg); } to { transform: translateY(-5px) rotate(11deg); } }
.wx-bub circle { transform-box: fill-box; animation: wxBub 1.1s ease-in infinite; }
.wx-bub .b2 { animation-delay: -.3s; }
.wx-bub .b3 { animation-delay: -.6s; }
.wx-bub .b4 { animation-delay: -.85s; }
@keyframes wxBub { 0% { transform: translateY(0) scale(.7); opacity: 1; } 100% { transform: translateY(-34px) scale(1.2); opacity: 0; } }
/* o leque: o braço inteiro balança e o leque bate junto, com vento */
.wx-rhs { transform-origin: 176px 128px; animation: wxRhs .34s ease-in-out infinite alternate; }
@keyframes wxRhs { from { transform: rotate(-12deg); } to { transform: rotate(8deg); } }
.wx-fan { transform-origin: 206px 158px; animation: wxFan .34s ease-in-out infinite alternate; }
@keyframes wxFan { from { transform: rotate(-26deg); } to { transform: rotate(20deg); } }
.wx-wind { animation: wxWind .5s ease-out infinite; }
.wx-wind path:nth-child(2) { animation: wxWind2 .5s ease-out infinite .12s; }
@keyframes wxWind { 0% { opacity: 0; transform: translateX(14px); } 40% { opacity: .95; } 100% { opacity: 0; transform: translateX(-30px); } }
@keyframes wxWind2 { 0% { opacity: 0; transform: translateX(14px); } 40% { opacity: .9; } 100% { opacity: 0; transform: translateX(-34px); } }

/* manhã / noite / chuva / frio: o ambiente também mexe */
.wx-night, .wx-morning { display: none; }
.queijinho[data-wx="noite"] .wx-night, .queijinho[data-wx="manha"] .wx-morning { display: inline; }
.wx-moon { transform-origin: 6px 0; animation: wxMoon 4s ease-in-out infinite; }
@keyframes wxMoon { 0%, 100% { transform: rotate(-7deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-5px); } }
.wx-stars path { transform-box: fill-box; transform-origin: 50% 50%; animation: wxTwinkle 1.6s ease-in-out infinite; }
.wx-stars path:nth-child(2) { animation-delay: -.4s; }
.wx-stars path:nth-child(3) { animation-delay: -.8s; }
.wx-stars path:nth-child(4) { animation-delay: -1.2s; }
.wx-stars path:nth-child(5) { animation-delay: -.6s; }
@keyframes wxTwinkle { 0%, 100% { transform: scale(.4) rotate(0deg); opacity: .4; } 50% { transform: scale(1.3) rotate(45deg); opacity: 1; } }
.wx-sunrise { animation: wxSunrise 8s ease-in-out infinite; }
@keyframes wxSunrise { 0% { transform: translateY(46px) scale(.8); opacity: 0; } 25%, 85% { transform: translateY(0) scale(1); opacity: 1; } 100% { transform: translateY(0) scale(1.05); opacity: 1; } }
.wx-cloud { animation: wxCloud 4.5s ease-in-out infinite; }
.wx-cloud.c2 { animation-delay: -2s; animation-duration: 5.2s; }
@keyframes wxCloud { 0%, 100% { transform: translate(-7px, 0); } 50% { transform: translate(9px, -4px); } }
.queijinho[data-wx="chuva"] .q-body { transform-origin: 110px 250px; animation: wxBounce .8s ease-in-out infinite; }
@keyframes wxBounce { 0%, 100% { transform: translateY(0) scale(1, 1); } 50% { transform: translateY(-7px) scale(.98, 1.03); } }
.queijinho[data-wx="manha"] .q-body, .queijinho[data-wx="noite"] .q-body { animation-duration: 3s; }
@keyframes wxSnoozeBody { 0%, 100% { transform: scale(1, 1); } 50% { transform: scale(1.03, 1.05); } }

/* ===== ajuste calmo: menos movimentos ao mesmo tempo, mais lentos e suaves (nada de tique) ===== */
.queijinho[data-wx="calor"] .q-body { animation: wxPant 3.2s ease-in-out infinite; }
@keyframes wxPant { 0%, 100% { transform: scale(1, 1); } 50% { transform: scale(1.012, .99); } }
.wx-rays { animation-duration: 16s; }
.wx-sun { animation: wxSunPulse 3.6s ease-in-out infinite; }
@keyframes wxSunPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }
.wx-sweat path { animation-duration: 3s; }
.wx-sweat .s2 { animation-delay: -1s; }
.wx-sweat .s3 { animation-delay: -2s; }
.wx-rhs { animation: wxRhs .7s ease-in-out infinite alternate; }
@keyframes wxRhs { from { transform: rotate(-7deg); } to { transform: rotate(5deg); } }
.wx-fan { animation: wxFan .7s ease-in-out infinite alternate; }
@keyframes wxFan { from { transform: rotate(-16deg); } to { transform: rotate(12deg); } }
.wx-wind { animation-duration: 1.4s; }
.wx-wind path:nth-child(2) { animation-duration: 1.4s; animation-delay: .35s; }
.ice { animation-duration: 1.8s; }
.ice.i2 { animation-duration: 2.2s; animation-delay: -.9s; }
@keyframes wxIce { from { transform: translateY(0) rotate(-5deg); } to { transform: translateY(-3px) rotate(6deg); } }
.wx-bub circle { animation-duration: 2.2s; }
.wx-bub .b2 { animation-delay: -1.1s; }
@keyframes wxGulp { 0%, 44% { transform: translateY(0); } 52% { transform: translateY(2px); } 60% { transform: translateY(0); } 68% { transform: translateY(2px); } 76%, 100% { transform: translateY(0); } }
.wx-gulp { animation-timing-function: ease-in-out; }
.wx-flow { animation: wxFlow 5s linear infinite, wxDash .9s linear infinite; }
/* biquinho chupando o canudo: a boca de sorriso some, entram os lábios e as bochechas afundam */
.wx-pucker, .wx-hollow { opacity: 0; animation: wxSipOn 5s ease-in-out infinite; }
@keyframes wxSipOn { 0%, 40% { opacity: 0; } 46%, 74% { opacity: 1; } 80%, 100% { opacity: 0; } }
.queijinho[data-wx="calor"] .q-mouth { animation: wxMouthOff 5s ease-in-out infinite; }
@keyframes wxMouthOff { 0%, 40% { opacity: 1; } 46%, 74% { opacity: 0; } 80%, 100% { opacity: 1; } }
.wx-pucker .pl { transform-box: fill-box; transform-origin: 50% 50%; animation: wxSuck .8s ease-in-out infinite alternate; }
@keyframes wxSuck { from { transform: scale(.88); } to { transform: scale(1.06); } }
/* quando ele fala, tira o canudo da boca e volta ao normal */
.queijinho.q-talking[data-wx="calor"] .wx-armL, .queijinho.q-talking[data-wx="calor"] .wx-glass, .queijinho.q-talking[data-wx="calor"] .wx-gulp, .queijinho.q-talking[data-wx="calor"] .liq,
.queijinho.q-talking[data-wx="calor"] .wx-flow, .queijinho.q-talking[data-wx="calor"] .wx-sipeyes, .queijinho.q-talking[data-wx="calor"] .wx-hollow, .queijinho.q-talking[data-wx="calor"] .wx-pucker,
.queijinho.q-talking[data-wx="calor"] .q-mouth { animation: none; }
/* outros climas: movimentos mais calmos */
.queijinho[data-wx="chuva"] .q-body { animation: wxBounce 1.4s ease-in-out infinite; }
@keyframes wxBounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
.wx-rain .d { animation-duration: 1.1s; }
@keyframes wxSnoozeBody { 0%, 100% { transform: scale(1, 1); } 50% { transform: scale(1.02, 1.03); } }
/* o canudo chega exatamente nos lábios */
@keyframes wxArm { 0%, 26% { transform: rotate(135deg) scale(1, 1); } 40%, 76% { transform: rotate(67.8deg) scale(1.375, 1); } 90%, 100% { transform: rotate(135deg) scale(1, 1); } }
@keyframes wxGlass { 0%, 26% { transform: translate(0, 0) rotate(0deg); } 40%, 76% { transform: translate(52px, 24px) rotate(-10deg); } 90%, 100% { transform: translate(0, 0) rotate(0deg); } }

/* ===== gole controlado por UM estado (.q-sip, ligado pelo JS): transições suaves, sem relógios CSS brigando ===== */
.queijinho[data-wx="calor"] .q-mouth, .wx-armL, .wx-glass, .wx-gulp, .liq, .wx-flow, .wx-sipeyes, .wx-hollow, .wx-pucker { animation: none; }
.queijinho.q-talking[data-wx="calor"] .q-mouth { animation: none; }
.wx-armL { transform: rotate(135deg) scale(1, 1); transition: transform .55s cubic-bezier(.4, 0, .2, 1); }
.q-sip .wx-armL { transform: rotate(67.8deg) scale(1.375, 1); }
.wx-glass { transform: none; transition: transform .55s cubic-bezier(.4, 0, .2, 1); }
.q-sip .wx-glass { transform: translate(52px, 24px) rotate(-10deg); }
.wx-sipeyes, .wx-pucker, .wx-hollow { opacity: 0; transition: opacity .2s ease; }
.q-sip .wx-sipeyes, .q-sip .wx-pucker, .q-sip .wx-hollow { opacity: 1; transition-delay: .5s; }
.queijinho[data-wx="calor"] .q-mouth { opacity: 1; transition: opacity .15s ease; }
.queijinho.q-sip[data-wx="calor"] .q-mouth { opacity: 0; transition-delay: .5s; }
.liq { transform: scaleY(1); transition: transform .5s ease; }
.q-sip .liq { transform: scaleY(.42); transition: transform 2.1s linear .6s; }
.wx-flow { opacity: 0; transition: opacity .2s; animation: wxDash .9s linear infinite; }
.q-sip .wx-flow { opacity: 1; transition-delay: .6s; }
.q-sip .wx-gulp { animation: wxGulp 2.4s ease-in-out 1 .5s; }

/* ===== velocidade geral do tempo: --wx-t (padrão 2,5 = 2,5x mais devagar; ?vel=4 deixa ainda mais lento) ===== */
.queijinho { --wx-t: 1.2; }
.queijinho .wx-sun { animation-duration: calc(3.6s * var(--wx-t)); }
.queijinho .wx-rays { animation-duration: calc(16s * var(--wx-t)); }
.queijinho[data-wx="calor"] .q-body { animation-duration: calc(3.2s * var(--wx-t)); }
.queijinho .wx-sweat path { animation-duration: calc(3s * var(--wx-t)); }
.queijinho .wx-sweat .s2 { animation-delay: calc(-1s * var(--wx-t)); }
.queijinho .wx-sweat .s3 { animation-delay: calc(-2s * var(--wx-t)); }
.queijinho .wx-rhs, .queijinho .wx-fan { animation-duration: calc(.7s * var(--wx-t)); }
.queijinho .wx-wind { animation-duration: calc(1.4s * var(--wx-t)); }
.queijinho .wx-wind path:nth-child(2) { animation-duration: calc(1.4s * var(--wx-t)); animation-delay: calc(.35s * var(--wx-t)); }
.queijinho .ice { animation-duration: calc(1.8s * var(--wx-t)); }
.queijinho .ice.i2 { animation-duration: calc(2.2s * var(--wx-t)); animation-delay: calc(-.9s * var(--wx-t)); }
.queijinho .wx-bub circle { animation-duration: calc(2.2s * var(--wx-t)); }
.queijinho .wx-bub .b2 { animation-delay: calc(-1.1s * var(--wx-t)); }
.queijinho .wx-pucker .pl { animation-duration: calc(.8s * var(--wx-t)); }
.queijinho .wx-flow { animation-duration: calc(.9s * var(--wx-t)); }
.queijinho .wx-armL, .queijinho .wx-glass { transition-duration: calc(.55s * var(--wx-t)); }
.queijinho .q-sip .wx-gulp, .queijinho.q-sip .wx-gulp { animation-duration: calc(2.4s * var(--wx-t)); animation-delay: calc(.5s * var(--wx-t)); }
.queijinho.q-sip .liq { transition-duration: calc(2.1s * var(--wx-t)); transition-delay: calc(.6s * var(--wx-t)); }
.queijinho .wx-cloud { animation-duration: calc(4.5s * var(--wx-t)); }
.queijinho .wx-cloud.c2 { animation-duration: calc(5.2s * var(--wx-t)); animation-delay: calc(-2s * var(--wx-t)); }
.queijinho .wx-rain .d { animation-duration: calc(1.1s * var(--wx-t)) !important; }
.queijinho .wx-ripple { animation-duration: calc(1.6s * var(--wx-t)); }
.queijinho .wx-ripple.r2 { animation-delay: calc(-.8s * var(--wx-t)); }
.queijinho[data-wx="chuva"] .q-body { animation-duration: calc(1.4s * var(--wx-t)); }
.queijinho .wx-umb { animation-duration: calc(3s * var(--wx-t)); }
.queijinho .wx-snow .f { animation-duration: calc(6s * var(--wx-t)); }
.queijinho .wx-pom, .queijinho .wx-tail { animation-duration: calc(1.1s * var(--wx-t)); }
.queijinho .wx-cmouth { animation-duration: calc(.3s * var(--wx-t)); }
.queijinho .wx-teeth { animation-duration: calc(.15s * var(--wx-t)); }
.queijinho[data-wx="frio"] .q-body { animation-duration: calc(.14s * var(--wx-t)); }
.queijinho .wx-breath circle { animation-duration: calc(2.6s * var(--wx-t)); }
.queijinho .wx-moon { animation-duration: calc(4s * var(--wx-t)); }
.queijinho .wx-stars path { animation-duration: calc(1.6s * var(--wx-t)); }
.queijinho .wx-sunrise { animation-duration: calc(8s * var(--wx-t)); }
.queijinho[data-wx="manha"] .q-body, .queijinho[data-wx="noite"] .q-body { animation-duration: calc(3s * var(--wx-t)); }
.queijinho .wx-cap-pom { animation-duration: calc(2.4s * var(--wx-t)); }
.queijinho .wx-snore { animation-duration: calc(3.2s * var(--wx-t)); }
.queijinho .wx-yawn, .queijinho .wx-ysq { animation-duration: calc(8s * var(--wx-t)); }
.queijinho[data-wx="manha"] .q-lid { animation-duration: calc(8s * var(--wx-t)); }

/* ===== noite: dorme roncando; se acordarem, leva um susto e fala sonolento ===== */
.queijinho[data-wx="noite"]:not(.q-woke):not(.q-talking) .q-mouth { opacity: 0; }
.queijinho[data-wx="noite"]:not(.q-woke):not(.q-talking) .q-mouth-o { opacity: 1; transform-box: fill-box; transform-origin: 50% 50%; transform: scale(.5, .4); transition: transform .3s; }
.queijinho.q-snoring[data-wx="noite"] .q-mouth-o { animation: wxSnoreMouth 2.4s ease-in-out 1; }
@keyframes wxSnoreMouth { 0%, 100% { transform: scale(.5, .4); } 30% { transform: scale(.42, .3); } 38%, 78% { transform: scale(.85, .95); } }
.wx-snore { animation: none; transform: scale(.2); opacity: 0; }
.queijinho.q-snoring .wx-snore { animation: wxSnoreBubble 2.4s ease-in-out 1; }
@keyframes wxSnoreBubble { 0% { transform: scale(.2); opacity: .9; } 36% { transform: scale(.2); opacity: .9; } 78% { transform: scale(1.5); opacity: 1; } 86% { transform: scale(1.65); opacity: 0; } 100% { transform: scale(.2); opacity: 0; } }
.queijinho.q-snoring .q-body { animation: wxSnoreBody 2.4s ease-in-out 1; }
@keyframes wxSnoreBody { 0% { transform: scale(1, 1); } 34% { transform: scale(1.045, 1.075); } 44% { transform: scale(1.045, 1.075); } 80% { transform: scale(.985, .97); } 100% { transform: scale(1, 1); } }
.queijinho.q-snoring .q-zz { opacity: 1; }
.queijinho.q-drowsy .q-lid { transform: scaleY(.55); }
.queijinho.q-startle .q-tilt { animation: wxStartle .85s cubic-bezier(.3, 1.4, .5, 1); }
@keyframes wxStartle { 0% { transform: none; } 16% { transform: translateY(-36px) scale(.9, 1.16) rotate(-5deg); } 34% { transform: translateY(5px) scale(1.1, .88); } 52% { transform: translateY(-9px) rotate(4deg); } 72% { transform: translateY(1px) rotate(-2deg); } 100% { transform: none; } }
.queijinho.q-startle .q-pupil circle:first-child { r: 4.6px; }
.queijinho.q-startle .q-eye ellipse:first-child { transform-box: fill-box; transform-origin: 50% 50%; transform: scale(1.12); }
.wx-bang { opacity: 0; transform-origin: 198px 4px; }
.queijinho.q-startle .wx-bang { animation: wxBang .9s ease-out; }
@keyframes wxBang { 0% { opacity: 0; transform: scale(.2) rotate(-12deg); } 22% { opacity: 1; transform: scale(1.25) rotate(6deg); } 70% { opacity: 1; transform: scale(1) rotate(0); } 100% { opacity: 0; transform: scale(1) rotate(0); } }
.queijinho.q-startle .q-lid { transform: scaleY(0); }
.queijinho.q-startle .q-brow { transform: translateY(-9px); }

/* ===== climas novos: dia de sol, noite estrelada, tempestade e neblina ===== */
.queijinho[data-wx="sol"] .wx-sol, .queijinho[data-wx="estrelas"] .wx-estrelas,
.queijinho[data-wx="tempestade"] .wx-chuva, .queijinho[data-wx="tempestade"] .wx-tempestade, .queijinho[data-wx="neblina"] .wx-neblina { display: inline; }
.queijinho[data-wx="tempestade"] .q-arm-r { animation: none !important; }
/* sol: raios girando, borboleta, brilhinhos e o boneco dançando de leve */
.wx-sol .wx-rays { transform-box: fill-box; transform-origin: center; animation: wxSpinRays 14s linear infinite; }
@keyframes wxSpinRays { to { transform: rotate(360deg); } }
.wx-sol .wx-sun { transform-box: fill-box; transform-origin: center; animation: wxSunPulse2 2.6s ease-in-out infinite; }
@keyframes wxSunPulse2 { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.1); } }
.wx-butterfly { animation: wxFly 9s ease-in-out infinite; }
@keyframes wxFly { 0% { transform: translate(0, 0); } 20% { transform: translate(60px, -26px); } 40% { transform: translate(120px, 8px); } 60% { transform: translate(170px, -20px); } 80% { transform: translate(90px, 30px); } 100% { transform: translate(0, 0); } }
.wx-bflap { transform-box: fill-box; transform-origin: 50% 50%; animation: wxFlap .22s ease-in-out infinite alternate; }
@keyframes wxFlap { from { transform: scaleX(1); } to { transform: scaleX(.35); } }
.wx-spark path { transform-box: fill-box; transform-origin: 50% 50%; animation: wxTwinkle 1.8s ease-in-out infinite; }
.wx-spark path:nth-child(2) { animation-delay: -.6s; } .wx-spark path:nth-child(3) { animation-delay: -1.2s; }
.queijinho[data-wx="sol"] .q-body { transform-origin: 110px 250px; animation: wxDance 2.4s ease-in-out infinite; }
@keyframes wxDance { 0%, 100% { transform: rotate(-2.2deg) translateY(0); } 25% { transform: rotate(0deg) translateY(-6px); } 50% { transform: rotate(2.2deg) translateY(0); } 75% { transform: rotate(0deg) translateY(-6px); } }
.queijinho[data-wx="sol"] .q-cheek { fill: #FF8A5C; opacity: .85; }
/* noite estrelada (loja aberta): lua balançando, estrelas piscando e estrela cadente */
.wx-estrelas .wx-moon { transform-origin: 6px 0; animation: wxMoon 4s ease-in-out infinite; }
.wx-shoot { stroke-dasharray: 60; stroke-dashoffset: 60; opacity: 0; animation: wxShoot 5s ease-in infinite; }
@keyframes wxShoot { 0%, 70% { transform: translate(0, 0); stroke-dashoffset: 60; opacity: 0; } 72% { opacity: 1; } 90% { transform: translate(-70px, 34px); stroke-dashoffset: 0; opacity: 1; } 100% { transform: translate(-90px, 44px); stroke-dashoffset: -30; opacity: 0; } }
.queijinho[data-wx="estrelas"] .q-body { transform-origin: 110px 250px; animation: wxStarSway 3.6s ease-in-out infinite; }
@keyframes wxStarSway { 0%, 100% { transform: rotate(-1.4deg); } 50% { transform: rotate(1.4deg) translateY(-4px); } }
/* tempestade: nuvens escuras, raios, clarões e boneco assustado */
.wx-flash { opacity: 0; animation: wxFlashBg 4.2s linear infinite; pointer-events: none; }
@keyframes wxFlashBg { 0%, 88% { opacity: 0; } 89% { opacity: .5; } 91% { opacity: .05; } 93% { opacity: .38; } 100% { opacity: 0; } }
.wx-bolt { opacity: 0; animation: wxBoltOn 4.2s linear infinite; }
.wx-bolt.b2 { animation-delay: -2.1s; }
@keyframes wxBoltOn { 0%, 88% { opacity: 0; } 89% { opacity: 1; } 91% { opacity: .2; } 93% { opacity: 1; } 96%, 100% { opacity: 0; } }
.queijinho[data-wx="tempestade"] .q-body { transform-origin: 110px 250px; animation: wxStorm .5s ease-in-out infinite; }
@keyframes wxStorm { 0%, 100% { transform: translate(-1.2px, 0) rotate(-1deg); } 50% { transform: translate(1.2px, -2px) rotate(1deg); } }
.queijinho[data-wx="tempestade"] .q-cheek { fill: #9CCBFF; opacity: .8; }
/* neblina: bancos de névoa passando */
.wx-fog ellipse { animation: wxFogMove 9s ease-in-out infinite alternate; }
.wx-fog .fg2 { animation-duration: 12s; animation-delay: -4s; } .wx-fog .fg3 { animation-duration: 10s; animation-delay: -7s; }
@keyframes wxFogMove { from { transform: translateX(-26px); } to { transform: translateX(34px); } }
.queijinho[data-wx="neblina"] .q-body { transform-origin: 110px 250px; animation: wxStarSway 4.4s ease-in-out infinite; }
/* não deixa "reduzir movimento" do aparelho parar o boneco do clima */
.queijinho .wx *, .queijinho[data-wx] .q-body { animation-play-state: running !important; }


body:has(.chat-panel:not(.hidden)) .queijinho { display: none !important; } /* chat aberto: o avatar sai da frente da conversa (celular e computador) */
