.circuit-banner[data-astro-cid-vlx3q2mg]{position:absolute;top:50%;left:-10%;right:-10%;height:300%;transform:translateY(-50%) scale(.8);transform-origin:center;opacity:0;pointer-events:none;z-index:-1}.circuit-banner[data-astro-cid-vlx3q2mg].visible{opacity:1;transform:translateY(-50%) scale(1);transition:opacity .6s ease-out,transform 1.2s cubic-bezier(.4,0,.2,1)}.circuit-svg[data-astro-cid-vlx3q2mg]{width:100%;height:100%;overflow:visible}.circuit-trace[data-astro-cid-vlx3q2mg]{fill:none;stroke:var(--border-color);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2000;stroke-dashoffset:2000}.circuit-banner[data-astro-cid-vlx3q2mg].visible .circuit-trace[data-astro-cid-vlx3q2mg]{stroke-dashoffset:0;transition:stroke-dashoffset 1s cubic-bezier(.4,0,.2,1) var(--delay, 0s)}.circuit-banner[data-astro-cid-vlx3q2mg].visible .trace-v[data-astro-cid-vlx3q2mg]{transition:stroke-dashoffset .3s ease-out var(--delay, 0s)}.circuit-node[data-astro-cid-vlx3q2mg]{opacity:0}.circuit-banner[data-astro-cid-vlx3q2mg].visible .circuit-node[data-astro-cid-vlx3q2mg]{opacity:1;transition:opacity .3s ease-out .8s}.node-junction[data-astro-cid-vlx3q2mg]{fill:var(--bg-primary);stroke:var(--border-color);stroke-width:1.5}.node-pad[data-astro-cid-vlx3q2mg]{fill:var(--bg-primary);stroke:var(--accent);stroke-width:2}.circuit-banner[data-astro-cid-vlx3q2mg].visible .node-pad[data-astro-cid-vlx3q2mg]{transition:opacity .3s ease-out 1s}.node-terminal[data-astro-cid-vlx3q2mg]{fill:var(--accent);stroke:none}.circuit-banner[data-astro-cid-vlx3q2mg].visible .trace-left[data-astro-cid-vlx3q2mg],.circuit-banner[data-astro-cid-vlx3q2mg].visible .trace-left-main[data-astro-cid-vlx3q2mg],.circuit-banner[data-astro-cid-vlx3q2mg].visible .trace-right[data-astro-cid-vlx3q2mg],.circuit-banner[data-astro-cid-vlx3q2mg].visible .trace-right-main[data-astro-cid-vlx3q2mg]{stroke-dashoffset:0;transition:stroke-dashoffset 2s cubic-bezier(.4,0,.2,1) var(--delay, 0s)}.circuit-banner[data-astro-cid-vlx3q2mg].visible .trace-to-logo[data-astro-cid-vlx3q2mg]{stroke-dashoffset:0;transition:stroke-dashoffset .6s ease-out var(--delay, 0s)}.logo-ring-group[data-astro-cid-vlx3q2mg]{opacity:0}.circuit-banner[data-astro-cid-vlx3q2mg].visible .logo-ring-group[data-astro-cid-vlx3q2mg]{opacity:1;transition:opacity .5s ease-out 1.8s}.logo-ring-outer[data-astro-cid-vlx3q2mg]{fill:none;stroke:var(--accent);stroke-width:2}.logo-ring-inner[data-astro-cid-vlx3q2mg]{fill:var(--bg-primary);stroke:var(--border-color);stroke-width:1.5}.logo-connection[data-astro-cid-vlx3q2mg]{fill:var(--accent);stroke:none}.circuit-banner[data-astro-cid-vlx3q2mg].visible .trace-expand-left[data-astro-cid-vlx3q2mg],.circuit-banner[data-astro-cid-vlx3q2mg].visible .trace-expand-right[data-astro-cid-vlx3q2mg]{stroke-dashoffset:0;transition:stroke-dashoffset 2s cubic-bezier(.4,0,.2,1) var(--delay, 0s)}.logo-image-group[data-astro-cid-vlx3q2mg]{opacity:1}.logo-image-group[data-astro-cid-vlx3q2mg] .logo-connection[data-astro-cid-vlx3q2mg]{opacity:0}.circuit-banner[data-astro-cid-vlx3q2mg].visible .logo-image-group[data-astro-cid-vlx3q2mg] .logo-connection[data-astro-cid-vlx3q2mg]{opacity:1;transition:opacity .3s ease-out .1s}.logo-image[data-astro-cid-vlx3q2mg]{opacity:1}.concentric-rings[data-astro-cid-vlx3q2mg] .ring[data-astro-cid-vlx3q2mg]{fill:none;stroke:var(--border-color);stroke-width:1;opacity:0;transform-origin:center;transform:scale(.8)}.circuit-banner[data-astro-cid-vlx3q2mg].visible .concentric-rings[data-astro-cid-vlx3q2mg] .ring[data-astro-cid-vlx3q2mg]{opacity:.6;transform:scale(1);transition:opacity .8s ease-out var(--delay, 0s),transform 1.2s cubic-bezier(.4,0,.2,1) var(--delay, 0s)}.dotted-ring[data-astro-cid-vlx3q2mg] .ring-dot[data-astro-cid-vlx3q2mg]{fill:var(--border-color);opacity:0;transform-origin:center;transform:scale(0)}.circuit-banner[data-astro-cid-vlx3q2mg].visible .dotted-ring[data-astro-cid-vlx3q2mg] .ring-dot[data-astro-cid-vlx3q2mg]{opacity:1;transform:scale(1);transition:opacity .3s ease-out var(--delay, 0s),transform .4s cubic-bezier(.34,1.56,.64,1) var(--delay, 0s)}@media (prefers-reduced-motion: reduce){.circuit-banner[data-astro-cid-vlx3q2mg],.circuit-banner[data-astro-cid-vlx3q2mg].visible{transition:none;transform:translateY(-50%) scaleX(1)}.circuit-banner[data-astro-cid-vlx3q2mg] .circuit-trace[data-astro-cid-vlx3q2mg]{stroke-dashoffset:0!important;transition:none!important}.circuit-banner[data-astro-cid-vlx3q2mg] .circuit-node[data-astro-cid-vlx3q2mg],.circuit-banner[data-astro-cid-vlx3q2mg] .logo-ring-group[data-astro-cid-vlx3q2mg]{opacity:1!important;transition:none!important}}.hero[data-astro-cid-j7pv25f6]{position:relative;height:120px;padding:0;margin-bottom:3rem;overflow:visible}.hero-content[data-astro-cid-j7pv25f6]{position:absolute;inset:16px 0 0}.hero[data-astro-cid-j7pv25f6].collapsed .hero-content[data-astro-cid-j7pv25f6]{opacity:0;pointer-events:none}.hero-header[data-astro-cid-j7pv25f6]{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}.hero-logo[data-astro-cid-j7pv25f6]{width:56px;height:56px;flex-shrink:0}h1[data-astro-cid-j7pv25f6]{font-size:1.75rem;font-weight:600;letter-spacing:-.02em;line-height:1.2}.subtitle[data-astro-cid-j7pv25f6]{color:var(--text-secondary);font-size:1.05rem;padding-left:calc(56px + 1rem);font-family:var(--font-mono);min-height:1.6em}.cursor[data-astro-cid-j7pv25f6]{display:inline-block;width:2px;height:1.1em;background-color:var(--accent);margin-left:2px;vertical-align:text-bottom;animation:blink 1s step-end infinite}.cursor[data-astro-cid-j7pv25f6].hidden,body.animation-complete .cursor[data-astro-cid-j7pv25f6]{display:none}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.header-subtitle{position:absolute;left:0;top:100%;margin-top:.5rem;font-family:var(--font-mono);font-size:.85rem;color:var(--text-muted);opacity:0;white-space:nowrap}.header-subtitle.visible{opacity:1;transition:opacity .3s ease}.about[data-astro-cid-j7pv25f6]{margin-bottom:2.5rem}.about[data-astro-cid-j7pv25f6] p[data-astro-cid-j7pv25f6]{margin-bottom:1rem;color:var(--text-secondary);line-height:1.7}.about[data-astro-cid-j7pv25f6] .credentials[data-astro-cid-j7pv25f6]{color:var(--text-primary);font-weight:500}.about[data-astro-cid-j7pv25f6] a[data-astro-cid-j7pv25f6]{color:var(--accent);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-underline-offset:2px;transition:text-decoration-color .15s ease}.about[data-astro-cid-j7pv25f6] a[data-astro-cid-j7pv25f6]:hover{text-decoration-color:var(--accent)}.expertise[data-astro-cid-j7pv25f6]{margin-bottom:3rem}.expertise[data-astro-cid-j7pv25f6] h2[data-astro-cid-j7pv25f6]{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:1rem}.expertise-list[data-astro-cid-j7pv25f6]{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem 1.5rem}.expertise-list[data-astro-cid-j7pv25f6] li[data-astro-cid-j7pv25f6] a[data-astro-cid-j7pv25f6]{display:block;padding:.75rem 0;text-decoration:none;border-bottom:1px solid var(--border-color);transition:border-color .15s ease}.expertise-list[data-astro-cid-j7pv25f6] li[data-astro-cid-j7pv25f6] a[data-astro-cid-j7pv25f6]:hover{border-color:var(--accent)}.expertise-list[data-astro-cid-j7pv25f6] li[data-astro-cid-j7pv25f6] a[data-astro-cid-j7pv25f6]:hover .expertise-title[data-astro-cid-j7pv25f6]{color:var(--accent)}.expertise-title[data-astro-cid-j7pv25f6]{display:block;color:var(--text-primary);font-weight:500;font-size:.95rem;margin-bottom:.25rem;transition:color .15s ease}.expertise-desc[data-astro-cid-j7pv25f6]{display:block;color:var(--text-muted);font-size:.85rem}@media (max-width: 500px){.hero[data-astro-cid-j7pv25f6]{height:160px}.hero-header[data-astro-cid-j7pv25f6]{flex-direction:column;align-items:flex-start;gap:.75rem}.hero-logo[data-astro-cid-j7pv25f6]{width:48px;height:48px}h1[data-astro-cid-j7pv25f6]{font-size:1.5rem}.subtitle[data-astro-cid-j7pv25f6]{padding-left:0}.expertise-list[data-astro-cid-j7pv25f6]{grid-template-columns:1fr;gap:0}}@media (prefers-reduced-motion: reduce){.cursor[data-astro-cid-j7pv25f6]{animation:none;opacity:1}}
