:root{--c-primary:#bb0b29;--c-primary-hover:#940a08;--c-primary-dark:#3d0000;--c-text:#1a1a1a;--c-text-muted:#5a5a52;--c-text-inverse:#fefefe;--c-bg:#f5f4f1;--c-bg-alt:#ebeae6;--c-bg-card:#fbfaf6;--c-bg-dark:#141413;--c-border:rgba(20,20,19,.18);--c-border-strong:rgba(20,20,19,.6);--c-link:var(--c-primary);--c-link-hover:var(--c-primary-hover);--font-sans:"Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-serif:ui-serif, Georgia, "Iowan Old Style", "Palatino Linotype", Cambria, "Times New Roman", serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--radius-sm:0;--radius-md:0;--radius-lg:0;--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--container-max:1344px;--container-pad-x:clamp(1rem, 3vw, 2rem);--bp-tablet:769px;--bp-desktop:1024px;--bp-widescreen:1216px;--bp-fullhd:1408px;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:3rem;--space-7:5rem;--space-8:8rem;--navbar-h:3.25rem}*{box-sizing:border-box}:before{box-sizing:border-box}:after{box-sizing:border-box}html,body,figure{margin:0;padding:0}html{-webkit-text-size-adjust:100%;text-rendering:optimizelegibility;overflow-x:clip}body{font-family:var(--font-sans);color:var(--c-text);background:var(--c-bg);line-height:1.55;overflow-x:clip}img,svg,video,canvas,picture{max-width:100%;height:auto;display:block}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none;padding:0}a{color:var(--c-link);text-underline-offset:2px;text-decoration:none;text-decoration-thickness:1px;transition:color .12s,text-decoration-color .12s}a:hover{color:var(--c-link-hover);text-decoration:underline}a,code,mark{overflow-wrap:break-word}hr{border:0;border-top:1px solid var(--c-border);margin:1.5rem 0}ul,ol{padding-left:1.25rem}input,textarea,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px;-webkit-border-radius:0;border-radius:0}.no-js img.lqip{display:none}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:400;src:url(../fonts/poppins-regular.woff2)format("woff2")}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:900;src:url(../fonts/poppins-900.woff2)format("woff2")}body{font-size:max(16px,min(1vw + .5rem,18px))}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);text-wrap:balance;letter-spacing:-.015em;color:inherit;margin:0 0 .85em;font-weight:400;line-height:1.1}h1{padding:1rem 0;font-size:max(2.5rem,min(1.8rem + 3.5vw,4rem))}h2{padding:1rem 0;font-size:max(1.75rem,min(1.25rem + 1.75vw,2.75rem))}h3,h4{padding:.75rem 0;font-size:max(1.35rem,min(1rem + 1vw,2rem))}h5{letter-spacing:0;font-size:1.15rem;font-weight:500}h6{letter-spacing:0;font-size:1rem;font-weight:500}p,ul,ol{margin-top:0;margin-bottom:1.25rem}ul.nobullet{margin:0;padding:0;list-style:none}.large-hero-heading{font-family:var(--font-serif);letter-spacing:-.03em;z-index:2;font-size:max(3rem,min(8vw + 1rem,7.5rem));font-weight:400;line-height:.98;display:inline-block;position:relative}.large-hero-heading a,.large-hero-sub-heading a{text-decoration:none}.large-hero-heading a:hover{text-decoration:none}.large-hero-sub-heading a:hover{text-decoration:none}.large-hero-sub-heading{font-size:max(1.1rem,min(1.2vw + .6rem,1.5rem));font-family:var(--font-sans);letter-spacing:.01em;margin-top:1.25rem;font-weight:400}.title{font-family:var(--font-serif);letter-spacing:-.01em;margin:0 0 .5rem;font-weight:500;line-height:1.15}.title.is-4{font-size:1.4rem;font-family:var(--font-sans);letter-spacing:0;font-weight:600}.subtitle{font-family:var(--font-sans);color:var(--c-text-muted);margin:0 0 1.25rem;font-weight:400;line-height:1.45}.subtitle.is-6{font-size:.95rem}.is-size-4{font-size:max(1.2rem,min(1rem + .6vw,1.5rem))}.is-size-6{font-size:1rem}.is-size-7{font-size:.85rem}.has-text-centered{text-align:center}.has-text-white{color:#fff!important}.has-text-light{color:#f5f5f5!important}.has-text-weight-bold{font-weight:600}.has-text-info{color:var(--c-primary)}.content h1{margin:0 0 1.25rem;padding:0}.content h2,.content h3,.content h4{margin:2rem 0 .75rem;padding:.25rem 0}.content>*+*{margin-top:1em}.content ul,.content ol{padding-left:1.5rem}.content blockquote{border-left:2px solid var(--c-text);color:var(--c-text-muted);font-family:var(--font-serif);padding:.25rem 1.25rem;font-style:italic}.content img,.content picture{margin:2rem auto}.content code{background:var(--c-bg-alt);font-family:var(--font-mono);-webkit-border-radius:0;border-radius:0;padding:.1rem .35rem;font-size:.95em}.content pre{background:var(--c-bg-alt);border:1px solid var(--c-border);-webkit-border-radius:0;border-radius:0;padding:1rem;overflow-x:auto}abbr{text-underline-offset:3px;text-decoration-style:dotted}.screenreader{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.section{padding:5rem 1.5rem}@media (min-width:769px){.section{padding:7rem 1.5rem}}.section+.section{padding-top:0}.container{width:100%;padding-inline:var(--container-pad-x);max-width:960px;margin-left:auto;margin-right:auto}@media (min-width:1024px){.container{max-width:960px}}@media (min-width:1216px){.container{max-width:1152px}}@media (min-width:1408px){.container{max-width:var(--container-max)}}.container.is-fluid{max-width:none;padding-left:2rem;padding-right:2rem}.container.is-fullhd{max-width:var(--container-max)}.columns{--cg:2rem;gap:var(--cg);flex-wrap:wrap;display:flex}.columns.is-vcentered{align-items:center}.columns.is-desktop{flex-direction:column}@media (min-width:1024px){.columns.is-desktop{flex-direction:row}}.column{flex:1 1 0;min-width:0}.column.is-3{flex:0 0 calc(25% - var(--cg) * 3 / 4);max-width:calc(25% - var(--cg) * 3 / 4)}.column.is-4{flex:0 0 calc(33.3333% - var(--cg) * 2 / 3);max-width:calc(33.3333% - var(--cg) * 2 / 3)}.column.is-6{flex:0 0 100%;max-width:100%}@media (min-width:769px){.column.is-6{flex:0 0 calc(50% - var(--cg) / 2);max-width:calc(50% - var(--cg) / 2)}}@media (min-width:1024px){.column.is-3-desktop{flex:0 0 calc(25% - var(--cg) * 3 / 4);max-width:calc(25% - var(--cg) * 3 / 4)}.column.is-6-desktop{flex:0 0 calc(50% - var(--cg) / 2);max-width:calc(50% - var(--cg) / 2)}.column.is-two-thirds-desktop{flex:0 0 calc(66.666% - var(--cg) / 3);max-width:calc(66.666% - var(--cg) / 3)}}.two-col-grid{grid-template-columns:1fr;gap:2.5rem;margin:0 0 2.5rem;padding:0;list-style:none;display:grid}@media (min-width:769px){.two-col-grid{grid-template-columns:1fr 1fr}}.two-col-grid>.wide{grid-column:1/-1}.two-col-grid-home{grid-template-columns:1fr;gap:2.5rem;margin:0 0 2rem;display:grid}@media (min-width:1024px){.two-col-grid-home{grid-template-columns:1fr 1fr}}.has-background-light{background-color:var(--c-bg-alt)}.has-background-dark{background-color:var(--c-bg-dark);color:var(--c-text-inverse)}.has-background-primary{background-color:var(--c-primary);color:#fff}.has-background-white{background-color:var(--c-bg-card)}.main-content-bg{z-index:1;position:relative}.media{align-items:flex-start;gap:2rem;margin-bottom:1.5rem;display:flex}.media-left{flex-shrink:0}.media-content{flex:auto;min-width:0}.image{display:block}.image.is-48x48{-webkit-border-radius:50%;border-radius:50%;width:48px;height:48px;overflow:hidden}.image.is-48x48 img{object-fit:cover;width:100%;height:100%}.block+.block{margin-top:1.5rem}.cover{object-fit:cover;object-position:50% center;border:none;width:100%;height:100%}.card-icon{z-index:1;filter:drop-shadow(0 0 .75rem #dc143c);position:absolute;top:8%;left:6%}.button{color:var(--c-text);border:1px solid var(--c-text);text-align:center;letter-spacing:.01em;overflow-wrap:break-word;background:0 0;-webkit-border-radius:0;border-radius:0;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;max-width:100%;padding:.75rem 1.5rem;font-weight:500;line-height:1.2;text-decoration:none;transition:background .18s,color .18s,border-color .18s;display:inline-flex}.button>.icon{flex-shrink:0}.button:hover{background:var(--c-text);color:var(--c-bg);text-decoration:none}.button:active{transform:none}.button.is-primary{color:var(--c-primary);border-color:var(--c-primary);background:0 0}.button.is-primary:hover{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}.button.is-light{color:#fff;background:0 0;border-color:#fff}.button.is-light:hover{color:var(--c-primary);background:#fff}.button.is-outlined{color:var(--c-primary);border-color:var(--c-primary);background:0 0}.button.is-outlined:hover{background:var(--c-primary);color:#fff}.button.is-large{padding:1rem 2.25rem;font-size:1.05rem}.button.is-fullwidth{width:100%}.card-footer-item{display:inline-flex}.button-mobile-collapse{white-space:normal}@media (max-width:768px){.button-mobile-collapse{overflow-wrap:break-word;padding-top:1.25rem;padding-bottom:1.25rem}}.cta-tel{white-space:nowrap}.cta-banner .button.is-light{color:#fff;border-color:#fff}.cta-banner .button.is-light:hover{color:var(--c-primary-dark);background:#fff}.cta-banner-button{isolation:isolate;transition:color .22s,border-color .22s;position:relative;overflow:hidden}.cta-banner-button:before{content:"";z-index:-1;background:#fff;transition:transform .32s cubic-bezier(.22,.68,.36,1);position:absolute;top:0;bottom:0;left:0;right:0;transform:translate(-101%)}.cta-banner .cta-banner-button:hover{color:var(--c-primary-dark);background:0 0;border-color:#fff;text-decoration:none}.cta-banner-button:hover:before{transform:translate(0)}.box{background:var(--c-bg-card);border:1px solid var(--c-border);-webkit-border-radius:0;border-radius:0;margin-bottom:2rem;padding:2.5rem}.box.has-background-primary{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}.box.has-background-primary .label{color:#fff}.field{margin-bottom:1.25rem}.field.is-grouped{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.label{letter-spacing:.01em;margin-bottom:.4rem;font-size:.9rem;font-weight:500;display:block}.control{display:block;position:relative}.control.has-icons-left .input{padding-left:2.25rem}.control .icon.is-left{pointer-events:none;opacity:.6;width:1rem;height:1rem;position:absolute;top:50%;left:.6rem;transform:translateY(-50%)}.control .icon.is-left svg{fill:currentColor;width:100%;height:100%}.input,.textarea{width:100%;color:var(--c-text);border:1px solid var(--c-border);font:inherit;background:0 0;-webkit-border-radius:0;border-radius:0;padding:.75rem 1rem;line-height:1.4;transition:border-color .18s}.textarea{resize:vertical;min-height:8em}.input:focus{border-color:var(--c-text);box-shadow:none;outline:none}.textarea:focus{border-color:var(--c-text);box-shadow:none;outline:none}.input.is-danger{border-color:var(--c-primary)}.frc-captcha{max-width:312px}[data-success]{margin-top:1rem}[data-error]{margin-top:1rem}.callout.alert{border:1px solid var(--c-border);background:0 0;-webkit-border-radius:0;border-radius:0;margin-top:1rem;padding:1rem}.notification{border:1px solid var(--c-border);background:0 0;-webkit-border-radius:0;border-radius:0;margin-top:1rem;padding:1rem 1.25rem}.notification.is-danger{color:var(--c-primary);border-color:var(--c-primary);background:0 0}.notification.is-success{color:#1b5a2d;background:0 0;border-color:#1b5a2d}.is-loading{pointer-events:none;position:relative;color:transparent!important}.is-loading:after{content:"";border:2px solid rgba(0,0,0,.2);border-top-color:currentColor;-webkit-border-radius:50%;border-radius:50%;width:1em;height:1em;margin:auto;animation:.6s linear infinite spin;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes spin{to{transform:rotate(360deg)}}.message.is-primary{border:1px solid var(--c-primary);background:0 0;border-left-width:3px;-webkit-border-radius:0;border-radius:0;margin-bottom:1.5rem}.message-body{padding:1rem 1.25rem}.form-title{margin-top:0}.contact-subhead{margin-top:2.5rem;padding:0;font-size:1.1rem;font-weight:600}.contact-address{color:var(--c-text-muted);font-style:normal;line-height:1.6}.navbar{z-index:30;min-height:var(--navbar-h);background:0 0;align-items:center;padding:.75rem 1.5rem;display:flex;position:relative}.navbar.is-transparent{background-color:transparent}.navbar.is-primary{background-color:var(--c-primary);color:#fff}.navbar.is-primary .navbar-item{color:#fff}.hero .navbar.is-primary{background-color:transparent}.navbar-brand{align-items:center;display:inline-flex}.navbar-item{color:var(--c-text);letter-spacing:.01em;align-items:center;padding:.5rem .75rem;text-decoration:none;display:inline-flex}.navbar-item:hover{color:var(--c-primary);text-decoration:none}.navbar-brand .navbar-item{padding:0}.navbar-item img{max-height:44px}.js-modal-trigger{z-index:50;width:44px;height:44px;color:var(--c-text);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex;position:fixed;top:.75rem;right:1.25rem}.js-modal-trigger:focus-visible{outline-width:1px;outline-color:currentColor}.past-hero .js-modal-trigger svg{stroke:#000;stroke-width:32px;paint-order:stroke fill}.navbar.is-primary .js-modal-trigger{color:#fff}.icon{justify-content:center;align-items:center;width:1.5em;height:1.5em;display:inline-flex}.icon svg{fill:currentColor;width:70%;max-width:100%;height:70%;max-height:100%}.icon.icon-2x{width:2em;height:2em}.icon.icon-2x svg{width:1em;height:1em}.icon.is-small{width:1rem;height:1rem}.nav-heading{font-family:var(--font-serif);letter-spacing:-.01em;color:var(--c-text);padding:.5rem 0;font-size:max(1.4rem,min(1rem + 1vw,2rem));font-weight:400;text-decoration:none;display:block}a.nav-heading:hover{color:var(--c-primary)}.secondary-link{color:var(--c-text-muted);font-size:.9rem;line-height:2.2;text-decoration:none}.secondary-link:hover{color:var(--c-primary)}.animate{animation:.1s backwards animate-fade}@keyframes animate-fade{0%{opacity:0}to{opacity:1}}.delay-1{animation-delay:50ms}.delay-2{animation-delay:.1s}.delay-3{animation-delay:.15s}.hero{flex-direction:column;display:flex;position:relative}.hero.is-primary{background-color:var(--c-primary);color:#fff}.hero.is-primary a{color:#fff;text-decoration-color:rgba(255,255,255,.4)}.hero.is-primary a:hover{text-decoration-color:#fff}.hero-body{z-index:2;flex-direction:column;flex-grow:1;justify-content:center;padding:5rem 1.5rem;display:flex;position:relative}@media (min-width:769px){.hero-body{padding:7rem 2rem}}.hero.is-fullheight-with-navbar{min-height:calc(100svh - var(--navbar-h))}@media (min-width:1024px){.hero.is-fullheight-with-navbar{min-height:calc(72vh - var(--navbar-h))}}.hero.is-medium{min-height:32vh}.hero.has-background{min-height:80vh;overflow:hidden}@media (max-width:768px){.hero.has-background{min-height:100svh}}.hero.has-medium-background{min-height:20vh;overflow:hidden}.hero-background{object-fit:cover;object-position:70% center;opacity:.9;z-index:0;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.hero-background-medium{object-fit:cover;opacity:.55;mix-blend-mode:hard-light;z-index:0;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.hero-body .container{z-index:2;position:relative}.cta-banner{background:var(--c-primary);color:#fff;border-top:1px solid var(--c-border);border-bottom:1px solid var(--c-border);padding:6rem 1.5rem}.cta-banner h2{font-weight:400}.card{background:var(--c-bg-card);border:1px solid var(--c-border);-webkit-border-radius:0;border-radius:0;flex-direction:column;transition:border-color .18s;display:flex;position:relative;overflow:hidden}.card-image{display:block}.card-image img,.card-image picture{width:100%;height:auto;display:block}.card-content{padding:2rem}.card>picture{flex:auto;min-height:0;display:block;overflow:hidden}.card>picture>img.cover{width:100%;height:100%}.card h3{margin-top:0;padding-top:0}.card .title{margin-top:0}.card .subtitle{margin-bottom:1rem}.card-content>:last-child{margin-bottom:0}a.card{color:inherit;text-decoration:none}a.card:hover{color:inherit;text-decoration:none}a.card:hover{border-color:var(--c-border-strong)}a.card .has-text-primary:after{content:" →";transition:transform .18s;display:inline-block}a.card:hover .has-text-primary:after{transform:translate(4px)}.modal{z-index:1000;justify-content:center;align-items:center;display:none;position:fixed;top:0;bottom:0;left:0;right:0}.modal.is-active{display:flex}.modal-background{background:var(--c-bg);justify-content:center;align-items:flex-start;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}.modal-content{width:100vw;min-height:100vh;background:var(--c-bg);min-height:100dvh;padding:3rem 2.8rem 3rem 1.5rem;position:relative}.modal-close{z-index:2001;border:1px solid var(--c-text);cursor:pointer;width:44px;height:44px;color:var(--c-text);background:0 0;-webkit-border-radius:0;border-radius:0;transition:color .18s,border-color .18s;position:fixed;top:12px;right:12px}.modal-close:hover{color:var(--c-primary);border-color:var(--c-primary)}.modal-close:before{content:"";transform-origin:50%;background:currentColor;width:44%;height:1px;position:absolute;top:50%;left:28%}.modal-close:after{content:"";transform-origin:50%;background:currentColor;width:44%;height:1px;position:absolute;top:50%;left:28%}.modal-close:before{transform:translateY(-50%)rotate(45deg)}.modal-close:after{transform:translateY(-50%)rotate(-45deg)}.modal-close.has-background-primary{background:0 0}.footer{z-index:1;color:var(--c-text-inverse);background-color:var(--c-bg-dark);padding:4rem 0 3rem;font-size:.875rem;position:relative}.footer p,.footer a,.footer span{color:#e8e6e0;font-size:.875rem}.footer a{color:#fff;padding-top:2px;padding-bottom:2px;text-decoration:none;display:inline-block;position:relative}.footer a:visited{color:#fff;padding-top:2px;padding-bottom:2px;text-decoration:none;display:inline-block;position:relative}.footer a:after{content:"";background:currentColor;width:0;height:1px;transition:width .2s;position:absolute;bottom:0;left:0}.footer a:hover{color:#fff}.footer a:hover:after{width:100%}.company-address{color:#b8b4aa;line-height:1.6}img.lqip{background-color:var(--c-bg-alt);filter:blur(12px);will-change:filter;background-position:50%;background-size:cover;transition:filter .4s}img.lqip.is-loaded{filter:none;background:0 0}picture>img{max-width:100%;height:auto}.m-0{margin:0!important}.m-2{margin:.5rem!important}.m-4{margin:1rem!important}.mt-0{margin-top:0!important}.mt-2{margin-top:.5rem!important}.mt-4{margin-top:1rem!important}.mt-5{margin-top:1.5rem!important}.mt-6{margin-top:3rem!important}.mb-0{margin-bottom:0!important}.mb-2{margin-bottom:.5rem!important}.mb-4{margin-bottom:1rem!important}.mb-6{margin-bottom:3rem!important}.ml-5{margin-left:1.5rem!important}.mr-1{margin-right:.25rem!important}.mr-2{margin-right:.5rem!important}.p-0{padding:0!important}.p-6{padding:max(1rem,min(3vw + .5rem,3rem))!important}.pt-0{padding-top:0!important}.pt-6{padding-top:3rem!important}.py-6{padding-top:3rem!important;padding-bottom:3rem!important}.is-hidden{display:none!important}@media (max-width:768px){.is-hidden-mobile{display:none!important}}@media (max-width:1023px){.is-hidden-touch{display:none!important}}@media (min-width:1024px){.is-hidden-desktop{display:none!important}}img.is-transparent{background:0 0}.is-primary{color:var(--c-primary)}.nodecoration{text-decoration:none}.nodecoration:hover{text-decoration:none}a{z-index:1;position:relative}.client-logos{opacity:.6;padding-top:3rem;padding-bottom:1rem}.client-logos .container{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem 2rem;display:flex}.client-logos img{vertical-align:middle;max-width:10rem;margin:.5rem 1rem}blog-post{margin-bottom:2rem;display:block}blog-post .card{padding:0}blog-post .card-content img,blog-post .card-content picture{-webkit-border-radius:var(--radius-md);border-radius:var(--radius-md);margin:1rem auto;overflow:hidden}blog-post h2{margin:0 0 .25rem;padding:.5rem 0}blog-post sub{color:var(--c-text-muted);margin-bottom:.5rem;font-size:.85rem;display:block}.machine-learning .navbar{background-color:transparent}.machine-learning .js-modal-trigger{color:#fff;border-color:#fff}.machine-learning .js-modal-trigger:hover{color:var(--c-primary);background:#fff}.machine-learning h1{font-size:max(2.5rem,min(6vw,5rem));font-weight:500;line-height:.95}.machine-learning h2{font-size:max(1.75rem,min(4.5vw,3.5rem));font-weight:400}.machine-learning h3{font-size:max(1.5rem,min(3.5vw,2.5rem));font-weight:400}.machine-learning-hero{background:repeating-radial-gradient(circle at 0 -15%, #b50034, #940a08 .25em, var(--c-primary) .5em);background-color:var(--c-primary);color:#fefefe;margin-top:-90px;margin-bottom:4rem}@media (min-width:1024px){.machine-learning-hero{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1rem;min-height:105vh;display:grid}}.machine-learning-hero-title{align-items:center;justify-items:center;padding-top:10rem;display:grid}.hero-title-copy{max-width:300px;padding:10px}@media (min-width:769px){.hero-title-copy{max-width:26rem;padding:1.75rem}}.hero-trunk{padding-top:1rem;padding-bottom:3rem}.hero-doodle{max-width:300px;max-height:700px;margin:auto;display:block}.logo-grid-medium{opacity:.9;grid-template-columns:1fr 1fr 1fr 1fr;align-items:center;justify-items:center;gap:.65rem;max-width:30rem;margin:auto;display:grid}.logo-grid-medium img{max-width:6rem}.logo-grid-small{opacity:.9;grid-template-columns:1fr 1fr;align-items:center;justify-items:center;gap:2rem;max-width:18rem;margin:auto;padding-bottom:6rem;display:grid;translate:0 4rem}.logo-grid-small img{max-width:6rem}.data-learning-copy{padding:0 1.5rem}.data-learning-copy .columns,.data-learning-copy .column{padding:1.4rem}css-doodle{z-index:0;position:relative;top:8rem}.hero-body .doodle-container{opacity:.4}@media (max-width:1023px){.hero-body .doodle-container{margin-top:10vh;margin-left:20vw}}.doodle-fade{opacity:.1;mix-blend-mode:hard-light;z-index:0;pointer-events:none;max-width:100vw;position:fixed;top:50vh;right:0;overflow:hidden}css-doodle{--footer-windmill:( :doodle { @grid: 100x3/ 10vmin; perspective: 120vmin; transform-style: preserve-3d; animation: rd 50s linear infinite; will-change: transform; } margin: auto; @size: 100px 10vmin; @random { height: .2vmin; } will-change: transform; transform-style: preserve-3d; background-color: @p(rgba(200,0,200,.6), rgba(200,200,0,.6), rgba(0,200,200,.6)); animation: cycle @r(30s, 80s, .1) linear infinite; animation-delay: -@r(.1s, 5s); transform: rotateY(0) scaleX(@r(1, 5, .1)) translateZ(18vmin); @keyframes cycle { to { transform: rotateY(@p(1turn, -1turn)) scaleX(@r(1, 5, .1)) translateZ(18vmin); } } @keyframes rd { to { transform: rotateZ(@p(-2turn, 2turn)); } } );--hero-wheel:( :doodle { @grid: 6x1 / 12vmin; } :container { perspective: 15cm; perspective-origin: bottom; } @place-cell: center; @size: 200%; border: @r(20px) solid @pd(#00b8a9, #f8f3d4, #f6416c, #ffde7d); @random(.1) { border-style: dashed; } @random(.1) { border-style: dotted; } @random(.1) { border-width: @p(3px, 4px); border-style: double; } border-radius: 50%; transform-style: preserve-3d; will-change: transform, opacity; animation: scale-up 12s linear infinite; animation-delay: calc(-7s / @size() * @i()); @keyframes scale-up { 0%, 100% { transform: translate3d(0,0,0) rotate(0); opacity: 0; } 10% { opacity: 1; } 95% { transform: translate3d(0, 0, 45vmin) rotateX(calc(@p(-1, 1) * @r(30deg, 330deg))) rotateY(calc(@p(-1, 1) * @r(30deg, 330deg))) rotateZ(calc(@p(-1, 1) * @r(30deg, 330deg))); } } );--ds:@r(1.5s, 10s, .1);--size:@r(1, 9);--z:calc(@i() * .0001px + var(--size) * .1px);--machine-learning:( :doodle { @grid: 12 / 50vmin 80vmin; perspective: 90vmin; perspective-origin: 0% -140%; transform: scale(.7); } :container { transform-style: preserve-3d; animation: camera 5s ease-in-out infinite; animation-direction: alternate-reverse; } animation: move var(--ds) linear infinite, opacity var(--ds) linear infinite; animation-delay: calc((@row() - @size-row()) * var(--ds) / @size-row() - @r(@size()) * .1s); :after { content: ""; @size: calc(var(--size) * 10%); background: @p(#fff, #3d0000, #333, #fefefe); } position: absolute; left: calc(@col() * 90% / @size-row()); @size: calc(100% / @size-row()); @keyframes move { 0% { transform: translate3d(0, 0, calc(var(--z) - 15vmin)) rotateX(180deg) scaleY(.01); } 10% { transform: translate3d(0, calc(10% * @size-row()), var(--z)) rotateX(0) scaleY(.8); } 90% { transform: translate3d(0, calc(90% * @size-row()), var(--z)) scale(1); } 100% { transform: translate3d(0, calc(100% * @size-row()), calc(var(--z) + 5vmin)) scale(.5); } } @keyframes opacity { 0%, 100% { opacity: 0; } 10%, 90% { opacity: .9; } } @keyframes camera { from { transform: rotateX(-45deg) rotate(140deg) translateY(-10%); } to { transform: rotateX(-45deg) rotate(220deg) translateY(-10%); } } )}.icon{vertical-align:middle}.control .icon svg{width:50%;height:50%}.icon svg{fill:currentColor;width:70%;min-width:1em;max-width:100%;height:70%;min-height:1em;max-height:100%;display:block}.icon .svg-inline{transform:translateY(.015em)}.icon-2x{width:1em;height:1em;font-size:2em}.error-img{max-width:min(320px,60vw);margin:1.5rem auto;animation:10s linear infinite noise-3}@keyframes noise-3{0%,3%,5%,42%,44%,to{opacity:1;transform:scaleY(1)}4.3%{opacity:1;transform:scaleY(4)}43%{opacity:1;transform:scaleX(10)rotate(60deg)}}@media (max-width:366px){#somersetlevelscontainer,#traintrippercontainer{margin-left:-24px;margin-right:-24px}}.mapping-demo{padding:2rem 0}.mapping-demo .map-embed{min-height:70vh}.sticky-socials{z-index:200;margin-top:1rem;position:relative}.social{list-style:none;position:relative}.social a{background-color:#333;width:35px;margin-bottom:1px;padding:0 0 0 8px;font-size:20px;display:inline-block}.content pre{background:var(--c-bg-card);font-size:.9rem;line-height:1.55}.content pre code.hljs{color:var(--c-text);font-family:var(--font-mono);background:0 0;padding:0;display:block}.hljs-comment,.hljs-quote{color:#6b6859;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-section,.hljs-doctag,.hljs-type,.hljs-name,.hljs-strong{color:#7a1d2b;font-weight:600}.hljs-string,.hljs-attr,.hljs-template-tag,.hljs-template-variable{color:#4f5c2f}.hljs-number,.hljs-symbol,.hljs-bullet,.hljs-meta{color:#7a5a1e}.hljs-title,.hljs-title.function_,.hljs-selector-id,.hljs-selector-class{color:#2c3a4a;font-weight:600}.hljs-built_in,.hljs-class .hljs-title{color:#2c3a4a}.hljs-variable,.hljs-params,.hljs-attribute{color:var(--c-text)}.hljs-tag{color:#6b6859}.hljs-tag .hljs-name{color:#7a1d2b}.hljs-tag .hljs-attr{color:#4f5c2f}.hljs-regexp{color:#7a5a1e}.hljs-link{color:var(--c-primary);text-decoration:underline}.hljs-emphasis{font-style:italic}.hljs-deletion{color:#7a1d2b;background:rgba(122,29,43,.08)}.hljs-addition{color:#2f5a36;background:rgba(47,90,54,.08)}