@import"https://fonts.googleapis.com/css2?family=Sora:wght@600;700;800&family=Inter:wght@400;500;600;700&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Inter,sans-serif;font-size:1rem;line-height:1.6;color:var(--color-dark-2);background-color:var(--color-neutral-bg);-webkit-font-smoothing:antialiased;overflow-x:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul,ol{list-style:none}button{font:inherit;cursor:pointer;border:none;background:none}input,textarea{font:inherit}h1,h2,h3,h4{font-family:Sora,sans-serif;line-height:1.2;letter-spacing:-.02em;font-weight:700}:root{--color-primary: #1A56DB;--color-primary-alt: #0D6EFD;--color-accent-cyan: #06B6D4;--color-dark: #0F172A;--color-dark-2: #1E293B;--color-neutral-bg: #F8FAFC;--color-white: #FFFFFF;--color-text-muted: #64748B;--color-border: #E2E8F0;--tint-blue: rgba(26, 86, 219, .08);--tint-blue-border: rgba(26, 86, 219, .16);--tint-cyan: rgba(6, 182, 212, .1);--tint-navy: rgba(13, 110, 253, .1);--color-accent-mint: #2E7D32;--color-accent-mint-bg: #E8F5E9;--color-accent-blue-bg: #EEF4FF;--gradient-primary: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-alt) 55%, var(--color-accent-cyan) 100%);--gradient-dark: linear-gradient(160deg, var(--color-dark) 0%, var(--color-dark-2) 100%);--gradient-text: linear-gradient(100deg, var(--color-primary-alt) 0%, var(--color-accent-cyan) 100%);--font-heading: "Sora", sans-serif;--font-body: "Inter", sans-serif;--text-hero: clamp(2.75rem, 5vw, 3.5rem);--text-h1: clamp(2.1rem, 4vw, 3rem);--text-h2: clamp(1.5rem, 3vw, 2.25rem);--text-h3: 1.2rem;--text-body: 1rem;--text-small: .875rem;--text-caption: .75rem;--space-xs: .5rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 4rem;--space-3xl: 6rem;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--duration-fast: .2s;--duration-base: .4s;--duration-slow: .8s;--radius-card: 20px;--radius-btn: 10px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-card: 0 1px 3px rgba(15, 23, 42, .05), 0 6px 16px rgba(15, 23, 42, .05);--shadow-lift: 0 16px 30px -10px rgba(15, 23, 42, .18), 0 30px 60px -20px rgba(26, 86, 219, .2);--shadow-glow: 0 1px 2px rgba(15, 23, 42, .1), 0 10px 24px -8px rgba(26, 86, 219, .5);--navbar-height: 73px;--banner-height: 44px}body.has-hero main{padding-top:var(--navbar-height)}body.has-hero:not(.is-home) [data-hero]{position:relative;isolation:isolate;min-height:calc(100vh - var(--banner-height));min-height:calc(100dvh - var(--banner-height));display:flex;flex-direction:column;justify-content:center;margin-top:calc(-1 * var(--navbar-height));padding-block:calc(var(--navbar-height) + var(--space-2xl)) var(--space-2xl);background:radial-gradient(48% 55% at 85% 75%,rgba(26,86,219,.28),transparent 70%),radial-gradient(30% 40% at 78% 82%,rgba(6,182,212,.14),transparent 70%),var(--color-dark);color:var(--color-white);overflow:hidden}.hero-particles{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}body.has-hero:not(.is-home) [data-hero] h1{color:var(--color-white)}body.has-hero:not(.is-home) [data-hero]:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse at center,#000 20%,transparent 85%);mask-image:radial-gradient(ellipse at center,#000 20%,transparent 85%);z-index:-1}body.has-hero:not(.is-home) [data-hero] .services-hero-subtext,body.has-hero:not(.is-home) [data-hero] .products-hero-subtext{color:#ffffffb3}@media(max-width:991px){body.has-hero:not(.is-home) [data-hero]{min-height:auto;padding-block:calc(var(--navbar-height) + var(--space-xl)) var(--space-2xl)}}.container{width:100%;max-width:1200px;margin-inline:auto;padding-inline:var(--space-md)}section{padding-block:var(--space-3xl);position:relative}.text-center{text-align:center}.section-label{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:var(--text-small);font-weight:600;color:var(--color-primary);background-color:var(--tint-blue);border:1px solid var(--tint-blue-border);padding:6px 16px 6px 12px;border-radius:999px;margin-bottom:var(--space-md)}.section-label:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gradient-primary)}.section-label--on-dark{background-color:#ffffff12;border-color:#ffffff24;color:#bfdbfe}.section-label--on-dark:before{background:var(--color-accent-cyan);box-shadow:0 0 0 4px #06b6d440}.section-heading{font-size:var(--text-h2);font-weight:700;margin-bottom:var(--space-md)}.gradient-text{background:var(--gradient-text);-webkit-background-clip:text;background-clip:text;color:transparent}.icon{width:40px;height:40px;color:var(--color-primary);flex-shrink:0}.icon-badge{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;margin-bottom:var(--space-sm);background-color:var(--color-white);border:1px solid var(--color-border);transition:transform var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}.icon-badge .icon{width:22px;height:22px;margin-bottom:0;color:var(--color-primary)}.card:hover .icon-badge{transform:scale(1.06);border-color:var(--tint-blue-border)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:13px 26px;border-radius:var(--radius-btn);font-weight:600;font-size:var(--text-body);transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-sm{padding:10px 20px;font-size:var(--text-small)}.btn-primary{background:var(--gradient-primary);color:var(--color-white);box-shadow:var(--shadow-glow)}.btn-primary:hover{box-shadow:0 1px 2px #0f172a1a,0 16px 32px -8px #1a56db8c}.btn-white{background-color:var(--color-white);color:var(--color-primary);box-shadow:0 12px 24px -8px #00000040}.btn-white:hover{background-color:var(--color-neutral-bg)}.btn-outline{background-color:transparent;color:var(--color-white);border:1px solid rgba(255,255,255,.28);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.btn-outline:hover{background-color:#ffffff1a;border-color:#ffffff80}.btn-outline-dark{background-color:transparent;color:var(--color-dark-2);border:1px solid var(--color-border)}.btn-outline-dark:hover{background-color:var(--color-white);border-color:var(--color-primary);color:var(--color-primary)}.btn-link{color:var(--color-primary);font-weight:600}.btn-link:hover{color:var(--color-primary-alt)}.link-arrow{display:inline-block;transition:transform var(--duration-fast) var(--ease-out)}.btn-link:hover .link-arrow{transform:translate(4px)}.card{position:relative;background-color:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-lg);overflow:hidden;transition:transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}.card:after{content:"";position:absolute;inset:0;background:radial-gradient(480px circle at var(--spot-x, 50%) var(--spot-y, 0%),var(--tint-blue),transparent 60%);opacity:0;transition:opacity var(--duration-base) var(--ease-out);pointer-events:none}.card:hover{transform:translateY(-6px);border-color:var(--tint-blue-border);box-shadow:var(--shadow-lift)}.card:hover:after{opacity:1}.card .icon{transition:transform var(--duration-base) var(--ease-out),color var(--duration-base) var(--ease-out)}[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity var(--duration-slow) var(--ease-out),transform var(--duration-slow) var(--ease-out);transition-delay:var(--reveal-delay, 0s)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}[data-reveal=fade]{transform:none}[data-reveal=left]{transform:translate(-32px)}[data-reveal=left].is-visible{transform:translate(0)}[data-reveal=right]{transform:translate(32px)}[data-reveal=right].is-visible{transform:translate(0)}[data-reveal=scale]{transform:scale(.94)}[data-reveal=scale].is-visible{transform:scale(1)}.blob-field{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.35;animation:blobFloat 18s var(--ease-in-out) infinite}.grid-overlay{position:absolute;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 15%,black 40%,transparent 80%);mask-image:radial-gradient(ellipse 70% 60% at 50% 15%,black 40%,transparent 80%)}.dot-grid{position:absolute;inset:0;background-image:radial-gradient(currentColor 1px,transparent 1px);background-size:22px 22px;opacity:.08;pointer-events:none}@keyframes blobFloat{0%,to{transform:translate(0) scale(1)}33%{transform:translate(4%,6%) scale(1.08)}66%{transform:translate(-5%,-4%) scale(.94)}}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes scrollDot{0%{transform:translate(-50%);opacity:1}70%{transform:translate(-50%,14px);opacity:0}to{transform:translate(-50%);opacity:0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}[data-reveal]{opacity:1;transform:none;transition:none}.blob,.card,.btn{animation:none!important;transition:none!important}.card:hover,.btn:hover{transform:none}.portfolio-lightbox,.portfolio-lightbox-stage img{transition:none!important}}.hero-breadcrumb{position:absolute;left:0;right:0;top:calc(var(--navbar-height) + var(--space-sm));z-index:1;font-size:var(--text-small)}.hero-breadcrumb ol{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-xs)}.hero-breadcrumb li{display:inline-flex;align-items:center;gap:var(--space-xs);color:#ffffffb3}.hero-breadcrumb a{color:var(--color-white);transition:color var(--duration-fast) var(--ease-out)}.hero-breadcrumb a:hover{color:#bfdbfe}.hero-breadcrumb a:focus-visible{outline:2px solid var(--color-white);outline-offset:3px;border-radius:2px}.hero-breadcrumb-sep{opacity:.6}body.has-hero:not(.is-home) [data-hero].hero-left{text-align:left}body.has-hero .hero-left .container:not(.hero-breadcrumb){max-width:1200px}body.has-hero .hero-left .service-hero-inner{max-width:1200px;margin-inline:auto}body.has-hero .hero-left .service-hero-title,body.has-hero .hero-left h1{font-size:clamp(2.5rem,5.4vw,4.5rem);font-weight:700;line-height:1.05;letter-spacing:-.035em;max-width:900px}body.has-hero .hero-left .service-hero-subtext{font-size:1.35rem;max-width:640px;margin-bottom:var(--space-lg)}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-md)}.hero-link{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--color-white);padding:10px 4px;transition:gap var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.hero-link:hover{gap:12px;color:#bfdbfe}.hero-link:focus-visible{outline:2px solid var(--color-white);outline-offset:3px;border-radius:4px}@media(max-width:991px){body.has-hero:not(.is-home) [data-hero].hero-left{padding-top:calc(var(--navbar-height) + var(--space-2xl))}}body.has-hero .hero-left .container:not(.hero-breadcrumb){text-align:left}body.has-hero .hero-left .about-hero-inner,body.has-hero .hero-left .portfolio-hero-inner,body.has-hero .hero-left .portfolio-detail-hero-inner{max-width:1200px}body.has-hero .hero-left .about-hero-title,body.has-hero .hero-left h1{font-size:clamp(2.5rem,5.4vw,4.5rem);font-weight:700;line-height:1.05;letter-spacing:-.035em;max-width:900px;margin-inline:0}body.has-hero .hero-left .services-hero-subtext,body.has-hero .hero-left .products-hero-subtext,body.has-hero .hero-left .about-hero-subtext,body.has-hero .hero-left .contact-hero-subtext,body.has-hero .hero-left .portfolio-hero-inner p,body.has-hero .hero-left .portfolio-detail-hero-inner p,body.has-hero .hero-left.contact-hero p{font-size:1.35rem;max-width:640px;margin:0 0 var(--space-lg);color:#ffffffb3}body.has-hero [data-hero]>.hero-breadcrumb{position:absolute}
