#fx-layer{position:fixed;inset:0;pointer-events:none;z-index:60;overflow:hidden;contain:strict}
#fx-layer *{pointer-events:none}
.fx-sprite,.fx-petal,.fx-halo,.fx-thought{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%)}
.fx-sprite{width:var(--size);height:var(--size);object-fit:contain;filter:drop-shadow(0 4px 4px #60432124)}
.fx-petal{width:7px;height:14px;border-radius:85% 15% 85% 15%;background:var(--tint)}
.fx-halo{width:var(--size);height:var(--size);border-radius:50%;border:3px solid #f2c141;box-shadow:0 0 20px 8px #f2c14135;background:radial-gradient(ellipse,#fff8e62a,transparent 65%)}
.fx-thought{color:#765339;background:#fff8e6;border-radius:50%;font-size:28px;padding:0 10px;line-height:1}
.fx-feather{position:absolute;left:var(--edge);right:var(--right);top:35%;width:6px;height:20px;background:#fff8e6a0;border-radius:90% 12% 90% 12%;animation:sky-edge-drift 17s ease-in-out infinite;animation-delay:var(--delay)}
@keyframes sky-edge-drift{0%,100%{transform:translateY(-60px) rotate(-18deg);opacity:0}30%,70%{opacity:.55}50%{transform:translateY(100px) rotate(35deg)}}
.juice-idle,.juice-last{animation:sky-breathe 2.4s ease-in-out infinite!important}
@keyframes sky-breathe{50%{scale:1.04}}
.juice-hint{outline:3px dashed #d6a33f!important;outline-offset:4px}
.drag-letter{scale:1.1}
.fx-finale:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 35%,#ffeab4,transparent 70%);animation:sky-bloom 2.6s ease-in-out both}
@keyframes sky-bloom{0%,100%{opacity:0}50%{opacity:.23}}
/* Reactions belong to the affected object; the whole board stays still. */
.success #board,.success .star:last-child,.success .postmaster-bird,.success .seated-bird{animation:none}
dialog:has(.reward-art)::backdrop,dialog:has(.cast)::backdrop{background:#3d322630;animation:sky-curtain .6s ease-out}
@keyframes sky-curtain{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.fx-feather,.fx-petal,.fx-finale:before{display:none}.juice-idle,.juice-last{animation:none!important}.drag-letter{scale:1}}

.fx-halo.fx-hint{border:3px dashed #d6a365;box-shadow:none;background:none}
