.nf-grid{z-index:0;pointer-events:none;--nf-grid:color-mix(in srgb, var(--diagram-core-stroke) 8%, transparent);--nf-grid-major:color-mix(in srgb, var(--diagram-core-stroke) 16%, transparent);background-image:linear-gradient(var(--nf-grid) 1px, transparent 1px), linear-gradient(90deg, var(--nf-grid) 1px, transparent 1px), linear-gradient(var(--nf-grid-major) 1px, transparent 1px), linear-gradient(90deg, var(--nf-grid-major) 1px, transparent 1px);-webkit-mask-image:radial-gradient(ellipse 75% 70% at 50% 50%, var(--color-ink) 35%, transparent 100%);-webkit-mask-image:radial-gradient(ellipse 75% 70% at 50% 50%, var(--color-ink) 35%, transparent 100%);mask-image:radial-gradient(ellipse 75% 70% at 50% 50%, var(--color-ink) 35%, transparent 100%);background-position:50%;background-size:24px 24px,24px 24px,96px 96px,96px 96px;animation:1.2s both nf-fade;position:fixed;inset:0}.nf-copy{animation:.7s cubic-bezier(.2,.8,.2,1) 2.6s both nf-rise}.nf-path{background:color-mix(in srgb, var(--diagram-core-stroke) 12%, transparent);color:var(--diagram-core-stroke);font-family:var(--font-geist-mono), ui-monospace, monospace;word-break:break-all;border-radius:8px;padding:2px 9px;font-size:.875rem;display:inline-block}.nf-plan{--nf-line:var(--diagram-core-stroke);--nf-line-soft:color-mix(in srgb, var(--diagram-core-stroke) 45%, transparent);width:100%;height:auto;overflow:visible}.nf-frame{fill:none;stroke:var(--nf-line-soft);stroke-width:1.5px;stroke-dasharray:1;stroke-dashoffset:1px;animation:1s .1s forwards nf-draw}.nf-floor{fill:color-mix(in srgb, var(--diagram-core-stroke) 5%, transparent);animation:.4s both nf-fade;animation-delay:calc(var(--i) * .16s + .5s)}.nf-wall{fill:none;stroke:var(--nf-line);stroke-width:3px;stroke-linecap:square;stroke-dasharray:1;stroke-dashoffset:1px;animation:.55s cubic-bezier(.4,0,.2,1) forwards nf-draw;animation-delay:calc(var(--i) * .16s + .3s)}.nf-name{fill:var(--nf-line);font:700 13px var(--font-geist-mono), ui-monospace, monospace;letter-spacing:1.5px;animation:.3s both nf-fade;animation-delay:calc(var(--i) * .16s + .7s)}.nf-door{fill:none;stroke:var(--nf-line-soft);stroke-width:1.5px;animation:.4s 1.5s both nf-fade}.nf-dim line{stroke:var(--nf-line-soft);stroke-width:1.2px}.nf-dim{animation:.5s 1.6s both nf-fade}.nf-dim-text{fill:var(--nf-line-soft);font:500 11px var(--font-geist-mono), ui-monospace, monospace;animation:.5s 1.7s both nf-fade}.nf-annex{fill:color-mix(in srgb, var(--diagram-core-stroke) 7%, transparent);stroke:var(--nf-line);stroke-width:2.5px;stroke-dasharray:10 8;animation:.5s 2.1s both nf-fade,1.6s linear 2.6s infinite nf-march}.nf-code{fill:var(--nf-line);font:800 64px var(--font-inter), ui-sans-serif, sans-serif;letter-spacing:-3px;transform-box:fill-box;transform-origin:50%;animation:.5s cubic-bezier(.2,1.4,.4,1) 2.4s both nf-pop}.nf-stamp{transform-box:fill-box;transform-origin:50%;animation:.45s cubic-bezier(.2,.9,.3,1.2) 2.85s both nf-slam}.nf-stamp rect{fill:color-mix(in srgb, var(--theme-background) 85%, transparent);stroke:var(--nf-line)}.nf-stamp rect+rect{fill:none}.nf-stamp text{fill:var(--nf-line);font:800 15px var(--font-geist-mono), ui-monospace, monospace;letter-spacing:2px}.nf-seeker{offset-path:var(--route);offset-rotate:0deg;animation:2.1s cubic-bezier(.45,0,.25,1) .9s both nf-seek,2.4s ease-in-out 3s infinite nf-hover}.nf-dot{fill:var(--color-home-cta);stroke:var(--color-ink-strong);stroke-width:2.5px}.nf-halo{fill:none;stroke:var(--color-home-cta);stroke-width:2px;opacity:0;transform-box:fill-box;transform-origin:50%;animation:1.8s ease-out 3s infinite nf-ping}.nf-seeker text{fill:var(--theme-text);font:800 16px var(--font-inter), ui-sans-serif, sans-serif;animation:.3s 3s both nf-fade}@keyframes nf-draw{to{stroke-dashoffset:0}}@keyframes nf-fade{0%{opacity:0}}@keyframes nf-rise{0%{opacity:0;transform:translateY(14px)}}@keyframes nf-march{to{stroke-dashoffset:-36px}}@keyframes nf-pop{0%{opacity:0;transform:scale(.6)}}@keyframes nf-slam{0%{opacity:0;transform:rotate(-9deg)scale(2.1)}70%{opacity:1;transform:rotate(-9deg)scale(.94)}to{opacity:1;transform:rotate(-9deg)scale(1)}}@keyframes nf-seek{0%{offset-distance:0%}to{offset-distance:100%}}@keyframes nf-hover{50%{translate:0 -6px}}@keyframes nf-ping{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}@media (prefers-reduced-motion:reduce){.nf-grid,.nf-copy,.nf-plan *{animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}
