:root{--brand:#2ecc8f;--brand-dark:#24b87c;--brand-soft:#eafaf3;--ink:#2f3238;--ink-soft:#8b9199;--line:#ececec;--bg:#f2f3f4;--card:#fff;--radius:4px;--shadow:0 2px 14px #14181e12;--shadow-hi:0 8px 26px #14181e1f;--font:"Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Poppins", var(--font);--wrap:1080px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;background-image:linear-gradient(115deg,#ffffffbf 0 22%,#0000 22% 40%,#ffffff80 40% 55%,#0000 55%),linear-gradient(200deg,#ffffff8c 0 30%,#0000 30% 62%,#fff6 62%);background-attachment:fixed;margin:0;font-size:15px;line-height:1.7}body:before{content:"";background:linear-gradient(90deg, var(--brand), #ffd0b0 60%, #ffe9dc);z-index:60;height:3px;position:fixed;inset:0 0 auto}img{max-width:100%;display:block}a{color:var(--brand);text-decoration:none}:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 22px}.topbar{z-index:40;position:relative}.topbar-in{justify-content:space-between;align-items:center;gap:20px;height:84px;display:flex}.brand{font-family:var(--font-display);color:var(--ink);letter-spacing:.2px;font-size:21px;font-weight:500}.brand b{color:var(--brand);font-weight:500}.nav{align-items:center;gap:26px;display:flex}.nav a{color:var(--ink-soft);border-bottom:2px solid #0000;padding:6px 0;font-size:14.5px;transition:color .16s,border-color .16s}.nav a:hover{color:var(--ink)}.nav a.on{color:var(--ink);border-bottom-color:var(--brand)}.burger{cursor:pointer;color:var(--ink);background:0 0;border:0;padding:8px;display:none}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:44px;overflow:hidden}.card-body{padding:42px 46px 50px}.banner{background:var(--brand);color:#fff;text-align:center;padding:46px 24px;position:relative;overflow:hidden}.banner:after{content:"";pointer-events:none;background:linear-gradient(118deg,#ffffff1f 0 18%,#0000 18% 34%,#ffffff17 34% 44%,#0000 44%),linear-gradient(-140deg,#ffffff1a 0 26%,#0000 26% 58%,#ffffff12 58% 70%,#0000 70%);position:absolute;inset:0}.banner h1{z-index:1;font-family:var(--font-display);letter-spacing:.3px;margin:0;font-size:40px;font-weight:700;position:relative}.hero{background:var(--brand);align-items:center;min-height:300px;padding:44px 46px;display:flex;position:relative}.hero:after{content:"";pointer-events:none;background:linear-gradient(118deg,#ffffff1f 0 18%,#0000 18% 34%,#ffffff17 34% 44%,#0000 44%),linear-gradient(-140deg,#ffffff1a 0 26%,#0000 26% 58%,#ffffff12 58% 70%,#0000 70%);position:absolute;inset:0}.hero-photo{z-index:2;aspect-ratio:4/5;object-fit:cover;object-position:center 22%;background:#f4f5f6;border:8px solid #fff;flex:0 0 280px;width:280px;height:auto;margin-bottom:-86px;position:relative;box-shadow:0 6px 20px #0000001f}.hero-text{z-index:1;text-align:center;color:#fff;flex:1;position:relative}.hero-text h1{font-family:var(--font-display);letter-spacing:.5px;margin:0;font-size:50px;font-weight:700;line-height:1.15}.hero-text .role{opacity:.95;margin:12px 0 22px;font-size:15px;font-weight:700}.social{justify-content:center;gap:12px;display:flex}.social a{width:38px;height:38px;color:var(--brand);background:#fff;border-radius:50%;place-items:center;transition:transform .16s,box-shadow .16s;display:grid}.social a:hover{transform:translateY(-2px);box-shadow:0 6px 14px #0000002e}.hero-under{padding:110px 46px 50px}.h-sec{font-family:var(--font-display);color:var(--ink);margin:0 0 26px;font-size:22px;font-weight:700}.h-sec em{color:var(--brand);font-style:normal}.h-sub{font-family:var(--font-display);margin:0 0 18px;font-size:17px;font-weight:600}.lead{color:var(--ink-soft);margin:0 0 20px}.mono{font-family:Roboto Mono,ui-monospace,monospace}.btn{border-radius:var(--radius);border:1px solid var(--line);color:var(--ink);font-family:var(--font);letter-spacing:.8px;text-transform:uppercase;cursor:pointer;background:#fff;align-items:center;gap:8px;padding:12px 22px;font-size:13px;font-weight:500;transition:box-shadow .16s,transform .16s,background .16s,color .16s;display:inline-flex}.btn:hover{box-shadow:var(--shadow-hi);transform:translateY(-1px)}.btn-fill{background:var(--brand);border-color:var(--brand);color:#fff}.btn-fill:hover{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}.about-grid{grid-template-columns:1fr 1fr;gap:46px;display:grid}.facts{grid-template-columns:140px 1fr;align-items:baseline;row-gap:14px;margin:0;display:grid}.facts dt{color:var(--ink)}.facts dd{color:var(--ink-soft);margin:0}.facts dd a{color:var(--brand)}.counters{border-top:1px solid var(--line);text-align:center;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:46px;padding-top:34px;display:grid}.counter b{font-family:var(--font-display);color:var(--brand);font-size:34px;font-weight:700;line-height:1.2;display:block}.counter span{color:var(--ink-soft);font-size:13px}.tl-grid{grid-template-columns:1fr 1fr;gap:46px;display:grid}.tl{border-left:1px solid var(--line);padding-left:22px;position:relative}.tl-item{margin-bottom:24px;position:relative}.tl-item:before{content:"";border:2px solid var(--brand);background:#fff;border-radius:50%;width:10px;height:10px;position:absolute;top:20px;left:-27px}.tl-card{border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:var(--radius);background:#fff;padding:16px 18px;transition:box-shadow .18s,transform .18s}.tl-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.tl-card h4{font-family:var(--font-display);margin:0 0 6px;font-size:15.5px;font-weight:600}.tl-meta{color:var(--ink-soft);margin-bottom:8px;font-size:12.5px}.tl-meta b{color:var(--brand);font-weight:500}.tl-card p{color:var(--ink-soft);margin:0;font-size:14px}.skills{grid-template-columns:1fr 1fr;gap:46px;margin-top:46px;display:grid}.skill{margin-bottom:16px}.skill-top{justify-content:space-between;margin-bottom:5px;font-size:12.5px;font-weight:500;display:flex}.skill-top span:last-child{color:var(--ink-soft)}.skill-track{background:#eceded;border-radius:4px;height:7px;overflow:hidden}.skill-fill{background:var(--brand);border-radius:4px;height:100%;transition:width 1s}.svc-grid{grid-template-columns:repeat(4,1fr);gap:26px;display:grid}.svc{text-align:center}.svc-ico{width:74px;height:74px;color:var(--brand);background:#f4f5f6;border-radius:50%;place-items:center;margin:0 auto 16px;transition:background .18s,color .18s,transform .18s;display:grid}.svc:hover .svc-ico{background:var(--brand);color:#fff;transform:translateY(-3px)}.svc h4{font-family:var(--font-display);margin:0 0 8px;font-size:15px;font-weight:600}.svc p{color:var(--ink-soft);margin:0 0 12px;font-size:13.5px}.tagrow{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.tag{letter-spacing:.3px;color:var(--brand);background:var(--brand-soft);border-radius:3px;padding:3px 8px;font-size:11px}.steps{grid-template-columns:repeat(4,1fr);gap:26px;display:grid}.step{border-top:2px solid var(--line);padding-top:16px;transition:border-color .18s}.step:hover{border-top-color:var(--brand)}.step b{color:var(--brand);font-family:var(--font-display);font-size:13px}.step h4{font-family:var(--font-display);margin:6px 0 8px;font-size:15px;font-weight:600}.step p{color:var(--ink-soft);margin:0;font-size:13.5px}.plans{grid-template-columns:repeat(3,1fr);align-items:start;gap:22px;display:grid}.plan{border:1px solid var(--line);border-radius:var(--radius);text-align:center;background:#fff;padding:28px 24px;transition:box-shadow .2s,transform .2s}.plan:hover{box-shadow:var(--shadow-hi);transform:translateY(-3px)}.plan.hi{box-shadow:var(--shadow-hi);padding:38px 24px}.plan h4{font-family:var(--font-display);margin:0 0 12px;font-size:15px;font-weight:500}.plan .price{font-family:var(--font-display);color:var(--ink);font-size:26px;font-weight:600;display:block}.plan .unit{color:var(--ink-soft);margin-bottom:18px;font-size:12px;display:block}.plan ul{margin:18px 0 0;padding:0;list-style:none}.plan li{color:var(--ink-soft);padding:6px 0;font-size:13.5px}.filters{flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:28px;display:flex}.filters button{cursor:pointer;font-family:var(--font);color:var(--ink-soft);background:0 0;border:0;border-radius:3px;padding:5px 12px;font-size:13px;transition:background .16s,color .16s}.filters button:hover{color:var(--ink)}.filters button.on{background:var(--brand);color:#fff}.proj-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.proj{border-radius:var(--radius);border:1px solid var(--line);cursor:pointer;text-align:left;font-family:var(--font);background:#fff;flex-direction:column;align-items:stretch;padding:0;transition:box-shadow .2s,transform .2s;display:flex;position:relative;overflow:hidden}.proj>*{width:100%}.proj-txt{flex:1}.proj:hover{box-shadow:var(--shadow-hi);transform:translateY(-3px)}.proj.on{border-color:var(--brand);box-shadow:var(--shadow-hi)}.proj-cover{aspect-ratio:4/3;color:#fff;place-items:center;display:grid;position:relative}.proj-cover:after{content:"";background:linear-gradient(140deg,#ffffff24 0 30%,#0000 30% 62%,#0000000f 62%);position:absolute;inset:0}.proj-cover svg{z-index:1;opacity:.95;position:relative}.proj-txt{padding:16px 18px 18px}.proj-txt span{letter-spacing:.6px;text-transform:uppercase;color:var(--brand);font-size:11.5px}.proj-txt h4{font-family:var(--font-display);color:var(--ink);margin:6px 0 0;font-size:15px;font-weight:600}.proj-detail{border:1px solid var(--line);border-radius:var(--radius);margin-top:26px;padding:28px 30px}.proj-detail h3{font-family:var(--font-display);margin:0 0 18px;font-size:20px;font-weight:700}.dl-row{border-top:1px solid var(--line);grid-template-columns:108px 1fr;gap:14px;padding:12px 0;display:grid}.dl-row:first-of-type{border-top:0}.dl-row dt{letter-spacing:.6px;text-transform:uppercase;color:var(--ink-soft);font-size:12px}.dl-row dd{color:var(--ink);margin:0}.proj-result{border-radius:var(--radius);background:var(--brand-soft);color:var(--brand-dark);margin-top:18px;padding:14px 18px;font-weight:500}.blog-grid{grid-template-columns:1fr 1fr;gap:24px;display:grid}.blog-card{border:1px solid var(--line);border-radius:var(--radius);color:inherit;background:#fff;transition:box-shadow .2s,transform .2s;display:block;overflow:hidden}.blog-card:hover{box-shadow:var(--shadow-hi);transform:translateY(-3px)}.blog-cover{aspect-ratio:16/8;place-items:center;display:grid;position:relative}.blog-cover svg{opacity:.9}.date-badge{z-index:2;text-align:center;background:#fff;border-radius:3px;padding:6px 10px;line-height:1.15;position:absolute;top:12px;right:12px;box-shadow:0 2px 8px #0000001f}.date-badge b{font-family:var(--font-display);color:var(--brand);font-size:17px;font-weight:600;display:block}.date-badge span{color:var(--ink-soft);font-size:11px}.blog-txt{text-align:center;padding:14px 20px 22px}.blog-txt .kicker{letter-spacing:.5px;color:var(--ink-soft);text-transform:uppercase;font-size:11.5px}.blog-txt h3{font-family:var(--font-display);color:var(--ink);margin:8px 0;font-size:16px;font-weight:600}.blog-txt p{color:var(--ink-soft);margin:0;font-size:13.5px}article.prose{max-width:720px;margin:0 auto}article.prose .meta{color:var(--ink-soft);letter-spacing:.4px;font-size:12.5px}article.prose h1{font-family:var(--font-display);margin:10px 0 22px;font-size:32px;font-weight:700;line-height:1.25}article.prose h2{font-family:var(--font-display);margin:34px 0 12px;font-size:20px;font-weight:600}article.prose h3{font-family:var(--font-display);margin:26px 0 10px;font-size:17px;font-weight:600}article.prose p{color:#4a4f57;margin:0 0 18px}article.prose ul,article.prose ol{color:#4a4f57;margin:0 0 18px;padding-left:22px}article.prose li{margin-bottom:8px}article.prose a{color:var(--brand)}article.prose a.btn{color:var(--ink)}article.prose a.btn.btn-fill{color:#fff}article.prose blockquote{border-left:3px solid var(--brand);color:var(--ink-soft);margin:24px 0;padding:4px 0 4px 20px}article.prose code{background:#f4f5f6;border-radius:3px;padding:2px 6px;font-family:Roboto Mono,monospace;font-size:13.5px}article.prose pre{color:#eceff1;border-radius:var(--radius);background:#2f3238;padding:20px;overflow-x:auto}article.prose pre code{color:inherit;background:0 0;padding:0}.post-cta{border-top:1px solid var(--line);text-align:center;max-width:720px;margin:44px auto 0;padding-top:28px}.post-cta h4{font-family:var(--font-display);margin:0 0 8px;font-size:18px;font-weight:600}.post-cta p{color:var(--ink-soft);margin:0 0 18px}.faq-item{border-bottom:1px solid var(--line)}.faq-q{cursor:pointer;text-align:left;width:100%;font-family:var(--font-display);color:var(--ink);background:0 0;border:0;justify-content:space-between;align-items:center;gap:16px;padding:18px 2px;font-size:15px;font-weight:500;display:flex}.faq-q .plus{color:var(--brand);font-size:20px;line-height:1;transition:transform .2s}.faq-q[aria-expanded=true] .plus{transform:rotate(45deg)}.faq-a{color:var(--ink-soft);padding:0 2px 18px;font-size:14px}.brief{border:1px solid var(--line);border-radius:var(--radius);background:#fafbfb;padding:26px 28px}.q+.q{margin-top:18px}.q-label{letter-spacing:.6px;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;font-size:12px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);color:var(--ink);cursor:pointer;font-size:13px;font-family:var(--font);background:#fff;border-radius:20px;padding:6px 14px;transition:all .16s}.chip:hover{border-color:var(--brand);color:var(--brand-dark)}.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}.brief-out{border-top:1px dashed var(--line);margin-top:20px;padding-top:18px}.brief-out p{color:var(--ink);margin:0 0 14px;font-size:14px}.brief-actions{flex-wrap:wrap;gap:10px;display:flex}.contact-grid{grid-template-columns:1fr 1fr;gap:46px;display:grid}.contact-list{margin:0;padding:0;list-style:none}.contact-list li{align-items:center;gap:14px;padding:12px 0;display:flex}.contact-list .ico{color:var(--brand);flex:none}.contact-list a{color:var(--ink)}.contact-list a:hover{color:var(--brand)}.field{margin-bottom:22px;position:relative}.field label{letter-spacing:.5px;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px;font-size:12px;display:block}.field input,.field textarea,.field select{border:0;border-bottom:1px solid var(--line);width:100%;font-family:var(--font);color:var(--ink);background:0 0;padding:10px 2px;font-size:15px;transition:border-color .16s}.field textarea{resize:vertical;min-height:110px}.field input:focus,.field textarea:focus,.field select:focus{border-bottom-color:var(--brand);outline:none}.map-box{border:1px solid var(--line);border-radius:var(--radius);background:#fafbfb;align-items:center;gap:16px;margin-bottom:22px;padding:24px 26px;display:flex}.map-box .ico{color:var(--brand)}.map-box b{font-family:var(--font-display);font-weight:600;display:block}.map-box span{color:var(--ink-soft);font-size:13.5px}.note{color:var(--ink-soft);margin-top:12px;font-size:12.5px}.product{color:#fff;border-radius:var(--radius);background:#2f3238;grid-template-columns:1.15fr 1fr;align-items:center;gap:40px;padding:36px 38px;display:grid}.product .kicker{letter-spacing:1px;text-transform:uppercase;color:var(--brand);font-size:11.5px}.product h3{font-family:var(--font-display);margin:8px 0 14px;font-size:26px;font-weight:700}.product p{color:#c3c8ce;margin:0 0 20px;font-size:14.5px}.product dl{margin:0}.spec{border-top:1px solid #ffffff1f;grid-template-columns:1fr auto;gap:10px;padding:9px 0;font-size:13.5px;display:grid}.spec:first-child{border-top:0}.spec dt{color:#9aa1a9}.spec dd{text-align:right;margin:0}.cta{text-align:center}.cta h2{font-family:var(--font-display);margin:0 0 10px;font-size:26px;font-weight:700}.cta p{color:var(--ink-soft);margin:0 0 22px}.cta-row{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.divider{background:var(--line);height:1px;margin:46px 0}.site-footer{color:var(--ink-soft);justify-content:space-between;align-items:center;padding:4px 0 40px;font-size:12.5px;display:flex}@media (width<=900px){.about-grid,.tl-grid,.skills,.contact-grid,.product{grid-template-columns:1fr;gap:30px}.svc-grid,.steps,.proj-grid{grid-template-columns:repeat(2,1fr)}.plans{grid-template-columns:1fr}.hero{text-align:center;flex-direction:column;padding:34px 24px 38px}.hero-photo{flex:none;width:210px;margin:0 auto 22px}.hero-text{margin-top:0}.hero-text h1{font-size:34px}.hero-under{padding:34px 26px 40px}.card-body{padding:30px 26px 36px}.banner h1{font-size:30px}.counters{grid-template-columns:repeat(2,1fr);row-gap:24px}}@media (width<=640px){.nav{display:none}.nav.open{border-radius:var(--radius);box-shadow:var(--shadow-hi);z-index:50;background:#fff;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 18px;display:flex;position:absolute;top:76px;left:22px;right:22px}.nav.open a{border-bottom:1px solid var(--line);width:100%;padding:9px 0}.nav.open a.on{border-bottom-color:var(--brand)}.burger{display:inline-flex}.svc-grid,.steps,.proj-grid,.blog-grid{grid-template-columns:1fr}.facts{grid-template-columns:1fr;row-gap:4px}.facts dd{margin-bottom:10px}article.prose h1{font-size:26px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
