/* A small, lit casting floor gives the slow throw room to breathe. */
.blocks{position:relative;isolation:isolate;height:292px;min-height:292px;padding:0;margin:0 auto 12px;gap:48px;align-items:flex-end;perspective:850px;overflow:hidden;border-radius:50% 50% 10px 10px;background:radial-gradient(ellipse at 50% 75%,#ad734320,transparent 67%)}
.blocks::before{content:'';position:absolute;z-index:-1;left:6%;right:6%;bottom:42px;height:120px;transform:rotateX(62deg);border-radius:50%;background:radial-gradient(ellipse,#795d4166,#39291c44 55%,transparent 74%);border-bottom:1px solid #d9b57925;box-shadow:0 22px 34px #0005}
.blocks::after{content:'';position:absolute;inset:0;z-index:-1;opacity:0;background:radial-gradient(ellipse at 50% 25%,#f0c68b13,transparent 60%);transition:opacity .7s}
.blocks.is-casting::after{opacity:1}
.moonwrap{position:relative;width:80px;height:113px;gap:0;perspective:700px;flex:none}
.moon-shadow{position:absolute;width:70px;height:24px;left:5px;top:69px;border-radius:50%;background:radial-gradient(ellipse,#0009,transparent 71%);filter:blur(2px);transform:scale(1.1,.7);opacity:.7;pointer-events:none}
.moon-flight{position:relative;width:72px;height:92px;margin:auto;transform-style:preserve-3d;z-index:1}
.moon{width:72px;height:92px;transform:rotateX(24deg) rotateZ(-16deg) rotateY(0deg);transform-style:preserve-3d;filter:none;will-change:auto}
.moon.mirror{transform:rotateX(24deg) rotateZ(16deg) rotateY(0deg)}
.moon.show-flat{transform:rotateX(24deg) rotateZ(-16deg) rotateY(180deg)}
.moon.mirror.show-flat{transform:rotateX(24deg) rotateZ(16deg) rotateY(180deg)}
.moon .mface,.moon.mirror .mface{opacity:1!important;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:none}
.moon .mface.round,.moon.mirror .mface.round{transform:translateZ(5px)}
.moon .mface.flat,.moon.mirror .mface.flat{transform:rotateY(180deg) translateZ(5px)}
.moon .mface svg{filter:none}
.moon.mirror .mface svg,.moon.mirror .medge svg{transform:scaleX(-1)}
.moon .mface.flat svg{transform:scaleX(-1)}
.moon.mirror .mface.flat svg{transform:none}
.moon .medge{position:absolute;inset:0;transform:translateZ(var(--edge-depth));pointer-events:none}
.moon .medge svg{width:100%;height:100%;overflow:visible}
.moonwrap .mlabel{position:absolute;top:99px;left:-12px;right:-12px;min-height:18px;white-space:nowrap;opacity:1;transition:opacity .25s}
.is-casting .mlabel{opacity:0}
.is-casting .moon,.is-casting .moon-flight,.is-casting .moon-shadow{will-change:transform}
.jiao .verdict{min-height:65px;display:flex;flex-direction:column;justify-content:center}
.toss-btn:disabled{cursor:wait;opacity:.64}
.moon-blocks-webgl{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.blocks.has-3d-moons{border-radius:10px;perspective:none}
.has-3d-moons .moon-flight,.has-3d-moons .moon-shadow{visibility:hidden}
.has-3d-moons .moonwrap{z-index:3;pointer-events:none}
.blocks.has-3d-moons::before{display:none}
.has-3d-moons .mlabel{top:83px;z-index:3}
.moon-cast-target{position:absolute;inset:0;z-index:4;display:block;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:inherit;background:transparent;box-shadow:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.moon-cast-target:hover:not(:disabled){box-shadow:inset 0 0 36px #edca8a14}
.moon-cast-target:focus-visible{outline:2px solid #e2c48e;outline-offset:-4px;box-shadow:inset 0 0 30px #edca8a1c}
.moon-cast-target:disabled{cursor:wait;opacity:1}
@media(max-width:600px){.blocks{height:268px;min-height:268px;gap:36px}.moonwrap{width:74px}.blocks::before{left:0;right:0}}
@media(prefers-reduced-motion:reduce){.blocks::after,.moonwrap .mlabel{transition:none}.is-casting .moon,.is-casting .moon-flight,.is-casting .moon-shadow{will-change:auto}}
