@import"https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&family=Syne:wght@400;500;600;700;800&display=swap";:root{color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--bg: #ffffff;--card: #ffffff;--text: #111111;--muted: #8a8f98;--muted-2: #b8bcc3;--border: #e8e8e8;--accent: #111111;--highlight: #f5a623;--radius: 2px;--shadow: 0 6px 24px rgba(0, 0, 0, .04);--font-body: "Poppins", "Segoe UI", system-ui, -apple-system, sans-serif;--font-display: "Syne", "Poppins", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100vh;font-family:var(--font-body);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{max-width:100%;display:block}ul{list-style:none;margin:0;padding:0}.layout{display:flex;gap:30px;padding:40px 60px;max-width:1400px;margin:0 auto;height:100vh;align-items:stretch;box-sizing:border-box}.main-content{flex:1;background:var(--card);height:100%;padding:70px 60px;box-shadow:var(--shadow);overflow-y:auto;overflow-x:hidden}.main-content::-webkit-scrollbar{width:6px}.main-content::-webkit-scrollbar-thumb{background:#ddd;border-radius:3px}.main-content::-webkit-scrollbar-track{background:transparent}@media (min-width: 993px){.main-content.shake{animation:contentShake .5s cubic-bezier(.36,.07,.19,.97) both}}@keyframes contentShake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-6px)}40%,60%{transform:translate(6px)}}@media (max-width: 992px){.layout{flex-direction:column;height:auto;padding:20px}body{overflow:auto}.main-content{height:auto;padding:40px 30px;overflow:visible}}@media (max-width: 768px){.layout{padding:68px 0 0;gap:0}.main-content{padding:30px 20px;box-shadow:none;background:transparent}}html,body,#root{height:100%}body{background-color:var(--bg);overflow:hidden;scroll-behavior:smooth}@media (max-width: 992px){html,body,#root{height:auto;min-height:100%}body{overflow:auto}}.noise{position:fixed;top:-50%;left:-50%;right:-50%;bottom:-50%;width:200vw;height:200vh;background-repeat:repeat;opacity:.5;pointer-events:none;z-index:0;animation:bg-animation .2s infinite;visibility:visible}@media (max-width: 768px){.noise{display:none}}@keyframes bg-animation{0%{transform:translate(0)}10%{transform:translate(-5%,-5%)}20%{transform:translate(-10%,5%)}30%{transform:translate(5%,-10%)}40%{transform:translate(-5%,15%)}50%{transform:translate(-10%,5%)}60%{transform:translate(15%)}70%{transform:translateY(10%)}80%{transform:translate(-15%)}90%{transform:translate(10%,5%)}to{transform:translate(5%)}}.layout{position:relative;z-index:1}.sidebar{width:280px;min-width:280px;background:var(--card);padding:40px 30px 30px;display:flex;flex-direction:column;align-items:center;box-shadow:var(--shadow);height:100%;overflow:hidden}.sidebar .avatar{width:100px;height:100px;border-radius:50%;object-fit:cover;margin-bottom:24px;filter:grayscale(100%)}.sidebar nav{display:flex;flex-direction:column;width:100%;align-items:center;margin-bottom:24px}.sidebar nav button{background:none;border:none;font-size:.95rem;font-weight:500;margin:4px 0;color:var(--muted);letter-spacing:.3px;transition:color .2s ease}.sidebar nav button:hover{color:var(--text)}.sidebar nav button.active{color:var(--highlight);font-weight:600}.mobile-topbar{display:none}.mobile-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;filter:grayscale(100%)}.sidebar-toggle{background:none;border:none;padding:0;cursor:pointer;position:relative;width:36px;height:36px;z-index:1101}.sidebar-toggle span{position:absolute;left:7px;right:7px;height:2px;background:var(--text);transition:transform .25s ease,opacity .2s ease,top .25s ease}.sidebar-toggle span:nth-child(1){top:11px}.sidebar-toggle span:nth-child(2){top:17px}.sidebar-toggle span:nth-child(3){top:23px}.sidebar-toggle.open span:nth-child(1){top:17px;transform:rotate(45deg)}.sidebar-toggle.open span:nth-child(2){opacity:0}.sidebar-toggle.open span:nth-child(3){top:17px;transform:rotate(-45deg)}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:999;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width: 992px){.sidebar{width:100%;min-width:0;height:auto}}@media (max-width: 768px){.sidebar{background:var(--bg);box-shadow:none}}@media (max-width: 768px){.mobile-topbar{display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;padding:14px 18px;background:var(--bg);z-index:1100}.sidebar{position:fixed;top:0;right:-320px;width:280px;height:100vh;padding-top:88px;transition:right .3s ease;z-index:1000;overflow-y:auto}.sidebar.open{right:0}}.footer{width:100%;text-align:center;margin-top:auto;color:var(--muted);font-size:.8rem}.footer .copyright{margin-bottom:18px;line-height:1.7}.footer .copyright .brand{color:var(--text);font-weight:600}.footer .social-icons{display:flex;justify-content:center;gap:10px}.footer .social-icons a{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:var(--muted-2);color:#fff;border-radius:4px;font-size:.85rem;transition:background .2s ease}.footer .social-icons a:hover{background:var(--text)}.footer .social-icons svg{width:14px;height:14px;fill:currentColor}.hero-section{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100%;text-align:center;padding:20px}@media (max-width: 768px){.hero-section{min-height:calc(100vh - 68px);padding:20px 16px}}.hero-title{font-family:var(--font-display);font-size:clamp(24px,3.4vw,44px);font-weight:700;letter-spacing:.01em;margin:0 0 18px;color:var(--text);line-height:1.2;white-space:nowrap;max-width:100%;word-break:break-word}@media (max-width: 900px){.hero-title{white-space:normal;font-size:clamp(22px,6vw,32px);line-height:1.25}}@media (max-width: 480px){.hero-title{font-size:clamp(20px,7vw,26px)}}.animateText{position:relative;height:40px;width:100%;max-width:600px;overflow:hidden}.text{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;text-align:center;opacity:0;transition:opacity .3s ease;white-space:nowrap;font-size:clamp(13px,1.4vw,18px);font-weight:400;color:var(--muted);letter-spacing:.5px}@media (max-width: 480px){.animateText{height:32px}.text{font-size:12px;letter-spacing:.3px}}.animateText .text:first-child,.text.active{opacity:1}.text span{display:inline-block;opacity:0;transform:translateZ(0)}@keyframes flyIn{0%{transform:translate3d(var(--x,0),var(--y,0),var(--z,0));opacity:0}to{transform:translateZ(0);opacity:1}}.section{position:relative;padding:55px 40px 40px;border:1px solid var(--border);margin-bottom:50px}.section-heading{position:absolute;top:-20px;left:40px;background:#efefef;padding:10px 30px 9px;font-family:var(--font-body);font-size:15px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--text);line-height:1.4;display:inline-block}.about-section{padding-top:10px}.about-intro{color:var(--muted);font-size:.95rem;line-height:1.9;margin:14px 0 28px}.about-divider{height:1px;background:var(--border);margin:10px 0 28px}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 40px}.info-grid .row{display:grid;grid-template-columns:90px 1fr;align-items:center;font-size:.92rem}.info-grid .row .label{color:var(--muted)}.info-grid .row .value{color:var(--text);font-weight:500}.about-btn{display:inline-block;margin-top:32px;padding:12px 26px;background:var(--muted-2);color:#fff;border:none;font-size:.8rem;letter-spacing:2px;font-weight:600;text-transform:uppercase;transition:background .2s ease}.about-btn:hover{background:var(--text)}.knowledge-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:28px}.skill-block h3{font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin:0 0 24px}.skill{margin-bottom:22px}.skill-head{display:flex;justify-content:space-between;font-size:.88rem;margin-bottom:6px}.skill-head .name{color:var(--text)}.skill-head .pct{color:var(--muted)}.skill-bar{position:relative;height:2px;background:#ebebeb}.skill-bar>span{position:absolute;top:0;left:0;height:100%;background:var(--text);transition:width 1.4s cubic-bezier(.22,1,.36,1)}@media (prefers-reduced-motion: reduce){.skill-bar>span{transition:none}}.stack-divider{height:1px;background:var(--border);margin:36px 0 28px}.tech-stack{display:flex;flex-direction:column;gap:16px}.tech-group{display:grid;grid-template-columns:140px 1fr;align-items:start;gap:18px}.tech-label{font-size:.82rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--text);padding-top:6px}.tech-pills{display:flex;flex-wrap:wrap;gap:8px}.tech-pill{padding:5px 12px;background:#f4f4f4;color:var(--text);font-size:.82rem;border:1px solid #ececec;transition:background .2s ease,color .2s ease}.tech-pill:hover{background:var(--text);color:#fff;border-color:var(--text)}@media (max-width: 768px){.tech-group{grid-template-columns:1fr;gap:8px}}.timeline-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:28px}.timeline-col h3{font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin:0 0 24px}.timeline-item{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid var(--border)}.timeline-item:last-child{border-bottom:none}.timeline-item .info h4{margin:0 0 4px;font-size:.95rem;font-weight:700}.timeline-item .info p{margin:0;color:var(--muted);font-size:.85rem}.timeline-item .date{display:flex;align-items:center;justify-content:center;height:32px;border:1px solid var(--border);padding:0 14px;font-size:.78rem;color:var(--muted);white-space:nowrap;flex-shrink:0}.certs-heading{font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin:0 0 22px}.certs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.cert-card{display:flex;flex-direction:column;text-align:left;padding:0;background:#fff;border:1px solid var(--border);cursor:pointer;transition:transform .25s ease,box-shadow .25s ease}.cert-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px #0000000f}.cert-thumb{position:relative;aspect-ratio:4/3;background-color:#f4f4f4;background-size:cover;background-position:center;background-repeat:no-repeat;filter:grayscale(.4)}.cert-thumb-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#c4c4c4;background:#f4f4f4;z-index:-1}.cert-thumb-fallback svg{width:48px;height:48px}.cert-card{height:100%}.cert-info{padding:14px 16px 16px;display:flex;flex-direction:column;gap:2px;flex:1}.cert-info h4{margin:0;font-size:.92rem;font-weight:700;line-height:1.3;min-height:calc(.92rem * 1.3 * 2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cert-info p{margin:0;font-size:.8rem;color:var(--muted)}.cert-date{margin-top:auto;padding-top:10px;font-size:.74rem;color:var(--muted);letter-spacing:.5px}.cert-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;z-index:1200;display:flex;align-items:center;justify-content:center;padding:40px;animation:certFadeIn .2s ease}@keyframes certFadeIn{0%{opacity:0}to{opacity:1}}.cert-modal-close{position:absolute;top:20px;right:28px;background:transparent;border:none;color:#fff;font-size:2.5rem;cursor:pointer;line-height:1}.cert-modal-inner{max-width:90vw;max-height:90vh;display:flex;flex-direction:column;gap:14px;align-items:center}.cert-modal-inner img{max-width:100%;max-height:80vh;background:#fff;object-fit:contain}.cert-pdf{width:min(900px,90vw);height:80vh;border:0;background:#fff}.cert-modal-meta{color:#fff;text-align:center}.cert-modal-meta h4{margin:0 0 4px;font-size:1.05rem;font-weight:700}.cert-modal-meta p{margin:0;font-size:.85rem;color:#bfbfbf}@media (max-width: 768px){.certs-grid{grid-template-columns:1fr 1fr}}@media (max-width: 480px){.certs-grid{grid-template-columns:1fr}}.testimonial{padding:10px 10px 0}.testimonial .quote-mark{font-size:3.2rem;color:var(--text);line-height:1;font-family:Georgia,serif;font-weight:700}.testimonial blockquote{margin:0 0 24px;font-size:.92rem;line-height:1.9;color:var(--muted)}.testimonial .author{display:flex;align-items:center;gap:14px}.testimonial .author .avatar-sm{width:44px;height:44px;border-radius:50%;background:#ccc;object-fit:cover;filter:grayscale(100%)}.testimonial .author h5{margin:0;font-size:.95rem;font-weight:700}.testimonial .author span{color:var(--muted);font-size:.82rem}@media (max-width: 768px){.info-grid,.knowledge-grid,.timeline-grid{grid-template-columns:1fr;gap:20px}.section{padding:30px 20px}.section-heading{left:20px}}.services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:28px}.service-card{padding:36px 28px;border:1px solid var(--border);transition:transform .25s ease,box-shadow .25s ease}.service-card:hover{transform:translateY(-4px);box-shadow:0 10px 24px #0000000f}.service-card .icon{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:#f3f3f3;color:var(--text);margin-bottom:18px}.service-card .icon svg{width:22px;height:22px}.service-card h3{font-size:1rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin:0 0 10px}.service-card p{font-size:.88rem;line-height:1.8;color:var(--muted);margin:0}@media (max-width: 768px){.services-grid{grid-template-columns:1fr}}.portfolio-notice{display:flex;gap:16px;align-items:flex-start;padding:18px 22px;margin:24px 0 8px;background:#fafafa;border-left:3px solid var(--text);font-size:.88rem;line-height:1.7;color:var(--muted)}.portfolio-notice .notice-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;background:var(--text);color:#fff}.portfolio-notice .notice-icon svg{width:18px;height:18px}.portfolio-notice .notice-text strong{color:var(--text);font-weight:700;display:inline;margin-right:4px}.portfolio-notice .notice-text a{color:var(--text);text-decoration:underline;text-underline-offset:2px}.portfolio-notice .notice-text a:hover{color:var(--highlight)}.private-badge{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:#000000c7;color:#fff;font-size:.7rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2;pointer-events:none}.private-badge svg{width:11px;height:11px}.portfolio-filters{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin:24px 0 36px;font-size:.9rem;color:var(--muted)}.portfolio-filters button{background:none;border:none;padding:6px 4px;color:var(--muted);position:relative;letter-spacing:.5px;transition:color .2s ease}.portfolio-filters button:not(:last-child):after{content:"";position:absolute;right:-14px;top:50%;transform:translateY(-50%);width:4px;height:4px;background:var(--muted-2);border-radius:50%}.portfolio-filters button:hover,.portfolio-filters button.active{color:var(--highlight)}.portfolio-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.portfolio-item{position:relative;overflow:hidden;aspect-ratio:4/3;background:#eee;cursor:pointer}.portfolio-item img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%);transition:transform .6s ease,filter .4s ease}.portfolio-item:hover img{transform:scale(1.05);filter:grayscale(0)}.portfolio-item .overlay{position:absolute;left:18px;bottom:18px;background:#fff;padding:12px 18px;opacity:0;transform:translateY(8px);transition:opacity .3s ease,transform .3s ease}.portfolio-item:hover .overlay{opacity:1;transform:translateY(0)}.portfolio-item .overlay h4{margin:0 0 2px;font-size:.95rem;font-weight:700}.portfolio-item .overlay span{font-size:.8rem;color:var(--muted)}@media (max-width: 768px){.portfolio-grid{grid-template-columns:1fr}}.blog-list{display:flex;flex-direction:column;gap:40px;margin-top:28px}.blog-item{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding-bottom:36px;border-bottom:1px solid var(--border);align-items:center}.blog-item:last-child{border-bottom:none;padding-bottom:0}.blog-item .thumb{position:relative;aspect-ratio:4/3;overflow:hidden;background:#eee}.blog-item .thumb img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%);transition:transform .6s ease}.blog-item:hover .thumb img{transform:scale(1.05)}.blog-item .date-tag{position:absolute;top:20px;left:0;background:#fff;padding:8px 14px;font-size:.8rem;color:var(--text)}.blog-item .meta{font-size:.82rem;color:var(--muted);margin-bottom:10px;display:flex;gap:10px;align-items:center}.blog-item .meta b{color:var(--text);font-weight:600}.blog-item .meta .dot{width:4px;height:4px;border-radius:50%;background:var(--muted-2);display:inline-block}.blog-item h3{margin:0 0 22px;font-size:1.35rem;line-height:1.3;font-weight:700}.blog-item .read-more{display:inline-block;padding:10px 22px;background:var(--muted-2);color:#fff;font-size:.78rem;letter-spacing:2px;text-transform:uppercase;font-weight:600;border:none;transition:background .2s ease}.blog-item .read-more:hover{background:var(--text)}@media (max-width: 768px){.blog-item{grid-template-columns:1fr}}.blog-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;z-index:1200;display:flex;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto;animation:blogFadeIn .2s ease}@keyframes blogFadeIn{0%{opacity:0}to{opacity:1}}.blog-modal-close{position:fixed;top:20px;right:28px;background:transparent;border:none;color:#fff;font-size:2.5rem;cursor:pointer;line-height:1;z-index:1210}.blog-modal-inner{background:#fff;max-width:760px;width:100%;margin:0 auto;box-shadow:0 20px 60px #0006}.blog-modal-hero{width:100%;aspect-ratio:16/7;overflow:hidden}.blog-modal-hero img{width:100%;height:100%;object-fit:cover;filter:grayscale(.2)}.blog-modal-body{padding:40px 48px 48px}.blog-modal-meta{display:flex;align-items:center;gap:10px;font-size:.82rem;color:var(--muted);margin-bottom:14px;letter-spacing:.3px}.blog-modal-meta .dot{width:4px;height:4px;border-radius:50%;background:var(--muted-2)}.blog-modal-body h2{font-size:clamp(1.4rem,2.4vw,1.9rem);margin:0 0 14px;line-height:1.25;font-weight:800}.blog-modal-byline{font-size:.9rem;color:var(--muted);margin-bottom:28px;padding-bottom:22px;border-bottom:1px solid var(--border)}.blog-modal-byline b{color:var(--text);font-weight:600}.blog-modal-body h3{font-size:1.1rem;font-weight:700;margin:28px 0 10px;line-height:1.3}.blog-modal-body p{font-size:.98rem;line-height:1.85;color:#333;margin:0 0 16px}@media (max-width: 640px){.blog-modal-body{padding:28px 22px 32px}}.contact-map{width:100%;height:320px;margin:28px 0 32px;border:0;filter:grayscale(100%) contrast(.95)}.contact-details{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:32px;font-size:.92rem;color:var(--muted)}.contact-details strong{display:block;color:var(--text);font-weight:600;margin-bottom:4px;font-size:.82rem;letter-spacing:1px;text-transform:uppercase}@media (max-width: 768px){.contact-details{grid-template-columns:1fr}}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-form input,.contact-form select,.contact-form textarea{width:100%;padding:14px 16px;border:1px solid var(--border);background:#fff;font:inherit;color:var(--text);outline:none;transition:border-color .2s ease}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--text)}.contact-form textarea{min-height:140px;resize:vertical;grid-column:1 / -1}.contact-form .captcha{grid-column:1 / -1;display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:center}.contact-form .captcha .code{padding:14px;background:#f3f3f3;text-align:center;font-weight:600;letter-spacing:3px;color:var(--muted);border:1px solid var(--border)}.contact-form .submit{grid-column:1 / -1;justify-self:start;padding:14px 32px;background:var(--muted-2);color:#fff;border:none;font-size:.8rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;transition:background .2s ease}.contact-form .submit:hover{background:var(--text)}@media (max-width: 768px){.contact-form{grid-template-columns:1fr}}
