body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root,body,html{height:100%;overflow:hidden;width:100%}.app-galaxy{background:linear-gradient(135deg,#2d5016cc,#1b3a0ed9 30%,#0d1f07e6 70%),url(/static/media/colombia.b9139202d66a9f238df5.jpg);background-attachment:fixed;background-position:50%;background-size:cover;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow-x:hidden;overflow-y:visible}.app-galaxy,.universe-container{min-height:100vh;position:relative;width:100%}.universe-container{opacity:0;overflow:visible;transform:translateY(50px);transition:all .8s cubic-bezier(.4,0,.2,1)}.universe-container.visible{opacity:1;transform:translateY(0)}.galaxy-background{height:100%;left:0;pointer-events:none;position:fixed;top:0;width:100%;z-index:0}.stars-layer-1,.stars-layer-2{background-repeat:repeat;height:100%;position:absolute;width:100%}.stars-layer-1{animation:floatLeaves 300s linear infinite;background-image:radial-gradient(2px 1px at 20px 30px,#4a7c59,#0000),radial-gradient(1px 1px at 40px 70px,#6aa84fcc,#0000),radial-gradient(1px 2px at 50px 160px,#8bc34a99,#0000);background-size:200px 200px}.stars-layer-2{animation:floatLeaves 400s linear infinite reverse;background-image:radial-gradient(3px 2px at 150px 40px,#4caf5066,#0000),radial-gradient(2px 1px at 100px 120px,#81c7844d,#0000);background-size:300px 300px}@keyframes floatLeaves{0%{transform:translateY(0) rotate(0deg)}to{transform:translateY(-200px) rotate(1turn)}}.nebula-layer{animation:sunlightShift 80s ease-in-out infinite;background:radial-gradient(ellipse at top left,#ffc10714 0,#0000 40%),radial-gradient(ellipse at bottom right,#4caf500f 0,#0000 40%),radial-gradient(ellipse at center,#8bc34a0a 0,#0000 50%);height:100%;position:absolute;width:100%}@keyframes sunlightShift{0%,to{opacity:.6;transform:scale(1) rotate(0deg)}33%{opacity:.8;transform:scale(1.1) rotate(120deg)}66%{opacity:.4;transform:scale(.9) rotate(240deg)}}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#1b3a0e;color:#e8f5e8;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0;padding:0}::selection{background-color:#4caf504d;color:#e8f5e8}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-track{background:#2d50164d}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#4caf50,#8bc34a);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#66bb6a,#9ccc65)}:focus-visible{outline:2px solid #4caf50;outline-offset:2px}@media (max-width:768px){html{font-size:14px}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.visually-hidden{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.react-flow{direction:ltr}.react-flow__container{height:100%;left:0;position:absolute;top:0;width:100%}.react-flow__pane{cursor:grab;z-index:1}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:grabbing}.react-flow__viewport{pointer-events:none;transform-origin:0 0;z-index:2}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{overflow:visible;pointer-events:none}.react-flow__connection-path,.react-flow__edge-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{cursor:pointer;pointer-events:visibleStroke}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{box-sizing:border-box;cursor:grab;pointer-events:all;position:absolute;transform-origin:0 0;-webkit-user-select:none;user-select:none}.react-flow__node.dragging{cursor:grabbing}.react-flow__nodesselection{pointer-events:none;transform-origin:left top;z-index:3}.react-flow__nodesselection-rect{cursor:grab;pointer-events:all;position:absolute}.react-flow__handle{background:#1a192b;border:1px solid #fff;border-radius:100%;height:6px;min-height:5px;min-width:5px;pointer-events:none;position:absolute;width:6px}.react-flow__handle.connectionindicator{cursor:crosshair;pointer-events:all}.react-flow__handle-bottom{bottom:-4px;left:50%;top:auto;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{left:-4px;top:50%;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{margin:15px;position:absolute;z-index:5}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translateX(-50%)}.react-flow__attribution{background:#ffffff80;font-size:10px;margin:0;padding:2px 3px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{height:100%;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;width:100%}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{background-color:#fff;border:1px solid #1a192b;border-radius:3px;color:#222;font-size:12px;padding:10px;text-align:center;width:150px}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted #0059dccc}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{align-items:center;background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:initial;cursor:pointer;display:flex;height:16px;justify-content:center;padding:5px;-webkit-user-select:none;user-select:none;width:16px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{max-height:12px;max-width:12px;width:100%}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:#3367d9;border:1px solid #fff;border-radius:1px;height:4px;transform:translate(-50%,-50%);width:4px}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border:0 solid #3367d9}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{height:100%;top:0;transform:translate(-50%);width:1px}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.bottom,.react-flow__resize-control.line.top{height:1px;left:0;transform:translateY(-50%);width:100%}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.skill-node{-webkit-backdrop-filter:blur(15px) saturate(120%);backdrop-filter:blur(15px) saturate(120%);background:linear-gradient(135deg,#8bc34af2,#689f38e6 30%,#4caf50d9 70%,#388e3ce6);background-image:radial-gradient(ellipse 3px 2px at 15% 25%,#fff6 50%,#0000 0),radial-gradient(ellipse 2px 3px at 85% 75%,#ffffff4d 50%,#0000 0),radial-gradient(ellipse 4px 2px at 65% 15%,#ffffff40 50%,#0000 0),radial-gradient(ellipse 2px 4px at 35% 85%,#ffffff4d 50%,#0000 0),radial-gradient(circle at 25% 60%,#2e7d3266 .5px,#0000 0),radial-gradient(circle at 75% 40%,#2e7d324d .5px,#0000 0),radial-gradient(circle at 45% 70%,#8bc34a33 2px,#0000 0),radial-gradient(circle at 80% 30%,#689f3826 1.5px,#0000 0);border:none;border-radius:15px 60px 25px 45px;box-shadow:0 8px 32px #0000004d,0 0 25px #4caf5066,inset 2px 2px 0 #ffffff4d,inset -2px -2px 0 #2e7d3266;cursor:pointer;display:flex;flex-direction:column;height:130px;overflow:hidden;position:relative;transform-origin:bottom center;transition:all .4s cubic-bezier(.4,0,.2,1);width:170px}.skill-node:after{background:linear-gradient(180deg,#689f38,#558b2f 30%,#6d4c41 70%,#5d4037);background-image:repeating-linear-gradient(0deg,#0000,#2e7d324d 1px,#0000 2px);border-radius:3px 3px 6px 6px;bottom:-10px;box-shadow:0 0 8px #5d403780,inset 1px 0 0 #8bc34a66,inset -1px 0 0 #2e7d324d;content:"";height:25px;left:50%;position:absolute;transform:translateX(-50%);width:6px}.skill-node:hover{animation:leafRustle .6s ease-in-out;background-image:radial-gradient(ellipse at 30% 20%,#ffff001a 0,#0000 40%),radial-gradient(ellipse at 70% 80%,#ffff0014 0,#0000 35%),var(--original-background-image);box-shadow:0 15px 50px #0006,0 0 40px #8bc34acc,inset 2px 2px 0 #fff6,inset -2px -2px 0 #2e7d3299;filter:drop-shadow(0 0 15px rgba(139,195,74,.6)) brightness(1.1) saturate(1.2);transform:translateY(-12px) scale(1.08) rotate(2deg)}@keyframes leafRustle{0%,to{transform:translateY(-12px) scale(1.08) rotate(2deg)}25%{transform:translateY(-12px) scale(1.08) rotate(-1deg)}75%{transform:translateY(-12px) scale(1.08) rotate(3deg)}}.skill-node-content{display:flex;flex-direction:column;height:100%;padding:4px;position:relative;z-index:1}.skill-node-header{align-items:center;background:linear-gradient(135deg,#388e3c,#2e7d32);border-radius:16px 40px 8px 8px;box-shadow:inset 0 1px 0 #fff3;color:#fff;display:flex;justify-content:center;min-height:40px;overflow:hidden;padding:10px 8px;position:relative}.skill-node-header:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .6s ease;width:100%}.skill-node:hover .skill-node-header:before{left:100%}.skill-node-header h3{word-wrap:break-word;color:#e8f5e8;font-family:Orbitron,sans-serif;font-size:.85rem;font-weight:700;-webkit-hyphens:auto;hyphens:auto;letter-spacing:.3px;line-height:1.2;margin:0;max-width:100%;overflow-wrap:break-word;text-align:center;text-shadow:0 1px 2px #00000080}.skill-node-body{align-items:center;background:#ffffff1a;border-radius:8px 8px 16px 40px;display:flex;flex:1 1;flex-direction:column;gap:8px;justify-content:center;margin:0 2px 2px;min-height:0;overflow:visible;padding:10px 8px 8px}.skill-category{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#e8f5e9e6;border:1px solid #2e7d3266;border-radius:25px;box-shadow:0 2px 8px #0000001a;color:#1b5e20;display:inline-block;font-size:.65rem;letter-spacing:.3px;max-width:100%;overflow:hidden;padding:3px 8px;text-overflow:ellipsis;text-transform:uppercase}.skill-category,.skill-experience{font-weight:600;text-align:center;white-space:nowrap}.skill-experience{align-items:center;color:#e8f5e8;display:flex;font-size:.75rem;gap:4px;justify-content:center;overflow:visible;text-shadow:0 1px 2px #0000004d}.skill-experience:before{animation:leafSway 3s ease-in-out infinite;content:"🌿";filter:drop-shadow(0 0 4px rgba(76,175,80,.6));font-size:.8rem}@keyframes leafSway{0%,to{transform:rotate(0deg)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.react-flow__handle{background:radial-gradient(circle,#6d4c41 30%,#8d6e63 70%);border:2px solid #795548cc;border-radius:50%;box-shadow:0 0 12px #5d403799,inset 0 1px 2px #a0746266;height:14px;transition:all .3s ease;width:14px;z-index:10}.react-flow__handle:hover{background:radial-gradient(circle,#5d4037 30%,#6d4c41 70%);box-shadow:0 0 20px #5d4037cc,inset 0 1px 2px #a0746299;transform:scale(1.3)}.react-flow__handle-top{background:radial-gradient(circle,#388e3c 30%,#4caf50 70%);border-color:#2e7d32cc;top:-7px}.react-flow__handle-bottom{bottom:-7px}.skill-node-body:after{animation:leafFloat 6s ease-in-out infinite;content:"🌿🍃🐛";filter:drop-shadow(0 0 3px rgba(76,175,80,.4));font-size:.6rem;letter-spacing:1px;opacity:.7;position:absolute;right:8px;top:6px}.skill-node-body:before{animation:dewdropShimmer 4s ease-in-out infinite;background:radial-gradient(circle,#ffffffe6 0,#ffffff4d 100%);border-radius:50%;box-shadow:0 0 3px #ffffff80,6px 8px 0 -2px #fff9,12px 4px 0 -3px #fff6;content:"";height:4px;left:12px;opacity:.8;position:absolute;top:15px;width:4px}@keyframes leafFloat{0%,to{opacity:.7;transform:translateY(0) rotate(0deg)}33%{opacity:.9;transform:translateY(-2px) rotate(8deg)}66%{opacity:.8;transform:translateY(-1px) rotate(-5deg)}}@keyframes dewdropShimmer{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.skill-node:nth-child(odd):before{animation:butterflyVisit 8s ease-in-out infinite;content:"🦋";font-size:.8rem;opacity:0;position:absolute;right:-10px;top:-15px;transition:all .3s ease;z-index:5}.skill-node:nth-child(2n):before{animation:beeVisit 10s ease-in-out infinite;content:"🐝";font-size:.7rem;left:-8px;opacity:0;position:absolute;top:-12px;transition:all .3s ease;z-index:5}@keyframes butterflyVisit{0%,90%,to{opacity:0;transform:translateY(0) rotate(0deg)}15%,5%{opacity:.8;transform:translateY(-5px) rotate(10deg)}10%{opacity:1;transform:translateY(-8px) rotate(-5deg)}}@keyframes beeVisit{0%,85%,to{opacity:0;transform:translateX(0) translateY(0)}10%,20%{opacity:.9;transform:translateX(3px) translateY(-3px)}15%{opacity:1;transform:translateX(-2px) translateY(-5px)}}.skill-node{animation:gentleBreeze 15s ease-in-out infinite}@keyframes gentleBreeze{0%,to{transform:translateX(0) rotate(0deg)}25%{transform:translateX(1px) rotate(.5deg)}50%{transform:translateX(-.5px) rotate(-.3deg)}75%{transform:translateX(.8px) rotate(.2deg)}}.skill-node[data-proficiency="5"]{background:linear-gradient(135deg,#ffc107e6,#ff9800cc 30%,#4caf50d9 70%,#388e3ce6)}.skill-node[data-proficiency="4"]{background:linear-gradient(135deg,#8bc34af2,#689f38e6 30%,#4caf50d9 70%,#388e3ce6)}.skill-node[data-proficiency="3"]{background:linear-gradient(135deg,#81c784e6,#689f38d9 30%,#4caf50cc 70%,#388e3cd9)}.modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1b3a0ecc;box-sizing:border-box;display:flex;height:100%;justify-content:center;left:0;padding:1rem;position:fixed;top:0;width:100%;z-index:9999}.skill-modal{animation:modalGrowIn .4s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(20px) saturate(120%);backdrop-filter:blur(20px) saturate(120%);background:linear-gradient(135deg,#e8f5e9f2,#c8e6c9f2 50%,#a5d6a7f2);border:3px solid #4caf5066;border-radius:20px;box-shadow:0 20px 60px #0006,0 0 40px #4caf504d,inset 0 2px 0 #ffffff4d,inset 0 -2px 0 #2e7d3233;display:flex;flex-direction:column;height:650px;max-height:85vh;max-width:90vw;overflow:hidden;position:relative;width:850px;z-index:10000}@keyframes modalGrowIn{0%{opacity:0;transform:scale(.8) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}.skill-modal:before{background-image:radial-gradient(circle at 20% 30%,#4caf501a 0,#0000 50%),radial-gradient(circle at 80% 70%,#8bc34a1a 0,#0000 50%);border-radius:17px;bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.close-button{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#b71c1ce6;border:2px solid #d32f2fcc;border-radius:50%;box-shadow:0 4px 15px #b71c1c66;color:#fff;cursor:pointer;display:flex;font-size:20px;height:45px;justify-content:center;position:absolute;right:20px;top:20px;transition:all .3s ease;width:45px;z-index:10}.close-button:hover{background:#d32f2fe6;box-shadow:0 6px 20px #b71c1c99;transform:scale(1.1) rotate(90deg)}.skill-modal-header{background:linear-gradient(135deg,#2e7d32cc,#388e3cb3);border-bottom:2px solid #4caf504d;border-top-left-radius:17px;border-top-right-radius:17px;display:flex;flex-direction:column;flex-shrink:0;gap:10px;min-height:100px;padding:25px 80px 20px 30px;position:relative;z-index:2}.skill-modal-header h2{color:#e8f5e8;flex:1 1;font-family:Orbitron,sans-serif;font-size:2rem;font-weight:700;line-height:1.2;margin:0 0 10px;max-width:100%;text-shadow:0 2px 4px #0000004d;word-break:break-word}.skill-category-badge{align-self:flex-start;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#e8f5e9e6;border:2px solid #4caf5066;border-radius:25px;box-shadow:0 2px 8px #0003;color:#1b5e20;font-size:.9rem;font-weight:600;letter-spacing:.5px;margin-top:5px;padding:8px 16px;text-transform:uppercase;white-space:nowrap}.skill-modal-content{color:#1b5e20;flex:1 1;height:calc(100% - 100px);overflow-x:visible;overflow-y:auto;padding:30px;position:relative;z-index:2}.skill-details{margin-bottom:35px}.skill-description,.skill-experience-info,.skill-proficiency{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff9;border:1px solid #4caf5033;border-radius:15px;box-shadow:0 4px 15px #0000001a;margin-bottom:25px;padding:20px}.skill-description h4,.skill-experience-info h4,.skill-proficiency h4{border-bottom:2px solid #4caf504d;color:#2e7d32;font-family:Orbitron,sans-serif;font-size:1.2rem;font-weight:700;letter-spacing:.5px;margin-bottom:12px;margin-top:0;padding-bottom:8px;text-transform:uppercase}.skill-description p,.skill-experience-info p{word-wrap:break-word;color:#1b5e20;font-size:1rem;font-weight:500;line-height:1.7;margin:0;overflow-wrap:break-word;white-space:normal}.stars{align-items:center;display:flex;gap:8px}.star{color:#c8e6c9;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));font-size:24px;transition:all .3s ease}.star.filled{color:#4caf50;filter:drop-shadow(0 0 8px rgba(76,175,80,.6))}.skill-projects h3{border-bottom:3px solid #4caf5066;color:#2e7d32;font-family:Orbitron,sans-serif;font-size:1.5rem;font-weight:700;letter-spacing:.5px;margin-bottom:20px;margin-top:0;padding-bottom:15px;position:relative;text-transform:uppercase}.skill-projects h3:after{animation:leafSway 3s ease-in-out infinite;content:"🌿";font-size:1.2rem;position:absolute;right:0;top:0}.projects-list{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));margin:-10px;overflow:visible;padding:10px}.project-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#fffc,#e8f5e9cc);border:2px solid #4caf504d;border-radius:15px;box-shadow:0 4px 15px #0000001a;display:flex;flex-direction:column;height:100%;overflow:hidden;padding:20px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.project-card:before{background:linear-gradient(90deg,#4caf50,#8bc34a,#cddc39);content:"";height:4px;left:0;position:absolute;right:0;top:0}.project-card:hover{border-color:#4caf50;box-shadow:0 8px 25px #0003,0 0 20px #4caf504d;transform:translateY(-5px) scale(1.02);z-index:10}.project-card h4{color:#2e7d32;font-size:1.2rem;font-weight:700;line-height:1.3;margin-bottom:12px;margin-top:0}.project-card h4,.project-card p{word-wrap:break-word;overflow-wrap:break-word}.project-card p{color:#1b5e20;flex-grow:1;font-size:.95rem;font-weight:500;line-height:1.6;margin-bottom:20px;white-space:normal}.project-links{display:flex;flex-wrap:wrap;gap:15px;margin-top:auto}.demo-link,.github-link{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid #0000;border-radius:25px;display:inline-flex;font-size:.9rem;font-weight:600;gap:8px;padding:10px 16px;text-decoration:none;transition:all .3s ease}.github-link{background:linear-gradient(135deg,#2e7d32,#388e3c);border-color:#2e7d3280;color:#e8f5e8}.github-link:hover{background:linear-gradient(135deg,#1b5e20,#2e7d32);border-color:#4caf50;box-shadow:0 6px 20px #2e7d3266;transform:translateY(-2px)}.demo-link{background:linear-gradient(135deg,#689f38,#8bc34a);border-color:#689f3880;color:#1b5e20}.demo-link:hover{background:linear-gradient(135deg,#558b2f,#689f38);border-color:#8bc34a;box-shadow:0 6px 20px #689f3866;color:#e8f5e8;transform:translateY(-2px)}.demo-link svg,.github-link svg{fill:currentColor;height:16px;width:16px}.skill-modal-content::-webkit-scrollbar{width:10px}.skill-modal-content::-webkit-scrollbar-track{background:#c8e6c94d;border-radius:5px}.skill-modal-content::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#4caf50,#8bc34a);border:1px solid #4caf504d;border-radius:5px}.skill-modal-content::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#2e7d32,#4caf50)}.no-projects{background:#ffffff80;border:2px dashed #4caf504d;border-radius:15px;color:#689f38;font-size:1.1rem;font-style:italic;padding:30px;text-align:center}@media (max-width:768px){.skill-modal{height:80vh;margin:1rem;width:95vw}.skill-modal-header{min-height:80px;padding:20px}.skill-modal-header h2{font-size:1.5rem;max-width:100%}.skill-modal-content{padding:20px}.projects-list{gap:15px;grid-template-columns:1fr}.project-links{flex-direction:column;gap:10px}.demo-link,.github-link{justify-content:center;width:100%}}.mobile-skills-container{background:#0000;display:none;min-height:100vh;overflow-x:hidden;padding:0}.mobile-skills-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0e27f2;border-bottom:1px solid #4caf5033;padding:2rem 1rem 1rem;position:sticky;text-align:center;top:0;z-index:100}.mobile-skills-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#4caf50,#8bc34a 50%,#cddc39);-webkit-background-clip:text;background-clip:text;color:#e8f5e8;font-family:Orbitron,sans-serif;font-size:2.2rem;font-weight:900;margin:0 0 .5rem;text-shadow:0 0 20px #4caf504d}.mobile-skills-header p{color:#c8e6c9;font-size:.9rem;line-height:1.4;margin:0}.mobile-info-section{margin:0 auto;max-width:500px;padding:1rem}.mobile-info-card{-webkit-backdrop-filter:blur(15px) saturate(120%);backdrop-filter:blur(15px) saturate(120%);background:linear-gradient(135deg,#ffffffe6,#e8f5e9e6);border:2px solid #4caf5066;border-radius:12px;box-shadow:0 8px 32px #0003,0 0 20px #4caf5033,inset 0 1px 0 #ffffff4d;margin-bottom:1rem;padding:1rem}.mobile-info-card h3{color:#2e7d32;font-size:1rem;font-weight:600;margin:0 0 .5rem}.mobile-info-card p{color:#1b5e20;font-size:.9rem;line-height:1.4;margin:0}.mobile-info-card strong{color:#2e7d32}.mobile-skills-section{margin:0 auto;max-width:500px;padding:1rem}.mobile-skills-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#4caf50,#8bc34a 50%,#cddc39);-webkit-background-clip:text;background-clip:text;color:#e8f5e8;font-family:Orbitron,sans-serif;font-size:1.5rem;font-weight:700;margin:0 0 1.5rem;position:relative;text-align:center;text-shadow:0 0 15px #4caf504d}.mobile-skills-title:after{background:linear-gradient(90deg,#4caf50,#8bc34a);border-radius:1px;bottom:-8px;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%);width:60px}.mobile-skills-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr}.mobile-skill-card{-webkit-backdrop-filter:blur(15px) saturate(120%);backdrop-filter:blur(15px) saturate(120%);background:linear-gradient(135deg,#ffffffe6,#e8f5e9e6);border:2px solid #4caf5066;border-radius:16px;box-shadow:0 8px 32px #0003,0 0 20px #4caf5033,inset 0 1px 0 #ffffff4d;cursor:pointer;overflow:hidden;padding:1.25rem;position:relative;transition:all .3s ease}.mobile-skill-card:hover{border-color:#4caf50;box-shadow:0 8px 30px #0006,0 0 20px #4caf504d,inset 0 1px 0 #a0746266;transform:translateY(-4px)}.mobile-skill-card:active{transform:translateY(-2px)}.mobile-skill-card[data-proficiency="5"]{border-color:#4caf5099}.mobile-skill-card[data-proficiency="4"]{border-color:#8bc34a99}.mobile-skill-card[data-proficiency="3"]{border-color:#cddc3999}.mobile-skill-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.mobile-skill-header h3{color:#2e7d32;font-family:Orbitron,sans-serif;font-size:1.3rem;font-weight:700;margin:0}.mobile-skill-category{background:#4caf5033;border:1px solid #4caf504d;border-radius:8px;color:#4caf50;font-size:.75rem;font-weight:600;padding:.25rem .5rem}.mobile-skill-content{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.mobile-skill-experience{align-items:baseline;display:flex;gap:.25rem}.experience-years{color:#4caf50;font-family:Orbitron,sans-serif;font-size:1.8rem;font-weight:900}.experience-label{color:#1b5e20;font-size:.9rem;font-weight:500}.mobile-skill-proficiency{align-items:center;display:flex;gap:.5rem}.proficiency-bar{background:#4caf5033;border:1px solid #4caf504d;border-radius:3px;height:6px;overflow:hidden;width:60px}.proficiency-fill{background:linear-gradient(90deg,#4caf50,#8bc34a);border-radius:3px;height:100%;transition:width .3s ease}.proficiency-level{color:#4caf50;font-family:Orbitron,sans-serif;font-size:.85rem;font-weight:600}.mobile-skill-description{color:#1b5e20;font-size:.9rem;line-height:1.4;margin-bottom:1rem;opacity:.9}.mobile-skill-projects{align-items:center;border-top:1px solid #4caf504d;display:flex;justify-content:space-between;padding-top:.75rem}.projects-count{color:#4caf50;font-size:.85rem;font-weight:600}.tap-hint{color:#2e7d32;font-size:.8rem;font-style:italic;opacity:.8}@media (max-width:768px){.mobile-skills-container{display:block}}@media (max-width:480px){.mobile-skills-header{padding:1.5rem .75rem .75rem}.mobile-skills-header h1{font-size:1.8rem}.mobile-skills-header p{font-size:.85rem}.mobile-info-section,.mobile-skills-section{padding:.75rem}.mobile-skills-title{font-size:1.3rem;margin-bottom:1.25rem}.mobile-skills-grid{gap:.75rem}.mobile-skill-card{padding:1rem}.mobile-skill-header h3{font-size:1.1rem}.experience-years{font-size:1.6rem}.mobile-info-card{padding:.75rem}}.skills-flow-container{background:#0000;position:relative}.desktop-skills-flow,.skills-flow-container{display:flex;flex-direction:column;height:100vh;width:100%}.skills-flow-header{padding:2rem;text-align:center;z-index:10}.skills-flow-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#4caf50,#8bc34a 50%,#cddc39);-webkit-background-clip:text;background-clip:text;color:#e8f5e8;font-family:Orbitron,sans-serif;font-size:3rem;font-weight:900;margin:0 0 1rem;text-shadow:0 0 40px #4caf5066}.skills-flow-header p{color:#c8e6c9;font-size:1.1rem;line-height:1.6;margin:0 auto;max-width:800px}.skills-flow-wrapper{box-sizing:border-box;height:calc(100vh - 200px);overflow:visible;padding:80px 60px;position:relative;width:100%}.react-flow{background:#0000;height:100%;width:100%}.react-flow,.react-flow__container,.react-flow__node,.react-flow__pane,.react-flow__renderer,.react-flow__selection,.react-flow__viewport{overflow:visible!important}.react-flow__node{z-index:1}.react-flow__node:hover{z-index:999!important}.react-flow__nodes{overflow:visible!important}.reset-view-button{align-items:center;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#3e2723d9;border:2px solid #79554899;border-radius:50%;bottom:5px;box-shadow:0 4px 20px #0000004d,inset 0 1px 0 #a074624d;color:#4caf50;cursor:pointer;display:flex;font-size:1.5rem;height:50px;justify-content:center;left:20px;position:absolute;transition:all .3s ease;width:50px;z-index:10}.reset-view-button:hover{background:#4caf504d;border-color:#66bb6a;box-shadow:0 6px 25px #0006,0 0 20px #4caf5066,inset 0 1px 0 #a0746266;transform:scale(1.1) rotate(5deg)}.reset-view-button:active{transform:scale(.95) rotate(-2deg)}.react-flow__minimap{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1b3a0ecc;border:2px solid #4caf5066;border-radius:12px;box-shadow:0 4px 20px #0000004d,inset 0 1px 0 #8bc34a33}.react-flow__minimap-mask{fill:#4caf5033;stroke:#4caf50;stroke-width:2}.react-flow__edge-path{stroke:#795548cc;stroke-width:3;filter:drop-shadow(0 0 4px rgba(62,39,35,.6))}.react-flow__selection{background:#4caf501a;border:1px solid #4caf50}.react-flow__panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#3e2723cc;border:2px solid #79554899;border-radius:12px;box-shadow:inset 0 1px 0 #a074624d;color:#e8f5e8;margin:1rem;padding:1rem}.floating-info-card{animation:cardFloat 6s ease-in-out infinite;-webkit-backdrop-filter:blur(15px) saturate(120%);backdrop-filter:blur(15px) saturate(120%);background:linear-gradient(135deg,#ffffffe6,#e8f5e9e6);border:2px solid #4caf5066;border-radius:20px;box-shadow:0 8px 32px #0003,0 0 20px #4caf5033,inset 0 1px 0 #ffffff4d;padding:20px;position:absolute;transition:all .3s ease;width:280px;z-index:5}.floating-info-card:hover{border-color:#4caf50;box-shadow:0 12px 40px #0000004d,0 0 30px #4caf5066,inset 0 1px 0 #fff6;transform:translateY(-8px) scale(1.02)}.floating-info-card.top-left{animation-delay:0s;left:20px;top:20px}.floating-info-card.top-right{animation-delay:1.5s;right:20px;top:20px}.floating-info-card.bottom-left{animation-delay:3s;bottom:40px;left:20px}.floating-info-card.bottom-right{animation-delay:4.5s;bottom:20px;right:20px}@keyframes cardFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.card-header{border-bottom:2px solid #4caf504d;color:#2e7d32;font-family:Orbitron,sans-serif;font-size:1.1rem;font-weight:700;margin-bottom:12px;padding-bottom:8px;text-align:center}.card-content{color:#1b5e20;font-size:.9rem;font-weight:500;line-height:1.5;text-align:center}.card-content strong{color:#2e7d32;font-weight:700}.card-content em{color:#689f38;font-style:italic}@media (max-width:768px){.desktop-skills-flow{display:none}.skills-flow-header{padding:1.5rem 1rem}.skills-flow-header h1{font-size:2rem}.skills-flow-header p{font-size:1rem}.skills-flow-wrapper{height:calc(100vh - 160px);padding:60px 40px}.reset-view-button{bottom:3px;font-size:1.3rem;height:45px;left:15px;width:45px}.floating-info-card{font-size:.85rem;padding:15px;width:250px}.floating-info-card.top-left,.floating-info-card.top-right{top:10px}.floating-info-card.bottom-left{bottom:35px}.floating-info-card.bottom-right{bottom:10px}.floating-info-card.bottom-left,.floating-info-card.top-left{left:10px}.floating-info-card.bottom-right,.floating-info-card.top-right{right:10px}}@media (max-width:480px){.skills-flow-wrapper{padding:40px 20px}.floating-info-card{font-size:.8rem;padding:12px;width:200px}.card-header{font-size:1rem;margin-bottom:8px}}
/*# sourceMappingURL=main.ffe5c42f.css.map*/