.generic-loader{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;position:relative;overflow:hidden;background:radial-gradient(circle at 20% 20%,#ffe7d6 0,transparent 45%),radial-gradient(circle at 82% 82%,#ffeede 0,transparent 52%),linear-gradient(145deg,#fff8f3,#fff2e8 50%,#ffe9d7)}.generic-loader-bg-shape{position:absolute;border-radius:999px;filter:blur(12px);opacity:.45;pointer-events:none}.generic-loader-bg-shape-a{width:240px;height:240px;top:-80px;left:-70px;background:#ffb888;animation:generic-shape-float-a 8s ease-in-out infinite}.generic-loader-bg-shape-b{width:300px;height:300px;right:-100px;bottom:-120px;background:#ffc99f;animation:generic-shape-float-b 10s ease-in-out infinite}.generic-loader-house path{stroke:#ff914d;stroke-width:7;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:generic-house-draw 2s ease-in-out infinite}.generic-loader-text{display:flex;align-items:center;gap:9px;color:#9a5a2f;font-weight:500;font-size:.9rem}.generic-loader-text p{margin:0}.generic-loader-dots{display:inline-flex;gap:5px}.generic-loader-dots span{width:6px;height:6px;border-radius:50%;background:#ff914d;opacity:.25;animation:generic-dot-pulse 1.2s ease-in-out infinite}.generic-loader-dots span:nth-child(2){animation-delay:.2s}.generic-loader-dots span:nth-child(3){animation-delay:.4s}@keyframes generic-house-draw{0%{stroke-dashoffset:1}55%{stroke-dashoffset:0}80%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:.15}}@keyframes generic-dot-pulse{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@keyframes generic-shape-float-a{0%,to{transform:translate(0)}50%{transform:translate(20px,14px)}}@keyframes generic-shape-float-b{0%,to{transform:translate(0)}50%{transform:translate(-18px,-12px)}}@media (prefers-reduced-motion:reduce){.generic-loader-house path{animation:none;stroke-dashoffset:0}.generic-loader-bg-shape,.generic-loader-dots span{animation:none}}