:root{--bg: #08110d;--bg-footer: #0f1f17;--card: rgba(16, 185, 53, .08);--accent: #42fc61;--accent-2: #22c55e;--accent-3: #6ee77e;--text: #edfdec;--muted: #9daf9c;--border: rgba(16, 185, 44, .25)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:Inter,sans-serif;line-height:1.6}section{padding:120px 10%}h2{font-size:2.5rem;margin-bottom:20px}.btn{position:absolute;margin-top:5vh;padding:1.2vh 4vw;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#fff;font-size:2vh;text-decoration:none;transition:transform .4s ease,box-shadow .4s ease}.btn:hover{transform:translateY(-.6vh);box-shadow:0 1.8vh 5vh #10b92699}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(20vw,1fr));gap:2vh}.card{background:var(--card);padding:3vh;border-radius:1.6vh;border:.1vh solid var(--border);transition:transform .3s,box-shadow .3s}.card:hover{transform:translateY(-.6vh);box-shadow:0 2.5vh 6vh #10b91059}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:#1e1e1e;border-radius:6px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--accent),var(--accent-2));border-radius:6px;border:3px solid #1e1e1e}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--accent-2),var(--accent-3))}*{scrollbar-width:thin;scrollbar-color:var(--accent) rgb(15,29,16)}#projects{padding:7vh 6vw;color:var(--text)}#projects h2{text-align:center;font-size:2.5rem;margin-bottom:4vh;font-weight:700;letter-spacing:.05em}.projects-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2vw}@media(max-width:1400px){.projects-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:1024px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.projects-grid{grid-template-columns:1fr}.project-card{margin-top:1vh}}.project-card{position:relative;background:linear-gradient(180deg,#ffffff0b,#ffffff04);border:.1vh solid rgba(255,255,255,.08);border-radius:2vh;padding:2vh;display:flex;flex-direction:column;overflow:hidden;transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}.project-card:before{content:"";position:absolute;inset:0;background:radial-gradient(50vw 25vh at 50% 0%,rgba(34,197,94,.18),transparent 70%);opacity:0;transition:opacity .35s ease;pointer-events:none}.project-card:hover:before{opacity:1}.project-card:hover{transform:translateY(-1vh) scale(1.02);box-shadow:0 2vh 4vh #00000073;border-color:#22c55e59}.project-card img{width:100%;height:25vh;object-fit:cover;border-radius:1.5vh;margin-bottom:1.5vh;transition:transform .4s ease,filter .4s ease}.project-card:hover img{transform:scale(1.05);filter:saturate(1.1)}.project-card h3{font-size:2vh;margin-bottom:.5vh;color:#22c55e;font-weight:600}.project-card p{font-size:1.6vh;color:var(--muted);line-height:2.2vh;margin-bottom:2vh}.project-actions{margin-top:auto;display:flex;gap:1vw}.project-btn{--green-light: #22c55e;--green-dark: #15803d;position:relative;flex:1;padding:1vh 2vw;border-radius:5vh;font-size:1.6vh;font-weight:500;text-align:center;text-decoration:none;color:var(--text);background:#ffffff08;border:.1vh solid rgba(255,255,255,.12);overflow:hidden;z-index:1;transition:color .25s ease,transform .25s ease}.project-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--green-light),var(--green-dark));transform:translateY(100%);transition:transform .45s cubic-bezier(.4,0,.2,1);z-index:-1}.project-btn:after{content:"";position:absolute;inset:0;border-radius:5vh;padding:.2vh;background:linear-gradient(to bottom,var(--green-light),transparent,var(--green-dark));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transform:scaleY(0);transform-origin:top;transition:transform .45s cubic-bezier(.4,0,.2,1),opacity .3s ease;pointer-events:none}.project-btn:hover{color:#fff;transform:translateY(-1vh)}.project-btn:hover:before{transform:translateY(0)}.project-btn:hover:after{opacity:1;transform:scaleY(1)}.hero{display:flex;justify-content:space-between;align-items:center;min-height:100vh;padding:0 10vw;gap:4vw;flex-wrap:wrap}.hero-left{max-width:45%}.hero-left h1{font-size:clamp(2rem,8vw,5.5rem);font-weight:700;letter-spacing:-.03em;line-height:1.1}.hero-left .typing{background:linear-gradient(90deg,#4ade80,#22c55e,#16a34a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;display:inline}.hero-left .cursor{display:inline-block;width:.7rem;margin-left:.3rem;animation:blink 1s infinite;vertical-align:bottom}.hero-left p{margin-top:1rem;font-size:clamp(.9rem,2vw,1.2rem);color:var(--muted)}.hero-right{max-width:45%;width:100%}.code-window{width:70vh;max-width:100%;background:#1e1e1e;border-radius:1vh;padding:2.5vh 2.5vw;font-family:Source Code Pro,monospace;font-size:.8rem;color:#d4d4d4;min-height:40vh;overflow:hidden;box-shadow:.5vh .5vh 1.5vh #0006;transition:.5s ease-in-out}.code-window:hover{transform:scale(1.05);box-shadow:1.5vh 1.5vh 2.5vh #000c}.code-line{line-height:2.3vh}.code-line .keyword{color:#569cd6}.code-line .string{color:#ce9178}.code-line .symbol{color:#d4d4d4}.code-line .comment{color:#6a9955;font-style:italic}@keyframes blink{0%,50%,to{opacity:1}25%,75%{opacity:0}}.contact-circle{--green-light: #22c55e;--green-dark: #15803d;margin-top:5.2vh;margin-left:32vh;width:5.5vh;height:5.5vh;border-radius:5vh;border:.15vh solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:hidden;background:#ffffff08;z-index:1;transition:color .25s ease,transform .25s ease,width .5s cubic-bezier(.68,-.55,.27,1.55),border-radius .5s ease}.contact-circle:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--green-light),var(--green-dark));transform:translateY(100%);transition:transform .45s cubic-bezier(.4,0,.2,1);z-index:-1;border-radius:5vh}.contact-circle:after{content:"";position:absolute;inset:0;border-radius:5vh;padding:.2vh;background:linear-gradient(to bottom,var(--green-light),transparent,var(--green-dark));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transform:scaleY(0);transform-origin:top;transition:transform .45s cubic-bezier(.4,0,.2,1),opacity .3s ease;pointer-events:none}.contact-circle .main-icon{color:var(--green-light);font-size:2vh;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transition:all .4s ease;z-index:2}.contact-circle.open{width:22vh;border-radius:2.5vh;display:flex;align-items:center;justify-content:center;gap:1.5vh;padding:0 2vh}.contact-circle.open .main-icon{opacity:0;transform:translate(-50%,-50%) scale(.8) rotate(-90deg)}.contact-icons{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) translateY(-20px);display:flex;gap:1.5vh;align-items:center;justify-content:center;pointer-events:none;opacity:0;z-index:1;transition:transform .5s cubic-bezier(.68,-.55,.27,1.55),opacity .5s ease}.contact-circle.open .contact-icons{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) translateY(0)}.contact-icons a,.contact-icons .contact-close{width:4vh;height:4vh;border-radius:50%;display:flex;align-items:center;text-decoration:none;justify-content:center;color:var(--green-light);font-size:1.8vh;background:#22c55e0d;opacity:0;transform:translateY(-20px) scale(.8) rotate(0);transition:transform .4s cubic-bezier(.68,-.55,.27,1.55),opacity .4s ease,color .3s ease,background .3s ease}.contact-circle.open .contact-icons a,.contact-circle.open .contact-icons .contact-close{opacity:1;transform:translateY(0) scale(1) rotate(0)}.contact-circle.open .contact-icons a:hover,.contact-circle.open .contact-icons .contact-close:hover{color:#fff;background:transparent;transform:translateY(-5%) scale(1.3) rotate(10deg)}.contact-circle:not(.open):hover{transform:translateY(-1vh)}.contact-circle:not(.open):hover:before{transform:translateY(0)}.contact-circle:not(.open):hover:after{opacity:1;transform:scaleY(1)}.contact-icons a:nth-child(1){transition-delay:.05s}.contact-icons a:nth-child(2){transition-delay:.1s}.contact-icons a:nth-child(3){transition-delay:.15s}.contact-icons .contact-close{transition-delay:.2s}@media(max-width:1024px){.hero{padding:20vh 2vw 10vh 1vw;gap:4vh}.hero-left h1{font-size:clamp(2.5rem,8vw,3.2rem);margin-bottom:1rem;text-align:center}.hero-left p{font-size:clamp(.8rem,3vw,1.1rem);text-align:center;margin-bottom:2rem}.code-window{width:100%;font-size:.42rem;min-height:45vh;padding:2.5vh 3vw;margin-top:2vh;margin-bottom:5vh}.contact-circle{width:8.5vw;height:8.5vw;border-radius:50%;margin-left:15vh;margin-top:7.8vh}.contact-circle .main-icon{font-size:4vw}.btn{padding:1.2vh 2vw}.hero-left .cursor{width:.5rem;margin-left:.2rem}}@media(max-width:640px){.hero{padding:30vh 5vw 10vh 5vw;gap:4vh;flex-direction:column}.hero-left h1{font-size:clamp(2.5rem,7vw,2.2rem);margin-bottom:1rem;text-align:center}.hero-left p{font-size:clamp(.8rem,3vw,1.1rem);text-align:center;margin-bottom:2rem}.code-window{width:100%;font-size:.45rem;min-height:35vh;padding:2.5vh 3vw;margin-top:2vh;margin-bottom:5vh}.contact-circle{width:11vw;height:11vw;border-radius:50%;margin-left:15vh;margin-top:9.2vh}.contact-circle .main-icon{font-size:4vw}.hero-left .cursor{width:.5rem;margin-left:.2rem}.btn{margin-left:-5vh;padding:1.2vh 2vw}}.nav{position:fixed;top:0;left:0;width:100%;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:3vh 5vw;background:#fff0;-webkit-backdrop-filter:blur(2vh);backdrop-filter:blur(2vh);transition:all .4s ease}.nav.scrolled{background:#080c06a1;padding:1vh 5vw;box-shadow:0 6px 18px #00000059}.logo-container{cursor:pointer;display:flex;align-items:center}.logo{height:5vh;width:auto;transition:transform .25s ease}.logo-container:hover .logo,.logo.clicked{transform:scale(1.1)}.nav-links{display:flex;gap:3vw;list-style:none;position:relative}.nav-links li{position:relative}.nav-links li a{font-size:1.6vh;font-family:Poppins,sans-serif;color:var(--text);text-decoration:none;padding:.5vh 0;transition:color .3s ease,transform .3s ease}.nav-links li a:hover{color:var(--accent-2);transform:translateY(-1px)}.link-indicator{position:absolute;bottom:-4px;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform:scaleX(0);transform-origin:left;transition:transform .35s ease}.link-indicator.visible{transform:scaleX(1)}.nav.scrolled .nav-links li a{color:#fff}.nav.scrolled .link-indicator.visible{background:linear-gradient(90deg,var(--accent-2),var(--accent))}.lang-wrapper{position:relative}.lang-button{width:4.5vh;height:4.5vh;border-radius:50%;border:.15vh solid rgba(255,255,255,.12);background:#ffffff0d;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:transform .25s ease,background .25s ease}.lang-button:hover{transform:scale(1.05);background:#22c55e1a}.lang-flag{width:100%;height:100%;object-fit:cover;border-radius:50%}.lang-dropdown{position:absolute;top:6vh;right:0;background:#000000f2;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-radius:1vh;box-shadow:0 4px 15px #0003;list-style:none;padding:.5vh 0;min-width:12vh;z-index:100}.lang-item{display:flex;align-items:center;gap:.5vh;padding:.5vh 1vh;cursor:pointer;transition:background .2s ease}.lang-item:hover{background:#5f5f5f1f}.lang-item-flag{width:2vh;height:1.5vh;object-fit:cover;border-radius:2px}#skills{padding:8vh 6vw;color:var(--text);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}#skills h2{font-size:clamp(1.8rem,6vw,2.5rem);text-align:center;margin-bottom:10vh;font-weight:700}.skills-grid{display:flex;flex-direction:column;gap:20vh}.skill-card{display:flex;justify-content:center;width:100%}.skill-content{display:flex;align-items:center;gap:12vw;max-width:70vw;flex-wrap:wrap}.skill-0 .skill-content,.skill-2 .skill-content{flex-direction:row}.skill-1 .skill-content,.skill-3 .skill-content{flex-direction:row-reverse}.progress-circle{width:18vw;max-width:25vh;height:18vw;max-height:25vh;overflow:visible}.circle-bg{stroke:#20202059;stroke-width:1}.circle-progress{fill:none;stroke-width:1;stroke-linecap:round;transition:stroke-dashoffset .3s ease-out,filter .3s ease-out}.circle-percent{font-size:.35rem;fill:#ffffffe5;font-weight:400;font-family:Poppins,sans-serif;text-shadow:0 0 .15vh #ffffffc9}.circle-name{font-size:.25rem;fill:#ffffffe5;font-weight:300;font-family:Poppins,sans-serif;text-shadow:0 0 .1vh #ffffffc9}.skill-description{font-size:clamp(.9rem,2vw,1.2rem);color:#ffffffc5;max-width:25vw;text-align:left;font-family:Poppins,sans-serif}@media(max-width:1024px){.skill-content{gap:8vw;max-width:85vw}.skill-description{max-width:35vw;font-size:clamp(.9rem,2vw,1rem);text-align:center}.progress-circle{width:20vw;height:20vw}}@media(max-width:640px){.skills-grid{gap:10vh}.skill-content{flex-direction:column!important;gap:5vh;max-width:95vw}.progress-circle{width:40vw;height:40vw}.skill-description{max-width:90vw;text-align:center;font-size:clamp(.8rem,3vw,1rem)}#skills h2{font-size:clamp(1.5rem,8vw,2rem);margin-bottom:6vh}}footer{background:linear-gradient(180deg,#ffffff0b,#ffffff04);-webkit-backdrop-filter:blur(1.5vh);backdrop-filter:blur(1.5vh);color:#fff;padding:4vh 6vw;font-family:Inter,sans-serif;border-top:.5vh solid rgba(34,197,94,.35);display:flex;justify-content:center}footer .container{max-width:1280px;width:100%;display:flex;flex-direction:column;align-items:center;gap:2.5vh}footer .footer-info,footer .footer-extra{text-align:center;line-height:2.2vh;font-size:1.8vh}footer .links{display:flex;gap:2vw;flex-wrap:wrap;justify-content:center;align-items:center;margin:2vh 0}footer .links a{--green-light: #22c55e;--green-dark: #15803d;position:relative;display:flex;align-items:center;justify-content:center;gap:.8vh;padding:1.5vh 2.5vw;border-radius:3vh;font-size:1.8vh;font-weight:600;text-decoration:none;color:#fff;background:#ffffff08;border:.1vh solid rgba(255,255,255,.08);overflow:hidden;transition:transform .35s ease,color .35s ease}footer .links a:before{content:"";position:absolute;inset:0;border-radius:3vh;background:linear-gradient(135deg,var(--green-light),var(--green-dark));transform:translateY(100%);z-index:-1;transition:transform .4s cubic-bezier(.4,0,.2,1)}footer .links a:after{content:"";position:absolute;inset:0;border-radius:3vh;background:linear-gradient(to bottom,var(--green-light),transparent,var(--green-dark));opacity:0;transform:scaleY(0);transform-origin:top;transition:transform .45s cubic-bezier(.4,0,.2,1),opacity .3s ease;pointer-events:none}footer .links a:hover{color:#fff;transform:translateY(-.7vh) scale(1.05)}footer .links a:hover:before{transform:translateY(0)}footer .links a:hover:after{opacity:1;transform:scaleY(1)}footer .links a i{font-size:1.8vh;transition:color .35s ease}footer .links a:hover i{animation:gentleSwing 2s infinite ease-in-out;color:#fff}@keyframes gentleSwing{0%{transform:rotate(-4deg) translate(-1px)}25%{transform:rotate(4deg) translate(1px)}50%{transform:rotate(-3deg) translate(-2px)}75%{transform:rotate(3deg) translate(2px)}to{transform:rotate(-4deg) translate(-1px)}}@media(min-width:768px){footer .container{flex-direction:column;justify-content:center;align-items:center;text-align:center}footer .footer-info,footer .footer-extra{text-align:center}footer .links{justify-content:center}}.about{position:relative;padding:14vh 8vw;opacity:0;transform:translateY(70px);transition:all 1.2s cubic-bezier(.16,1,.3,1)}.about.visible{opacity:1;transform:translateY(0)}.about-bg-grid{position:absolute;inset:0;background-image:linear-gradient(to right,rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.03) 1px,transparent 1px);background-size:80px 80px;pointer-events:none;-webkit-mask-image:radial-gradient(circle at 50% 30%,black 40%,transparent 75%);mask-image:radial-gradient(circle at 50% 30%,black 40%,transparent 75%)}.about-container{position:relative;max-width:1400px;margin:0 auto;display:grid;grid-template-columns:1fr 1.5fr;gap:6vw;z-index:2}.about-left{position:sticky;top:16vh}.about-tag{display:inline-block;padding:.4vh 1vw;border-radius:5vh;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:#22c55e;background:#22c55e1a;box-shadow:0 0 25px #22c55e40;margin-bottom:2vh}.about h2{font-size:2.5rem;line-height:1.15;margin-bottom:2vh}.about h2 span{color:#22c55e}.about-subtitle{font-size:1.15rem;color:#ffffffb0;max-width:28vw}.about-card{background:linear-gradient(180deg,#ffffff0f,#ffffff05);-webkit-backdrop-filter:blur(1vh);backdrop-filter:blur(1vh);border-radius:2.4vh;padding:4.5vh 4vw;border:1px solid rgba(255,255,255,.08);box-shadow:0 30px 80px #0009,inset 0 0 0 1px #ffffff05}.about-card p{font-size:1.05rem;line-height:1.9;color:#fffc;margin-bottom:2.8vh}.about-card strong{color:#fff;font-weight:600}.about-highlight{margin-top:3vh;padding-left:1.5vw;border-left:3px solid #22c55e;color:#fff;text-shadow:0 0 .2vh rgba(255,255,255,.4)}@media(max-width:1024px){.about{padding:10vh 5vw}.about-left{position:static}.about h2{font-size:2rem}.about-subtitle{max-width:40vw}.about-container{grid-template-columns:1fr;gap:4vw}.about-card{padding:3vh 3vw}.about-highlight{padding-left:.5vw;margin-top:2vh}}@media(max-width:640px){.about{padding:10vh 5vw}.about h2{font-size:1.75rem;text-align:center}.about-subtitle{max-width:100%;text-align:center}.about-left{position:static;text-align:center}.about-card{padding:3vh 3vw}.about-highlight{padding-left:.5vw;margin-top:2vh}}
