/* Chapter expansion visuals. Loaded separately so new worlds cannot be paired
   with a stale cached base map stylesheet. */
.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-world-switcher{grid-template-columns:repeat(3,minmax(0,1fr))!important;width:min(980px,100%)!important}
.m3j-chapter-4{--map-accent:#c084fc;--map-accent-2:#64748b;background-image:linear-gradient(180deg,#10081f75,#080b17e8 78%),url('/assets/images/match3/m3j-chapter4-shadow-border-v1.webp')!important}.m3j-chapter-5{--map-accent:#4ade80;--map-accent-2:#164e63;background-image:linear-gradient(180deg,#04140d73,#050b10e8 78%),url('/assets/images/match3/m3j-chapter5-silent-forest-v1.webp')!important}.m3j-chapter-6{--map-accent:#67e8f9;--map-accent-2:#8b5cf6;background-image:linear-gradient(180deg,#0411216b,#090713e9 79%),url('/assets/images/match3/m3j-chapter6-nightglass-city-v1.webp')!important}.m3j-chapter-7{--map-accent:#f472b6;--map-accent-2:#7f1d1d;background-image:linear-gradient(180deg,#12040f63,#050308ee 82%),url('/assets/images/match3/m3j-chapter7-fading-heart-v1.webp')!important}.m3j-chapter:is(.m3j-chapter-4,.m3j-chapter-5,.m3j-chapter-6,.m3j-chapter-7){background-position:center top!important;background-size:cover!important;background-repeat:no-repeat!important;background-blend-mode:multiply,normal!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-world-switcher{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;padding:5px!important}.m3j-world-switcher button{min-width:0;padding:8px 6px!important}.m3j-world-switcher strong{overflow:hidden;font-size:9px!important;line-height:1.15;text-overflow:ellipsis}.m3j-world-switcher span{font-size:6px!important}.m3j-chapter:is(.m3j-chapter-4,.m3j-chapter-5,.m3j-chapter-6,.m3j-chapter-7){background-position:center top!important}}
.obstacle-shadow{border:1px solid #c4b5fd66;background:radial-gradient(circle at 48% 45%,#a78bfa66 0 16%,transparent 42%),linear-gradient(145deg,#312e81,#090617 75%);box-shadow:inset 0 1px #fff3,0 0 22px #8b5cf655;color:#ddd6fe}.obstacle-shadow i{font-style:normal;text-shadow:0 0 12px #c4b5fd}.match3-blocker-guide{align-items:stretch}.match3-blocker-guide>article{box-sizing:border-box;min-width:0}
.journey-chapter-6{--journey-accent:#fb923c;--journey-accent-2:#facc15;background:radial-gradient(circle at 22% 12%,#fb923c33,transparent 25rem),repeating-linear-gradient(108deg,transparent 0 80px,#fbbf2409 81px 83px),linear-gradient(155deg,#251009,#170b15 76%)}.journey-chapter-7{--journey-accent:#67e8f9;--journey-accent-2:#a78bfa;background:radial-gradient(circle at 78% 8%,#67e8f92e,transparent 24rem),repeating-radial-gradient(circle at 50% 120%,transparent 0 76px,#a78bfa0a 78px 81px),linear-gradient(155deg,#06182a,#120b25 78%)}
.journey-chapter-6 .journey-world-sky i{background:linear-gradient(135deg,#fff7ad,#fb923c);box-shadow:0 0 24px #fb923cb3}.journey-chapter-7 .journey-world-sky i{background:linear-gradient(135deg,#e0f2fe,#a78bfa);box-shadow:0 0 25px #67e8f9b8}
.m3j-world-switcher button:disabled{cursor:not-allowed;filter:saturate(.25);opacity:.48}.m3j-world-switcher button:disabled strong{color:#cbd5e1}.m3j-world-switcher button:disabled span{color:#94a3b8}
.journey-world-locked{min-height:0!important;opacity:.72;filter:saturate(.45)}.journey-world-locked>header{margin-bottom:0!important}.journey-chapter-lock{display:inline-flex;align-items:center;gap:8px;width:max-content;margin-top:10px;padding:8px 12px;border:1px solid #ffffff1f;border-radius:999px;background:#02061799;color:#cbd5e1;font-size:11px;font-weight:900;letter-spacing:.08em}
.info-page .journey-bomb-guide+.journey-bomb-guide{margin-top:18px}.info-page .journey-bomb-guide{align-items:flex-start}.info-page .journey-bomb-guide>div>h3{margin-top:0}
.match3-game-page .obstacle-shadow .m3j-obstacle-layer,.m3j-level .obstacle-shadow .m3j-obstacle-layer{overflow:visible!important;border:1px solid #d8b4fe99!important;border-radius:25%!important;background:radial-gradient(circle at 48% 44%,#f5f3ff 0 6%,#c4b5fd 7% 12%,#7c3aed 14% 25%,#26134d 27% 52%,#080b18 70%)!important;box-shadow:inset 0 3px 7px #fff4,inset 0 -8px 13px #020617cc,0 5px 12px #0009,0 0 16px #8b5cf67a!important}.match3-game-page .obstacle-shadow .m3j-obstacle-layer:before,.m3j-level .obstacle-shadow .m3j-obstacle-layer:before{content:"";position:absolute;inset:-9%;border:3px solid #6d28d9;border-radius:31% 44% 34% 48%;box-shadow:0 0 0 2px #1e1b4b,0 0 13px #a78bfa99;transform:rotate(7deg);pointer-events:none}.match3-game-page .obstacle-shadow .m3j-obstacle-layer:after,.m3j-level .obstacle-shadow .m3j-obstacle-layer:after{content:"◆";position:absolute;inset:0;display:grid;place-items:center;color:#f5f3ff;font-size:35%;text-shadow:0 0 8px #fff,0 0 15px #c084fc;pointer-events:none}
.match3-overlay:not([hidden]),.game .overlay:not([hidden]){animation:aren8-overlay-soft-in .34s ease-out both}.match3-overlay:not([hidden]) .match3-modal,.game .overlay:not([hidden]) .modal{animation:aren8-modal-soft-in .46s cubic-bezier(.18,.82,.24,1) both}@keyframes aren8-overlay-soft-in{from{opacity:0;backdrop-filter:blur(0)}to{opacity:1}}@keyframes aren8-modal-soft-in{from{opacity:0;transform:translateY(14px) scale(.975);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}@media(prefers-reduced-motion:reduce){.match3-overlay:not([hidden]),.game .overlay:not([hidden]),.match3-overlay:not([hidden]) .match3-modal,.game .overlay:not([hidden]) .modal{animation:none}}
.match3-game-page .obstacle-shadow .m3j-obstacle-layer,.m3j-level .obstacle-shadow .m3j-obstacle-layer{overflow:visible!important;border:1px solid #d8b4fe8f!important;border-radius:24%!important;background:radial-gradient(circle at 35% 26%,#fff3,transparent 22%),linear-gradient(145deg,#431b70,#150a25 57%,#05030b)!important;box-shadow:inset 0 3px 7px #fff2,inset 0 -9px 15px #000d,0 6px 13px #000a,0 0 19px #9d4edd88!important}.match3-game-page .obstacle-shadow .m3j-obstacle-layer:before,.m3j-level .obstacle-shadow .m3j-obstacle-layer:before{inset:-9%;border:2px solid #8b5cf6;border-radius:42% 31% 45% 34%;box-shadow:0 0 7px #c084fc,0 0 18px #7c3aed;animation:m3j-shadow-orbit 3.4s ease-in-out infinite;transform:none}.match3-game-page .obstacle-shadow .m3j-obstacle-layer:after,.m3j-level .obstacle-shadow .m3j-obstacle-layer:after{content:"◆";font-size:29%;opacity:.78}
/* Shadow Seal V5: one candy-sized obstacle with three readable requirements. */
.match3-game-page .match3-gem.obstacle-shadow>.m3j-obstacle-layer{inset:4%!important;border-radius:24%!important}
.match3-game-page .match3-gem.obstacle-shadow{background:#05040a!important;box-shadow:inset 0 0 0 1px #8b5cf626,0 4px 9px #0009!important}
/* A Shadow Seal is the content of this cell, never a translucent cover over
   a playable gem. Do not reveal any underlying colour during its dissolve. */
[data-match3-game] .match3-gem.obstacle-shadow>i{visibility:hidden!important}
[data-match3-game] .match3-gem.obstacle-shadow>.m3j-obstacle-layer{visibility:visible!important}
/* A released Shadow Seal is a real opening, not a temporary obstacle tile.
   Suppress the generic board-mask artwork during this short intermediate
   state so neither a square placeholder nor the incoming gem can flash. */
[data-match3-game] .m3j-void.m3j-transient-hole{visibility:hidden!important;opacity:0!important;animation:none!important}
[data-match3-game] .m3j-void.m3j-transient-hole:before{content:none!important;display:none!important}
.match3-game-page .obstacle-shadow .m3j-shadow-sigils,.m3j-level .obstacle-shadow .m3j-shadow-sigils{z-index:8;top:auto!important;right:7%!important;bottom:8%!important;left:7%!important;display:grid!important;grid-template-columns:repeat(3,1fr);gap:3px!important}
.match3-game-page .obstacle-shadow .m3j-shadow-sigils i,.m3j-level .obstacle-shadow .m3j-shadow-sigils i{display:grid!important;width:auto!important;min-width:0!important;aspect-ratio:1;place-items:center;border:1px solid #fff!important;border-radius:50%!important;box-shadow:0 0 7px currentColor,0 2px 4px #000a!important;color:#fff!important;font-size:clamp(6px,1.45cqw,9px)!important;font-style:normal!important;line-height:1!important;text-shadow:0 1px 2px #000!important}
.shadow-guide-tile{position:relative;display:block!important;overflow:visible!important;padding:0!important;background:none!important}
.shadow-guide-tile>.m3j-obstacle-layer{position:absolute;inset:5%;border:1px solid #d8b4fe8f;border-radius:24%;background:radial-gradient(circle at 35% 26%,#fff3,transparent 22%),linear-gradient(145deg,#431b70,#150a25 57%,#05030b);box-shadow:inset 0 4px 8px #fff2,inset 0 -10px 16px #000d,0 7px 14px #000a,0 0 20px #9d4edd88}
.shadow-guide-tile>.m3j-obstacle-layer:before{content:"";position:absolute;inset:-8%;border:2px solid #8b5cf6;border-radius:42% 31% 45% 34%;box-shadow:0 0 8px #c084fc,0 0 18px #7c3aed;animation:m3j-shadow-orbit 3.4s ease-in-out infinite}
.shadow-guide-tile>.m3j-obstacle-layer>em{position:absolute;inset:9% 0 35%;display:grid;place-items:center;color:#ede9fe;font-size:20px;font-style:normal;text-shadow:0 0 8px #fff,0 0 15px #c084fc}
.shadow-guide-tile .m3j-shadow-sigils{position:absolute;z-index:3;right:8%;bottom:9%;left:8%;display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.shadow-guide-tile .m3j-shadow-sigils i{display:grid!important;width:auto!important;aspect-ratio:1;place-items:center;border:1px solid #fff;border-radius:50%;color:#fff;font-size:8px!important;font-style:normal;text-shadow:0 1px 2px #000!important}.shadow-guide-tile .gem-coral{background:#fb7185}.shadow-guide-tile .gem-gold{background:#facc15}.shadow-guide-tile .gem-cyan{background:#22d3ee}

/* Shadow Seal V6: a symmetric candy tile with three orbiting real-colour mini pieces. */
.match3-game-page .match3-gem.obstacle-shadow>.m3j-obstacle-layer,
.shadow-guide-tile>.m3j-obstacle-layer{
  position:absolute!important;inset:3%!important;overflow:visible!important;border:1px solid #c4b5fd99!important;border-radius:23%!important;
  background:radial-gradient(circle at 38% 28%,#ffffff45 0 7%,transparent 25%),linear-gradient(150deg,#7c3aed 0 8%,#3b1768 22%,#160926 62%,#05030c 100%)!important;
  box-shadow:inset 0 3px 4px #ffffff2e,inset 0 -6px 9px #020108d9,inset 0 0 0 3px #a78bfa21,0 5px 8px #0009,0 0 13px #8b5cf673!important;
}
.match3-game-page .obstacle-shadow .m3j-obstacle-layer:before,
.shadow-guide-tile>.m3j-obstacle-layer:before{
  content:""!important;position:absolute!important;inset:11%!important;border:1px solid #ede9fe38!important;border-radius:20%!important;
  background:linear-gradient(145deg,#ffffff13,#00000031)!important;box-shadow:inset 0 2px 4px #fff2,inset 0 -4px 7px #0008!important;animation:none!important;transform:none!important;
}
.match3-game-page .obstacle-shadow .m3j-obstacle-layer:after,
.shadow-guide-tile>.m3j-obstacle-layer:after{
  content:"✦"!important;position:absolute!important;inset:31%!important;display:grid!important;place-items:center;border:1px solid #ddd6fe80;border-radius:28%!important;
  background:radial-gradient(circle at 38% 30%,#fff,#c4b5fd 20%,#6d28d9 58%,#21103a)!important;color:#fff!important;font-size:clamp(7px,1.7cqw,12px)!important;opacity:1!important;
  box-shadow:inset 0 2px 3px #fff8,inset 0 -4px 5px #2e1065,0 0 10px #c084fc!important;text-shadow:0 0 5px #fff!important;
}
.match3-game-page .obstacle-shadow .m3j-shadow-sigils,
.m3j-level .obstacle-shadow .m3j-shadow-sigils,
.shadow-guide-tile .m3j-shadow-sigils{
  position:absolute!important;z-index:10!important;inset:8%!important;display:block!important;animation:m3j-shadow-sigil-orbit 7s linear infinite!important;animation-delay:var(--shadow-phase,0ms)!important;pointer-events:none!important;
}
.match3-game-page .obstacle-shadow .m3j-shadow-sigils i,
.m3j-level .obstacle-shadow .m3j-shadow-sigils i,
.shadow-guide-tile .m3j-shadow-sigils i{
  --sigil-angle:0deg;position:absolute!important;top:50%!important;left:50%!important;display:grid!important;width:32%!important;min-width:0!important;aspect-ratio:1!important;place-items:center!important;
  border:1px solid #ffffffcc!important;border-radius:25%!important;color:#fff!important;font-size:clamp(6px,1.45cqw,9px)!important;font-style:normal!important;line-height:1!important;
  background:linear-gradient(145deg,#ffffff66 0 12%,var(--sigil-color,#8b5cf6) 30% 66%,#111827 100%)!important;
  box-shadow:inset 0 2px 2px #fff6,inset 0 -3px 4px #0006,0 2px 4px #0009,0 0 7px var(--sigil-color,#8b5cf6)!important;
  text-shadow:0 1px 2px #000!important;transform:translate(-50%,-50%) rotate(var(--sigil-angle)) translateY(-142%) rotate(var(--sigil-counter,0deg))!important;
}
.match3-game-page .obstacle-shadow .m3j-shadow-sigils i:nth-child(2),.m3j-level .obstacle-shadow .m3j-shadow-sigils i:nth-child(2),.shadow-guide-tile .m3j-shadow-sigils i:nth-child(2){--sigil-angle:120deg;--sigil-counter:-120deg}
.match3-game-page .obstacle-shadow .m3j-shadow-sigils i:nth-child(3),.m3j-level .obstacle-shadow .m3j-shadow-sigils i:nth-child(3),.shadow-guide-tile .m3j-shadow-sigils i:nth-child(3){--sigil-angle:240deg;--sigil-counter:-240deg}
.m3j-shadow-sigils .gem-violet{--sigil-color:#8b5cf6}.m3j-shadow-sigils .gem-cyan{--sigil-color:#22d3ee}.m3j-shadow-sigils .gem-coral{--sigil-color:#fb7185}.m3j-shadow-sigils .gem-gold{--sigil-color:#facc15}.m3j-shadow-sigils .gem-mint{--sigil-color:#4ade80}.m3j-shadow-sigils .gem-pink{--sigil-color:#f472b6}
@keyframes m3j-shadow-sigil-orbit{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.match3-game-page .obstacle-shadow .m3j-shadow-sigils,.m3j-level .obstacle-shadow .m3j-shadow-sigils,.shadow-guide-tile .m3j-shadow-sigils{animation:none!important}}

/* Shadow Seal V9: near-black candy relief; the centre is a seal, not a star. */
.match3-game-page .match3-gem.obstacle-shadow>.m3j-obstacle-layer,.shadow-guide-tile>.m3j-obstacle-layer{border-color:#716586b8!important;background:radial-gradient(circle at 34% 24%,#ffffff20 0 7%,transparent 24%),linear-gradient(150deg,#30243d 0 9%,#17111f 25%,#09080e 66%,#020204 100%)!important;box-shadow:inset 0 3px 4px #ffffff20,inset 0 -7px 10px #000,inset 0 0 0 3px #8b5cf612,0 6px 10px #000b,0 0 13px #6d28d94d!important}
.match3-game-page .obstacle-shadow .m3j-obstacle-layer:after,.shadow-guide-tile>.m3j-obstacle-layer:after{content:"◐"!important;border-color:#958aa67a!important;background:radial-gradient(circle at 38% 30%,#d9d4e2,#5b5068 23%,#211b29 58%,#08070a)!important;color:#eeeaf4!important;box-shadow:inset 0 2px 3px #fff5,inset 0 -4px 5px #000,0 0 9px #7c3aed70!important;text-shadow:0 0 5px #c4b5fd!important}

/* Colour objective V9: readable candy target, without the gold frame/key badge. */
.m3j-game .match3-gem.m3j-color-key-target:before,.m3j-game .m3j-color-key-mark{display:none!important}.m3j-game .match3-gem.m3j-color-key-target>i{box-shadow:inset 0 3px 5px #ffffff70,inset 0 -5px 8px #0004,0 0 0 1px #ffffff5c!important}.m3j-game .match3-gem.m3j-color-key-target>i:after{content:""!important;display:block!important;position:absolute!important;z-index:5!important;left:50%!important;top:50%!important;width:72%!important;height:72%!important;transform:translate(-50%,-50%)!important;border:0!important;border-radius:0!important;background:transparent url('/assets/images/match3/m3j-color-key-v4.png?v=1') center/contain no-repeat!important;filter:drop-shadow(0 2px 3px #090615aa) drop-shadow(0 0 6px #c084fcaa)!important;opacity:1!important;pointer-events:none}
