:root{--white: #ffffff;--black: #000000;--green: #b7ff00;--gray: #f2f2f2;--muted: #888;--font-display: "Bebas Neue", sans-serif;--font-body: "DM Sans", sans-serif;--font-mono: "Space Mono", monospace;--ease: cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);background:var(--white);color:var(--black);overflow-x:hidden;cursor:none}a{text-decoration:none;color:inherit}img{display:block;max-width:100%}#cursor{position:fixed;width:12px;height:12px;background:var(--green);border-radius:50%;pointer-events:none;z-index:999999;transform:translate(-50%,-50%);transition:width .2s var(--ease),height .2s var(--ease);mix-blend-mode:multiply}#cursor.expand{width:48px;height:48px}nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.25rem 4rem;background:#ffffffe0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.06);transition:padding .3s var(--ease)}nav.scrolled{padding:.85rem 4rem}.nav-logo{font-family:var(--font-display);font-size:1.6rem;letter-spacing:.04em}.nav-logo span{color:var(--green)}.nav-logo a{display:inline-block}.nav-logo img{transition:transform .3s ease}.nav-logo:hover img{transform:scale(1.1)}.nav-links{display:flex;gap:2.5rem;list-style:none}.nav-links a{font-size:.85rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;position:relative;color:var(--muted);transition:color .3s}.nav-links a:after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;background:var(--green);transition:width .3s var(--ease)}.nav-links a:hover,.nav-links a.active{color:var(--black)}.nav-links a:hover:after,.nav-links a.active:after{width:100%}.nav-cta{background:var(--black);color:var(--white);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;padding:.6rem 1.4rem;border:2px solid var(--black);position:relative;overflow:hidden;transition:color .3s;display:inline-flex;align-items:center;justify-content:center}.nav-cta:after{content:"";position:absolute;inset:0;background:var(--green);transform:translate(-101%);transition:transform .4s var(--ease);z-index:0}.nav-cta:hover:after{transform:translate(0)}.nav-cta:hover{color:var(--black)}.nav-cta span{position:relative;z-index:1}.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;z-index:200}.hamburger span{display:block;width:28px;height:2px;background:var(--black);transition:transform .3s,opacity .3s}.mobile-nav{position:fixed;inset:0;background:var(--white);z-index:99;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.5rem;transform:translateY(-100%);transition:transform .5s var(--ease)}.mobile-nav.open{transform:none}.mobile-nav a{font-family:var(--font-display);font-size:3rem;letter-spacing:.05em}#hero{height:100vh;padding:6rem 4rem 0rem;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:1rem;overflow:hidden;position:relative}#hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(0,0,0,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.035) 1px,transparent 1px);background-size:60px 60px;pointer-events:none}.hero-text{position:relative;z-index:2;padding-bottom:2rem;margin-top:-6rem}.hero-tag{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:1.5rem}.hero-tag:before{content:"";display:inline-block;width:8px;height:8px;background:var(--green);border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.hero-greeting{font-family:var(--font-body);font-weight:300;font-size:1.2rem;margin-bottom:.5rem;color:var(--muted)}.hero-title{font-family:var(--font-display);font-size:clamp(5em,3.5vw,3.8rem);line-height:1.1;letter-spacing:.02em;margin-bottom:1.5rem;overflow:hidden}.hero-title .line{display:block;overflow:hidden;padding-bottom:6px}.hero-title .line span{display:block;transform:translateY(110%);animation:slideUp .9s var(--ease) forwards}.text-green{color:var(--black);font-size:clamp(1.5em,5vw,3.8rem);position:relative;display:inline-block;z-index:1}.text-green:before{content:"";position:absolute;height:40%;bottom:2px;left:-10px;right:-10px;background-image:url(/stroke.png);background-size:contain;background-repeat:no-repeat;background-position:center;z-index:-1}.hero-title .line:nth-child(1) span{animation-delay:.1s}.hero-title .line:nth-child(3) span{animation-delay:.4s}@keyframes slideUp{to{transform:translateY(0)}}.hero-subtitle{font-size:1rem;color:var(--muted);max-width:500px;line-height:1.7;margin-bottom:2.5rem;opacity:0;animation:fadeIn .8s var(--ease) .7s forwards}@keyframes fadeIn{to{opacity:1}}.hero-actions{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;opacity:0;animation:fadeIn .8s var(--ease) .9s forwards}.btn-primary{display:inline-flex;align-items:center;gap:.6rem;background:var(--black);color:var(--white);font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.12em;padding:.9rem 2rem;border:2px solid var(--black);position:relative;overflow:hidden;transition:color .3s,border-color .3s}.btn-primary:after{content:"";position:absolute;inset:0;background:var(--green);transform:translate(-101%);transition:transform .4s var(--ease);z-index:0}.btn-primary:hover:after{transform:translate(0)}.btn-primary:hover{color:var(--black);border-color:var(--green)}.btn-primary span,.btn-primary svg{position:relative;z-index:1}.btn-ghost{display:inline-flex;align-items:center;gap:.5rem;background:transparent;color:var(--black);font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;padding:.9rem 2rem;border:2px solid var(--black);position:relative;overflow:hidden;transition:color .3s}.btn-ghost:after{content:"";position:absolute;inset:0;background:var(--green);transform:translate(-101%);transition:transform .4s var(--ease);z-index:0}.btn-ghost:hover:after{transform:translate(0)}.btn-ghost:hover{color:var(--black);border-color:var(--green)}.btn-ghost span{position:relative;z-index:1}.hero-image-wrap{position:relative;z-index:1;align-self:end;justify-self:center;opacity:0;animation:fadeIn .8s var(--ease) .5s forwards;height:calc(100vh - 2rem);display:flex;align-items:flex-end;margin-bottom:-1px}.profile-pic{width:clamp(500px,65vw,1200px);max-height:95vh;object-fit:contain;object-position:bottom center;display:block;transition:transform .4s var(--ease)}.hero-image-wrap:hover .profile-pic{transform:scale(1.02)}.profile-pic-placeholder{width:300px;aspect-ratio:3/4;background:var(--gray);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--muted);font-size:.8rem;font-family:var(--font-mono);text-align:center;border:2px dashed rgba(0,0,0,.15)}.profile-pic-placeholder svg{opacity:.3}.marquee-section{border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(0,0,0,.1);padding:1rem 0;overflow:hidden;background:var(--black);color:var(--white);position:relative;z-index:10}.marquee-track{display:flex;gap:3rem;width:max-content;animation:marquee 22s linear infinite}@keyframes marquee{to{transform:translate(-50%)}}.marquee-item{font-family:var(--font-display);font-size:1.1rem;letter-spacing:.1em;white-space:nowrap;display:flex;align-items:center;gap:3rem}.marquee-item .dot{color:var(--green)}section{padding:7rem 4rem}.section-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--black);display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;font-weight:700}.section-label:before{content:"";display:block;width:32px;height:2px;background:var(--black)}.section-title{font-family:var(--font-display);font-size:clamp(3rem,6vw,5.5rem);line-height:.95;margin-bottom:3rem}#about{background:var(--white)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:center}.about-image-wrap{display:flex;justify-content:center;align-items:center;width:100%}.about-image-wrap img{width:100%;max-width:550px;height:auto;object-fit:contain;transition:transform .4s var(--ease)}.about-image-wrap:hover img{transform:scale(1.05)}.about-text p{font-size:1.05rem;line-height:1.85;color:#333;margin-bottom:1.5rem}.about-skills{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:2rem}.skill-tag{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:.45rem 1rem;border:1.5px solid var(--black);transition:background .25s,color .25s,border-color .25s;cursor:default}.skill-tag:hover{background:var(--green);border-color:var(--green)}#projects{background:var(--gray)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:10px}.project-card{position:relative;background:var(--white);overflow:hidden;border:2px solid rgba(0,0,0,.08);transition:border-color .35s var(--ease);cursor:pointer}.project-card:hover{border-color:var(--green)}.project-img-placeholder{width:100%;aspect-ratio:16/10;background:#e8e8e8;display:flex;align-items:center;justify-content:center;font-size:3rem;color:#bbb;transition:background .4s;overflow:hidden;position:relative}.project-img,.project-img-placeholder img{width:100%;height:100%;aspect-ratio:16/10;object-fit:cover;object-position:top center;display:block;transition:filter .4s var(--ease),transform .5s var(--ease)}.certificate-img{width:100%;height:100%;aspect-ratio:16/10;object-fit:contain;object-position:center;display:block;transition:filter .4s var(--ease),transform .5s var(--ease)}.project-card:hover .project-img,.project-card:hover .project-img-placeholder img,.project-card:hover .certificate-img{transform:scale(1.05)}.project-card:hover .project-img-placeholder{background:#ddd}.project-body{padding:1.5rem}.project-tags{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.8rem}.project-tag{font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;padding:.25rem .6rem;background:var(--gray);color:var(--muted);transition:background .3s,color .3s}.project-card:hover .project-tag{background:var(--green);color:var(--black)}.project-title{font-family:var(--font-display);font-size:1.8rem;margin-bottom:.5rem;line-height:1.1}.project-desc{font-size:.875rem;color:var(--muted);line-height:1.65}.project-arrow{position:absolute;top:1rem;right:1rem;width:36px;height:36px;background:var(--black);color:var(--white);display:flex;align-items:center;justify-content:center;opacity:0;transform:translate(8px,-8px);transition:opacity .3s,transform .3s var(--ease),background .3s}.project-card:hover .project-arrow{opacity:1;transform:translate(0);background:var(--green);color:var(--black)}#contact{background:var(--white)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start}.contact-intro{align-self:start}.contact-intro p{font-size:1.05rem;line-height:1.8;color:#444;margin-bottom:2rem}.contact-email{font-family:var(--font-display);font-size:2rem;display:inline-block;padding-bottom:4px;margin-bottom:2.5rem;transition:letter-spacing .3s}.contact-email:hover{letter-spacing:.02em}.social-links{display:flex;gap:1rem}.social-link{width:44px;height:44px;border:1.5px solid rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;transition:background .3s,border-color .3s,transform .3s}.social-link:hover{background:var(--green);border-color:var(--green);transform:translateY(-4px)}form{display:flex;flex-direction:column;gap:1.25rem;align-self:start;margin:0}.form-group{position:relative}.form-group label{display:block;font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:.5rem}.form-group input,.form-group textarea{width:100%;border:none;border-bottom:1.5px solid rgba(0,0,0,.2);padding:.75rem 0;font-family:var(--font-body);font-size:.95rem;background:transparent;outline:none;transition:border-color .3s;resize:none}.form-group input:focus,.form-group textarea:focus{border-color:var(--green)}.form-group textarea{min-height:120px}.form-line{position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--green);transition:width .4s var(--ease)}.form-group:focus-within .form-line{width:100%}.btn-submit{align-self:flex-start;background:var(--black);color:var(--white);font-family:var(--font-body);font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.12em;padding:1rem 2.5rem;border:2px solid var(--black);cursor:pointer;position:relative;overflow:hidden;transition:color .3s;margin-top:1rem}.btn-submit:after{content:"";position:absolute;inset:0;background:var(--green);transform:translate(-101%);transition:transform .4s var(--ease);z-index:0}.btn-submit:hover:after{transform:translate(0)}.btn-submit:hover{color:var(--black)}.btn-submit span{position:relative;z-index:1}footer{background:var(--black);color:var(--white);padding:2.5rem 4rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.footer-logo{font-family:var(--font-display);font-size:1.4rem}.footer-logo a{display:inline-block}.footer-logo img{transition:transform .3s ease}.footer-logo:hover img{transform:scale(1.1)}.footer-logo span{color:var(--green)}.footer-copy{font-size:.78rem;color:#fff6;font-family:var(--font-mono)}.reveal{opacity:0;transform:translateY(40px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.visible{opacity:1;transform:none}.lightbox-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000000d9;z-index:99999;display:flex;justify-content:center;align-items:center;backdrop-filter:blur(5px)}.lightbox-image{max-width:90%;max-height:90%;border-radius:8px;box-shadow:0 10px 30px #00000080;animation:zoomIn .3s ease}@keyframes zoomIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.close-lightbox{position:absolute;top:30px;right:40px;color:#fff;font-size:40px;font-weight:700;cursor:pointer;transition:color .3s}.close-lightbox:hover{color:var(--green)}@media(max-width:900px){nav{padding:1.1rem 2rem}nav.scrolled{padding:.75rem 2rem}.nav-links{display:none}.hamburger{display:flex}.nav-cta{display:none}#hero{grid-template-columns:1fr;padding:8rem 2rem 0rem;align-items:end}.hero-image-wrap{justify-self:center}.hero-text{padding-bottom:2rem}.hero-title{font-size:clamp(4rem,15vw,7rem)}section{padding:5rem 2rem}.about-grid,.contact-grid{grid-template-columns:1fr;gap:3rem}.about-text{order:-1}.projects-grid{grid-template-columns:1fr}footer{flex-direction:column;text-align:center;padding:2rem}}@media(max-width:480px){.hero-title{font-size:clamp(3.2rem,17vw,5rem)}.section-title{font-size:2.6rem}}
