.nstack{container:nstack/inline-size}.stack .nstack{margin-top:40px}.nstack-board{--lead-base:.12s;--lead-card:.32s;isolation:isolate;background:var(--bg);box-shadow:inset 0 0 0 1px var(--border);border-radius:16px;padding:16px;position:relative}.nstack-board:before{content:"";z-index:-1;border-radius:inherit;background-image:radial-gradient(circle at 12px 12px, var(--border-strong) 1px, transparent 1.5px);pointer-events:none;background-size:24px 24px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(75% 85% at 50% 30%,#000 20%,#0000 80%);mask-image:radial-gradient(75% 85% at 50% 30%,#000 20%,#0000 80%)}.nstack-roles{display:none}.nstack-products{gap:12px;margin:0;padding:0;list-style:none;display:grid}.nstack-card{--i:var(--order,0);background:var(--surface);min-width:0;box-shadow:0 0 0 1px var(--border), 0 1px 2px #0000000a, 0 16px 32px -24px color-mix(in srgb, var(--primary) 35%, transparent);border-radius:14px;flex-direction:column;gap:10px;padding:18px 18px 20px;display:flex;position:relative}.dark .nstack-card{background:var(--elevate)}.nstack-card-role{font-family:var(--font-mono);color:var(--muted-fg);margin:0;font-size:11.5px;font-weight:500;line-height:1.4}.nstack-name{height:44px;font-size:inherit;font-weight:inherit;letter-spacing:0;align-items:center;gap:10px;margin:0;display:flex}.nstack-plate{border-radius:10px;width:32px;height:32px}.nstack-plate img{width:22px;height:22px}.nstack-brand{letter-spacing:-.015em;color:var(--fg);font-size:21px;font-weight:600}.nstack-body{color:var(--fg-soft);margin:0;font-size:14px;line-height:1.5}.mark{max-width:100%;height:auto;display:block}.mark-on-dark,.dark .mark-on-light{display:none}.dark .mark-on-dark{display:block}.nstack-links{background:var(--bg);box-shadow:inset 0 0 0 1px var(--border);border-radius:10px;margin:auto 0 0;padding:0;list-style:none;container:nlinks/inline-size}.dark .nstack-links{background:var(--surface)}.nstack-link{justify-content:space-between;align-items:center;gap:4px 6px;min-height:38px;padding:6px 6px 6px 8px;font-size:12.5px;line-height:1.3;display:flex}.nstack-link+.nstack-link{border-top:1px solid var(--border)}.nstack-link-name{min-width:0;color:var(--fg);align-items:center;gap:6px;font-weight:500;display:flex}.nstack-link-name>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nstack-link-name>svg{color:var(--muted-fg);flex:none}.nstack-tag{white-space:nowrap;border-radius:6px;flex:none;align-items:center;gap:4px;height:20px;padding:0 6px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.nstack-tag-neutral{background:var(--muted);color:var(--fg-soft)}.nstack-tag-neutral>svg{color:var(--accent)}.nstack-tag-linked{background:var(--positive-soft);color:var(--primary)}.nstack-tag-linked>svg{color:var(--positive)}.dark .nstack-tag-linked{color:var(--accent)}@container nlinks (width<=232px){.nstack-link{flex-wrap:wrap;justify-content:flex-start;padding-block:8px}}.nstack-socket{display:none}.nstack-base{background:var(--primary);min-height:60px;color:var(--primary-fg);box-shadow:0 1px 2px #00000014, 0 18px 36px -24px color-mix(in srgb, var(--primary) 70%, transparent);border-radius:14px;align-items:center;gap:12px;margin:12px 0 0;padding:10px 14px 10px 10px;display:flex;position:relative}.dark .nstack-base{background:color-mix(in srgb, var(--primary) 20%, var(--elevate));color:var(--fg);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary) 55%, transparent)}.nstack-key{background:#ffffff1f;border-radius:10px;flex:none;place-items:center;width:40px;height:40px;display:grid}.dark .nstack-key{color:var(--accent);background:color-mix(in srgb, var(--primary) 16%, transparent)}.nstack-base-text{flex-wrap:wrap;align-items:baseline;gap:0 12px;min-width:0;display:flex}.nstack-base-title{letter-spacing:-.01em;margin:0;font-size:16px;font-weight:600;line-height:1.35}.nstack-base-sub{color:color-mix(in srgb, var(--primary-fg) 74%, transparent);margin:0;font-size:14px;line-height:1.4}.dark .nstack-base-sub{color:var(--fg-soft)}.nstack-base-mark{flex:none;width:auto;height:16px;margin-left:auto;display:block}@container nstack (width>=420px){.nstack[data-variant=compact] .nstack-products{grid-template-columns:repeat(2,minmax(0,1fr))}}@container nstack (width>=560px){.nstack-board{border-radius:20px;padding:24px}.nstack-products{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.nstack-base{margin-top:14px;padding-right:20px}.nstack-base-mark{height:18px}}@container nstack (width>=1100px){.nstack-board{padding:28px 32px 32px}.nstack-roles{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:16px;margin:0 0 12px;display:grid}.nstack-role{justify-content:center;height:24px;margin:0;display:flex;position:relative}.nstack-role:before{content:"";border:1px solid var(--border-strong);clip-path:inset(0);transition:clip-path .7s var(--ease-materialise);border-bottom:0;border-radius:6px 6px 0 0;position:absolute;inset:11px 14px 0}.nstack-role>span{background:var(--bg);font-family:var(--font-mono);color:var(--muted-fg);white-space:nowrap;transition:opacity .4s var(--ease-materialise) .24s;padding:0 10px;font-size:12px;font-weight:500;line-height:22px;position:relative}.nstack-role-group{grid-column:span 2}.nstack-products{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.nstack-card{padding:20px 20px 22px}.nstack-card-role{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.nstack-socket{background:var(--border-strong);width:1px;height:16px;transition:opacity .32s var(--ease-swift), transform .32s var(--ease-swift);transition-delay:calc(var(--lead-card) + .46s + var(--i) * 90ms);display:block;position:absolute;bottom:-17px;left:50%}.nstack-base{min-height:68px;margin-top:16px;padding:12px 24px 12px 14px}.nstack[data-variant=compact] .nstack-roles,.nstack[data-variant=compact] .nstack-socket{display:none}.nstack[data-variant=compact] .nstack-card-role{clip-path:none;width:auto;height:auto;position:static;overflow:visible}}.nstack[data-variant=compact] .nstack-card{gap:4px;padding:14px 16px 12px}.nstack[data-variant=compact] .nstack-name{height:40px}@keyframes nstack-land{0%{opacity:0;filter:blur(2.5px);transform:translateY(-16px)}to{opacity:1;filter:blur();transform:none}}@keyframes nstack-spread{0%{clip-path:inset(0 50% round 14px)}to{clip-path:inset(0 round 14px)}}@keyframes nstack-in{0%{opacity:0}to{opacity:1}}html.motion-ok .nstack [data-stack-item]:not(.is-in){opacity:0}html.motion-ok .nstack .nstack-roles:not(.is-in) .nstack-role:before{clip-path:inset(0 50%)}html.motion-ok .nstack .nstack-roles:not(.is-in) .nstack-role>span{opacity:0}html.motion-ok .nstack .nstack-base.is-in{animation:nstack-spread .76s var(--ease-materialise) var(--lead-base) both}html.motion-ok .nstack .nstack-base.is-in>*{animation:nstack-in .36s var(--ease-materialise) calc(var(--lead-base) + .44s) both}html.motion-ok .nstack .nstack-card.is-in{animation:nstack-land .64s var(--ease-materialise) calc(var(--lead-card) + var(--i) * 90ms) both}html.motion-ok .nstack .nstack-card:not(.is-in) .nstack-socket{opacity:0;transform:scaleY(.4)}html.motion-ok .nstack .nstack-card.is-in .nstack-link{animation:materialise .6s var(--ease-materialise) calc(var(--lead-card) + .76s + var(--j,0) * 70ms) both}@container nstack (width<=559px){.nstack-board{--lead-base:0s;--lead-card:0s}.nstack-base-sub{display:none}.nstack-card{--i:0}}.tile-row .tile-row-head{color:var(--fg);margin-bottom:20px}.tile-row .tile{flex-direction:column;gap:8px;min-height:128px;padding:20px;display:flex}.tile-row .tile-glyph{color:var(--accent)}.tile-row .tile-name{color:var(--fg);font-size:15px;font-weight:600;line-height:1.25}.tile-row .tile-body{color:var(--muted-fg);flex:auto;font-size:13px;line-height:1.45}.tile-row .tile-chip{margin-top:auto}@media (width<=639px){.tile-row .tile{min-height:104px;padding:16px}}.stack-bullets[data-astro-cid-6kh2aveu]{gap:20px;margin:40px 0 0;padding:0;list-style:none;display:grid}.stack-bullet[data-astro-cid-6kh2aveu]{border-top:1px solid var(--border);color:var(--fg-soft);grid-template-columns:18px minmax(0,1fr);column-gap:10px;padding-top:16px;font-size:15px;line-height:1.5;display:grid}.stack-bullet[data-astro-cid-6kh2aveu] strong[data-astro-cid-6kh2aveu]{color:var(--fg);font-weight:600}.stack-bullet-glyph[data-astro-cid-6kh2aveu]{color:var(--accent);padding-top:2px}.stack-proof[data-astro-cid-6kh2aveu]{color:var(--muted-fg);margin-top:20px;font-size:14px;line-height:1.5}.stack-row[data-astro-cid-6kh2aveu]{margin-top:48px}.stack-link[data-astro-cid-6kh2aveu]{margin-top:32px}@media (width>=1024px){.stack-bullets[data-astro-cid-6kh2aveu]{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}}
