/* Japanese Temple slot — animation keyframes (ported verbatim from the original build)
   plus the toast + error styles used by the platform client. */
html,body{margin:0;padding:0;height:100%;background:#150b16;overflow:hidden;font-family:Vazirmatn,system-ui,sans-serif;}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}

@keyframes jtWildPop{0%{transform:scale(.85)}45%{transform:scale(1.1)}100%{transform:scale(1)}}
@keyframes jtGlowPulse{0%,100%{box-shadow:0 0 0 rgba(255,190,60,0)}50%{box-shadow:0 0 26px rgba(255,190,60,.9)}}
@keyframes jtPetal{0%{transform:translate3d(0,-10vh,0) rotate(0deg);opacity:0}10%{opacity:.9}100%{transform:translate3d(-14vw,110vh,0) rotate(420deg);opacity:0}}
@keyframes jtZoom{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.08);opacity:1}100%{transform:scale(1);opacity:1}}
@keyframes jtSpinRing{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes jtCoin{0%{transform:translateY(-20vh) rotate(0deg);opacity:0}15%{opacity:1}100%{transform:translateY(110vh) rotate(720deg);opacity:0}}
@keyframes jtWinLand{0%{transform:scale(1)}22%{transform:scale(1.34) rotate(-6deg)}46%{transform:scale(1.04) rotate(4deg)}68%{transform:scale(1.22) rotate(-2deg)}100%{transform:scale(1.12) rotate(0deg)}}
@keyframes jtWinBeat{0%,100%{transform:scale(1.06)}50%{transform:scale(1.24)}}
@keyframes jtHaloSpin{0%{transform:rotate(0deg) scale(1);opacity:.55}50%{opacity:1;transform:rotate(180deg) scale(1.1)}100%{transform:rotate(360deg) scale(1);opacity:.55}}
@keyframes jtRingBurst{0%{transform:scale(.55);opacity:1;border-width:5px}100%{transform:scale(1.5);opacity:0;border-width:1px}}
@keyframes jtSparkle{0%,100%{transform:scale(0) rotate(0deg);opacity:0}45%{transform:scale(1) rotate(120deg);opacity:1}}
@keyframes jtAmountPop{0%{transform:translate(-50%,4px) scale(.5);opacity:0}25%{transform:translate(-50%,-8px) scale(1.14);opacity:1}72%{transform:translate(-50%,-14px) scale(1);opacity:1}100%{transform:translate(-50%,-34px) scale(.94);opacity:0}}
@keyframes jtBannerPop{0%{transform:translate(-50%,14px) scale(.7);opacity:0}55%{transform:translate(-50%,0) scale(1.1);opacity:1}100%{transform:translate(-50%,0) scale(1);opacity:1}}
@keyframes jtBannerShine{0%{background-position:-160% 0}100%{background-position:260% 0}}
@keyframes jtFrameFlash{0%,100%{box-shadow:inset 0 0 0 rgba(255,205,80,0)}50%{box-shadow:inset 0 0 46px rgba(255,205,80,.75)}}
@keyframes jtToast{0%{opacity:0;transform:translate(-50%,-14px)}12%{opacity:1;transform:translate(-50%,0)}80%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-10px)}}

/* Toast: fixed to the iframe viewport, driven by a CSS keyframe (rAF fades can be
   throttled inside a nested iframe and never appear). */
.jt-toast{position:fixed;left:50%;top:12px;transform:translate(-50%,-14px);z-index:99999;max-width:92vw;padding:11px 24px;border-radius:24px;font-family:Vazirmatn,Tahoma,sans-serif;font-size:16px;font-weight:700;color:#fff;text-align:center;white-space:nowrap;pointer-events:none;}

#jt-error{position:fixed;left:50%;top:14px;transform:translateX(-50%);z-index:100000;display:none;max-width:92vw;padding:10px 20px;border-radius:12px;font-family:Vazirmatn,Tahoma,sans-serif;font-size:14px;font-weight:700;color:#fff;background:linear-gradient(180deg,#8a2b16,#5a1a0d);box-shadow:0 0 0 2px #c25a2a,0 12px 28px rgba(0,0,0,.55);}

/* Mobile (portrait) bottom HUD — a floating two-row panel in the game's plum + gold:
   row 1 = Balance / Last win chips, row 2 = the bet stepper. The original single strip
   (fixed 9vh height, three columns) let "10,000 تومان" wrap and spill out of the bar on
   narrow phones. Toggled by layout() via .jt-portrait on the root; !important because
   the bar's base look is inline in index.html (desktop/landscape stay unchanged). */
.jt-portrait [data-jt="bottombar"]{left:10px!important;right:10px!important;bottom:calc(10px + env(safe-area-inset-bottom,0px))!important;height:auto!important;min-height:0!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"bal win" "bet bet";gap:8px!important;padding:10px!important;border-radius:18px;background:linear-gradient(180deg,rgba(64,14,50,.95),rgba(26,6,22,.97))!important;border:1.5px solid rgba(255,192,46,.6)!important;box-shadow:0 10px 26px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.1);}
.jt-portrait [data-jt="bottombar"] > div:nth-child(1){grid-area:bal;}
.jt-portrait [data-jt="bottombar"] > div:nth-child(2){grid-area:bet;justify-content:center;gap:18px!important;}
.jt-portrait [data-jt="bottombar"] > div:nth-child(3){grid-area:win;}
.jt-portrait [data-jt="bottombar"] > div:nth-child(1),
.jt-portrait [data-jt="bottombar"] > div:nth-child(3){align-items:center!important;min-width:0;padding:6px 10px;border-radius:12px;background:rgba(0,0,0,.28);box-shadow:inset 0 0 0 1px rgba(255,192,46,.2);}
.jt-portrait [data-jt="ballabel"],.jt-portrait [data-jt="lastlabel"],.jt-portrait [data-jt="betlabel"]{font-size:11px!important;line-height:1.2;}
.jt-portrait [data-jt="balance"],.jt-portrait [data-jt="lastwin"]{font-size:clamp(13px,4vw,17px)!important;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.jt-portrait [data-jt="bet"]{font-size:clamp(15px,4.6vw,19px)!important;line-height:1.25;white-space:nowrap;}
.jt-portrait [data-jt="betminus"],.jt-portrait [data-jt="betplus"]{width:40px!important;height:40px!important;font-size:20px!important;border:1.5px solid rgba(255,192,46,.7)!important;background:radial-gradient(circle at 50% 35%,rgba(255,192,46,.3),rgba(255,192,46,.06))!important;color:#FFD75E!important;}
