/* Sweet Jogos: Caça à Sweet e Memória Sweet */
.sj-svg{display:block;width:100%;height:auto;overflow:visible}
.sj-olho{transform-box:fill-box;transform-origin:center;animation:sjPisca 4.2s infinite}
@keyframes sjPisca{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}

/* Pílula de progresso (todas as páginas) */
.sj-badge{position:fixed;left:14px;bottom:14px;z-index:60;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid rgba(169,113,60,.28);border-radius:999px;padding:5px 14px 5px 6px;box-shadow:0 8px 22px rgba(90,58,38,.16);text-decoration:none;color:#4B3A2E;font-size:.78rem;line-height:1.15;transition:transform .2s}
.sj-badge:hover{transform:translateY(-2px)}
.sj-badge-ico{width:34px;height:36px;flex:none;background:#FCE9EC;border-radius:50%;padding:3px 2px 0;display:block}
.sj-badge-txt{display:flex;flex-direction:column}.sj-badge-txt b{font-weight:700;font-size:.78rem}.sj-badge-txt small{color:#8a6a4c;font-size:.72rem}
.sj-pulsa{animation:sjPulsa .9s ease 2}@keyframes sjPulsa{50%{transform:scale(1.12);box-shadow:0 0 0 8px rgba(242,169,184,.35)}}
.sj-dica{position:fixed;left:14px;bottom:66px;z-index:61;max-width:250px;background:#4B3A2E;color:#fff;border-radius:16px 16px 16px 4px;padding:10px 14px;font-size:.8rem;line-height:1.4;box-shadow:0 10px 26px rgba(0,0,0,.25);animation:sjDica .5s ease}
.sj-dica b{color:#F6C453}.sj-dica-sai{opacity:0;transform:translateY(6px);transition:.5s}
@keyframes sjDica{from{opacity:0;transform:translateY(10px)}}

/* A Sweet a passear pela página */
.sj-sweet{position:absolute;z-index:55;width:72px;height:79px;padding:0;border:0;background:none;cursor:pointer;left:-100px;top:-100px;opacity:0;transform:scale(.2);filter:drop-shadow(0 6px 8px rgba(90,58,38,.28));transition:left 3.2s cubic-bezier(.45,.05,.25,1),top 3.2s cubic-bezier(.45,.05,.25,1),opacity .5s,transform .5s}
.sj-sweet.sj-visivel{opacity:1;transform:scale(1)}
.sj-sweet .sj-svg{animation:sjSalta 1s ease-in-out infinite;transform-origin:50% 100%}
.sj-sweet.sj-esq .sj-svg{transform:scaleX(-1)}
.sj-sweet:hover .sj-svg,.sj-sweet:focus-visible .sj-svg{animation-duration:.45s}
.sj-sweet:focus-visible{outline:3px solid #F6C453;outline-offset:4px;border-radius:14px}
@keyframes sjSalta{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-9px) rotate(4deg)}}
.sj-sweet.sj-apanhada{transition:transform .6s ease,opacity .6s ease;transform:scale(1.7) rotate(360deg);opacity:0;pointer-events:none}
@media (prefers-reduced-motion:reduce){.sj-sweet,.sj-sweet .sj-svg,.sj-pulsa{animation:none;transition:none}}

/* Avisos e janela do prémio */
.sj-toast{position:fixed;left:50%;top:86px;z-index:90;transform:translateX(-50%);background:#fff;border:1px solid rgba(169,113,60,.3);border-radius:16px;padding:12px 18px;box-shadow:0 14px 34px rgba(90,58,38,.22);font-size:.9rem;color:#4B3A2E;max-width:min(92vw,420px);text-align:center;animation:sjToast .45s ease}
.sj-toast-sai{opacity:0;transition:opacity .5s}@keyframes sjToast{from{opacity:0;transform:translate(-50%,-12px)}}
.sj-modal{position:fixed;inset:0;z-index:100;background:rgba(60,40,28,.55);display:flex;align-items:center;justify-content:center;padding:18px;animation:sjFade .3s}
@keyframes sjFade{from{opacity:0}}
.sj-modal-caixa{background:linear-gradient(160deg,#FFF9F0,#FCE9EC);border-radius:26px;max-width:430px;width:100%;padding:24px 22px 22px;text-align:center;box-shadow:0 30px 70px rgba(0,0,0,.35);animation:sjSobe .5s cubic-bezier(.2,.9,.3,1.2)}
@keyframes sjSobe{from{opacity:0;transform:translateY(30px) scale(.9)}}
.sj-modal-mascote{width:110px;margin:-62px auto 6px;filter:drop-shadow(0 8px 10px rgba(90,58,38,.25))}.sj-modal-mascote .sj-svg{animation:sjSalta 1.1s ease-in-out infinite}
.sj-modal h2{font:600 1.45rem 'Playfair Display',serif;margin:6px 0;color:#4B3A2E}
.sj-modal p{margin:0 0 12px;color:#6b5646}
.sj-codigo{display:flex;align-items:center;justify-content:center;gap:10px;background:#fff;border:2px dashed #A9713C;border-radius:16px;padding:12px;margin:8px 0}
.sj-codigo b{font:700 1.4rem 'Montserrat',sans-serif;letter-spacing:.12em;color:#A9713C;user-select:all}
.sj-copiar{border:0;background:#A9713C;color:#fff;border-radius:999px;padding:7px 14px;font-weight:600;cursor:pointer;font-size:.8rem}
.sj-modal small{display:block;color:#8a6a4c;font-size:.76rem;margin:6px 0 14px}
.sj-modal-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.sj-confetti{position:fixed;inset:0;z-index:110;pointer-events:none;overflow:hidden}
.sj-confetti i{position:absolute;top:-20px;border-radius:2px;animation:sjCai linear forwards}
@keyframes sjCai{to{top:110vh;transform:rotate(720deg) translateX(40px)}}

/* Página dos jogos */
.sj-hero{text-align:center;padding:26px 0 8px}
.sj-hero .sj-hero-mascote{width:128px;margin:0 auto 6px;filter:drop-shadow(0 10px 12px rgba(90,58,38,.22))}.sj-hero .sj-svg{animation:sjSalta 1.6s ease-in-out infinite}
.sj-hero h1{font:600 clamp(1.9rem,4.5vw,2.8rem) 'Playfair Display',serif;margin:6px 0;color:#4B3A2E}.sj-hero h1 em{color:#A9713C;font-style:normal}
.sj-hero p{max-width:620px;margin:6px auto;color:#6b5646}
.sj-cartoes{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;margin:22px 0}
.sj-cartao{background:linear-gradient(160deg,#FFF9F0,#FCE9EC);border:1px solid rgba(169,113,60,.22);border-radius:26px;padding:22px;box-shadow:0 12px 30px rgba(90,58,38,.08)}
.sj-cartao h2{font:600 1.4rem 'Playfair Display',serif;margin:0 0 6px;color:#4B3A2E}
.sj-tag{display:inline-block;background:#F6C453;color:#4B3A2E;border-radius:999px;padding:3px 12px;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px}
.sj-estado{border-radius:16px;padding:12px 14px;margin:12px 0 0;font-size:.9rem}
.sj-estado.ok{background:#E9F2DF;border:1px solid rgba(120,160,95,.4);color:#3F6B33}.sj-estado.espera{background:#fff;border:1px solid rgba(169,113,60,.25);color:#6b5646}
.sj-estado .sj-codigo{margin:8px 0 0}
.sj-passos{margin:10px 0 0;padding-left:20px;color:#6b5646;font-size:.9rem;line-height:1.6}
.sj-barra{height:10px;border-radius:99px;background:rgba(169,113,60,.15);overflow:hidden;margin:10px 0 4px}.sj-barra i{display:block;height:100%;background:linear-gradient(90deg,#F5A796,#F6C453);border-radius:99px}

/* Memória Sweet */
.mem-area{margin-top:14px}
.mem-topo{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;font-weight:600;color:#4B3A2E}
.mem-tempo{flex:1;height:14px;border-radius:99px;background:rgba(169,113,60,.15);overflow:hidden}
.mem-tempo i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#8FBF7F,#F6C453 60%,#E26A6A);border-radius:99px;transform-origin:left;transition:transform .2s linear}
.mem-seg{min-width:44px;text-align:right;font:700 1.1rem 'Montserrat',sans-serif}.mem-seg.urgente{color:#C0392B;animation:sjPulsa .5s infinite}
.mem-msg{text-align:center;min-height:24px;margin:8px 0;color:#6b5646;font-weight:600}
.mem-tabuleiro{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:420px;margin:0 auto;perspective:900px}
.mem-carta{position:relative;aspect-ratio:1;border:0;background:none;padding:0;cursor:pointer;transform-style:preserve-3d;transition:transform .45s cubic-bezier(.3,.7,.3,1);-webkit-tap-highlight-color:transparent}
.mem-carta.virada,.mem-carta.par{transform:rotateY(180deg)}
.mem-carta span{position:absolute;inset:0;border-radius:16px;display:flex;align-items:center;justify-content:center;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.mem-frente{background:radial-gradient(circle at 30% 25%,#fff3 0 12%,transparent 13%),linear-gradient(145deg,#F5A796,#D98270);border:2px solid #fff;box-shadow:0 6px 14px rgba(90,58,38,.18);color:#fff;font-size:1.7rem}
.mem-frente:after{content:'';position:absolute;inset:0;border-radius:14px;background:linear-gradient(90deg,transparent 42%,#F6C453 42% 58%,transparent 58%)}
.mem-verso{transform:rotateY(180deg);background:#fff;border:2px solid #F6C453;box-shadow:0 6px 14px rgba(90,58,38,.14);font-size:clamp(1.7rem,7vw,2.4rem)}
.mem-carta.par .mem-verso{background:#E9F2DF;border-color:#8FBF7F;animation:memPar .5s}
@keyframes memPar{50%{transform:rotateY(180deg) scale(1.12)}}
.mem-carta:disabled{cursor:default}
.mem-tabuleiro.preview .mem-carta{transform:rotateY(180deg)}
.mem-resultado{text-align:center;margin-top:16px}
.mem-resultado .sj-modal-mascote{margin:0 auto 6px;width:96px}
@media (max-width:420px){.mem-tabuleiro{gap:8px}.sj-badge-txt small{display:none}}
