:root{--ink:#1d1d1f;--muted:#737379;--blue:#0071e3;--surface:#f5f5f7;--line:#e3e3e8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:#fff;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{display:block;max-width:100%}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:6px}::selection{background:#cde5ff}.wrap{width:min(1160px,calc(100% - 96px));margin:auto}.header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.83);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid #eeeef1}.nav{display:flex;align-items:center;justify-content:space-between;height:76px}.wordmark{font-size:29px;font-weight:750;letter-spacing:-1.7px}.wordmark span{color:var(--blue)}.nav-links{display:flex;gap:36px;font-size:13px;color:#66666d}.nav a:hover,.footer a:hover{color:var(--blue)}.nav-contact{font-size:12px;border:1px solid #dedee4;border-radius:24px;padding:11px 18px}.nav-contact span{margin-left:12px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:650;line-height:1.8}.status-dot{display:inline-block;width:6px;height:6px;background:#34a575;border-radius:50%;box-shadow:0 0 0 4px #34a57512;flex-shrink:0}.blue{color:var(--blue)}.actions{display:flex;align-items:center;gap:24px}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;background:var(--blue);color:white;padding:15px 23px;border-radius:28px;font-size:13px;transition:background .2s,transform .2s;border:0}.button:hover{background:#005fca;transform:translateY(-2px)}.text-link{font-size:13px;color:var(--blue);display:inline-flex;gap:12px;align-items:center}.text-link:hover{text-decoration:underline}.location-mark{font-size:18px}.divider{color:#ccc;margin:0 4px}.stack-strip{border-block:1px solid #ededf0;background:#fafafa;padding:26px 0}.stack-strip .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px}.stack-strip span{font-size:12px;color:#949499}.stack-strip strong{color:#73737a;font-size:16px;letter-spacing:-.5px;font-weight:550}.section{padding-top:108px;padding-bottom:106px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:42px}h2{font-size:47px;line-height:1.1;letter-spacing:-2px;font-weight:600;margin:15px 0 0}.section-heading>p{font-size:14px;line-height:1.7;color:var(--muted);margin-bottom:4px}.featured{background:#eff3f9;border-radius:28px;display:grid;grid-template-columns:1fr 1fr;min-height:540px;overflow:hidden}.featured-copy{padding:40px 46px}.project-kicker{font-size:9px;letter-spacing:1.5px;font-weight:600;color:#526578;display:flex;justify-content:space-between;margin-bottom:30px}.project-kicker span{color:#85909d}.app-icon{border-radius:16px;box-shadow:0 5px 15px #00000008;margin-bottom:18px}.featured h3{font-size:38px;letter-spacing:-1.5px;margin:0 0 6px;font-weight:650}.project-tagline{font-size:20px;margin:0;color:#5b6c7e}.project-description{font-size:14px;line-height:1.8;color:#6a7583;max-width:340px;margin-top:21px}.tags{display:flex;gap:7px;flex-wrap:wrap;margin:20px 0 28px}.tags span{padding:6px 9px;background:#ffffff80;border:1px solid #00000007;border-radius:7px;font-size:9px;color:#64707d}.phone{position:absolute;border-radius:30px;overflow:hidden;border:7px solid #25272c;box-shadow:10px 25px 35px #23395425;background:#25272c;width:206px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px 28px;margin-top:28px}.project-image{border:0;padding:0;width:100%;display:block;aspect-ratio:1.7;position:relative;border-radius:20px;overflow:hidden;background:#f5f5f7}.project-image>img{width:100%;height:100%;object-fit:cover;transition:transform .65s}.project-image:hover>img{transform:scale(1.04)}.round-arrow{position:absolute;bottom:18px;right:18px;width:34px;height:34px;border-radius:50%;background:#ffffffed;display:grid;place-items:center;font-size:18px;transition:transform .2s}.project-image:hover .round-arrow{transform:rotate(45deg)}.project-meta{display:flex;justify-content:space-between;align-items:center;padding:18px 3px 0;gap:12px}.project-meta h3{font-size:19px;letter-spacing:-.5px;margin:0 0 6px;font-weight:600}.project-meta p{font-size:12px;color:var(--muted);margin:0}.project-meta>span{font-size:8px;letter-spacing:1px;color:#88888e}.about-section{background:var(--surface);padding:90px 0}.about-grid{display:grid;grid-template-columns:.8fr 1fr;gap:100px;align-items:center}.about-photo{position:relative;height:490px;border-radius:24px;overflow:hidden}.about-photo>img{width:100%;height:100%;object-fit:cover;object-position:center 40%}.about-photo:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#10151abf)}.about-photo>div{position:absolute;bottom:32px;left:30px;color:#fff;z-index:1}.about-photo span{font-size:8px;letter-spacing:1.6px;opacity:.7}.about-photo strong{display:block;font-size:28px;letter-spacing:-1px;font-weight:500;margin-top:8px}.about-copy h2{font-size:43px}.about-copy>p:not(.eyebrow){font-size:14px;color:var(--muted);line-height:1.8}.about-copy .text-link{margin-top:10px}.experience{margin-top:28px}.experience>div{display:flex;gap:17px;align-items:center;padding:17px 0;border-top:1px solid #dedee4}.experience>div>span{font-size:10px;color:#919198}.experience strong{font-size:12px}.experience p{font-size:10px;color:var(--muted);margin:5px 0 0}.experience small{font-size:9px;color:#8c8c92;margin-left:auto}.expertise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.expertise-card{background:var(--surface);border-radius:24px;padding:30px}.skill-symbol{font-size:30px;display:block;height:55px;font-weight:500}.orange{color:#ec7442}.purple{color:#8962c5}.expertise-card h3{font-size:21px;letter-spacing:-.6px}.expertise-card p{font-size:13px;color:var(--muted);line-height:1.8}.expertise-card .tags{margin-bottom:0}.expertise-card .tags span{background:#fff}.contact-section{padding:92px 0 75px;background:var(--surface);text-align:center}.contact-section h2{font-size:75px;letter-spacing:-3.8px;margin-top:23px}.contact-section h2 span{background:linear-gradient(100deg,#0071e3,#5c69dc);background-clip:text;-webkit-background-clip:text;color:transparent}.contact-section p:not(.eyebrow){font-size:15px;line-height:1.7;color:var(--muted);margin:26px 0}.contact-section .button{min-width:148px}.email-row{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:24px;position:relative;font-size:11px;color:#797980}.email-row button{background:transparent;border:0;color:inherit;font-size:19px;padding:5px}.email-row #copy-status{position:absolute;top:35px;font-size:10px}.footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:30px;padding-bottom:30px}.footer p{font-size:10px;color:#94949b}.footer>div{display:flex;gap:20px;font-size:10px;color:#717178}.footer>a:last-child{border:1px solid var(--line);width:30px;height:30px;display:grid;place-items:center;border-radius:50%}.skip-link{position:fixed;top:-80px;left:20px;z-index:40;padding:15px;background:white}.skip-link:focus{top:10px}dialog{border:0;border-radius:24px;width:min(680px,calc(100% - 32px));padding:0;color:var(--ink);max-height:88vh;box-shadow:0 30px 100px #0003}dialog::backdrop{background:#12192380;backdrop-filter:blur(10px)}dialog>img{width:100%;max-height:330px;object-fit:cover}.dialog-content{padding:32px}.dialog-content h2{font-size:34px}.dialog-content>p:not(.eyebrow){font-size:15px;line-height:1.8;color:var(--muted)}.dialog-close{position:absolute;top:14px;right:14px;border:0;border-radius:50%;height:36px;width:36px;background:white;font-size:25px}.dialog-open{overflow:hidden}.reveal.is-pending{opacity:0;transform:translateY(25px)}.reveal{transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
@keyframes intro{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1000px){.wrap{width:calc(100% - 56px)}.actions{gap:16px}.featured-copy{padding:32px}.phone{width:170px}.about-grid{gap:45px}.about-copy h2{font-size:37px}.expertise-card{padding:24px}.project-meta>span{font-size:7px}}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}.nav{height:66px}.wordmark{font-size:26px}.nav-links{gap:19px;font-size:11px}.nav-contact{font-size:10px;padding:9px 12px}.nav-contact span{margin-left:4px}.actions{justify-content:center;gap:20px}.button{font-size:12px;padding:14px 20px}.text-link{font-size:12px}.stack-strip{padding:22px 0}.stack-strip .wrap{justify-content:center;gap:17px;flex-wrap:wrap}.stack-strip span{width:100%;text-align:center;font-size:10px}.stack-strip strong{font-size:12px}.section{padding-top:64px;padding-bottom:64px}.section-heading{display:block;margin-bottom:28px}h2{font-size:36px;letter-spacing:-1.5px}.section-heading>p{margin-top:20px;font-size:13px}.eyebrow{font-size:8px}.featured{grid-template-columns:1fr}.featured-copy{padding:30px}.featured h3{font-size:33px}.project-kicker{margin-bottom:25px}.project-description{font-size:13px;max-width:none}.phone{width:172px}.project-grid{grid-template-columns:1fr;gap:30px;margin-top:25px}.project-meta>span{font-size:7px}.about-section{padding:55px 0}.about-grid{grid-template-columns:1fr;gap:35px}.about-photo{height:410px;max-width:400px;width:100%;margin:auto}.about-copy h2{font-size:36px}.expertise-grid{grid-template-columns:1fr}.expertise-card{padding:28px}.expertise-card h3{margin-top:7px}.contact-section{padding:64px 0}.contact-section h2{font-size:55px;letter-spacing:-2.5px}.contact-section p:not(.eyebrow){font-size:14px}.footer{flex-wrap:wrap;gap:20px}.footer p{margin-left:auto;font-size:9px}.footer>div{gap:24px}.footer>a:last-child{margin-left:auto}.dialog-content{padding:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal.is-pending{opacity:1;transform:none}}

