:root{--bg:#02080d;--panel:#03111a;--ink:#f4f7fa;--muted:#9ca8b3;--blue:#0b91ff;--cyan:#08d7e8;--line:rgba(150,180,210,.11)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,Arial,sans-serif;overflow-x:hidden}.noise{position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E")}.section-grid{position:relative;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:100% 170px,160px 100%;background-position:center}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 70% 40%,rgba(10,93,160,.13),transparent 38%),radial-gradient(circle at 20% 80%,rgba(4,57,105,.1),transparent 35%);z-index:-1}.nav{height:92px;position:fixed;z-index:70;top:0;left:0;right:0;padding:26px 4.5vw;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(180deg,rgba(2,8,13,.96),rgba(2,8,13,.55),transparent);transition:transform .6s ease,background .5s}.nav.scrolled{background:rgba(2,8,13,.86);backdrop-filter:blur(16px);box-shadow:0 1px 0 var(--line)}.brand{color:#fff;text-decoration:none;font-size:34px;line-height:.85;letter-spacing:-2px;font-weight:600}.brand b{font-weight:800}.brand small{display:block;font-size:8px;letter-spacing:.3px;font-weight:500;margin-top:8px;color:#dce5ed}.nav-right{display:flex;align-items:center;gap:35px}.nav-location{font-size:9px;letter-spacing:3px;color:#71808b}.menu{width:48px;height:48px;border:0;background:none;display:grid;align-content:center;gap:7px;cursor:pointer}.menu i{height:2px;background:var(--blue);width:44px;display:block;transition:.35s}.menu i:nth-child(2){width:31px;margin-left:auto}.menu:hover i:first-child{transform:translateX(-6px)}.menu:hover i:last-child{transform:translateX(6px)}.menu-panel{position:fixed;inset:0;background:rgba(1,6,10,.985);z-index:80;display:grid;place-items:center;opacity:0;visibility:hidden;clip-path:circle(0 at 96% 8%);transition:clip-path .7s cubic-bezier(.77,0,.18,1),opacity .3s,visibility .3s}.menu-panel.open{opacity:1;visibility:visible;clip-path:circle(150% at 96% 8%)}.close{position:absolute;right:5vw;top:25px;color:#fff;background:none;border:0;font-size:45px;font-weight:200;cursor:pointer;transition:transform .4s}.close:hover{transform:rotate(90deg)}.menu-panel nav{display:flex;flex-direction:column;gap:16px}.menu-panel a{color:#66737e;text-decoration:none;font-size:13px;letter-spacing:3px;display:flex;align-items:center;transform:translateY(25px);opacity:0;transition:color .3s,transform .6s,opacity .6s}.menu-panel.open a{transform:none;opacity:1}.menu-panel.open a:nth-child(1){transition-delay:.15s}.menu-panel.open a:nth-child(2){transition-delay:.22s}.menu-panel.open a:nth-child(3){transition-delay:.29s}.menu-panel.open a:nth-child(4){transition-delay:.36s}.menu-panel.open a:nth-child(5){transition-delay:.43s}.menu-panel a:hover{color:var(--blue)}.menu-panel a span{color:#fff;font-size:clamp(48px,7vw,86px);font-weight:800;letter-spacing:-4px;margin-left:30px}.menu-foot{position:absolute;bottom:35px;left:5vw;font-size:9px;letter-spacing:3px;color:#55616b}.scroll-progress{position:fixed;z-index:75;top:91px;left:4.5vw;right:4.5vw;height:2px;background:rgba(14,75,110,.55)}.scroll-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--cyan),var(--blue));box-shadow:0 0 12px rgba(11,145,255,.5)}.hero{min-height:100svh;padding:150px 4.5vw 60px;overflow:hidden}.hero-orb{position:absolute;border-radius:50%;filter:blur(1px);pointer-events:none}.orb-one{width:45vw;height:45vw;right:-16vw;top:15vh;background:radial-gradient(circle,rgba(7,113,196,.13),transparent 65%);animation:float 9s ease-in-out infinite}.orb-two{width:30vw;height:30vw;left:-15vw;bottom:-12vw;background:radial-gradient(circle,rgba(0,215,232,.07),transparent 65%);animation:float 12s ease-in-out infinite reverse}.hero-word{position:absolute;font-weight:900;line-height:.84;letter-spacing:-.075em;font-size:clamp(76px,15vw,220px);white-space:nowrap;will-change:transform,opacity}.word-a{left:3%;top:38%;animation:heroWordIn 1.1s .8s cubic-bezier(.2,.8,.2,1) both}.word-b{left:3%;top:49%;font-size:clamp(67px,13vw,195px);animation:heroWordIn 1.1s .95s cubic-bezier(.2,.8,.2,1) both}.word-c{left:3%;top:61%;font-size:clamp(67px,13vw,195px);animation:heroWordIn 1.1s 1.1s cubic-bezier(.2,.8,.2,1) both}.outline{color:transparent;-webkit-text-stroke:1px rgba(244,247,250,.72)}.hero-photo{position:absolute;z-index:3;width:min(42vw,520px);height:70vh;right:18%;top:23%;overflow:hidden;clip-path:polygon(16% 0,82% 0,100% 12%,92% 100%,12% 100%,0 85%);filter:drop-shadow(0 30px 70px rgba(0,0,0,.65));animation:photoIn 1.2s .45s cubic-bezier(.16,1,.3,1) both;will-change:transform}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:48% 32%;transform:scale(1.17);transition:transform 1.2s cubic-bezier(.2,.8,.2,1),filter .8s}.hero-photo:hover img{transform:scale(1.24);filter:saturate(1.15)}.photo-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,8,13,.03) 40%,rgba(2,8,13,.7) 100%),linear-gradient(90deg,rgba(2,8,13,.18),transparent 45%,rgba(2,8,13,.15))}.photo-border{position:absolute;inset:10px;border:1px solid rgba(255,255,255,.18);opacity:.5}.hero-copy{position:absolute;z-index:5;left:7vw;bottom:13%;max-width:300px;animation:fadeUp 1s 1.35s both}.hero-kicker{font-size:9px;letter-spacing:4px;color:var(--blue)}.hero-copy p{font-size:17px;line-height:1.5;color:#aeb8c1;margin:12px 0}.hero-copy em{font-style:normal;color:#fff}.scroll-note{position:absolute;bottom:28px;right:5%;font-size:10px;letter-spacing:3px;color:#75818c;display:flex;align-items:center;gap:10px}.scroll-line{width:55px;height:1px;background:linear-gradient(90deg,transparent,var(--blue));animation:pulseLine 1.7s ease-in-out infinite}.scroll-note b{color:var(--blue);font-size:20px}.hero-index{position:absolute;right:5%;top:24%;font-size:11px;letter-spacing:3px;color:#fff}.hero-index span{color:#53606b}.about,.experience,.gallery,.projects,.contact{padding:150px 7vw}.section-number{position:absolute;right:7vw;top:145px;color:#3e4a53;font-size:11px;letter-spacing:3px}.eyebrow{font-size:13px;letter-spacing:6px;color:#b4bec7;margin-bottom:50px}.about h1{font-size:clamp(44px,8vw,110px);line-height:1.02;letter-spacing:-.065em;margin:0;max-width:1000px}.about h1 strong{font-weight:900}.about h1 em{font-style:normal;color:var(--blue)}.lead{max-width:850px;color:#aeb8c1;font-size:clamp(18px,2vw,27px);line-height:1.75;margin:65px 0}.stats{display:flex;gap:10vw;border-top:1px solid var(--line);padding-top:35px}.stats div{display:flex;flex-direction:column;gap:8px}.stats strong{font-size:40px}.stats span{font-size:11px;letter-spacing:2px;color:#7f8b95;text-transform:uppercase}.experience{min-height:110vh}.exp-wrap{max-width:1100px;border-top:1px solid rgba(255,255,255,.16);padding-top:40px;display:flex;justify-content:space-between;gap:50px}.exp-card span{font-size:10px;letter-spacing:3px;color:var(--blue)}.exp-card h2{font-size:clamp(38px,6vw,80px);line-height:1;letter-spacing:-.05em;margin:25px 0}.exp-card p{color:#9da9b3;line-height:1.8;max-width:700px;font-size:18px}.tags{display:flex;gap:9px;flex-wrap:wrap;margin-top:30px}.tags b{border:1px solid rgba(255,255,255,.14);padding:10px 14px;border-radius:100px;font-size:11px;font-weight:500;color:#c8d0d7;transition:border .3s,background .3s,transform .3s}.tags b:hover{border-color:var(--blue);background:rgba(11,145,255,.07);transform:translateY(-3px)}.exp-year{font-size:15px;color:#69747e;white-space:nowrap}.exp-year span{color:#fff}.skill-list{max-width:900px;margin-top:100px}.skill{margin:0 0 35px}.skill>div{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:17px}.skill b{font-size:12px;color:#89959e}.skill i{display:block;height:9px;border-radius:20px;background:#0c4569;overflow:hidden}.skill i span{display:block;width:var(--w);height:100%;border-radius:20px;background:linear-gradient(90deg,var(--cyan),var(--blue));transform:scaleX(0);transform-origin:left;transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}.revealed .skill i span{transform:scaleX(1)}.gallery h2,.projects h2,.contact h2{font-size:clamp(55px,9vw,130px);line-height:.9;letter-spacing:-.07em;margin:0 0 70px}.gallery h2 span,.projects h2 span,.contact h2 span{color:var(--blue)}.masonry{columns:2 300px;column-gap:22px}.masonry figure{margin:0 0 34px;break-inside:avoid;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.025),transparent);border:1px solid var(--line);border-radius:14px;transition:border-color .4s,transform .4s;padding-bottom:2px}.masonry figure:hover{border-color:rgba(11,145,255,.4);transform:translateY(-4px)}.img-wrap{overflow:hidden;background:#06121a;clip-path:inset(0 0 0 0);border-radius:14px 14px 0 0}.masonry img{width:100%;display:block;filter:saturate(.85);transition:transform .9s cubic-bezier(.2,.8,.2,1),filter .7s}.masonry figure:hover img{transform:scale(1.045);filter:saturate(1.15)}
figcaption{padding:22px 22px 26px;display:block}
figcaption .cap-tag{display:block;font-size:10px;letter-spacing:2.5px;color:var(--cyan);text-transform:uppercase;margin-bottom:10px;font-weight:600}
figcaption h3{margin:0 0 10px;font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
figcaption p{margin:0;font-size:14px;line-height:1.65;color:#9aa6b0}
.projects{min-height:60vh}
.project-card{max-width:1000px;border:1px solid var(--line);border-radius:20px;padding:50px;display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;background:linear-gradient(155deg,rgba(11,145,255,.05),transparent 60%);transition:border-color .4s,transform .4s}
.project-card:hover{border-color:rgba(11,145,255,.45);transform:translateY(-4px)}
.project-tag{display:inline-block;font-size:10px;letter-spacing:2.5px;color:var(--cyan);font-weight:700;margin-bottom:22px}
.project-info h3{margin:0 0 18px;font-size:clamp(30px,4vw,48px);font-weight:900;letter-spacing:-.03em;color:#fff}
.project-info p{max-width:620px;margin:0 0 28px;color:#9da9b3;font-size:17px;line-height:1.75}
.project-link{display:inline-flex;align-items:center;gap:14px;flex-shrink:0;color:#fff;text-decoration:none;font-size:17px;font-weight:600;border:1px solid rgba(255,255,255,.22);padding:18px 30px;border-radius:100px;transition:border .3s,background .3s,transform .3s}
.project-link span{color:var(--blue);font-size:19px;transition:transform .3s}
.project-link:hover{border-color:var(--blue);background:rgba(11,145,255,.08);transform:translateY(-3px)}
.project-link:hover span{transform:translate(3px,-3px)}
.contact{min-height:90vh}.contact p{color:#9ca8b2;font-size:19px;margin:0 0 45px;max-width:640px}
.whatsapp-cta{display:inline-flex;align-items:center;gap:22px;font-size:clamp(24px,3.6vw,46px);color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:16px;transition:border .3s,transform .4s;font-weight:700}
.whatsapp-cta svg{color:#25d366;flex-shrink:0}
.whatsapp-cta em{font-style:normal;color:var(--blue);margin-left:6px;font-size:.6em}
.whatsapp-cta:hover{border-color:var(--blue);transform:translateX(8px)}
.contact-info-row{display:flex;gap:8vw;margin-top:90px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:35px}
.info-block{display:flex;flex-direction:column;gap:8px}
.info-label{font-size:10px;letter-spacing:2.5px;color:#68747e;text-transform:uppercase}
.info-value{font-size:16px;color:var(--ink);font-weight:600}
.contact-meta{display:flex;justify-content:space-between;margin-top:100px;color:#68747e;font-size:11px;letter-spacing:2px;text-transform:uppercase}footer{padding:25px 7vw;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#56616a;font-size:10px;letter-spacing:1px}.cursor{position:fixed;z-index:100;width:32px;height:32px;border:1px solid rgba(11,145,255,.7);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);transition:width .25s,height .25s,border .25s;mix-blend-mode:screen}.cursor span{position:absolute;width:4px;height:4px;background:var(--blue);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.cursor.active{width:60px;height:60px;border-color:rgba(8,215,232,.9)}.back-top{position:fixed;right:5vw;bottom:25px;z-index:60;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.12);background:#050d13;color:#fff;font-size:24px;opacity:0;visibility:hidden;transform:translateY(15px);transition:.4s;cursor:pointer}.back-top.show{opacity:1;visibility:visible;transform:none}.loader{position:fixed;inset:0;background:#02080d;z-index:200;display:grid;place-items:center;transition:opacity .8s,visibility .8s}.loader.done{opacity:0;visibility:hidden}.loader-name{font-size:30px;letter-spacing:9px}.loader-count{position:absolute;bottom:28%;right:8%;font-size:12px;letter-spacing:3px;color:#6e7b85}.loader-line{position:absolute;bottom:28%;left:8%;right:8%;height:1px;background:#17232d}.loader-line span{display:block;width:0;height:1px;background:linear-gradient(90deg,var(--cyan),var(--blue));box-shadow:0 0 14px rgba(11,145,255,.5)}@keyframes load{to{width:100%}}@keyframes heroWordIn{from{opacity:0;transform:translateX(-80px) skewX(8deg)}to{opacity:1;transform:none}}@keyframes photoIn{from{opacity:0;transform:translateY(80px) scale(.92);clip-path:polygon(30% 0,65% 0,100% 25%,75% 100%,25% 100%,0 70%)}to{opacity:1;transform:none}}@keyframes fadeUp{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}@keyframes pulseLine{0%,100%{opacity:.35;transform:scaleX(.7);transform-origin:right}50%{opacity:1;transform:scaleX(1);transform-origin:left}}@keyframes float{50%{transform:translate3d(20px,-25px,0) scale(1.04)}}.reveal-up{opacity:0;transform:translateY(55px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}.revealed .reveal-up,.reveal-up.revealed{opacity:1;transform:none}.reveal-up:nth-child(2){transition-delay:.05s}.reveal-up:nth-child(3){transition-delay:.12s}.reveal-up:nth-child(4){transition-delay:.18s}.reveal-up:nth-child(5){transition-delay:.24s}.masonry figure.reveal-up:nth-child(2){transition-delay:.08s}.masonry figure.reveal-up:nth-child(3){transition-delay:.16s}.masonry figure.reveal-up:nth-child(4){transition-delay:.24s}.masonry figure.reveal-up:nth-child(5){transition-delay:.32s}.masonry figure.reveal-up:nth-child(6){transition-delay:.4s}.masonry figure.reveal-up:nth-child(7){transition-delay:.48s}.masonry figure.reveal-up:nth-child(8){transition-delay:.56s}@media(max-width:700px){.nav{padding:23px 4.5vw}.brand{font-size:29px}.nav-location{display:none}.scroll-progress{top:88px}.hero{min-height:100svh;padding-top:100px}.hero-word{font-size:18vw}.word-a{top:39%}.word-b{top:49%;font-size:17vw}.word-c{top:61%;font-size:17vw}.hero-photo{width:60vw;height:55vh;right:10%;top:30%;opacity:.98}.hero-copy{left:7vw;bottom:11%;max-width:230px}.hero-copy p{font-size:14px}.hero-index{top:28%;font-size:9px}.scroll-note{display:none}.about,.experience,.gallery,.contact{padding:110px 7vw}.section-number{top:105px}.about .eyebrow{margin-bottom:35px}.about h1{font-size:54px}.lead{font-size:17px;line-height:1.7;margin:45px 0}.stats{gap:22px;flex-wrap:wrap}.stats strong{font-size:28px}.stats span{font-size:8px}.exp-wrap{display:block}.exp-year{margin-top:30px}.skill-list{margin-top:70px}.gallery h2,.projects h2,.contact h2{font-size:60px}.masonry{columns:1}.project-card{padding:32px;flex-direction:column;align-items:flex-start;gap:26px}.project-link{width:100%;justify-content:center}.contact-info-row{margin-top:60px;gap:28px}.contact-meta{margin-top:70px;gap:25px;flex-direction:column}.mail,.whatsapp-cta{font-size:23px}.cursor{display:none}footer{gap:10px;flex-direction:column}.menu-panel a span{font-size:48px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
