@keyframes slideDown-dec218e0{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.md\:hidden nav[data-v-dec218e0]{animation:slideDown-dec218e0 .28s cubic-bezier(.16,1,.3,1)}.mobile-menu-enter-active[data-v-dec218e0],.mobile-menu-leave-active[data-v-dec218e0]{transition:opacity .2s ease,transform .28s cubic-bezier(.16,1,.3,1)}.mobile-menu-enter-from[data-v-dec218e0],.mobile-menu-leave-to[data-v-dec218e0]{opacity:0;transform:translateY(-10px)}.nav-link[data-v-dec218e0]{position:relative}.nav-link[data-v-dec218e0]:after{background-color:hsl(var(--primary));bottom:-3px;content:"";height:1px;left:0;position:absolute;transform:scaleX(0);transform-origin:left;transition:transform .25s cubic-bezier(.16,1,.3,1);width:100%}.nav-link[data-v-dec218e0]:focus-visible:after,.nav-link[data-v-dec218e0]:hover:after{transform:scaleX(1)}.intro-caret[data-v-e7fd6a99]{animation:intro-blink-e7fd6a99 1.1s step-end infinite;background-color:#22c55e;display:inline-block;height:1em;vertical-align:text-bottom;width:.5em}.hero-orb[data-v-e7fd6a99]{animation:drift-e7fd6a99 12s ease-in-out infinite alternate;height:31rem;opacity:.16;pointer-events:none;position:absolute;width:31rem}.hero-orb-one[data-v-e7fd6a99]{background:radial-gradient(closest-side,hsl(var(--primary)) 0,hsl(var(--primary)) 20%,hsl(var(--primary)/.96) 30%,hsl(var(--primary)/.87) 40%,hsl(var(--primary)/.66) 50%,hsl(var(--primary)/.39) 60%,hsl(var(--primary)/.16) 70%,hsl(var(--primary)/.05) 80%,transparent 92%);left:calc(8% - 6.5rem);top:-2.5rem}.hero-orb-two[data-v-e7fd6a99]{animation-delay:-5s;animation-direction:alternate-reverse;background:radial-gradient(closest-side,#10b981 0,#10b981 20%,rgba(16,185,129,.96) 30%,rgba(16,185,129,.87) 40%,rgba(16,185,129,.66) 50%,rgba(16,185,129,.39) 60%,rgba(16,185,129,.16) 70%,rgba(16,185,129,.05) 80%,transparent 92%);bottom:-6.5rem;right:calc(4% - 6.5rem)}.hero-glow[data-v-e7fd6a99]{background:radial-gradient(60% 62% at 26% 50%,hsl(var(--primary)/.16),transparent 74%),radial-gradient(60% 62% at 74% 50%,hsl(var(--secondary)/.16),transparent 74%);pointer-events:none}@keyframes drift-e7fd6a99{0%{transform:translate3d(-12px,8px,0) scale(.95)}to{transform:translate3d(18px,-14px,0) scale(1.08)}}@keyframes intro-blink-e7fd6a99{0%,to{opacity:1}50%{opacity:0}}@media(prefers-reduced-motion:reduce){.hero-orb[data-v-e7fd6a99],.intro-caret[data-v-e7fd6a99]{animation:none}}.project-image[data-v-ea936f4e]{transition:transform .55s cubic-bezier(.16,1,.3,1),filter .55s ease}.group\/card:hover .project-image[data-v-ea936f4e]{filter:saturate(1.08) contrast(1.02);transform:scale(1.04)}@media(prefers-reduced-motion:reduce){.project-image[data-v-ea936f4e]{transition:none}.group\/card:hover .project-image[data-v-ea936f4e]{transform:none}}.career-svg[data-v-484a40f9]{max-width:100%}.col-label[data-v-484a40f9]{fill:hsl(var(--muted-foreground));font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.edge[data-v-484a40f9]{stroke:hsl(var(--border));stroke-width:1;opacity:.55;transition:stroke .2s ease,opacity .2s ease,stroke-width .2s ease}.particle[data-v-484a40f9]{display:none}@supports (offset-path:path("M0 0 L1 1")){.particle[data-v-484a40f9]{animation:particle-flow-484a40f9 2.9s linear var(--particle-delay,0s) infinite;display:block;offset-rotate:0deg}}.particle-stack[data-v-484a40f9]{fill:hsl(var(--primary))}.particle-project[data-v-484a40f9]{fill:#f59e0b}@keyframes particle-flow-484a40f9{0%{offset-distance:0;opacity:0}12%{opacity:.95}88%{opacity:.95}to{offset-distance:100%;opacity:0}}.particle.is-dim[data-v-484a40f9]{visibility:hidden}@media(prefers-reduced-motion:reduce){.particle[data-v-484a40f9]{display:none}}.career-svg.is-drawing .edge[data-v-484a40f9]{stroke-dasharray:1;animation:edge-draw-484a40f9 .9s cubic-bezier(.16,1,.3,1) var(--edge-delay,0s) both}@keyframes edge-draw-484a40f9{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.career-svg.is-drawing .edge[data-v-484a40f9]{stroke-dasharray:none;animation:none}}.edge.is-dim[data-v-484a40f9]{opacity:.08}.edge.is-active[data-v-484a40f9]{stroke:hsl(var(--primary));stroke-width:1.75;opacity:.95}.node[data-v-484a40f9]{cursor:pointer;transition:opacity .2s ease}.node .node-dot[data-v-484a40f9]{transition:fill .2s ease,stroke .2s ease,r .2s ease;stroke:hsl(var(--background));stroke-width:2}.node .node-label[data-v-484a40f9]{fill:hsl(var(--foreground));font-size:12px;font-weight:500;stroke:hsl(var(--card));stroke-width:4px;paint-order:stroke fill;stroke-linejoin:round;transition:opacity .2s ease,fill .2s ease}.node-role .node-dot[data-v-484a40f9]{fill:hsl(var(--primary))}.node-skill .node-dot[data-v-484a40f9]{fill:#10b981}.node-project .node-dot[data-v-484a40f9]{fill:#f59e0b}.node.is-dim[data-v-484a40f9]{opacity:.2}.node.is-active .node-dot[data-v-484a40f9]{stroke:hsl(var(--primary));stroke-width:3}.node:hover .node-label[data-v-484a40f9]{fill:hsl(var(--primary))}*{border-color:hsl(var(--border))}html{position:relative}body{color:hsl(var(--foreground))}.bg-background,body{background-color:hsl(var(--background))}.text-foreground{color:hsl(var(--foreground))}.bg-primary{background-color:hsl(var(--primary))}.deferred-section{contain-intrinsic-size:auto 720px;content-visibility:auto}.text-primary{color:hsl(var(--primary))}:root{transition:color .3s ease,background-color .3s ease,border-color .3s ease,fill .3s ease,stroke .3s ease}.theme-transition,.theme-transition *{transition:color .3s ease,background-color .3s ease,border-color .3s ease,box-shadow .3s ease}.tilt-card{perspective:1000px;transform-style:preserve-3d;transition:transform .3s ease,background-color .3s ease,border-color .3s ease}.tilt-card:hover{transform:scale(1.02)}.slide-up-enter-active,.slide-up-leave-active{transition:all .3s ease}.slide-up-enter-from,.slide-up-leave-to{opacity:0;transform:translateY(20px)}.enter{animation:enter var(--enter-duration,.42s) cubic-bezier(.16,1,.3,1) var(--enter-delay,0s) both}.scroll-progress{animation:scroll-progress linear both;background:hsl(var(--primary));height:2px;inset:0 0 auto;pointer-events:none;position:fixed;transform-origin:left;z-index:60;animation-timeline:scroll(root)}@supports not (animation-timeline:scroll(root)){.scroll-progress{display:none}}@keyframes scroll-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes enter{0%{opacity:0;transform:translate3d(var(--enter-x,0),var(--enter-y,0),0)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.tilt-card:hover{transform:none}.scroll-progress{display:none}}