/* A quiet, typography-led introduction. */
.hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 730px;
  display: flex;
  align-items: center;
  text-align: center;
  padding: 84px 0 116px;
  background: #fcfcfd;
}
.hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: radial-gradient(ellipse 55% 48% at 50% 105%, #dce9ff 0%, #edf2fc80 48%, transparent 100%);
}
.hero .eyebrow { color: #6e6e78; font-size: 10px; letter-spacing: 2.6px; margin: 0 0 32px; }
.hero .eyebrow span { margin: 0 12px; color: #c4c4cc; }
.hero h1 { margin: 0; font-size: clamp(64px, 7.2vw, 104px); font-weight: 650; letter-spacing: -.065em; line-height: 1.06; }
.hero-line { display: block; }
.hero-gradient { color: #2476d7; background: linear-gradient(105deg, #175dbb 15%, #4b86df 49%, #8875c9 85%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; padding-bottom: .08em; }
.hero-description { font-size: 18px; line-height: 1.7; color: #777780; margin: 25px auto 30px; }
.hero .actions { justify-content: center; gap: 30px; }
.hero .button { padding: 16px 25px; }
.hero-signoff { margin: 33px 0 0; font-size: 11px; color: #8a8a95; letter-spacing: .25px; }
.hero-bottom { position: absolute; bottom: 28px; left: 0; right: 0; display: flex; justify-content: space-between; align-items: center; color: #858590; font-size: 9px; letter-spacing: 1.2px; }
.hero-bottom a { font-size: 11px; letter-spacing: 0; }
.hero-bottom a span { margin-left: 13px; }
@media (prefers-reduced-motion: no-preference) {
  .hero .eyebrow { animation: intro .7s both; }
  .hero-line { animation: intro .9s .1s both; }
  .hero-line + .hero-line { animation-delay: .2s; }
  .hero-description, .hero .actions, .hero-signoff { animation: intro .9s .3s both; }
}
@media (max-width: 700px) {
  .hero { min-height: 630px; padding: 78px 0 108px; }
  .hero .eyebrow { font-size: 8px; letter-spacing: 1.7px; margin-bottom: 30px; }
  .hero .eyebrow span { margin: 0 7px; }
  .hero h1 { font-size: clamp(38px, 8.8vw, 62px); letter-spacing: -.065em; line-height: 1.12; }
  .hero-description { max-width: 370px; font-size: 15px; margin: 25px auto 27px; }
  .desktop-break { display: none; }
  .hero .actions { gap: 25px; }
  .hero-signoff { font-size: 10px; margin-top: 29px; }
  .hero-bottom { bottom: 24px; flex-direction: column; gap: 16px; font-size: 7px; letter-spacing: 1px; }
  .hero-bottom a { font-size: 10px; }
}

/* Product capability and technical depth. */
.capabilities { display: grid; grid-template-columns: 1.1fr repeat(3,1fr); gap: 32px; padding-top: 45px; padding-bottom: 45px; border-bottom: 1px solid var(--line); }
.capability-intro .eyebrow { color: var(--blue); font-size: 8px; margin-top: 0; }
.capability-intro h2 { font-size: 24px; letter-spacing: -.8px; line-height: 1.25; margin-top: 12px; }
.capabilities article { padding-left: 23px; border-left: 1px solid var(--line); }
.capability-number { font-size: 8px; letter-spacing: 1.6px; color: #8a8a94; }
.capabilities h3 { font-size: 15px; letter-spacing: -.3px; margin: 15px 0 10px; }
.capabilities article p { font-size: 12px; line-height: 1.75; color: var(--muted); margin: 0; }
.section { padding-top: 78px; padding-bottom: 78px; }
.project-summary { margin: 13px 3px 0; max-width: 460px; color: var(--muted); font-size: 13px; line-height: 1.7; }
.expertise-section { padding: 78px 0 55px; background: #111217; color: #f5f5f7; }
.expertise-section .eyebrow { color: #8caef9; }
.expertise-section .section-heading { margin-bottom: 34px; }
.expertise-section .section-heading > p { color: #a1a4b1; }
.skills-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid #ffffff16; margin-bottom: 25px; padding-bottom: 23px; }
.skill-filters { display: flex; gap: 7px; flex-wrap: wrap; }
.skill-filters button { border: 1px solid #ffffff1a; border-radius: 22px; color: #acafbb; background: transparent; padding: 10px 16px; font-size: 11px; transition: background .2s, color .2s, border-color .2s; }
.skill-filters button:hover { border-color: #809ac7; color: #fff; }
.skill-filters button.active { background: #edf2ff; color: #1a2944; border-color: #edf2ff; }
.skill-filters button span { margin-left: 9px; opacity: .6; font-size: 9px; }
.skills-caption { font-size: 10px; color: #999daa; white-space: nowrap; }
.skills-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 15px; }
.skill-card { background: linear-gradient(145deg,#20222b,#191b22); border: 1px solid #ffffff0e; border-radius: 18px; padding: 24px 21px; display: flex; flex-direction: column; transition: transform .3s, border-color .3s; }
.skill-card:hover { border-color: #91b1ff55; transform: translateY(-4px); }
.skill-card[hidden] { display: none; }
.skill-card-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; }
.skill-card-top > span:last-child { color: #737988; font-size: 10px; font-variant-numeric: tabular-nums; }
.skill-icon { display: grid; place-items: center; width: 39px; height: 39px; background: #729ffe12; border-radius: 11px; color: #8eb7ff; }
.skill-icon svg { width: 23px; height: 23px; }
.skill-card[data-skill-category="data"] .skill-icon { color: #9cd7c7; background: #70d9ae12; }
.skill-card[data-skill-category="engineering"] .skill-icon { color: #c5b1f1; background: #ab8bdd12; }
.skill-card h3 { font-size: 17px; line-height: 1.35; letter-spacing: -.3px; margin: 0 0 9px; }
.skill-tagline { font-size: 11px; color: #bdc6d8; margin: 0 0 11px; line-height: 1.6; }
.skill-description { font-size: 12px; color: #a1a5b3; line-height: 1.8; margin: 0 0 23px; }
.skill-tags { list-style: none; padding: 0; margin: auto 0 0; display: flex; flex-wrap: wrap; gap: 6px; }
.skill-tags li { border: 1px solid #ffffff10; border-radius: 6px; color: #c7cad4; padding: 5px 8px; font-size: 9px; background: #ffffff04; line-height: 1.3; }
.language-bar { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding-top: 30px; margin-top: 30px; border-top: 1px solid #ffffff16; }
.language-bar .eyebrow { font-size: 8px; }
.language-bar p { font-size: 13px; color: #bec2cf; margin: 8px 0 0; }
.language-bar ul { display: flex; gap: 30px; list-style: none; padding: 0; margin: 0; }
.language-bar li { font-size: 22px; color: #eaecf4; font-weight: 550; letter-spacing: -.5px; }
.language-note { color: #8d93a3; font-size: 10px; line-height: 1.7; }
.process-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 30px; }
.process-grid article { border-top: 1px solid #dcdfe7; padding-top: 20px; }
.process-grid article > span { color: var(--blue); font-size: 12px; }
.process-grid h3 { font-size: 17px; letter-spacing: -.4px; margin: 21px 0 10px; }
.process-grid p { color: var(--muted); font-size: 13px; line-height: 1.8; margin: 0; }
.hire-banner { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-top: 45px; border-radius: 18px; background: #f0f4fb; padding: 30px 34px; }
.hire-banner h3 { font-size: 21px; letter-spacing: -.6px; margin: 0 0 9px; }
.hire-banner p { color: #707987; font-size: 12px; line-height: 1.7; margin: 0; }
.hire-banner .button { flex-shrink: 0; }
@media (max-width: 1050px) {
  .capabilities { grid-template-columns: repeat(2,1fr); gap: 30px; }
  .skills-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .process-grid { grid-template-columns: repeat(2,1fr); }
  .skills-toolbar { align-items: flex-start; }
  .skills-caption { padding-top: 12px; }
  .language-note { display: none; }
}
@media (max-width: 700px) {
  .capabilities { padding-block: 32px; gap: 25px 20px; }
  .capability-intro h2 { font-size: 21px; }
  .capabilities article { padding-left: 13px; }
  .capabilities h3 { font-size: 14px; }
  .capabilities article p { font-size: 11px; }
  .section { padding-block: 55px; }
  .expertise-section { padding: 55px 0 35px; }
  .skills-toolbar { display: block; }
  .skill-filters { gap: 7px; }
  .skill-filters button { padding: 9px 12px; font-size: 10px; }
  .skills-caption { display: block; padding-top: 16px; }
  .skills-grid { gap: 12px; }
  .skill-card { padding: 19px 15px; }
  .skill-card h3 { font-size: 16px; }
  .skill-card-top { margin-bottom: 17px; }
  .skill-tagline { font-size: 10px; }
  .skill-description { font-size: 11px; }
  .skill-tags { gap: 5px; }
  .skill-tags li { font-size: 8px; padding: 5px 6px; }
  .language-bar { flex-wrap: wrap; gap: 20px; }
  .language-bar ul { gap: 28px; }
  .language-bar li { font-size: 20px; }
  .process-grid { gap: 25px 20px; }
  .process-grid h3 { font-size: 15px; line-height: 1.4; }
  .process-grid p { font-size: 12px; }
  .hire-banner { flex-direction: column; align-items: flex-start; padding: 25px; }
  .hire-banner h3 { font-size: 22px; }
  .hero-signoff { max-width: 280px; margin-inline: auto; line-height: 1.8; }
}
@media (max-width: 380px) {
  .skills-grid { grid-template-columns: 1fr; }
}

/* The supplied product photograph already includes the device frame. */
.centropix-visual {
  position: relative;
  min-height: 550px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  overflow: hidden;
  padding: 30px 25px 0;
  background: radial-gradient(ellipse at 54% 52%, #ced9f2 0%, #e3eaf750 48%, transparent 74%);
}
.centropix-visual img {
  width: auto;
  height: 520px;
  max-width: 100%;
  object-fit: contain;
  object-position: center bottom;
  filter: drop-shadow(12px 10px 20px #2a365516);
}
@media (max-width: 1000px) and (min-width: 701px) {
  .centropix-visual { padding-inline: 12px; }
}
@media (max-width: 700px) {
  .centropix-visual { min-height: 0; padding: 12px 25px 0; }
  .centropix-visual img { width: min(100%, 300px); height: auto; }
}
