*{margin:0;padding:0;box-sizing:border-box}body{margin:0;font-family:Inter,-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;overflow-x:hidden;background:#0a0a0a;color:#fff;cursor:url(/cursor.png) 3 3,auto}a,button,input[type=button],input[type=submit],.project-card,.interest-link,.interest-popup-close{cursor:url(/pointer.png) 3 3,pointer}.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#667eea,#764ba2,#ff6b6b);transform-origin:0%;z-index:10001;box-shadow:0 0 10px #667eea80}.custom-cursor,.custom-cursor-ring{display:none}.app{position:relative;width:100%;min-height:100vh}#projects,#skills,#experience{scroll-margin-top:80px}.hero{position:relative;height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-content{position:relative;z-index:10;text-align:center;padding:2rem}.hero h1{font-family:Orbitron,sans-serif;font-size:5rem;font-weight:900;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:1rem;text-shadow:0 0 40px rgba(102,126,234,.3);letter-spacing:2px}.hero h2{font-family:Orbitron,sans-serif;font-size:2rem;font-weight:400;color:#a0a0a0;margin-bottom:2rem;letter-spacing:1px}.hero-subtitle{font-size:1.2rem;color:gray;margin-bottom:3rem}.scroll-indicator{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);color:#667eea;font-size:2rem;animation:bounce 2s infinite}@keyframes bounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-10px)}}.intro-textbox{position:relative;max-width:1000px;width:90%;margin:0 auto 3rem;padding:2rem 2.5rem;background:#0a0a0ab3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:2px solid transparent;border-radius:12px;box-shadow:0 0 20px #667eea4d,0 0 40px #764ba233,inset 0 0 20px #667eea0d;z-index:100;animation:glow-pulse 3s ease-in-out infinite}.intro-textbox:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;background:linear-gradient(135deg,#667eea,#764ba2,#ff6b6b,#667eea);background-size:300% 300%;border-radius:12px;z-index:-1;animation:gradient-rotate 4s linear infinite}.intro-textbox:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0a0a0ae6;border-radius:10px;z-index:-1}@keyframes glow-pulse{0%,to{box-shadow:0 0 20px #667eea4d,0 0 40px #764ba233,inset 0 0 20px #667eea0d}50%{box-shadow:0 0 30px #667eea80,0 0 60px #764ba24d,inset 0 0 30px #667eea1a}}@keyframes gradient-rotate{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.intro-textbox-text{font-family:Orbitron,sans-serif;font-size:1.15rem;line-height:1.8;color:#e0e0e0;margin:0;text-shadow:0 0 10px rgba(102,126,234,.3);font-weight:500;letter-spacing:.5px}.intro-textbox-cursor{display:inline-block;width:2px;height:1.2em;background:linear-gradient(135deg,#667eea,#764ba2);margin-left:2px;animation:blink 1s step-end infinite;box-shadow:0 0 10px #667eeacc}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.intro-textbox-close{position:absolute;top:8px;left:8px;width:28px;height:28px;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);border-radius:6px;color:#ff6b6b;font-size:16px;font-weight:700;cursor:url(/pointer.png) 3 3,pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;z-index:10;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.intro-textbox-close:hover{background:#ff6b6b33;border-color:#ff6b6b99;box-shadow:0 0 15px #ff6b6b66;transform:scale(1.1)}.intro-textbox-close:active{transform:scale(.95)}@media(max-width:768px){.intro-textbox{max-width:95%;margin-bottom:2rem;padding:1.5rem 1.8rem 1.5rem 2.8rem}.intro-textbox-text{font-size:.95rem;line-height:1.7;letter-spacing:.3px}}.section{position:relative;min-height:100vh;padding:5rem 2rem;display:flex;flex-direction:column;align-items:center;justify-content:center}.section-title{font-family:Orbitron,sans-serif;font-size:3rem;font-weight:700;margin-bottom:1rem;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:center;letter-spacing:1.5px}.section-subtitle{font-size:1.2rem;color:#a0a0a0;margin-bottom:3rem;text-align:center}.projects-container{width:100%;max-width:1400px;padding:2rem}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem;margin-bottom:3rem}.project-card{background:#ffffff0d;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-radius:20px;padding:2rem;border:1px solid rgba(255,255,255,.1);transition:all .3s ease;cursor:url(/pointer.png) 3 3,pointer;position:relative;overflow:hidden}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--project-color, #667eea),transparent)}.project-card:hover{transform:translateY(-10px);box-shadow:0 20px 40px #0000004d;border-color:#fff3}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.project-grade{background:#667eea33;color:#667eea;padding:.3rem .8rem;border-radius:20px;font-weight:700;font-size:.9rem;border:1px solid rgba(102,126,234,.3)}.project-card h3{font-family:Orbitron,sans-serif;font-size:1.5rem;margin-bottom:.5rem;color:#fff;font-weight:600;letter-spacing:.5px}.project-period{font-size:.9rem;color:gray;margin-bottom:1rem}.project-tech{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tech-tag{background:#ffffff1a;padding:.3rem .8rem;border-radius:15px;font-size:.85rem;color:#d0d0d0}.project-description{color:#b0b0b0;line-height:1.6;margin-bottom:1rem}.project-highlights{list-style:none;padding:0;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1);overflow:hidden}.project-highlights li{color:#a0a0a0;font-size:.9rem;padding-left:1.5rem;position:relative;margin-bottom:.5rem}.project-highlights li:before{content:"▸";position:absolute;left:0;color:var(--project-color, #667eea)}.skills-container{width:100%;max-width:1200px;padding:2rem}.skills-category{margin-bottom:3rem}.skills-category h3{font-family:Orbitron,sans-serif;font-size:1.5rem;color:#667eea;margin-bottom:1.5rem;text-transform:uppercase;letter-spacing:2px;font-weight:700}.skills-grid{display:flex;flex-wrap:wrap;gap:1rem}.skill-hold{background:linear-gradient(135deg,#667eea33,#764ba233);border:2px solid rgba(102,126,234,.3);padding:1rem 1.5rem;border-radius:30px;font-weight:600;cursor:url(/cursor.png) 3 3,auto;position:relative}.skill-hold span{position:relative;z-index:1}.experience-container{width:100%;max-width:1000px;padding:2rem}.experience-card{background:#ffffff0d;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-radius:20px;padding:2.5rem;border-left:4px solid #667eea;margin-bottom:2rem;transition:all .3s ease;cursor:url(/pointer.png) 3 3,pointer;position:relative}.experience-card:hover{transform:translate(10px);box-shadow:-10px 10px 30px #667eea33}.experience-card.expanded{border-left-color:#ff6b6b;box-shadow:-10px 10px 40px #667eea4d}.experience-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.experience-card h3{font-family:Orbitron,sans-serif;font-size:1.8rem;color:#fff;margin-bottom:.5rem;font-weight:700;letter-spacing:.5px}.experience-role{font-size:1.2rem;color:#667eea;margin-bottom:.5rem}.experience-period{color:gray;font-size:.9rem}.experience-highlights{list-style:none;padding:0;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.experience-highlights li{color:#b0b0b0;padding-left:1.5rem;position:relative;margin-bottom:.8rem;line-height:1.6}.experience-highlights li:before{content:"●";position:absolute;left:0;color:#667eea}.experience-card .expand-indicator{position:absolute;top:2.5rem;right:2.5rem;width:30px;height:30px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:#fff;transition:all .3s ease}.experience-card:hover .expand-indicator{background:#667eea}.canvas-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0}.scene-3d-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;overflow:hidden;pointer-events:none}.scene-3d-background canvas{width:100%!important;height:100%!important;display:block;pointer-events:none!important}.space-nav{position:fixed;top:0;left:0;right:0;z-index:1100;background:#0a0a0acc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.1);padding:1rem 0}.nav-container{max-width:1400px;margin:0 auto;padding:0 2rem;display:flex;justify-content:center;gap:2rem}.planet-view-nav{justify-content:center}.return-button{margin:0 auto}.space-nav-button{position:relative;background:#ffffff0d;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:2px solid rgba(255,255,255,.1);border-radius:15px;padding:.8rem 1.5rem;cursor:url(/pointer.png) 3 3,pointer;transition:all .3s ease;display:flex;align-items:center;gap:.8rem;overflow:hidden;color:#fff}.space-nav-button:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--item-color, #667eea);transform:scaleY(0);transition:transform .3s ease}.space-nav-button:hover:before{transform:scaleY(1)}.space-nav-button:hover{background:#ffffff26;border-color:var(--item-color, #667eea);box-shadow:0 5px 20px #0000004d}.space-icon{font-size:1.8rem;line-height:1;filter:drop-shadow(0 2px 8px rgba(0,0,0,.3))}.space-label{font-weight:600;font-size:.95rem;letter-spacing:.5px;text-transform:uppercase}.projects-section{position:relative;min-height:100vh;padding:5rem 2rem;display:flex;flex-direction:column;align-items:center;justify-content:center}.section-header{text-align:center;margin-bottom:3rem;padding:0 2rem}.projects-grid-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,500px));gap:2rem;max-width:1400px;width:100%;justify-content:center;padding:0 2rem}.horizontal-project-card{background:#ffffff08;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:20px;padding:2rem;border:1px solid rgba(255,255,255,.1);position:relative;overflow:hidden;transition:all .3s ease;cursor:url(/pointer.png) 3 3,pointer}.horizontal-project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--project-color, #667eea),transparent)}.horizontal-project-card:hover{border-color:#ffffff4d;box-shadow:0 20px 40px #0006;transform:translateY(-5px)}.horizontal-project-card.expanded{border-color:var(--project-color, #667eea);box-shadow:0 20px 60px #00000080}.horizontal-project-card h3{font-family:Orbitron,sans-serif;font-size:1.5rem;margin-bottom:.5rem;color:#fff;position:relative;z-index:1;font-weight:700;letter-spacing:.5px}.expand-indicator{position:absolute;top:2rem;right:2rem;width:30px;height:30px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:#fff;transition:all .3s ease}.horizontal-project-card:hover .expand-indicator{background:var(--project-color, #667eea)}.contact-container{text-align:center;padding:2rem}.contact-links{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap;margin-top:2rem}.contact-link{color:#667eea;text-decoration:none;font-size:1.2rem;padding:1rem 2rem;border:2px solid #667eea;border-radius:30px;transition:all .3s ease;display:flex;align-items:center;gap:.5rem}.contact-link:hover{background:#667eea;color:#fff;transform:scale(1.05)}@media(max-width:768px){body{cursor:auto}.custom-cursor,.custom-cursor-ring{display:none}.nav-container{padding:0 1rem;gap:1rem}.space-nav-button{padding:.7rem 1.2rem}.space-icon{font-size:1.5rem}.space-label{font-size:.85rem}.hero h1{font-size:3rem}.hero h2{font-size:1.5rem}.section-title{font-size:2rem}.projects-grid{grid-template-columns:1fr}.experience-header{flex-direction:column}.projects-grid-container{grid-template-columns:1fr;padding:0 1rem}.horizontal-project-card{padding:1.5rem}.expand-indicator{top:1.5rem;right:1.5rem}.skill-hold{font-size:.9rem;padding:.8rem 1.2rem}}@media(max-width:480px){.space-nav{padding:.8rem 0}.nav-container{padding:0 .5rem;gap:.5rem;flex-wrap:wrap}.space-nav-button{padding:.6rem 1rem;gap:.5rem}.space-icon{font-size:1.3rem}.space-label{font-size:.75rem}.hero h1{font-size:2rem}.hero h2{font-size:1.2rem}.hero-subtitle{font-size:1rem}.section-title{font-size:1.8rem}.horizontal-project-card{padding:1.2rem}.horizontal-project-card h3{font-size:1.3rem}.expand-indicator{top:1.2rem;right:1.2rem;width:25px;height:25px;font-size:1.2rem}}.planet-screen{position:fixed;top:0;left:0;width:100%;height:100vh;display:flex;align-items:center;justify-content:center;z-index:50;overflow:hidden;touch-action:none}.planet-screen-content{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.planet-screen-title{font-family:Orbitron,sans-serif;font-size:3rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:2rem;text-align:center;letter-spacing:2px}.planet-screen-hint{font-family:Orbitron,sans-serif;font-size:1rem;color:#a0a0a0;margin-top:2rem;text-align:center;animation:pulse-opacity 2s ease-in-out infinite}@keyframes pulse-opacity{0%,to{opacity:.6}50%{opacity:1}}.interest-planet-container{position:relative;width:100%;height:100vh;overflow:visible}.interest-planet-container canvas{background:transparent!important;width:100%!important;height:100%!important}.interest-button-content{background:#0a0a0acc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid var(--interest-color, #667eea);border-radius:20px;padding:1rem 1.5rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;transition:all .3s ease;box-shadow:0 0 20px var(--interest-color, #667eea)}.interest-orbit-button:hover .interest-button-content{background:#141414f2;box-shadow:0 0 30px var(--interest-color, #667eea);transform:scale(1.1)}.interest-button-icon{font-size:2rem;filter:drop-shadow(0 0 10px var(--interest-color, #667eea))}.interest-button-label{font-family:Orbitron,sans-serif;font-size:.9rem;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:1px}.interest-popup-overlay{position:fixed;top:70px;left:0;width:100%;height:calc(100% - 70px);background:transparent;display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:1.5rem;padding-top:5vh;box-sizing:border-box}.interest-popup{position:relative;max-width:600px;max-height:calc(90vh - 70px);width:90%;padding:2rem 2.5rem;background:#0a0a0ae6;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:2px solid var(--popup-color, #667eea);border-radius:20px;box-shadow:0 0 30px var(--popup-color, #667eea),0 0 60px #667eea4d,inset 0 0 30px #667eea1a;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}.interest-popup:before{content:"";position:fixed;top:-3px;right:-3px;bottom:-3px;left:-3px;background:linear-gradient(135deg,var(--popup-color, #667eea),#764ba2,var(--popup-color, #667eea));background-size:300% 300%;border-radius:20px;z-index:-1;animation:gradient-rotate 4s linear infinite}.interest-popup-close{position:absolute;top:8px;right:8px;width:44px;height:44px;background:#ff6b6b26;border:1px solid rgba(255,107,107,.4);border-radius:8px;color:#ff6b6b;font-size:20px;font-weight:700;cursor:url(/pointer.png) 3 3,pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;z-index:10}.interest-popup-close:hover{background:#ff6b6b4d;border-color:#ff6b6bb3;box-shadow:0 0 15px #ff6b6b80;transform:scale(1.1)}.interest-popup-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid rgba(255,255,255,.1)}.interest-popup-icon{font-size:3rem;filter:drop-shadow(0 0 15px var(--popup-color, #667eea))}.interest-popup-title{font-family:Orbitron,sans-serif;font-size:2rem;font-weight:700;color:var(--popup-color, #667eea);letter-spacing:1px;margin:0}.interest-popup-description{font-size:1.1rem;line-height:1.8;color:#e0e0e0;margin-bottom:1.5rem}.interest-popup-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.1)}.interest-popup-subtitle{font-family:Orbitron,sans-serif;font-size:1.3rem;font-weight:600;color:var(--popup-color, #667eea);margin-bottom:1rem}.interest-popup-info{font-size:1.1rem;color:#e0e0e0;margin-bottom:1rem}.interest-popup-embed{margin-top:1.5rem;border-radius:12px;overflow:hidden;border:2px solid rgba(255,255,255,.1);max-width:100%}.interest-popup-embed iframe{display:block;border-radius:12px;max-width:100%;width:100%!important}.interest-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.8rem}.interest-link{display:inline-block;font-size:1.1rem;color:var(--link-color, #667eea);text-decoration:none;padding:.6rem 1.2rem;border:2px solid var(--link-color, #667eea);border-radius:10px;background:#667eea1a;transition:all .4s cubic-bezier(.4,0,.2,1);font-weight:500;position:relative;overflow:hidden}.interest-link:before{content:"";position:absolute;top:50%;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transform:translateY(-50%);transition:left .6s ease}.interest-link:after{content:"→";position:absolute;right:1rem;opacity:0;transform:translate(-10px);transition:all .4s cubic-bezier(.4,0,.2,1)}.interest-link:hover{background:var(--link-color, #667eea);color:#fff;transform:translate(8px) scale(1.03);box-shadow:0 0 30px var(--link-color, #667eea),0 0 60px #667eea66,0 8px 20px #0000004d;border-color:#ffffff80}.interest-link:hover:before{left:100%}.interest-link:hover:after{opacity:0;transform:translate(0)}.link-preview{position:fixed;width:300px;max-width:400px;border-radius:12px;overflow:hidden;border:2px solid var(--preview-color);box-shadow:0 0 30px var(--preview-color),0 8px 20px #0006;z-index:1200;pointer-events:none}.link-preview img{width:100%;height:auto;display:block}.link-preview-loading,.link-preview-error{width:100%;height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0a0a0ae6}.link-preview-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--preview-color);border-radius:50%;animation:spinner-rotate .8s linear infinite}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.link-preview-error{color:#e0e0e0;text-align:center;padding:1rem}.link-preview-error span{font-size:3rem;margin-bottom:.5rem;opacity:.5}.link-preview-error p{font-size:.9rem;margin:0;opacity:.7}@media(max-width:768px){.planet-screen-title{font-size:2rem;padding:0 1rem}.interest-planet-container{height:50vh}.interest-button-content{padding:.8rem 1.2rem}.interest-button-icon{font-size:1.5rem}.interest-button-label{font-size:.8rem}.interest-popup-overlay{padding:1rem;padding-top:2vh}.interest-popup{padding:1.5rem;max-width:100%;width:95%;max-height:calc(95vh - 70px)}.interest-popup-title{font-size:1.5rem}.interest-popup-description{font-size:.95rem;line-height:1.6}.interest-popup-subtitle{font-size:1.1rem}.interest-popup-section{margin-top:1.5rem;padding-top:1rem}.interest-link{font-size:1rem;padding:.5rem 1rem}.interest-popup-icon{font-size:2.5rem}.link-preview{width:250px;max-width:calc(100vw - 2rem)}.link-preview-loading,.link-preview-error{height:150px}.link-preview-spinner{width:30px;height:30px}}@media(max-width:480px){.interest-popup{padding:1.25rem;width:98%}.interest-popup-header{gap:.75rem;margin-bottom:1rem;padding-bottom:1rem}.interest-popup-title{font-size:1.3rem}.interest-popup-icon{font-size:2rem}.interest-popup-description{font-size:.9rem}.interest-popup-subtitle{font-size:1rem}.interest-link{font-size:.95rem;word-break:break-word}.link-preview{width:200px}}
