.graph-page{--graph-ink:#0f172a;--graph-muted:#64748b;--graph-line:#d9e2ef;--graph-blue:#2563eb;min-height:100svh;color:var(--graph-ink);background:radial-gradient(circle at 50% 48%,#dbeafe94,#0000 25rem),linear-gradient(#fff,#f8fafc);position:relative;overflow:hidden}.graph-page:before{z-index:0;content:"";opacity:.34;pointer-events:none;background-image:radial-gradient(#cbd5e1 .7px,#0000 .7px);background-size:24px 24px;position:absolute;inset:0}.graph-toolbar{z-index:20;pointer-events:none;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem clamp(1rem,3vw,2.5rem);display:none;position:absolute;top:0;left:0;right:0}.graph-tools-visible .graph-toolbar{display:flex}.graph-brand,.graph-actions,.graph-action{pointer-events:auto}.graph-brand{align-items:center;gap:.7rem;text-decoration:none;display:inline-flex}.graph-brand strong,.graph-brand small{display:block}.graph-brand strong{letter-spacing:-.01em;font-size:.92rem}.graph-brand small{color:var(--graph-muted);text-transform:uppercase;letter-spacing:.12em;margin-top:.08rem;font-size:.7rem}.graph-monogram{color:#1d4ed8;background:#ffffffe6;border:1px solid #dbe5f3;border-radius:.8rem;place-items:center;width:2.4rem;height:2.4rem;font-size:.78rem;font-weight:750;display:grid;box-shadow:0 8px 30px #0f172a0f}.graph-actions{align-items:center;gap:.55rem;display:flex}.graph-status{color:#475569;align-items:center;gap:.45rem;margin:0 .4rem 0 0;font-size:.76rem;display:flex}.graph-status-dot{background:#22c55e;border-radius:50%;width:.45rem;height:.45rem;box-shadow:0 0 0 .25rem #22c55e1f}.graph-action{color:#334155;min-height:2.3rem;font:inherit;backdrop-filter:blur(12px);cursor:pointer;background:#ffffffe0;border:1px solid #cbd5e1d1;border-radius:999px;padding:.55rem .85rem;font-size:.75rem;font-weight:650;text-decoration:none;box-shadow:0 8px 30px #0f172a0d}.graph-action:hover,.graph-action:focus-visible,.graph-brand:focus-visible,.graph-zoom:focus-visible{outline-offset:2px;outline:3px solid #3b82f642}.graph-stage,.graph-lines,.graph-nodes{position:absolute;inset:0}.graph-stage{z-index:2;overflow:hidden}.graph-lines{width:100%;height:100%;overflow:visible}.graph-line{stroke:var(--graph-line);stroke-width:1.3px;stroke-linecap:round;opacity:0;transition:opacity .42s}.graph-line.is-visible{opacity:.95}.graph-node{color:#334155;overflow-wrap:anywhere;text-align:center;opacity:0;will-change:transform;user-select:none;background:#fffffff0;border:1px solid #cbd5e1eb;border-radius:1rem;place-items:center;width:max-content;min-width:clamp(7.2rem,11vw,9.4rem);min-height:3.2rem;padding:.75rem;font-size:clamp(.7rem,1vw,.82rem);font-weight:680;line-height:1.25;transition:opacity .42s,scale .5s cubic-bezier(.16,1,.3,1),border-color .3s,box-shadow .3s;display:grid;position:absolute;top:0;left:0;transform:translate(-50%,-50%)scale(.72);box-shadow:0 16px 38px #0f172a12,0 2px 8px #0f172a0a}.graph-node:not(.graph-root){max-width:min(14rem,100vw - 1.5rem)}.graph-node.is-visible{opacity:1;scale:1}.graph-node[data-node-type=domain]{color:#1d4ed8;border-color:#93c5fd;box-shadow:0 20px 44px #2563eb1c,0 2px 8px #0f172a0a}.graph-node[data-node-type=category]{background:#f8fbfff5;border-color:#bfdbfe}.graph-node[data-node-type=platform],.graph-node[data-node-type=service]{color:#0369a1;border-color:#bae6fd}.graph-node[data-node-type=methodology],.graph-node[data-node-type=concept]{color:#6d28d9;border-color:#c4b5fd}.graph-root{z-index:5;text-align:left;pointer-events:auto;user-select:text;border-color:#93c5fd;border-radius:1.35rem;width:min(20rem,100vw - 2rem);min-height:0;padding:1.15rem;display:block}.graph-root-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.graph-root-kicker{color:#2563eb;text-transform:uppercase;letter-spacing:.16em;margin:0 0 .25rem;font-size:.66rem;font-weight:750}.graph-root h1{color:#0f172a;letter-spacing:-.04em;margin:0;font-size:clamp(1.35rem,2.2vw,1.75rem);line-height:1.05}.graph-zoom{color:#2563eb;cursor:pointer;background:#eff6ff;border:1px solid #dbeafe;border-radius:.85rem;flex:none;place-items:center;width:2.55rem;height:2.55rem;display:grid}.graph-zoom svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:1.15rem}.graph-root.is-expanded .graph-zoom{color:#fff;background:#2563eb}.graph-root.is-expanded .graph-zoom .zoom-plus-vertical{opacity:0}.graph-root.is-expanded{width:min(38rem,100vw - 2rem)}.graph-contact{opacity:0;max-height:0;transition:max-height .4s cubic-bezier(.16,1,.3,1),opacity .24s;overflow:hidden}.graph-root.is-expanded .graph-contact{opacity:1;max-height:38rem}.graph-profile-role{color:#475569;border-top:1px solid #e2e8f0;margin:1rem 0 0;padding-top:.9rem;font-size:.78rem;font-weight:500;line-height:1.55}.graph-profile-summary{color:#64748b;margin:.55rem 0 0;font-size:.72rem;line-height:1.5}.graph-contact dl{grid-template-columns:1fr 1fr;gap:.75rem;margin:.85rem 0 0;display:grid}.graph-contact dl div{min-width:0}.graph-contact dt{color:#94a3b8;text-transform:uppercase;letter-spacing:.11em;font-size:.62rem}.graph-contact dd{color:#334155;margin:.22rem 0 0;font-size:.75rem;font-weight:650}.graph-contact a{color:#1d4ed8;text-underline-offset:.18rem}.graph-certifications{margin-top:.9rem}.graph-certifications h2{color:#94a3b8;text-transform:uppercase;letter-spacing:.11em;margin:0;font-size:.62rem}.graph-certifications ul{columns:2;column-gap:1.25rem;margin:.45rem 0 0;padding:0;list-style:none}.graph-certifications li{color:#475569;break-inside:avoid;margin-bottom:.35rem;padding-left:.75rem;font-size:.7rem;font-weight:600;line-height:1.4;position:relative}.graph-certifications li:before{content:"";background:#60a5fa;border-radius:999px;width:.28rem;height:.28rem;position:absolute;top:.48em;left:0}.graph-key{z-index:20;color:#64748b;backdrop-filter:blur(12px);background:#ffffffc7;border:1px solid #e2e8f0d9;border-radius:999px;gap:.5rem;padding:.5rem .8rem;font-size:.68rem;display:none;position:absolute;bottom:1.25rem;right:50%;transform:translate(50%)}.graph-tools-visible .graph-key{display:flex}@media (width<=680px){.graph-toolbar{align-items:flex-start;padding:.85rem}.graph-status,.graph-action-link{display:none}.graph-node:not(.graph-root){border-radius:.8rem;width:max-content;min-width:6.5rem;max-width:min(12rem,100vw - 1.25rem);min-height:2.7rem;padding:.55rem;font-size:.66rem}.graph-root{width:min(18rem,100vw - 1.25rem);padding:.95rem}.graph-root.is-expanded{width:calc(100vw - 1.25rem)}.graph-certifications ul{columns:1}.graph-key{white-space:nowrap;bottom:.75rem}}@media (prefers-reduced-motion:reduce){.graph-line,.graph-node,.graph-contact{transition:none}.graph-status-dot{box-shadow:none}}
