@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;600;700&family=Inter:wght@300;400;600;700&display=swap";:root{--bg:#f6f4ef;--surface:#fff;--text:#121212;--text-muted:#6b6b6b;--text-strong:#0b0b0b;--border:#1212120f;--shadow:0 10px 30px #0808080f;--accent:#92979b;--accent-2:#bfc4c6;--accent-3:#f7cca7;--accent-4:red;--glass:#12121205;--glass-2:#12121203;--sans:Inter, Satoshi, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--heading:"Space Grotesk", "Clash Display", "General Sans", system-ui, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Monaco, "Roboto Mono", monospace;font:18px/1.6 var(--sans);letter-spacing:.2px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--container-width:1100px;--ease-expo:cubic-bezier(.16, 1, .3, 1)}@media (width<=1024px){:root{font-size:16px}}body{background:var(--bg);min-width:0;margin:0;overflow-x:hidden}*,:before,:after{box-sizing:border-box}a,a:visited{color:inherit;text-decoration:none}html{scroll-behavior:smooth}.social.linkedin:hover{color:#0a66c2}.social.email:hover{color:#16a34a}.social.tiktok:hover{color:#111}.social.instagram:hover{color:#e4405f}.social.x:hover{color:#000}.social.facebook:hover{color:#1877f2}.social.threads:hover{color:#101010}.social.whatsapp:hover{color:#25d366}.social.github:hover{color:#111827}#root{width:min(100%, var(--container-width));box-sizing:border-box;flex-direction:column;max-width:100%;min-height:100svh;margin:0 auto;padding:28px 20px;display:flex;overflow-x:hidden}h1,h2{font-family:var(--heading);color:var(--text-strong);margin:0}h1{letter-spacing:-1px;font-size:56px;font-weight:700}h2{color:var(--sand);font-size:20px;font-weight:600}p{color:var(--text-muted);margin:0}code{font-family:var(--mono);color:var(--sand);background:#ffffff05;border-radius:6px;padding:4px 8px}.container{width:100%;max-width:var(--container-width);margin:0 auto}:target:before{content:"";height:84px;margin-top:-84px;display:block}.scroll-progress-bar{background:linear-gradient(90deg, var(--accent-4), var(--accent-3));z-index:10000;pointer-events:none;width:0%;height:4px;transition:width .1s ease-out;position:fixed;top:0;left:0}@media (hover:hover) and (pointer:fine){body.custom-cursor-active,body.custom-cursor-active a,body.custom-cursor-active button,body.custom-cursor-active [role=button],body.custom-cursor-active .social,body.custom-cursor-active .card,body.custom-cursor-active .embla,body.custom-cursor-active input,body.custom-cursor-active textarea{cursor:none!important}}.app{color:var(--text);min-height:100vh}.nav{z-index:60;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);background:linear-gradient(#ffffff05,#ffffff03);border-radius:12px;justify-content:space-between;align-items:center;gap:20px;padding:8px 14px;display:flex;position:sticky;top:16px}.nav .brand-wrap{align-items:center;gap:10px;min-width:0;display:flex}.nav .brand{font-family:var(--heading);color:var(--text-strong);font-weight:700}.nav .nav-logo{object-fit:contain;border:1px solid var(--border);width:38px;height:38px;box-shadow:var(--shadow);background:#ffffffe6;border-radius:50%;padding:3px}.nav .links{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:18px;min-width:0;display:flex}.nav a{color:var(--text-muted);white-space:nowrap;border-radius:8px;padding:6px 10px}.nav a:hover{color:var(--text-strong);background:var(--glass)}.nav .cta{background:linear-gradient(90deg,var(--accent-2),var(--accent));color:var(--text-strong);box-shadow:var(--shadow);border-radius:8px;padding:8px 12px}.mobile-toggle{cursor:pointer;background:0 0;border:0;padding:8px;display:none}.mobile-toggle .hamburger{background:var(--text-strong);width:22px;height:2px;display:block;position:relative}.mobile-toggle .hamburger:before,.mobile-toggle .hamburger:after{content:"";background:var(--text-strong);height:2px;transition:transform .22s;position:absolute;left:0;right:0}.mobile-toggle .hamburger:before{top:-7px}.mobile-toggle .hamburger:after{top:7px}.mobile-toggle .hamburger.open{background:0 0}.mobile-toggle .hamburger.open:before{transform:translateY(7px)rotate(45deg)}.mobile-toggle .hamburger.open:after{transform:translateY(-7px)rotate(-45deg)}.mobile-menu{background:linear-gradient(#0808080f, #0808080f), var(--accent-2);z-index:80;height:70vh;box-shadow:var(--shadow);-webkit-overflow-scrolling:touch;border:1px solid #12121214;border-radius:12px;flex-direction:column;gap:12px;padding:20px;display:flex;position:fixed;inset:72px 12px 20px;overflow-y:auto}.mobile-menu a{color:#f6f4ef;border-radius:8px;padding:12px;text-decoration:none}.mobile-menu a:hover{background:#ffffff1f}.hero-section{align-items:center;gap:48px;width:100%;max-width:100%;padding:72px 0;display:flex;position:relative}.hero-left,.hero-right{min-width:0}.hero-right{flex:1;justify-content:center;display:flex}.hero h1{margin-bottom:12px;font-size:clamp(36px,6vw,64px);line-height:.95}.tagline{color:var(--accent);margin-bottom:12px;font-weight:600}.hero p{max-width:640px;color:var(--text-muted);margin-bottom:18px;font-weight:400}.hero .actions{gap:12px;display:flex}.btn{cursor:pointer;border:1px solid #0000;border-radius:10px;padding:12px 18px}.btn.primary{background:linear-gradient(90deg,var(--accent-2),var(--accent));color:var(--text-strong);box-shadow:var(--shadow)}.btn.ghost{color:var(--text);background:0 0;border:1px solid #0000000a}.bg-blob{filter:blur(36px);pointer-events:none;background:radial-gradient(circle at 20% 30%,#787d821f,#a0a4a70f 40%,#0000 60%);width:520px;height:520px;position:absolute;top:10%;right:-8%;transform:translateZ(0)}.about,.services,.projects,.tech,.contact,.privacy{padding:130px 0;position:relative}@media (width<=880px){.about,.services,.projects,.tech,.contact,.privacy{padding:80px 0}}section.container>h2{font-family:var(--sans);text-transform:uppercase;letter-spacing:.16em;margin-top:0;margin-bottom:12px;font-size:13px;font-weight:700;color:var(--accent)!important}section.container>h3{font-family:var(--heading);letter-spacing:-.02em;max-width:800px;margin-top:0;margin-bottom:32px;font-size:clamp(28px,4.5vw,42px);font-weight:700;line-height:1.15;color:var(--text-strong)!important}.chips{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.chip{color:var(--text-muted);background:#00000008;border:1px solid #0000000a;border-radius:999px;padding:10px 12px;font-size:15px;font-weight:500}.services-grid{perspective:1200px;grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.card{transform-style:preserve-3d;transition:transform .6s var(--ease-expo), box-shadow .6s var(--ease-expo), filter .6s var(--ease-expo), opacity .6s var(--ease-expo);will-change:transform, box-shadow;background:linear-gradient(#ffffff05,#ffffff03);border:1px solid #ffffff05;border-radius:12px;padding:20px}.card:hover{box-shadow:var(--shadow);transform:translateY(-8px)}.card h3{color:var(--text-strong);margin-top:0;font-weight:700}.card p{color:var(--text-muted);font-weight:400}.projects-grid{perspective:1200px;grid-template-columns:repeat(3,1fr);align-items:start;gap:8px;display:grid}.project{min-width:0;transform-style:preserve-3d;transition:transform .6s var(--ease-expo), box-shadow .6s var(--ease-expo), filter .6s var(--ease-expo), opacity .6s var(--ease-expo);will-change:transform, box-shadow;flex-direction:column;display:flex;overflow:hidden}.project img{object-fit:cover;border-radius:10px;width:100%;height:100%;display:block}.project .meta{flex-direction:column;gap:4px;padding:6px 6px 5px;display:flex}.project .meta h3{color:var(--text-strong);font-weight:700}.project .meta p{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:400;line-height:1.6;display:-webkit-box;overflow:hidden}.project .tech{flex-wrap:wrap;gap:8px;display:flex}.project .project-link{padding-top:1px}.projects-grid:hover .project:not(:hover){filter:saturate(.8)brightness(.92);opacity:.86}.project:hover{box-shadow:var(--shadow);filter:saturate(1.02)brightness();transform:translateY(-6px)scale(1.01)}.tech-row{flex-wrap:nowrap;align-items:center;gap:14px;min-width:0;display:flex;overflow-x:hidden}.tech-card{scroll-snap-align:center;background:var(--surface);border:1px solid var(--border);min-width:200px;box-shadow:var(--shadow);text-align:center;min-height:260px;transition:transform .6s var(--ease-expo), box-shadow .6s var(--ease-expo);will-change:transform, box-shadow;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:18px;min-width:200px;padding:24px;font-size:18px;display:flex}.tech-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px #0000001a}.tech-image{background:#fffffff2;border:1px solid #0000000a;border-radius:18px;justify-content:center;align-items:center;width:100px;height:100px;display:flex;overflow:hidden}.tech-image img{object-fit:cover;width:100%;height:100%;transition:transform .34s;display:block}.tech-card:hover .tech-image img{transform:scale(1.04)}.tech-name{color:var(--text-muted);letter-spacing:.02em;margin-top:0;font-weight:500}.embla__container{align-items:stretch;gap:18px;padding:8px;transition:transform .4s;display:flex}.contact .cta-row{align-items:center;gap:12px;display:flex}.social-grid{border-top:1px solid var(--border);flex-wrap:wrap;gap:12px;margin-top:32px;padding-top:20px;display:flex}.social{color:var(--text-muted);background:#00000008;border-radius:12px;align-items:center;gap:10px;padding:12px 14px;font-size:16px;font-weight:500;display:flex}.social span.icon{width:22px;height:22px;color:var(--accent);justify-content:center;align-items:center;display:inline-flex}.privacy-content{max-width:840px;color:var(--text-muted);gap:14px;margin-top:18px;display:grid}.privacy-content a{color:var(--text-strong);border-bottom:1px solid var(--accent);font-weight:700}.footer{border-top:1px solid var(--border);color:var(--text-muted);justify-content:space-between;padding:28px 0;display:flex}@media (width<=880px){.hero-section{flex-direction:column;padding:40px 0}.services-grid,.projects-grid{grid-template-columns:1fr}.nav{padding:8px}.nav .nav-logo{width:34px;height:34px}.hero p{max-width:100%}.hero-left,.hero-right{width:100%}.hero-right{margin-top:24px}.hero .actions{flex-direction:column;align-items:stretch}.hero .actions .btn{justify-content:center;width:100%;min-width:0}.bg-blob{transform:translateX(-50%) translateY(var(--blob-y,0));width:320px;height:320px;left:50%;right:auto}.footer{flex-direction:column;align-items:flex-start;gap:14px}.mobile-toggle{display:inline-flex}.nav .links{display:none}.mobile-menu{display:flex}}.embla{width:100%;overflow:hidden}.embla__container{align-items:stretch;gap:16px;padding:6px;display:flex}.embla__slide{scroll-snap-align:center;flex:none}.reveal{opacity:0;transition:opacity 1.2s var(--ease-expo), transform 1.2s var(--ease-expo);transition-delay:calc(var(--stagger-index,0) * 80ms);will-change:opacity, transform;transform:translateY(20px)}.reveal.visible{opacity:1;transform:none}.typing{color:var(--accent);padding-right:14px;font-weight:600;position:relative}.typing:after{content:"";background:var(--text-strong);width:2px;height:1.05em;animation:1s step-start infinite blink;position:absolute;top:0;right:4px}@keyframes blink{50%{opacity:0}}.portrait img{-webkit-filter:grayscale();border-radius:16px;transition:filter .22s,transform .22s,box-shadow .22s;display:block}.portrait img:hover{-webkit-filter:grayscale(0%);transform:scale(1.02);box-shadow:0 14px 40px #00000014}.social span.icon{color:var(--accent);transition:color .2s,transform .2s}.social:hover span.icon{color:var(--accent-2);transform:translateY(-3px)}.tech-card .icon svg{width:28px;height:28px}@media (width<=600px){.social{padding:14px 16px;font-size:18px}.social span.icon{width:26px;height:26px}.tech-card{min-width:200px;padding:20px;font-size:18px}.tech-carousel{gap:20px}.btn{padding:10px 14px;font-size:15px}}@media (width<=420px){.btn{padding:8px 12px;font-size:14px}}@media (width<=600px){.footer .btn,.footer a.btn{padding:10px 12px;font-size:15px}}@media (width<=420px){.footer .btn,.footer a.btn{padding:8px 10px;font-size:14px}}@media (width<=600px){.hero .actions,.contact .cta-row,.social-grid,.footer .actions{gap:10px;flex-direction:column!important;align-items:stretch!important}}@media (width<=420px){.hero .actions,.contact .cta-row,.social-grid,.footer .actions{gap:8px}}.custom-cursor{border:1.5px solid var(--text);pointer-events:none;z-index:99999;width:24px;height:24px;transition:width .3s var(--ease-expo), height .3s var(--ease-expo), border-color .3s var(--ease-expo), background-color .3s var(--ease-expo);border-radius:50%;justify-content:center;align-items:center;display:none;position:fixed;top:0;left:0;overflow:hidden;transform:translate(-50%,-50%)}.custom-cursor-dot{background-color:var(--text);pointer-events:none;z-index:100000;border-radius:50%;width:6px;height:6px;display:none;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}@media (hover:hover) and (pointer:fine){.custom-cursor,.custom-cursor-dot{display:flex}}.custom-cursor.hovered{border-color:var(--accent);background-color:#1212120a;width:52px;height:52px}.custom-cursor.blend-mode{mix-blend-mode:difference;background-color:#fff;border-color:#fff}.custom-cursor.project-hover{background-color:var(--text-strong);border-color:var(--text-strong);width:72px;height:72px}.custom-cursor-label{font-family:var(--sans);letter-spacing:.12em;opacity:0;color:var(--bg);pointer-events:none;font-size:10px;font-weight:700;transition:opacity .2s,transform .2s;transform:scale(.6)}.custom-cursor.project-hover .custom-cursor-label{opacity:1;transform:scale(1)}.preloader-overlay{z-index:1000000;will-change:transform;background-color:#0b0b0b;flex-direction:column;justify-content:center;align-items:center;transition:transform 1.2s cubic-bezier(.85,0,.15,1);display:flex;position:fixed;inset:0}.preloader-overlay.hidden{transform:translateY(-100%)}.preloader-content{text-align:center;flex-direction:column;align-items:center;gap:24px;display:flex}.preloader-logo{font-family:var(--heading);color:#f6f4ef;margin:0;font-size:clamp(32px,6vw,56px);font-weight:700;line-height:1.1;overflow:hidden}.preloader-logo span{animation:preloader-logo-reveal 1.2s var(--ease-expo) forwards;display:block;transform:translateY(110%)}.preloader-bar-bg{background:#ffffff1a;border-radius:2px;width:220px;height:2px;position:relative;overflow:hidden}.preloader-bar-progress{background:#f6f4ef;width:0%;height:100%;transition:width .1s ease-out;position:absolute;top:0;left:0}.preloader-percentage{font-family:var(--mono);color:#fff6;letter-spacing:.05em;margin-top:8px;font-size:13px}@keyframes preloader-logo-reveal{to{transform:translateY(0)}}.clip-text-parent{display:block;overflow:hidden}.clip-text-child{transition:transform 1.2s var(--ease-expo);will-change:transform;display:block;transform:translateY(105%)}.clip-text-child.reveal-active{transform:translateY(0)}.btn{z-index:1;transition:border-color .3s,color .3s,transform .2s;position:relative;overflow:hidden}.btn:before{content:"";transform-origin:bottom;width:100%;height:100%;transition:transform .4s var(--ease-expo);z-index:-1;border-radius:inherit;background:#1212120a;position:absolute;top:0;left:0;transform:scaleY(0)}.btn:hover:before{transform-origin:top;transform:scaleY(1)}.btn.primary:before{background:#ffffff1f}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#1212121a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#12121240}.nav{transition:top .4s var(--ease-expo), padding .4s var(--ease-expo), background-color .4s var(--ease-expo), border-color .4s var(--ease-expo), box-shadow .4s var(--ease-expo);will-change:top, padding, background-color, border-color, box-shadow}.nav.scrolled{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f6f4efd9;border-color:#12121214;padding:6px 12px;top:8px;box-shadow:0 10px 30px #0808080d}.nav .links a{position:relative}.nav .links a:after{content:"";background-color:var(--text-strong);transform-origin:100%;height:2px;transition:transform .4s var(--ease-expo);position:absolute;bottom:0;left:10px;right:10px;transform:scaleX(0)}.nav .links a.active:after{transform-origin:0;transform:scaleX(1)}.nav .links a.active{color:var(--text-strong);font-weight:600}.card{position:relative;overflow:hidden}.card-shine{pointer-events:none;background:radial-gradient(240px circle at var(--mouse-x,0px) var(--mouse-y,0px), #ffffff73, #92979b0d 50%, transparent 100%);opacity:0;transition:opacity .4s var(--ease-expo);z-index:1;position:absolute;inset:0}.card:hover .card-shine{opacity:1}.card>:not(.card-shine){z-index:2;position:relative}.bg-blob{animation:22s ease-in-out infinite alternate float}@keyframes float{0%{transform:translateY(var(--blob-y,0)) scale(1) translate(0px, 0px)}50%{transform:translateY(var(--blob-y,0)) scale(1.08) translate(20px, -30px)}to{transform:translateY(var(--blob-y,0)) scale(.95) translate(-20px, 25px)}}.project-img-wrap{background:var(--border);z-index:2;border-radius:10px;width:100%;height:210px;position:relative;overflow:hidden}.project-img-wrap img{object-fit:cover;width:100%;height:100%;transition:transform .8s var(--ease-expo), filter .8s var(--ease-expo);will-change:transform, filter}.project:hover .project-img-wrap img{transform:scale(1.08)translateY(-2px)}.split-word-parent{margin-right:.22em;padding-bottom:.1em;line-height:1.1;display:inline-block;overflow:hidden}.split-word-child{transition:transform .8s var(--ease-expo);will-change:transform;display:inline-block;transform:translateY(110%)}.split-word-child.active{transform:translateY(0)}.heading-reveal{display:block;overflow:hidden}.heading-reveal-char-wrap{vertical-align:bottom;padding-bottom:.08em;display:inline-block;overflow:hidden}.heading-reveal-char{transition:transform .9s var(--ease-expo);will-change:transform;display:inline-block;transform:translateY(110%)}.heading-reveal-char.active{transform:translateY(0)}.hero-section{gap:60px;padding-top:90px;padding-bottom:100px}.hero h1{letter-spacing:-.03em;margin-bottom:20px;font-size:clamp(40px,6.5vw,72px);line-height:1}.tagline{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin-bottom:18px;font-size:13px;font-weight:600}.services-grid{gap:24px}.projects-grid{gap:28px}.card{background:#ffffff08;border:1px solid #1212120d;border-radius:16px;padding:28px 24px}.project .meta{gap:8px;padding:18px 16px 16px}@media (width<=880px){.hero-section{gap:40px;padding-top:60px;padding-bottom:60px}.hero h1{font-size:clamp(34px,9vw,56px)}}
