.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:#3d2a5c;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(17,10,30,.8);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,0);backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);display:flex;justify-content:center;align-items:center;z-index:2000;padding:2rem;cursor:pointer;transition:background .3s ease,backdrop-filter .3s ease,-webkit-backdrop-filter .3s ease}.popup-wrapper.popup-visible{background:rgba(0,0,0,.88);backdrop-filter:blur(30px) brightness(.4);-webkit-backdrop-filter:blur(30px) brightness(.4)}.popup-page{position:relative;width:min(1800px,75vw);max-height:90vh;background:#1a1028;border:1px solid rgba(157,0,255,.2);border-radius:20px;display:flex;flex-direction:column;overflow:hidden;cursor:default;box-shadow:0 0 0 1px #9d00ff1a,0 40px 120px -20px #000000f2,0 0 80px #9d00ff26,0 0 200px -50px #9d00ff1a;opacity:0;transform:scale(.92) translateY(20px);transition:opacity .3s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1)}.popup-page.popup-page-visible{opacity:1;transform:scale(1) translateY(0)}.popup-close-button{position:absolute;right:1rem;top:1rem;z-index:10;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:50%;color:#ffffffb3;cursor:pointer;transition:all .2s ease;padding:0}.popup-close-button:hover{background:rgba(157,0,255,.3);border-color:var(--accent);color:#fff;transform:rotate(90deg)}.popup-container{display:flex;flex-direction:column;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(157,0,255,.3) transparent}.popup-hero-viewport{position:relative;flex-shrink:0;overflow:hidden}.popup-hero{display:grid;grid-template-columns:1fr 1fr;gap:2px;flex-shrink:0}.popup-hero-dots{display:none}.popup-image{width:100%;aspect-ratio:16 / 10;object-fit:cover;display:block;cursor:zoom-in;transition:filter .2s ease}.popup-image:hover{filter:brightness(1.15)}.popup-body{padding:1.75rem 2rem 2rem;display:flex;flex-direction:column;gap:1rem}.popup-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.popup-caption{font-size:clamp(1.5rem,3.5vw,2.25rem);font-weight:800;color:var(--text-main);margin:0;line-height:1.15}.popup-year{font-size:.85rem;font-weight:600;color:var(--accent-secondary);white-space:nowrap;opacity:.8;flex-shrink:0}.popup-tags{display:flex;flex-wrap:wrap;gap:.5rem}.popup-tag{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:.3rem .75rem;border-radius:100px;background:rgba(157,0,255,.1);border:1px solid rgba(157,0,255,.2);color:var(--accent-secondary)}.popup-text{font-size:1rem;line-height:1.65;color:#ffffffb3;margin:0}.popup-link-button{display:inline-flex;align-items:center;align-self:flex-start;gap:.6rem;padding:.6rem 1.25rem;background:transparent;border:1px solid rgba(255,255,255,.15);border-radius:10px;color:#fff;text-decoration:none;font-size:.9rem;font-weight:600;transition:all .25s ease;margin-top:.25rem}.popup-link-button:hover{background:rgba(157,0,255,.15);border-color:var(--accent);box-shadow:0 0 20px #9d00ff26;transform:translateY(-1px)}.popup-link-button img{width:18px;height:18px;opacity:.9}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000;background:rgba(0,0,0,0);display:flex;align-items:center;justify-content:center;cursor:zoom-out;transition:background .25s ease}.lightbox-overlay.lightbox-visible{background:rgba(0,0,0,.95)}.lightbox-image{max-width:92vw;max-height:92vh;object-fit:contain;border-radius:8px;opacity:0;transform:scale(.9);transition:opacity .25s ease,transform .25s cubic-bezier(.16,1,.3,1)}.lightbox-visible .lightbox-image{opacity:1;transform:scale(1)}.lightbox-close{position:absolute;top:1.5rem;right:1.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);border-radius:50%;color:#fffc;cursor:pointer;transition:all .2s ease;padding:0}.lightbox-close:hover{background:rgba(255,255,255,.2);color:#fff}@media (max-width: 768px){.popup-wrapper{padding:0;align-items:flex-end}.popup-page{width:100%;max-height:95vh;border-radius:20px 20px 0 0;transform:translateY(100%);opacity:1}.popup-page.popup-page-visible{transform:translateY(0)}.popup-hero{display:flex;gap:0;transform:translate(calc(var(--active-slide) * -100%));transition:transform .3s cubic-bezier(.25,1,.5,1)}.popup-hero .popup-image{min-width:100%;aspect-ratio:16 / 9}.popup-hero-dots{display:flex;justify-content:center;gap:.5rem;padding:.75rem 0;position:absolute;bottom:0;left:0;right:0}.popup-hero-dot{width:7px;height:7px;border-radius:50%;border:none;padding:0;background:rgba(255,255,255,.35);cursor:pointer;transition:all .2s ease}.popup-hero-dot.active{background:#fff;transform:scale(1.3)}.popup-body{padding:1.25rem 1.25rem 2rem}.popup-header{flex-direction:column;gap:.25rem}.popup-caption{font-size:1.4rem}.popup-text{font-size:.9rem;line-height:1.5}}.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: #110a1e;--bg-card: rgba(30, 20, 45, .85);--accent: #9d00ff;--accent-secondary: #b66dff;--accent-glow: rgba(157, 0, 255, .15);--accent-secondary-glow: rgba(192, 132, 252, .15);--text-main: white;--text-secondary: rgba(255, 255, 255, .9);--glass-bg: rgba(255, 255, 255, .03);--glass-border: rgba(255, 255, 255, .1);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,#110a1e,#1a0e2e,#140b25,#110a1e);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;scrollbar-gutter:stable}.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)}
