/* Nestly — motion components & primitives */

/* ---------- <nestly-logo> ---------- */
nestly-logo { display: inline-block; width: var(--nl-size, 1em); aspect-ratio: 1; flex: none; vertical-align: middle; }
nestly-logo .nl-svg { display: block; width: 100%; height: 100%; overflow: visible; }
nestly-logo .nl-svg g { transform-box: fill-box; transform-origin: 50% 50%; }
nestly-logo .nl-house { transform-origin: 50% 100%; }
nestly-logo .nl-tile { transform-origin: 50% 60%; }
nestly-logo.nl-pre .nl-svg { visibility: hidden; }
nestly-logo .nl-doorlight { opacity: .55; }
nestly-logo .nl-halo { opacity: 0; }

/* ---------- Primitives ---------- */
[data-n-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--ease-out), transform .8s var(--ease-out); }
[data-n-reveal].in { opacity: 1; transform: none; }
[data-n-stagger] > .n-st { opacity: 0; transform: translateY(10px); transition: opacity .5s var(--ease-out), transform .6s var(--ease-out); }
[data-n-stagger].in > .n-st { opacity: 1; transform: none; }
[data-n-glow] { position: relative; isolation: isolate; }
[data-n-glow]::before {
  content: ""; position: absolute; inset: -12% -8%; z-index: -1; pointer-events: none; border-radius: 50%;
  background: radial-gradient(45% 50% at 30% 55%, rgba(255,174,149,.35), transparent 70%), radial-gradient(45% 50% at 72% 45%, rgba(143,123,255,.32), transparent 70%);
  opacity: 0; transition: opacity 1.4s var(--ease-out);
}
[data-n-glow].n-glow-in::before { opacity: 1; }
[data-n-hover] { transition: transform .22s var(--ease-out), box-shadow .3s var(--ease-out); }
@media (hover: hover) {
  [data-n-hover]:hover { transform: translateY(-3px); box-shadow: 0 18px 40px -22px rgba(90,60,180,.35); }
  [data-n-hover]:hover [data-n-nudge] { transform: translateY(-1.5px); }
}
[data-n-nudge] { transition: transform .2s var(--ease-out); }

@media (prefers-reduced-motion: reduce) {
  [data-n-reveal], [data-n-stagger] > .n-st { opacity: 1 !important; transform: none !important; }
}
