#farmPortal{position:fixed;inset:0;z-index:10000;pointer-events:none;overflow:hidden;visibility:hidden;--fx:50vw;--fy:50vh}.farmDeparting #farmPortal{visibility:visible}.farmEntryRing{position:absolute;left:var(--fx);top:var(--fy);width:32px;height:32px;border:2px solid #c5ee9a;border-radius:50%;box-shadow:0 0 24px #9cdf6780;transform:translate(-50%,-50%) scale(.1);animation:farmEntryWave 1.5s ease-out forwards}.farmEntryRing:nth-child(2){border-color:#ffcf6e;animation-delay:.12s}.farmEntryRing:nth-child(3){border-color:#ff8c83;animation-delay:.24s}.farmEntryPetal{position:absolute;left:var(--fx);top:var(--fy);width:var(--size,52px);height:var(--size,52px);object-fit:contain;opacity:0;animation:farmPetalFlight 1.5s cubic-bezier(.15,.55,.35,1) var(--delay,0ms) forwards;filter:drop-shadow(0 1px 5px #001b1260)}.farmEntryWash{position:absolute;inset:0;background:radial-gradient(circle at var(--fx) var(--fy),#84b954,#236b3c 55%,#08261b);opacity:0;animation:farmEntryWash 1.6s ease-in forwards}@keyframes farmEntryWave{0%{opacity:.9;transform:translate(-50%,-50%) scale(.1)}100%{opacity:0;transform:translate(-50%,-50%) scale(65)}}@keyframes farmPetalFlight{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--start,0deg)) scale(.2)}12%{opacity:1}70%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(var(--spin)) scale(1)}}@keyframes farmEntryWash{0%,65%{opacity:0}100%{opacity:1}}@media(prefers-reduced-motion:reduce){#farmPortal{display:none}}
