/* ===== Little Explorers — premium game scenes (ABC, Music, Path, Tidy, Feelings) + Games tab ===== */
.gnew>.hud,.gnew>.lvchip{display:none!important}
.gnew{background:#7cc8ff}
.g2bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.g2bg>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.g2probe{position:absolute;left:0;top:0;width:1px;visibility:hidden;pointer-events:none}
.g2probe i{display:block;width:1px}
.sc390{position:absolute;left:0;top:0;width:390px;height:844px;transform-origin:0 0;z-index:5;font-family:Fredoka,sans-serif}
.sc390 .ab{position:absolute;display:block;max-width:none}
.sc390 img{user-select:none;-webkit-user-select:none;-webkit-user-drag:none}
.sc390 button{position:absolute;padding:0;border:0;background:none;font:inherit;color:inherit;-webkit-tap-highlight-color:transparent;cursor:pointer}
.sc390 button>img{display:block;width:100%;height:auto}
.sc390 .lo,.sc390 .mi{position:absolute;left:0;top:0;width:390px;height:844px;pointer-events:none}
.sc390 .lo{transform:translateY(var(--dy,0px));z-index:6}
.sc390 .mi{z-index:4}
.sc390 .lo>*,.sc390 .mi>*{pointer-events:auto}
.abc .abc-bals{position:absolute;left:0;top:0;z-index:5;transform:translateY(calc(var(--dy,0px)*.5))}
.pth .mi{transform-origin:195px 116px;transform:scale(calc(1 + var(--dyn,0)/400))}
.pth .lo0{z-index:1}
.fel .mi{transform-origin:195px 150px;transform:scale(calc(1 + var(--dyn,0)/300))}
.fel .lo{z-index:9}
.g2sh{filter:drop-shadow(0 10px 12px rgba(0,30,80,.28))}
.g2sh2{filter:drop-shadow(0 6px 8px rgba(0,30,80,.25))}
.sc390 .press.down{transform:scale(.93)}
.sc390 .press{transition:transform .18s var(--spring,cubic-bezier(.2,.9,.25,1.3))}
@keyframes g2float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes g2sway{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
@keyframes g2tw{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.75)}}
@keyframes g2pulse{0%,100%{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}
.g2tw{animation:g2tw 2.2s ease-in-out infinite}
.g2bub{position:absolute;z-index:40;pointer-events:none;padding:8px 18px 10px;border-radius:30px;background:#fff;border:3.5px solid #1e5fe0;box-shadow:0 8px 14px -6px rgba(10,50,150,.45);font:800 26px/1.05 Baloo,Fredoka;color:#123ea8;white-space:nowrap;transform-origin:10% 100%}
.g2bub::after{content:"";position:absolute;left:26px;bottom:-15px;width:22px;height:22px;background:#fff;border-right:3.5px solid #1e5fe0;border-bottom:3.5px solid #1e5fe0;transform:skewX(-28deg) rotate(38deg);border-bottom-right-radius:6px}
.g2bub b{color:#0a46d8;font-size:1.3em;margin-right:4px}

/* ---------- ABC Balloon Pop ---------- */
.abc-bg>img{object-position:62% 100%}
.abc-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(80,170,255,.25),rgba(255,255,255,0) 30%)}
.abc-pill{position:absolute;left:84px;right:84px;top:58px;height:56px;border-radius:28px;background:linear-gradient(180deg,#fff,#eef6ff);box-shadow:0 0 0 3px #d6e8ff,0 8px 16px -6px rgba(10,60,160,.45),inset 0 -4px 0 rgba(120,160,230,.18);display:flex;align-items:center;justify-content:center;gap:6px;z-index:20;font-family:Baloo,Fredoka;color:#0b3fb8;font-size:22px;white-space:nowrap}
.abc-pill b{font-size:36px;line-height:1;color:#0a46d8;margin-top:2px;min-width:22px;text-align:center}
.abc-bal{z-index:10;transform:rotate(var(--r,0deg));transform-origin:50% 100%}
.abc-bal .fl{position:relative;display:block;animation:g2float 3.4s ease-in-out infinite}
.abc-bal img.b{position:relative;width:100%;z-index:2;filter:drop-shadow(0 12px 12px rgba(0,40,110,.25))}
.abc-bal img.s{position:absolute;left:50%;top:94%;width:13px;margin-left:-6px;height:var(--sl,120px);z-index:1;opacity:.95}
.abc-bal b{position:absolute;left:0;right:0;top:0;height:86%;display:flex;align-items:center;justify-content:center;z-index:3;font:800 var(--fs,56px)/1 Baloo,Fredoka;color:#fff;text-shadow:0 3px 0 rgba(0,0,0,.10),0 6px 10px rgba(0,0,0,.16);pointer-events:none;padding-top:4%}
.abc-burst{position:absolute;z-index:9;pointer-events:none}

/* ---------- Pip's Music Band ---------- */
.mus-bg{background:linear-gradient(180deg,#5b2bc9 0,#8a4ae8 40%,#c97a3e 60%,#b9692f 100%)}
.mus{background:#6a35d8}
.mus .floor{position:absolute;left:0;right:0;top:470px;bottom:0;background:url(../assets/s/mu_floor.webp) 50% 0/100% 100% no-repeat,#c27a3e}
.mus .face{position:absolute;left:-40.5px;width:471px;top:466px;height:74px;background:url(../assets/s/mu_face.webp) 0 0/100% 100% no-repeat;z-index:1;box-shadow:0 10px 14px -6px rgba(70,25,0,.45)}
.mus .tray{position:absolute;left:-20px;width:430px;bottom:96px;height:145px;z-index:20;filter:drop-shadow(0 10px 12px rgba(60,20,0,.35))}
.mus .tray>img{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 6%,#000 95%,transparent);mask-image:linear-gradient(180deg,transparent 0,#000 6%,#000 95%,transparent)}
.mus .key{top:11.3px;height:109px;border-radius:12px;transition:transform .1s,filter .15s}
.mus .key img{width:100%;height:100%;display:block;border-radius:12px}
.mus .key.on{transform:translateY(3px) scale(.97);filter:brightness(1.18) drop-shadow(0 0 8px #fff6a0) drop-shadow(0 0 16px #ffe25a)}
.mus .key.hint{animation:mkhint 1s ease-in-out infinite}
@keyframes mkhint{0%,100%{filter:drop-shadow(0 0 4px #fff) drop-shadow(0 0 10px #fff6a0)}50%{filter:brightness(1.12) drop-shadow(0 0 8px #fff) drop-shadow(0 0 18px #ffe25a)}}
.mus .notes{position:absolute;left:8px;right:8px;top:160px;height:98px;border-radius:32px;background:linear-gradient(180deg,#fff,#eef1ff);box-shadow:0 0 0 4px rgba(214,206,255,.95),0 12px 24px -10px rgba(30,0,90,.6);z-index:20;display:flex;align-items:center;justify-content:space-around;padding:0 34px}
.mus .notes::before{content:"";position:absolute;left:30px;right:30px;top:18px;height:44px;background:repeating-linear-gradient(180deg,rgba(150,170,230,.35) 0 1.5px,transparent 1.5px 11px)}
.mus .notes img{position:relative;height:76px;width:auto;transition:opacity .25s,transform .25s,filter .25s}
.mus .notes img.dim{opacity:.42;filter:grayscale(.6)}
.mus .notes img.cur{transform:translateY(-6px) scale(1.15);filter:drop-shadow(0 0 8px #fff7a0)}
.mus .notes .ph{position:relative;width:44px;height:44px;border-radius:50%;border:3px dashed rgba(140,150,220,.45)}
.mus .mode{z-index:30;transition:filter .2s,opacity .2s,transform .18s}
.mus .mode.off{filter:saturate(.55) brightness(.92) drop-shadow(0 6px 8px rgba(0,30,80,.25));opacity:.85}
.mus .mode.on{filter:drop-shadow(0 0 0 #fff) drop-shadow(0 0 6px rgba(255,255,255,.9)) drop-shadow(0 6px 8px rgba(0,30,80,.25))}
.mus .rays{position:absolute;z-index:22;pointer-events:none;opacity:0;transition:opacity .15s,left .12s}
.mus .tip{position:absolute;left:0;right:0;top:262px;text-align:center;z-index:25;font:800 20px Baloo,Fredoka;color:#fff;text-shadow:0 2px 6px rgba(40,0,110,.7);pointer-events:none;transition:opacity .25s}
.mus .pulse{left:0;top:290px;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,rgba(255,250,200,.75),rgba(255,220,120,.35) 45%,rgba(255,220,120,0) 70%);mix-blend-mode:screen;z-index:3;opacity:0;pointer-events:none}

/* ---------- Pip's Path ---------- */
.pth-bg>img{filter:blur(2.5px) saturate(1.1);transform:scale(1.04)}
.pth .deck{position:absolute;left:-330px;right:-330px;top:452px;bottom:-400px;background:linear-gradient(180deg,#f2c58c,#dca266 18%,#c98a4e);transform:perspective(300px) rotateX(18deg);transform-origin:50% 0;box-shadow:0 -6px 14px rgba(120,70,20,.25)}
.pth .deck::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 46px,rgba(130,70,20,.28) 46px 48px),linear-gradient(180deg,rgba(255,255,255,.25),transparent 12%)}
.pth .rug{position:absolute;left:40px;right:40px;top:462px;height:40px;border-radius:50%;background:repeating-linear-gradient(90deg,#b9d8ff 0 30px,#ffd0e6 30px 60px,#d8f5c8 60px 90px);opacity:.9;filter:blur(1.5px)}
.pth .fence{position:absolute;top:418px;height:48px;width:140px;background:repeating-linear-gradient(90deg,#e8b77c 0 14px,transparent 14px 26px);filter:blur(1.5px);opacity:.9}
.pth .fence::before{content:"";position:absolute;left:0;right:0;top:14px;height:8px;background:#e0a96c;border-radius:4px}
.pth .board{position:absolute;left:4px;top:116px;width:382px;height:382px;border-radius:28px;background:linear-gradient(180deg,#fff3c8,#f6dd98);box-shadow:inset 0 3px 0 #fffbe8,inset 0 -5px 0 #dcb867,0 16px 26px -8px rgba(60,40,0,.45);padding:11px;z-index:4}
.pth .grid{position:relative;width:340px;height:340px;border-radius:16px;background:#7cc443;box-shadow:inset 0 2px 6px rgba(0,60,0,.35);transform:scale(1.0588);transform-origin:0 0}
.pth .cell{position:absolute;width:59px;height:59px}
.pth .cell img{width:100%;height:100%;object-fit:fill}
.pth .hdr{position:absolute;top:47px;height:60px;border-radius:32px;background:#fff;box-shadow:0 6px 10px rgba(0,40,100,.2)}
.pth .cnt{position:absolute;left:266px;top:57px;width:64px;height:38px;border-radius:19px;background:linear-gradient(180deg,#fff,#eef5ff);box-shadow:0 0 0 2px #dbe8fb,0 6px 8px rgba(0,30,80,.2);display:flex;align-items:center;justify-content:center;gap:3px;font:800 15px Baloo,Fredoka;color:#1648c0;z-index:30;white-space:nowrap}
.pth .cnt img{width:20px;height:20px}
.pth .panel{position:absolute;left:6px;right:6px;top:508px;height:300px;border-radius:34px;background:linear-gradient(180deg,#fff,#f4f8ff);box-shadow:0 0 0 3px rgba(255,255,255,.7),0 18px 30px -10px rgba(20,40,90,.45);z-index:4}
.pth .slots{position:absolute;left:18px;right:18px;top:576px;height:74px;border-radius:22px;background:linear-gradient(180deg,#dff0ff,#cfe6ff);box-shadow:inset 0 3px 6px rgba(40,90,170,.25),0 0 0 2px #e9f4ff;display:flex;gap:6px;padding:10px;z-index:5}
.pth .slot{position:relative;flex:1;min-width:0;height:54px;border-radius:14px;display:flex;align-items:center;justify-content:center}
.pth .slot.f{background:linear-gradient(180deg,#fff,#eef5ff);box-shadow:0 4px 0 #b9d2f2,0 6px 8px rgba(30,70,150,.18)}
.pth .slot.e{border:2.5px dashed rgba(120,160,220,.55)}
.pth .slot svg{width:34px;height:34px}
.pth .slot i{position:absolute;right:-4px;top:-7px;min-width:24px;height:20px;padding:0 4px;border-radius:10px;background:linear-gradient(#b07cff,#7d3ff0);color:#fff;font:800 12.5px/20px Baloo,Fredoka;font-style:normal;box-shadow:0 2px 4px rgba(60,20,140,.35)}
.pth .slot.run{box-shadow:0 0 0 3px #ffd84a,0 4px 0 #b9d2f2}
.pth .slot.bad{box-shadow:0 0 0 3px #ff5a6a,0 4px 0 #b9d2f2}
.pth .btns{position:absolute;left:14px;right:14px;top:662px;height:66px;display:flex;gap:6px;align-items:center;z-index:5}
.pth .btns button{position:relative;flex:1;min-width:0}
.pth .btns button.rep{flex:0 0 100px}
.pth .go{left:80px;top:734px;width:230px;z-index:5}
.pth .go[disabled],.pth .btns.lock{opacity:.6;pointer-events:none}
.pth .glow{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(255,250,170,.95),rgba(255,230,90,.5) 45%,rgba(255,230,90,0) 70%);animation:g2pulse 1.6s ease-in-out infinite;pointer-events:none}
.pth .pip{z-index:8;transition:left .34s ease-in-out,top .34s ease-in-out;pointer-events:none}

/* ---------- Tidy Up Time ---------- */
.tdy-bg{background:linear-gradient(180deg,#f6d29a 0,#f3c88c 50%,#e8a060 50%,#e39a5a 100%)}
.tdy{background:#e49c5c}
.tdy .mi{transform:translateY(calc(var(--dy,0px)*.5))}
.tdy .lo{z-index:20}
.tdy.dragging .mi{z-index:26}
.tdy .sp{position:absolute;width:14px;height:14px;background:#fff;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);filter:drop-shadow(0 0 3px #ffe680);z-index:40;pointer-events:none;animation:g2tw 1.8s ease-in-out infinite}
.tdy .prog{position:absolute;right:8px;top:54px;width:134px;height:52px;border-radius:26px;background:linear-gradient(180deg,#fff,#eef5ff);box-shadow:0 0 0 2.5px #cfe1fb,0 6px 10px rgba(0,30,80,.22);z-index:30;padding:5px 12px 0}
.tdy .prog .t{display:flex;align-items:center;justify-content:center;gap:5px;font:800 18px/22px Baloo,Fredoka;color:#123ea8}
.tdy .prog .t img{width:22px;height:22px}
.tdy .prog .bar{margin-top:3px;height:13px;border-radius:7px;background:#2f6fe6;box-shadow:inset 0 2px 3px rgba(0,0,0,.25);overflow:hidden}
.tdy .prog .bar i{display:block;height:100%;width:0;border-radius:7px;background:repeating-linear-gradient(90deg,#7ee35a 0 8px,#4cc63a 8px 16px);box-shadow:inset 0 2px 0 rgba(255,255,255,.45);transition:width .4s}
.tdy .item{z-index:12;touch-action:none;cursor:grab;transition:filter .15s}
.tdy .item img{filter:drop-shadow(0 6px 8px rgba(0,30,80,.25))}
.tdy .item.sel img{filter:drop-shadow(0 0 0 #fff) drop-shadow(0 0 8px #fff6a0) drop-shadow(0 0 16px #ffd84a)}
.tdy .item.drag{z-index:60;cursor:grabbing}
.tdy .bk{z-index:21;transition:transform .15s}
.tdy .bk.hint{filter:drop-shadow(0 0 10px #fff3a0) drop-shadow(0 8px 10px rgba(120,80,0,.3))}
.tdy .bk.over{transform:scale(1.07)}
.tdy .bglow{position:absolute;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(255,250,190,.95),rgba(255,226,110,.55) 40%,rgba(255,226,110,0) 70%);z-index:20;pointer-events:none;opacity:0;transition:opacity .2s,left .2s}

/* ---------- Feelings Friends ---------- */
.fel-bg{background:linear-gradient(180deg,#ffe9f3,#fde3ee 40%,#ffffff 48%,#e4f1ff)}
.fel .room{position:absolute;left:-300px;right:-300px;top:-300px;height:720px;background:linear-gradient(180deg,#ffe9f3,#fde3ee 60%,#f6d9ff);filter:blur(1.2px)}
.fel .room::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 40px,rgba(255,255,255,.35) 40px 52px)}
.fel .win{position:absolute;top:118px;height:250px;border-radius:14px 14px 4px 4px;background:#fff6e6;padding:9px;box-shadow:0 6px 14px rgba(170,90,140,.25);filter:blur(1.2px)}
.fel .win .v{position:relative;width:100%;height:100%;overflow:hidden;border-radius:8px}
.fel .win .v img{position:absolute;height:100%;width:auto;top:0}
.fel .win .bar{position:absolute;background:#fff6e6}
.fel .beam{position:absolute;left:-300px;right:-300px;top:60px;height:22px;background:linear-gradient(180deg,#ffd9a8,#f1b77a);box-shadow:0 5px 8px rgba(160,90,40,.25);filter:blur(1px)}
.fel .table{position:absolute;left:-300px;right:-300px;top:362px;height:50px;background:linear-gradient(180deg,#ffd29c,#eeb072);box-shadow:inset 0 4px 0 #ffe6c4}
.fel .glow{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.95),rgba(255,240,250,.6) 40%,rgba(255,255,255,0) 70%);pointer-events:none}
.fel .panel{position:absolute;left:-300px;right:-300px;top:402px;bottom:-400px;background:linear-gradient(180deg,#fff 0,#f5faff 25%,#e4f1ff);z-index:9}
.fel .puff{position:absolute;border-radius:50%;background:#fff;z-index:8;box-shadow:0 -6px 14px rgba(150,120,200,.15)}
.fel .q1{position:absolute;left:10px;right:10px;top:416px;text-align:center;font:600 18px Fredoka;color:#2a62d8;z-index:20;white-space:nowrap}
.fel .q2{position:absolute;left:0;right:0;top:438px;text-align:center;font:800 30px/1.1 Baloo,Fredoka;color:#1c55d4;z-index:20;letter-spacing:.2px;text-shadow:0 2px 0 rgba(255,255,255,.9),0 4px 8px rgba(30,80,200,.15);pointer-events:none}
.fel .cards{position:absolute;left:22px;right:22px;top:502px;display:grid;grid-template-columns:1fr 1fr;gap:14px;z-index:20}
.fel .card{position:relative;transition:transform .15s,filter .2s}
.fel .card img{width:100%;height:auto;filter:drop-shadow(0 8px 10px rgba(40,70,150,.22))}
.fel .card.on img{filter:drop-shadow(0 0 0 #fff) drop-shadow(0 0 10px rgba(120,255,110,.9)) drop-shadow(0 8px 10px rgba(40,120,40,.25))}
.fel .card.no{filter:grayscale(.7) opacity(.55)}
.fel .card .ck{position:absolute;right:8px;top:8px;width:32px;height:32px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,80,0,.3);display:grid;place-items:center;color:#2fb64a}
.fel .card .ck svg{width:22px;height:22px}
.fel .cl{position:absolute;border-radius:50%;background:radial-gradient(circle at 50% 40%,#fff,#eef6ff);opacity:.95;z-index:22;pointer-events:none}
.fel .actor{z-index:5;pointer-events:none}
.fel .q1 .spk{display:inline-block;width:20px;height:20px;vertical-align:-3px;margin-left:6px;color:#2a62d8}

/* ---------- Games tab ---------- */
.gms .scroll>.hdr{background-image:url(../assets/bg/crv_hdr.webp);background-position:50% 70%;padding-bottom:46px}
.gm-top{position:relative;height:237px}
.gm-top .lg{position:absolute;left:-2px;top:33px;width:228px;height:auto;z-index:2;filter:drop-shadow(0 6px 8px rgba(0,30,80,.25))}
.gm-top .pg{position:absolute;right:-20px;top:51px;width:178px;height:auto;z-index:1;filter:drop-shadow(0 10px 12px rgba(0,30,80,.28));animation:sway 5s ease-in-out infinite;transform-origin:50% 100%}
.gm-top .av{position:absolute;right:-2px;top:-1px;width:56px;height:56px;z-index:3;padding:0;border:0;background:none}
.gm-top .av img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 8px rgba(0,30,80,.25))}
.gm-ttl{position:relative;display:flex;align-items:center;justify-content:center;height:46px;margin:-2px 0 14px}
.gm-ttl h2{font:800 32px/1 Baloo,Fredoka;color:#1c55d4;letter-spacing:.3px;text-shadow:0 3px 0 #d8e7ff;margin:0}
.gm-ttl img{position:absolute;top:0;width:52px;height:auto}
.gm-ttl .l{left:2px}.gm-ttl .r{right:2px;transform:scaleX(-1)}
.gm-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 10px}
.gm-card{position:relative;display:block;width:100%;aspect-ratio:227/481;border-radius:15px;overflow:hidden;padding:0;border:0;background:#dbeaff;box-shadow:0 8px 14px -4px rgba(20,60,150,.3)}
.gm-card img{width:100%;height:100%;object-fit:cover;display:block}
.gm-card .new{position:absolute;left:6px;top:6px;padding:1px 7px;border-radius:9px;background:linear-gradient(#ff7ab6,#ff3f8e);color:#fff;font:700 10.5px/16px Fredoka;box-shadow:0 2px 4px rgba(150,0,60,.3)}
.gm-ph{aspect-ratio:227/481;border-radius:15px;border:2px dashed #c6dbf6;background:linear-gradient(180deg,#f2f8ff,#e8f2ff);display:flex;align-items:center;justify-content:center}
.gm-ph svg{width:38px;opacity:.35}
.gms .sheet .sect{margin-top:22px}
/* intro backgrounds for scene games without a photo bg */
.game>.bg.bgc-music{background:radial-gradient(ellipse 80% 45% at 50% 42%,#c08bff 0%,#8f4dff 38%,#5a22d6 70%,#2e1290 100%)}
.game>.bg.bgc-tidy{background:linear-gradient(180deg,#f7dcb0 0,#f3cf98 52%,#e8b47a 52%,#e4ad70 100%)}
.game>.bg.bgc-feel{background:linear-gradient(180deg,#ffe9f3 0,#fde3ee 45%,#f2e4ff 75%,#e4f1ff 100%)}
/* intro layout for the new scene games: smaller logo, mascot fitted between logo and instructions */
.intro.i-nw .ttl{width:72%;max-width:300px}
.intro.i-nw .mascot{width:auto;max-width:none;height:clamp(110px,calc(100% - var(--sat) - var(--sab) - 500px),240px);top:calc((var(--sat) + 160px + 100% - var(--sab) - 364px)/2)}
.intro.i-nw .mascot .bob{height:100%}
.intro.i-nw .mascot img,.intro.i-nw .mascot .bob img{height:100%;width:auto;margin:0 auto}
.intro.i-abc .ctitle{width:80%;max-width:320px}
