@charset "UTF-8";.celebration-layer{position:fixed;inset:0;width:100vw;height:100vh;display:block;pointer-events:none;overflow:hidden;z-index:999}.celebration-text{position:absolute;left:50%;top:16px;transform:translate(-50%);z-index:2;margin-top:0;padding:0;border-radius:0;font-weight:700;color:#0f5f2d;background:transparent;border:none;text-shadow:0 2px 12px rgba(255,255,255,.9);animation:resultTextPop 1.8s ease-in-out infinite;white-space:nowrap}.celebration-text.grand{color:#6f4b00;background:transparent;box-shadow:none}.burst{--size: 10px;--width-scale: 1;position:absolute;left:var(--start-x);top:-24px;width:calc(var(--size) * var(--width-scale));height:var(--size);border-radius:var(--radius);background:linear-gradient(180deg,#2ef79c,#0cab57);opacity:var(--base-opacity);animation:resultConfettiFall var(--duration) linear infinite;animation-delay:var(--delay);box-shadow:0 0 9px #27ee8c66;transform-origin:center center;z-index:1;filter:saturate(1.2)}.celebration-layer.grand .burst{background:linear-gradient(135deg,#ffd43d,#ff7a00);box-shadow:0 0 12px #ffad268c}.burst:nth-child(4n){background:linear-gradient(180deg,#47a8ff,#1b5dd6)}.burst:nth-child(5n){background:linear-gradient(180deg,#f86dd5,#b641ae)}.burst:nth-child(6n){background:linear-gradient(180deg,#ffe14d,#ff8f00);--width-scale: 1.8}.burst:nth-child(7n){background:linear-gradient(180deg,#79ff6b,#00b463);--width-scale: .6}.burst:nth-child(3n){border-radius:50%}.spark{position:absolute;left:var(--start-x);top:-20px;width:var(--size);height:var(--size);border-radius:50%;background:#fff;box-shadow:0 0 10px #fffffff2,0 0 18px #ffffffb3;opacity:var(--base-opacity);animation:resultConfettiFall var(--duration) linear infinite;animation-delay:var(--delay);z-index:1}.celebration-layer.grand .spark{box-shadow:0 0 10px #fff3c4fa,0 0 22px #ffd15ed1}@keyframes resultConfettiFall{0%{transform:translate3d(0,-22px,0) rotate(0);opacity:calc(var(--base-opacity) * .95)}20%{transform:translate3d(calc(var(--drift-x) * .35),20vh,0) rotate(calc(var(--end-rot) * .35));opacity:var(--base-opacity)}55%{transform:translate3d(calc(var(--drift-x) * .75),58vh,0) rotate(calc(var(--end-rot) * .75));opacity:calc(var(--base-opacity) * .92)}80%{transform:translate3d(var(--drift-x),82vh,0) rotate(var(--end-rot));opacity:calc(var(--base-opacity) * .45)}to{opacity:0;transform:translate3d(calc(var(--drift-x) * 1.12),104vh,0) rotate(calc(var(--end-rot) * 1.1))}}@keyframes resultTextPop{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.02)}}
