:root{--bg-main: #0a0a0f;--bg-section: #13131a;--bg-card: #1a1a24;--primary: #6366f1;--primary-hover: #4f46e5;--accent: #ec4899;--text-main: #f8fafc;--text-secondary: #94a3b8;--border-soft: rgba(255,255,255,.08)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%;background:radial-gradient(circle at top,#0b0d1a,#05060f 70%);overscroll-behavior:none}html{scroll-behavior:smooth}body{background:radial-gradient(circle at top left,#1a1a2e,var(--bg-main));color:var(--text-main);font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;overflow-x:hidden;line-height:1.6;position:relative}body:before{content:"";position:fixed;inset:0;background:radial-gradient(circle at 20% 50%,rgba(99,102,241,.12),transparent 55%),radial-gradient(circle at 80% 80%,rgba(236,72,153,.12),transparent 55%);pointer-events:none;z-index:0}body:after{content:"";position:fixed;inset:-50%;background:radial-gradient(circle at center,rgba(99,102,241,.06),transparent 55%);pointer-events:none;z-index:0}.container{max-width:1200px;margin:0 auto;padding:0 6%;position:relative;z-index:1}main{position:relative;z-index:1}.header{position:fixed;top:0;width:100%;z-index:100;background:#0a0a0fd9;-webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%);border-bottom:1px solid var(--border-soft)}.header nav{max-width:1200px;margin:0 auto;padding:0 6%;height:75px;display:flex;align-items:center;justify-content:center;gap:3rem}.header nav a{color:var(--text-secondary);text-decoration:none;font-weight:500;position:relative;font-size:1rem;transition:color .3s}.header nav a:after{content:"";position:absolute;bottom:-5px;left:0;width:0;height:2px;background:linear-gradient(90deg,var(--primary),var(--accent));transition:width .3s ease}.header nav a:hover{color:var(--text-main)}.header nav a:hover:after{width:100%}.section{padding:8rem 6%;max-width:1200px;margin:0 auto}.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-top:75px;position:relative}.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;pointer-events:none;opacity:.6}.hero:before{top:12%;right:-8%;width:380px;height:380px;background:radial-gradient(circle,rgba(99,102,241,.25),transparent 70%);filter:blur(40px)}.hero:after{bottom:18%;left:-6%;width:300px;height:300px;background:radial-gradient(circle,rgba(236,72,153,.2),transparent 70%);filter:blur(35px)}.hero h1{font-size:clamp(2rem,5vw,3.5rem);line-height:1.1;margin-bottom:1.8rem;font-weight:800;max-width:900px;letter-spacing:-1px;z-index:2;position:relative;color:var(--text-secondary)}.hero h1 span{background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:inline-block}.hero p{font-size:clamp(1.1rem,2.2vw,1.35rem);color:var(--text-secondary);max-width:650px;margin:0 auto 3rem;line-height:1.8;z-index:2;position:relative}.hero-greeting{margin-bottom:1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}.hero-greeting span{font-size:1.2rem;color:var(--primary);font-weight:600;letter-spacing:1px;text-transform:uppercase;display:block}.hero-greeting h2{font-size:clamp(3rem,8vw,5.5rem);font-weight:900;line-height:1;margin:0;color:var(--text-main)}.btn-primary{padding:14px 32px;border-radius:10px;text-decoration:none;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:1rem;cursor:pointer;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;border:none;box-shadow:0 4px 18px #6366f159;transition:transform .3s ease,box-shadow .3s ease;position:relative;z-index:2}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 8px 26px #6366f18c}.btn-large{padding:16px 40px;font-size:1.05rem}.section h2{font-size:clamp(2.2rem,5vw,3.5rem);margin-bottom:4rem;text-align:center;font-weight:800}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2.5rem}.project-card{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:20px;overflow:hidden;cursor:pointer;transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;will-change:transform}.project-card:hover{transform:translateY(-10px);box-shadow:0 22px 45px #00000073;border-color:#6366f180}.project-card video,.project-card img{width:100%;height:220px;object-fit:cover;display:block;transition:transform .35s ease;will-change:transform;backface-visibility:hidden}.project-card:hover video,.project-card:hover img{transform:scale(1.06)}.project-info{padding:2rem}.project-info h3{margin-bottom:1rem;font-size:1.5rem;font-weight:700}.project-info p{color:var(--text-secondary);line-height:1.7}.about-section{position:relative;background:radial-gradient(circle at top,rgba(99,102,241,.06),transparent 70%)}.about-container{display:grid;grid-template-columns:1.5fr 1fr;gap:5rem;align-items:start;position:relative;z-index:1}.about-text h2{font-size:clamp(2.2rem,5vw,3.5rem);margin-bottom:2rem;font-weight:800}.about-text p{color:var(--text-secondary);line-height:1.9;margin-bottom:1.5rem;font-size:1.1rem}.about-text strong{color:var(--primary);font-weight:600}.about-skills h3{margin-bottom:2rem;font-size:1.8rem;font-weight:700}.skills-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.skill-tag{padding:14px 24px;border-radius:12px;background:#6366f114;border:1px solid rgba(99,102,241,.2);font-weight:600;text-align:center;font-size:1rem;transition:all .25s ease;cursor:pointer}.skill-tag:hover{transform:translateY(-3px);background:#6366f126;border-color:#6366f166;box-shadow:0 8px 20px #6366f133}.contact-section{text-align:center;padding:8rem 6%}.contact-content{max-width:700px;margin:0 auto}.contact-content h2{font-size:clamp(2.2rem,5vw,3.5rem);margin-bottom:2rem;font-weight:800}.contact-content p{color:var(--text-secondary);font-size:1.2rem;margin-bottom:3rem;line-height:1.8}.social-links{display:flex;justify-content:center;align-items:center;gap:1.5rem;margin-top:3rem;flex-wrap:wrap}.social-links a{text-decoration:none;color:var(--text-secondary);padding:12px 28px;border-radius:10px;border:1px solid var(--border-soft);font-weight:500;font-size:1rem;transition:all .25s ease}.social-links a:hover{color:var(--primary);border-color:var(--primary);background:#6366f114;transform:translateY(-2px)}.footer{text-align:center;padding:2.5rem;background:var(--bg-card);border-top:1px solid var(--border-soft);color:var(--text-secondary);font-size:.95rem}.footer span{color:var(--primary);font-weight:600}.card-media-container{width:100%;height:200px;overflow:hidden;cursor:pointer}.card-media{width:100%;height:100%;object-fit:contain;transition:transform .3s}.short-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;margin-bottom:1rem}.btn-details{background:transparent;border:1px solid var(--primary);color:var(--primary);padding:.6rem 1.2rem;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s;display:block;margin:1.5rem auto 0;width:fit-content}.btn-details:hover{background:var(--primary);color:#fff;transform:translateY(-2px)}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:2000;padding:1.5rem;animation:fadeIn .3s ease}.modal-content{background:var(--bg-card);border:1px solid var(--border-soft);width:100%;max-width:950px;height:90vh;border-radius:20px;position:relative;box-shadow:0 25px 60px #0009;overflow:hidden;display:grid;grid-template-columns:45% 55%}.modal-close-btn{position:absolute;top:1.2rem;right:1.2rem;background:#0009;border:1px solid rgba(255,255,255,.1);color:#fff;width:38px;height:38px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:20;font-size:1.1rem;transition:all .2s}.modal-close-btn:hover{background:var(--primary);transform:rotate(90deg)}.modal-media{width:100%;height:100%;background:#000;position:relative;min-height:300px;display:flex;align-items:center;justify-content:center;cursor:pointer}.image-zoomed{max-width:100%;max-height:100%;object-fit:contain;cursor:grab}.modal-image,.modal-media video{width:100%;height:100%;max-width:85vh;object-fit:contain;display:block;transition:transform .3s ease}.modal-media video{object-fit:cover}.modal-image:hover{transform:scale(1.02)}.modal-image.zoomed{transform:scale(1.8);cursor:zoom-out}.modal-body{padding:3rem 2.5rem;overflow-y:auto;height:100%}.modal-body h2{font-size:2.2rem;line-height:1.1;margin-bottom:1.5rem;background:linear-gradient(135deg,#fff,#94a1b2);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.modal-tags{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:2rem}.modal-tags .tag{padding:8px 16px;border-radius:12px;background:#6366f114;border:1px solid rgba(99,102,241,.2);color:var(--text-main);font-weight:500;font-size:.9rem;transition:all .25s ease}.modal-tags .tag:hover{background:#6366f126;border-color:#6366f166}.modal-description{font-size:1.05rem;line-height:1.8;color:var(--text-secondary);white-space:pre-line;margin-bottom:2.5rem}.modal-footer{margin-top:auto;display:block;margin:1.5rem auto 0;width:fit-content}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.gallery-container{width:100%;height:100%;position:relative;background:#000}.gallery-btn{position:absolute;top:50%;transform:translateY(-50%);background:#00000080;color:#fff;border:none;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .3s;z-index:10}.gallery-btn:hover{background:var(--primary)}.gallery-btn.prev{left:10px}.gallery-btn.next{right:10px}.gallery-dots{position:absolute;bottom:15px;width:100%;display:flex;justify-content:center;gap:8px}.dot{width:8px;height:8px;background:#ffffff80;border-radius:50%}.dot.active{background:var(--primary);transform:scale(1.2)}.image-zoom-overlay{position:fixed;inset:0;background:#000000eb;z-index:9999;display:flex;align-items:center;justify-content:center;padding:2rem}.image-zoom-wrapper{position:relative;max-width:65vw;max-height:65vh}.image-zoomed{max-width:100%;max-height:100%;object-fit:contain;border-radius:14px;box-shadow:0 25px 60px #0009}.zoom-close-btn{position:absolute;top:12px;right:12px;background:#0009;border:none;color:#fff;font-size:1.2rem;padding:.6rem;border-radius:50%;cursor:pointer;z-index:10;transition:background .2s ease,transform .2s ease}.zoom-close-btn:hover{background:#000000d9;transform:scale(1.1)}.contact-actions{display:flex;gap:3rem;justify-content:center;flex-wrap:wrap;margin-bottom:3rem}.btn-whatsapp{background:#25d366;color:#fff;padding:16px 32px;border-radius:10px;text-decoration:none;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:1.05rem;box-shadow:0 4px 15px #25d36666;transition:transform .3s ease,box-shadow .3s ease,background .3s}.btn-whatsapp:hover{transform:translateY(-3px);background:#20bd5a;box-shadow:0 8px 25px #25d36699}.btn-primary svg,.btn-whatsapp svg{font-size:1.2rem}@media(max-width:480px){.contact-actions{flex-direction:column;gap:2rem;align-items:center}.btn-primary,.btn-whatsapp{width:100%;max-width:300px}}@media(max-width:850px){.modal-content{grid-template-columns:1fr;height:80vh}.modal-media{height:280px;flex-shrink:0}.modal-body{height:calc(80vh - 280px);overflow-y:auto}.modal-body h2{font-size:1.7rem}.image-zoom-wrapper{max-width:80vw;max-height:80vh}}@media(max-width:768px){body:before,body:after,.hero:before,.hero:after{display:none}.hero{text-align:center;align-items:center}.hero h1,.hero p{text-align:center}.about-container{grid-template-columns:1fr;gap:3rem}.about-text h2,.about-skills h3{text-align:center}.projects-grid{grid-template-columns:1fr}.section{padding:5rem 5%}.header nav{gap:1.8rem;font-size:.95rem}.skills-grid{grid-template-columns:repeat(2,1fr)}.image-zoom-wrapper{max-width:90vw;max-height:85vh}.zoom-close-btn{top:10px;right:10px;width:40px;height:40px;font-size:1.1rem}}@media(max-width:480px){.section{padding:4rem 5%}.header nav{gap:1.4rem;font-size:.9rem;flex-wrap:wrap;height:auto;padding:1.2rem 5%}.hero{padding-top:100px}.hero h1{font-size:2rem}.hero p{font-size:1rem}.btn-primary{width:100%;max-width:280px}.skills-grid{grid-template-columns:1fr}.social-links{flex-direction:column;gap:1rem}.social-links a{width:100%;max-width:250px}.image-zoom-wrapper{max-width:95vw;max-height:85vh}.zoom-close-btn{top:8px;right:8px;width:36px;height:36px;font-size:1rem}}
