/* Wish Land source-image motion layer — visually faithful components from
   Promise_Button, Promise_HourglassSand*, Promise_Snakehead. Timings here
   are an approximation; original Unity curve timing is not yet recovered. */
.rk-wish-hero{isolation:isolate}
.rk-wish-art{transform-origin:50% 77%;animation:rk-wish-cave-breathe 5.4s ease-in-out infinite alternate}
@keyframes rk-wish-cave-breathe {
  from{transform:translateY(2px) scale(.994);filter:drop-shadow(0 4px 8px #040e17)}
  to{transform:translateY(-1px) scale(1.024);filter:drop-shadow(0 7px 15px #183f4599)}
}
.rk-wish-source-triangles{position:absolute;z-index:5;left:50%;top:10px;transform:translateX(-50%);
 display:flex;align-items:center;justify-content:center;pointer-events:none;width:104px;height:52px}
.rk-wish-source-triangles img{position:absolute;width:100px;height:48px;object-fit:contain}
.rk-wish-gold{opacity:.65;animation:rk-wish-gold-flash 2.3s ease-in-out infinite alternate}
.rk-wish-green{opacity:.38;animation:rk-wish-green-flash 2.3s ease-in-out infinite alternate}
@keyframes rk-wish-gold-flash{from{opacity:.85;transform:scale(.87)}to{opacity:.25;transform:scale(1.08)}}
@keyframes rk-wish-green-flash{from{opacity:.22;transform:scale(.85)}to{opacity:.85;transform:scale(1.08)}}
.rk-wish-source-snake{position:absolute;z-index:5;bottom:3px;right:14px;
 width:71px;height:38px;object-fit:contain;pointer-events:none;
 animation:rk-wish-snake 3.3s ease-in-out infinite alternate}
@keyframes rk-wish-snake{from{transform:translateY(1px) rotate(-2deg);opacity:.7}
 to{transform:translateY(-5px) rotate(2deg);opacity:1}}
.rk-wish-source-hourglass{position:absolute;z-index:5;right:95px;bottom:8px;
 width:50px;height:61px;pointer-events:none;display:block;
 filter:drop-shadow(0 0 5px #e8c97480)}
.rk-wish-source-hourglass:before,.rk-wish-source-hourglass:after{content:"";position:absolute;
 left:1px;width:48px;height:21px;border:1px solid #aa9659;border-radius:50%}
.rk-wish-source-hourglass:before{top:6px;transform:perspective(55px) rotateX(48deg)}
.rk-wish-source-hourglass:after{bottom:3px;transform:perspective(55px) rotateX(-45deg)}
.rk-wish-sand-upper{position:absolute;width:49px;height:10px;object-fit:contain;top:14px;left:0;
 animation:rk-wish-sand-upper 3.8s linear infinite}
.rk-wish-sand-lower{position:absolute;width:49px;height:18px;object-fit:contain;bottom:8px;left:0;
 animation:rk-wish-sand-lower 3.8s linear infinite}
.rk-wish-sand-stream{position:absolute;left:24px;top:22px;width:2px;height:21px;
 border-radius:1px;background:linear-gradient(#ffeabb,#e5c271aa,#f6e3a8);
 transform-origin:top;animation:rk-wish-sand-flow 3.8s ease-in-out infinite}
@keyframes rk-wish-sand-upper{0%{opacity:1;transform:scaleX(1)}85%{opacity:.35;transform:scaleX(.3)}100%{opacity:1;transform:scaleX(1)}}
@keyframes rk-wish-sand-lower{0%{opacity:.3;transform:scaleX(.36)}85%{opacity:1;transform:scaleX(1)}100%{opacity:.3;transform:scaleX(.36)}}
@keyframes rk-wish-sand-flow{0%,95%,100%{opacity:0}12%,87%{opacity:.9}}
.rk-wish-source-rays{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);
 z-index:4;width:186px;height:145px;border-radius:50%;pointer-events:none;opacity:.19;
 background:conic-gradient(from 40deg,transparent 0deg,#f5faeaaa 5deg,transparent 18deg,transparent 115deg,#8adffbb5 124deg,transparent 139deg,transparent 360deg);
 filter:blur(10px);mix-blend-mode:screen;animation:rk-wish-source-sweep 5.6s linear infinite}
@keyframes rk-wish-source-sweep{from{transform:translate(-50%,-50%) rotate(0)}
 to{transform:translate(-50%,-50%) rotate(360deg)}}
.rk-wish-casting .rk-wish-source-rays{opacity:.82;animation-duration:.85s}
.rk-wish-casting .rk-wish-art{animation-duration:.62s}
.rk-wish-casting .rk-wish-choice{pointer-events:none;opacity:.5}
.rk-wish-reward-scene{position:absolute;z-index:7;inset:0;display:flex;flex-direction:column;
 align-items:center;justify-content:center;gap:3px;overflow:hidden;text-shadow:0 2px 10px #030c0b;
 background:radial-gradient(ellipse,#0b312ac9,#07141a72 72%,transparent);
 pointer-events:none;animation:rk-wish-award-backdrop 1.9s ease-out both}
.rk-wish-reward-flare{position:absolute;inset:0;
 background:conic-gradient(from 70deg,transparent 8%,#ffe9a3af 15%,transparent 20%,transparent 55%,#87ecf3bc 63%,transparent 70%);
 filter:blur(8px);animation:rk-wish-award-spin 1.166667s ease-out forwards}
.rk-wish-reward-count,.rk-wish-reward-type{z-index:2;color:#fff0b9}
.rk-wish-reward-count{font-size:2rem;line-height:1.2;animation:rk-wish-award-number 1s cubic-bezier(.2,1.5,.35,1) both}
.rk-wish-reward-type{font-size:.94rem;animation:rk-wish-award-number .75s .09s ease-out both}
@keyframes rk-wish-award-backdrop{0%{opacity:0}15%,78%{opacity:1}100%{opacity:0}}
@keyframes rk-wish-award-spin{0%{opacity:0;transform:scale(.12) rotate(-140deg)}
 33%{opacity:1}100%{opacity:0;transform:scale(2) rotate(75deg)}}
@keyframes rk-wish-award-number{0%{opacity:0;transform:translateY(25px) scale(.5)}
 70%{opacity:1;transform:translateY(-6px) scale(1.16)}100%{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:365px){.rk-wish-source-snake{right:3px;width:54px}.rk-wish-source-hourglass{right:58px;transform:scale(.72);transform-origin:bottom right}}
@media(prefers-reduced-motion:reduce){
 .rk-wish-art,.rk-wish-gold,.rk-wish-green,.rk-wish-source-snake,.rk-wish-sand-upper,.rk-wish-sand-lower,
 .rk-wish-sand-stream,.rk-wish-source-rays,.rk-wish-reward-scene,.rk-wish-reward-flare,.rk-wish-reward-count,
 .rk-wish-reward-type{animation:none!important}
 .rk-wish-reward-scene{opacity:1}
}

.rk-wish-item-icon{width:33px;height:33px;object-fit:contain;flex:none;filter:drop-shadow(0 2px 3px #111a)}
.rk-wish-source-stamp{position:absolute;top:9px;right:8px;z-index:6;width:38px;height:38px;object-fit:contain;pointer-events:none;
 filter:drop-shadow(0 2px 7px #46c0e566);animation:rk-wish-stamp-pulse 2.8s ease-in-out infinite alternate}
@keyframes rk-wish-stamp-pulse{from{transform:scale(.87);opacity:.7}to{transform:scale(1.07);opacity:1}}
@media(prefers-reduced-motion:reduce){.rk-wish-source-stamp{animation:none}}


/* Waterfall city marker: fixed source type21 / plot103, independently
   clickable, with ambient mist synchronized to the water scene. */
.hotspot[data-code="fountain"] .marker.art{
 position:relative;overflow:visible;isolation:isolate;
}
.hotspot[data-code="fountain"]:not(.rk-building-busy) .marker.art::before{
 content:"";position:absolute;pointer-events:none;z-index:-1;
 left:-13%;right:-13%;top:9%;bottom:-6%;border-radius:50%;
 background:radial-gradient(ellipse at 49% 73%,
   #80fff679 0%,#70cbca3b 36%,transparent 76%);
 filter:blur(5px);
 animation:rk-waterfall-wishing-ready 3.8s ease-in-out infinite alternate;
}
.hotspot[data-code="fountain"] .strategy-sprite{
 position:relative;z-index:1;pointer-events:none;
 filter:drop-shadow(0 2px 9px #13798162);
 animation:rk-waterfall-wishing-idle 4.5s ease-in-out infinite alternate;
 transform-origin:50% 72%;
}
.hotspot[data-code="fountain"].rk-selected-building .strategy-sprite{
 filter:drop-shadow(0 0 9px #fcdf9bcc) drop-shadow(0 3px 6px #0a3438);
}
.hotspot[data-code="fountain"].rk-building-busy .strategy-sprite{
 animation:none;opacity:.72;
}
@keyframes rk-waterfall-wishing-ready{
 from{opacity:.33;transform:scale(.88) translateY(5px)}
 to{opacity:.80;transform:scale(1.08) translateY(-3px)}
}
@keyframes rk-waterfall-wishing-idle{
 from{transform:translateY(1px) scale(.994)}
 to{transform:translateY(-2px) scale(1.023)}
}
@media(prefers-reduced-motion:reduce){
 .hotspot[data-code="fountain"] .marker.art::before,
 .hotspot[data-code="fountain"] .strategy-sprite{animation:none}
}
