.fade-in{opacity:0;transition:opacity 1s ease-in-out}.fade-in.visible{opacity:1}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-dark)}::-webkit-scrollbar-thumb{background:#333;border-radius:5px;border:2px solid var(--bg-dark)}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.app-container{overflow-x:hidden}.nav{position:fixed;top:0;left:0;width:100%;height:80px;display:flex;justify-content:center;align-items:center;background:rgba(10,10,10,.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--glass-border);transition:all .4s cubic-bezier(.4,0,.2,1);z-index:1000;padding:0 2rem}.nav.small{height:60px}.nav-items{display:flex;gap:1rem}.nav-element{position:relative;padding:.5rem 1.5rem;font-size:1.1rem;font-weight:500;color:var(--text-secondary);text-decoration:none;transition:color .3s ease;cursor:pointer}.nav-element:after{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--accent);box-shadow:0 0 10px var(--accent);transition:all .3s ease;transform:translate(-50%)}.nav-element:hover{color:var(--accent)}.nav-element:hover:after{width:60%;background:var(--accent);box-shadow:0 0 10px var(--accent)}@media (max-width: 768px){.nav{height:60px}.nav-element{padding:.5rem 1rem;font-size:.9rem}}.about-container{height:92vh;display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden;background:radial-gradient(circle at 20% 30%,var(--accent-glow) 0%,transparent 50%),radial-gradient(circle at 80% 70%,var(--accent-secondary-glow) 0%,transparent 50%);padding:1rem;padding-top:80px}.about-info{display:grid;grid-template-columns:1fr 1.2fr;align-items:center;text-align:left;max-width:1200px;gap:6vw;z-index:2}.about-image-container{position:relative;width:100%;aspect-ratio:1;max-width:450px;justify-self:center;border-radius:100%;padding:4px;background:linear-gradient(45deg,var(--accent) 0%,#fff 50%,var(--accent-secondary) 100%);box-shadow:0 0 40px var(--accent-glow),0 0 60px var(--accent-secondary-glow);transition:all .5s cubic-bezier(.175,.885,.32,1.275)}.about-image-wrapper{width:100%;height:100%;border-radius:inherit;overflow:hidden;background:var(--bg-dark)}.about-image{width:100%;height:100%;object-fit:cover;transition:all .5s ease;opacity:0;transform:scale(1.1)}.about-image.loaded{opacity:1;transform:scale(1)}.about-name{font-size:clamp(2.5rem,6vw,6rem);font-weight:700;letter-spacing:-.02em;margin:0;background:linear-gradient(to right,#fff 5%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 30px var(--accent-glow));line-height:.95}.about-line{height:4px;background:linear-gradient(to right,var(--accent),var(--accent-secondary));box-shadow:0 0 20px var(--accent-glow);margin:1.5rem 0;border-radius:2px}.about-bio{font-size:clamp(1rem,1.8vw,1.5rem);font-weight:500;color:var(--text-main);max-width:500px;line-height:1.3}.about-logo-container{display:flex;gap:2rem;margin-top:2rem}.about-logo-container img{height:2.8rem;width:auto;transition:all .4s cubic-bezier(.175,.885,.32,1.275);filter:brightness(.8) grayscale(.5)}.about-logo-container img:hover{transform:scale(1.1);filter:brightness(1.2) grayscale(0) drop-shadow(0 0 15px var(--accent-secondary))}@media (max-width: 1024px){.about-info{grid-template-columns:1fr;text-align:center;gap:2rem}.about-line{width:80px;text-align:center;justify-self:center}.about-image-container{justify-self:center;max-width:300px}.about-name{padding-top:1vh;font-size:clamp(2.5rem,10vw,5rem);text-align:center}.about-bio,.about-logo-container{text-align:center;margin-left:auto;margin-right:auto;justify-content:center}}.projects-wrapper{background:var(--bg-dark);padding:2rem 2rem 6rem;position:relative;border-top:1px solid var(--glass-border)}.projects-arrow-container{display:flex;justify-content:center;margin-bottom:2rem}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.projects-arrow{height:1.5rem;animation:bounce 2s infinite;cursor:pointer;filter:drop-shadow(0 0 5px var(--accent))}.projects-container{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;max-width:1200px;margin:0 auto}@media (max-width: 1024px){.projects-container{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.projects-container{grid-template-columns:1fr;gap:2rem}}.project{position:relative;background:var(--bg-card);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:24px;padding:1.5rem;transition:all .5s cubic-bezier(.23,1,.32,1);overflow:hidden;cursor:pointer}.project:hover{transform:scale(1.05);border-color:var(--accent);box-shadow:0 30px 60px -20px var(--accent-secondary-glow),0 0 50px var(--accent-glow)}.project-image{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:16px;margin-bottom:1.5rem;transition:all .6s cubic-bezier(.23,1,.32,1);filter:brightness(.8) contrast(1.1)}.project:hover .project-image{transform:scale(1.05);filter:brightness(1) contrast(1.2)}.project-caption{font-size:1.75rem;font-weight:800;color:var(--text-main);margin-bottom:.6rem;text-align:left;transition:color .3s ease}.project:hover .project-caption{background:linear-gradient(to right,#fff,var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.project-technology{font-size:.85rem;font-weight:700;color:var(--accent-secondary);text-transform:uppercase;letter-spacing:2px;text-align:left;opacity:.8}@media (max-width: 1024px){.project{border-color:var(--accent)}}.popup-wrapper{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.85);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);display:flex;justify-content:center;align-items:center;z-index:2000;padding:1.25rem;box-sizing:border-box;cursor:pointer}.popup-page{position:relative;width:min(85vw,1600px);max-height:min(85vh,1600px);background:var(--bg-dark);border:1px solid var(--glass-border);border-radius:24px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 0 100px var(--accent-secondary-glow),0 0 50px var(--accent-glow);padding:clamp(1rem,2vw,2rem);box-sizing:border-box;border-color:var(--accent);cursor:default}.popup-container{display:flex;flex-direction:column;align-items:flex-start;min-height:0;overflow-y:auto;padding-right:.5rem;scrollbar-width:thin;scrollbar-color:var(--accent) var(--bg-dark)}.popup-caption{font-size:clamp(1.75rem,4vw,3rem);font-weight:800;margin-bottom:1rem;color:var(--text-main);text-align:left;line-height:1.1}.popup-image-container{display:flex;gap:1rem;margin-bottom:1.25rem;width:100%;flex-shrink:0;align-items:stretch}.popup-image{width:100%;flex:1;min-width:0;aspect-ratio:16 / 10;max-height:min(30vh,300px);border-radius:12px;object-fit:cover;object-position:center;border:1px solid var(--glass-border)}.popup-text{font-size:1.15rem;line-height:1.55;color:var(--text-secondary);margin-bottom:1.25rem;text-align:left;width:100%}.popup-info-row{display:flex;gap:2rem;margin-bottom:1.25rem;flex-wrap:wrap}.popup-technology,.popup-year{font-size:1rem;font-weight:600;color:var(--accent)}.popup-close-button{position:absolute;right:1.25rem;top:1.25rem;width:32px;height:32px;cursor:pointer;transition:transform .3s ease;filter:brightness(.8)}.popup-close-button:hover{transform:rotate(90deg);filter:brightness(1) drop-shadow(0 0 5px var(--accent))}.popup-link-button{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;background:var(--accent);color:#fff;border-radius:8px;text-decoration:none;font-weight:600;transition:all .3s ease;box-shadow:0 5px 15px var(--accent-glow)}.popup-link-button:hover{transform:translateY(-3px);box-shadow:0 8px 25px var(--accent-glow)}.popup-link-button img{width:24px}@media (max-width: 768px){.popup-wrapper{padding:.75rem}.popup-page{width:100%;max-width:92vw;max-height:calc(100vh - 1.5rem);padding:1rem}.popup-image-container{flex-direction:column;gap:.5rem;margin-bottom:1rem}.popup-image{aspect-ratio:16 / 9;max-height:24vh}.popup-caption{font-size:1.5rem;margin-bottom:.75rem}.popup-text{font-size:.9rem;margin-bottom:1rem;line-height:1.4}}.resume-container{background:var(--bg-dark);padding:4rem 2rem;border-top:1px solid var(--glass-border)}.resume-info{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:800px;margin:0 auto}.resume-name{font-size:clamp(2.5rem,6vw,4rem);font-weight:800;margin-bottom:-1rem;background:linear-gradient(135deg,#fff,var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.resume-line{width:100px;height:6px;background:linear-gradient(to right,var(--accent),var(--accent-secondary));margin:2rem;border-radius:3px;box-shadow:0 0 20px var(--accent-glow)}.resume-bio{font-size:1.25rem;line-height:1.8;color:var(--text-secondary);color:#fff}.resume-hint{font-size:1.1rem;color:var(--text-main);margin-bottom:1.5rem;font-weight:500}.resume-download-button{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1.25rem 2.5rem;font-weight:800;font-size:1.1rem;background:transparent;color:#fff;border:1px solid transparent;background-image:linear-gradient(var(--bg-dark),var(--bg-dark)),linear-gradient(135deg,var(--accent),var(--accent-secondary));background-origin:border-box;background-clip:padding-box,border-box;cursor:pointer;font-family:Poppins,sans-serif;transition:all .4s cubic-bezier(.175,.885,.32,1.275);border-radius:12px;text-decoration:none}.resume-download-button:hover{background:linear-gradient(135deg,var(--accent),var(--accent-secondary));transform:scale(1.05);box-shadow:0 30px 50px -5px var(--accent-secondary-glow),0 0 50px var(--accent-glow)}.resume-download-icon{height:1.5rem;filter:brightness(1)}.resume-download-button:hover .resume-download-icon{filter:brightness(0) invert(1)}@media (max-width: 768px){.resume-bio{font-size:1.1rem}}.contact-container{background:var(--bg-dark);padding:4rem 2rem;border-top:1px solid var(--glass-border)}.contact-info{display:flex;flex-direction:column;align-items:center;text-align:center}.contact-caption{font-size:clamp(2.5rem,6vw,4rem);font-weight:800;background:linear-gradient(135deg,#fff,var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.contact-line{width:100px;height:6px;background:linear-gradient(to right,var(--accent),var(--accent-secondary));margin:1.5rem 0 3rem;border-radius:3px;box-shadow:0 0 20px var(--accent-glow)}.contact-form{display:flex;flex-direction:column;width:100%;max-width:550px;background:var(--bg-card);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);padding:3.5rem;border-radius:24px;position:relative;overflow:hidden}.form-group{width:100%;margin-bottom:2rem}.form-group label{font-size:.9rem;font-weight:600;margin-bottom:.75rem;display:block;text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px}.form-group input,.form-group textarea{width:100%;padding:1rem;font-size:1rem;color:var(--text-main);background:rgba(255,255,255,.03);border:1px solid var(--glass-border);border-radius:8px;outline:none;transition:all .3s ease;font-family:Poppins,sans-serif}.form-group input:focus,.form-group textarea:focus{border-color:var(--accent);background:rgba(255,107,0,.05);box-shadow:0 0 15px var(--accent-glow)}.form-group textarea{resize:none;height:150px}.contact-send-button{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1.25rem 2.5rem;font-weight:800;font-size:1.2rem;background:transparent;color:#fff;border:1px solid var(--accent);cursor:pointer;font-family:Poppins,sans-serif;transition:all .4s cubic-bezier(.175,.885,.32,1.275);border-radius:12px;box-shadow:0 10px 20px var(--accent-glow)}.contact-send-button:hover{background:linear-gradient(135deg,var(--accent),var(--accent-secondary));transform:scale(1.05);box-shadow:0 30px 50px -5px var(--accent-secondary-glow),0 0 50px var(--accent-glow)}.contact-send-icon{height:1.5rem;filter:brightness(0) invert(1)}.form-submit-message{margin-top:1.5rem;font-size:1rem;color:var(--accent);font-weight:600}@media (max-width: 768px){.contact-form{padding:2rem}}*{box-sizing:border-box}:root{font-family:Poppins,sans-serif;--bg-dark: #030008;--bg-card: rgba(15, 10, 20, .8);--accent: #9d00ff;--accent-secondary: #b66dff;--accent-glow: rgba(157, 0, 255, .12);--accent-secondary-glow: rgba(192, 132, 252, .12);--text-main: white;--text-secondary: white;--glass-bg: rgba(255, 255, 255, .01);--glass-border: rgba(255, 255, 255, .06);color-scheme:dark;color:var(--text-main);background-color:var(--bg-dark);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}@keyframes mesh-gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.vibrant-bg{background:linear-gradient(-45deg,#030008,#0f001a,#080015,#030008);background-size:400% 400%;animation:mesh-gradient 20s ease infinite}.text-gradient{background:linear-gradient(135deg,#fff 20%,var(--accent) 70%,var(--accent-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-size:200% auto}.text-gradient:hover{background-position:right center;transition:all .5s ease}::selection{background:var(--accent);color:#fff}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--bg-dark);color:var(--text-main);overflow-x:hidden}html{scroll-behavior:smooth}.dflex{display:flex}.glass{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border)}.neon-shadow{box-shadow:0 0 15px var(--accent-glow)}
