@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&family=Outfit:wght@300;400;600;800&display=swap";html{background:#0a0515;min-height:100%}body{margin:0;font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(ellipse at center,#1a0f2e,#0a0515);background-attachment:fixed;min-height:100vh;color:#f1f5f9}#root{min-height:100vh}code{font-family:JetBrains Mono,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}a{text-decoration:none;color:inherit}.morse-animation-container{display:none}.morse-animation-container svg{width:100%;height:100%}.box{fill:#140f2899;stroke:#00d4ff;stroke-width:2.5;opacity:.7;filter:drop-shadow(0 0 10px rgba(0,212,255,.5));animation:gentleFloat 7s ease-in-out infinite}.box.energized{animation:boxEnergize .6s ease-out,gentleFloat 7s ease-in-out infinite}.connection{stroke:url(#electricGradient);stroke-width:4;opacity:.9;filter:drop-shadow(0 0 10px #00d4ff) drop-shadow(0 0 20px rgba(0,212,255,.5));animation:gentleFloat 6s ease-in-out infinite}.connection.jitter{animation:jitterEffect .3s ease-in-out,gentleFloat 6s ease-in-out infinite}.particle{fill:#00d4ff;opacity:0;filter:drop-shadow(0 0 6px #00d4ff) drop-shadow(0 0 12px #7b2cbf)}.particle.active{animation:particleFlow 1.2s ease-in-out forwards}.spark{opacity:0}.box-glow{fill:url(#glowGradient);opacity:0;filter:blur(20px)}.box-glow.active{animation:powerUp .8s ease-out forwards}.arc{opacity:0;filter:brightness(.5) drop-shadow(0 0 4px rgba(0,212,255,.4));pointer-events:none}.arc.active{animation:logoGlow .6s ease-out forwards}@keyframes logoGlow{0%{opacity:0;filter:brightness(.5) drop-shadow(0 0 4px rgba(0,212,255,.4))}20%,40%,60%,80%{opacity:.7;filter:brightness(.5) drop-shadow(0 0 8px rgba(0,212,255,.8)) drop-shadow(0 0 16px rgba(123,44,191,.6))}30%,50%,70%{opacity:.6;filter:brightness(.5) drop-shadow(0 0 6px rgba(0,212,255,.6))}to{opacity:0;filter:brightness(.5) drop-shadow(0 0 4px rgba(0,212,255,.4))}}.ambient-particle{fill:#7b2cbf;opacity:.3;animation:float 8s ease-in-out infinite}@keyframes gentleFloat{0%,to{transform:translate(0)}25%{transform:translate(calc(var(--tx1, 3px)),calc(var(--ty1, -4px)))}50%{transform:translate(calc(var(--tx2, -2px)),calc(var(--ty2, -6px)))}75%{transform:translate(calc(var(--tx3, -4px)),calc(var(--ty3, -3px)))}}@keyframes jitterEffect{0%,to{transform:translate(0)}10%{transform:translate(-2px,2px)}20%{transform:translate(2px,-2px)}30%{transform:translate(-2px,-1px)}40%{transform:translate(1px,2px)}50%{transform:translate(-1px,-2px)}60%{transform:translate(2px,1px)}70%{transform:translate(-2px,-2px)}80%{transform:translate(1px,-1px)}90%{transform:translate(-1px,1px)}}@keyframes boxEnergize{0%{filter:drop-shadow(0 0 10px rgba(0,212,255,.5));stroke-width:2.5}50%{filter:drop-shadow(0 0 25px rgba(0,212,255,1)) drop-shadow(0 0 40px rgba(123,44,191,.8));stroke-width:3.5}to{filter:drop-shadow(0 0 10px rgba(0,212,255,.5));stroke-width:2.5}}@keyframes particleFlow{0%{opacity:0;offset-distance:0%}20%{opacity:1}80%{opacity:1}to{opacity:0;offset-distance:100%}}@keyframes powerUp{0%{opacity:0}40%{opacity:.6}to{opacity:0}}@keyframes float{0%,to{transform:translate(0);opacity:.2}25%{transform:translate(10px,-15px);opacity:.4}50%{transform:translate(-5px,-30px);opacity:.3}75%{transform:translate(-15px,-15px);opacity:.4}}.ambient-background{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:1;pointer-events:none}.ambient-particle{fill:url(#particleGradient);opacity:.3;animation:floatAmbient 8s ease-in-out infinite}@keyframes floatAmbient{0%,to{transform:translate(0);opacity:.2}25%{transform:translate(10px,-15px);opacity:.4}50%{transform:translate(-5px,-30px);opacity:.3}75%{transform:translate(-15px,-15px);opacity:.4}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Outfit,sans-serif;scroll-behavior:smooth;overflow-x:hidden}.portfolio{min-height:100vh;background:radial-gradient(ellipse at center,#1a0f2e,#0a0515);color:#f1f5f9;position:relative}.portfolio>section{position:relative;z-index:10}.whoami-row{display:flex;align-items:center;gap:2rem}.whoami-text{text-align:left}.headshot-container{flex-shrink:0}.headshot{width:150px;height:150px;border-radius:50%;object-fit:cover;border:3px solid #06b6d4;box-shadow:0 0 20px #06b6d466,0 0 40px #8b5cf633}@media(min-width:768px){.headshot{width:180px;height:180px}}@media(max-width:640px){.whoami-row{flex-direction:column;text-align:center}.whoami-text{text-align:center}.whoami-text h1{font-size:3rem!important;margin-bottom:1rem!important;line-height:1.1}.whoami-text p{font-size:1.25rem!important;margin-bottom:1.5rem!important}.hero-grid{gap:1.5rem}.fluent-text{font-size:1.25rem!important}}.hero-grid{display:flex;flex-direction:column;gap:4rem;align-items:center;text-align:center}.hero-left{display:flex;flex-direction:column;align-items:center}.hero-left .flex.gap-4{justify-content:center}.hero-right{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%}.fluent-content{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%}.morse-scaler{transform-origin:center bottom;will-change:transform}.fluent-text{font-size:1.75rem;font-weight:600;text-align:center}.fluent-static{color:#94a3b8}.fluent-typing{background:linear-gradient(to right,#06b6d4,#8b5cf6);-webkit-background-clip:text;background-clip:text;color:transparent}.typing-cursor{color:#06b6d4;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@media(min-width:768px){.fluent-text{font-size:2.25rem}}.mono{font-family:JetBrains Mono,monospace}.grid-pattern{background-image:linear-gradient(rgba(6,182,212,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(6,182,212,.03) 1px,transparent 1px);background-size:50px 50px;animation:gridShift 20s linear infinite}@keyframes gridShift{0%{background-position:0 0}to{background-position:50px 50px}}.glow{filter:drop-shadow(0 0 20px rgba(6,182,212,.3))}.text-glow{text-shadow:0 0 30px rgba(6,182,212,.5)}.card-hover{transition:all .4s cubic-bezier(.4,0,.2,1)}.card-hover:hover{transform:translateY(-8px) scale(1.02)}.gradient-border{position:relative;background:linear-gradient(135deg,#06b6d41a,#8b5cf61a);padding:2px}.gradient-border:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;background:linear-gradient(135deg,#06b6d4,#8b5cf6);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:.5}@media(max-width:640px){.gradient-border{background:transparent;padding:0;border:1px solid rgba(6,182,212,.3)}.gradient-border:before{display:none}}.skill-bar{transition:width 1.5s cubic-bezier(.4,0,.2,1)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:fadeInUp .8s ease-out forwards}.stagger-1{animation-delay:.1s;opacity:0}.stagger-2{animation-delay:.2s;opacity:0}.stagger-3{animation-delay:.3s;opacity:0}.stagger-4{animation-delay:.4s;opacity:0}.tech-tag{background:linear-gradient(135deg,#06b6d433,#8b5cf633);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(6,182,212,.3)}.carousel-container{position:relative;overflow:visible}.carousel-viewport{overflow:hidden;border-radius:.5rem}.carousel-track{display:flex;transition:transform .6s cubic-bezier(.4,0,.2,1)}.carousel-slide{min-width:100%;transition:opacity .6s ease}.carousel-nav-button{background:#0f172ae6;border:1px solid rgba(6,182,212,.4);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease;position:absolute;top:50%;padding:1rem;border-radius:9999px;z-index:50;cursor:pointer;box-shadow:0 4px 20px #0000004d}.carousel-nav-button.prev{left:0;transform:translateY(-50%) translate(-1rem)}.carousel-nav-button.next{right:0;transform:translateY(-50%) translate(1rem)}.carousel-nav-button:hover{background:#06b6d433;border-color:#06b6d499}.carousel-indicator{transition:all .3s ease;height:4px;width:32px;background:#475569}.carousel-indicator.active{width:2rem;background:linear-gradient(90deg,#06b6d4,#8b5cf6)}.timeline-item{opacity:.3;transform:translate(-20px);transition:all .6s cubic-bezier(.4,0,.2,1)}.timeline-item.expanded{opacity:1;transform:translate(0)}.timeline-content{max-height:0;overflow:hidden;opacity:0;transition:max-height .8s cubic-bezier(.4,0,.2,1),opacity .6s ease}.timeline-item.expanded .timeline-content{max-height:2000px;opacity:1}.timeline-dot{transition:all .4s ease;z-index:10;position:relative;border:2px solid white!important;box-shadow:0 0 0 2px #0f172a}.timeline-item.expanded .timeline-dot{transform:scale(1.3);box-shadow:0 0 0 2px #0f172a,0 0 15px currentColor}.timeline-dot.from-cyan-400{border-color:#22d3ee}.timeline-dot.from-emerald-400{border-color:#34d399}.timeline-dot.from-indigo-400{border-color:#818cf8}.timeline-dot.from-purple-400{border-color:#c084fc}.timeline-dot.from-violet-400{border-color:#a78bfa}.timeline-dot.from-amber-400{border-color:#fbbf24}.timeline-dot.from-rose-400{border-color:#fb7185}.timeline-dot.from-blue-400{border-color:#60a5fa}.timeline-dot.from-teal-400{border-color:#2dd4bf}.timeline-dot.from-slate-400{border-color:#94a3b8}.timeline-line{position:absolute;left:2.5rem;top:.85rem;width:3.5rem;height:2px;background:linear-gradient(to right,#06b6d4,transparent);transform-origin:left;transition:all .6s cubic-bezier(.4,0,.2,1)}.timeline-item.expanded .timeline-line{background:linear-gradient(to right,#06b6d4,#8b5cf6,transparent)}@keyframes slideInFromLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.timeline-highlight{opacity:0;transform:translate(-30px);transition:opacity .4s ease-out,transform .4s ease-out}.timeline-item.expanded .timeline-highlight{opacity:1;transform:translate(0)}.timeline-item.expanded .timeline-highlight:nth-child(1){transition-delay:.1s}.timeline-item.expanded .timeline-highlight:nth-child(2){transition-delay:.2s}.timeline-item.expanded .timeline-highlight:nth-child(3){transition-delay:.3s}.timeline-item.expanded .timeline-highlight:nth-child(4){transition-delay:.4s}.timeline-item.expanded .timeline-highlight:nth-child(5){transition-delay:.5s}.experience-tag{background:linear-gradient(135deg,#06b6d426,#8b5cf626);border:1px solid rgba(6,182,212,.3);transition:all .3s ease}.experience-tag:hover{background:linear-gradient(135deg,#06b6d440,#8b5cf640);border-color:#06b6d480;transform:translateY(-2px)}.spark-box{transition:all .3s ease;filter:drop-shadow(0 0 4px rgba(6,182,212,.3))}.spark-box.active{filter:drop-shadow(0 0 12px rgba(6,182,212,.8)) drop-shadow(0 0 20px rgba(6,182,212,.4));stroke:#06b6d4}.pulse-glow{animation:pulseGlow 1.5s ease-in-out infinite}@keyframes pulseGlow{0%,to{opacity:.6;filter:drop-shadow(0 0 4px #06b6d4)}50%{opacity:1;filter:drop-shadow(0 0 12px #06b6d4) drop-shadow(0 0 20px #06b6d4)}}.relative{position:relative}.fixed{position:fixed}.absolute{position:absolute}.inset-0{inset:0}.flex{display:flex}.grid{display:grid}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-12{gap:3rem}.space-y-2>*+*{margin-top:.5rem}.space-y-4>*+*{margin-top:1rem}.space-y-6>*+*{margin-top:1.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-32{padding-top:8rem;padding-bottom:8rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.pb-16{padding-bottom:4rem}.pl-24{padding-left:6rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.ml-16{margin-left:4rem}.mt-1\.5{margin-top:.375rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.left-6{left:1.5rem}.left-8{left:2rem}.top-2{top:.5rem}.top-4{top:1rem}.top-0{top:0}.bottom-0{bottom:0}.w-4{width:1rem}.w-12{width:3rem}.w-24{width:6rem}.w-32{width:8rem}.w-0\.5{width:.125rem}.w-1\.5{width:.375rem}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-2{height:.5rem}.h-4{height:1rem}.h-24{height:6rem}.h-32{height:8rem}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-9xl{font-size:8rem}.md\:text-3xl{font-size:1.875rem}}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-5xl{font-size:3rem}.text-7xl{font-size:4.5rem}.text-9xl{font-size:8rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-semibold{font-weight:600}.font-medium{font-weight:500}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-slate-700{border-color:#334155}.border-slate-800{border-color:#1e293b}.border-cyan-500\/30{border-color:#06b6d44d}.bg-slate-900\/20{background-color:#0f172a33}.bg-slate-900\/50{background-color:#0f172a80}.bg-slate-900\/80{background-color:#0f172acc}.bg-slate-800\/50{background-color:#1e293b80}.bg-slate-700{background-color:#334155}.text-slate-200{color:#e2e8f0}.text-slate-300{color:#cbd5e1}.text-slate-400{color:#94a3b8}.text-slate-500{color:#64748b}.text-cyan-400{color:#22d3ee}.text-white{color:#fff}.text-transparent{color:transparent}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.from-cyan-400{--tw-gradient-from: #22d3ee;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(34, 211, 238, 0))}.to-blue-500{--tw-gradient-to: #3b82f6}.from-emerald-400{--tw-gradient-from: #34d399;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(52, 211, 153, 0))}.to-teal-500{--tw-gradient-to: #14b8a6}.from-indigo-400{--tw-gradient-from: #818cf8;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(129, 140, 248, 0))}.from-purple-400{--tw-gradient-from: #c084fc;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(192, 132, 252, 0))}.to-fuchsia-500{--tw-gradient-to: #d946ef}.from-violet-400{--tw-gradient-from: #a78bfa;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(167, 139, 250, 0))}.to-purple-500{--tw-gradient-to: #a855f7}.from-amber-400{--tw-gradient-from: #fbbf24;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(251, 191, 36, 0))}.to-orange-500{--tw-gradient-to: #f97316}.to-red-500{--tw-gradient-to: #ef4444}.from-green-400{--tw-gradient-from: #4ade80;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(74, 222, 128, 0))}.to-emerald-500{--tw-gradient-to: #10b981}.from-rose-400{--tw-gradient-from: #fb7185;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(251, 113, 133, 0))}.to-pink-500{--tw-gradient-to: #ec4899}.from-pink-400{--tw-gradient-from: #f472b6;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(244, 114, 182, 0))}.to-rose-500{--tw-gradient-to: #f43f5e}.from-blue-400{--tw-gradient-from: #60a5fa;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(96, 165, 250, 0))}.to-indigo-500{--tw-gradient-to: #6366f1}.from-cyan-400.to-sky-500{--tw-gradient-from: #22d3ee;--tw-gradient-to: #0ea5e9;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-teal-400{--tw-gradient-from: #2dd4bf;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(45, 212, 191, 0))}.to-cyan-500{--tw-gradient-to: #06b6d4}.from-slate-400{--tw-gradient-from: #94a3b8;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(148, 163, 184, 0))}.to-gray-500{--tw-gradient-to: #6b7280}.to-violet-400{--tw-gradient-to: #a78bfa}.from-cyan-500{--tw-gradient-from: #06b6d4;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(6, 182, 212, 0))}.to-violet-500{--tw-gradient-to: #8b5cf6}.via-violet-500{--tw-gradient-stops: var(--tw-gradient-from), #8b5cf6, var(--tw-gradient-to, rgba(139, 92, 246, 0))}.via-blue-500{--tw-gradient-stops: var(--tw-gradient-from), #3b82f6, var(--tw-gradient-to, rgba(59, 130, 246, 0))}.via-red-500{--tw-gradient-stops: var(--tw-gradient-from), #ef4444, var(--tw-gradient-to, rgba(239, 68, 68, 0))}.via-teal-500{--tw-gradient-stops: var(--tw-gradient-from), #14b8a6, var(--tw-gradient-to, rgba(20, 184, 166, 0))}.from-orange-400{--tw-gradient-from: #fb923c;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(251, 146, 60, 0))}.to-slate-800{--tw-gradient-to: #1e293b}.min-h-screen{min-height:100vh}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.w-full{width:100%}.h-1{height:.25rem}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.flex-shrink-0{flex-shrink:0}.hidden{display:none}.transform{transform:translateZ(0)}.-translate-y-1\/2{transform:translateY(-50%)}.-translate-x-4{transform:translate(-1rem)}.translate-x-4{transform:translate(1rem)}.left-0{left:0}.right-0{right:0}.top-1\/2{top:50%}.rotate-12{transform:rotate(12deg)}.-rotate-12{transform:rotate(-12deg)}@media(min-width:1024px){.lg\:block{display:block}}.text-right{text-align:right}.text-xs{font-size:.75rem}.text-violet-400{color:#a78bfa}.border-2{border-width:2px}.rounded-full{border-radius:9999px}.bg-slate-950{background-color:#020617}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-cyan-500\/20{--tw-gradient-from: rgba(6, 182, 212, .2);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, transparent)}.to-violet-500\/20{--tw-gradient-to: rgba(139, 92, 246, .2)}.hover\:text-violet-400:hover{color:#a78bfa}.transition-opacity{transition:opacity .3s}.duration-300{transition-duration:.3s}.opacity-0{opacity:0}.opacity-100{opacity:1}.backdrop-blur-sm{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.transition-all{transition:all .3s}.hover\:border-cyan-500:hover{border-color:#06b6d4}.hover\:bg-slate-800\/50:hover{background-color:#1e293b80}.hover\:bg-slate-700\/50:hover{background-color:#33415580}.hover\:border-cyan-500\/50:hover{border-color:#06b6d480}.hover\:text-cyan-400:hover{color:#22d3ee}.hover\:opacity-90:hover{opacity:.9}.hover\:bg-slate-600:hover{background-color:#475569}.text-center{text-align:center}.block{display:block}.mx-auto{margin-left:auto;margin-right:auto}.p-8{padding:2rem}.leading-relaxed{line-height:1.625}.flex-wrap{flex-wrap:wrap}.pt-4{padding-top:1rem}.flex-1{flex:1}.group:hover .group-hover\:text-cyan-400{color:#22d3ee}.transition-colors{transition:color .3s}
