.m3j-void{visibility:hidden;pointer-events:none}
.m3j-game .match3-gem.falling i{animation-name:m3j-flow-fall}
@keyframes m3j-flow-fall{0%{transform:translate(var(--fall-x,0),var(--fall-y,var(--fall-offset)));opacity:.35}72%{transform:translate(0,5%);opacity:1}100%{transform:translate(0,0);opacity:1}}
.m3j-game .match3-gem.falling.obstacle-mold .m3j-obstacle-layer{animation:m3j-flow-fall 300ms cubic-bezier(.18,.82,.28,1.12) both;animation-delay:var(--fall-delay,0ms)}
.m3j-game .match3-core-effect.secondary-core-effect line,.m3j-game .match3-core-effect.secondary-core-effect circle{opacity:0;animation-delay:180ms;animation-fill-mode:both}.m3j-game .match3-core-effect.secondary-core-effect{z-index:14}
.obstacle-crystal .m3j-obstacle-layer{border-color:#f0abfc;background:conic-gradient(from 30deg,#ec489988,#67e8f988,#c084fcaa,#ec489988);clip-path:polygon(50% 0,88% 20%,100% 65%,66% 100%,20% 90%,0 45%,18% 12%)}
.obstacle-chain .m3j-obstacle-layer{border-color:#fde68a;background:repeating-linear-gradient(135deg,transparent 0 15%,#fbbf24cc 16% 24%,transparent 25% 40%)}
.obstacle-vine .m3j-obstacle-layer{border-color:#86efac;background:radial-gradient(circle at 25% 20%,#bbf7d0 0 8%,transparent 9%),repeating-linear-gradient(55deg,transparent 0 18%,#16a34acc 19% 28%,transparent 29% 46%)}

/* Materialid on siluetilt ja pinnalt loetavad ka ilma värvi eristamata. */
.m3j-game .match3-board-wrap{isolation:isolate;padding:clamp(11px,2vw,18px);border:2px solid var(--m3j-frame-edge,#ffffff2e);border-radius:30px;background:radial-gradient(ellipse at 50% 100%,var(--m3j-ground,#172033) 0 20%,transparent 55%),radial-gradient(circle at 18% 8%,var(--m3j-scene-glow,#ec48992b),transparent 38%),linear-gradient(180deg,var(--m3j-sky-top,#172035),var(--m3j-sky-bottom,#080d19));box-shadow:inset 0 0 0 3px #030712aa,inset 0 0 28px #0008,0 24px 65px #0009,0 0 32px var(--m3j-scene-glow,#ec48991d)}
.m3j-game .match3-board-wrap:before{content:"";position:absolute;z-index:-1;inset:5px;border:1px solid #ffffff18;border-radius:24px;background:radial-gradient(ellipse at 12% 100%,var(--m3j-silhouette,#111827) 0 12%,transparent 12.5%),radial-gradient(ellipse at 28% 104%,var(--m3j-silhouette,#111827) 0 19%,transparent 19.5%),radial-gradient(ellipse at 78% 105%,var(--m3j-silhouette,#111827) 0 24%,transparent 24.5%),radial-gradient(circle at 82% 13%,var(--m3j-moon,#ffffff1c) 0 5%,transparent 5.5%);pointer-events:none}
.m3j-game .match3-board-wrap:after{content:"";position:absolute;z-index:2;inset:-3px;border:7px solid transparent;border-radius:33px;background:linear-gradient(120deg,#ffffff2e,transparent 22%,transparent 72%,var(--m3j-scene-glow),#ffffff1c) border-box;mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none}
.m3j-game .match3-board{position:relative;z-index:1;border-color:#ffffff24;background:linear-gradient(145deg,#070b17e8,#06111ce8);box-shadow:inset 0 0 45px #0009,0 13px 35px #0008;backdrop-filter:blur(5px)}
.m3j-game-theme-ice{--m3j-scene-glow:#38bdf84a;--m3j-sky-top:#16314b;--m3j-sky-bottom:#07121f;--m3j-ground:#164e63;--m3j-silhouette:#082f49;--m3j-frame-edge:#bae6fd66;--m3j-moon:#e0f2fe42}.m3j-game-theme-wood{--m3j-scene-glow:#f59e0b40;--m3j-sky-top:#35200f;--m3j-sky-bottom:#100b0a;--m3j-ground:#3f2812;--m3j-silhouette:#1c160c;--m3j-frame-edge:#fbbf2460;--m3j-moon:#fde68a30}.m3j-game-theme-stone{--m3j-scene-glow:#94a3b83d;--m3j-sky-top:#252f3d;--m3j-sky-bottom:#090d13;--m3j-ground:#293548;--m3j-silhouette:#111827;--m3j-frame-edge:#cbd5e15c;--m3j-moon:#e2e8f030}.m3j-game-theme-mold{--m3j-scene-glow:#22c55e4d;--m3j-sky-top:#123525;--m3j-sky-bottom:#06120e;--m3j-ground:#14532d;--m3j-silhouette:#052e16;--m3j-frame-edge:#4ade8066;--m3j-moon:#bef2642b}.m3j-game-theme-energy{--m3j-scene-glow:#d946ef40;--m3j-sky-top:#291640;--m3j-sky-bottom:#090b1b;--m3j-ground:#312e81;--m3j-silhouette:#171346;--m3j-frame-edge:#e879f95c;--m3j-moon:#f5d0fe2d}
.m3j-game-scene-2 .match3-board-wrap:before{background:radial-gradient(ellipse at 8% 105%,var(--m3j-silhouette) 0 19%,transparent 19.5%),radial-gradient(ellipse at 48% 107%,var(--m3j-silhouette) 0 25%,transparent 25.5%),radial-gradient(ellipse at 91% 102%,var(--m3j-silhouette) 0 15%,transparent 15.5%),radial-gradient(circle at 18% 14%,var(--m3j-moon) 0 4%,transparent 4.5%)}
.m3j-game-scene-3 .match3-board-wrap:before{background:linear-gradient(165deg,transparent 0 77%,var(--m3j-silhouette) 77.5% 80%,transparent 80.5%),radial-gradient(ellipse at 18% 105%,var(--m3j-silhouette) 0 24%,transparent 24.5%),radial-gradient(ellipse at 83% 106%,var(--m3j-silhouette) 0 29%,transparent 29.5%),radial-gradient(circle at 76% 12%,var(--m3j-moon) 0 4%,transparent 4.5%)}
.m3j-game-scene-4 .match3-board-wrap:before{background:radial-gradient(ellipse at 50% 112%,var(--m3j-silhouette) 0 37%,transparent 37.5%),radial-gradient(ellipse at 0 96%,var(--m3j-silhouette) 0 18%,transparent 18.5%),radial-gradient(ellipse at 100% 92%,var(--m3j-silhouette) 0 21%,transparent 21.5%),radial-gradient(circle at 50% 10%,var(--m3j-moon) 0 5%,transparent 5.5%)}
.m3j-obstacle-layer em{position:relative;z-index:2;color:#fff;font-size:clamp(17px,4vw,27px);font-style:normal;font-weight:950;text-shadow:0 2px 5px #000,0 0 9px currentColor}
.obstacle-ice .m3j-obstacle-layer,.obstacle-wood .m3j-obstacle-layer,.obstacle-concrete .m3j-obstacle-layer,.obstacle-crystal .m3j-obstacle-layer,.obstacle-chain .m3j-obstacle-layer,.obstacle-vine .m3j-obstacle-layer{inset:-4%;border-radius:20%;clip-path:none;opacity:1;filter:drop-shadow(0 5px 5px #0009)}
.obstacle-ice .m3j-obstacle-layer{border:3px solid #e0f2fe;background:linear-gradient(135deg,#e0f2fe 0 18%,#38bdf8 19% 48%,#075985 49% 76%,#bae6fd 77%);box-shadow:inset 0 0 0 3px #fff7,inset 0 0 18px #075985,0 0 10px #38bdf888}
.obstacle-wood .m3j-obstacle-layer{border:4px solid #422006;background:linear-gradient(35deg,transparent 42%,#422006 43% 56%,transparent 57%),linear-gradient(145deg,#d97706,#78350f);box-shadow:inset 0 0 0 4px #f59e0b55,inset 0 0 20px #451a03}
.obstacle-concrete .m3j-obstacle-layer{border:4px solid #1e293b;background:linear-gradient(25deg,transparent 46%,#cbd5e1 47% 50%,transparent 51%),linear-gradient(145deg,#94a3b8,#334155 58%,#111827);box-shadow:inset 0 0 0 3px #e2e8f044,inset 0 0 18px #020617}
.obstacle-mold{cursor:grab}.obstacle-mold .m3j-obstacle-layer{inset:-3%;border:3px solid #4ade80e6;background:radial-gradient(circle at 13% 18%,#bef264dd 0 6%,transparent 7%),radial-gradient(circle at 87% 72%,#22c55ecc 0 8%,transparent 9%),radial-gradient(circle at 20% 88%,#16a34acc 0 7%,transparent 8%),radial-gradient(circle at 78% 13%,#86efaccc 0 5%,transparent 6%),radial-gradient(circle,transparent 0 47%,#14532d99 49% 66%,transparent 68%);box-shadow:inset 0 0 0 2px #052e1699,inset 0 0 10px #16a34a55,0 0 14px #4ade80aa;animation:m3jMoldBreath 2.6s ease-in-out infinite}.obstacle-mold .m3j-obstacle-layer em{position:absolute;right:3px;bottom:2px;padding:1px 3px;border-radius:50%;background:#052e16dd;color:#bbf7d0;font-size:12px}.obstacle-mold.match3-gem>i{filter:brightness(1.18) saturate(1.14);box-shadow:inset 0 7px 12px #fff5,inset 0 -8px 14px #0004,0 0 0 2px #bbf7d099,0 0 17px #22c55e99}
.m3j-objective-chips{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))!important;gap:7px!important;margin:7px 0 10px!important}.m3j-objective-chips>span{display:grid;grid-template-columns:30px 1fr;align-items:center;gap:1px 7px;padding:8px;border:1px solid #ffffff18;border-radius:11px;background:#ffffff09}.m3j-objective-chips i{grid-row:1/3;display:grid;width:29px;height:29px;place-items:center;border-radius:9px;background:#ffffff10;font-style:normal}.m3j-objective-chips b{font-size:10px}.m3j-objective-chips small{color:#94a3b8;font-size:8px}.m3j-objective-chips .done{border-color:#4ade8055;background:#16a34a15}.m3j-objective-chips .done small{color:#86efac}
.match3-gem.match3-hint{z-index:7;animation:m3jHint 1.05s ease-in-out infinite}.match3-gem.match3-hint:after{content:"";position:absolute;z-index:8;inset:-3px;border:3px solid #fde047;border-radius:28%;box-shadow:0 0 10px #fde047,0 0 24px #f59e0b;pointer-events:none}
@keyframes m3jMoldBreath{50%{filter:brightness(1.2);box-shadow:inset 0 0 16px #22c55ebb,0 0 18px #4ade80cc}}@keyframes m3jHint{50%{transform:scale(1.07)}}
@media(max-width:430px){.m3j-objective-chips{grid-template-columns:repeat(2,minmax(0,1fr))!important}.m3j-game .match3-board-wrap{padding:7px;border-radius:22px}}
@media(prefers-reduced-motion:reduce){.obstacle-mold .m3j-obstacle-layer,.match3-gem.match3-hint{animation:none}}
.m3j-game .match3-gem.special:before{inset:1px;border:2px solid #ffffffa8;box-shadow:0 0 7px #ffffff66;animation:none}.m3j-game .match3-gem.special-3 i,.m3j-game .match3-gem.special-4 i{animation:none}.m3j-game .match3-gem.special{filter:drop-shadow(0 0 6px #ffffff70)}
.m3j-game .match3-goals{padding:14px;border-color:#f472b635;background:linear-gradient(145deg,#111126dd,#080d1ddd);box-shadow:inset 0 1px #ffffff0d,0 12px 28px #0004}.m3j-game .match3-goals>header{padding-bottom:9px;border-bottom:1px solid #ffffff12}.m3j-game .match3-goals>header span{color:#f0abfc;font-size:10px}.m3j-game .match3-goals>header strong{padding:4px 9px;border:1px solid #fbbf2440;border-radius:99px;background:#f59e0b12;color:#fde68a;font-size:15px}.m3j-game .match3-goals>.objective-main{min-height:32px;padding:4px 7px;border-radius:9px;background:#ffffff08}.m3j-game .match3-goals>.star-tier{grid-template-columns:92px minmax(0,1fr);min-height:38px;padding:4px 8px;border:1px solid #ffffff10;border-radius:10px;background:linear-gradient(90deg,#ffffff08,#ffffff03)}.m3j-game .star-tier>span{display:grid!important}.m3j-game .star-tier>span strong{color:#c4b5fd;font-size:13px;letter-spacing:2px}.m3j-game .star-tier>span small{color:#7f8ba3;font-size:7px;font-weight:900;letter-spacing:.12em}.m3j-game .star-tier-3>span strong{color:#fde68a}.m3j-game .star-tier>b{padding-right:4px;font-size:11px!important}.m3j-game .star-tier.earned{border-color:#fbbf2455;background:linear-gradient(90deg,#f59e0b18,#ec48990c);box-shadow:0 0 15px #f59e0b13}.m3j-game .star-tier>i{inset:4px!important}.m3j-game .star-tier>i:after{border-radius:7px}
@media(max-width:430px){.m3j-game .match3-goals{padding:10px}.m3j-game .match3-goals>.star-tier{grid-template-columns:82px 1fr}.m3j-game .star-tier>span strong{font-size:11px}.m3j-game .star-tier>b{font-size:9px!important}}

/* Hand-painted Värvisaju world art. A dark veil preserves tile contrast. */
.m3j-game .match3-board-wrap{padding:clamp(16px,3vw,25px);background-image:linear-gradient(180deg,#07111d30,#0307128c),url('/assets/images/match3/journey-board-enchanted-v1.webp?v=1');background-position:center;background-size:cover}
.m3j-game .match3-board-wrap:before{inset:8px;background:none;box-shadow:inset 0 0 38px #020617cc;opacity:1}
.m3j-game .match3-board{background-image:linear-gradient(145deg,#050914b8,#04101abe),url('/assets/images/match3/journey-board-enchanted-v1.webp?v=1');background-position:center;background-size:cover}
.m3j-game-scene-2 .match3-board-wrap,.m3j-game-scene-2 .match3-board{background-position:34% center}.m3j-game-scene-3 .match3-board-wrap,.m3j-game-scene-3 .match3-board{background-position:66% center}.m3j-game-scene-4 .match3-board-wrap,.m3j-game-scene-4 .match3-board{background-position:center 68%}

/* The journey begins in daylight and becomes visibly more dangerous. */
.m3j-chapter{background-position:center;background-size:cover;background-attachment:local}
.m3j-chapter-1{background-image:linear-gradient(180deg,#0715225c,#07111bd9 72%,#070b14f2),url('/assets/images/match3/journey-map-dawn-v1.webp?v=1')}
.m3j-chapter-2{background-image:linear-gradient(180deg,#080d1a70,#090818df 68%,#060710f5),url('/assets/images/match3/journey-board-enchanted-v1.webp?v=1')}
.m3j-chapter-1>header,.m3j-chapter-2>header{padding:clamp(18px,4vw,34px);border:1px solid #ffffff1c;border-radius:20px;background:#07111bb8;box-shadow:0 18px 48px #0007;backdrop-filter:blur(9px)}
.m3j-chapter-1 .m3j-node-copy,.m3j-chapter-2 .m3j-node-copy{background:#07111bd4;box-shadow:0 12px 28px #0007;backdrop-filter:blur(10px)}
.m3j-chapter-1{--m3j-map-light:#fde68a}.m3j-chapter-1 .m3j-map:before{box-shadow:0 0 12px #fde68acc,0 0 30px #22d3ee77!important}.m3j-chapter-1 .m3j-atmosphere{mix-blend-mode:screen;opacity:.75}
.m3j-chapter-2 .m3j-atmosphere{mix-blend-mode:screen;opacity:.48}
@media(max-width:680px){.m3j-game .match3-board-wrap{padding:11px}.m3j-chapter{background-attachment:scroll}.m3j-chapter-1>header,.m3j-chapter-2>header{padding:17px 12px}}
.m3j-chapter-2{margin-top:30px;background:radial-gradient(circle at 15% 15%,#fb71852b,transparent 25%),linear-gradient(#280d35e8,#071827f2)}
.m3j-chapter-2 .m3j-map:before{background:linear-gradient(#fb7185,#d946ef 45%,#22d3ee);opacity:.55}

/* Immersive progression map: layered colour mist, flowing route and living nodes. */
.m3j-chapter{position:relative;isolation:isolate;overflow:hidden;margin-top:30px;box-shadow:inset 0 1px 0 #fff1,0 30px 90px #0007}
.m3j-chapter>header,.m3j-map{position:relative;z-index:2}
.m3j-atmosphere{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none}
.m3j-atmosphere:before,.m3j-atmosphere:after{content:"";position:absolute;border-radius:50%;filter:blur(28px);opacity:.28;animation:m3jMist 11s ease-in-out infinite alternate}
.m3j-atmosphere:before{top:8%;left:-8%;width:280px;aspect-ratio:1;background:#ec4899}
.m3j-atmosphere:after{right:-6%;bottom:12%;width:340px;aspect-ratio:1;background:#7c3aed;animation-delay:-5s}
.m3j-chapter-2 .m3j-atmosphere:before{background:#22d3ee}.m3j-chapter-2 .m3j-atmosphere:after{background:#d946ef}
.m3j-atmosphere i{position:absolute;width:7px;aspect-ratio:1;border-radius:50%;background:#fff;box-shadow:0 0 9px #fff,0 0 20px #f9a8d4;opacity:.38;animation:m3jMote 7s ease-in-out infinite}
.m3j-atmosphere i:nth-child(1){top:15%;left:14%}.m3j-atmosphere i:nth-child(2){top:34%;right:12%;animation-delay:-2s}.m3j-atmosphere i:nth-child(3){top:58%;left:9%;animation-delay:-4s}.m3j-atmosphere i:nth-child(4){right:19%;bottom:18%;animation-delay:-1s}.m3j-atmosphere i:nth-child(5){left:47%;bottom:7%;animation-delay:-5s}
.m3j-map:before{z-index:0;width:8px!important;background:linear-gradient(180deg,#f9a8d4,#c084fc 42%,#22d3ee 72%,#f9a8d4)!important;background-size:100% 220%!important;box-shadow:0 0 10px #ec4899aa,0 0 28px #8b5cf666!important;opacity:.72!important;animation:m3jRouteFlow 5s linear infinite}
.m3j-node{z-index:1;animation:m3jNodeEnter .55s both}
.m3j-node:nth-child(2n){animation-delay:60ms}.m3j-node:nth-child(3n){animation-delay:120ms}.m3j-node:nth-child(5n){animation-delay:180ms}
.m3j-node>a,.m3j-lock{position:relative;isolation:isolate;transition:transform .22s ease,filter .22s ease,box-shadow .22s ease}
.m3j-node>a:before,.m3j-lock:before{content:"";position:absolute;z-index:-1;inset:-11px;border:1px solid #f9a8d455;border-radius:34%;opacity:.55;transform:rotate(12deg)}
.m3j-node>a:hover,.m3j-node>a:focus-visible{transform:translateY(-4px) scale(1.06);filter:brightness(1.15);box-shadow:0 0 0 8px #10071ecc,0 20px 42px #0008,0 0 42px #f472b688}
.m3j-node.current>a{animation:m3jCurrent 2.2s ease-in-out infinite}
.m3j-node.current .m3j-node-copy small{color:#67e8f9;text-shadow:0 0 12px #22d3ee}
.m3j-node.completed>a{border-color:#fde68a;box-shadow:0 0 0 8px #10071ecc,0 15px 35px #0006,0 0 30px #f59e0b55}
.m3j-node-copy{padding:10px 13px;border:1px solid #ffffff18;border-radius:14px;background:linear-gradient(145deg,#21142bd9,#0c1220c7);box-shadow:0 10px 26px #0006,inset 0 1px 0 #ffffff0d;backdrop-filter:blur(10px);transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}
.m3j-node:nth-child(even) .m3j-node-copy{background:linear-gradient(215deg,#21142bd9,#0c1220c7)}
.m3j-node.completed .m3j-node-copy{border-color:#fde68a24;box-shadow:0 10px 27px #0006,0 0 18px #f59e0b12,inset 0 1px 0 #ffffff12}
.m3j-node.current .m3j-node-copy{border-color:#67e8f943;box-shadow:0 14px 34px #0008,0 0 22px #22d3ee22,inset 0 1px 0 #ffffff17;animation:m3jInfoFloat 3.2s ease-in-out infinite}
.m3j-node:hover .m3j-node-copy{transform:translateY(-2px);border-color:#f9a8d43d;box-shadow:0 15px 34px #0008,0 0 20px #ec48991c,inset 0 1px 0 #ffffff17}
.m3j-route{z-index:-1;height:5px;border-radius:999px;background:linear-gradient(90deg,#31203f,#573260);box-shadow:0 0 10px #0008}
.m3j-route.traversed{position:absolute;background:linear-gradient(90deg,#fde68a,#f472b6 48%,#a78bfa);background-size:200% 100%;box-shadow:none;animation:m3jTrail 2.8s linear infinite}
.m3j-route.traversed:after{content:"";position:absolute;z-index:-1;inset:-7px -12px;border-radius:999px;background:linear-gradient(90deg,transparent 0%,#fde68aaa 14%,#f472b6cc 48%,#a78bfaaa 86%,transparent 100%);background-size:200% 100%;filter:blur(7px);opacity:.8;pointer-events:none;animation:m3jTrail 2.8s linear infinite}
.m3j-node.boss>a{animation:m3jBoss 4s linear infinite}.m3j-node.boss>a:before{border-radius:50%;inset:-15px;border-color:#fde68a99}
@keyframes m3jMist{to{transform:translate(45px,30px) scale(1.16)}}
@keyframes m3jMote{50%{transform:translateY(-24px) scale(1.5);opacity:.75}}
@keyframes m3jRouteFlow{to{background-position:0 220%}}
@keyframes m3jTrail{to{background-position:-200% 0}}
@keyframes m3jNodeEnter{from{opacity:0;transform:translateY(18px) scale(.94)}}
@keyframes m3jCurrent{50%{transform:scale(1.06);box-shadow:0 0 0 9px #10071ecc,0 15px 38px #0006,0 0 42px #22d3ee99}}
@keyframes m3jInfoFloat{50%{transform:translateY(-3px)}}
@keyframes m3jBoss{to{filter:hue-rotate(360deg)}}
@media(max-width:680px){.m3j-chapter{border-radius:22px}.m3j-map{padding-bottom:78px}.m3j-node-copy{padding:7px 9px}.m3j-atmosphere:before,.m3j-atmosphere:after{width:210px}.m3j-route{left:51px!important;width:calc(100% - 42px)!important}.m3j-node>a:hover{transform:none}}
@media(prefers-reduced-motion:reduce){.m3j-atmosphere:before,.m3j-atmosphere:after,.m3j-atmosphere i,.m3j-map:before,.m3j-node,.m3j-node.current>a,.m3j-node.current .m3j-node-copy,.m3j-node.boss>a,.m3j-route.traversed,.m3j-route.traversed:after{animation:none!important}}

/* Final world-art cascade: keep these after the legacy chapter skin rules. */
.m3j-chapter{background-position:center;background-size:cover}
.m3j-chapter-1{background-image:linear-gradient(180deg,#0715225c,#07111bd9 72%,#070b14f2),url('/assets/images/match3/journey-map-dawn-v1.webp?v=1')}
.m3j-chapter-2{background-image:linear-gradient(180deg,#080d1a70,#090818df 68%,#060710f5),url('/assets/images/match3/journey-board-enchanted-v1.webp?v=1')}
.m3j-chapter-1>header,.m3j-chapter-2>header{padding:clamp(18px,4vw,34px);border:1px solid #ffffff1c;border-radius:20px;background:#07111bb8;box-shadow:0 18px 48px #0007;backdrop-filter:blur(9px)}
.m3j-chapter-1 .m3j-node-copy,.m3j-chapter-2 .m3j-node-copy,.m3j-chapter-1 .m3j-node:nth-child(even) .m3j-node-copy,.m3j-chapter-2 .m3j-node:nth-child(even) .m3j-node-copy{background:linear-gradient(145deg,#07111be8,#11152bcf);box-shadow:0 12px 28px #0009,inset 0 1px #ffffff12}
@media(max-width:680px){.m3j-chapter-1>header,.m3j-chapter-2>header{padding:17px 12px}}

/* Level-scene contract: the obstacle, title and landscape now share a theme. */
.m3j-game-theme-energy{--m3j-scene-image:url('/assets/images/match3/journey-board-enchanted-v1.webp?v=1');--m3j-void-fill:#312e81aa}
.m3j-game-theme-ice{--m3j-scene-image:url('/assets/images/match3/journey-board-ice-v1.webp?v=1');--m3j-void-fill:#f8fafccc}
.m3j-game-theme-wood{--m3j-scene-image:url('/assets/images/match3/journey-board-forest-v1.webp?v=1');--m3j-void-fill:#3f2a16dd}
.m3j-game-theme-stone{--m3j-scene-image:url('/assets/images/match3/journey-board-stone-v1.webp?v=1');--m3j-void-fill:#475569dd}
.m3j-game-theme-mold{--m3j-scene-image:url('/assets/images/match3/journey-board-forest-v1.webp?v=1');--m3j-void-fill:#14532dcc}
.m3j-game .match3-board-wrap{background-image:linear-gradient(180deg,#07111d24,#03071282),var(--m3j-scene-image);background-position:center;background-size:cover}
.m3j-game .match3-board{background-image:linear-gradient(145deg,#050914a8,#04101ab8),var(--m3j-scene-image);background-position:center;background-size:cover}
.m3j-game-theme-mold .match3-board-wrap,.m3j-game-theme-mold .match3-board{background-image:linear-gradient(145deg,#052e165c,#020617bd),var(--m3j-scene-image)}

/* Masked cells become rocks, snow banks or roots instead of an empty square grid. */
.m3j-game .m3j-void{visibility:visible;opacity:.82;pointer-events:none}
.m3j-game .m3j-void:before{content:"";position:absolute;inset:7%;border:1px solid #ffffff1c;border-radius:38% 28% 42% 31%;background:radial-gradient(circle at 35% 28%,#ffffff38,transparent 27%),var(--m3j-void-fill);box-shadow:inset 0 -9px 14px #02061780,0 5px 10px #0008;transform:rotate(-5deg)}
.m3j-game .m3j-void:nth-child(3n):before{border-radius:27% 44% 30% 46%;transform:rotate(7deg) scale(.92)}
.m3j-game-theme-ice .m3j-void:before{border-color:#fff9;background:linear-gradient(145deg,#fff 0 34%,#dbeafe 35% 67%,#93c5fd 68%);box-shadow:inset 0 -7px 12px #60a5fa55,0 4px 9px #0007}
.m3j-game-theme-wood .m3j-void:before,.m3j-game-theme-mold .m3j-void:before{border-color:#713f12;background:repeating-linear-gradient(24deg,#2b180c 0 7px,#594020 8px 12px);box-shadow:inset 0 0 10px #000,0 4px 10px #0009}
.m3j-game-theme-mold .m3j-void:before{border-color:#4ade8066;background:radial-gradient(circle at 32% 28%,#86efac55 0 7%,transparent 8%),repeating-linear-gradient(24deg,#112b17 0 7px,#294d27 8px 12px)}
/* Shaped-board voids are one continuous terrain mass, not individual rocks. */
.m3j-game .m3j-void:before{inset:2%;border:1px solid color-mix(in srgb,var(--m3j-frame-edge,#94a3b8) 48%,transparent);border-radius:12%;background:radial-gradient(circle at calc(18% + var(--void-x)*7%) calc(16% + var(--void-y)*8%),#ffffff18,transparent 34%),linear-gradient(145deg,color-mix(in srgb,var(--m3j-void-fill) 88%,#fff 12%),var(--m3j-void-fill));background-size:800% 800%,100% 100%;background-position:calc(var(--void-x)*14.285%) calc(var(--void-y)*14.285%),center;box-shadow:inset 0 0 20px #02061780;transform:none}
.m3j-game .m3j-void.void-up:before{top:-12%;border-top-color:transparent;border-radius:0 0 12% 12%}.m3j-game .m3j-void.void-right:before{right:-12%;border-right-color:transparent;border-radius:12% 0 0 12%}.m3j-game .m3j-void.void-down:before{bottom:-12%;border-bottom-color:transparent;border-radius:12% 12% 0 0}.m3j-game .m3j-void.void-left:before{left:-12%;border-left-color:transparent;border-radius:0 12% 12% 0}
.m3j-game .m3j-void.void-up.void-down:before{border-radius:0}.m3j-game .m3j-void.void-left.void-right:before{border-radius:0}.m3j-game .m3j-void.void-up.void-left:before{border-top-left-radius:0}.m3j-game .m3j-void.void-up.void-right:before{border-top-right-radius:0}.m3j-game .m3j-void.void-down.void-left:before{border-bottom-left-radius:0}.m3j-game .m3j-void.void-down.void-right:before{border-bottom-right-radius:0}
.m3j-game[data-level="31"] .m3j-void:before{border-color:#8b735d80;background-image:url('/assets/images/match3/m3j-level31-narrow-earth-v1.webp?v=1')!important;background-size:800% 800%!important;background-position:calc(var(--void-x)*14.285%) calc(var(--void-y)*14.285%)!important;background-repeat:no-repeat!important;box-shadow:inset 0 0 18px #08060488,0 0 7px #0008}
.m3j-game[data-level="32"] .m3j-void:before{border-color:#a5f3fc70;background-image:url('/assets/images/match3/m3j-level32-light-funnel-v1.webp?v=1')!important;background-size:800% 800%!important;background-position:calc(var(--void-x)*14.285%) calc(var(--void-y)*14.285%)!important;background-repeat:no-repeat!important;box-shadow:inset 0 0 18px #07091a88,0 0 9px #67e8f94f}
.m3j-game[data-level="34"] .m3j-void{visibility:visible!important;z-index:1;opacity:1!important;overflow:visible}
.m3j-game .m3j-mask-terrain{display:none}
.m3j-game[data-level="34"] .match3-board:before,.m3j-game[data-level="34"] .match3-board:after{content:none}
.m3j-game[data-level="34"] .m3j-mask-terrain{display:none}
.m3j-game[data-level="34"] .m3j-void:before{inset:-5px!important;border:0!important;border-radius:0!important;background-image:linear-gradient(90deg,#0805117d,transparent 48%,#8b5cf626),url('/assets/images/match3/m3j-level34-broken-edge-v1.webp?v=1')!important;background-size:800% 800%,800% 800%!important;background-position:calc(var(--void-x)*14.285%) calc(var(--void-y)*14.285%),calc(var(--void-x)*14.285%) calc(var(--void-y)*14.285%)!important;background-repeat:no-repeat!important;box-shadow:none!important;transform:none!important;filter:saturate(.9) contrast(1.1)}
.m3j-game[data-level="34"] .m3j-void.void-up:before{top:-5px!important}.m3j-game[data-level="34"] .m3j-void.void-right:before{right:-5px!important}.m3j-game[data-level="34"] .m3j-void.void-down:before{bottom:-5px!important}.m3j-game[data-level="34"] .m3j-void.void-left:before{left:-5px!important}
.m3j-game:is(.m3j-board-shape-funnel,.m3j-board-shape-hourglass,.m3j-board-shape-zigzag,.m3j-board-shape-twin,.m3j-board-shape-diamond) .m3j-void{visibility:visible!important;z-index:1;overflow:visible;opacity:1!important}
.m3j-game:is(.m3j-board-shape-funnel,.m3j-board-shape-hourglass,.m3j-board-shape-zigzag,.m3j-board-shape-twin,.m3j-board-shape-diamond) .m3j-void:before{inset:-5px!important;border:0!important;border-radius:0!important;background-image:linear-gradient(135deg,#05030a59,transparent 48%,#a855f71e),var(--m3j-mask-art)!important;background-size:800% 800%,800% 800%!important;background-position:calc(var(--void-x)*14.285%) calc(var(--void-y)*14.285%),calc(var(--void-x)*14.285%) calc(var(--void-y)*14.285%)!important;background-repeat:no-repeat!important;box-shadow:none!important;transform:none!important;contain:paint}
.m3j-game:is(.m3j-board-shape-funnel,.m3j-board-shape-hourglass,.m3j-board-shape-zigzag,.m3j-board-shape-twin,.m3j-board-shape-diamond) .match3-gem:not(.m3j-void){z-index:2}
.m3j-game .match3-board-wrap>.m3j-board-result{position:absolute;z-index:60;inset:0;padding:14px;border-radius:23px;background:#03071270;backdrop-filter:blur(6px) saturate(.72)}
.m3j-game .match3-board-wrap>.m3j-board-result .match3-modal{width:min(92%,440px);max-height:92%;overflow:auto;padding:clamp(19px,5vw,30px);border-color:#ffffff26;background:linear-gradient(155deg,#1c1730ed,#07111eef);box-shadow:0 24px 70px #000c,0 0 55px color-mix(in srgb,var(--m3j-level-accent,#f472b6) 30%,transparent)}
.m3j-game .obstacle-crystal{--crystal-target:#a78bfa}.m3j-game .obstacle-crystal.crystal-target-cyan{--crystal-target:#22d3ee}.m3j-game .obstacle-crystal.crystal-target-coral{--crystal-target:#fb7185}.m3j-game .obstacle-crystal.crystal-target-gold{--crystal-target:#facc15}.m3j-game .obstacle-crystal.crystal-target-mint{--crystal-target:#4ade80}.m3j-game .obstacle-crystal.crystal-target-pink{--crystal-target:#f472b6}.m3j-game .obstacle-crystal .m3j-obstacle-layer{box-shadow:inset 0 0 0 3px var(--crystal-target),0 0 9px var(--crystal-target),0 5px 7px #000a!important}.m3j-crystal-target{position:absolute;z-index:4;left:50%;top:50%;display:grid;width:48%;height:48%;place-items:center;border:2px solid #fff;border-radius:50%;background:color-mix(in srgb,var(--crystal-target) 82%,#07101d);box-shadow:0 0 0 3px #050816b8,0 0 15px var(--crystal-target);color:#fff;font-size:clamp(14px,3.7vw,22px);font-weight:950;text-shadow:0 2px 5px #000;transform:translate(-50%,-50%)}
@media(max-width:430px){.m3j-game .match3-board-wrap>.m3j-board-result{padding:8px}.m3j-game .match3-board-wrap>.m3j-board-result .match3-modal{width:96%;padding:18px 13px}.m3j-game .match3-board-wrap>.m3j-board-result .match3-modal-actions{gap:7px;margin-top:14px}.m3j-game .match3-board-wrap>.m3j-board-result .button{min-height:45px}}
.m3j-game[data-level="34"] .match3-gem:not(.m3j-void){z-index:2}

/* Ice reads as snow-white frozen glass, not as another cyan energy gem. */
.obstacle-ice .m3j-obstacle-layer{border:4px solid #fff;background:linear-gradient(138deg,#fff 0 24%,#eef6ff 25% 48%,#bfdbfe 49% 69%,#f8fafc 70%);box-shadow:inset 0 0 0 3px #dbeafe,inset 0 -8px 16px #60a5fa66,0 0 13px #fff}.obstacle-ice .m3j-obstacle-layer em{color:#1e3a8a;text-shadow:0 1px 2px #fff,0 0 8px #fff}
.m3j-board-shape-funnel .match3-board,.m3j-board-shape-hourglass .match3-board,.m3j-board-shape-zigzag .match3-board,.m3j-board-shape-twin .match3-board,.m3j-board-shape-diamond .match3-board{border-color:var(--m3j-frame-edge);box-shadow:inset 0 0 36px #000b,0 0 0 3px #ffffff0c,0 18px 42px #000a}

/* Gameplay v3: the board is the hero, the HUD is instrumentation rather than cards. */
.m3j-game{width:min(100%,760px);padding-top:8px}
.m3j-game .match3-game-shell{position:relative;isolation:isolate;overflow:visible;padding:12px;border-color:#ffffff16;background:linear-gradient(180deg,#07101be8,#070916f2);box-shadow:0 20px 70px #0008}
.m3j-world-stage{position:absolute;z-index:0;inset:54px -110px -60px;overflow:hidden;border-radius:44px;pointer-events:none;mask-image:radial-gradient(ellipse at center,#000 45%,transparent 88%)}
.m3j-environment-canvas{display:block;width:100%;height:100%;opacity:.72;pointer-events:none}
.m3j-game .match3-game-shell>header,.m3j-game .match3-hud,.m3j-game .match3-goals,.m3j-game .match3-board-wrap,.m3j-game .match3-touch-hint{position:relative;z-index:1}
.m3j-game .match3-game-shell>header{min-height:43px;margin:0 0 7px;padding:0 4px}
.m3j-game .match3-game-shell>header .badge{padding:3px 8px;font-size:8px;letter-spacing:.12em}
.m3j-game .match3-game-shell>header h1{margin:2px 0 0;font-size:clamp(18px,3.4vw,25px);line-height:1.05}
.m3j-game .match3-game-shell>header>a{font-size:11px}
.m3j-game .match3-hud{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-bottom:7px}
.m3j-game .match3-hud>div{min-height:42px;padding:5px 3px;border-color:#ffffff10;border-radius:10px;background:#050914b8;box-shadow:inset 0 1px #ffffff0a}
.m3j-game .match3-hud small{font-size:7px;letter-spacing:.12em}
.m3j-game .match3-hud strong{margin-top:1px;font-size:clamp(15px,3.4vw,20px);line-height:1.1}
.m3j-game .m3j-hud-stars strong{color:#fde68a;font-size:clamp(13px,3vw,18px);letter-spacing:1px}
.m3j-game .match3-goals{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr) minmax(0,.85fr);gap:5px;width:min(100%,620px);margin-bottom:7px;padding:6px;border-radius:11px;background:#050914b5;box-shadow:0 7px 18px #0004}
.m3j-game .match3-goals>header{display:none}
.m3j-game .m3j-objective-chips{grid-column:1/-1;display:flex!important;gap:5px!important;margin:0!important;overflow-x:auto;scrollbar-width:none}
.m3j-game .m3j-objective-chips::-webkit-scrollbar{display:none}
.m3j-game .m3j-objective-chips>span{flex:1 0 94px;grid-template-columns:23px 1fr;min-height:34px;padding:4px 6px;border-radius:8px}
.m3j-game .m3j-objective-chips i{width:23px;height:23px;border-radius:7px;font-size:12px}
.m3j-game .m3j-objective-chips b{font-size:8px}.m3j-game .m3j-objective-chips small{font-size:7px;white-space:nowrap}
.m3j-game .match3-goals>.objective-main,.m3j-game .match3-goals>.star-tier{min-height:31px;margin:0;padding:3px 5px;border-radius:8px}
.m3j-game .match3-goals>.objective-main{grid-template-columns:20px 1fr}.m3j-game .match3-goals>.objective-main>span{font-size:9px}.m3j-game .match3-goals>.objective-main>b{font-size:8px!important;line-height:1.15}
.m3j-game .match3-goals>.star-tier{grid-template-columns:46px 1fr}.m3j-game .star-tier>span strong{font-size:9px}.m3j-game .star-tier>span small{display:none}.m3j-game .star-tier>b{font-size:8px!important;white-space:nowrap}
.m3j-game .match3-board-wrap{width:min(100%,620px);margin-top:0}
.m3j-game .match3-touch-hint{margin-top:6px;font-size:9px}

/* Chapter select v3: each chapter is a traversable world, not a page card. */
.m3j-page>.m3j-hero{min-height:0;padding:clamp(18px,4vw,34px);grid-template-columns:1fr auto}.m3j-page>.m3j-hero h1{font-size:clamp(34px,6vw,62px)}.m3j-page>.m3j-hero p{max-width:680px;margin-bottom:13px}.m3j-page>.m3j-hero .m3j-summary{width:150px;aspect-ratio:1}
.m3j-chapter{min-height:75vh;padding:clamp(18px,4vw,38px);border-radius:28px}
.m3j-map-environment{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none;opacity:.58;mask-image:linear-gradient(180deg,#000 0 88%,transparent)}
.m3j-chapter>header{position:sticky;z-index:4;top:148px;width:min(560px,92%);margin:0 auto;padding:12px 18px!important;border-radius:15px!important;background:#050914d9!important;box-shadow:0 12px 32px #0008!important;backdrop-filter:blur(12px)!important}
.m3j-chapter>header h2{margin:3px 0;font-size:clamp(24px,4vw,39px)}.m3j-chapter>header p{margin:4px 0;font-size:12px;line-height:1.45}
.m3j-map{z-index:3;gap:24px;margin-top:28px}.m3j-node{width:58%}.m3j-node-copy{padding:7px 10px!important;border-color:#ffffff20!important;background:#050914dc!important}.m3j-node-copy strong{font-size:13px}.m3j-node-copy small{font-size:7px}.m3j-node-copy span,.m3j-node-copy b{font-size:10px}
.m3j-node>a,.m3j-lock{width:68px;border-width:3px}.m3j-node>a span,.m3j-lock span{font-size:20px}.m3j-route{left:62px}.m3j-node:nth-child(even) .m3j-route{right:62px}
.m3j-world-switcher{position:sticky;z-index:12;top:68px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:min(760px,100%);margin:22px auto 10px;padding:6px;border:1px solid #ffffff18;border-radius:17px;background:#050914de;box-shadow:0 14px 34px #0008;backdrop-filter:blur(14px)}
.m3j-world-switcher button{display:grid;gap:2px;padding:10px 14px;border:1px solid transparent;border-radius:12px;background:transparent;color:#94a3b8;text-align:left;cursor:pointer}.m3j-world-switcher button:hover{background:#ffffff08}.m3j-world-switcher button[aria-pressed=true]{border-color:#f472b64f;background:linear-gradient(135deg,#ec48991f,#7c3aed1f);box-shadow:inset 0 1px #ffffff10,0 0 22px #ec489915;color:#fff}.m3j-world-switcher small{font-size:7px;font-weight:900;letter-spacing:.14em}.m3j-world-switcher strong{font-size:13px}.m3j-world-switcher span{font-size:8px;color:#94a3b8}

@media(max-width:680px){
 .m3j-game{padding:5px 5px 18px}.m3j-game .match3-game-shell{padding:7px;border-radius:17px}.m3j-world-stage{inset:46px 0 -18px;border-radius:24px;opacity:.78}
 .m3j-game .match3-game-shell>header{min-height:38px;margin-bottom:4px}.m3j-game .match3-game-shell>header h1{font-size:17px}.m3j-game .match3-game-shell>header>a{font-size:10px}
 .m3j-game .match3-hud{margin-bottom:4px}.m3j-game .match3-hud>div{min-height:36px;padding:3px 2px}.m3j-game .match3-hud strong{font-size:14px}.m3j-game .m3j-hud-stars strong{font-size:12px}
 .m3j-game .match3-goals{grid-template-columns:1fr 72px 72px;gap:3px;margin-bottom:4px;padding:4px}.m3j-game .match3-goals>.objective-main,.m3j-game .match3-goals>.star-tier{min-height:27px;padding:2px 3px}.m3j-game .match3-goals>.star-tier{grid-template-columns:25px 1fr}.m3j-game .star-tier>span strong{font-size:8px;letter-spacing:0}.m3j-game .star-tier>b{font-size:7px!important}
 .m3j-game .m3j-objective-chips>span{flex-basis:85px;min-height:30px}.m3j-game .match3-board-wrap{padding:9px}.m3j-game .match3-touch-hint{margin:4px 0 0}
 .m3j-page>.m3j-hero{grid-template-columns:1fr;padding:17px 14px}.m3j-page>.m3j-hero .m3j-summary{width:112px;position:absolute;right:13px;top:15px}.m3j-page>.m3j-hero h1{max-width:70%;font-size:31px}.m3j-page>.m3j-hero p{font-size:12px;padding-right:4px}
 .m3j-chapter{padding:13px 8px}.m3j-chapter>header{top:132px;width:94%;padding:9px 11px!important}.m3j-chapter>header h2{font-size:22px}.m3j-chapter>header p{font-size:10px}.m3j-map{gap:20px;padding-top:4px}.m3j-node,.m3j-node:nth-child(even){width:94%;grid-template-columns:58px 1fr;gap:9px}.m3j-node>a,.m3j-lock{width:54px}.m3j-route,.m3j-node:nth-child(even) .m3j-route{left:48px!important}.m3j-node-copy strong{font-size:11px}
 .m3j-world-switcher{top:60px;margin-top:12px}.m3j-world-switcher button{padding:8px}.m3j-world-switcher strong{font-size:10px}.m3j-world-switcher span{font-size:7px}
}

/* Gameplay world v4: map-like layered scenery replaces the unsuitable WebGL stage. */
.m3j-game .m3j-world-stage{display:block;inset:-36px -90px -70px;opacity:1;border-radius:52px;mask-image:linear-gradient(180deg,transparent,#000 8% 88%,transparent);background:radial-gradient(circle at 16% 26%,var(--m3j-scene-glow),transparent 23%),radial-gradient(circle at 84% 66%,var(--m3j-scene-glow),transparent 27%),linear-gradient(180deg,#05091422,#030712c7),var(--m3j-scene-image) center/cover no-repeat;filter:saturate(.84) contrast(1.06)}
.m3j-game .m3j-world-stage:before,.m3j-game .m3j-world-stage:after{content:"";position:absolute;pointer-events:none}
.m3j-game .m3j-world-stage:before{inset:0;background:linear-gradient(90deg,#030712d8,transparent 28% 72%,#030712d8),radial-gradient(ellipse at 50% 108%,var(--m3j-ground) 0 27%,transparent 56%)}
.m3j-game .m3j-world-stage:after{inset:10% 5%;border:1px solid color-mix(in srgb,var(--m3j-frame-edge) 42%,transparent);border-radius:38px;box-shadow:inset 0 0 75px #020617cc,0 0 45px var(--m3j-scene-glow);opacity:.68}
.m3j-game .m3j-environment-canvas,.m3j-game .m3j-world-foreground{display:none!important}
.m3j-game .match3-game-shell{border-color:color-mix(in srgb,var(--m3j-frame-edge) 34%,transparent);background:linear-gradient(180deg,#07101bd9,#070916ef);box-shadow:0 26px 80px #000b,0 0 55px color-mix(in srgb,var(--m3j-scene-glow) 58%,transparent)}
.m3j-game .match3-board-wrap{border-color:color-mix(in srgb,var(--m3j-frame-edge) 76%,transparent);box-shadow:inset 0 0 0 3px #030712aa,inset 0 0 30px #0009,0 18px 52px #000c,0 0 34px var(--m3j-scene-glow)}

/* Star achievements must remain readable without widening the mobile HUD. */
.m3j-game .match3-goals,.m3j-game .match3-goals>*{min-width:0;max-width:100%}
.m3j-game .match3-goals>.star-tier{overflow:hidden}
.m3j-game .match3-goals>.star-tier>b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:680px){
 .m3j-game .m3j-world-stage{inset:26px -8px -25px;border-radius:24px;mask-image:linear-gradient(180deg,transparent,#000 5% 94%,transparent)}
 .m3j-game .match3-goals{grid-template-columns:minmax(0,1fr) minmax(58px,.55fr) minmax(58px,.55fr);width:100%;overflow:hidden}
 .m3j-game .match3-goals>.star-tier{grid-template-columns:20px minmax(0,1fr);padding-inline:3px}
 .m3j-game .match3-goals>.star-tier>span strong{font-size:7px;letter-spacing:-1px}
 .m3j-game .match3-goals>.star-tier>b{font-size:6.5px!important;text-align:right}
}
@media(max-width:360px){
 .m3j-game .match3-goals{grid-template-columns:minmax(0,1fr) 54px 54px}
 .m3j-game .match3-goals>.star-tier{grid-template-columns:16px minmax(0,1fr)}
 .m3j-game .match3-goals>.star-tier>b{font-size:6px!important}
}

/* Journey map is deliberately 2D: progression stays readable while gameplay keeps WebGL. */
.m3j-map-environment{display:none!important}
.m3j-chapter{--map-accent:#f472b6;--map-accent-2:#a855f7;position:relative;min-height:0;padding:clamp(18px,4vw,34px);overflow:hidden;border-color:#f472b638;background:linear-gradient(180deg,#160b25c7,#070d18f2),url('/assets/images/match3/journey-map-dawn-v1.webp?v=1') center top/cover fixed;box-shadow:0 28px 80px #0008,inset 0 1px #ffffff12}
.m3j-chapter-2{--map-accent:#67e8f9;--map-accent-2:#c084fc;border-color:#67e8f938;background:linear-gradient(180deg,#0c1328c9,#080914f4),url('/assets/images/match3/journey-board-enchanted-v1.webp?v=1') center top/cover fixed}
.m3j-chapter:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 16% 18%,color-mix(in srgb,var(--map-accent) 16%,transparent),transparent 28%),radial-gradient(circle at 82% 62%,color-mix(in srgb,var(--map-accent-2) 13%,transparent),transparent 30%),linear-gradient(90deg,#030712a8,transparent 22% 78%,#030712a8)}
.m3j-chapter .m3j-atmosphere{z-index:1;opacity:.38}.m3j-chapter .m3j-atmosphere i{background:var(--map-accent);box-shadow:0 0 14px var(--map-accent)}
.m3j-chapter>header{position:relative;z-index:3;width:min(620px,100%);margin:0 auto 30px!important;padding:14px 18px!important;border:1px solid color-mix(in srgb,var(--map-accent) 24%,transparent)!important;border-radius:18px!important;background:linear-gradient(145deg,#080d18e8,#111126d9)!important;box-shadow:0 16px 42px #0008,inset 0 1px #ffffff12!important;text-align:left!important;backdrop-filter:blur(14px)!important}
.m3j-chapter>header span{color:var(--map-accent)}.m3j-chapter>header h2{margin:3px 0;font-size:clamp(25px,4vw,38px)}.m3j-chapter>header p{max-width:560px;margin:3px 0;color:#b7c0d1;font-size:12px;line-height:1.45}
.m3j-map{z-index:2;display:flex;max-width:800px;gap:26px;margin:0 auto;padding:8px 5% 70px;flex-direction:column}
.m3j-map:before{top:18px;bottom:50px;width:3px;background:linear-gradient(var(--map-accent),var(--map-accent-2));box-shadow:0 0 13px color-mix(in srgb,var(--map-accent) 62%,transparent);opacity:.36}
.m3j-node{z-index:2;display:flex;width:52%;min-height:82px;gap:14px;opacity:0;transform:translateY(16px);transition:opacity .48s ease,transform .55s ease}.m3j-node.is-visible{opacity:1;transform:none}
.m3j-node:nth-child(even){align-self:flex-end;flex-direction:row-reverse;text-align:right}
.m3j-node>a,.m3j-lock{width:68px;flex:0 0 68px;border-width:3px;border-radius:24px;background:radial-gradient(circle at 30% 24%,#ffffff34,transparent 26%),linear-gradient(145deg,var(--map-accent),var(--map-accent-2));box-shadow:0 0 0 6px #080b18d9,0 14px 32px #0009,0 0 26px color-mix(in srgb,var(--map-accent) 35%,transparent);transition:transform .24s ease,box-shadow .24s ease}
.m3j-node>a:hover{transform:translateY(-4px) scale(1.045)}.m3j-node.completed>a{border-color:#fde68a}.m3j-node.current>a{animation:m3j-map-current 2.5s ease-in-out infinite}.m3j-node.locked .m3j-lock{border-color:#536176;background:linear-gradient(145deg,#273449,#111827);box-shadow:0 0 0 6px #080b18d9,0 12px 25px #0008}
.m3j-node-copy{min-width:0;padding:8px 11px;border:1px solid #ffffff15;border-radius:13px;background:linear-gradient(145deg,#080d18e8,#111126d7);box-shadow:0 10px 25px #0007,inset 0 1px #ffffff0d;backdrop-filter:blur(10px)}
.m3j-node-copy small{color:var(--map-accent);font-size:8px;letter-spacing:.11em}.m3j-node-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.m3j-node-copy>span{font-size:11px}.m3j-node-copy>b{font-size:10px}
.m3j-route,.m3j-node:nth-child(even) .m3j-route{z-index:-1;top:50%;width:calc(100% + 30px);height:72px;background:none;border:0;border-bottom:3px dashed #64748b55;border-radius:0 0 48px}
.m3j-route{left:34px;border-right:3px dashed #64748b55}.m3j-node:nth-child(even) .m3j-route{right:34px;left:auto;border-right:0;border-left:3px dashed #64748b55}
.m3j-route.traversed{background:none;border-color:var(--map-accent);border-style:solid;box-shadow:none;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--map-accent) 65%,transparent))}
@keyframes m3j-map-current{50%{box-shadow:0 0 0 9px color-mix(in srgb,var(--map-accent) 12%,transparent),0 14px 34px #0009,0 0 38px color-mix(in srgb,var(--map-accent) 55%,transparent)}}

/* Level detail uses layered scenery rather than two generic panel boxes. */
.m3j-level{position:relative;isolation:isolate;padding-bottom:40px}.m3j-level:before,.m3j-level:after{content:"";position:absolute;z-index:-1;pointer-events:none;border-radius:50%;filter:blur(70px)}.m3j-level:before{width:42vw;height:42vw;top:20px;left:-16vw;background:#ec489922}.m3j-level:after{width:38vw;height:38vw;right:-14vw;bottom:0;background:#7c3aed20}
.m3j-level-hero{position:relative;overflow:hidden;align-items:center;border-color:#f472b646;background:radial-gradient(circle at 82% 18%,#f472b633,transparent 25%),linear-gradient(125deg,#26102fe8,#081522e8);box-shadow:0 25px 75px #0008,inset 0 1px #ffffff12}
.m3j-level-hero:after{content:"";position:absolute;right:-6%;bottom:-45%;width:48%;aspect-ratio:1;border:1px solid #f9a8d43a;border-radius:42% 58% 55% 45%;box-shadow:0 0 70px #ec48992a;transform:rotate(24deg)}
.m3j-level-grid{position:relative;gap:26px;padding:18px 0}.m3j-level-grid:before{content:"";position:absolute;z-index:-1;inset:-15px -4%;border-radius:36px;background:linear-gradient(90deg,#ec48990a,transparent 32% 68%,#7c3aed0b)}
.m3j-level-grid>.panel{position:relative;padding:8px 4px;border:0;background:transparent;box-shadow:none}.m3j-level-grid>.panel:first-child{padding-right:20px;border-right:1px solid #ffffff17}.m3j-level-grid h2{display:flex;align-items:center;gap:10px;margin:0 0 15px;font-size:20px}.m3j-level-grid h2:before{content:"✦";color:#f9a8d4;text-shadow:0 0 14px #ec4899}
.m3j-goals li,.m3j-features>div{border:1px solid #ffffff12;background:linear-gradient(100deg,#ffffff09,transparent);box-shadow:inset 0 1px #ffffff0a}.m3j-features i{border:1px solid #f472b634;background:linear-gradient(145deg,#ec48992d,#7c3aed28);box-shadow:0 0 18px #ec489914}
@media(max-width:680px){
 .m3j-chapter{padding:13px 10px 20px;background-attachment:scroll}.m3j-chapter>header{margin-bottom:23px!important;padding:12px!important}.m3j-map{gap:22px;padding:4px 2px 58px}.m3j-node,.m3j-node:nth-child(even){box-sizing:border-box;width:100%;min-width:0;min-height:75px;align-self:stretch;text-align:left}.m3j-node:nth-child(odd){padding-right:18px;flex-direction:row}.m3j-node:nth-child(even){padding-left:18px;flex-direction:row-reverse;text-align:right}.m3j-node>a,.m3j-lock{width:60px;flex-basis:60px}.m3j-node-copy{flex:1;padding:7px 9px}.m3j-node-copy strong{font-size:12px}.m3j-route,.m3j-node:nth-child(even) .m3j-route{top:50%;width:calc(100% - 60px);height:66px}.m3j-route{left:30px}.m3j-node:nth-child(even) .m3j-route{right:30px}.m3j-level-grid{grid-template-columns:1fr;gap:8px}.m3j-level-grid>.panel:first-child{padding-right:4px;padding-bottom:18px;border-right:0;border-bottom:1px solid #ffffff17}.m3j-level-hero{padding:22px 17px}.m3j-level-best{min-width:0}
}
@media(prefers-reduced-motion:reduce){.m3j-node{opacity:1;transform:none}.m3j-node.current>a{animation:none}}

/* Realtime world layer: WebGL is the near environment; raster art is distant fallback only. */
.m3j-game .match3-game-shell{background:linear-gradient(180deg,#07101bc9,#070916d8);box-shadow:0 28px 90px #000b,0 0 90px #163e2670}
.m3j-world-stage{inset:-72px -250px -105px;border-radius:70px;opacity:1;mask-image:radial-gradient(ellipse at center,#000 58%,#000b 76%,transparent 98%)}
.m3j-environment-canvas{opacity:1}
.m3j-world-foreground{position:absolute;z-index:3;inset:-72px -250px -105px;overflow:hidden;border-radius:70px;pointer-events:none;mask-image:radial-gradient(ellipse at center,#000 66%,transparent 98%)}
.m3j-world-foreground .m3j-environment-canvas{width:100%;height:100%}
.m3j-game .match3-game-shell>header,.m3j-game .match3-hud,.m3j-game .match3-goals,.m3j-game .match3-board-wrap,.m3j-game .match3-touch-hint{z-index:2}
.m3j-game-theme-wood .match3-board-wrap{background-image:linear-gradient(180deg,#07111d82,#030712df),var(--m3j-scene-image);box-shadow:0 0 0 2px #d99b4d8c,0 20px 50px #000d,0 0 42px #e88d2530}
.m3j-game-theme-wood .match3-board{background-image:linear-gradient(145deg,#050914dc,#04101ae6),var(--m3j-scene-image)}
.m3j-map-environment{position:sticky;top:72px;inset:auto;height:calc(100vh - 80px);margin-bottom:calc(-100vh + 80px);opacity:1;mask-image:linear-gradient(180deg,#000 0 94%,transparent)}
.m3j-chapter{isolation:isolate;background-blend-mode:multiply;background-color:#07101a99}
.m3j-chapter>header{position:relative;top:auto;margin-bottom:44px!important}
.m3j-map{margin-top:0}
@media(max-width:680px){
 .m3j-game{overflow:clip}.m3j-world-stage,.m3j-world-foreground{inset:34px -24px -36px;border-radius:30px;mask-image:radial-gradient(ellipse at center,#000 70%,transparent 100%)}
 .m3j-game .match3-board-wrap{width:calc(100% - 24px)}
 .m3j-game .match3-game-shell{background:linear-gradient(180deg,#07101bdc,#070916e8)}
 .m3j-chapter>header{width:100%;margin:0 0 28px!important}
 .m3j-map{padding-top:0}
}

/* Final gameplay presentation contract: layered 2D world, compact safe HUD. */
.m3j-game .m3j-world-stage{display:block;inset:-36px -90px -70px;opacity:1;border-radius:52px;mask-image:linear-gradient(180deg,transparent,#000 8% 88%,transparent);background:radial-gradient(circle at 16% 26%,var(--m3j-scene-glow),transparent 23%),radial-gradient(circle at 84% 66%,var(--m3j-scene-glow),transparent 27%),linear-gradient(180deg,#05091422,#030712c7),var(--m3j-scene-image) center/cover no-repeat;filter:saturate(.84) contrast(1.06)}
.m3j-game .match3-game-shell{border-color:color-mix(in srgb,var(--m3j-frame-edge) 34%,transparent);background:linear-gradient(180deg,#07101bd9,#070916ef);box-shadow:0 26px 80px #000b,0 0 55px color-mix(in srgb,var(--m3j-scene-glow) 58%,transparent)}
@media(max-width:680px){.m3j-game .m3j-world-stage{inset:26px -8px -25px;border-radius:24px;mask-image:linear-gradient(180deg,transparent,#000 5% 94%,transparent)}}

/* Hero progress console: compact, dimensional and clearly game-like. */
.m3j-hero-progress{position:relative;display:grid;grid-template-columns:168px minmax(126px,1fr);align-items:center;gap:14px;min-width:320px;padding:12px;border:1px solid #f9a8d435;border-radius:28px;background:radial-gradient(circle at 24% 22%,#ec489927,transparent 38%),linear-gradient(145deg,#12091fd9,#070d18e8);box-shadow:0 22px 60px #0008,inset 0 1px #ffffff15;isolation:isolate}
.m3j-hero-progress:before,.m3j-hero-progress:after{content:"";position:absolute;z-index:-1;border-radius:50%;pointer-events:none}.m3j-hero-progress:before{width:90px;height:90px;right:-16px;top:-26px;background:#ec489925;filter:blur(25px);animation:m3j-hero-drift 5s ease-in-out infinite}.m3j-hero-progress:after{width:7px;height:7px;left:48%;top:12%;background:#fde68a;box-shadow:46px 28px 0 #f9a8d4,-34px 66px 0 #c084fc,70px 105px 0 #67e8f9;animation:m3j-hero-spark 3.2s ease-in-out infinite}
.m3j-page>.m3j-hero .m3j-summary{position:relative;width:168px;aspect-ratio:1;display:flex;margin:0;align-items:center;justify-content:center;flex-direction:column;border:0;border-radius:50%;background:radial-gradient(circle,#0b1020 0 58%,#111227 59% 68%,#070812 69%);box-shadow:0 0 0 1px #ffffff18,0 0 0 8px #ec48990d,0 15px 38px #0009,0 0 36px #ec48992b;text-align:center}
.m3j-summary-ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);overflow:visible}.m3j-summary-ring circle{fill:none;stroke:#ffffff13;stroke-width:6}.m3j-summary-ring circle:last-child{stroke:#fde68a;stroke-linecap:round;filter:drop-shadow(0 0 4px #f59e0b);animation:m3j-ring-arrive .7s ease-out both}@keyframes m3j-ring-arrive{from{stroke-dasharray:0 100}}
.m3j-page>.m3j-hero .m3j-summary:before{content:"";position:absolute;inset:9px;border:1px dashed #f9a8d44a;border-radius:50%;animation:m3j-summary-spin 18s linear infinite}.m3j-page>.m3j-hero .m3j-summary>i{position:absolute;inset:-5px;border:1px solid #c084fc35;border-radius:50%;box-shadow:inset 0 0 22px #ec48991c;animation:m3j-summary-pulse 2.8s ease-in-out infinite}
.m3j-page>.m3j-hero .m3j-summary-kicker{max-width:110px;color:#f9a8d4;font-size:7px;font-weight:950;letter-spacing:.14em;line-height:1.25}.m3j-page>.m3j-hero .m3j-summary strong{margin:4px 0 1px;color:#fff;font-size:38px;line-height:1;text-shadow:0 0 20px #f472b65c}.m3j-page>.m3j-hero .m3j-summary strong small{color:#94a3b8;font-size:15px}.m3j-page>.m3j-hero .m3j-summary>span:last-of-type{color:#cbd5e1;font-size:9px}
.m3j-summary-stats{display:grid;gap:8px}.m3j-summary-stats>span{position:relative;display:grid;grid-template-columns:30px 1fr;min-width:0;padding:10px;border:1px solid #ffffff12;border-radius:14px;background:linear-gradient(110deg,#ffffff0b,#ffffff03);box-shadow:inset 0 1px #ffffff0e}.m3j-summary-stats i{grid-row:1/3;display:grid;width:27px;height:27px;place-items:center;border-radius:9px;background:#f59e0b1d;color:#fde68a;font-style:normal;box-shadow:0 0 16px #f59e0b1c}.m3j-summary-stats small{color:#8e9aad;font-size:7px;font-weight:900;letter-spacing:.12em}.m3j-summary-stats strong{overflow:hidden;color:#f8fafc;font-size:14px;text-overflow:ellipsis;white-space:nowrap}
@keyframes m3j-summary-spin{to{transform:rotate(1turn)}}@keyframes m3j-summary-pulse{50%{transform:scale(1.035);opacity:.65}}@keyframes m3j-hero-drift{50%{transform:translate(-14px,10px) scale(1.12)}}@keyframes m3j-hero-spark{50%{transform:translateY(8px);opacity:.35}}
@media(max-width:760px){.m3j-page>.m3j-hero{display:block}.m3j-page>.m3j-hero h1{max-width:none;padding-right:0}.m3j-hero-progress{position:relative;min-width:0;width:100%;margin-top:16px;grid-template-columns:112px minmax(0,1fr)}.m3j-page>.m3j-hero .m3j-summary{position:relative;top:auto;right:auto;width:112px}.m3j-page>.m3j-hero .m3j-summary strong{font-size:27px}.m3j-page>.m3j-hero .m3j-summary-kicker{font-size:6px}.m3j-summary-stats>span{padding:8px}.m3j-summary-stats strong{font-size:12px}}
@media(max-width:360px){.m3j-hero-progress{grid-template-columns:98px minmax(0,1fr);gap:8px;padding:8px}.m3j-page>.m3j-hero .m3j-summary{width:98px}.m3j-summary-stats>span{grid-template-columns:24px 1fr;padding:7px}.m3j-summary-stats i{width:22px;height:22px}.m3j-summary-stats strong{font-size:11px}}
@media(prefers-reduced-motion:reduce){.m3j-hero-progress:before,.m3j-hero-progress:after,.m3j-page>.m3j-hero .m3j-summary:before,.m3j-page>.m3j-hero .m3j-summary>i{animation:none}}

/* Per-level art direction: shared atlases, unique deterministic composition. */
.m3j-art-chapter-1{--m3j-level-art:url('/assets/images/match3/m3j-atlas-chapter1-v1.png')}
.m3j-art-chapter-2{--m3j-level-art:url('/assets/images/match3/m3j-atlas-chapter2-v1.png')}
.m3j-art-panel-0{--m3j-level-art-x:0%;--m3j-level-art-y:0%}.m3j-art-panel-1{--m3j-level-art-x:100%;--m3j-level-art-y:0%}.m3j-art-panel-2{--m3j-level-art-x:0%;--m3j-level-art-y:100%}.m3j-art-panel-3{--m3j-level-art-x:100%;--m3j-level-art-y:100%}
[data-m3j-art-level="1"]{--m3j-level-hue:4deg;--m3j-level-accent:hsl(329 82% 68%);--m3j-level-light-x:41%;--m3j-level-light-y:31%}
[data-m3j-art-level="2"]{--m3j-level-hue:-18deg;--m3j-level-accent:hsl(346 82% 68%);--m3j-level-light-x:64%;--m3j-level-light-y:50%}
[data-m3j-art-level="3"]{--m3j-level-hue:11deg;--m3j-level-accent:hsl(3 82% 68%);--m3j-level-light-x:22%;--m3j-level-light-y:17%}
[data-m3j-art-level="4"]{--m3j-level-hue:-11deg;--m3j-level-accent:hsl(20 82% 68%);--m3j-level-light-x:45%;--m3j-level-light-y:36%}
[data-m3j-art-level="5"]{--m3j-level-hue:18deg;--m3j-level-accent:hsl(37 82% 68%);--m3j-level-light-x:68%;--m3j-level-light-y:55%}
[data-m3j-art-level="6"]{--m3j-level-hue:-4deg;--m3j-level-accent:hsl(54 82% 68%);--m3j-level-light-x:26%;--m3j-level-light-y:22%}
[data-m3j-art-level="7"]{--m3j-level-hue:25deg;--m3j-level-accent:hsl(71 82% 68%);--m3j-level-light-x:49%;--m3j-level-light-y:41%}
[data-m3j-art-level="8"]{--m3j-level-hue:3deg;--m3j-level-accent:hsl(88 82% 68%);--m3j-level-light-x:72%;--m3j-level-light-y:60%}
[data-m3j-art-level="9"]{--m3j-level-hue:-19deg;--m3j-level-accent:hsl(105 82% 68%);--m3j-level-light-x:30%;--m3j-level-light-y:27%}
[data-m3j-art-level="10"]{--m3j-level-hue:10deg;--m3j-level-accent:hsl(122 82% 68%);--m3j-level-light-x:53%;--m3j-level-light-y:46%}
[data-m3j-art-level="11"]{--m3j-level-hue:-12deg;--m3j-level-accent:hsl(139 82% 68%);--m3j-level-light-x:76%;--m3j-level-light-y:13%}
[data-m3j-art-level="12"]{--m3j-level-hue:17deg;--m3j-level-accent:hsl(156 82% 68%);--m3j-level-light-x:34%;--m3j-level-light-y:32%}
[data-m3j-art-level="13"]{--m3j-level-hue:-5deg;--m3j-level-accent:hsl(173 82% 68%);--m3j-level-light-x:57%;--m3j-level-light-y:51%}
[data-m3j-art-level="14"]{--m3j-level-hue:24deg;--m3j-level-accent:hsl(190 82% 68%);--m3j-level-light-x:80%;--m3j-level-light-y:18%}
[data-m3j-art-level="15"]{--m3j-level-hue:2deg;--m3j-level-accent:hsl(207 82% 68%);--m3j-level-light-x:38%;--m3j-level-light-y:37%}
[data-m3j-art-level="16"]{--m3j-level-hue:-20deg;--m3j-level-accent:hsl(224 82% 68%);--m3j-level-light-x:61%;--m3j-level-light-y:56%}
[data-m3j-art-level="17"]{--m3j-level-hue:9deg;--m3j-level-accent:hsl(241 82% 68%);--m3j-level-light-x:19%;--m3j-level-light-y:23%}
[data-m3j-art-level="18"]{--m3j-level-hue:-13deg;--m3j-level-accent:hsl(258 82% 68%);--m3j-level-light-x:42%;--m3j-level-light-y:42%}
[data-m3j-art-level="19"]{--m3j-level-hue:16deg;--m3j-level-accent:hsl(275 82% 68%);--m3j-level-light-x:65%;--m3j-level-light-y:61%}
[data-m3j-art-level="20"]{--m3j-level-hue:-6deg;--m3j-level-accent:hsl(292 82% 68%);--m3j-level-light-x:23%;--m3j-level-light-y:28%}
[data-m3j-art-level="21"]{--m3j-level-hue:23deg;--m3j-level-accent:hsl(309 82% 68%);--m3j-level-light-x:46%;--m3j-level-light-y:47%}
[data-m3j-art-level="22"]{--m3j-level-hue:1deg;--m3j-level-accent:hsl(326 82% 68%);--m3j-level-light-x:69%;--m3j-level-light-y:14%}
[data-m3j-art-level="23"]{--m3j-level-hue:-21deg;--m3j-level-accent:hsl(343 82% 68%);--m3j-level-light-x:27%;--m3j-level-light-y:33%}
[data-m3j-art-level="24"]{--m3j-level-hue:8deg;--m3j-level-accent:hsl(0 82% 68%);--m3j-level-light-x:50%;--m3j-level-light-y:52%}
[data-m3j-art-level="25"]{--m3j-level-hue:-14deg;--m3j-level-accent:hsl(17 82% 68%);--m3j-level-light-x:73%;--m3j-level-light-y:19%}
[data-m3j-art-level="26"]{--m3j-level-hue:15deg;--m3j-level-accent:hsl(34 82% 68%);--m3j-level-light-x:31%;--m3j-level-light-y:38%}
[data-m3j-art-level="27"]{--m3j-level-hue:-7deg;--m3j-level-accent:hsl(51 82% 68%);--m3j-level-light-x:54%;--m3j-level-light-y:57%}
[data-m3j-art-level="28"]{--m3j-level-hue:22deg;--m3j-level-accent:hsl(68 82% 68%);--m3j-level-light-x:77%;--m3j-level-light-y:24%}
[data-m3j-art-level="29"]{--m3j-level-hue:0deg;--m3j-level-accent:hsl(85 82% 68%);--m3j-level-light-x:35%;--m3j-level-light-y:43%}
[data-m3j-art-level="30"]{--m3j-level-hue:-22deg;--m3j-level-accent:hsl(102 82% 68%);--m3j-level-light-x:58%;--m3j-level-light-y:62%}
[data-m3j-art-level="31"]{--m3j-level-hue:7deg;--m3j-level-accent:hsl(119 82% 68%);--m3j-level-light-x:81%;--m3j-level-light-y:29%}
[data-m3j-art-level="32"]{--m3j-level-hue:-15deg;--m3j-level-accent:hsl(136 82% 68%);--m3j-level-light-x:39%;--m3j-level-light-y:48%}
[data-m3j-art-level="33"]{--m3j-level-hue:14deg;--m3j-level-accent:hsl(153 82% 68%);--m3j-level-light-x:62%;--m3j-level-light-y:15%}
[data-m3j-art-level="34"]{--m3j-level-hue:-8deg;--m3j-level-accent:hsl(170 82% 68%);--m3j-level-light-x:20%;--m3j-level-light-y:34%}
[data-m3j-art-level="35"]{--m3j-level-hue:21deg;--m3j-level-accent:hsl(187 82% 68%);--m3j-level-light-x:43%;--m3j-level-light-y:53%}
[data-m3j-art-level="36"]{--m3j-level-hue:-1deg;--m3j-level-accent:hsl(204 82% 68%);--m3j-level-light-x:66%;--m3j-level-light-y:20%}
[data-m3j-art-level="37"]{--m3j-level-hue:-23deg;--m3j-level-accent:hsl(221 82% 68%);--m3j-level-light-x:24%;--m3j-level-light-y:39%}
[data-m3j-art-level="38"]{--m3j-level-hue:6deg;--m3j-level-accent:hsl(238 82% 68%);--m3j-level-light-x:47%;--m3j-level-light-y:58%}
[data-m3j-art-level="39"]{--m3j-level-hue:-16deg;--m3j-level-accent:hsl(255 82% 68%);--m3j-level-light-x:70%;--m3j-level-light-y:25%}
[data-m3j-art-level="40"]{--m3j-level-hue:13deg;--m3j-level-accent:hsl(272 82% 68%);--m3j-level-light-x:28%;--m3j-level-light-y:44%}
[data-m3j-art-level="41"]{--m3j-level-hue:-9deg;--m3j-level-accent:hsl(289 82% 68%);--m3j-level-light-x:51%;--m3j-level-light-y:63%}
[data-m3j-art-level="42"]{--m3j-level-hue:20deg;--m3j-level-accent:hsl(306 82% 68%);--m3j-level-light-x:74%;--m3j-level-light-y:30%}
[data-m3j-art-level="43"]{--m3j-level-hue:-2deg;--m3j-level-accent:hsl(323 82% 68%);--m3j-level-light-x:32%;--m3j-level-light-y:49%}
[data-m3j-art-level="44"]{--m3j-level-hue:-24deg;--m3j-level-accent:hsl(340 82% 68%);--m3j-level-light-x:55%;--m3j-level-light-y:16%}
[data-m3j-art-level="45"]{--m3j-level-hue:5deg;--m3j-level-accent:hsl(357 82% 68%);--m3j-level-light-x:78%;--m3j-level-light-y:35%}
[data-m3j-art-level="46"]{--m3j-level-hue:-17deg;--m3j-level-accent:hsl(14 82% 68%);--m3j-level-light-x:36%;--m3j-level-light-y:54%}
[data-m3j-art-level="47"]{--m3j-level-hue:12deg;--m3j-level-accent:hsl(31 82% 68%);--m3j-level-light-x:59%;--m3j-level-light-y:21%}
[data-m3j-art-level="48"]{--m3j-level-hue:-10deg;--m3j-level-accent:hsl(48 82% 68%);--m3j-level-light-x:82%;--m3j-level-light-y:40%}
[data-m3j-art-level="49"]{--m3j-level-hue:19deg;--m3j-level-accent:hsl(65 82% 68%);--m3j-level-light-x:40%;--m3j-level-light-y:59%}
[data-m3j-art-level="50"]{--m3j-level-hue:-3deg;--m3j-level-accent:hsl(82 82% 68%);--m3j-level-light-x:63%;--m3j-level-light-y:26%}
[data-m3j-art-level="51"]{--m3j-level-hue:-25deg;--m3j-level-accent:hsl(99 82% 68%);--m3j-level-light-x:21%;--m3j-level-light-y:45%}
[data-m3j-art-level="52"]{--m3j-level-hue:4deg;--m3j-level-accent:hsl(116 82% 68%);--m3j-level-light-x:44%;--m3j-level-light-y:12%}
[data-m3j-art-level="53"]{--m3j-level-hue:-18deg;--m3j-level-accent:hsl(133 82% 68%);--m3j-level-light-x:67%;--m3j-level-light-y:31%}
[data-m3j-art-level="54"]{--m3j-level-hue:11deg;--m3j-level-accent:hsl(150 82% 68%);--m3j-level-light-x:25%;--m3j-level-light-y:50%}
[data-m3j-art-level="55"]{--m3j-level-hue:-11deg;--m3j-level-accent:hsl(167 82% 68%);--m3j-level-light-x:48%;--m3j-level-light-y:17%}
[data-m3j-art-level="56"]{--m3j-level-hue:18deg;--m3j-level-accent:hsl(184 82% 68%);--m3j-level-light-x:71%;--m3j-level-light-y:36%}
[data-m3j-art-level="57"]{--m3j-level-hue:-4deg;--m3j-level-accent:hsl(201 82% 68%);--m3j-level-light-x:29%;--m3j-level-light-y:55%}
[data-m3j-art-level="58"]{--m3j-level-hue:25deg;--m3j-level-accent:hsl(218 82% 68%);--m3j-level-light-x:52%;--m3j-level-light-y:22%}
[data-m3j-art-level="59"]{--m3j-level-hue:3deg;--m3j-level-accent:hsl(235 82% 68%);--m3j-level-light-x:75%;--m3j-level-light-y:41%}
[data-m3j-art-level="60"]{--m3j-level-hue:-19deg;--m3j-level-accent:hsl(252 82% 68%);--m3j-level-light-x:33%;--m3j-level-light-y:60%}
[data-m3j-art-level="61"]{--m3j-level-hue:10deg;--m3j-level-accent:hsl(269 82% 68%);--m3j-level-light-x:56%;--m3j-level-light-y:27%}
[data-m3j-art-level="62"]{--m3j-level-hue:-12deg;--m3j-level-accent:hsl(286 82% 68%);--m3j-level-light-x:79%;--m3j-level-light-y:46%}
[data-m3j-art-level="63"]{--m3j-level-hue:17deg;--m3j-level-accent:hsl(303 82% 68%);--m3j-level-light-x:37%;--m3j-level-light-y:13%}
[data-m3j-art-level="64"]{--m3j-level-hue:-5deg;--m3j-level-accent:hsl(320 82% 68%);--m3j-level-light-x:60%;--m3j-level-light-y:32%}
[data-m3j-art-level="65"]{--m3j-level-hue:24deg;--m3j-level-accent:hsl(337 82% 68%);--m3j-level-light-x:18%;--m3j-level-light-y:51%}
[data-m3j-art-level="66"]{--m3j-level-hue:2deg;--m3j-level-accent:hsl(354 82% 68%);--m3j-level-light-x:41%;--m3j-level-light-y:18%}
[data-m3j-art-level="67"]{--m3j-level-hue:-20deg;--m3j-level-accent:hsl(11 82% 68%);--m3j-level-light-x:64%;--m3j-level-light-y:37%}
[data-m3j-art-level="68"]{--m3j-level-hue:9deg;--m3j-level-accent:hsl(28 82% 68%);--m3j-level-light-x:22%;--m3j-level-light-y:56%}
[data-m3j-art-level="69"]{--m3j-level-hue:-13deg;--m3j-level-accent:hsl(45 82% 68%);--m3j-level-light-x:45%;--m3j-level-light-y:23%}
[data-m3j-art-level="70"]{--m3j-level-hue:16deg;--m3j-level-accent:hsl(62 82% 68%);--m3j-level-light-x:68%;--m3j-level-light-y:42%}
.m3j-game .m3j-world-stage{background-image:radial-gradient(circle at var(--m3j-level-light-x,50%) var(--m3j-level-light-y,20%),color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 38%,transparent),transparent 31%),linear-gradient(180deg,#02061724,#020617d6 82%),var(--m3j-level-art);background-size:auto,auto,200% 200%;background-position:center,center,var(--m3j-level-art-x) var(--m3j-level-art-y);filter:hue-rotate(var(--m3j-level-hue,0deg)) saturate(.92) contrast(1.08)}
.m3j-game .match3-board-wrap{background-image:linear-gradient(180deg,#07111d45,#030712c9),var(--m3j-level-art)!important;background-size:auto,200% 200%!important;background-position:center,var(--m3j-level-art-x) var(--m3j-level-art-y)!important}
.m3j-game .match3-board{background-image:linear-gradient(145deg,#050914d8,#04101aee),var(--m3j-level-art)!important;background-size:auto,200% 200%!important;background-position:center,var(--m3j-level-art-x) var(--m3j-level-art-y)!important}
.m3j-game .match3-game-shell{border-color:color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 38%,transparent);box-shadow:0 26px 80px #000b,0 0 54px color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 24%,transparent)}
.m3j-chapter-2{background-image:linear-gradient(180deg,#08091c50,#080818d8 72%,#050611f2),url('/assets/images/match3/m3j-chapter2-broken-light-v1.webp');background-size:auto,cover;background-position:center,center top;background-repeat:no-repeat;box-shadow:inset 0 0 95px #03040bd9,0 28px 80px #0008}

/* Intro/terminal modal is one coherent stage, not differently sized cards. */
.m3j-game .match3-modal{position:relative;isolation:isolate;overflow:hidden;width:min(100%,500px);box-sizing:border-box;padding:clamp(24px,5vw,36px);border-color:color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 42%,transparent);background:linear-gradient(145deg,#090b18e8,#090d18f6 58%,#160b22ed);box-shadow:0 32px 110px #000c,0 0 64px color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 25%,transparent)}
.m3j-game .match3-modal:before{content:"";position:absolute;z-index:-2;inset:0 0 auto;height:112px;background-image:linear-gradient(180deg,#03071220,#090b18 96%),var(--m3j-level-art);background-size:auto,200% 200%;background-position:center,var(--m3j-level-art-x) var(--m3j-level-art-y);filter:hue-rotate(var(--m3j-level-hue,0deg)) saturate(1.08)}
.m3j-game .match3-modal:after{content:"";position:absolute;z-index:-1;top:91px;left:10%;width:80%;height:1px;background:linear-gradient(90deg,transparent,var(--m3j-level-accent,#f9a8d4),transparent);box-shadow:0 0 18px var(--m3j-level-accent,#f9a8d4);animation:m3j-modal-charge 2.8s ease-in-out infinite}
.m3j-game .m3j-intro-icon{position:relative;width:76px;height:76px;border:1px solid color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 55%,#fff);background:radial-gradient(circle at 34% 28%,#fff6,transparent 28%),linear-gradient(145deg,color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 50%,#15112b),#090b18);box-shadow:0 12px 35px #0009,0 0 28px color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 45%,transparent);animation:m3j-intro-float 3s ease-in-out infinite}
.m3j-game .m3j-start-emblem{position:relative;display:grid;width:94px;height:94px;margin:0 auto 19px;place-items:center;border:1px solid color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 52%,transparent);border-radius:31px;background:radial-gradient(circle at 38% 30%,#fff7 0 4%,color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 72%,#fff) 7% 17%,#7c3aed8a 31%,#080a18 67%);box-shadow:inset 0 1px #fff5,0 18px 38px #0009,0 0 42px color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 46%,transparent);transform:rotate(45deg);animation:m3j-start-float 3.2s ease-in-out infinite}.m3j-game .m3j-start-emblem strong{position:relative;z-index:2;color:#fff;font-size:35px;text-shadow:0 0 18px #fff,0 0 34px var(--m3j-level-accent,#f9a8d4);transform:rotate(-45deg);animation:m3j-start-core 1.8s ease-in-out infinite}.m3j-game .m3j-start-emblem i{position:absolute;width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 12px var(--m3j-level-accent,#f9a8d4);animation:m3j-start-orbit 3s linear infinite}.m3j-game .m3j-start-emblem i:nth-child(1){top:7px;left:44px;transform-origin:3px 40px}.m3j-game .m3j-start-emblem i:nth-child(2){right:8px;bottom:23px;animation-delay:-1s;transform-origin:-29px -16px}.m3j-game .m3j-start-emblem i:nth-child(3){bottom:9px;left:21px;animation-delay:-2s;transform-origin:28px -31px}@keyframes m3j-start-float{50%{transform:translateY(-6px) rotate(48deg);box-shadow:inset 0 1px #fff5,0 24px 48px #0008,0 0 58px color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 60%,transparent)}}@keyframes m3j-start-core{50%{transform:rotate(-45deg) scale(1.14)}}@keyframes m3j-start-orbit{to{rotate:360deg}}
.m3j-game .match3-modal>*{max-width:100%;box-sizing:border-box}.m3j-game .match3-modal p{width:100%;margin-inline:auto}.m3j-game .match3-modal-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:12px}.m3j-game .match3-modal-actions>*{width:100%;min-width:0;box-sizing:border-box}
.m3j-game .m3j-result-mark{display:grid;width:92px;height:92px;margin:0 auto 18px;place-items:center;border:1px solid #ffffff36;border-radius:50%;background:radial-gradient(circle at 35% 28%,#fff9 0 5%,var(--m3j-level-accent,#f9a8d4) 8% 24%,#7c3aed66 43%,#050712 72%);box-shadow:0 0 0 9px #ffffff08,0 0 54px color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 58%,transparent);color:#fff4bd;font-size:24px;font-weight:950;letter-spacing:-.08em;text-shadow:0 0 16px #fbbf24;animation:m3j-result-arrive .72s cubic-bezier(.17,.84,.26,1) both}.m3j-result-success .match3-modal{border-color:#fbbf2470;box-shadow:0 32px 110px #000c,0 0 85px #f59e0b3d}.m3j-result-success .match3-modal:after{height:2px;background:linear-gradient(90deg,transparent,#fde68a,transparent);box-shadow:0 0 28px #f59e0b}.m3j-result-failed .m3j-result-mark{background:radial-gradient(circle at 35% 28%,#fff5 0 5%,#64748b 9% 28%,#312e8160 48%,#050712 72%);color:#dbeafe;box-shadow:0 0 0 9px #ffffff06,0 0 46px #64748b42}.m3j-result-failed .match3-modal{border-color:#94a3b84a}.m3j-next-countdown{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 18px;margin:22px 0 4px;padding:14px 18px;border:1px solid #fbbf244c;border-radius:18px;background:linear-gradient(110deg,#f59e0b17,#a855f715);box-shadow:inset 0 1px #fff2,0 12px 30px #0005;text-align:left}.m3j-next-countdown span{font-weight:900;letter-spacing:.04em}.m3j-next-countdown strong{grid-row:1/3;grid-column:2;display:grid;width:48px;height:48px;place-items:center;border-radius:50%;background:#fbbf24;color:#160d20;font-size:25px;box-shadow:0 0 24px #f59e0b99;animation:m3j-countdown-pulse 1s ease-in-out infinite}.m3j-next-countdown small{color:#cbd5e1}.m3j-result-success .match3-modal{animation:m3j-result-glow 2.2s ease-in-out infinite alternate}@keyframes m3j-result-arrive{from{opacity:0;transform:translateY(18px) scale(.58) rotate(-12deg)}70%{transform:translateY(-3px) scale(1.08) rotate(2deg)}to{opacity:1;transform:none}}@keyframes m3j-countdown-pulse{50%{transform:scale(1.08);box-shadow:0 0 38px #f59e0bcc}}@keyframes m3j-result-glow{to{box-shadow:0 32px 110px #000c,0 0 100px #f59e0b50}}
@keyframes m3j-modal-charge{50%{opacity:.35;transform:scaleX(.72)}}@keyframes m3j-intro-float{50%{transform:translateY(-5px) rotate(2deg)}}

/* Premium material atlas: blockers read as fixed physical objects. */
.m3j-game .m3j-obstacle-layer{inset:1%;border:1px solid #ffffff24;border-radius:24%;background-color:transparent!important;background-image:url('/assets/images/match3/m3j-blocker-atlas-v2.png?v=2')!important;background-repeat:no-repeat!important;background-size:400% 200%!important;box-shadow:inset 0 1px 0 #ffffff2e,0 5px 10px #0007,0 0 9px #ffffff0d!important;clip-path:none!important;filter:none!important}
.m3j-game .m3j-obstacle-layer em{visibility:hidden}.m3j-game .obstacle-ice .m3j-obstacle-layer{background-position:0 0!important}.m3j-game .obstacle-wood .m3j-obstacle-layer{background-position:33.333% 0!important}.m3j-game .obstacle-concrete .m3j-obstacle-layer{background-position:66.666% 0!important}.m3j-game .obstacle-mold .m3j-obstacle-layer{background-position:100% 0!important;filter:drop-shadow(0 0 7px #4ade8090)!important}.m3j-game .obstacle-crystal .m3j-obstacle-layer{background-position:0 100%!important}.m3j-game .obstacle-chain .m3j-obstacle-layer{background-position:33.333% 100%!important}.m3j-game .obstacle-vine .m3j-obstacle-layer{background-position:66.666% 100%!important}.m3j-game .m3j-obstacle-layer>b{right:0;bottom:0;display:grid;width:18px;height:18px;place-items:center;border:1px solid #fff8;background:#070812e8;color:#fff;box-shadow:0 2px 8px #000;font-size:9px}
.m3j-game .obstacle-shadow .m3j-obstacle-layer,.m3j-level .obstacle-shadow .m3j-obstacle-layer{background-image:radial-gradient(circle at 50% 45%,#e9d5ff 0 7%,#8b5cf6 9% 18%,transparent 20%),repeating-conic-gradient(from 20deg,#0f172a 0 10deg,#4c1d95 11deg 19deg,#111827 20deg 31deg)!important;background-size:auto!important;background-position:center!important;border-color:#c4b5fd88!important;box-shadow:inset 0 0 15px #020617,0 0 14px #8b5cf680!important}
.m3j-game .obstacle-shadow .m3j-obstacle-layer{overflow:visible!important;border-radius:24%!important;background:radial-gradient(circle at 36% 27%,#ffffff20,transparent 23%),linear-gradient(145deg,#3b1768,#12081f 57%,#05030b)!important;box-shadow:inset 0 3px 7px #fff2,inset 0 -9px 14px #000c,0 5px 13px #000a,0 0 18px #9d4edd8c!important}
.m3j-game .obstacle-shadow .m3j-obstacle-layer>em{position:absolute;inset:0;display:grid;place-items:center;color:#ede9fe;font-size:30%;text-shadow:0 0 8px #fff,0 0 17px #c084fc}
.m3j-game .obstacle-shadow .m3j-obstacle-layer:before{content:"";position:absolute;inset:-9%;border:2px solid #8b5cf6;border-radius:42% 31% 45% 34%;box-shadow:0 0 7px #c084fc,0 0 17px #7c3aed;animation:m3j-shadow-orbit 3.4s ease-in-out infinite;pointer-events:none}
.m3j-shadow-sigils{position:absolute;z-index:3;right:6%;bottom:7%;left:6%;display:flex;justify-content:center;gap:3px}.m3j-shadow-sigils i{display:grid;width:17%;min-width:7px;aspect-ratio:1;place-items:center;border:1px solid #fff9;border-radius:50%;box-shadow:0 0 6px currentColor;color:#fff;font-size:7px;font-style:normal;text-shadow:0 1px 2px #000}.m3j-shadow-sigils .gem-violet{background:#8b5cf6}.m3j-shadow-sigils .gem-cyan{background:#22d3ee}.m3j-shadow-sigils .gem-coral{background:#fb7185}.m3j-shadow-sigils .gem-gold{background:#facc15}.m3j-shadow-sigils .gem-mint{background:#4ade80}.m3j-shadow-sigils .gem-pink{background:#f472b6}@keyframes m3j-shadow-orbit{0%,100%{border-radius:42% 31% 45% 34%;transform:rotate(-4deg) scale(.98)}50%{border-radius:31% 47% 32% 46%;transform:rotate(8deg) scale(1.06)}}
.m3j-chapter-4{--map-accent:#c084fc;--map-accent-2:#64748b;background:radial-gradient(circle at 50% 0,#6d28d933,transparent 36%),linear-gradient(180deg,#171129,#080b17 72%)!important}.m3j-chapter-5{--map-accent:#4ade80;--map-accent-2:#164e63;background:radial-gradient(circle at 18% 12%,#16653450,transparent 32%),linear-gradient(180deg,#07180f,#050b10 76%)!important}.m3j-chapter-6{--map-accent:#67e8f9;--map-accent-2:#8b5cf6;background:radial-gradient(circle at 72% 10%,#0891b238,transparent 32%),linear-gradient(180deg,#071626,#090713 78%)!important}.m3j-chapter-7{--map-accent:#f472b6;--map-accent-2:#7f1d1d;background:radial-gradient(circle at 50% 6%,#be185d35,transparent 27%),linear-gradient(180deg,#160713,#050308 82%)!important}.m3j-chapter:is(.m3j-chapter-4,.m3j-chapter-5,.m3j-chapter-6,.m3j-chapter-7) .m3j-map:before{background:linear-gradient(var(--map-accent),var(--map-accent-2));box-shadow:0 0 18px color-mix(in srgb,var(--map-accent) 55%,transparent)}
@media(max-width:680px){.m3j-game .match3-modal{width:100%;padding:23px 16px}.m3j-game .match3-modal-actions{gap:9px}.m3j-game .match3-modal-actions .button{padding-inline:8px}.m3j-game .m3j-obstacle-layer>b{width:15px;height:15px;font-size:8px}.m3j-game .m3j-result-mark{width:72px;height:72px;margin-bottom:13px;font-size:19px}.m3j-next-countdown{margin-top:16px;padding:11px 13px}.m3j-next-countdown strong{width:42px;height:42px;font-size:21px}}
@media(max-width:340px){.m3j-game .match3-modal-actions{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.m3j-game .match3-modal:after,.m3j-game .m3j-intro-icon,.m3j-game .m3j-start-emblem,.m3j-game .m3j-start-emblem strong,.m3j-game .m3j-start-emblem i,.m3j-game .m3j-result-mark,.m3j-game .m3j-next-countdown strong,.m3j-result-success .match3-modal{animation:none}}
.m3j-game .obstacle-mold .m3j-obstacle-layer{opacity:.72;mask-image:radial-gradient(circle,#0000 0 34%,#000 57%);-webkit-mask-image:radial-gradient(circle,#0000 0 34%,#000 57%)}
.m3j-game .match3-gem.obstacle-hit .m3j-obstacle-layer{animation:m3j-material-hit 420ms cubic-bezier(.18,.8,.3,1)}.m3j-game .match3-gem.obstacle-destroyed .m3j-obstacle-layer{animation:m3j-material-break 420ms cubic-bezier(.18,.8,.3,1)}.m3j-game .match3-gem.obstacle-damaged-mold:after{content:"";position:absolute;z-index:9;inset:-18%;border-radius:50%;background:radial-gradient(circle,#d9f99d 0 8%,#4ade8088 24%,transparent 68%);animation:m3j-mold-release 430ms ease-out forwards;pointer-events:none}@keyframes m3j-material-hit{35%{transform:scale(1.09) rotate(-2deg);filter:brightness(1.42) drop-shadow(0 0 12px #fff8)}70%{transform:scale(.97) rotate(1deg)}100%{transform:scale(1);opacity:1;filter:none}}@keyframes m3j-material-break{35%{transform:scale(1.13) rotate(-3deg);filter:brightness(1.45) drop-shadow(0 0 12px #fff8)}100%{transform:scale(1.28) rotate(8deg);opacity:.18;filter:blur(2px)}}@keyframes m3j-mold-release{0%{opacity:1;transform:scale(.35)}100%{opacity:0;transform:scale(1.7)}}
.m3j-game .match3-board.reshuffling .match3-gem i{animation:m3j-reshuffle-out 280ms cubic-bezier(.4,0,.7,1) both;animation-delay:var(--fall-delay,0ms)}.m3j-game .match3-board.reshuffled .match3-gem i{animation:m3j-reshuffle-in 380ms cubic-bezier(.16,.9,.3,1.15) both;animation-delay:var(--fall-delay,0ms)}@keyframes m3j-reshuffle-out{55%{opacity:.72;transform:scale(.82) rotate(-5deg)}to{opacity:.12;transform:scale(.5) rotate(-12deg);filter:brightness(1.65)}}@keyframes m3j-reshuffle-in{from{opacity:.08;transform:scale(.48) rotate(14deg);filter:brightness(1.8)}68%{opacity:1;transform:scale(1.08) rotate(-2deg)}to{opacity:1;transform:scale(1) rotate(0);filter:none}}
.m3j-reshuffle-notice{position:absolute;z-index:35;top:50%;left:50%;display:grid;grid-template-columns:auto auto;align-items:center;column-gap:10px;min-width:min(78%,280px);padding:13px 18px;border:1px solid rgba(255,255,255,.24);border-radius:18px;background:linear-gradient(135deg,rgba(32,16,58,.94),rgba(12,39,57,.94));box-shadow:0 18px 55px #030510b8,0 0 30px #c026d344;opacity:0;pointer-events:none;transform:translate(-50%,-44%) scale(.86);transition:opacity 180ms ease,transform 260ms cubic-bezier(.18,.85,.3,1.1);backdrop-filter:blur(12px);text-align:left}.m3j-reshuffle-notice.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.m3j-reshuffle-notice>span{grid-row:1/3;display:grid;width:42px;height:42px;place-items:center;border-radius:50%;background:linear-gradient(135deg,#f472b6,#8b5cf6);box-shadow:0 0 24px #c026d388;color:#fff;font-size:26px;animation:m3j-reshuffle-turn 700ms ease-in-out infinite}.m3j-reshuffle-notice strong{color:#fff;font-size:15px;letter-spacing:.04em}.m3j-reshuffle-notice small{color:#d8b4fe;font-size:12px}@keyframes m3j-reshuffle-turn{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.m3j-game .match3-board.reshuffling .match3-gem i,.m3j-game .match3-board.reshuffled .match3-gem i,.m3j-reshuffle-notice>span{animation-duration:1ms!important;animation-delay:0ms!important}.m3j-reshuffle-notice{transition-duration:1ms!important}}

/* Level briefing: one measured stage instead of differently sized web cards. */
.m3j-level{width:min(100%,1040px)!important;max-width:1040px;margin-inline:auto;padding-inline:clamp(12px,3vw,24px);box-sizing:border-box;overflow:clip}
.m3j-level>.back-link{display:inline-flex;margin:0 0 18px}
.m3j-level-hero,.m3j-level-meta,.m3j-level-grid{width:100%;max-width:none;box-sizing:border-box}
.m3j-level-hero{min-height:290px;padding:clamp(24px,5vw,50px);display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,270px);gap:28px;border:1px solid color-mix(in srgb,var(--m3j-level-accent,#f472b6) 58%,transparent);border-radius:32px;background-image:linear-gradient(90deg,#09091be8 0 38%,#0b0a19a4 68%,#090914d0),radial-gradient(circle at var(--m3j-level-light-x,70%) var(--m3j-level-light-y,30%),color-mix(in srgb,var(--m3j-level-accent,#f472b6) 70%,transparent),transparent 32%),var(--m3j-level-art);background-size:auto,auto,200% 200%;background-position:center,center,var(--m3j-level-art-x) var(--m3j-level-art-y);box-shadow:0 30px 90px #0009,0 0 76px color-mix(in srgb,var(--m3j-level-accent,#f472b6) 24%,transparent),inset 0 1px #fff3;isolation:isolate}
.m3j-level-hero:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,transparent 52%,#fff1 52.2%,transparent 52.6%);animation:m3j-preview-shimmer 7s ease-in-out infinite}
.m3j-level-hero:after{right:-8%;bottom:-62%;width:46%;border-color:color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 42%,transparent);animation:m3j-preview-orbit 12s linear infinite}
.m3j-level-hero-copy{position:relative;z-index:1;min-width:0}.m3j-level-hero h1{margin:.22em 0;font-size:clamp(34px,6vw,64px);line-height:.95;text-wrap:balance}.m3j-level-hero p{max-width:560px;color:#d8dbea}
.m3j-level-best{position:relative;z-index:2;display:flex;min-width:0;min-height:180px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:22px;border:1px solid #ffffff26;border-radius:26px;background:linear-gradient(145deg,#ffffff15,#ffffff06);box-shadow:inset 0 1px #fff3,0 18px 50px #0007;backdrop-filter:blur(14px);text-align:center}
.m3j-level-best small{font-size:10px;letter-spacing:.18em;color:#cbd5e1}.m3j-level-best strong{font-size:clamp(25px,4vw,42px);line-height:1;color:#fde68a;text-shadow:0 0 22px #f59e0b99}.m3j-level-best span{font-weight:800}.m3j-level-best em{font-size:12px;font-style:normal;color:#9ca3af}
.m3j-level-meta{position:relative;z-index:3;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:16px auto 20px;padding:7px;border:1px solid color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 36%,#ffffff18);border-radius:22px;background:linear-gradient(110deg,#15132ae8,#0b1422ed 58%,#18102be8);box-shadow:0 18px 48px #0008,0 0 34px color-mix(in srgb,var(--m3j-level-accent,#f472b6) 12%,transparent),inset 0 1px #fff2;backdrop-filter:blur(16px)}
.m3j-level-meta>div{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;padding:11px clamp(10px,2vw,18px);border-right:1px solid #ffffff12}.m3j-level-meta>div:last-child{border-right:0}.m3j-level-meta span{grid-row:1/3;align-self:center;font-size:22px;color:var(--m3j-level-accent,#f9a8d4);text-shadow:0 0 16px currentColor}.m3j-level-meta small{font-size:9px;letter-spacing:.14em;color:#94a3b8}.m3j-level-meta strong{font-size:15px}
.m3j-level-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;padding:0}.m3j-level-grid:before{inset:0;border-radius:28px;background:linear-gradient(110deg,color-mix(in srgb,var(--m3j-level-accent,#ec4899) 11%,transparent),transparent 45%,#7c3aed10)}
.m3j-level-grid>.m3j-level-panel{min-width:0;padding:clamp(18px,3vw,28px);border:1px solid color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 22%,#ffffff12);border-radius:26px;background:radial-gradient(circle at 92% 8%,color-mix(in srgb,var(--m3j-level-accent,#f472b6) 15%,transparent),transparent 32%),linear-gradient(145deg,#17172bd9,#090c17ed);box-shadow:inset 0 1px #ffffff18,0 18px 45px #0006}.m3j-level-grid>.m3j-level-panel:first-child{padding-right:clamp(18px,3vw,28px);border-right:1px solid color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 22%,#ffffff12)}
.m3j-level-panel h2{display:flex;align-items:center;gap:9px;margin:0 0 17px;font-size:18px}.m3j-level-panel h2 span{display:grid;width:30px;height:30px;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--m3j-level-accent,#ec4899) 20%,transparent);color:var(--m3j-level-accent,#f9a8d4);box-shadow:0 0 18px color-mix(in srgb,var(--m3j-level-accent,#ec4899) 18%,transparent)}
@keyframes m3j-preview-shimmer{0%,35%{transform:translateX(-80%);opacity:0}50%{opacity:.65}70%,100%{transform:translateX(80%);opacity:0}}@keyframes m3j-preview-orbit{to{transform:rotate(384deg)}}
@media(max-width:700px){.m3j-level{padding-inline:12px}.m3j-level-hero{min-height:0;grid-template-columns:1fr;gap:18px;padding:24px 18px;background-image:linear-gradient(180deg,#09091ba8,#080916e8 76%),radial-gradient(circle at var(--m3j-level-light-x,70%) 15%,color-mix(in srgb,var(--m3j-level-accent,#f472b6) 65%,transparent),transparent 36%),var(--m3j-level-art);border-radius:25px}.m3j-level-hero h1{font-size:clamp(32px,11vw,48px)}.m3j-level-best{min-height:0;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;padding:14px 16px;align-items:center;text-align:left}.m3j-level-best small,.m3j-level-best span{grid-column:1}.m3j-level-best strong{grid-column:2;grid-row:1/3}.m3j-level-best em{display:none}.m3j-level-meta{margin:14px 0 16px;width:100%;padding:5px;border-radius:18px}.m3j-level-meta>div{display:flex;min-width:0;flex-direction:column;gap:1px;padding:8px;text-align:center}.m3j-level-meta span{font-size:17px}.m3j-level-meta small{font-size:8px}.m3j-level-meta strong{font-size:13px}.m3j-level-grid{grid-template-columns:1fr;gap:12px}.m3j-level-grid>.m3j-level-panel:first-child{padding-bottom:20px;border-bottom:1px solid #ffffff17}.m3j-level-grid>.m3j-level-panel{border-radius:22px}.m3j-features>div{min-width:0}.m3j-features small{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.m3j-level-hero:before,.m3j-level-hero:after{animation:none}}

/* Softer, story-led journey map: the route supports the locations instead of reading like a diagram. */
.m3j-map:before{inset:10px 5% 36px!important;width:auto!important;transform:none!important;border-radius:34px;background:radial-gradient(circle,color-mix(in srgb,var(--map-accent,#f472b6) 50%,transparent) 0 1.5px,transparent 2px)!important;background-size:41px 47px!important;opacity:.13!important;filter:none;box-shadow:none!important;animation:none!important}
.m3j-node,.m3j-node.is-visible{opacity:1!important;transform:none!important}
.m3j-node-copy,.m3j-chapter-1 .m3j-node-copy,.m3j-chapter-2 .m3j-node-copy,.m3j-node:nth-child(even) .m3j-node-copy{padding:10px 13px!important;border-color:transparent!important;border-radius:20px!important;background:radial-gradient(circle at 12% 15%,color-mix(in srgb,var(--map-accent,#f472b6) 15%,transparent),transparent 42%),linear-gradient(145deg,#111525d1,#090d18b8)!important;box-shadow:0 16px 34px #0007,inset 0 1px #ffffff14!important;backdrop-filter:blur(14px)}
.m3j-node>a,.m3j-lock{border-radius:42% 58% 48% 52%!important;box-shadow:0 0 0 5px #080b18c7,0 16px 34px #0008,0 0 30px color-mix(in srgb,var(--map-accent,#f472b6) 32%,transparent)!important}
.m3j-node>a:before,.m3j-lock:before{inset:-9px;border:0!important;border-radius:47% 53% 42% 58%;background:radial-gradient(circle,transparent 54%,color-mix(in srgb,var(--map-accent,#f472b6) 28%,transparent) 56% 60%,transparent 62%);opacity:.7}
.m3j-route,.m3j-node:nth-child(even) .m3j-route{height:74px;border-width:0 0 4px 4px!important;border-style:solid!important;border-color:#9f86ad20!important;border-radius:0 0 62px 62px!important;filter:drop-shadow(0 5px 7px #0008)}
.m3j-node:nth-child(even) .m3j-route{border-width:0 4px 4px 0!important}
.m3j-route.traversed,.m3j-node:nth-child(even) .m3j-route.traversed{border-color:color-mix(in srgb,var(--map-accent,#f472b6) 75%,#fde68a)!important;filter:drop-shadow(0 0 7px color-mix(in srgb,var(--map-accent,#f472b6) 58%,transparent));opacity:.78}

/* The material introduction uses the actual board artwork, not an abstract glyph. */
.m3j-game .m3j-intro-piece{position:relative;display:block;width:88px;height:88px;margin:0 auto 14px;cursor:default;filter:drop-shadow(0 16px 22px #0009);animation:m3j-intro-float 3s ease-in-out infinite}
.m3j-game .m3j-intro-piece>i{inset:8%;display:block}.m3j-game .m3j-intro-piece .m3j-obstacle-layer{inset:0!important;visibility:visible}.m3j-game .m3j-intro-piece .m3j-obstacle-layer em{visibility:visible;right:5px;bottom:4px;display:grid;width:22px;height:22px;place-items:center;border-radius:50%;background:#060914e6;color:#fff;font-size:12px;font-style:normal;box-shadow:0 2px 8px #000}
@media(max-width:680px){.m3j-node-copy,.m3j-chapter-1 .m3j-node-copy,.m3j-chapter-2 .m3j-node-copy{padding:9px 11px!important}.m3j-route,.m3j-node:nth-child(even) .m3j-route{opacity:.62}}
@media(prefers-reduced-motion:reduce){.m3j-game .m3j-intro-piece{animation:none}}

/* Joyful world pass: fewer dashboard boxes, more playful destinations and colour. */
.m3j-page{--m3j-candy-pink:#fb7185;--m3j-candy-violet:#a78bfa;--m3j-candy-cyan:#67e8f9;--m3j-candy-gold:#fde68a}
.m3j-world-switcher{gap:12px;padding:8px;border:0;border-radius:28px;background:linear-gradient(135deg,#ffffff0d,#ffffff04);box-shadow:inset 0 1px #fff2}
.m3j-world-switcher button{overflow:hidden;border:0!important;border-radius:21px!important;background:linear-gradient(145deg,#ffffff13,#ffffff08)!important;box-shadow:inset 0 1px #fff2,0 10px 24px #0004!important}
.m3j-world-switcher button[aria-pressed="true"]{background:radial-gradient(circle at 88% 12%,#fff4,transparent 30%),linear-gradient(135deg,var(--map-accent,#f472b6),var(--map-accent-2,#8b5cf6))!important;color:#fff;box-shadow:0 12px 32px color-mix(in srgb,var(--map-accent,#f472b6) 32%,transparent)!important}
.m3j-world-switcher small,.m3j-chapter>header>span{text-transform:none!important;letter-spacing:.08em!important}
.m3j-chapter{border-color:#ffffff18!important;border-radius:38px!important;box-shadow:inset 0 1px #ffffff24,0 30px 80px #0007!important}
.m3j-chapter>header{border:0!important;border-radius:25px!important;background:linear-gradient(135deg,#ffffff18,#ffffff08)!important;box-shadow:inset 0 1px #ffffff28,0 18px 42px #0005!important;backdrop-filter:blur(15px)}
.m3j-chapter>header h2{color:#fff;text-shadow:0 3px 20px color-mix(in srgb,var(--map-accent,#f472b6) 60%,transparent)}
.m3j-map{gap:30px!important;padding-top:20px!important}
.m3j-node{min-height:92px!important;gap:16px!important}
.m3j-node-copy,.m3j-chapter-1 .m3j-node-copy,.m3j-chapter-2 .m3j-node-copy,.m3j-node:nth-child(even) .m3j-node-copy{position:relative;padding:13px 17px!important;border:1px solid #ffffff18!important;border-radius:28px 28px 28px 9px!important;background:radial-gradient(circle at 88% 8%,color-mix(in srgb,var(--map-accent,#f472b6) 24%,transparent),transparent 38%),linear-gradient(135deg,#29304ccf,#11172cc2)!important;box-shadow:0 18px 38px #0006,inset 0 1px #ffffff2b!important}
.m3j-node:nth-child(even) .m3j-node-copy{border-radius:28px 28px 9px 28px!important}
.m3j-node-copy:after{content:"";position:absolute;right:13px;bottom:9px;width:26px;height:9px;border-radius:50%;background:color-mix(in srgb,var(--map-accent,#f472b6) 35%,transparent);filter:blur(8px)}
.m3j-node-copy small{color:color-mix(in srgb,var(--map-accent,#f472b6) 62%,#fff)!important;font-size:9px!important;font-weight:800;letter-spacing:.04em!important;text-transform:none!important}.m3j-node-copy strong{margin-top:2px;font-size:14px!important}.m3j-node-copy>span{color:var(--m3j-candy-gold);text-shadow:0 0 10px #f59e0b80}.m3j-node-copy>b{color:#dbeafe!important;font-weight:600}
.m3j-node>a,.m3j-lock{width:72px!important;flex-basis:72px!important;border:3px solid #fff9!important;border-radius:50%!important;background:radial-gradient(circle at 30% 24%,#fff8 0 8%,transparent 23%),linear-gradient(145deg,var(--map-accent,#f472b6),var(--map-accent-2,#8b5cf6))!important;box-shadow:0 0 0 6px #ffffff0d,0 15px 34px #0007,0 0 32px color-mix(in srgb,var(--map-accent,#f472b6) 45%,transparent)!important}
.m3j-node.completed>a{background:radial-gradient(circle at 30% 24%,#fff9 0 8%,transparent 23%),linear-gradient(145deg,#fbbf24,#fb7185 55%,#a78bfa)!important}.m3j-node.locked .m3j-lock{filter:saturate(.25);opacity:.7}
.m3j-route,.m3j-node:nth-child(even) .m3j-route{border-width:0 0 3px 3px!important;border-color:color-mix(in srgb,var(--map-accent,#f472b6) 25%,transparent)!important;filter:drop-shadow(0 3px 5px #0006)}.m3j-node:nth-child(even) .m3j-route{border-width:0 3px 3px 0!important}
.m3j-route.traversed,.m3j-node:nth-child(even) .m3j-route.traversed{border-color:color-mix(in srgb,var(--map-accent,#f472b6) 58%,#fde68a)!important}

.m3j-level>.back-link{padding:8px 13px;border-radius:99px;background:#ffffff0b;color:#e9d5ff;text-decoration:none;box-shadow:inset 0 1px #ffffff16}
@media(max-width:700px){.m3j-level>.back-link{margin-bottom:8px}}
.m3j-level-hero{border-radius:40px!important;background-image:linear-gradient(90deg,#17142bca 0 35%,#11112a78 68%,#11101ec0),radial-gradient(circle at var(--m3j-level-light-x,70%) var(--m3j-level-light-y,30%),color-mix(in srgb,var(--m3j-level-accent,#f472b6) 78%,transparent),transparent 38%),var(--m3j-level-art)!important}
.m3j-level-hero .eyebrow{display:inline-flex;padding:7px 11px;border-radius:99px;background:#ffffff16;color:#fff;text-transform:none;letter-spacing:.06em;box-shadow:inset 0 1px #ffffff25}
.m3j-level-hero h1{color:#fff;text-shadow:0 4px 25px color-mix(in srgb,var(--m3j-level-accent,#f472b6) 62%,#000)}
.m3j-level-best{border:0!important;border-radius:35% 65% 55% 45%/45% 42% 58% 55%!important;background:radial-gradient(circle at 35% 25%,#fff5,transparent 22%),linear-gradient(145deg,color-mix(in srgb,var(--m3j-level-accent,#f472b6) 48%,#5b21b6),#19172ee8)!important;box-shadow:0 20px 48px #0006,0 0 38px color-mix(in srgb,var(--m3j-level-accent,#f472b6) 28%,transparent),inset 0 1px #fff4!important}
.m3j-level-meta{gap:8px;padding:8px;border:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important}.m3j-level-meta>div{border:0!important;border-radius:18px;background:linear-gradient(145deg,#ffffff17,#ffffff09);box-shadow:inset 0 1px #ffffff25,0 10px 24px #0004}.m3j-level-meta>div:nth-child(1){background:linear-gradient(145deg,#34d3992d,#14b8a620)}.m3j-level-meta>div:nth-child(2){background:linear-gradient(145deg,#a78bfa35,#7c3aed22)}.m3j-level-meta>div:nth-child(3){background:linear-gradient(145deg,#fbbf2433,#fb718520)}.m3j-level-meta small{text-transform:none;letter-spacing:.04em;color:#dbeafe}
.m3j-level-grid>.m3j-level-panel{border:0!important;border-radius:34px!important;background:radial-gradient(circle at 92% 8%,color-mix(in srgb,var(--m3j-level-accent,#f472b6) 22%,transparent),transparent 32%),linear-gradient(145deg,#242943d4,#111629d6)!important;box-shadow:inset 0 1px #ffffff28,0 18px 42px #0005!important}
.m3j-level-panel h2{font-size:20px}.m3j-level-panel h2 span{border-radius:50%;background:linear-gradient(145deg,var(--m3j-level-accent,#f472b6),#8b5cf6);color:#fff;box-shadow:0 8px 20px color-mix(in srgb,var(--m3j-level-accent,#f472b6) 35%,transparent)}
.m3j-level .m3j-goals li,.m3j-level .m3j-features>div{border:0;border-radius:18px;background:linear-gradient(135deg,#ffffff12,#ffffff08);box-shadow:inset 0 1px #ffffff18}.m3j-level .m3j-goals li:nth-child(3n+1){background:linear-gradient(135deg,#34d3991d,#ffffff08)}.m3j-level .m3j-goals li:nth-child(3n+2){background:linear-gradient(135deg,#fbbf241b,#ffffff08)}.m3j-level .m3j-goals li:nth-child(3n){background:linear-gradient(135deg,#a78bfa24,#ffffff08)}
.m3j-level .m3j-features i{border-radius:50%;background:linear-gradient(145deg,color-mix(in srgb,var(--m3j-level-accent,#f472b6) 65%,#fff),#7c3aed);color:#fff;box-shadow:0 8px 18px color-mix(in srgb,var(--m3j-level-accent,#f472b6) 28%,transparent)}
.m3j-level .m3j-feature-material{position:relative;display:block;width:54px;height:54px;flex:0 0 54px;border-radius:17px;background:linear-gradient(145deg,#ffffff1e,#ffffff09);box-shadow:0 10px 24px #0006,0 0 20px color-mix(in srgb,var(--m3j-level-accent,#f472b6) 20%,transparent)}.m3j-level .m3j-feature-material .m3j-obstacle-layer{position:absolute;inset:1px;border:0;border-radius:22%;background-color:transparent;background-image:url('/assets/images/match3/m3j-blocker-atlas-v2.png?v=2');background-repeat:no-repeat;background-size:400% 200%;box-shadow:0 4px 10px #0006}.m3j-level .m3j-feature-material.obstacle-ice .m3j-obstacle-layer{background-position:0 0}.m3j-level .m3j-feature-material.obstacle-wood .m3j-obstacle-layer{background-position:33.333% 0}.m3j-level .m3j-feature-material.obstacle-concrete .m3j-obstacle-layer{background-position:66.666% 0}.m3j-level .m3j-feature-material.obstacle-mold .m3j-obstacle-layer{background-position:100% 0}.m3j-level .m3j-feature-material.obstacle-crystal .m3j-obstacle-layer{background-position:0 100%}.m3j-level .m3j-feature-material.obstacle-chain .m3j-obstacle-layer{background-position:33.333% 100%}.m3j-level .m3j-feature-material.obstacle-vine .m3j-obstacle-layer{background-position:66.666% 100%}
@media(max-width:700px){.m3j-chapter{border-radius:27px!important}.m3j-map{gap:25px!important}.m3j-node{min-height:82px!important}.m3j-node>a,.m3j-lock{width:62px!important;flex-basis:62px!important}.m3j-node-copy,.m3j-chapter-1 .m3j-node-copy,.m3j-chapter-2 .m3j-node-copy{padding:11px 13px!important;border-radius:23px 23px 23px 8px!important}.m3j-node:nth-child(even) .m3j-node-copy{border-radius:23px 23px 8px 23px!important}.m3j-level-hero{border-radius:29px!important}.m3j-level-best{border-radius:23px!important}.m3j-level-meta{gap:5px}.m3j-level-meta>div{border-radius:14px}.m3j-level-grid>.m3j-level-panel{border-radius:27px!important}}
.m3j-result-success .match3-modal-actions>.match3-cta:first-child{grid-column:1/-1}

/* Result/start overlays should feel like game moments, not boxed web dialogs. */
.m3j-game .match3-overlay{isolation:isolate;overflow:hidden;background:radial-gradient(circle at 50% 36%,color-mix(in srgb,var(--m3j-level-accent,#f472b6) 18%,transparent),transparent 38%),rgba(2,4,12,.82);backdrop-filter:blur(18px) saturate(1.22)}
.m3j-game .match3-overlay:before,.m3j-game .match3-overlay:after{content:"";position:absolute;z-index:-1;border-radius:50%;pointer-events:none;filter:blur(12px)}.m3j-game .match3-overlay:before{top:10%;left:8%;width:36vw;height:36vw;background:radial-gradient(circle,color-mix(in srgb,var(--m3j-level-accent,#f472b6) 18%,transparent),transparent 68%);animation:m3j-ambient-drift 8s ease-in-out infinite alternate}.m3j-game .match3-overlay:after{right:4%;bottom:4%;width:30vw;height:30vw;background:radial-gradient(circle,#7c3aed24,transparent 70%);animation:m3j-ambient-drift 10s ease-in-out -3s infinite alternate-reverse}
.m3j-game .match3-modal{overflow:visible;border-color:#ffffff16;border-radius:44px 44px 34px 34px;background:radial-gradient(circle at 50% -5%,color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 24%,transparent),transparent 36%),linear-gradient(155deg,#15152cf2,#090c1af7 64%,#160d25f2);box-shadow:inset 0 1px #ffffff2e,inset 0 -1px #0008,0 34px 90px #000d,0 0 70px color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 18%,transparent);transform:translateZ(0)}.m3j-game .match3-modal:before{border-radius:44px 44px 0 0;opacity:.72;mask-image:linear-gradient(#000 0 58%,transparent 100%)}.m3j-game .match3-modal:after{top:110px;left:18%;width:64%;opacity:.65}
.m3j-game .match3-modal h2{margin:12px 0 14px;text-wrap:balance}.m3j-game .match3-modal p{max-width:390px;color:#d7dbea}.m3j-game .match3-modal-actions .button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:52px;border-radius:17px;box-shadow:inset 0 1px #ffffff35,0 12px 28px #0007;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.m3j-game .match3-modal-actions .button:hover{transform:translateY(-2px);filter:brightness(1.1);box-shadow:inset 0 1px #ffffff45,0 17px 34px #0008}.m3j-game .match3-modal-actions .button span{font-size:13px}
.m3j-game .m3j-result-mark{display:flex;width:118px;height:118px;flex-direction:column;gap:2px;border:0;border-radius:50%;background:radial-gradient(circle at 37% 28%,#fff 0 4%,#a7f3d0 6% 17%,#10b981 20% 43%,#064e3b 66%,#031510 100%);box-shadow:inset 0 0 0 1px #ffffff5c,inset 0 -14px 24px #022c2288,0 0 0 12px #10b98112,0 20px 46px #000b,0 0 65px #34d39978;color:#fff;text-shadow:0 2px 8px #052e16}.m3j-game .m3j-result-mark strong{font-size:52px;line-height:.88}.m3j-game .m3j-result-mark small{font-size:15px;font-weight:950;letter-spacing:-.07em;color:#fff4bd;text-shadow:0 0 11px #f59e0b}.m3j-result-success .match3-modal{border-color:#34d3992e;background:radial-gradient(circle at 50% -5%,#34d3992e,transparent 39%),linear-gradient(155deg,#10251ff2,#080e17f7 62%,#161024f4);box-shadow:inset 0 1px #ffffff32,0 34px 100px #000d,0 0 95px #10b98138}.m3j-result-success .match3-modal:after{background:linear-gradient(90deg,transparent,#6ee7b7,transparent);box-shadow:0 0 32px #34d399}
.m3j-result-failed .m3j-result-mark{background:radial-gradient(circle at 37% 28%,#fff 0 4%,#fecdd3 6% 16%,#fb7185 19% 42%,#881337 67%,#24030d 100%);box-shadow:inset 0 0 0 1px #ffffff5c,inset 0 -14px 24px #4c051988,0 0 0 12px #fb718510,0 20px 46px #000b,0 0 62px #fb718566;color:#fff}.m3j-result-failed .m3j-result-mark strong{font-size:58px;line-height:.78}.m3j-result-failed .m3j-result-mark small{max-width:76px;color:#ffe4e6;font-size:8px;letter-spacing:.12em;line-height:1.1}.m3j-result-failed .match3-modal{border-color:#fb71852e;background:radial-gradient(circle at 50% -5%,#fb718529,transparent 39%),linear-gradient(155deg,#27111bf2,#0e0a14f7 62%,#181025f4);box-shadow:inset 0 1px #ffffff2e,0 34px 100px #000d,0 0 90px #e11d4830}.m3j-result-failed .match3-modal:after{background:linear-gradient(90deg,transparent,#fda4af,transparent);box-shadow:0 0 25px #fb7185}
@keyframes m3j-ambient-drift{to{transform:translate3d(8vw,5vh,0) scale(1.14)}}
@media(max-width:680px){.m3j-game .match3-modal{border-radius:34px 34px 27px 27px}.m3j-game .m3j-result-mark{width:92px;height:92px}.m3j-game .m3j-result-mark strong{font-size:42px}.m3j-game .m3j-result-mark small{font-size:12px}.m3j-result-failed .m3j-result-mark strong{font-size:47px}.m3j-result-failed .m3j-result-mark small{font-size:7px}.m3j-game .match3-overlay:before,.m3j-game .match3-overlay:after{width:70vw;height:70vw}}
@media(prefers-reduced-motion:reduce){.m3j-game .match3-overlay:before,.m3j-game .match3-overlay:after{animation:none}}

/* Journey welcome: warm storybook landscape rather than a technical dashboard. */
.m3j-page>.m3j-hero{position:relative;isolation:isolate;overflow:hidden;border:1px solid #ffffff2b;border-radius:40px;background:radial-gradient(circle at 13% 15%,#fff7 0 3%,transparent 3.5%),radial-gradient(circle at 82% 21%,#fef3c76b 0 7%,transparent 7.5%),linear-gradient(135deg,#a855f7 0%,#ec4899 43%,#fb7185 68%,#f59e0b 135%);box-shadow:inset 0 1px #fff7,inset 0 -35px 70px #4c1d9542,0 30px 90px #0008,0 0 65px #ec48992e}.m3j-page>.m3j-hero:before{content:"";position:absolute;z-index:-1;left:-8%;right:-8%;bottom:-48%;height:78%;border-radius:50% 50% 0 0/42% 42% 0 0;background:radial-gradient(ellipse at 22% 0,#86efac 0 8%,transparent 8.5%),radial-gradient(ellipse at 72% 7%,#5eead4 0 11%,transparent 11.5%),linear-gradient(175deg,#312e8175,#0f172ac7 72%);box-shadow:0 -12px 50px #fef3c738}.m3j-page>.m3j-hero:after{content:"✦  ·  ✧  ·  ✦";position:absolute;z-index:-1;top:12%;right:25%;color:#fff8;font-size:22px;letter-spacing:18px;text-shadow:0 0 17px #fff;animation:m3j-hero-fireflies 4.5s ease-in-out infinite}.m3j-page>.m3j-hero .eyebrow{color:#fff4bd;text-shadow:0 1px 12px #7e22ce}.m3j-page>.m3j-hero h1{color:#fff;background:none;text-shadow:0 3px 0 #7e22ce45,0 12px 34px #581c8780;-webkit-text-fill-color:#fff}.m3j-page>.m3j-hero p{color:#fff;max-width:640px;font-size:16px;text-shadow:0 2px 12px #4c1d9580}.m3j-page>.m3j-hero .button.secondary{border-color:#fff5;background:#ffffff18;color:#fff;backdrop-filter:blur(8px)}
.m3j-page .m3j-hero-progress{border:0;border-radius:31px;background:linear-gradient(145deg,#fff3,#ffffff14);box-shadow:inset 0 1px #fff6,0 22px 55px #581c875c;backdrop-filter:blur(16px) saturate(1.2)}.m3j-page .m3j-hero-progress:before{background:#fef3c74a}.m3j-page .m3j-hero-progress:after{display:none}.m3j-page>.m3j-hero .m3j-summary{width:156px;aspect-ratio:auto;min-height:144px;border-radius:29px;background:linear-gradient(155deg,#fff5,#fff2);box-shadow:inset 0 1px #fff8,0 13px 32px #581c8752;text-shadow:0 2px 12px #581c87}.m3j-page>.m3j-hero .m3j-summary:before,.m3j-page>.m3j-hero .m3j-summary>i,.m3j-page>.m3j-hero .m3j-summary-ring{display:none}.m3j-page>.m3j-hero .m3j-summary-kicker{color:#fff4bd}.m3j-page>.m3j-hero .m3j-summary strong{font-size:43px;text-shadow:0 4px 18px #581c8790}.m3j-page>.m3j-hero .m3j-summary strong small,.m3j-page>.m3j-hero .m3j-summary>span:last-of-type{color:#fff}.m3j-page .m3j-summary-stats>span{border:0;border-radius:17px;background:linear-gradient(115deg,#fff4,#fff1);box-shadow:inset 0 1px #fff6,0 9px 20px #581c8738}.m3j-page .m3j-summary-stats>span:first-child{background:linear-gradient(115deg,#fef3c750,#fff2)}.m3j-page .m3j-summary-stats>span:last-child{background:linear-gradient(115deg,#a7f3d050,#fff2)}.m3j-page .m3j-summary-stats i{background:#fff3;color:#fff4bd;box-shadow:none}.m3j-page .m3j-summary-stats small{color:#fff9}.m3j-page .m3j-summary-stats strong{color:#fff;text-shadow:0 2px 10px #581c8770}
@keyframes m3j-hero-fireflies{50%{opacity:.45;transform:translate3d(9px,-7px,0) scale(1.08)}}
@media(max-width:760px){.m3j-page>.m3j-hero{border-radius:29px;padding:23px 17px 20px}.m3j-page>.m3j-hero:after{top:7%;right:2%;font-size:15px;letter-spacing:8px}.m3j-page>.m3j-hero p{font-size:14px}.m3j-page .m3j-hero-progress{grid-template-columns:104px minmax(0,1fr);padding:9px;border-radius:23px}.m3j-page>.m3j-hero .m3j-summary{width:104px;min-height:110px;border-radius:21px}.m3j-page>.m3j-hero .m3j-summary strong{font-size:30px}}
@media(prefers-reduced-motion:reduce){.m3j-page>.m3j-hero:after{animation:none}}

/* Results are an airy game-state composition, not another tall bordered card. */
.m3j-game .match3-overlay.m3j-result-success,.m3j-game .match3-overlay.m3j-result-failed{padding:clamp(14px,3vw,24px);background:radial-gradient(ellipse at 50% 44%,color-mix(in srgb,var(--m3j-level-accent,#f472b6) 20%,transparent),transparent 42%),rgba(2,4,12,.87)}
.m3j-game .m3j-result-success .match3-modal,.m3j-game .m3j-result-failed .match3-modal{width:min(94vw,480px);padding:22px 24px 20px;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;animation:none}
.m3j-game .m3j-result-success .match3-modal:before,.m3j-game .m3j-result-failed .match3-modal:before{display:none}.m3j-game .m3j-result-success .match3-modal:after,.m3j-game .m3j-result-failed .match3-modal:after{top:0;left:16%;width:68%;height:1px;opacity:.48;mask-image:linear-gradient(90deg,transparent,#000 24% 76%,transparent)}
.m3j-game .m3j-result-success .m3j-result-mark,.m3j-game .m3j-result-failed .m3j-result-mark{width:76px;height:76px;margin:0 auto 12px;box-shadow:inset 0 0 0 1px #ffffff4a,0 12px 36px #0009,0 0 45px #34d3994f}.m3j-game .m3j-result-failed .m3j-result-mark{box-shadow:inset 0 0 0 1px #ffffff42,0 12px 36px #0009,0 0 42px #fb71854d}.m3j-game .m3j-result-success .m3j-result-mark strong{font-size:36px}.m3j-game .m3j-result-success .m3j-result-mark small{font-size:10px}.m3j-game .m3j-result-failed .m3j-result-mark strong{font-size:39px}.m3j-game .m3j-result-failed .m3j-result-mark small{max-width:62px;font-size:6px}
.m3j-game .m3j-result-success .match3-modal h2,.m3j-game .m3j-result-failed .match3-modal h2{margin:7px 0 9px;font-size:clamp(28px,7vw,38px);line-height:1.04;text-shadow:0 10px 34px #000}.m3j-game .m3j-result-success .match3-modal p,.m3j-game .m3j-result-failed .match3-modal p{margin:0 auto;line-height:1.5}.m3j-game .m3j-result-success .match3-modal>.eyebrow,.m3j-game .m3j-result-failed .match3-modal>.eyebrow{font-size:8px}
.m3j-game .m3j-result-success .m3j-next-countdown{grid-template-columns:auto 1fr auto;gap:4px 10px;margin:14px auto 2px;padding:9px 12px;max-width:390px;border:0;border-radius:16px;background:linear-gradient(110deg,#fbbf2418,#ffffff0b);box-shadow:inset 0 1px #ffffff20,0 10px 30px #0005}.m3j-game .m3j-result-success .m3j-next-countdown span{grid-column:2}.m3j-game .m3j-result-success .m3j-next-countdown small{grid-column:2;font-size:10px}.m3j-game .m3j-result-success .m3j-next-countdown strong{grid-row:1/3;grid-column:3;width:38px;height:38px;font-size:19px}
.m3j-game .m3j-result-success .match3-modal-actions,.m3j-game .m3j-result-failed .match3-modal-actions{max-width:420px;margin:14px auto 0;gap:9px}.m3j-game .m3j-result-success .match3-modal-actions .button,.m3j-game .m3j-result-failed .match3-modal-actions .button{min-height:46px;border:1px solid #ffffff18;border-radius:15px}
@media(max-width:680px){.m3j-game .m3j-result-success .match3-modal,.m3j-game .m3j-result-failed .match3-modal{padding:16px 8px 12px}.m3j-game .m3j-result-success .m3j-result-mark,.m3j-game .m3j-result-failed .m3j-result-mark{width:68px;height:68px}.m3j-game .m3j-result-success .match3-modal-actions,.m3j-game .m3j-result-failed .match3-modal-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.m3j-game .m3j-result-success .match3-modal-actions>.match3-cta:first-child{grid-column:1/-1}}

/* Fast, readable resolution phases and a real colour-key objective. */
.m3j-game .match3-board.reshuffling .match3-gem i{animation-duration:190ms;animation-delay:calc(var(--fall-delay,0ms) * .35)}.m3j-game .match3-board.reshuffled .match3-gem i{animation-duration:270ms;animation-delay:calc(var(--fall-delay,0ms) * .35)}

.m3j-game .match3-board-wrap>.m3j-board-result .match3-modal{max-height:none;overflow:visible}

/* Final state shares the polished start-modal language, with its own mood. */
.m3j-game .match3-overlay.m3j-result-success,.m3j-game .match3-overlay.m3j-result-failed{padding:clamp(10px,3vw,20px);background:radial-gradient(circle at 50% 34%,color-mix(in srgb,var(--m3j-level-accent,#f472b6) 24%,transparent),transparent 48%),rgba(2,4,12,.76);backdrop-filter:blur(14px) saturate(1.15)}
.m3j-game .m3j-result-success .match3-modal,.m3j-game .m3j-result-failed .match3-modal{position:relative;width:min(92%,430px);max-height:none;overflow:visible;padding:clamp(18px,4vw,26px);border:1px solid #ffffff24;border-radius:38px 38px 30px 30px;background:radial-gradient(circle at 50% -8%,color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 28%,transparent),transparent 40%),linear-gradient(155deg,#19172ff2,#090d1bf7 65%,#150e25f4);box-shadow:inset 0 1px #ffffff38,inset 0 -1px #0009,0 26px 70px #000c,0 0 58px color-mix(in srgb,var(--m3j-level-accent,#f9a8d4) 22%,transparent);backdrop-filter:blur(18px) saturate(1.18);animation:m3j-final-modal-in .5s cubic-bezier(.18,.82,.26,1) both}
.m3j-game .m3j-result-success .match3-modal:before,.m3j-game .m3j-result-failed .match3-modal:before{display:block;border-radius:38px 38px 0 0;opacity:.58;mask-image:linear-gradient(#000 0 55%,transparent 100%)}
.m3j-game .m3j-result-success .match3-modal:after,.m3j-game .m3j-result-failed .match3-modal:after{top:88px;left:18%;width:64%;height:1px;opacity:.7;background:linear-gradient(90deg,transparent,#6ee7b7,transparent);box-shadow:0 0 24px #34d399}
.m3j-game .m3j-result-failed .match3-modal:after{background:linear-gradient(90deg,transparent,#fda4af,transparent);box-shadow:0 0 22px #fb7185}
.m3j-game .m3j-result-success .m3j-result-mark,.m3j-game .m3j-result-failed .m3j-result-mark{width:78px;height:78px;margin:0 auto 11px;animation:m3j-final-mark-in .62s .08s cubic-bezier(.17,.84,.3,1.25) both}
.m3j-game .m3j-result-success .match3-modal h2,.m3j-game .m3j-result-failed .match3-modal h2{margin:7px 0 9px;font-size:clamp(25px,6vw,34px)}
.m3j-game .m3j-result-success .match3-modal p,.m3j-game .m3j-result-failed .match3-modal p{max-width:330px;margin:0 auto;color:#dbeafe;line-height:1.45}
.m3j-game .m3j-result-success .match3-modal-actions,.m3j-game .m3j-result-failed .match3-modal-actions{margin-top:14px;gap:9px}
@keyframes m3j-final-modal-in{from{opacity:0;transform:translateY(18px) scale(.965);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}@keyframes m3j-final-mark-in{from{opacity:0;transform:translateY(-18px) scale(.45) rotate(-10deg)}72%{opacity:1;transform:translateY(2px) scale(1.08) rotate(2deg)}to{opacity:1;transform:none}}
@media(max-width:430px){.m3j-game .m3j-result-success .match3-modal,.m3j-game .m3j-result-failed .match3-modal{width:96%;padding:16px 12px 14px;border-radius:28px 28px 23px 23px}.m3j-game .m3j-result-success .m3j-result-mark,.m3j-game .m3j-result-failed .m3j-result-mark{width:66px;height:66px;margin-bottom:8px}.m3j-game .m3j-result-success .match3-modal h2,.m3j-game .m3j-result-failed .match3-modal h2{font-size:25px}.m3j-game .m3j-result-success .match3-modal-actions,.m3j-game .m3j-result-failed .match3-modal-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.m3j-game .m3j-result-success .match3-modal-actions>.match3-cta:first-child{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.m3j-game .m3j-result-success .match3-modal,.m3j-game .m3j-result-failed .match3-modal,.m3j-game .m3j-result-success .m3j-result-mark,.m3j-game .m3j-result-failed .m3j-result-mark{animation:none}}

/* Completion and final result use the same compact, layered language as the start dialog. */
.m3j-game>.match3-overlay.m3j-page-result{position:fixed;z-index:1000;inset:0;width:100%;max-width:100vw;min-height:100vh;min-height:100dvh;box-sizing:border-box;display:grid;place-items:center;overflow-x:clip;overflow-y:auto;overscroll-behavior:contain;padding:clamp(14px,4vw,28px);border-radius:0}
.m3j-game>.match3-overlay.m3j-page-result[hidden]{display:none}
.m3j-game>.m3j-page-result .match3-modal{max-width:calc(100vw - 28px);transform:none}
.m3j-game .match3-modal{box-sizing:border-box}
.m3j-game>.m3j-page-result .match3-modal-actions .button:hover{transform:none}
.m3j-game .match3-modal-actions>.m3j-journey-return{grid-column:1/-1;display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;gap:1px 11px;min-height:62px;padding:9px 15px;text-align:left;border-color:#f9a8d442;background:radial-gradient(circle at 8% 50%,#f9a8d42e,transparent 27%),linear-gradient(110deg,#5b214bd9,#24143ee8 55%,#14253ee8);box-shadow:inset 0 1px #ffffff2c,0 10px 26px #0006,0 0 25px #ec48991c}
.m3j-game .m3j-journey-return>span{grid-row:1/3;display:grid;width:42px;height:42px;place-items:center;border-radius:50%;background:linear-gradient(145deg,#f9a8d4,#8b5cf6);box-shadow:0 0 18px #ec489970;color:#fff;font-size:25px;font-weight:950}
.m3j-game .m3j-journey-return>b{align-self:end;color:#fff;font-size:13px}.m3j-game .m3j-journey-return>small{align-self:start;color:#c4b5d9;font-size:9px;line-height:1.25}
.m3j-game>.match3-overlay.m3j-completion-choice{overflow:hidden;overscroll-behavior:none}
.m3j-game .m3j-completion-choice .match3-modal{max-height:calc(100dvh - 32px);overflow:visible}
.m3j-game .m3j-completion-choice .match3-modal-actions{display:grid;grid-template-columns:1fr;gap:10px}
.m3j-game .m3j-completion-choice .match3-modal-actions>.button{display:flex!important;visibility:visible!important;min-width:0;white-space:normal}
.m3j-game .m3j-completion-choice .m3j-completion-finish{grid-column:1/-1;width:100%;min-height:54px}
.m3j-game .m3j-completion-choice .m3j-completion-keep{width:100%}
.m3j-game .match3-modal-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.m3j-game .match3-modal-actions:has(>:only-child){grid-template-columns:1fr}
.m3j-game .match3-modal-actions:has(>:only-child)>*{grid-column:1/-1;width:100%}
.m3j-game .match3-modal-actions .button:hover,
.m3j-game .match3-modal-actions .button:active{transform:none!important}
.m3j-game .match3-modal{translate:none!important;rotate:none!important}
.m3j-game .m3j-completion-choice .match3-modal-actions{grid-template-columns:1fr}
.m3j-game .match3-goals>[data-match3-goal]{min-height:54px;padding:9px 11px;border:1px solid #ffffff18;border-radius:15px;background:linear-gradient(135deg,#ffffff10,#ffffff05);box-shadow:inset 0 1px #ffffff17}
.m3j-game .match3-goals>[data-match3-goal].objective-main{border-color:#ffffff18;background:linear-gradient(135deg,#ffffff10,#ffffff05)}
@media(max-width:430px){.m3j-game .m3j-completion-choice .match3-modal-actions{grid-template-columns:1fr}.m3j-game .m3j-completion-choice .match3-modal-actions>.button{grid-column:auto!important;width:100%;min-height:47px}.m3j-game .match3-goals>[data-match3-goal]{min-height:47px;padding:7px 8px}}

/* A lively, board-local final moment. Gameplay remains visible through the veil. */
.m3j-game .m3j-result-scene{position:relative;width:210px;height:104px;margin:-2px auto 2px;display:grid;place-items:center;perspective:500px}.m3j-game .m3j-result-scene .m3j-result-orbit{position:absolute;inset:12px 25px;border:1px solid #ffffff24;border-radius:50%;transform:rotate(-9deg);animation:m3j-result-orbit 5s linear infinite}.m3j-game .m3j-result-scene .m3j-result-orbit:nth-child(2){inset:22px 12px;transform:rotate(16deg);animation-duration:6.5s;animation-direction:reverse}.m3j-game .m3j-result-scene .m3j-result-orbit:nth-child(3){inset:4px 55px;transform:rotate(74deg);animation-duration:4s}.m3j-game .m3j-result-stars{position:relative;z-index:2;display:flex;align-items:center;gap:5px;filter:drop-shadow(0 9px 10px #0008)}.m3j-game .m3j-result-stars b{color:#ffffff20;font-size:48px;line-height:1;transform:translateY(22px) scale(.35) rotate(-24deg);opacity:0}.m3j-game .m3j-result-stars b.earned{color:#fde68a;text-shadow:0 0 10px #fff,0 0 25px #f59e0b,0 5px 0 #b45309;animation:m3j-star-land .58s cubic-bezier(.16,.88,.31,1.3) calc(var(--star-index)*.16s + .08s) forwards}.m3j-game .m3j-result-stars b:not(.earned){opacity:1;transform:scale(.78);color:#ffffff18}.m3j-game .m3j-result-scene>span{position:absolute;z-index:3;left:50%;top:50%;width:5px;height:5px;border-radius:50%;background:#fef3c7;box-shadow:0 0 10px #f59e0b;animation:m3j-result-spark 1.4s ease-out calc(var(--spark)*.055s) both;--angle:calc(var(--spark)*30deg)}.m3j-game .m3j-result-scene.is-failed>span{background:#fda4af;box-shadow:0 0 9px #fb7185;animation-name:m3j-fail-spark}.m3j-game .m3j-result-fail-symbol{position:relative;z-index:2;display:grid;width:72px;height:72px;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 28%,#fecdd3,#fb7185 27%,#881337 68%,#24030d);box-shadow:inset 0 1px #fff8,0 14px 35px #000a,0 0 38px #fb71855c;animation:m3j-fail-land .65s cubic-bezier(.2,.8,.3,1) both}.m3j-game .m3j-result-fail-symbol b{font-size:52px;line-height:1;color:#fff;text-shadow:0 4px 12px #4c0519}.m3j-game .m3j-result-fail-symbol i{position:absolute;width:46px;height:2px;background:#ffe4e680;transform:rotate(45deg);animation:m3j-crack .7s .25s both}.m3j-game .m3j-result-fail-symbol i:last-child{transform:rotate(-45deg)}
.m3j-game .m3j-result-score{position:relative;display:grid;justify-items:center;gap:1px;width:min(100%,310px);margin:13px auto 2px;padding:11px 18px;border-radius:20px;background:linear-gradient(135deg,#ffffff13,#ffffff07);box-shadow:inset 0 1px #ffffff22,0 13px 35px #0005;animation:m3j-score-rise .55s .34s both}.m3j-game .m3j-result-score small{color:#cbd5e1;font-size:8px;font-weight:900;letter-spacing:.16em}.m3j-game .m3j-result-score strong{color:#fff;font-size:clamp(28px,7vw,38px);line-height:1.08;text-shadow:0 0 24px color-mix(in srgb,var(--m3j-level-accent,#f472b6) 65%,transparent)}.m3j-game .m3j-result-score span{color:#dbeafe;font-size:10px}.m3j-result-success .m3j-result-score{background:linear-gradient(135deg,#34d3991c,#fbbf2410,#ffffff07)}.m3j-result-failed .m3j-result-score{background:linear-gradient(135deg,#fb718517,#ffffff07)}
@keyframes m3j-star-land{0%{opacity:0;transform:translateY(-34px) scale(.25) rotate(-28deg)}72%{opacity:1;transform:translateY(4px) scale(1.18) rotate(5deg)}100%{opacity:1;transform:none}}@keyframes m3j-result-orbit{to{transform:rotate(351deg)}}@keyframes m3j-result-spark{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}20%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + cos(var(--angle))*94px),calc(-50% + sin(var(--angle))*48px)) scale(1.4)}}@keyframes m3j-fail-spark{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}25%{opacity:.8}100%{opacity:0;transform:translate(calc(-50% + cos(var(--angle))*64px),calc(-50% + sin(var(--angle))*34px)) scale(.5)}}@keyframes m3j-fail-land{0%{opacity:0;transform:scale(1.45);filter:blur(7px)}60%{opacity:1;transform:scale(.9)}100%{transform:none;filter:none}}@keyframes m3j-crack{from{opacity:0;width:0}to{opacity:1;width:46px}}@keyframes m3j-score-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(max-width:430px){.m3j-game .m3j-result-scene{width:180px;height:83px}.m3j-game .m3j-result-stars b{font-size:39px}.m3j-game .m3j-result-fail-symbol{width:60px;height:60px}.m3j-game .m3j-result-fail-symbol b{font-size:43px}.m3j-game .m3j-result-score{margin-top:8px;padding:8px 12px;border-radius:16px}.m3j-game .m3j-result-score strong{font-size:27px}}
@media(prefers-reduced-motion:reduce){.m3j-game .m3j-result-scene *,.m3j-game .m3j-result-score{animation:none!important}.m3j-game .m3j-result-stars b.earned{opacity:1;transform:none}}
.m3j-game .match3-hud>.m3j-hud-audio{display:grid;min-width:0;min-height:42px;padding:5px 3px;place-items:center;border:1px solid #ffffff10;border-radius:10px;background:#050914b8;color:#94a3b8;cursor:pointer}.m3j-game .match3-hud>.m3j-hud-audio small{display:block}.m3j-game .match3-hud>.m3j-hud-audio strong{margin:0;font-size:17px}.m3j-game .match3-hud>.m3j-hud-audio.active{border-color:#f472b655;background:#f472b612;color:#fff}@media(max-width:430px){.m3j-game .match3-hud>.m3j-hud-audio{min-height:36px;padding:3px 2px}.m3j-game .match3-hud>.m3j-hud-audio strong{font-size:14px}}
.m3j-objective-chips .objective-color{border-color:#fbbf2440;background:linear-gradient(135deg,#ffffff0d,#f59e0b0d)}.m3j-objective-chips .m3j-color-key{position:relative;overflow:hidden;border:2px solid #fff8;box-shadow:inset 0 4px 7px #fff5,inset 0 -5px 8px #0004,0 0 12px currentColor}.m3j-objective-chips .m3j-color-key em{position:relative;z-index:2;color:#fff;font-size:15px;font-style:normal;font-weight:950;text-shadow:0 1px 4px #000}.m3j-objective-chips .m3j-color-key:after{content:"";position:absolute;inset:3px;border:1px solid #fff6;border-radius:6px}.m3j-objective-chips .m3j-color-key.gem-violet{background:linear-gradient(145deg,#d8b4fe,#7c3aed)}.m3j-objective-chips .m3j-color-key.gem-cyan{background:linear-gradient(145deg,#a5f3fc,#0891b2)}.m3j-objective-chips .m3j-color-key.gem-coral{background:linear-gradient(145deg,#fecaca,#f43f5e)}.m3j-objective-chips .m3j-color-key.gem-gold{background:linear-gradient(145deg,#fef08a,#eab308)}.m3j-objective-chips .m3j-color-key.gem-mint{background:linear-gradient(145deg,#a7f3d0,#059669)}.m3j-objective-chips .m3j-color-key.gem-pink{background:linear-gradient(145deg,#fbcfe8,#db2777)}
.m3j-game .match3-goals{display:grid!important;grid-template-columns:1fr!important;gap:6px!important;padding:7px!important;border-radius:14px!important;overflow:visible!important}.m3j-game .match3-goals>header{display:flex!important;align-items:center;justify-content:space-between;padding:0 3px 5px!important}.m3j-game .match3-goals>header strong{padding:0;border:0;background:none;font-size:14px}.m3j-game .m3j-objective-chips{grid-column:auto;order:1;display:grid!important;grid-template-columns:repeat(auto-fit,minmax(88px,1fr))!important;overflow:visible}.m3j-game .m3j-objective-chips>span{display:grid;grid-template-columns:30px 1fr;min-width:0;min-height:39px;padding:4px 6px}.m3j-game .m3j-objective-piece{position:relative!important;inset:auto!important;grid-row:1/3;width:29px!important;height:29px!important;min-width:29px;margin:0!important;transform:none!important;pointer-events:none}.m3j-game .m3j-objective-piece .m3j-obstacle-layer{inset:0!important}.m3j-game .m3j-objective-piece .m3j-obstacle-layer em{font-size:13px}.m3j-game .m3j-star-track{order:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;overflow:hidden;border:1px solid #fbbf243b;border-radius:12px;background:linear-gradient(90deg,#ffffff08,#f59e0b0c)}.m3j-game .m3j-star-track>[data-match3-goal]{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:5px;min-width:0;min-height:36px;padding:5px 8px;border:0!important;border-right:1px solid #ffffff12!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}.m3j-game .m3j-star-track>[data-match3-goal]:last-child{border-right:0!important}.m3j-game .m3j-star-track>[data-match3-goal]>span{z-index:1;color:#fde68a;font-size:10px}.m3j-game .m3j-star-track>[data-match3-goal]>b{z-index:1;overflow:hidden;font-size:8px!important;text-overflow:ellipsis;white-space:nowrap}.m3j-game .m3j-star-track>[data-match3-goal]>i{position:absolute;inset:auto 0 0;height:3px;background:#ffffff0b}.m3j-game .m3j-star-track>[data-match3-goal]>i:after{content:"";display:block;width:var(--goal-progress,0);height:100%;background:linear-gradient(90deg,#ec4899,#fbbf24)}@media(max-width:430px){.m3j-game .m3j-objective-chips{grid-template-columns:repeat(3,minmax(0,1fr))!important}.m3j-game .m3j-objective-chips>span{grid-template-columns:25px 1fr;min-height:33px;padding:3px}.m3j-game .m3j-objective-piece{width:24px!important;height:24px!important;min-width:24px}.m3j-game .m3j-objective-chips b{font-size:7px}.m3j-game .m3j-objective-chips small{font-size:6px}.m3j-game .m3j-star-track>[data-match3-goal]{grid-template-columns:1fr;justify-items:center;gap:0;min-height:33px;padding:4px 2px}.m3j-game .m3j-star-track>[data-match3-goal]>b{max-width:100%;font-size:6.5px!important}.m3j-game .match3-goals>header span{font-size:8px}}

/* Remaining moves become one quick, readable score transfer. */
.m3j-move-bonus{position:absolute;z-index:38;left:50%;top:43%;display:flex;align-items:center;gap:13px;padding:14px 18px;border:1px solid #fde68a80;border-radius:22px;background:radial-gradient(circle at 85% 10%,#f59e0b33,transparent 42%),linear-gradient(145deg,#2b1039f5,#0b1730f7);box-shadow:0 22px 60px #000b,0 0 36px #f59e0b42;opacity:0;pointer-events:none;transform:translate(-50%,18px) scale(.9);transition:opacity .22s ease,transform .42s cubic-bezier(.18,.85,.25,1)}.m3j-move-bonus.show{opacity:1;transform:translate(-50%,0) scale(1)}.m3j-move-bonus.leave{opacity:0;transform:translate(-50%,-18px) scale(1.04)}.m3j-move-bonus span{display:grid;text-align:center}.m3j-move-bonus span b{color:#fff;font-size:26px;line-height:1}.m3j-move-bonus small{color:#c4b5fd;font-size:8px;font-weight:900;letter-spacing:.13em}.m3j-move-bonus i{color:#f9a8d4;font-size:22px;font-style:normal}.m3j-move-bonus strong{color:#fde68a;font-size:clamp(22px,6vw,34px);text-shadow:0 0 18px #f59e0b70;white-space:nowrap}
/* Mold and its gem are one visual object during gravity, with no one-frame blink. */
.m3j-game .match3-gem.falling.obstacle-mold{z-index:4;animation:m3j-mold-piece-fall 320ms cubic-bezier(.18,.82,.28,1.08) both;animation-delay:var(--fall-delay,0ms)}.m3j-game .match3-gem.falling.obstacle-mold>i,.m3j-game .match3-gem.falling.obstacle-mold .m3j-obstacle-layer{animation:none!important;opacity:1!important}.m3j-game .match3-gem.falling.obstacle-mold .m3j-obstacle-layer{visibility:visible!important}
@keyframes m3j-mold-piece-fall{from{transform:translate(var(--fall-x,0),var(--fall-y,var(--fall-offset)))}72%{transform:translate(0,5%)}to{transform:none}}
@media(max-width:430px){.m3j-move-bonus{top:40%;padding:11px 14px;gap:9px;border-radius:18px}.m3j-move-bonus span b{font-size:21px}}
@media(prefers-reduced-motion:reduce){.m3j-move-bonus{transition-duration:.01ms}.m3j-game .match3-gem.falling.obstacle-mold{animation-duration:.01ms}}
