.pf{--purple:#7b62ff;--purple-2:#9d86ff;--purple-soft:#221f3b;--page:#0e0d16;--band:#151324;--surface:#171624;--surface-2:#1a1930;--ink:#f3f2fa;--ink-2:#b6b4c9;--muted:#8b89a3;--line:#262439;--maxw:1140px;background:var(--page);min-height:100vh;color:var(--ink-2);font-family:Space Grotesk,Vazirmatn,system-ui,sans-serif;font-size:15px;line-height:1.75}.pf[data-theme=light]{--purple:#5b3df5;--purple-2:#7c5cff;--purple-soft:#efecfe;--page:#f4f4f7;--band:#eeeafd;--surface:#fff;--surface-2:#f7f7fb;--ink:#1c1b2b;--ink-2:#4b495f;--muted:#8b8a9c;--line:#ecebf3}.pf[dir=rtl]{font-family:Vazirmatn,Space Grotesk,system-ui,sans-serif}.pf,.pf *,.pf :before,.pf :after{box-sizing:border-box}.pf h1,.pf h2,.pf h3,.pf h4,.pf p,.pf ul,.pf figure{margin:0;padding:0}.pf ul{list-style:none}.pf a{color:inherit;text-decoration:none}.pf img{max-width:100%;display:block}.pf button{font:inherit;color:inherit}.pf-container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:24px}.pf-section{padding-block:84px;scroll-margin-top:72px}.pf-surface-band{background:var(--surface-2)}.pf-section-head{text-align:center;margin-bottom:48px}.pf-section-head h2{color:var(--ink);font-size:clamp(1.6rem,3vw,2.1rem)}.pf-section-head p{max-width:560px;color:var(--muted);margin:12px auto 0;font-size:.9rem}.pf-heading-purple{color:var(--purple);margin-bottom:22px;font-size:1.05rem}.pf-btn{background:var(--purple);color:#fff;cursor:pointer;border:0;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:12px 26px;font-size:.82rem;font-weight:600;display:inline-flex}.pf-btn:hover{background:var(--purple-2);transform:translateY(-2px)}.pf-btn svg{width:17px}.pf-btn--ghost{border:1px solid color-mix(in srgb,var(--purple) 40%,transparent);color:var(--purple);background:0 0}.pf-btn--light{color:var(--purple);background:#fff}.pf-topbar{z-index:50;color:#fff;background:#08070f;border-bottom:1px solid #1c1a29;position:sticky;top:0}.pf[data-theme=light] .pf-topbar{color:var(--ink);background:#e9e9f1;border-color:#dedee8}.pf-topbar-inner{justify-content:space-between;align-items:center;gap:16px;height:58px;display:flex}.pf-brand{color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;font-weight:700;display:inline-flex}.pf-dot{color:#fff;border-radius:50%;place-items:center;width:26px;height:26px;font-size:.62rem;font-weight:800;display:inline-grid}.pf-mainnav{gap:26px;font-size:.78rem;display:flex}.pf-mainnav button{color:#ffffffb8;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:4px 0}.pf[data-theme=light] .pf-mainnav button{color:#1c1b2bad}.pf-mainnav button:hover,.pf-mainnav button[data-active=true]{color:inherit;border-color:var(--purple-2)}.pf-toolbar{gap:8px;display:flex}.pf-toggle{min-width:32px;height:32px;color:inherit;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff29;border-radius:6px;place-items:center;padding-inline:8px;display:inline-grid}.pf-toggle svg{width:16px}.pf[data-theme=light] .pf-toggle{background:#ffffff7a;border-color:#1c1b2b29}.pf-burger{display:none}.pf-hero{isolation:isolate;background:var(--band);text-align:center;align-items:center;min-height:calc(100svh - 58px);padding-block:110px;display:grid;position:relative;overflow:hidden}.pf-hero-three,.pf-cta-three{z-index:0;pointer-events:none;opacity:.9;position:absolute;inset:0}.pf-hero-three canvas,.pf-cta-three canvas{width:100%;height:100%;display:block}.pf-hero .pf-container,.pf-cta .pf-container{z-index:1;position:relative}.pf-kicker{color:var(--purple);letter-spacing:.35em;text-transform:uppercase;font-size:.8rem;font-weight:600}.pf-hero h1{background:linear-gradient(110deg,var(--purple),var(--purple-2));color:#0000;letter-spacing:-.05em;-webkit-background-clip:text;background-clip:text;margin-top:18px;font-size:clamp(2.5rem,6vw,4.6rem);font-weight:800;line-height:1.08}.pf-hero-role{min-height:2.4rem;margin-top:18px}.pf-role{border-bottom:2px solid color-mix(in srgb,var(--purple) 62%,transparent);color:var(--ink);padding-bottom:5px;font-size:clamp(1.1rem,2.3vw,1.55rem);font-weight:600;display:inline-block}.pf-role:after{content:"";vertical-align:-.12em;background:var(--purple-2);width:2px;height:1.05em;margin-inline-start:5px;animation:.8s step-end infinite pf-caret;display:inline-block}.pf-about{padding-block:84px}.pf-about-grid{grid-template-columns:300px 1fr;align-items:start;gap:34px;display:grid}.pf-photo{background:var(--surface-2);border-radius:16px;overflow:hidden;box-shadow:0 30px 70px -35px #000000d9}.pf-initial-avatar{color:#fff;place-items:center;min-height:400px;display:grid}.pf-initial-avatar span{font-family:Space Grotesk,Vazirmatn,sans-serif;font-size:clamp(4rem,9vw,8rem);font-weight:800}.pf-card{border:1px solid var(--line);background:var(--surface);border-radius:16px;box-shadow:0 2px 10px #00000040}.pf-about-card{padding:34px}.pf-about-card h2{color:var(--ink);margin-bottom:12px;font-size:1.4rem}.pf-about-card>p{color:var(--muted);font-size:.88rem}.pf-info{border-top:1px solid var(--line);margin-block:24px}.pf-info-row{border-bottom:1px solid var(--line);grid-template-columns:160px 1fr;gap:12px;padding:11px 4px;font-size:.85rem;display:grid}.pf-info-row:nth-child(odd){background:var(--surface-2)}.pf-info-row dt{color:var(--muted)}.pf-info-row dd{color:var(--ink);margin:0;font-weight:500}.pf-about-actions{flex-wrap:wrap;gap:10px;display:flex}.pf-clients{grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;padding-block:56px;display:grid}.pf-client-card{border:1px solid var(--line);background:var(--surface);border-radius:12px;justify-content:center;align-items:center;gap:10px;min-height:100px;padding:18px 14px;display:flex}.pf-client-mark{background:var(--purple-soft);width:30px;height:30px;color:var(--purple);border-radius:8px;place-items:center;display:inline-grid}.pf-client-mark svg{width:17px}.pf-resume-grid{grid-template-columns:150px 1fr;align-items:start;gap:40px;display:grid}.pf-sidenav{flex-direction:column;gap:6px;font-size:.85rem;display:flex;position:sticky;top:90px}.pf-sidenav button{color:var(--muted);text-align:start;cursor:pointer;border:0;background:0 0;border-inline-start:2px solid #0000;border-radius:6px;padding:8px 12px}.pf-sidenav button:hover,.pf-sidenav button[data-active=true]{border-inline-start-color:var(--purple);background:var(--purple-soft);color:var(--purple)}.pf-resume-content>section{scroll-margin-top:90px}.pf-timeline{flex-direction:column;gap:24px;margin-bottom:54px;display:flex}.pf-tl-item{border:1px solid var(--line);background:var(--surface);border-radius:12px;grid-template-columns:50px minmax(0,1fr);gap:16px;padding:24px;display:grid}.pf-tl-icon{background:var(--purple-soft);width:50px;height:50px;color:var(--purple);border-radius:9px;place-items:center;display:grid}.pf-tl-icon svg{width:22px}.pf-tl-year{color:var(--purple);font-size:.78rem;font-weight:700}.pf-tl-body h4{color:var(--ink);margin-top:4px;font-size:1.05rem}.pf-tl-org,.pf-tl-body p{color:var(--muted);font-size:.88rem}.pf-tl-org{margin-bottom:7px}.pf-circles{grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:40px;display:grid}.pf-circle{flex-direction:column;align-items:center;gap:10px;display:flex}.pf-circle svg{transform:rotate(-90deg)}.pf-circle .track{stroke:var(--line)}.pf-circle .bar{stroke:var(--purple);stroke-linecap:round;transition:stroke-dashoffset 1.3s cubic-bezier(.22,1,.36,1)}.pf-circle .value{fill:var(--ink);transform-origin:50%;font-size:1.15rem;font-weight:700;transform:rotate(90deg)}.pf-circle strong{color:var(--ink);font-size:.9rem}.pf-circle small{color:var(--muted);font-size:.75rem}.pf-skill-groups{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-bottom:54px;display:grid}.pf-skill-group{border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:24px;overflow:hidden}.pf-skill-group header{grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:22px;display:grid}.pf-skill-group-icon{background:var(--purple-soft);width:44px;height:44px;color:var(--purple);border-radius:10px;place-items:center;display:grid}.pf-skill-group-icon svg{width:23px}.pf-skill-group h4{min-width:0;color:var(--ink);overflow-wrap:anywhere;font-size:1.05rem}.pf-skill-group-pagination{color:var(--muted);white-space:nowrap;direction:ltr;align-items:center;gap:8px;font-size:.75rem;font-weight:700;display:inline-flex}.pf-skill-group-pagination[data-rtl=true]{flex-direction:row-reverse}.pf-skill-group-pagination button{border:1px solid var(--line);width:24px;height:24px;color:var(--purple);cursor:pointer;background:0 0;border-radius:50%;place-items:center;display:grid}.pf-skill-group-pagination button:disabled{opacity:.42;cursor:not-allowed}.pf-skill-group-pagination svg{width:14px}.pf-skill-group-bars{gap:16px;animation:.3s both pf-skill-items-in;display:grid}.pf-bar-head{color:var(--ink);justify-content:space-between;margin-bottom:6px;font-size:.8rem;display:flex}.pf-bar-head em{color:var(--purple);font-style:normal;font-weight:600}.pf-bar-track{background:var(--line);border-radius:999px;height:6px;overflow:hidden}.pf-bar-fill{border-radius:inherit;background:linear-gradient(90deg,var(--purple),var(--purple-2));height:100%;transition:width 1.3s cubic-bezier(.22,1,.36,1);display:block}.pf-grid-3{grid-template-columns:repeat(3,1fr);gap:26px;display:grid}.pf-service{border:1px solid var(--line);background:var(--surface);text-align:center;border-radius:16px;padding:34px 26px}.pf-service-index,.pf-project-category,.pf-post time,.pf-post-body>span{color:var(--purple);font-size:.78rem;font-weight:700}.pf-service h3{color:var(--ink);margin-top:16px;font-size:1.05rem}.pf-service p{color:var(--muted);margin-top:10px;font-size:.86rem}.pf-project-grid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.pf-project-card,.pf-post{border:1px solid var(--line);background:var(--surface);border-radius:16px;overflow:hidden}.pf-project-card img,.pf-post img{aspect-ratio:1.38;object-fit:cover;width:100%}.pf-project-card-body,.pf-post-body{padding:20px}.pf-project-card h3,.pf-post h3{color:var(--ink);margin-top:7px;font-size:1rem}.pf-project-card p,.pf-post p{color:var(--muted);margin-top:8px;font-size:.83rem}.pf-project-card ul{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.pf-project-card li{background:var(--purple-soft);color:var(--purple);border-radius:4px;padding:3px 7px;font-size:.7rem}.pf-stats{background:var(--purple);color:#fff;border-radius:16px;grid-template-columns:repeat(4,1fr);margin-top:60px;display:grid}.pf-stat{text-align:center;border-inline-end:1px solid #fff3;padding:28px 15px}.pf-stat:last-child{border:0}.pf-stat strong{font-size:clamp(1.6rem,3vw,2.3rem);display:block}.pf-stat span{opacity:.78;font-size:.78rem}.pf-cta{color:#fff;text-align:center;background:linear-gradient(120deg,#4e36d8,#7c48d8 60%,#2954c8);padding-block:95px;position:relative;overflow:hidden}.pf-cta h2{font-size:clamp(1.8rem,4vw,3rem)}.pf-cta p{opacity:.8;margin:13px 0 24px}.pf-contact-cards{grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:48px;display:grid}.pf-contact-card{border:1px solid var(--line);background:var(--surface);text-align:center;border-radius:12px;gap:5px;padding:22px;display:grid}.pf-contact-icon{background:var(--purple-soft);width:38px;height:38px;color:var(--purple);border-radius:9px;place-items:center;margin:auto;display:grid}.pf-contact-icon svg{width:19px}.pf-contact-card strong{color:var(--ink)}.pf-contact-card>span:last-child{color:var(--muted);overflow-wrap:anywhere;font-size:.78rem}.pf-contact-grid{grid-template-columns:300px 1fr;gap:34px;display:grid}.pf-contact-photo{min-height:300px}.pf-contact-cta{flex-direction:column;justify-content:center;align-items:flex-start;padding:34px;display:flex}.pf-contact-cta h3{color:var(--ink);font-size:1.4rem}.pf-contact-cta p{color:var(--muted);margin:10px 0 24px}.pf-footer{border-top:1px solid var(--line);color:var(--muted);background:#08070f;padding-top:60px}.pf[data-theme=light] .pf-footer{background:#e9e9f1}.pf-footer-grid{grid-template-columns:1.7fr repeat(3,1fr);gap:36px;display:grid}.pf-footer-grid>div{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.pf-footer h4{color:var(--ink)}.pf-footer button{color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.pf-footer p,.pf-footer span,.pf-footer button{font-size:.8rem}.pf-copyright{border-top:1px solid var(--line);text-align:center;padding:18px 24px;margin-top:45px!important}.pf [data-pf-reveal]{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(18px)}.pf [data-pf-reveal].pf-visible{opacity:1;transform:none}@keyframes pf-caret{50%{opacity:0}}@keyframes pf-skill-items-in{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@media (width<=900px){.pf-mainnav{background:var(--page);top:58px;flex-direction:column;gap:0;padding:14px 24px;display:none;position:absolute;inset-inline:0}.pf-mainnav.is-open{display:flex}.pf-mainnav button{color:var(--ink-2);text-align:start;padding:10px 0}.pf-burger{display:grid}.pf-about-grid,.pf-contact-grid{grid-template-columns:220px 1fr}.pf-skill-groups,.pf-project-grid,.pf-contact-cards{grid-template-columns:repeat(2,1fr)}}@media (width<=650px){.pf-container{padding-inline:16px}.pf-brand{font-size:.78rem}.pf-topbar-inner{gap:8px}.pf-about-grid,.pf-contact-grid,.pf-resume-grid{grid-template-columns:1fr}.pf-photo{width:min(250px,100%);margin:auto}.pf-initial-avatar{min-height:260px}.pf-sidenav{grid-template-columns:repeat(2,1fr);display:grid;position:static}.pf-clients,.pf-circles,.pf-skill-groups,.pf-grid-3,.pf-project-grid,.pf-contact-cards{grid-template-columns:1fr}.pf-stats{grid-template-columns:repeat(2,1fr)}.pf-footer-grid{grid-template-columns:1fr 1fr}.pf-section{padding-block:62px}.pf-hero{min-height:calc(100svh - 58px)}.pf-info-row{grid-template-columns:1fr;gap:3px}.pf-skill-group header{grid-template-columns:44px minmax(0,1fr)}.pf-skill-group-pagination{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){.pf *,.pf :before,.pf :after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media print{.pf{--page:#fff;--surface:#fff;--surface-2:#fff;--ink:#111;--ink-2:#333;--muted:#555;--line:#ddd;background:#fff}.pf .pf-no-print,.pf .pf-hero-three,.pf .pf-cta-three,.pf .pf-cta,.pf .pf-footer{display:none!important}.pf-section{padding-block:30px}.pf [data-pf-reveal]{opacity:1!important;transform:none!important}}.pf{--shadow-md:0 12px 28px #00000038;--radius-lg:16px;isolation:isolate}.pf .pf-tl-item,.pf .pf-skill-group,.pf .pf-service{transition:transform .3s,box-shadow .3s,border-color .3s}.pf .pf-service .icon{background:var(--purple-soft);width:48px;height:48px;color:var(--purple);border-radius:12px;place-items:center;margin:0 auto 16px;display:grid}.pf .pf-service .icon svg{width:20px;height:20px;display:block}.pf .pf-tl-item:hover,.pf .pf-skill-group:hover,.pf .pf-service:hover{border-color:color-mix(in srgb, var(--purple) 40%, var(--line));box-shadow:var(--shadow-md);transform:translateY(-3px)}.pf .pf-service{border-radius:var(--radius-lg);transition:transform .3s,box-shadow .3s,border-color .3s}.pf[data-theme=dark] .pf-service{background:var(--surface-2)}.pf .pf-service:hover{border-color:color-mix(in srgb, var(--purple) 40%, var(--line));box-shadow:var(--shadow-md);transform:translateY(-6px)}.pf .pf-service h3{color:var(--ink);font-size:.98rem;font-weight:600}.pf .pf-service p{color:var(--muted);margin-top:10px;font-size:.82rem}.pf .pf-print-button{--button-width:190px;--button-height:42px;--tooltip-height:30px;--tooltip-width:100px;--tooltip-gap:14px;--button-color:#1163ff;--button-hover-color:#6c18ff;--button-text-color:#fff;--tooltip-color:#fff;--tooltip-text-color:#111;width:var(--button-width);height:var(--button-height);appearance:none;background:var(--button-color);color:var(--button-text-color);text-align:center;cursor:pointer;border:0;border-radius:.45em;padding:0;font-family:Arial,Vazirmatn,sans-serif;font-size:13px;transition:background .3s;position:relative}.pf[data-theme=dark] .pf-print-button{--button-color:#5946d8;--button-hover-color:#6c18ff}.pf .pf-print-button:before{bottom:calc(var(--button-height) + var(--tooltip-gap) + 10px);left:calc(50% - var(--tooltip-width) / 2);width:var(--tooltip-width);height:var(--tooltip-height);background:var(--tooltip-color);color:var(--tooltip-text-color);content:attr(data-tooltip);font-size:.9rem;line-height:var(--tooltip-height);border-radius:.25em;position:absolute}.pf .pf-print-button:after{bottom:calc(100% + var(--tooltip-gap) - 10px);border:10px solid #0000;border-top-color:var(--tooltip-color);content:"";width:0;height:0;position:absolute;left:calc(50% - 10px)}.pf .pf-print-button:before,.pf .pf-print-button:after{z-index:2;visibility:hidden;opacity:0;transition:all .5s}.pf .pf-print-button-wrapper,.pf .pf-print-button-text,.pf .pf-print-button-icon{width:100%;height:100%;color:var(--button-text-color);position:absolute;left:0;overflow:hidden}.pf .pf-print-button-wrapper{top:0}.pf .pf-print-button-text,.pf .pf-print-button-icon{justify-content:center;align-items:center;transition:top .5s;display:flex}.pf .pf-print-button-text{top:0}.pf .pf-print-button-icon{top:100%}.pf .pf-print-button-icon svg{width:20px;height:20px}.pf .pf-print-button:is(:hover,:focus-visible){background:var(--button-hover-color)}.pf .pf-print-button:is(:hover,:focus-visible) .pf-print-button-text{top:-100%}.pf .pf-print-button:is(:hover,:focus-visible) .pf-print-button-icon{top:0}.pf .pf-print-button:is(:hover,:focus-visible):before{bottom:calc(var(--button-height) + var(--tooltip-gap));visibility:visible;opacity:1}.pf .pf-print-button:is(:hover,:focus-visible):after{bottom:calc(var(--button-height) + var(--tooltip-gap) - 20px);visibility:visible;opacity:1}.pf .pf-print-button:focus-visible{outline:2px solid var(--purple-2);outline-offset:3px}.pf .pf-conversation-button{--conversation-background:#4c83fa;--conversation-accent:#4c83fa;border:2px solid var(--conversation-background);isolation:isolate;background:var(--conversation-background);color:#fff;text-align:center;white-space:nowrap;border-radius:7px;flex:0 0 190px;justify-content:center;align-items:center;width:190px;height:42px;padding:0 10px;font-size:13px;font-weight:700;text-decoration:none;transition:all .3s ease-in-out;display:inline-flex;position:relative;overflow:visible;box-shadow:0 0 #0000}.pf[data-theme=dark] .pf-conversation-button{--conversation-background:#5946d8;--conversation-accent:#a58eff}.pf .pf-conversation-button-label{z-index:1;position:relative}.pf .pf-conversation-star{z-index:-1;height:auto;color:var(--conversation-accent);opacity:0;pointer-events:none;filter:drop-shadow(0 0 0 var(--conversation-accent));transition:all 1s cubic-bezier(.05,.83,.43,.96);display:block;position:absolute}.pf .pf-conversation-star svg{fill:currentColor;width:100%;height:auto;display:block}.pf .pf-conversation-star-1{width:20px;top:20%;left:20%}.pf .pf-conversation-star-2{width:12px;transition-timing-function:cubic-bezier(0,.4,0,1.01);top:45%;left:45%}.pf .pf-conversation-star-3{width:4px;transition-timing-function:cubic-bezier(0,.4,0,1.01);top:40%;left:40%}.pf .pf-conversation-star-4{width:7px;transition-duration:.8s;transition-timing-function:cubic-bezier(0,.4,0,1.01);top:20%;left:40%}.pf .pf-conversation-star-5{width:12px;transition-duration:.6s;transition-timing-function:cubic-bezier(0,.4,0,1.01);top:25%;left:45%}.pf .pf-conversation-star-6{width:4px;transition-duration:.8s;transition-timing-function:ease;top:5%;left:50%}.pf .pf-conversation-button:is(:hover,:focus-visible){border-color:var(--conversation-accent);box-shadow:0 0 0 var(--conversation-accent);color:var(--conversation-accent);background:0 0}.pf .pf-conversation-button:is(:hover,:focus-visible) .pf-conversation-star{z-index:2;opacity:1;filter:drop-shadow(0 0 4px var(--conversation-accent))}.pf .pf-conversation-button:is(:hover,:focus-visible) .pf-conversation-star-1{width:20px;top:-75%;left:-25%}.pf .pf-conversation-button:is(:hover,:focus-visible) .pf-conversation-star-2{width:12px;top:0;left:10%}.pf .pf-conversation-button:is(:hover,:focus-visible) .pf-conversation-star-3{width:4px;top:55%;left:25%}.pf .pf-conversation-button:is(:hover,:focus-visible) .pf-conversation-star-4{width:7px;top:30%;left:82%}.pf .pf-conversation-button:is(:hover,:focus-visible) .pf-conversation-star-5{width:12px;top:25%;left:110%}.pf .pf-conversation-button:is(:hover,:focus-visible) .pf-conversation-star-6{width:4px;top:5%;left:60%}.pf .pf-conversation-button:focus-visible{outline:2px solid var(--purple-2);outline-offset:3px}.pf [data-pf-reveal]{transform:translateY(26px)}.pf .pf-stats{color:inherit;text-align:center;background:0 0;border-radius:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:0;padding-block:64px;display:grid}.pf .pf-stat{text-align:center;border:0;padding:0}.pf .pf-stat strong{color:var(--purple);letter-spacing:-.02em;font-size:2rem;font-weight:700;display:block}.pf .pf-stat span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.78rem}.pf .pf-skill-group-bars{animation:.35s cubic-bezier(.22,1,.36,1) both pf-skill-items-in}.pf .pf-skill-group-bars[data-rtl=true]{animation-name:pf-skill-items-in-rtl}@keyframes pf-skill-items-in-rtl{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@media (width>=981px){.pf .pf-skill-group header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 12px;display:flex}.pf .pf-skill-group h4{flex:0 0 100%;order:-1}}.pf .pf-project-showcase{--pf-project-panel:var(--surface)}.pf[data-theme=dark] .pf-project-showcase{--pf-project-panel:var(--surface-2)}.pf .pf-project-toolbar{justify-content:space-between;align-items:center;gap:16px;margin:-22px 0 18px;display:flex}.pf .pf-project-hint{color:var(--muted);font-size:.82rem}.pf .pf-project-rail-controls{direction:ltr;flex:none;align-items:center;gap:10px;display:flex}.pf .pf-project-rail-controls[data-rtl=true]{flex-direction:row-reverse}.pf .pf-project-rail-controls>span{min-width:52px;color:var(--purple);text-align:center;font-size:.78rem;font-weight:700}.pf .pf-project-rail-controls button{border:1px solid var(--line);width:24px;height:24px;color:var(--purple);cursor:pointer;background:0 0;border-radius:50%;place-items:center;font-size:1rem;line-height:1;transition:background .25s,color .25s,transform .25s;display:inline-grid}.pf .pf-project-rail-controls button:hover{background:var(--purple);color:#fff;transform:translateY(-1px)}.pf .pf-project-rail-controls button:focus-visible,.pf .pf-project-grid:focus-visible{outline:2px solid var(--purple-2);outline-offset:3px}.pf .pf-project-rail-controls svg{width:14px;height:14px;display:block}.pf .pf-project-grid{--project-card-size:clamp(290px, 36vw, 420px);grid-auto-flow:column;grid-auto-columns:var(--project-card-size);scroll-snap-type:inline mandatory;scroll-behavior:smooth;overscroll-behavior-inline:contain;scrollbar-width:none;-ms-overflow-style:none;grid-template-rows:repeat(2,minmax(0,auto));grid-template-columns:none;gap:24px;padding:4px 4px 28px;padding-inline-end:calc(100% - var(--project-card-size));scroll-padding-inline:4px;display:grid;overflow:auto hidden}.pf .pf-project-grid::-webkit-scrollbar{display:none}.pf .pf-project-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--pf-project-panel);min-width:0;box-shadow:var(--shadow-sm,0 4px 14px #0000001f);scroll-snap-align:start;scroll-snap-stop:always;transition:transform .35s,box-shadow .35s,border-color .35s;overflow:hidden}.pf .pf-project-card.pf-visible:hover,.pf .pf-project-card.pf-visible:focus-within{border-color:color-mix(in srgb, var(--purple) 40%, var(--line));box-shadow:var(--shadow-md);transform:translateY(-6px)}.pf .pf-project-media{isolation:isolate;aspect-ratio:16/10;background:var(--surface-2);position:relative;overflow:hidden}.pf .pf-project-image{object-fit:cover;object-position:center;filter:saturate(.94)contrast(.98);width:100%;height:100%;transition:filter .5s,transform .7s cubic-bezier(.22,1,.36,1);display:block;transform:scale(1)}.pf .pf-project-media:before,.pf .pf-project-media:after{z-index:1;pointer-events:none;content:"";position:absolute;inset:0}.pf .pf-project-media:before{opacity:0;background:linear-gradient(112deg,#0000 20%,#ffffff57 48%,#0000 72%);transform:translate(-120%)}.pf .pf-project-media:after{background:linear-gradient(to bottom, transparent 0%, color-mix(in srgb, var(--pf-project-panel) 8%, transparent) 34%, color-mix(in srgb, var(--pf-project-panel) 42%, transparent) 66%, var(--pf-project-panel) 100%)}.pf .pf-project-card:hover .pf-project-image,.pf .pf-project-card:focus-within .pf-project-image{filter:saturate(1.08)contrast(1.03);transform:scale(1.07)}.pf .pf-project-card:hover .pf-project-media:before,.pf .pf-project-card:focus-within .pf-project-media:before{animation:.95s both pf-project-shine}.pf .pf-project-preview-scroll{width:100%;position:absolute;inset:0 0 auto}.pf .pf-project-media--scroll .pf-project-image{aspect-ratio:auto;object-fit:cover;width:100%;max-width:100%;height:auto}.pf .pf-project-overlay{z-index:2;background:color-mix(in srgb, var(--surface) 34%, transparent);opacity:0;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);pointer-events:none;place-items:center;transition:opacity .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;display:grid;position:absolute;inset:0}.pf .pf-project-card:hover .pf-project-overlay,.pf .pf-project-card:focus-within .pf-project-overlay{opacity:1;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.pf .pf-project-visit{background:var(--purple);color:#fff;pointer-events:auto;border:1px solid #ffffff7a;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:10px 16px;font-size:.78rem;font-weight:700;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 8px 24px #1c14504d}.pf a.pf-project-visit{text-decoration:none}.pf .pf-project-visit:before{content:"";background:#ffffff57;width:38%;transition:transform .65s cubic-bezier(.2,.7,.2,1);position:absolute;inset:-40% auto -40% -55%;transform:translate(-170%)skew(-24deg)}.pf .pf-project-card:hover .pf-project-visit:before,.pf .pf-project-card:focus-within .pf-project-visit:before{transform:translate(520%)skew(-24deg)}.pf a.pf-project-visit:focus-visible{outline-offset:4px;outline:2px solid #fff}.pf .pf-project-card-body{z-index:2;background:linear-gradient(180deg, transparent 0, var(--pf-project-panel) 52px);margin-top:-52px;padding:54px 22px 22px;position:relative}.pf .pf-project-category{color:var(--purple);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-size:.72rem;font-weight:700;display:block}.pf .pf-project-card h3{color:var(--ink);margin:0;font-size:1.1rem}.pf .pf-project-card p{color:var(--muted);margin:10px 0 18px;font-size:.86rem;line-height:1.7}.pf .pf-project-card ul{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pf .pf-project-card li{border:1px solid color-mix(in srgb, var(--purple) 26%, var(--line));background:var(--purple-soft);color:var(--purple);border-radius:999px;padding:5px 10px;font-size:.7rem;line-height:1}@keyframes pf-project-shine{0%{opacity:0;transform:translate(-120%)}20%{opacity:1}to{opacity:0;transform:translate(120%)}}@media (width<=650px){.pf .pf-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px;padding-block:48px}.pf .pf-project-grid{--project-card-size:min(86vw, 360px);gap:18px}.pf .pf-project-toolbar{margin-top:-20px}.pf .pf-project-hint{max-width:70%;font-size:.72rem}.pf .pf-project-rail-controls button{width:24px;height:24px}.pf .pf-project-card-body{padding-inline:18px}}@media (prefers-reduced-motion:reduce){.pf .pf-project-preview-scroll,.pf .pf-project-card:hover .pf-project-media:before,.pf .pf-project-card:focus-within .pf-project-media:before{animation:none}}.pf .pf-cta{isolation:isolate;color:#fff;text-align:center;background:radial-gradient(circle at 18% 20%,#ffffff21,#0000 36%),linear-gradient(120deg,#5142bd,#6759c9 52%,#5042b8);padding-block:70px;position:relative;overflow:hidden}.pf[data-theme=dark] .pf-cta{background:radial-gradient(circle at 18% 20%,#ac99ff21,#0000 36%),linear-gradient(120deg,#19152f,#28204b 52%,#17142d)}.pf .pf-cta-three{z-index:0;opacity:.52}.pf .pf-cta-three canvas{width:100%;height:100%;display:block}.pf .pf-cta .pf-container{z-index:1;position:relative}.pf .pf-cta h2{color:#fff;letter-spacing:-.02em;font-size:clamp(1.5rem,3.4vw,2.2rem);font-weight:700}.pf .pf-cta p{color:#ffffffd9;margin-top:10px;font-size:.9rem}.pf .pf-cta .pf-btn{margin-top:26px}.pf .pf-cta .pf-btn--light,.pf .pf-cta .pf-btn--light:hover{color:var(--purple);background:#fff;border:1px solid #ffffffd1}.pf .pf-cta .pf-btn--light:hover{box-shadow:0 8px 22px #0a081c33}.pf .pf-contact-cta .pf-btn,.pf .pf-contact-cta .pf-btn:hover{color:#fff}@media (width<=980px){.pf .pf-resume-grid{grid-template-columns:minmax(0,1fr)}.pf .pf-sidenav{z-index:20;border-bottom:1px solid var(--line);background:var(--page);scrollbar-width:none;flex-flow:row;width:100%;padding:10px 0;display:flex;position:sticky;top:58px;overflow-x:auto;box-shadow:0 8px 16px -16px #1c1b2b59}.pf .pf-sidenav::-webkit-scrollbar{display:none}.pf .pf-sidenav button{white-space:nowrap;flex:none}}
