@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.VmngOW_className{font-family:Inter,Inter Fallback;font-style:normal}.VmngOW_variable{--font-body:"Inter", "Inter Fallback"}
@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/32687112bd2dd8db-s.1gepa_7fcx9fm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/28868e710e86be81-s.2eksvhm1z0jwa.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.LX9ePG_className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.LX9ePG_variable{--font-display:"Space Grotesk", "Space Grotesk Fallback"}
:root{--bg:#05030f;--bg-2:#0a0720;--glass:#0e0a24c7;--glass-strong:#0c081ed1;--surface:#ffffff09;--surface-2:#ffffff0f;--border:#ffffff14;--border-2:#ffffff26;--text:#f4f2ff;--muted:#a9a4c8;--dim:#75709a;--violet:#8b5cf6;--cyan:#22d3ee;--pink:#f472b6;--green:#34d399;--grad:linear-gradient(135deg, #8b5cf6 0%, #22d3ee 55%, #f472b6 100%);--ease:cubic-bezier(.22, 1, .36, 1);--nav-h:84px}*{box-sizing:border-box}html{scroll-padding-top:var(--nav-h);overflow-x:clip}body{background:var(--bg);color:var(--text);font-family:var(--font-body), system-ui, sans-serif;-webkit-font-smoothing:antialiased;margin:0;overflow-x:clip}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}h1,h2,h3,h4{font-family:var(--font-display), system-ui, sans-serif;margin:0}a{color:inherit;text-decoration:none}img{-webkit-user-drag:none}::selection{background:var(--violet);color:#fff}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:6px}.container{width:min(1200px,92%);margin-inline:auto}.grad-text{background:var(--grad);color:#0000;-webkit-background-clip:text;background-clip:text}.world-canvas{z-index:0;pointer-events:none;animation:worldIn 1.6s var(--ease) both;position:fixed;inset:0}.world-canvas canvas{display:block;width:100%!important;height:100%!important}@keyframes worldIn{0%{opacity:0}to{opacity:1}}.world-vignette{z-index:0;pointer-events:none;background:radial-gradient(70% 60%,#0000 35%,#05030fb3 100%),linear-gradient(#05030f40,#0000 20% 80%,#05030f66);position:fixed;inset:0}main,.footer{z-index:1;position:relative}.scroll-progress{z-index:60;transform-origin:0;background:var(--grad);height:3px;position:fixed;top:0;left:0;right:0;box-shadow:0 0 12px #22d3eeb3}.nav{z-index:50;-webkit-backdrop-filter:blur(16px)saturate(140%);border:1px solid var(--border);width:min(1180px,94%);transition:background .35s, box-shadow .35s, border-color .35s, top .35s var(--ease);background:#0a061c6b;border-radius:999px;justify-content:space-between;align-items:center;gap:16px;padding:9px 10px 9px 14px;display:flex;position:fixed;top:14px;left:50%;transform:translate(-50%)}.nav.scrolled{border-color:var(--border-2);background:#0a061cd1;top:10px;box-shadow:0 12px 40px -12px #000000b3}.nav-logo{font-family:var(--font-display);align-items:center;gap:10px;font-size:1.08rem;font-weight:700;display:inline-flex}.logo-mark{background:var(--grad);color:#fff;letter-spacing:.5px;border-radius:11px;place-items:center;width:36px;height:36px;font-size:.82rem;display:grid;box-shadow:0 6px 20px -6px #8b5cf6e6}.nav-links{align-items:center;gap:2px;display:flex}.nav-links a{color:var(--muted);border-radius:999px;padding:8px 15px;font-size:.9rem;transition:color .25s;position:relative}.nav-links a:hover,.nav-links a.active{color:#fff}.nav-pill{background:#8b5cf63d;border:1px solid #8b5cf659;border-radius:999px;position:absolute;inset:0}.nav-text{position:relative}.nav-toggle{color:#fff;cursor:pointer;background:0 0;border:0;padding:6px;display:none}.btn{cursor:pointer;transition:transform .3s var(--ease), box-shadow .3s, border-color .3s, background .3s;color:#fff;white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:13px 24px;font-family:inherit;font-size:.94rem;font-weight:600;line-height:1.2;display:inline-flex}.btn-sm{padding:9px 17px;font-size:.85rem}.btn-primary{background:var(--grad);box-shadow:0 10px 36px -10px #8b5cf6d9}.btn-primary:hover{transform:translateY(-3px)scale(1.03);box-shadow:0 16px 46px -8px #22d3eeb3}.btn-ghost{background:var(--surface-2);border-color:var(--border-2)}.btn-ghost:hover{border-color:var(--violet);background:#8b5cf624;transform:translateY(-3px)}.btn:active{transform:translateY(0)scale(.98)}.socials{gap:10px;margin:0;padding:0;list-style:none;display:flex}.socials-rail{flex-direction:column}.socials a{color:#d9d3ff;border:1px solid var(--border-2);width:42px;height:42px;transition:transform .3s var(--ease), color .3s, border-color .3s, box-shadow .3s, background .3s;background:#0e0a2499;border-radius:13px;place-items:center;display:grid;position:relative}.socials a:hover{color:#fff;border-color:var(--cyan);background:#22d3ee1f;transform:translateY(-3px);box-shadow:0 10px 26px -10px #22d3eecc}.socials-rail a:hover{transform:translate(4px)}.socials-rail a:after{content:attr(data-label);white-space:nowrap;pointer-events:none;background:var(--glass-strong);border:1px solid var(--border-2);opacity:0;transition:.25s var(--ease);border-radius:8px;padding:5px 10px;font-size:.75rem;font-weight:600;position:absolute;top:50%;left:calc(100% + 12px);transform:translate(-6px,-50%)}.socials-rail a:hover:after{opacity:1;transform:translateY(-50%)}.hero{align-items:center;min-height:100svh;padding:120px 0 90px;display:flex;position:relative;overflow-x:clip}.hero-content{z-index:2;min-width:0;position:relative}.hero-content:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(at 35%,#05030fb3,#0000 70%);position:absolute;inset:-70px -50px}.badge{color:var(--cyan);background:#22d3ee14;border:1px solid #22d3ee4d;border-radius:999px;align-items:center;gap:10px;margin-bottom:20px;padding:7px 15px;font-size:.83rem;display:inline-flex}.badge i{background:var(--green);width:8px;height:8px;box-shadow:0 0 12px var(--green);border-radius:50%;animation:1.8s infinite pulse}@keyframes pulse{50%{opacity:.35;transform:scale(.8)}}.hero-hi{color:var(--muted);margin:0 0 4px;font-size:1.1rem}.hero-title{letter-spacing:-.04em;font-size:clamp(2.9rem,6.6vw,5.6rem);font-weight:700;line-height:.98}.hero-role{color:#ece8ff;align-items:center;gap:12px;margin:18px 0 8px;font-size:clamp(1.15rem,2.2vw,1.6rem);font-weight:600;display:inline-flex}.hero-role:before{content:"";background:var(--grad);border-radius:2px;width:34px;height:2px}.hero-rotator{color:var(--muted);font-size:clamp(1rem,1.8vw,1.25rem);font-family:var(--font-display);flex-wrap:wrap;gap:0 10px;margin-bottom:16px;display:flex}.rotator-window{height:1.5em;display:inline-flex;position:relative;overflow:hidden}.rotator-window span{white-space:nowrap;font-weight:600;display:inline-block;position:absolute;top:0;left:0}.rotator-window .rotator-sizer{visibility:hidden;position:static}.hero-text{color:var(--muted);max-width:540px;margin:0;font-size:1rem;line-height:1.8}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.hero-socials-mobile{margin-top:22px;display:none}.hero-meta{color:var(--muted);align-items:center;gap:8px;margin-top:22px;font-size:.88rem;display:flex}.stats{border:1px solid var(--border);background:var(--glass);border-radius:20px;width:fit-content;max-width:100%;margin-top:34px;display:flex}.stat{padding:14px 24px}.stat+.stat{border-left:1px solid var(--border)}.stat b{font-size:1.7rem;font-family:var(--font-display);line-height:1.1;display:block}.stat span{color:var(--muted);font-size:.8rem}.scroll-hint{z-index:2;color:var(--dim);letter-spacing:3px;flex-direction:column;align-items:center;gap:8px;font-size:.68rem;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.mouse{border:2px solid var(--dim);border-radius:12px;justify-content:center;width:22px;height:34px;padding-top:6px;display:flex}.mouse i{background:var(--cyan);border-radius:3px;width:3px;height:7px;animation:1.6s infinite wheel}@keyframes wheel{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}.portrait-wrap{aspect-ratio:4/5;perspective:1400px;position:relative}.portrait-3d{transform-style:preserve-3d;will-change:transform;position:absolute;inset:0}.portrait-ring{background:conic-gradient(from 0deg, var(--violet), var(--cyan), var(--pink), var(--violet));filter:blur(50px);opacity:.5;border-radius:40px;animation:14s linear infinite spin;position:absolute;inset:-8%;transform:translateZ(-80px)}.portrait-orbit{border:1px dashed #22d3ee59;border-radius:44px;position:absolute;inset:-5%;transform:translateZ(-30px)}@keyframes spin{to{rotate:360deg}}.portrait-frame{background:radial-gradient(circle at 50% 35%,#8b5cf68c,#0000 60%),radial-gradient(circle at 80% 90%,#22d3ee59,#0000 50%),#0c0824;border-radius:30px;position:absolute;inset:0;overflow:hidden;box-shadow:0 50px 120px -30px #8b5cf6a6,inset 0 0 0 1px #ffffff14}.portrait-frame:after{content:"";border-radius:inherit;background:var(--grad);-webkit-mask-composite:xor;pointer-events:none;padding:1.5px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.portrait-grid{opacity:.35;background-image:linear-gradient(#ffffff12 1px,#0000 1px),linear-gradient(90deg,#ffffff12 1px,#0000 1px);background-size:30px 30px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 50% 40%,#000,#0000 75%);mask-image:radial-gradient(circle at 50% 40%,#000,#0000 75%)}.portrait-img{object-fit:cover;object-position:center top}.portrait-shade{pointer-events:none;background:linear-gradient(#0000 64%,#05030fd9 100%);position:absolute;inset:0}.portrait-name{border:1px solid var(--border-2);background:#0a061ca6;border-radius:999px;align-items:center;gap:8px;font-weight:600;display:inline-flex;position:absolute}.portrait-name .dot{background:var(--green);width:8px;height:8px;box-shadow:0 0 10px var(--green);border-radius:50%}.float-chip{z-index:3;position:absolute}.chip-inner{border:1px solid var(--border-2);white-space:nowrap;background:#0c0820cc;border-radius:14px;align-items:center;gap:9px;font-weight:600;animation:6s ease-in-out infinite bob;display:inline-flex;box-shadow:0 18px 40px -14px #000000b3}.chip-icon{background:var(--grad);place-items:center;display:grid}.chip-2 .chip-inner{animation-delay:-2s}.chip-3 .chip-inner{animation-delay:-4s}.exp-badge .chip-inner{animation-delay:-1s}.chip-inner.col{flex-direction:column;align-items:flex-start;gap:0;padding:10px 16px}.chip-inner.col b{font-family:var(--font-display);line-height:1}.chip-inner.col span{color:var(--muted);font-size:.72rem;font-weight:500}.chip-inner.code{padding:11px 14px;animation-delay:-3s;display:block}.code-dots{color:var(--cyan);align-items:center;gap:5px;margin-bottom:8px;display:flex}.code-dots i{background:var(--pink);border-radius:50%;width:8px;height:8px}.code-dots i:nth-child(2){background:#facc15}.code-dots i:nth-child(3){background:var(--green);margin-right:auto}.chip-inner pre{color:#d9d3ff;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:500;line-height:1.6}pre .k{color:var(--pink)}pre .v{color:var(--cyan)}pre .s{color:#a7f3d0}pre .b{color:#facc15}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.marquee{z-index:1;border-block:1px solid var(--border);background:#0a072099;padding:18px 0;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000);mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000)}.marquee-track{width:max-content;animation:45s linear infinite marquee;display:flex}.marquee:hover .marquee-track{animation-play-state:paused}.marquee-item{font-family:var(--font-display);color:#cfc9f0;white-space:nowrap;align-items:center;gap:14px;margin-right:46px;font-size:1.1rem;font-weight:600;display:inline-flex}.marquee-item i{color:var(--violet);font-size:.8rem;font-style:normal}@keyframes marquee{to{transform:translate(-50%)}}.section{padding:110px 0;position:relative}.section-tag{color:var(--cyan);letter-spacing:3px;text-transform:uppercase;align-items:center;gap:10px;font-size:.78rem;font-weight:600;display:inline-flex}.section-tag i{background:var(--cyan);border-radius:2px;width:22px;height:2px}.section-title{letter-spacing:-.03em;margin:12px 0 14px;font-size:clamp(2rem,4.4vw,3.3rem);line-height:1.08}.section-sub{color:var(--muted);max-width:580px;margin:0;line-height:1.75}.section-head{margin-bottom:52px;position:relative}.section-head:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(at 30%,#05030f99,#0000 70%);position:absolute;inset:-40px -60px}.section-head.center{text-align:center}.section-head.center:before{background:radial-gradient(#05030f99,#0000 70%)}.section-head.center .section-sub{margin-inline:auto}.section-head.row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.tilt{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform-style:preserve-3d;transition:transform .3s var(--ease), border-color .35s, box-shadow .35s;will-change:transform;position:relative}.tilt:after{content:"";border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(500px circle at var(--mx,50%) var(--my,50%), #8b5cf629, transparent 45%);transition:opacity .35s;position:absolute;inset:0}.tilt:hover:after{opacity:1}.services-grid{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.service-card{background:var(--glass);border:1px solid var(--border);border-radius:24px;height:100%;padding:30px 26px}.service-card:hover{border-color:#8b5cf68c;box-shadow:0 30px 60px -25px #8b5cf68c}.service-num{font-family:var(--font-display);color:var(--dim);font-weight:700;position:absolute;top:22px;right:24px}.service-icon{background:var(--grad);border-radius:15px;place-items:center;width:52px;height:52px;margin-bottom:22px;display:grid;transform:translateZ(40px);box-shadow:0 12px 30px -10px #8b5cf6e6}.service-card h3{margin-bottom:10px;font-size:1.18rem;transform:translateZ(20px)}.service-card p{color:var(--muted);margin:0;font-size:.93rem;line-height:1.7}.skills-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.skill-card{background:var(--glass);border:1px solid var(--border);border-radius:22px;height:100%;padding:28px}.skill-card:hover{border-color:#8b5cf68c;box-shadow:0 30px 60px -25px #8b5cf68c}.skill-head{align-items:center;gap:14px;margin-bottom:20px;display:flex;transform:translateZ(30px)}.skill-icon{background:var(--grad);border-radius:13px;flex-shrink:0;place-items:center;width:46px;height:46px;display:grid}.skill-card h3{font-size:1.15rem}.tags{flex-wrap:wrap;gap:8px;display:flex}.tag{color:#ddd7ff;background:#8b5cf624;border:1px solid #8b5cf647;border-radius:999px;padding:5px 12px;font-size:.78rem}.filters{flex-wrap:wrap;justify-content:center;gap:8px;margin:-16px 0 20px;display:flex}.filter{border:1px solid var(--border-2);background:var(--glass);color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;padding:9px 17px;font-size:.88rem;transition:color .25s,border-color .25s;position:relative}.filter:hover{color:#fff;border-color:var(--violet)}.filter.active{color:#fff;border-color:#0000}.filter-pill{background:var(--grad);border-radius:999px;position:absolute;inset:-1px}.filter-text{position:relative}.filter em{opacity:.75;margin-left:5px;font-size:.74rem;font-style:normal}.slider-stage{--card-w:min(560px, 46vw);--spread:70%;height:calc(var(--card-w) * .66 + 260px);perspective:1600px;touch-action:pan-y;-webkit-user-select:none;user-select:none;outline:none;margin:0 calc(50% - 50vw);position:relative;overflow-x:clip}.slider-track{transform-style:preserve-3d;position:absolute;inset:0}.slide{width:var(--card-w);transform:translate(-50%, -50%) translateX(calc(var(--off) * var(--spread))) translateZ(calc(var(--abs) * -260px)) rotateY(calc(var(--off) * -34deg)) scale(calc(1 - var(--abs) * .06));opacity:calc(1 - var(--abs) * .28);transition:transform .85s var(--ease), opacity .6s var(--ease), filter .6s;filter:brightness(calc(1 - var(--abs) * .28)) saturate(calc(1 - var(--abs) * .2));will-change:transform;position:absolute;top:50%;left:50%}.slide.is-hidden{opacity:0;pointer-events:none}.slide-cover{z-index:4;cursor:pointer;background:0 0;border:0;border-radius:26px;padding:0;position:absolute;inset:0}.slide-card{background:var(--glass-strong);border:1px solid var(--border-2);border-radius:26px;flex-direction:column;transition:border-color .5s,box-shadow .5s;display:flex;position:relative;overflow:hidden;box-shadow:0 50px 100px -40px #000000e6}.slide.is-active .slide-card{border-color:hsl(var(--hue,260) 85% 65% / .55);box-shadow:0 60px 120px -40px hsl(var(--hue,260) 85% 55% / .6), 0 0 0 1px #ffffff0a}.slide.is-active:after{content:"";background:radial-gradient(closest-side, hsl(var(--hue,260) 85% 60% / .45), transparent);filter:blur(10px);pointer-events:none;border-radius:50%;height:40px;position:absolute;bottom:-34px;left:8%;right:8%}.browser{border:1px solid var(--border);background:#0c0a1d;border-radius:16px;display:block;overflow:hidden}.slide-browser{margin:12px 12px 0}.browser-bar{border-bottom:1px solid var(--border);background:#120f28;align-items:center;gap:6px;padding:9px 12px;display:flex}.browser-bar i{background:#ff5f57;border-radius:50%;flex-shrink:0;width:9px;height:9px}.browser-bar i:nth-child(2){background:#febc2e}.browser-bar i:nth-child(3){background:#28c840}.browser-bar span{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;background:#ffffff0d;border-radius:6px;flex:1;margin-left:10px;padding:4px 10px;font-size:.72rem;overflow:hidden}.browser-view{aspect-ratio:16/10;background:linear-gradient(135deg, hsl(var(--hue,260) 80% 55% / .3), hsl(calc(var(--hue,260) + 70) 80% 55% / .1));display:block;position:relative;overflow:hidden}.browser-view:before{content:"";background:linear-gradient(100deg,#0000 30%,#ffffff12 50%,#0000 70%) 0 0/220% 100%;animation:1.6s linear infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}.shot{object-fit:cover;object-position:top;width:100%;height:100%;transition:transform 1s var(--ease), opacity .6s;position:relative}.shot-img[data-loaded=false]{opacity:0}.slide.is-active .slide-browser:hover .shot{transform:scale(1.05)}.browser-glare{transition:transform .9s var(--ease);pointer-events:none;background:linear-gradient(120deg,#0000 30%,#ffffff1f 50%,#0000 70%);position:absolute;inset:0;transform:translate(-100%)}.slide.is-active .slide-browser:hover .browser-glare{transform:translate(100%)}.visit-hint{opacity:0;border:1px solid var(--border-2);transition:.35s var(--ease);pointer-events:none;background:#05030fcc;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:.8rem;font-weight:600;display:inline-flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%,10px)}.slide.is-active .slide-browser:hover .visit-hint,.pm-browser .browser-view:hover .visit-hint{opacity:1;transform:translate(-50%)}.shot-fallback{text-align:center;background:radial-gradient(circle at 30% 20%, hsl(var(--hue,260) 85% 60% / .45), transparent 60%), radial-gradient(circle at 80% 90%, hsl(calc(var(--hue,260) + 80) 85% 60% / .3), transparent 55%), #0d0a24;place-content:center;justify-items:center;gap:6px;width:100%;height:100%;padding:20px;display:grid;position:relative}.sf-mark{background:var(--grad);width:64px;height:64px;font-family:var(--font-display);border-radius:18px;place-items:center;margin-bottom:6px;font-size:2rem;font-weight:700;display:grid}.shot-fallback b{font-family:var(--font-display);font-size:1.15rem}.shot-fallback small{color:var(--muted);font-size:.8rem}.slide-body{flex-direction:column;padding:18px 22px 22px;display:flex;position:relative}.project-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.project-cat{color:var(--cyan);letter-spacing:2px;text-transform:uppercase;font-size:.7rem;font-weight:600}.project-loc{color:var(--dim);align-items:center;gap:4px;font-size:.75rem;display:inline-flex}.slide-body h3{margin:8px 0 6px;font-size:1.3rem}.slide-body p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.9rem;line-height:1.6;display:-webkit-box;overflow:hidden}.slide-actions{z-index:5;flex-wrap:wrap;gap:10px;margin-top:16px;display:flex;position:relative}.project-index{z-index:3;font-family:var(--font-display);border:1px solid var(--border-2);pointer-events:none;background:#05030fbf;border-radius:999px;padding:5px 10px;font-size:.78rem;font-weight:700;position:absolute;top:24px;right:24px}.slider-arrow{z-index:30;cursor:pointer;color:#fff;border:1px solid var(--border-2);width:52px;height:52px;transition:.3s var(--ease);background:#0e0a24bf;border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.slider-arrow:hover{background:var(--violet);border-color:#0000;transform:translateY(-50%)scale(1.08)}.slider-arrow.prev{left:max(16px,50vw - 640px)}.slider-arrow.next{right:max(16px,50vw - 640px)}.slider-foot{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px 22px;margin-top:10px;display:flex}.slider-count{font-family:var(--font-display);color:var(--dim);font-size:.95rem}.slider-count b{font-size:1.3rem}.slider-dots{align-items:center;gap:8px;display:flex}.dot{cursor:pointer;width:10px;height:10px;transition:width .45s var(--ease), background .3s;background:#fff3;border:0;border-radius:999px;padding:0;position:relative;overflow:hidden}.dot.active{background:#8b5cf659;width:38px}.dot i{background:var(--grad);transform-origin:0;animation:linear both dotFill;position:absolute;inset:0}@keyframes dotFill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.slider-stack{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.pm-overlay{z-index:100;background:#03020ac7;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.pm-panel{overscroll-behavior:contain;border:1px solid hsl(var(--hue,260) 80% 65% / .35);width:min(1120px,100%);max-height:calc(100svh - 48px);box-shadow:0 80px 160px -50px hsl(var(--hue,260) 80% 50% / .6);scrollbar-width:thin;scrollbar-color:var(--violet) transparent;background:linear-gradient(160deg,#140e30f5,#080516f7);border-radius:28px;overflow-y:auto}.pm-head{z-index:5;border-bottom:1px solid var(--border);background:#0e0922eb;justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 26px;display:flex;position:sticky;top:0}.pm-head h3{letter-spacing:-.02em;margin:6px 0;font-size:clamp(1.4rem,3vw,2rem)}.pm-meta{color:var(--muted);flex-wrap:wrap;gap:6px 16px;font-size:.84rem;display:flex}.pm-meta span{align-items:center;gap:6px;display:inline-flex}.pm-head-actions{flex-shrink:0;gap:8px;display:flex}.pm-icon{cursor:pointer;color:#fff;background:var(--surface-2);border:1px solid var(--border-2);border-radius:12px;place-items:center;width:42px;height:42px;transition:all .25s;display:grid}.pm-icon:hover{background:var(--violet);border-color:#0000}.pm-body{grid-template-columns:1.25fr 1fr;gap:30px;padding:26px;display:grid}.pm-visual{padding-bottom:40px;padding-right:60px;position:relative}.pm-browser .browser-view{cursor:pointer}.pm-phone{width:150px;position:absolute;bottom:0;right:0}.phone{border:1px solid var(--border-2);transition:transform .6s var(--ease);background:linear-gradient(145deg,#23203a,#0a0816);border-radius:28px;padding:7px;position:relative;transform:perspective(900px)rotateY(-12deg)rotateX(4deg);box-shadow:0 30px 60px -20px #000000d9}.phone:hover{transform:perspective(900px)rotateY(0)rotateX(0)}.phone-notch{z-index:2;background:#000;border-radius:999px;width:46px;height:12px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.phone-screen{aspect-ratio:390/844;background:#0c0a1d;border-radius:22px;position:relative;overflow:hidden}.pm-info{flex-direction:column;gap:22px;min-width:0;display:flex}.pm-lead{color:#ddd8f7;margin:0;font-size:1rem;line-height:1.8}.pm-block h4{letter-spacing:2px;text-transform:uppercase;color:var(--cyan);align-items:center;gap:8px;margin-bottom:12px;font-size:.82rem;display:flex}.pm-block p{color:var(--muted);margin:0;font-size:.94rem;line-height:1.75}.pm-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.pm-list li{color:#dcd6f8;align-items:flex-start;gap:10px;font-size:.92rem;line-height:1.55;display:flex}.pm-list li span{background:var(--grad);border-radius:7px;flex-shrink:0;place-items:center;width:22px;height:22px;margin-top:1px;display:grid}.pm-gallery{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.pm-thumb{aspect-ratio:4/3;border:1px solid var(--border);background:var(--surface);border-radius:12px;overflow:hidden}.pm-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .6s var(--ease)}.pm-thumb:hover img{transform:scale(1.08)}.pm-cta{align-self:flex-start}.process-grid{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.process-step{background:var(--glass);border:1px solid var(--border);border-radius:22px;padding:30px 26px;position:relative}.process-step:after{content:"";background:linear-gradient(90deg, var(--violet), transparent);width:22px;height:2px;position:absolute;top:52px;right:-21px}.process-step:last-child:after{display:none}.process-n{font-family:var(--font-display);font-size:2.6rem;font-weight:700;line-height:1}.process-step h3{margin:16px 0 8px;font-size:1.18rem}.process-step p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.7}.timeline{gap:22px;padding-left:38px;display:grid;position:relative}.timeline:before{content:"";background:linear-gradient(var(--violet), var(--cyan), transparent);width:2px;position:absolute;top:10px;bottom:10px;left:8px}.tl-item{background:var(--glass);border:1px solid var(--border);transition:border-color .35s, translate .35s var(--ease);border-radius:22px;padding:26px 30px;position:relative}.tl-item:hover{border-color:#8b5cf68c;translate:6px}.tl-item:before{content:"";background:var(--bg);border:3px solid var(--cyan);width:18px;height:18px;box-shadow:0 0 16px var(--cyan);border-radius:50%;position:absolute;top:32px;left:-38px}.tl-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.tl-period{color:var(--cyan);letter-spacing:1px;white-space:nowrap;background:#22d3ee0f;border:1px solid #22d3ee4d;border-radius:999px;padding:5px 12px;font-size:.8rem}.tl-item h3{font-size:1.2rem}.tl-company{color:#d9d3ff;margin-top:4px;font-size:.95rem}.tl-item p{color:var(--muted);margin:14px 0 0;font-size:.94rem;line-height:1.7}.tl-points{gap:8px;margin:14px 0 0;padding:0;list-style:none;display:grid}.tl-points li{color:#cfc9ee;align-items:flex-start;gap:10px;font-size:.9rem;display:flex}.tl-points svg{color:var(--green);flex-shrink:0;margin-top:3px}.contact-section{padding-bottom:90px}.contact-shell{background:linear-gradient(135deg,#8b5cf629,#22d3ee0f 60%,#f472b614);border:1px solid #8b5cf659;border-radius:32px;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:stretch;gap:36px;padding:40px;display:grid;position:relative;overflow:hidden}.contact-shell:before{content:"";background:var(--violet);filter:blur(140px);opacity:.3;pointer-events:none;border-radius:50%;width:420px;height:420px;position:absolute;top:-220px;left:-120px}.contact-info,.contact-form-wrap{min-width:0;position:relative}.contact-info{flex-direction:column;justify-content:center;display:flex}.contact-info .section-title{font-size:clamp(1.9rem,3.6vw,2.8rem)}.contact-cards{grid-template-columns:1fr 1fr;gap:10px;margin-top:26px;display:grid}.contact-card{border:1px solid var(--border);min-width:0;transition:border-color .3s, transform .3s var(--ease), background .3s;background:#0a061c8c;border-radius:16px;align-items:center;gap:12px;padding:13px 14px;display:flex}.contact-card.is-link:hover{border-color:var(--cyan);background:#22d3ee12;transform:translateY(-3px)}.meta-icon{width:38px;height:38px;color:var(--cyan);background:#8b5cf633;border-radius:11px;flex-shrink:0;place-items:center;display:grid}.cc-text{min-width:0}.cc-text small{color:var(--dim);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:2px;font-size:.68rem;display:block}.cc-text b{overflow-wrap:anywhere;font-size:.88rem;font-weight:600;line-height:1.35;display:block}.contact-socials{color:var(--dim);flex-wrap:wrap;align-items:center;gap:14px;margin-top:24px;font-size:.85rem;display:flex}.contact-form{border:1px solid var(--border-2);background:#080518b8;border-radius:24px;align-content:start;gap:14px;height:100%;padding:28px;display:grid}.cf-head h3{font-size:1.35rem}.cf-head p{color:var(--muted);margin:6px 0 2px;font-size:.86rem}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.contact-form label{gap:6px;display:grid}.contact-form label span{color:var(--muted);font-size:.8rem;font-weight:500}.contact-form input,.contact-form select,.contact-form textarea{border:1px solid var(--border-2);color:#fff;width:100%;font:inherit;resize:vertical;background:#05030f99;border-radius:13px;padding:12px 15px;font-size:.94rem;transition:border-color .25s,box-shadow .25s}.contact-form textarea{min-height:120px}.contact-form select option{background:#120c2b}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--violet);outline:none;box-shadow:0 0 0 4px #8b5cf633}.cf-foot{flex-wrap:wrap;align-items:center;gap:14px;margin-top:4px;display:flex}.cf-sent{color:var(--green);align-items:center;gap:6px;font-size:.85rem;display:inline-flex}.footer{border-top:1px solid var(--border);color:var(--muted);background:#05030fd1;padding:56px 0 26px;font-size:.92rem}.footer-grid{grid-template-columns:1.6fr 1fr 1.4fr 1fr;gap:40px;display:grid}.footer-brand p{max-width:320px;margin:16px 0 18px;line-height:1.7}.footer h4{color:#fff;margin-bottom:16px;font-size:.95rem}.footer-grid>div:not(.footer-brand){flex-direction:column;align-items:flex-start;gap:10px;display:flex}.footer-grid>div>a,.footer-grid>div>span{align-items:center;gap:8px;transition:color .25s;display:inline-flex}.footer-grid a:hover{color:#fff}.footer-bottom{border-top:1px solid var(--border);color:var(--dim);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:44px;padding-top:22px;font-size:.84rem;display:flex}.to-top{align-items:center;gap:6px;transition:color .25s;display:inline-flex}.to-top:hover{color:#fff}@media (max-width:1100px){.nav-links a{padding:8px 11px}.services-grid,.process-grid{grid-template-columns:repeat(2,1fr)}.process-step:after{display:none}.skills-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr}.pm-body{grid-template-columns:1fr}.pm-visual{max-width:640px}}@media (max-width:960px){.nav-cta{display:none}.hero{padding:110px 0 80px}.hero-content{text-align:center}.hero-content:before{background:radial-gradient(#05030fb8,#0000 72%);inset:-40px -20px}.hero-role,.hero-rotator,.hero-actions,.hero-meta{justify-content:center}.hero-text{margin-inline:auto}.hero-socials-mobile{justify-content:center;display:flex}.stats{margin-inline:auto}.contact-shell{grid-template-columns:1fr;padding:28px}.slider-stage{--card-w:min(520px, 70vw);--spread:62%}}@media (max-width:860px){.nav-toggle{display:block}.nav{border-radius:22px}.nav-links{border:1px solid var(--border-2);background:#0a061cf5;border-radius:20px;flex-direction:column;align-items:stretch;padding:10px;display:none;position:absolute;top:calc(100% + 8px);left:0;right:0}.nav-links.open{animation:menuIn .35s var(--ease);display:flex}.nav-links a{text-align:center;padding:12px}}@keyframes menuIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@media (max-width:720px){.section{padding:76px 0}.services-grid,.process-grid,.skills-grid,.form-row,.contact-cards{grid-template-columns:1fr}.stats{width:100%}.stat{text-align:center;flex:1;padding:12px 10px}.stat b{font-size:1.35rem}.stat span{font-size:.72rem}.hero-actions .btn{padding:12px 18px}.slider-stage{--card-w:84vw;--spread:74%;height:calc(var(--card-w) * .66 + 250px)}.slide{transform:translate(-50%, -50%) translateX(calc(var(--off) * var(--spread))) translateZ(calc(var(--abs) * -200px)) rotateY(calc(var(--off) * -28deg)) scale(calc(1 - var(--abs) * .08))}.slider-arrow{display:none}.slide-body{padding:14px 16px 18px}.slide-body h3{font-size:1.12rem}.pm-overlay{align-items:end;padding:0}.pm-panel{border-radius:24px 24px 0 0;max-height:92svh}.pm-head{padding:16px 18px}.pm-icon{width:38px;height:38px}.pm-body{gap:22px;padding:18px}.pm-visual{padding-bottom:30px;padding-right:46px}.pm-phone{width:104px}.contact-shell{border-radius:24px;gap:24px;padding:20px}.contact-form{padding:20px}.footer-grid{grid-template-columns:1fr;gap:28px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.enter{animation:enterUp .8s var(--ease) var(--d,0s) both}.enter-left{animation:enterLeft .8s var(--ease) .5s both}.enter-tilt{transform-origin:50% 100%;animation:enterTilt 1s var(--ease) var(--d,0s) both}.portrait-enter{animation:portraitIn 1.1s var(--ease) .1s both}@keyframes enterUp{0%{opacity:0;transform:translateY(22px)}}@keyframes enterLeft{0%{opacity:0;transform:translate(-22px)}}@keyframes enterTilt{0%{opacity:0;transform:perspective(900px)translateY(30px)rotateX(-60deg)}}@keyframes portraitIn{0%{opacity:0;transform:perspective(1400px)translateY(30px)rotateY(-38deg)scale(.86)}}@supports (animation-timeline:view()){.reveal{animation:linear both revealIn;animation-timeline:view();animation-range:entry calc(var(--rd,0) * 4%) entry calc(40% + var(--rd,0) * 4%)}}@keyframes revealIn{0%{opacity:0;transform:translateY(44px)scale(.97)}}@media (prefers-reduced-motion:reduce){.enter,.enter-left,.enter-tilt,.portrait-enter,.reveal{animation:none!important}}
