.finale-root{position:absolute;inset:0;z-index:12;pointer-events:none;overflow:visible;isolation:isolate;background:radial-gradient(ellipse at 50% 44%,#10131ce6 0 27%,#10131c88 50%,transparent 73%);--finale-accent:#b3a5ff}
.finale-halo{position:absolute;left:50%;top:44%;width:260px;height:145px;border-radius:50%;transform:translate(-50%,-50%);opacity:0;background:radial-gradient(ellipse,color-mix(in srgb,var(--finale-accent) 48%,transparent),color-mix(in srgb,var(--finale-accent) 20%,transparent) 44%,transparent 70%);pointer-events:none}
.finale-orb{position:absolute;left:50%;top:44%;width:48px;height:48px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 35% 30%,#fff 0 8%,#fff4d9 20%,var(--finale-accent) 48%,transparent 75%);box-shadow:0 0 23px color-mix(in srgb,var(--finale-accent) 62%,transparent),0 0 42px color-mix(in srgb,var(--finale-accent) 25%,transparent);opacity:0;z-index:3}
.finale-inputs{position:absolute;inset:0;z-index:2;pointer-events:none}
.finale-atom{position:absolute;left:50%;top:44%;display:grid;place-items:center;width:26px;height:26px;box-sizing:border-box;border:1px solid color-mix(in srgb,var(--finale-atom-color,#ba73ff) 70%,#fff);border-radius:50%;background:radial-gradient(circle at 28% 24%,#fff8 0 7%,transparent 26%),radial-gradient(circle at 35% 30%,var(--finale-atom-color,#ba73ff),#172138);box-shadow:inset -2px -3px 5px #10152b80,0 0 9px color-mix(in srgb,var(--finale-atom-color,#ba73ff) 52%,transparent);color:#fff;text-shadow:0 1px 3px #101524;font:700 11px 'Space Grotesk',Arial,sans-serif;line-height:1;opacity:0;will-change:transform,opacity}
.finale-product{position:absolute;left:50%;top:44%;width:132px;height:132px;opacity:0;transform:translate(-50%,-50%);z-index:4;border-radius:19px;box-shadow:0 0 0 1px color-mix(in srgb,var(--finale-accent) 48%,transparent),0 0 23px color-mix(in srgb,var(--finale-accent) 26%,transparent),0 12px 25px #06091455}
.finale-product-image{width:100%;height:100%;border-radius:inherit;background-repeat:no-repeat;background-color:#10131c;background-position:center;background-size:contain;overflow:hidden}
.finale-product-image svg{width:100%;height:100%;display:block}
.finale-caption{position:absolute;left:50%;top:calc(44% + 83px);width:220px;max-width:100%;transform:translateX(-50%);text-align:center;font:600 12px 'Space Grotesk',Arial,sans-serif;letter-spacing:.35px;color:var(--finale-accent);opacity:0;text-shadow:0 0 12px color-mix(in srgb,var(--finale-accent) 23%,transparent);z-index:6}
.finale-ring{position:absolute;left:50%;top:44%;width:138px;height:76px;box-sizing:border-box;border:1.6px solid color-mix(in srgb,var(--finale-accent) 72%,#fff);border-radius:50%;box-shadow:0 0 14px color-mix(in srgb,var(--finale-accent) 55%,transparent),inset 0 0 11px color-mix(in srgb,var(--finale-accent) 30%,transparent);opacity:0;z-index:1}
.finale-spark{position:absolute;left:50%;top:44%;width:4px;height:4px;border-radius:50%;box-shadow:0 0 7px color-mix(in srgb,var(--finale-accent) 50%,transparent);opacity:0;pointer-events:none;z-index:5;will-change:transform,opacity}
.finale-root[data-tier="low"] .finale-product-image{filter:saturate(.9);opacity:.9}
.finale-root[data-tier="low"] .finale-product{box-shadow:0 0 0 1px #a298c85c,0 0 18px #af96ff24,0 10px 20px #06091444}
.finale-root[data-tier="medium"] .finale-product-image{filter:saturate(1.1);opacity:1}
.finale-root[data-tier="perfect"] .finale-product{width:142px;height:142px;box-shadow:0 0 0 1px #ffebb5cc,0 0 0 5px #ffe2a00b,0 0 33px #ffd67b57,0 13px 27px #06091455}
.finale-root[data-tier="perfect"] .finale-caption{top:calc(44% + 88px);font-size:13px;letter-spacing:.65px;color:#ffe9b3}
@media(max-width:760px){.finale-product{width:124px;height:124px}.finale-root[data-tier="perfect"] .finale-product{width:134px;height:134px}.finale-caption{top:calc(44% + 79px);font-size:11px}.finale-root[data-tier="perfect"] .finale-caption{top:calc(44% + 84px);font-size:12px}.finale-halo{width:190px;height:190px}}
@media(prefers-reduced-motion:reduce){.finale-atom,.finale-spark{will-change:auto}}

/* Bright one-shot effects stay mostly horizontal in the compact lab slot. */
.finale-charge-arc{position:absolute;left:50%;top:44%;width:100px;height:100px;box-sizing:border-box;border:2px solid transparent;border-top-color:var(--finale-accent);border-right-color:#88f8f2;border-radius:50%;opacity:0;filter:drop-shadow(0 0 5px var(--finale-accent));z-index:2;will-change:transform,opacity}
.finale-charge-arc:nth-of-type(even){border-top-color:#ddb1ff;border-right-color:var(--finale-accent)}
.finale-flare{position:absolute;left:50%;top:44%;width:240px;height:106px;opacity:0;pointer-events:none;z-index:3;background:radial-gradient(ellipse,#fffbd6c9 0%,color-mix(in srgb,var(--finale-accent) 62%,transparent) 26%,transparent 70%);mix-blend-mode:screen}
.finale-ray{position:absolute;left:50%;top:44%;width:34px;height:2px;border-radius:3px;background:linear-gradient(90deg,transparent,var(--ray-color,#baffdf));box-shadow:0 0 9px var(--ray-color,#baffdf);opacity:0;z-index:5;will-change:transform,opacity}
.finale-confetti{position:absolute;left:50%;top:44%;width:4px;height:9px;border-radius:1px;box-shadow:0 0 7px var(--finale-accent);opacity:0;z-index:5;will-change:transform,opacity}
.finale-root[data-tier="high"] .finale-product{box-shadow:0 0 0 1px #89ffd5bd,0 0 30px #5dffc34f,0 12px 25px #06091455}
.finale-root[data-tier="perfect"] .finale-product{box-shadow:0 0 0 1px #fff4be,0 0 0 5px #ffe2a019,0 0 42px #ffd67b88,0 0 66px #b48aff3d,0 13px 27px #06091455}
.finale-root[data-tier="perfect"] .finale-caption{text-shadow:0 0 8px #ffe59e66,0 0 20px #ffaa4760}
@media(max-width:760px){.finale-halo{width:240px;height:140px}}
@media(prefers-reduced-motion:reduce){.finale-charge-arc,.finale-flare,.finale-ray,.finale-confetti{display:none;will-change:auto}}

/* Non-perfect mixes keep their real liquid visible; only 100% forms a product. */
.finale-root:not([data-tier="perfect"]){background:none}
.finale-beaker .finale-halo{display:none}
.finale-beaker .finale-caption{top:auto;bottom:0;text-shadow:0 0 12px #10131c,0 0 8px var(--finale-accent)}
.finale-beaker.finale-held .finale-root{display:none}
.finale-root[data-tier="perfect"] .finale-caption{font-size:14px;font-weight:700;letter-spacing:1.2px;color:#fff0b4;text-shadow:0 0 10px #ffcf75,0 0 25px #ff9f4780}
.finale-root[data-tier="perfect"] .finale-product{box-shadow:0 0 0 1px #fff7cc,0 0 0 6px #ffda9917,0 0 48px #ffd67ba8,0 0 85px #b48aff70,0 13px 27px #06091455}
.finale-root[data-tier="perfect"] .finale-ray{height:3px;width:42px}
.finale-root[data-tier="perfect"] .finale-confetti{height:11px;width:5px}
.finale-screen{position:fixed;inset:0;z-index:1000;pointer-events:none;overflow:hidden;isolation:isolate;--finale-accent:#ffe29b}
.finale-screen-edge{position:absolute;inset:5px;border:2px solid color-mix(in srgb,var(--finale-accent) 70%,transparent);border-radius:18px;box-shadow:inset 0 0 50px color-mix(in srgb,var(--finale-accent) 23%,transparent),0 0 25px color-mix(in srgb,var(--finale-accent) 28%,transparent);opacity:0}
.finale-screen-confetti{position:absolute;width:5px;height:12px;border-radius:1px;opacity:0;box-shadow:0 0 8px currentColor;will-change:transform,opacity}
@media(max-width:760px){.finale-root[data-tier="perfect"] .finale-caption{font-size:12px;letter-spacing:.7px}.finale-screen-edge{inset:3px;border-radius:10px}}
@media(prefers-reduced-motion:reduce){.finale-screen{display:none}.finale-screen-confetti{will-change:auto}}
