/* Hub polish (Z). Brand red #D2232A; Vibrant palette; reduced-motion safe. */
#jf-amb{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
#jf-wipe{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;background:#D2232A;pointer-events:none}
#jf-wipe img{width:min(46vmin,260px);height:auto;filter:drop-shadow(0 10px 24px rgba(0,0,0,.35))}
.jf-streak{position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;background:rgba(10,40,110,.55);font-family:var(--jf-font,system-ui,sans-serif)}
.jf-streak .cf{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.jf-streak .card{position:relative;background:#fff;border:6px solid #FFD23F;border-radius:28px;padding:22px 18px 18px;width:min(400px,calc(100vw - 32px));text-align:center;color:#2B1B17;box-shadow:0 18px 50px rgba(0,0,0,.35);animation:srCard .45s cubic-bezier(.2,1.4,.4,1) both}
.jf-streak .flame{width:64px;height:80px;display:block;margin:0 auto;animation:srPop .5s .15s cubic-bezier(.2,1.6,.4,1) both,srFlick 1.2s .7s ease-in-out infinite alternate;transform-origin:50% 90%}
.jf-streak h2{margin:6px 0 10px;font-size:30px;font-weight:800;color:#D2232A;animation:srUp .35s .35s both}
.jf-streak .week{list-style:none;margin:0 0 8px;padding:0;display:flex;gap:6px;justify-content:center}
.jf-streak .week li{width:40px;padding:4px 0;border-radius:12px;background:#EEE9F6;color:#2B1B17;font-size:12px;font-weight:700;animation:srUp .3s calc(.45s + var(--i)*.06s) both}
.jf-streak .week li b{display:block;font-size:16px}
.jf-streak .week li.done{background:#0057B8;color:#fff}
.jf-streak .week li.now{background:#D2232A;color:#fff;transform:scale(1.12);box-shadow:0 0 0 3px #FFD23F}
.jf-streak .coins{margin:6px 0 2px;font-size:44px;font-weight:800;color:#2B1B17}
.jf-streak .boost{margin:0;font-weight:800;color:#0057B8;font-size:18px}
.jf-streak .sub{margin:4px 0 12px;font-weight:600;color:#5A4038}
.jf-streak .ok{min-height:52px;min-width:160px;font-size:20px;font-weight:800;background:#D2232A;color:#fff;border:0;border-radius:26px;opacity:.5;transition:opacity .2s}
.jf-streak.final .ok{opacity:1}
.jf-streak.final .coins{animation:srPop .35s both}
.jf-streak.rm *{animation:none!important}
@keyframes srCard{from{transform:scale(.7) translateY(30px);opacity:0}}
@keyframes srPop{from{transform:scale(.3);opacity:0}}
@keyframes srUp{from{transform:translateY(14px);opacity:0}}
@keyframes srFlick{to{transform:scale(1.06,.95) rotate(2deg)}}
.jf-attract{position:fixed;inset:0;z-index:80;background:radial-gradient(circle at 50% 35%,#E8343B,#D2232A 45%,#8E1218);color:#fff;font-family:var(--jf-font,system-ui,sans-serif);overflow:hidden;cursor:pointer}
.jf-attract .sl{position:absolute;inset:0 0 120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px 16px;opacity:0;transform:scale(.96);transition:opacity .6s,transform .8s cubic-bezier(.2,.8,.2,1);text-align:center}
.jf-attract .sl.on{opacity:1;transform:none}
.jf-attract h2{margin:0;font-size:clamp(28px,6vmin,56px);font-weight:800;text-shadow:0 4px 0 #8E1218}
.jf-attract p{margin:0;font-size:clamp(18px,3.2vmin,30px);font-weight:700}
.jf-attract .logo{font-size:clamp(34px,8vmin,84px);font-weight:800;background:#fff;color:#D2232A;padding:10px 26px;border-radius:24px;transform:rotate(-3deg);box-shadow:0 8px 0 #8E1218}
.jf-attract .belt{display:flex;gap:18px;width:max-content;animation:atBelt 14s linear infinite;padding:12px 0;border-bottom:10px solid #2B1B17}
.jf-attract .belt img{height:clamp(70px,14vmin,150px);animation:atBob 1.4s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-.2s)}
.jf-attract .grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;background:rgba(255,255,255,.18);padding:10px;border-radius:20px;width:min(84vw,52vh,440px)}
.jf-attract .grid img{width:100%;aspect-ratio:1;object-fit:contain}
.jf-attract .sl.on .grid img.m{animation:atMatch 1.5s .6s ease-in-out infinite}
.jf-attract .games{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;max-width:1100px}
.jf-attract .g{background:#fff;color:#2B1B17;border-radius:20px;padding:10px 12px;width:clamp(130px,26vw,190px);display:flex;flex-direction:column;align-items:center}
.jf-attract .g img{height:clamp(48px,9vmin,90px)}
.jf-attract .g b{font-size:18px;color:#D2232A}.jf-attract .g span{font-size:14px;font-weight:600}
.jf-attract .album{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:900px}
.jf-attract .album div{background:#fff;color:#2B1B17;border-radius:16px;padding:6px;font-size:clamp(11px,1.8vmin,16px);font-weight:700}
.jf-attract .album img{width:100%;max-height:16vh;object-fit:contain}
.jf-attract .big{height:min(36vh,320px);animation:atBob 1.6s ease-in-out infinite alternate}
.jf-attract .fn{font-size:clamp(22px,4.2vmin,40px);font-weight:800;background:#fff;color:#D2232A;padding:6px 18px;border-radius:16px}
.jf-attract .tap{position:absolute;left:50%;bottom:40px;transform:translateX(-50%);background:#FFD23F;color:#2B1B17;font-size:clamp(22px,4vmin,40px);font-weight:800;padding:12px 34px;border-radius:40px;box-shadow:0 6px 0 #B38A00;animation:atPulse 1.2s ease-in-out infinite;white-space:nowrap}
.jf-attract .dots{position:absolute;left:0;right:0;bottom:14px;display:flex;gap:8px;justify-content:center}
.jf-attract .dots i{width:10px;height:10px;border-radius:5px;background:rgba(255,255,255,.45)}.jf-attract .dots i.on{background:#fff;width:26px}
.jf-attract.rm *{animation:none!important;transition:opacity .3s!important;transform:none!important}
@keyframes atBelt{to{transform:translateX(-50%)}}
@keyframes atBob{to{transform:translateY(-8px)}}
@keyframes atMatch{0%,55%,100%{transform:none;filter:none}70%{transform:scale(1.18);filter:drop-shadow(0 0 10px #FFD23F)}85%{transform:scale(0);opacity:0}}
@keyframes atPulse{50%{transform:translateX(-50%) scale(1.07)}}
@media (prefers-reduced-motion:reduce){.jf-streak *,.jf-attract *{animation:none!important}}
