@import url(https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;600;700&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@keyframes modalIn{0%{opacity:0;transform:scale(.92) translateY(24px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.portfolio-root{background:#050a0f;color:#e2e8f0;font-family:Fira Code,Courier New,monospace;min-height:100vh;overflow-x:hidden;position:relative}.bg-grid{background-image:linear-gradient(#00f5a008 1px,#0000 0),linear-gradient(90deg,#00f5a008 1px,#0000 0);background-size:40px 40px;inset:0;pointer-events:none;position:fixed;z-index:0}.bg-glow-1{background:radial-gradient(circle,#00f5a012 0,#0000 70%);height:500px;right:-10%;top:-20%;width:500px}.bg-glow-1,.bg-glow-2{border-radius:50%;pointer-events:none;position:fixed;z-index:0}.bg-glow-2{background:radial-gradient(circle,#f5a6230d 0,#0000 70%);bottom:-20%;height:400px;left:-10%;width:400px}.nav{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#050a0fd9;border-bottom:1px solid #00f5a01a;justify-content:space-between;padding:16px 40px;position:sticky;top:0;z-index:100}.nav,.nav-logo{align-items:center;display:flex}.nav-logo{font-size:22px;font-weight:700;gap:2px}.logo-angle{color:#00f5a0}.logo-name{color:#fff;margin:0 2px}.nav-links{display:flex;flex-wrap:wrap;gap:8px}.nav-btn{background:none;border:none;color:#94a3b8;cursor:pointer;font-family:inherit;font-size:14px;padding:6px 14px;position:relative;transition:color .2s}.nav-btn:hover{color:#e2e8f0}.nav-btn.active{color:#00f5a0}.nav-underline{background:#00f5a0;border-radius:2px;bottom:0;display:block;height:2px;left:14px;position:absolute;right:14px}.resume-btn{background:#0000;border:1.5px solid #00f5a0;border-radius:6px;color:#00f5a0;cursor:pointer;font-family:inherit;font-size:13px;font-weight:700;letter-spacing:.5px;padding:7px 16px;text-decoration:none;transition:background .2s,color .2s}.resume-btn:hover{background:#00f5a01a}.hamburger{background:none;border:none;color:#00f5a0;cursor:pointer;display:none;font-size:22px}.mobile-menu{align-items:center;background:#0a1520;border-bottom:1px solid #00f5a026;display:flex;flex-direction:column;gap:8px;left:0;padding:16px 0;position:fixed;right:0;top:60px;z-index:99}.mobile-menu-btn{background:none;border:none;color:#e2e8f0;cursor:pointer;font-family:inherit;font-size:16px;padding:10px 24px}.hero{align-items:center;display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between;min-height:calc(100vh - 64px);padding:20px 60px 40px;position:relative;z-index:1}.hero-content{flex:1 1 320px;max-width:560px}.hero-greet{color:#00f5a0;font-size:16px;letter-spacing:2px;margin-bottom:8px}.hero-name{color:#fff;font-size:clamp(42px,7vw,80px);font-weight:900;line-height:1.05;margin:0 0 12px;text-shadow:0 0 40px #00f5a026}.hero-badge{align-items:center;display:flex;gap:4px;margin-bottom:20px;min-height:36px}.hero-cursor{animation:blink 1s step-end infinite;color:#00f5a0;font-size:24px}.hero-role{color:#00f5a0;font-size:22px;font-weight:600}.hero-sub{color:#94a3b8;font-size:16px;line-height:1.7;margin-bottom:32px;max-width:460px}.highlight{color:#00f5a0;font-weight:700}.hero-btns{display:flex;flex-wrap:wrap;gap:16px}.hero-visual{align-items:center;display:flex;flex:0 0 300px;justify-content:center}.btn-primary{background:linear-gradient(135deg,#00f5a0,#00d4aa);border:none;border-radius:6px;box-shadow:0 0 20px #00f5a04d;color:#050a0f;cursor:pointer;font-family:inherit;font-size:15px;font-weight:700;padding:12px 28px;transition:opacity .2s,transform .1s}.btn-primary:hover{opacity:.88;transform:translateY(-1px)}.btn-primary:disabled{cursor:not-allowed;opacity:.6}.btn-outline{background:#0000;border:1.5px solid #00f5a0;border-radius:6px;color:#00f5a0;cursor:pointer;display:inline-block;font-family:inherit;font-size:15px;font-weight:700;padding:12px 28px;text-decoration:none;transition:background .2s}.btn-outline:hover,.btn-resume{background:#00f5a014}.btn-resume{border:1.5px solid #00f5a066;border-radius:6px;color:#00f5a0;cursor:pointer;display:inline-block;font-family:inherit;font-size:15px;font-weight:700;padding:12px 24px;text-decoration:none;transition:background .2s}.btn-resume:hover{background:#00f5a026}.photo-frame{align-items:center;cursor:pointer;display:flex;height:260px;justify-content:center;position:relative;transition:transform .35s cubic-bezier(.34,1.56,.64,1);width:260px}.photo-frame:hover{transform:translateY(-14px) scale(1.04)}.profile-photo{border:3px solid #00f5a099;border-radius:50%;box-shadow:0 0 0 6px #00f5a014,0 20px 60px #0009;height:220px;object-fit:cover;object-position:center top;position:relative;transition:box-shadow .35s ease;width:220px;z-index:3}.photo-frame:hover .profile-photo{box-shadow:0 0 0 6px #00f5a033,0 30px 60px #000000b3}.photo-glow{background:radial-gradient(circle at 50% 50%,#00f5a026 0,#0000 70%);border-radius:50%;height:220px;position:absolute;width:220px;z-index:2}.photo-ring-1{animation:spin 12s linear infinite;border:1.5px dashed #00f5a04d;border-radius:50%;height:248px;position:absolute;width:248px;z-index:1}.photo-ring-2{animation:spin 20s linear infinite reverse;border:1px dashed #00f5a01f;border-radius:50%;height:275px;position:absolute;width:275px;z-index:1}.photo-overlay{align-items:center;animation:overlayIn .2s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000d9;display:flex;inset:0;justify-content:center;position:fixed;z-index:200}.photo-modal{animation:modalIn .3s cubic-bezier(.34,1.56,.64,1);background:#0b1520;border:1px solid #00f5a026;border-radius:20px;max-width:340px;padding:32px 32px 24px;position:relative;text-align:center;width:90%}.photo-modal-img{border:3px solid #00f5a080;border-radius:50%;box-shadow:0 0 40px #00f5a033;display:block;height:220px;margin:0 auto 16px;object-fit:cover;object-position:center top;width:220px}.photo-modal-name{color:#fff;font-size:20px;font-weight:900;margin:0 0 4px}.photo-modal-sub{color:#00f5a0;font-size:13px;margin:0}.section{margin:0 auto;max-width:1100px;padding:80px 60px;position:relative;z-index:1}.section-title{align-items:center;display:flex;gap:16px;margin-bottom:48px}.section-label{color:#00f5a0;font-size:14px;font-weight:900;opacity:.7}.section-h2{color:#fff;font-size:clamp(28px,4vw,42px);font-weight:900;margin:0}.section-line{background:linear-gradient(90deg,#00f5a04d,#0000);flex:1 1;height:1px}.about-grid{align-items:flex-start;display:flex;flex-wrap:wrap;gap:48px}.about-card{align-items:center;background:#00f5a00d;border:1px solid #00f5a01a;border-radius:16px;display:flex;flex:0 0 200px;flex-direction:column;gap:16px;padding:32px;transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s ease}.about-card:hover{box-shadow:0 24px 50px #00000080,0 0 0 1px #00f5a033;transform:translateY(-14px) scale(1.03)}.about-avatar{font-size:64px}.about-badges{display:flex;flex-direction:column;gap:8px;width:100%}.badge{background:#00f5a014;border:1px solid #00f5a033;border-radius:20px;color:#00f5a0;font-size:12px;font-weight:600;padding:6px 12px;text-align:center}.about-text{flex:1 1;min-width:260px}.about-p{color:#94a3b8;font-size:15px;line-height:1.8;margin-bottom:16px}.about-p strong{color:#00f5a0}.stats-row{display:flex;flex-wrap:wrap;gap:32px;margin-top:24px}.stat{align-items:center;display:flex;flex-direction:column}.stat-num{color:#00f5a0;font-size:28px;font-weight:900}.stat-label{color:#64748b;font-size:12px;margin-top:2px}.edu-section{margin-top:32px}.edu-title{color:#00f5a0;font-size:12px;font-weight:700;letter-spacing:2px;margin-bottom:20px;text-transform:uppercase}.edu-timeline{border-left:2px solid #00f5a033;display:flex;flex-direction:column;margin-left:6px;padding-left:20px}.edu-item{align-items:flex-start;display:flex;gap:12px;margin-bottom:20px;position:relative}.edu-dot{background:#00f5a0;border:2px solid #050a0f;border-radius:50%;box-shadow:0 0 8px #00f5a099;height:10px;left:-27px;position:absolute;top:6px;width:10px}.edu-info{flex:1 1}.edu-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:2px}.edu-level{color:#e2e8f0;font-size:14px;font-weight:700}.edu-pct{color:#00f5a0;font-size:14px;font-weight:800}.edu-school{color:#94a3b8;font-size:13px;margin-bottom:2px}.edu-year{color:#475569;font-size:11px;letter-spacing:1px}.skills-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.skill-card{background:#ffffff05;border:1px solid #00f5a014;border-radius:12px;padding:24px;transition:transform .32s cubic-bezier(.34,1.56,.64,1),box-shadow .32s ease,border-color .2s}.skill-card:hover{border-color:#00f5a040;box-shadow:0 20px 45px #00000073,0 0 0 1px #00f5a02e;transform:translateY(-12px) scale(1.03)}.skill-cat{color:#00f5a0;font-size:12px;font-weight:700;letter-spacing:3px;margin-bottom:16px;text-transform:uppercase}.skill-tags{display:flex;flex-wrap:wrap;gap:8px}.skill-tag{background:#00f5a00f;border:1px solid #00f5a026;border-radius:20px;color:#e2e8f0;font-size:13px;padding:5px 12px}.projects-grid{grid-gap:28px;display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.project-card{background:#ffffff05;border:1px solid #ffffff0f;border-radius:12px;cursor:pointer;padding:28px;transition:transform .32s cubic-bezier(.34,1.56,.64,1),box-shadow .32s ease}.project-card:hover{box-shadow:0 28px 60px #00000080,0 0 0 1px #00f5a02e;transform:translateY(-14px) scale(1.025)}.project-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.project-icon{font-size:32px}.project-tag{border:1px solid;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:1px;padding:3px 10px}.project-name{color:#fff;font-size:24px;font-weight:900;margin:0 0 12px}.project-desc{color:#94a3b8;font-size:14px;line-height:1.7;margin-bottom:20px}.project-techs{display:flex;flex-wrap:wrap;gap:8px}.project-tech{border-radius:20px;font-size:12px;font-weight:600;padding:4px 12px}.modal-overlay{align-items:center;animation:overlayIn .2s ease;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000bf;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:200}.modal{animation:modalIn .3s cubic-bezier(.34,1.56,.64,1);background:#0b1520;border:1px solid #ffffff14;border-radius:16px;max-height:88vh;max-width:560px;overflow-y:auto;padding:36px 40px;position:relative;width:100%}.modal-close{align-items:center;background:#ffffff0f;border:none;border-radius:50%;color:#94a3b8;cursor:pointer;display:flex;font-size:14px;height:32px;justify-content:center;position:absolute;right:16px;top:16px;transition:background .2s;width:32px}.modal-close:hover{background:#ffffff1f}.modal-header{align-items:center;display:flex;gap:20px;margin-bottom:20px}.modal-icon{font-size:52px}.modal-title{font-size:32px;font-weight:900;margin:6px 0 0}.modal-divider{border-radius:1px;height:1px;margin-bottom:20px}.modal-desc{color:#94a3b8;font-size:15px;line-height:1.8}.modal-desc,.modal-section{margin-bottom:24px}.modal-section-title{font-size:12px;font-weight:700;letter-spacing:2px;margin-bottom:12px;text-transform:uppercase}.modal-list{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.modal-list-item{align-items:flex-start;color:#cbd5e1;display:flex;font-size:14px;line-height:1.6}.modal-tech-badge{border-radius:20px;display:inline-block;font-size:13px;font-weight:600;margin-bottom:8px;margin-right:8px;padding:5px 14px}.modal-footer{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.contact-wrap{align-items:flex-start;display:flex;flex-wrap:wrap;gap:60px}.contact-info{flex:1 1 260px}.contact-heading{color:#fff;font-size:26px;font-weight:900;margin-bottom:12px}.contact-sub{color:#94a3b8;font-size:15px;line-height:1.7;margin-bottom:28px}.contact-links{display:flex;flex-direction:column;gap:14px}.contact-link-row{align-items:center;color:#94a3b8;cursor:pointer;display:flex;font-size:14px;gap:12px;text-decoration:none;transition:color .2s}.contact-link-row:hover,.contact-link-row:hover .contact-link-text{color:#00f5a0}.contact-link-text{color:#e2e8f0;transition:color .2s}.contact-form{display:flex;flex:1 1 300px;flex-direction:column;gap:14px}.form-input{background:#ffffff08;border:1px solid #00f5a026;border-radius:8px;box-sizing:border-box;color:#e2e8f0;font-family:inherit;font-size:14px;outline:none;padding:12px 16px;transition:border-color .2s;width:100%}.form-input:focus{border-color:#00f5a080}.form-textarea{height:120px;resize:vertical}.form-success{background:#00f5a014;border:1px solid #00f5a04d;border-radius:8px;color:#00f5a0}.form-error,.form-success{font-size:14px;padding:12px 16px}.form-error{background:#ff505014;border:1px solid #ff50504d;border-radius:8px;color:#ff6b6b}.footer{border-top:1px solid #00f5a014;padding:32px 20px;position:relative;text-align:center;z-index:1}.footer-text{color:#475569;font-size:13px}.footer-text span{color:#00f5a0}.floating-nav{animation:overlayIn .3s ease;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#050a0feb;border:1px solid #00f5a026;border-radius:40px;bottom:28px;box-shadow:0 8px 32px #00000080,0 0 0 1px #00f5a00d;display:flex;gap:4px;left:50%;padding:6px 10px;position:fixed;transform:translateX(-50%);z-index:150}.floating-nav-btn{background:none;border:none;border-radius:30px;color:#64748b;cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;letter-spacing:.5px;padding:6px 14px;transition:background .2s,color .2s;white-space:nowrap}.floating-nav-btn:hover{color:#e2e8f0}.floating-nav-btn.active{background:#00f5a01f;color:#00f5a0}@media (max-width:768px){.nav{padding:14px 20px}.nav-links{display:none}.hamburger{display:block}.hero{padding:40px 24px}.section{padding:60px 24px}.about-card,.hero-visual{flex:0 0 100%}.hero-visual{justify-content:center}.contact-wrap{gap:32px}}@media (max-width:480px){.hero{padding:32px 16px}.section{padding:48px 16px}.modal{padding:24px 20px}.stats-row{gap:20px}}
/*# sourceMappingURL=main.110f8b49.css.map*/