.mobile-nav[data-v-fd187ec7]{display:none}@media(max-width:860px){.mobile-nav[data-v-fd187ec7]{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:color-mix(in srgb,var(--paper) 92%,transparent);border-top:1px solid var(--line-strong);bottom:0;display:flex;justify-content:space-around;left:0;padding:.35rem 0 calc(.35rem + env(safe-area-inset-bottom));position:fixed;right:0;z-index:50}}.mobile-nav-link[data-v-fd187ec7]{align-items:center;border-bottom:2px solid transparent;color:var(--ink-soft);display:flex;font-size:.85rem;font-weight:600;min-height:44px;padding:0 .75rem;text-decoration:none;transition:color .15s,border-color .15s}.mobile-nav-link.is-active[data-v-fd187ec7]{border-bottom-color:var(--accent);color:var(--accent)}.system-map[data-v-50299c68]{display:grid;gap:1rem;margin:0}svg[data-v-50299c68]{height:auto;overflow:visible;width:100%}.link[data-v-50299c68]{animation:draw-50299c68 .7s ease-out forwards;animation-delay:calc(var(--i)*90ms + .2s);fill:none;stroke:var(--line-strong);stroke-dasharray:400;stroke-dashoffset:400;stroke-width:1.5;transition:stroke .2s}.link.is-active[data-v-50299c68]{stroke:var(--accent);stroke-width:2.5}.packet[data-v-50299c68]{animation:travel-50299c68 3.2s ease-in-out infinite;animation-delay:calc(var(--i)*.4s + 1.4s);fill:var(--signal);offset-distance:0;opacity:0}.hub rect[data-v-50299c68]{fill:var(--ink)}.hub text[data-v-50299c68]{fill:var(--paper);text-anchor:middle}.hub-title[data-v-50299c68]{font-family:var(--font-display);font-size:20px;font-weight:700}.hub-sub[data-v-50299c68]{font-size:12px;opacity:.75}.node[data-v-50299c68]{animation:appear-50299c68 .4s ease-out forwards;animation-delay:calc(var(--i)*90ms + .5s);cursor:pointer;opacity:0;outline:none}.node rect[data-v-50299c68]{fill:var(--surface);stroke:var(--line-strong);stroke-width:1.5;transition:fill .2s,stroke .2s}.node text[data-v-50299c68]{fill:var(--ink);font-size:14px;font-weight:600;pointer-events:none;text-anchor:middle}.node.is-active rect[data-v-50299c68],.node:hover rect[data-v-50299c68]{fill:var(--accent-soft);stroke:var(--accent)}.node:focus-visible rect[data-v-50299c68]{stroke:var(--accent);stroke-width:3}.map-caption[data-v-50299c68]{background:var(--surface);border-left:3px solid var(--signal);border-radius:0 var(--r-md) var(--r-md) 0;min-height:7.5rem;padding:1rem 1.15rem}.map-caption strong[data-v-50299c68]{font-family:var(--font-display);font-size:1.05rem}.map-user[data-v-50299c68]{color:var(--ink-soft);font-size:.9rem;margin-left:.4rem}.map-caption p[data-v-50299c68]{color:var(--ink-soft);font-size:.95rem;line-height:1.55;margin:.35rem 0 0}@keyframes draw-50299c68{to{stroke-dashoffset:0}}@keyframes appear-50299c68{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes travel-50299c68{0%{offset-distance:100%;opacity:0}10%{opacity:1}45%{offset-distance:0;opacity:1}50%,to{offset-distance:0;opacity:0}}@media(prefers-reduced-motion:reduce){.link[data-v-50299c68],.node[data-v-50299c68]{animation:none;opacity:1;stroke-dashoffset:0}.packet[data-v-50299c68]{display:none}}.filters[data-v-e602c84b]{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.filter[data-v-e602c84b]{align-items:center;background:transparent;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink);cursor:pointer;display:inline-flex;font:inherit;font-size:.92rem;font-weight:500;gap:.45rem;min-height:40px;padding:.4rem .9rem;transition:background .15s,border-color .15s,color .15s}.filter[data-v-e602c84b]:hover{border-color:var(--accent)}.filter[aria-pressed=true][data-v-e602c84b]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.count[data-v-e602c84b]{font-size:.8rem;opacity:.6}.rows[data-v-e602c84b]{border-top:1px solid var(--line-strong);list-style:none;margin:0;padding:0}.row[data-v-e602c84b]{border-bottom:1px solid var(--line)}.row-head[data-v-e602c84b]{align-items:baseline;background:none;border:0;color:inherit;cursor:pointer;display:grid;font:inherit;gap:1.5rem;grid-template-columns:minmax(0,15rem) minmax(0,1fr) auto 18px;padding:1.25rem .25rem;text-align:left;width:100%}.row-head:hover .row-name[data-v-e602c84b]{color:var(--accent)}.row-name[data-v-e602c84b]{font-family:var(--font-display);font-size:1.2rem;font-weight:650;line-height:1.25;transition:color .15s}.row-summary[data-v-e602c84b]{color:var(--ink-soft);line-height:1.55;max-width:60ch}.row-meta[data-v-e602c84b]{display:grid;font-size:.85rem;gap:.15rem;justify-items:end;white-space:nowrap}.chevron[data-v-e602c84b],.row-meta[data-v-e602c84b]{color:var(--ink-soft)}.chevron[data-v-e602c84b]{align-self:center;transition:transform .22s ease}.is-open .chevron[data-v-e602c84b]{transform:rotate(180deg)}.row-body[data-v-e602c84b]{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease}.is-open .row-body[data-v-e602c84b]{grid-template-rows:1fr}.row-inner[data-v-e602c84b]{overflow:hidden;padding-left:16.75rem}.is-open .row-inner[data-v-e602c84b]{padding-bottom:1.5rem}.row-role[data-v-e602c84b]{font-weight:600;margin:0 0 .75rem}.impact[data-v-e602c84b]{display:grid;gap:.45rem;line-height:1.55;margin:0 0 1rem;max-width:68ch;padding-left:1.1rem}.impact li[data-v-e602c84b]::marker{color:var(--accent)}.stack[data-v-e602c84b]{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0;padding:0}.stack li[data-v-e602c84b]{background:var(--accent-soft);border-radius:var(--r-sm);color:var(--accent-ink);font-size:.82rem;font-weight:500;padding:.2rem .6rem}@media(max-width:860px){.row-head[data-v-e602c84b]{gap:.4rem 1rem;grid-template-columns:minmax(0,1fr) 18px}.row-name[data-v-e602c84b]{grid-column:1}.chevron[data-v-e602c84b]{grid-column:2;grid-row:1}.row-meta[data-v-e602c84b],.row-summary[data-v-e602c84b]{grid-column:1/-1}.row-meta[data-v-e602c84b]{display:flex;gap:.75rem;justify-items:start}.row-inner[data-v-e602c84b]{padding-left:.25rem}}@media(prefers-reduced-motion:reduce){.chevron[data-v-e602c84b],.row-body[data-v-e602c84b]{transition:none}}.skills[data-v-746b2989]{display:grid;gap:2rem 3rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));margin:0}.skill-group[data-v-746b2989]{border-top:2px solid var(--ink);padding-top:1rem}dt[data-v-746b2989]{font-family:var(--font-display);font-size:1.15rem;font-weight:650;margin-bottom:.75rem}dd[data-v-746b2989],ul[data-v-746b2989]{margin:0}ul[data-v-746b2989]{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0}li[data-v-746b2989]{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);font-size:.9rem;padding:.25rem .65rem}.contact-form[data-v-00785acb]{display:grid;gap:1.1rem}.field[data-v-00785acb]{display:grid;gap:.4rem}.field label[data-v-00785acb]{font-size:.92rem;font-weight:600}.field input[data-v-00785acb],.field select[data-v-00785acb],.field textarea[data-v-00785acb]{background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--r-md);color:var(--ink);font:inherit;min-height:46px;padding:.75rem .9rem;transition:border-color .15s,box-shadow .15s;width:100%}.field textarea[data-v-00785acb]{resize:vertical}.field input[data-v-00785acb]::-moz-placeholder,.field textarea[data-v-00785acb]::-moz-placeholder{color:var(--ink-soft);opacity:.75}.field input[data-v-00785acb]::placeholder,.field textarea[data-v-00785acb]::placeholder{color:var(--ink-soft);opacity:.75}.field input[data-v-00785acb]:focus-visible,.field select[data-v-00785acb]:focus-visible,.field textarea[data-v-00785acb]:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field--error input[data-v-00785acb],.field--error select[data-v-00785acb],.field--error textarea[data-v-00785acb]{border-color:var(--danger)}.field-error[data-v-00785acb]{color:var(--danger);font-size:.85rem;font-weight:500;margin:0}.spinner[data-v-00785acb]{animation:spin-00785acb .7s linear infinite;border:2px solid;border-radius:50%;border-top:2px solid transparent;flex-shrink:0;height:14px;width:14px}@keyframes spin-00785acb{to{transform:rotate(1turn)}}.error-message[data-v-00785acb],.success-message[data-v-00785acb]{font-size:.95rem;font-weight:500;margin:0}.success-message[data-v-00785acb]{color:var(--accent)}.error-message[data-v-00785acb]{color:var(--danger)}.field-msg-enter-active[data-v-00785acb],.field-msg-leave-active[data-v-00785acb]{transition:opacity .18s ease,transform .18s ease}.field-msg-enter-from[data-v-00785acb],.field-msg-leave-to[data-v-00785acb]{opacity:0;transform:translateY(-4px)}
