.icon{vertical-align:middle;display:inline-block;width:1em;height:1em;stroke-width:0;stroke:currentColor;fill:currentColor;} html{box-sizing:border-box;font-size:16px;}@media screen and (min-width:320px){ html{font-size:calc(16px  + 10  * ((100vw - 320px ) / 1680 ));}}@media screen and (min-width:2000px){ html{font-size:26px;}} ::selection{background:#1f9799;color:#fff;} *,
*::before,
*::after{box-sizing:inherit;} body{font-family:'Josefin Sans';font-size:1rem;color:#333;line-height:1.5;min-height:100vh;} blockquote{margin:1.5em 10px;padding:0.5em 10px;quotes:"\201C" "\201D";} blockquote p:first-child:before{color:#444;content:open-quote;font-size:4em;line-height:0.1em;margin-right:0.25em;vertical-align:-0.4em;} .section--header-image{padding:0 !important;} p img{max-width:100%;height:auto;display:block;margin:0 auto;} body{display:flex;flex-direction:column;} code{font-size:0.895em;} .container{flex:1 0 auto;display:flex;flex-direction:column;background:#eee;} .section{background:#fff;width:1340px;width:100%;padding:2rem;}@media screen and (min-width:1340px){ .section{width:calc(1340px  + 460  * ((100vw - 1340px ) / 1260 ));}}@media screen and (min-width:2600px){ .section{width:1800px;}}@media screen and (min-width: 1340px ){ .section{margin:0 auto;}}@media (min-width: 740px ){ .section{padding:60px;}}@media (min-width: 1340px ){ .section{padding:120px;}} .anchor{display:block;margin-left:-1.5rem;width:1.5rem;float:left;opacity:0;color:#aaa;} h2:hover .anchor{opacity:1;} .image-header{position:relative;width:calc(100% + 4rem);margin-top:-2rem;margin-left:-2rem;margin-bottom:0;margin-right:-2rem;margin-top:2rem;margin-bottom:2rem;} .image-header h2{position:absolute;bottom:1rem;left:2rem;color:#fff;margin:0;}@media (min-width: 740px ){ .image-header h2{left:60px;}}@media (min-width: 1340px ){ .image-header h2{left:120px;}}@media (min-width: 740px ){ .image-header{width:calc(100% + 120px);margin-top:-60px;margin-left:-60px;margin-bottom:0;margin-right:-60px;}}@media (min-width: 1340px ){ .image-header{width:calc(100% + 2 * 120px);margin-top:-120px;margin-left:-120px;margin-bottom:0;margin-right:-120px;}}@media (min-width: 740px ){ .image-header{margin-top:60px;margin-bottom:60px;}} .image-header:first-child{margin-top:-2rem;}@media (min-width: 740px ){ .image-header:first-child{margin-top:-60px;}}@media (min-width: 1340px ){ .image-header:first-child{margin-top:-120px;}} body{padding:0;margin:0;} h1,
h2,
h3,
h4,
h5,
h6{font-family:Montserrat;margin-top:0;margin-bottom:0.5rem;} h1{font-size:2rem;} h2{font-size:1.75rem;} h3{font-size:1.5rem;} h4{font-size:1.25rem;} h5{font-size:1.1em;} h6{font-size:1em;} p{margin-top:0;margin-bottom:1rem;} a{color:#1f9799;text-decoration:none;} a:hover{text-decoration:underline;} hr{border:none;border-bottom:2px solid #bbb;} abbr{border-bottom:1px dotted #333;cursor:pointer;} .header{background:#333;display:flex;flex-direction:column;width:100%;padding:1rem 0;overflow:hidden;}@media (min-width: 740px ){ .header{align-items:center;height:90px;flex-direction:row;}} .header__contents{width:1340px;width:100%;padding:0 2rem;}@media screen and (min-width:1340px){ .header__contents{width:calc(1340px  + 460  * ((100vw - 1340px ) / 1260 ));}}@media screen and (min-width:2600px){ .header__contents{width:1800px;}}@media screen and (min-width: 1340px ){ .header__contents{margin:0 auto;}}@media (min-width: 740px ){ .header__contents{padding:0 60px;}}@media (min-width: 1340px ){ .header__contents{padding:0 120px;}}@media (min-width: 740px ){ .header__contents{display:flex;}} .header__brand{display:flex;flex-direction:row;}@media (min-width: 740px ){ .header__brand{flex-direction:column;margin-right:60px;}}@media (min-width: 1340px ){ .header__brand{margin-right:120px;}}@media (min-width: 1340px ){ .header__spacer{flex:1 0 0%;}} .header__link{flex:1 0 auto;display:flex;justify-content:center;align-items:center;} .header__image{width:200px;height:auto;} .header-image{width:100%;max-height:30vw;object-fit:cover;font-family:'object-fit: cover;';vertical-align:top;max-height:300px;}@media screen and (min-width:740px){ .header-image{max-height:calc(300px  + 300  * ((100vw - 740px ) / 1860 ));}}@media screen and (min-width:2600px){ .header-image{max-height:600px;}}@media (min-width: 740px ){ .header-image{margin:0 auto;}} .header-nav{display:flex;list-style:none;padding:0;margin:0 -1rem;flex-direction:row;text-align:center;flex-wrap:wrap;}@media (min-width: 740px ){ .header-nav{align-items:center;flex-wrap:nowrap;margin:0 -0.5rem;flex:1 0 0%;}}@media (min-width: 1340px ){ .header-nav{margin:0 -1rem;}} .nav-collapse-checkbox{display:none;} .nav-collapse{display:flex;flex-direction:column;transition:max-height .5s linear;max-height:0;} .nav-collapse .header-nav{margin-top:1rem;}@media (min-width: 740px ){ .nav-collapse{flex:1 0 0%;max-height:none;transition:none;} .nav-collapse .header-nav{margin-top:0;}} input#toggle:checked ~ .nav-collapse{max-height:200px;} .header-nav__spacer{display:none;}@media (min-width: 740px ){ .header-nav__spacer{display:list-item;flex:1 0 0%;}} .header-nav__item{padding:0 1rem;font-size:1rem;width:50%;}@media (min-width: 740px ){ .header-nav__item{width:auto;padding:0 .5rem;}}@media (min-width: 1340px ){ .header-nav__item{padding:0 1rem;}} .header-nav__item--language{width:100%;} .header-nav__item--language a{color:#9ae9ea;}@media (min-width: 740px ){ .header-nav__item--language{width:auto;}} .header-nav__link{display:block;color:#fff;padding:10px 0 7px 0;border-bottom:3px solid transparent;} .header-nav__link:hover{text-decoration:none;border-bottom:3px solid #296566;} .header-nav__toggle{font-size:1.5rem;display:block;color:#ccc;padding:10px;padding-bottom:7px;} .header-nav__toggle i{vertical-align:middle;} .header-nav__toggle:hover{color:#fff;}@media (min-width: 740px ){ .header-nav__toggle{display:none;}} .header-nav__link--active{border-bottom:3px solid #1f9799;} .footer{background:#333;color:#fff;display:flex;} .footer__contents{display:flex;flex-direction:column;width:1340px;width:100%;padding:2rem;}@media screen and (min-width:1340px){ .footer__contents{width:calc(1340px  + 460  * ((100vw - 1340px ) / 1260 ));}}@media screen and (min-width:2600px){ .footer__contents{width:1800px;}}@media screen and (min-width: 1340px ){ .footer__contents{margin:0 auto;}}@media (min-width: 740px ){ .footer__contents{padding:60px;}}@media (min-width: 1340px ){ .footer__contents{padding:120px;}}@media (min-width: 740px ){ .footer__contents{flex-direction:row;}} .footer__image{max-width:200px;width:100%;height:auto;margin-bottom:2rem;}@media (min-width: 740px ){ .footer__image{max-width:none;padding-right:30px;}}@media (min-width: 1340px ){ .footer__image{padding-right:60px;}}@media (min-width: 740px ){ .footer__section{width:30%;margin-right:30px;border-right:3px solid #fff;}}@media (min-width: 1340px ){ .footer__section{margin-right:60px;}} .footer__section--right{flex:1 1 0%;border-right:none;} .footer__title{margin-bottom:0;margin-top:1rem;} .footer__title:first-child{margin-top:0;} .footer__social-media{margin-left:1rem;color:#87c3c4;} .footer__social-media:hover{text-decoration:none;} .footer__link{color:white;text-decoration:none;} .footer__address{font-style:normal;font-weight:300;} .section--main{flex:1 0 auto;} .section__title{display:inline-block;color:#444;padding-bottom:2rem;border-bottom:3px solid #1f9799;}@media (min-width: 740px ){ .section--alt{display:flex;flex-direction:row;}} .section__title--alt{color:#fff;border-color:#fff;}@media (min-width: 740px ){ .section__title--alt{flex:0 0 auto;width:30%;border-bottom:0;border-right:3px solid #fff;margin-right:2rem;white-space:pre;}} .section--contact{background:#3c92b6;color:#fff;} .section--contact a{color:#fff;} .section--refet{background:#fff;} .section--kysy-meilta{background:#1f9799;color:#fff;} .section--kysy-meilta a{color:#fff;} .section--blog{background:#A23B73;color:#fff;} .frontpage-list{list-style-type:none;padding:0;margin:0 -0.5rem;} .frontpage-list__item{font-size:1rem;flex:1 1 0%;display:flex;flex-direction:row;align-items:center;margin:1rem 0.5rem;} .frontpage-list__item > a{flex:1 1 auto;display:flex;flex-direction:row;align-items:center;} .frontpage-list__item .icon{flex:0 0 auto;font-size:3.5rem;width:1em;text-align:center;margin-right:.5em;} .frontpage-list__item .icon::before{vertical-align:middle;} .frontpage-list--alt{display:flex;flex-direction:row;color:#1f9799;padding:0;text-align:center;} .frontpage-list--alt .icon{margin-right:0;margin-bottom:.25em;} .frontpage-list__item--alt{flex-direction:column;} .frontpage-list__item--alt > a{flex-direction:column;} .frontpage-list__item--alt__ie-fix{width:100%;} .frontpage-blog{flex:1 0 auto;list-style-type:none;padding:0;margin:0;margin-top:-2rem;} .frontpage-blog__item{padding:0;margin-top:2rem;} .frontpage-blog__link{color:#fff;text-decoration:none;display:block;} .frontpage-blog__link:hover{text-decoration:none;} .frontpage-blog__link:hover > .frontpage-blog__title{text-decoration:underline;} .frontpage-blog__meta{display:block;color:#e2aeca;padding-bottom:1rem;font-size:0.875rem;} .frontpage-blog__title{padding-left:1rem;font-weight:600;} .section--about{display:flex;flex-direction:row;} .section--twitter{background:#fff;}@media (min-width: 740px ){ .frontpage-about__text{flex:2 0 0%;}} .frontpage-about__image{display:none;max-width:300px;height:auto;}@media (min-width: 740px ){ .frontpage-about__image{display:block;flex:1 0 0%;margin-left:2rem;}} .referenssit{display:flex;flex-wrap:wrap;margin:2rem -1rem 0 -1rem;}@media (min-width: 740px ){ .referenssit{margin:2rem -2rem;}} .referenssi{width:100%;padding:0 1rem;margin-bottom:2rem;text-align:center;}@media (min-width: 740px ){ .referenssi{width:33.332%;padding:0 2rem;margin-bottom:0;}} .referenssi__link{font-weight:600;} .referenssi__link--logo{width:100%;margin-bottom:1rem;} .referenssi__logo{width:100%;height:80px;} .referenssi__description{font-size:0.95rem;font-style:italic;quotes:"“" "”" "‘" "’";} .referenssi__description:before{font-size:2rem;line-height:0.5rem;content:open-quote;vertical-align:text-bottom;} .referenssi__description:after{font-size:2rem;line-height:0.5rem;content:close-quote;vertical-align:text-bottom;} .refe-header-image{object-fit:cover;font-family:'object-fit: cover;';max-height:400px;width:calc(100% + 4rem);margin-top:-2rem;margin-left:-2rem;margin-bottom:0;margin-right:-2rem;}@media (min-width: 740px ){ .refe-header-image{width:calc(100% + 120px);margin-top:-60px;margin-left:-60px;margin-bottom:0;margin-right:-60px;}}@media (min-width: 1340px ){ .refe-header-image{width:calc(100% + 2 * 120px);margin-top:-120px;margin-left:-120px;margin-bottom:0;margin-right:-120px;}} .refe-header-image--scale-down{object-fit:scale-down;font-family:'object-fit: scale-down;';} .open-source{margin-bottom:1rem;}@media (min-width: 740px ){ .open-source{display:flex;margin-right:-20px;margin-left:-20px;flex-direction:column;flex-direction:row;}}@media (min-width: 740px ){ .open-source__lib{flex:1 0 0%;margin:0 20px;} .open-source__lib p:last-child{margin-bottom:0;}} .peoples{display:flex;flex-wrap:wrap;margin:0 -20px;justify-content:center;}@media (min-width: 740px ){ .peoples{justify-content:flex-start;}} .people{flex-direction:column;margin:0 20px 2rem 20px;width:100%;max-width:250px;text-align:center;}@media (min-width: 740px ){ .people{width:calc(33% - 40px);max-width:none;}}@media (min-width:1150px){ .people{width:calc(25% - 40px);}} .people img{width:100%;height:auto;} .people .placeholder{width:100%;background:#eee;} .people .placeholder::after{content:'';display:block;padding-bottom:100%;} .people__header{margin-bottom:0;display:flex;} .people__name{flex:1 1 auto;font-weight:400;} .people__title{font-size:1rem;color:#666;} .people__links{font-size:0.9rem;margin-bottom:0.5rem;line-height:1rem;min-height:1rem;} .people__links a{margin:0 .1rem;} .contact-cards{margin-top:2rem;}@media (min-width: 740px ){ .contact-cards{display:flex;flex-direction:row;justify-content:space-around;}} .contact-card{display:flex;flex-direction:row;align-items:center;margin-bottom:2rem;} .contact-card__photo{overflow:hidden;display:block;width:100px;height:100px;margin-right:20px;} .contact-card__photo img{width:100px;height:100px;object-fit:cover;font-family:'object-fit: cover;';} .contact-card__details{font-style:normal;} .contact-card__name{margin-bottom:0;} .contact-card__title{font-size:0.95rem;} .contact-card__email{text-decoration:none;font-weight:600;} .contact-card__email:hover{text-decoration:underline;} .contact-card__phone{text-decoration:none;} .contact-card__phone:hover{text-decoration:underline;} body.blog .container{background:#fff;} body.blog .section{max-width:40rem;padding:2rem;margin:0 auto;} code{background:rgba(27, 31, 35, 0.05);} .post-header-image{max-height:400px;object-fit:cover;width:calc(100% + 4rem);margin-left:-2rem;margin-bottom:2rem;margin-right:-2rem;margin-top:-2rem;}@media (min-width: 740px ){ .post-header-image{margin-top:0;}} ul.tag-cloud{padding:0;display:flex;flex-wrap:wrap;font-size:.8em;} ul.tag-cloud li{display:inline;list-style:none;margin-bottom:1rem;} ul.tag-cloud li a{background:#eee;color:#444;border-radius:2px;padding:4px 8px;margin-right:10px;} ul.tag-cloud li a:hover{text-decoration:none;background:#ddd;} ul.tag-cloud li a:before{content:"#";} ul.tag-cloud li{margin-right:10px;} div.entry-meta{margin-top:1rem;align-items:center;display:flex;font-style:italic;color:#666;} div.entry-meta ul{font-style:normal;} div.entry-meta .photo{width:2rem;heigt:2rem;object-fit:scale;border-radius:50%;margin-right:1rem;} div.entry-meta .photo-placeholder{width:2rem;height:2rem;margin-right:1rem;} div.entry-content{margin-top:40px;font-family:"Noto Serif",serif;} div.entry-content img{max-width:100%;} div.entry-media{margin-bottom:20px;} .post-title a,
.post-sub-title a{color:#333;} .post-sub-title{color:#333;} .post__draft{background:#fdd835;color:#444;padding:10px;} .keywords{padding:0;display:flex;flex-wrap:wrap;font-size:.8em;} .keywords li{display:inline;list-style:none;margin-bottom:1rem;} .keywords li a{background:#eee;color:#444;border-radius:2px;padding:4px 8px;margin-right:10px;} .keywords li a:hover{text-decoration:none;background:#ddd;} .keywords li a:before{content:"#";} .blog-list__title a{color:#333;} .blog-list__item{margin-bottom:2rem;} .hljs{font-size:0.8em;} .benchmark-table{font-size:0.5rem;font-family:"Josefin Sans",Sans;margin:1rem 0;} .benchmark-table h3{font-size:1em;text-align:center;} .benchmark-table table{table-layout:fixed;width:100%;max-width:600px;margin:0 auto;} .benchmark-table th,
.benchmark-table td{width:33.333333333333336%;text-align:center;} .benchmark-table th.benchname{width:150px;} .benchmark-table th.benchname .rowCount{display:none;} .benchmark-table a{color:#444;cursor:inherit;} .benchmark-table a:hover{text-decoration:none;} .benchmark-table .deviation{padding-left:5px;} .benchmark-table .deviation::before{content:"\B1 ";}