@layer base {
	html{scroll-behavior:smooth;color-scheme:dark}
	body{margin:0;background:#000;color:#fff;font-family:'Roboto',system-ui,sans-serif;font-weight:200;--accent:#58a9b5;-webkit-font-smoothing:antialiased}
	a{color:#fff;text-decoration:none;transition:color .2s}
	a:hover{color:#58a9b5}
}

#site-nav.scrolled{background:rgba(0,0,0,.55)!important;backdrop-filter:blur(6px)!important;border-bottom:1px solid rgba(255,255,255,.12)!important}
[data-lang-set][aria-pressed="true"]{opacity:1!important}
#captcha-feedback.is-loading{color:rgba(255,255,255,.5)!important}
#captcha-feedback.is-error{color:#e0867a!important}
#form-status p{color:#a9e0ad!important;background:rgba(43,130,43,.16)!important;border-color:rgba(98,196,104,.4)!important;box-shadow:none!important}
#form-status p.is-error{color:#f0aaa0!important;background:rgba(176,42,42,.18)!important;border-color:rgba(224,134,122,.45)!important}
button[disabled]{opacity:.6;cursor:wait!important}
.hover-accent:hover{color:var(--accent)!important}
.hover-accent-text-border:hover{color:var(--accent)!important;border:1px solid var(--accent)!important}
.hover-accent-border:hover{border:1px solid var(--accent)!important}
.hover-accent-background:hover{background:var(--accent)!important}
.hover-opaque:hover{opacity:1!important}
.hover-accent-fill:hover{color:#000!important;background:var(--accent)!important}
.focus-accent-border:focus{border:1px solid var(--accent)!important}

/* extracted from inline styles */
/* page frame and top navigation (all pages) */
.page {
	min-height:100vh;
}
.site-nav {
	position:fixed;
	top:0;
	left:0;
	right:0;
	z-index:100;
	backdrop-filter:blur(0px);
	background:rgba(0,0,0,0);
	border-bottom:1px solid rgba(255,255,255,0);
	transition:background .3s ease,border .3s ease,backdrop-filter .4s ease;
}
.nav-inner {
	max-width:1160px;
	margin:0 auto;
	padding:0 24px;
	height:80px;
	display:flex;
	align-items:center;
	justify-content:space-between;
}
.brand-link {
	display:flex;
	align-items:center;
	gap:12px;
}
.brand-logo {
	height:34px;
	width:34px;
	display:block;
}
.brand-name {
	font-family:'Zen Dots',sans-serif;
	font-size:20px;
	letter-spacing:.04em;
}
.nav-links-home {
	display:flex;
	align-items:center;
	gap:30px;
	font-size:17px;
	font-weight:200;
}
.nav-dropdown {
	position:relative;
}
.nav-dropdown-toggle {
	background:none;
	border:0;
	padding:0;
	font:inherit;
	color:rgba(255,255,255,.85);
	cursor:pointer;
	display:flex;
	align-items:center;
	gap:6px;
}
.nav-dropdown-caret {
	font-size:11px;
	opacity:.7;
}
.nav-dropdown-position {
	position:absolute;
	top:100%;
	left:50%;
	transform:translateX(-50%);
	padding-top:16px;
}
.nav-dropdown-panel {
	background:rgba(0,0,0,.92);
	border:1px solid rgba(255,255,255,.12);
	border-radius:12px;
	padding:8px;
	min-width:230px;
	backdrop-filter:blur(8px);
	box-shadow:rgba(0,0,0,.5) 0 18px 30px;
	display:flex;
	flex-direction:column;
}
.nav-dropdown-panel-narrow {
	background:rgba(0,0,0,.92);
	border:1px solid rgba(255,255,255,.12);
	border-radius:12px;
	padding:8px;
	min-width:190px;
	backdrop-filter:blur(8px);
	box-shadow:rgba(0,0,0,.5) 0 18px 30px;
}
.nav-dropdown-item {
	display:block;
	padding:11px 16px;
	border-radius:8px;
	color:rgba(255,255,255,.85);
	font-size:16px;
	white-space:nowrap;
}
.nav-dropdown-item-wrapping {
	display:block;
	padding:11px 16px;
	border-radius:8px;
	color:rgba(255,255,255,.85);
	font-size:16px;
}
.nav-link {
	color:rgba(255,255,255,.85);
}
.nav-contact-button {
	color:#000;
	background:#fff;
	padding:9px 24px;
	border-radius:18px;
	font-weight:200;
}
.language-switch {
	display:flex;
	align-items:center;
	gap:10px;
	margin-left:2px;
}
.language-flag-button {
	background:none;
	border:0;
	padding:0;
	cursor:pointer;
	display:flex;
	line-height:0;
	border-radius:3px;
	overflow:hidden;
	opacity:.35;
	transition:opacity .2s;
}
.hamburger {
	display:none;
	flex-direction:column;
	gap:5px;
	cursor:pointer;
	padding:8px 4px;
	margin-left:2px;
	background:none;
	border:0;
}
.hamburger-bar {
	width:22px;
	height:2px;
	background:#fff;
	display:block;
}
.mobile-menu {
	display:flex;
	flex-direction:column;
	background:rgba(0,0,0,.95);
	border-top:1px solid rgba(255,255,255,.1);
	padding:10px 24px 18px;
}
.mobile-menu-link {
	color:rgba(255,255,255,.85);
	padding:13px 0;
	font-size:17px;
	border-bottom:1px solid rgba(255,255,255,.08);
}
.mobile-menu-heading {
	padding:14px 0 2px;
	color:rgba(255,255,255,.6);
	font-size:13px;
	letter-spacing:.14em;
	text-transform:uppercase;
}
.mobile-menu-sublink {
	color:rgba(255,255,255,.85);
	padding:8px 0 10px 16px;
	font-size:17px;
}
.mobile-menu-sublink-last {
	color:rgba(255,255,255,.85);
	padding:8px 0 13px 16px;
	font-size:17px;
	border-bottom:1px solid rgba(255,255,255,.08);
}
.mobile-menu-link-last {
	color:rgba(255,255,255,.85);
	padding:13px 0;
	font-size:17px;
}
/* shared building blocks */
.section-kicker {
	color:var(--accent);
	font-size:15px;
	font-weight:400;
	letter-spacing:.2em;
	text-transform:uppercase;
}
.section-title {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:clamp(26px,3.4vw,40px);
	margin:18px 0 56px;
	max-width:760px;
	line-height:1.25;
}
.section-title-flush {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:clamp(26px,3.4vw,40px);
	margin:18px 0 0;
	line-height:1.25;
}
.section-tinted {
	scroll-margin-top:100px;
	background:#0b1719;
}
.section-anchor {
	scroll-margin-top:100px;
}
.section-inner {
	max-width:1160px;
	margin:0 auto;
	padding:110px 24px;
}
.section-dark {
	background:#0b1416;
}
.cta-section {
	position:relative;
	overflow:hidden;
}
.cta-glow {
	position:absolute;
	inset:0;
	background:radial-gradient(ellipse 55% 60% at 50% 50%,rgba(39,95,103,.4),transparent);
}
.hero-background-image {
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
	opacity:.22;
}
.bullet-item {
	display:flex;
	align-items:center;
	gap:10px;
}
.bullet-dot {
	width:6px;
	height:6px;
	border-radius:50%;
	background:var(--accent);
	flex:none;
}
.bullet-dot-aligned {
	width:6px;
	height:6px;
	border-radius:50%;
	background:var(--accent);
	flex:none;
	margin-top:.55em;
}
.accent-text {
	color:var(--accent);
}
.stat-block {
	display:flex;
	flex-direction:column;
	gap:10px;
}
.heading-row {
	display:flex;
	align-items:center;
	gap:14px;
	flex-wrap:wrap;
}
.feature-title {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:20px;
	margin:0;
	line-height:1.35;
}
.card-text {
	color:rgba(255,255,255,.65);
	font-weight:200;
	line-height:1.7;
	margin:0;
	font-size:16px;
}
.card-text-small {
	color:rgba(255,255,255,.7);
	font-size:15px;
	line-height:1.5;
}
.mono-text {
	font-family:'Roboto Mono',ui-monospace,monospace;
}
.cta-title {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:clamp(24px,3vw,34px);
	margin:0;
	line-height:1.3;
	max-width:640px;
}
.cta-text {
	color:rgba(255,255,255,.65);
	font-weight:200;
	font-size:16px;
	line-height:1.7;
	margin:0;
	max-width:560px;
}
.button-primary {
	color:#000;
	background:#fff;
	font-size:22px;
	font-weight:200;
	padding:13px 40px;
	border-radius:18px;
	box-shadow:rgba(24,37,41,.35) 0 18px 30px;
}
.button-secondary {
	color:#fff;
	background:rgba(0,0,0,.35);
	border:1px solid rgba(255,255,255,.3);
	font-size:22px;
	font-weight:200;
	padding:12px 40px;
	border-radius:18px;
}
.button-outline {
	color:#fff;
	border:1px solid rgba(255,255,255,.3);
	font-size:17px;
	font-weight:200;
	padding:10px 26px;
	border-radius:18px;
}
.card-tag {
	color:var(--accent);
	font-size:13px;
	font-weight:400;
	letter-spacing:.14em;
	text-transform:uppercase;
}
/* contact form */
.contact-form {
	display:flex;
	flex-direction:column;
	gap:18px;
}
.form-row {
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));
	gap:18px;
}
.form-field {
	display:flex;
	flex-direction:column;
	gap:8px;
}
.form-label {
	font-size:15px;
	font-weight:400;
	color:rgba(255,255,255,.85);
}
.form-label-optional {
	font-weight:200;
	color:rgba(255,255,255,.65);
}
.form-input-in-row {
	background:#111;
	border:1px solid rgba(255,255,255,.15);
	border-radius:18px;
	padding:15px 20px;
	color:#fff;
	font-size:16px;
	font-weight:200;
	font-family:'Roboto',sans-serif;
	outline:none;
	min-width:0;
}
.form-input {
	background:#111;
	border:1px solid rgba(255,255,255,.15);
	border-radius:18px;
	padding:15px 20px;
	color:#fff;
	font-size:16px;
	font-weight:200;
	font-family:'Roboto',sans-serif;
	outline:none;
}
.form-select {
	background-color:#111;
	border:1px solid rgba(255,255,255,.15);
	border-radius:18px;
	padding:15px 52px 15px 20px;
	color:#fff;
	font-size:16px;
	font-weight:200;
	font-family:'Roboto',sans-serif;
	outline:none;
	cursor:pointer;
}
.form-textarea {
	background:#111;
	border:1px solid rgba(255,255,255,.15);
	border-radius:18px;
	padding:15px 20px;
	color:#fff;
	font-size:16px;
	font-weight:200;
	font-family:'Roboto',sans-serif;
	outline:none;
	resize:vertical;
	min-height:140px;
}
.captcha-box {
	background:rgba(255,255,255,.04);
	border:1px solid rgba(255,255,255,.1);
	border-radius:18px;
	padding:22px;
	display:flex;
	flex-direction:column;
	gap:12px;
}
.captcha-title {
	font-weight:400;
	font-size:16px;
	letter-spacing:.02em;
}
.captcha-description {
	color:rgba(255,255,255,.65);
	font-weight:200;
	font-size:15px;
}
.captcha-image {
	height:64px;
	max-width:100%;
	border-radius:12px;
	display:block;
	object-fit:contain;
	object-position:left;
}
.captcha-controls {
	display:flex;
	gap:12px;
}
.captcha-input {
	flex:1;
	background:#111;
	border:1px solid rgba(255,255,255,.15);
	border-radius:12px;
	padding:12px 16px;
	color:#fff;
	font-size:15px;
	font-weight:200;
	font-family:'Roboto',sans-serif;
	outline:none;
}
.captcha-refresh-button {
	background:none;
	border:1px solid rgba(255,255,255,.2);
	border-radius:12px;
	color:rgba(255,255,255,.8);
	padding:0 18px;
	font-family:'Roboto',sans-serif;
	font-weight:200;
	font-size:14px;
	cursor:pointer;
}
.captcha-feedback {
	color:#7fc2cc;
	font-size:14.7px;
	font-weight:200;
}
.form-submit-button {
	background:#fff;
	color:#000;
	border:none;
	border-radius:18px;
	padding:14px 24px;
	font-size:24px;
	font-weight:200;
	font-family:'Roboto',sans-serif;
	cursor:pointer;
	margin-top:6px;
}
.form-success-message {
	margin:0 0 6px;
	color:#1e5c1e;
	background:linear-gradient(135deg,rgba(43,130,43,.12),rgba(255,255,255,.92));
	border:1px solid rgba(43,130,43,.2);
	border-radius:18px;
	padding:16px 19px;
	font-weight:200;
	font-size:16px;
	line-height:1.6;
	box-shadow:rgba(24,37,41,.08) 0 18px 30px;
}
/* footer */
.footer-logo {
	height:32px;
	width:32px;
	display:block;
}
.footer-brand-name {
	font-family:'Zen Dots',sans-serif;
	font-size:19px;
	letter-spacing:.04em;
}
.footer-column {
	display:flex;
	flex-direction:column;
	gap:12px;
	font-size:16px;
}
.footer-column-heading {
	color:rgba(255,255,255,.6);
	font-size:13px;
	letter-spacing:.14em;
	text-transform:uppercase;
}
.footer-link {
	color:rgba(255,255,255,.8);
}
.footer-bottom {
	border-top:1px solid rgba(255,255,255,.1);
	padding-top:30px;
	display:flex;
	justify-content:space-between;
	align-items:baseline;
	flex-wrap:wrap;
	gap:16px;
}
.footer-inner-home {
	max-width:1160px;
	margin:0 auto;
	padding:76px 24px 44px;
	display:flex;
	flex-direction:column;
	gap:52px;
}
.footer-top-home {
	display:flex;
	justify-content:space-between;
	flex-wrap:wrap;
	gap:40px;
}
.footer-address {
	color:rgba(255,255,255,.65);
	font-weight:200;
	font-size:16px;
	line-height:1.25;
}
.footer-columns {
	display:flex;
	flex-wrap:wrap;
	gap:36px 64px;
}
.footer-copyright-home {
	color:rgba(255,255,255,.6);
	font-weight:200;
	font-size:14px;
}
/* home: hero */
.home-hero {
	position:relative;
	min-height:800px;
	box-sizing:border-box;
	padding:120px 0 90px;
	display:flex;
	align-items:center;
	justify-content:center;
}
.home-hero-particles {
	position:absolute;
	left:0;
	top:0;
	width:100%;
	height:1100px;
	opacity:.5;
	display:block;
	pointer-events:none;
}
.home-hero-content {
	position:relative;
	padding:0 24px;
	max-width:1160px;
	margin:0 auto;
	text-align:center;
}
.home-hero-kicker {
	color:var(--accent);
	font-size:15px;
	font-weight:400;
	letter-spacing:.2em;
	text-transform:uppercase;
	text-shadow:0 1px 18px rgba(0,0,0,.9);
}
.home-hero-title {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:clamp(32px,4.8vw,58px);
	line-height:1.18;
	letter-spacing:.01em;
	margin:22px auto 0;
	max-width:940px;
	text-wrap:balance;
	text-shadow:0 2px 30px rgba(0,0,0,.8);
}
.home-hero-subtitle {
	font-size:22px;
	font-weight:200;
	color:rgba(255,255,255,.85);
	margin:28px auto 0;
	max-width:680px;
	line-height:1.5;
	text-wrap:pretty;
	text-shadow:0 1px 18px rgba(0,0,0,.8);
}
.home-hero-actions {
	display:flex;
	justify-content:center;
	flex-wrap:wrap;
	gap:16px;
	margin-top:40px;
}
.home-hero-highlights {
	list-style:none;
	margin:56px auto 0;
	padding:0;
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:12px 32px;
	font-size:16px;
	font-weight:200;
	color:rgba(255,255,255,.85);
	text-shadow:0 1px 14px rgba(0,0,0,.9);
}
/* home: services */
.home-services {
	position:relative;
	scroll-margin-top:100px;
}
.home-services-inner {
	max-width:1160px;
	margin:0 auto;
	padding:170px 24px 110px;
}
.home-service-grid {
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));
	gap:24px;
}
.service-card {
	background:rgba(255,255,255,.04);
	border:1px solid rgba(255,255,255,.1);
	border-radius:18px;
	padding:34px 30px;
	display:flex;
	flex-direction:column;
	gap:14px;
	box-shadow:rgba(24,37,41,.3) 0 18px 30px;
}
.service-card-title {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:clamp(18px,2.2vw,22px);
	margin:0;
	line-height:1.35;
	overflow-wrap:break-word;
}
.service-card-text {
	color:rgba(255,255,255,.7);
	font-weight:200;
	line-height:1.65;
	margin:0;
	font-size:16px;
	flex:1;
}
.service-card-link {
	color:var(--accent);
	font-size:16px;
	font-weight:400;
	margin-top:6px;
}
.home-stack {
	margin-top:64px;
	padding-top:40px;
	border-top:1px solid rgba(255,255,255,.1);
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	justify-content:space-between;
	gap:24px 40px;
}
.home-stack-label {
	font-family:'Zen Dots',sans-serif;
	font-size:18px;
	line-height:1.4;
	text-transform:uppercase;
}
.home-stack-icons {
	display:flex;
	flex-wrap:wrap;
	gap:18px 24px;
	align-items:center;
}
.home-stack-glyph {
	font-family:'Roboto',sans-serif;
	font-weight:700;
	font-size:30px;
	line-height:1;
	color:rgba(255,255,255,.85);
}
.stack-icon-python {
	display:inline-block;
	width:30px;
	height:30px;
	background:rgba(255,255,255,.85);
	-webkit-mask:url('../assets/icons/python.png') center/contain no-repeat;
	mask:url('../assets/icons/python.png') center/contain no-repeat;
}
.stack-icon-java {
	display:inline-block;
	width:30px;
	height:30px;
	background:rgba(255,255,255,.85);
	-webkit-mask:url('../assets/icons/java.png') center/contain no-repeat;
	mask:url('../assets/icons/java.png') center/contain no-repeat;
}
.stack-icon-javascript {
	display:inline-block;
	width:30px;
	height:30px;
	background:rgba(255,255,255,.85);
	-webkit-mask:url('../assets/icons/square-js.png') center/contain no-repeat;
	mask:url('../assets/icons/square-js.png') center/contain no-repeat;
}
.stack-icon-android {
	display:inline-block;
	width:30px;
	height:30px;
	background:rgba(255,255,255,.85);
	-webkit-mask:url('../assets/icons/android.png') center/contain no-repeat;
	mask:url('../assets/icons/android.png') center/contain no-repeat;
}
.stack-icon-html5 {
	display:inline-block;
	width:30px;
	height:30px;
	background:rgba(255,255,255,.85);
	-webkit-mask:url('../assets/icons/html5.png') center/contain no-repeat;
	mask:url('../assets/icons/html5.png') center/contain no-repeat;
}
.stack-icon-linux {
	display:inline-block;
	width:30px;
	height:30px;
	background:rgba(255,255,255,.85);
	-webkit-mask:url('../assets/icons/linux.png') center/contain no-repeat;
	mask:url('../assets/icons/linux.png') center/contain no-repeat;
}
.stack-icon-freebsd {
	display:inline-block;
	width:30px;
	height:30px;
	background:rgba(255,255,255,.85);
	-webkit-mask:url('../assets/icons/freebsd.png') center/contain no-repeat;
	mask:url('../assets/icons/freebsd.png') center/contain no-repeat;
}
.stack-icon-golang {
	display:inline-block;
	width:30px;
	height:30px;
	background:rgba(255,255,255,.85);
	-webkit-mask:url('../assets/icons/golang.png') center/contain no-repeat;
	mask:url('../assets/icons/golang.png') center/contain no-repeat;
}
.stack-icon-php {
	display:inline-block;
	width:30px;
	height:30px;
	background:rgba(255,255,255,.85);
	-webkit-mask:url('../assets/icons/php.png') center/contain no-repeat;
	mask:url('../assets/icons/php.png') center/contain no-repeat;
}
.stack-icon-react {
	display:inline-block;
	width:30px;
	height:30px;
	background:rgba(255,255,255,.85);
	-webkit-mask:url('../assets/icons/react.png') center/contain no-repeat;
	mask:url('../assets/icons/react.png') center/contain no-repeat;
}
.stack-icon-angular {
	display:inline-block;
	width:30px;
	height:30px;
	background:rgba(255,255,255,.85);
	-webkit-mask:url('../assets/icons/angular.png') center/contain no-repeat;
	mask:url('../assets/icons/angular.png') center/contain no-repeat;
}
/* home: Analyhs teaser */
.home-analyhs {
	position:relative;
	overflow:hidden;
	scroll-margin-top:100px;
}
.home-analyhs-background-image {
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
	opacity:.16;
	filter:grayscale(.4);
}
.home-analyhs-background-fade {
	position:absolute;
	inset:0;
	background:linear-gradient(180deg,#000 0%,rgba(0,0,0,.45) 45%,#000 100%);
}
.home-analyhs-inner {
	position:relative;
	max-width:1160px;
	margin:0 auto;
	padding:110px 24px;
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));
	gap:56px;
	align-items:center;
}
.home-analyhs-text {
	display:flex;
	flex-direction:column;
	gap:22px;
}
.home-analyhs-title {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:clamp(26px,3.4vw,40px);
	margin:0;
	line-height:1.25;
	text-wrap:balance;
}
.home-analyhs-description {
	color:rgba(255,255,255,.75);
	font-weight:200;
	font-size:18px;
	line-height:1.7;
	margin:0;
	max-width:540px;
}
.home-analyhs-actions {
	display:flex;
	flex-wrap:wrap;
	gap:16px;
	margin-top:10px;
}
.home-analyhs-button {
	color:#000;
	background:#fff;
	font-size:20px;
	font-weight:200;
	padding:13px 34px;
	border-radius:18px;
	box-shadow:rgba(24,37,41,.35) 0 18px 30px;
}
.home-analyhs-button-secondary {
	color:#fff;
	border:1px solid rgba(255,255,255,.3);
	font-size:20px;
	font-weight:200;
	padding:12px 34px;
	border-radius:18px;
}
.home-analyhs-stats {
	background:rgba(0,0,0,.55);
	border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);
	border-radius:18px;
	padding:36px 34px;
	display:flex;
	flex-direction:column;
	gap:26px;
	box-shadow:rgba(24,37,41,.3) 0 18px 30px;
}
.home-stat-value-large {
	font-family:'Zen Dots',sans-serif;
	font-size:64px;
	line-height:1;
	color:var(--accent);
}
.home-stat-label {
	color:rgba(255,255,255,.75);
	font-size:16px;
	line-height:1.5;
}
.home-stat-divider {
	height:1px;
	background:rgba(255,255,255,.12);
}
.home-stat-value {
	font-family:'Zen Dots',sans-serif;
	font-size:44px;
	line-height:1;
	color:var(--accent);
}
.home-stat-source {
	color:rgba(255,255,255,.6);
	font-size:13.5px;
	line-height:1.6;
}
/* home: process steps */
.process-title {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:clamp(26px,3.4vw,40px);
	margin:18px 0 60px;
	max-width:720px;
	line-height:1.25;
}
.step-grid {
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
	gap:24px;
}
.step-card {
	background:rgba(0,0,0,.45);
	border:1px solid rgba(255,255,255,.1);
	border-radius:18px;
	padding:34px 30px;
	display:flex;
	flex-direction:column;
	gap:16px;
	box-shadow:rgba(24,37,41,.3) 0 18px 30px;
}
.step-number {
	font-family:'Zen Dots',sans-serif;
	font-size:32px;
	color:var(--accent);
}
.step-title {
	font-size:21px;
	font-weight:400;
	margin:0;
	letter-spacing:.02em;
}
.step-text {
	color:rgba(255,255,255,.65);
	font-weight:200;
	line-height:1.65;
	margin:0;
	font-size:16px;
}
.home-steps-note-block {
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:16px;
	margin-top:56px;
	text-align:center;
}
.home-steps-note {
	margin:0;
	color:rgba(255,255,255,.7);
	font-weight:200;
	font-size:16px;
	line-height:1.6;
	max-width:520px;
}
/* home: enterprise */
.home-enterprise-inner {
	max-width:1280px;
	margin:0 auto;
	padding:100px 24px 120px;
}
.home-enterprise-title {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:clamp(26px,3.4vw,40px);
	margin:0 auto;
	max-width:760px;
	line-height:1.3;
	text-align:center;
}
.home-enterprise-subtitle {
	color:rgba(255,255,255,.7);
	font-weight:200;
	font-size:17px;
	line-height:1.7;
	margin:30px auto 0;
	max-width:560px;
	text-align:center;
}
.home-enterprise-divider {
	height:1px;
	background:rgba(255,255,255,.12);
	margin:44px auto 90px;
	max-width:620px;
}
.home-enterprise-grid {
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
	gap:26px;
	align-items:stretch;
}
.home-enterprise-column {
	display:flex;
	flex-direction:column;
	gap:26px;
}
.home-enterprise-snake-frame {
	position:relative;
	border-radius:18px;
	overflow:hidden;
	aspect-ratio:1/1;
	background:#000;
}
.home-enterprise-snake-image {
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
	filter:brightness(.65);
}
.home-enterprise-snake-canvas {
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	display:block;
	mix-blend-mode:screen;
}
.home-enterprise-card {
	background:rgba(255,255,255,.04);
	border:1px solid rgba(255,255,255,.1);
	border-radius:18px;
	padding:32px 30px;
	display:flex;
	flex-direction:column;
	justify-content:space-between;
	gap:64px;
	flex-grow:1;
	box-shadow:rgba(24,37,41,.3) 0 18px 30px;
}
.home-enterprise-card-title {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:22px;
	margin:0;
}
.home-enterprise-card-text {
	color:rgba(255,255,255,.65);
	font-weight:200;
	line-height:1.75;
	margin:0;
	font-size:16px;
}
.home-enterprise-photo-tall {
	width:100%;
	aspect-ratio:10/11;
	object-fit:cover;
	border-radius:18px;
	display:block;
	background:#111;
}
.home-enterprise-photo-square {
	width:100%;
	aspect-ratio:1/1;
	object-fit:cover;
	border-radius:18px;
	display:block;
	background:#111;
}
/* home: solutions */
.home-solutions-inner {
	max-width:1160px;
	margin:0 auto;
	padding:110px 24px;
	display:flex;
	flex-direction:column;
	gap:90px;
}
.solution-row {
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));
	gap:60px;
	align-items:center;
}
.solution-title {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:24px;
	margin:0;
}
.solution-text {
	color:rgba(255,255,255,.7);
	font-weight:200;
	line-height:1.75;
	margin:0;
	font-size:17px;
}
.solution-text-block {
	display:flex;
	flex-direction:column;
	gap:18px;
	order:1;
}
.solution-image-last {
	width:100%;
	height:340px;
	object-fit:cover;
	border-radius:18px;
	display:block;
	background:#111;
	order:2;
}
.solution-image {
	width:100%;
	height:340px;
	object-fit:cover;
	border-radius:18px;
	display:block;
	background:#111;
}
.solution-media-frame {
	border-radius:18px;
	overflow:hidden;
	height:340px;
	order:2;
}
.solution-media-image {
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
}
/* home: contact */
.home-contact-title {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:clamp(26px,3.4vw,40px);
	margin:0;
	line-height:1.25;
}
.home-contact-subtitle {
	color:rgba(255,255,255,.7);
	font-weight:200;
	font-size:19px;
	line-height:1.6;
	margin:22px 0 0;
	max-width:500px;
}
.home-contact-divider {
	height:1px;
	background:rgba(255,255,255,.12);
	margin:60px 0;
}
.home-contact-layout {
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));
	gap:64px 70px;
	align-items:start;
}
.home-contact-side {
	display:flex;
	flex-direction:column;
	gap:28px;
}
.home-next-steps {
	background:rgba(255,255,255,.04);
	border:1px solid rgba(255,255,255,.1);
	border-radius:18px;
	padding:34px;
	display:flex;
	flex-direction:column;
	gap:24px;
	box-shadow:rgba(24,37,41,.3) 0 18px 30px;
}
.home-next-steps-title {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:22px;
	margin:0;
	line-height:1.35;
}
.home-next-steps-list {
	list-style:none;
	margin:0;
	padding:0;
	display:flex;
	flex-direction:column;
	gap:18px;
}
.home-next-step {
	display:flex;
	gap:18px;
	align-items:baseline;
}
.home-next-step-number {
	font-family:'Zen Dots',sans-serif;
	font-size:18px;
	color:var(--accent);
	flex:none;
	width:36px;
}
.home-next-step-text {
	color:rgba(255,255,255,.75);
	font-size:17px;
	line-height:1.55;
}
.home-contact-email-row {
	border-top:1px solid rgba(255,255,255,.1);
	padding-top:20px;
	display:flex;
	flex-wrap:wrap;
	gap:6px 10px;
	align-items:baseline;
	font-size:17px;
}
.home-contact-email-lead {
	color:rgba(255,255,255,.7);
}
.home-contact-email-link {
	color:var(--accent);
	font-weight:400;
}
.home-contact-stat {
	border:1px solid rgba(255,255,255,.1);
	border-radius:18px;
	padding:34px;
	display:flex;
	align-items:baseline;
	gap:22px;
}
.home-contact-stat-value {
	font-family:'Zen Dots',sans-serif;
	font-size:52px;
	color:var(--accent);
}
.home-contact-stat-label {
	color:rgba(255,255,255,.7);
	font-weight:200;
	font-size:17px;
	line-height:1.45;
}
/* open source page */
.oss-hero {
	position:relative;
	overflow:hidden;
	padding:210px 0 170px;
}
.oss-hero-fade {
	position:absolute;
	inset:0;
	background:linear-gradient(180deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,.35) 50%,#000 100%);
}
.oss-hero-content {
	position:relative;
	max-width:1160px;
	margin:0 auto;
	padding:0 24px;
	text-align:center;
}
.oss-hero-title {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:clamp(32px,4.8vw,58px);
	line-height:1.18;
	margin:22px auto 0;
	max-width:900px;
	text-wrap:balance;
}
.oss-hero-subtitle {
	font-size:22px;
	font-weight:200;
	color:rgba(255,255,255,.85);
	margin:30px auto 0;
	max-width:660px;
	line-height:1.55;
	text-wrap:pretty;
}
.oss-hero-actions {
	display:flex;
	justify-content:center;
	flex-wrap:wrap;
	gap:16px;
	margin-top:44px;
}
.oss-labs-inner {
	max-width:1160px;
	margin:0 auto;
	padding:130px 24px;
}
.oss-section-title {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:clamp(26px,3.4vw,40px);
	margin:18px 0 0;
	max-width:760px;
	line-height:1.25;
}
.oss-labs-description {
	color:rgba(255,255,255,.75);
	font-weight:200;
	font-size:19px;
	line-height:1.7;
	margin:26px 0 0;
	max-width:720px;
}
.oss-principle-grid {
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));
	gap:24px;
	margin-top:64px;
}
.oss-principle-card {
	background:rgba(255,255,255,.04);
	border:1px solid rgba(255,255,255,.1);
	border-radius:18px;
	padding:34px 30px;
	display:flex;
	flex-direction:column;
	gap:16px;
	box-shadow:rgba(24,37,41,.3) 0 18px 30px;
}
.oss-principle-number {
	font-family:'Zen Dots',sans-serif;
	font-size:28px;
	color:var(--accent);
}
.oss-principle-text {
	color:rgba(255,255,255,.7);
	font-weight:200;
	line-height:1.7;
	margin:0;
	font-size:16px;
}
.oss-projects {
	scroll-margin-top:100px;
}
.oss-projects-inner {
	max-width:1160px;
	margin:0 auto;
	padding:130px 24px 140px;
}
.oss-projects-subtitle {
	color:rgba(255,255,255,.75);
	font-weight:200;
	font-size:19px;
	line-height:1.7;
	margin:22px 0 0;
	max-width:640px;
}
.oss-project-list {
	display:flex;
	flex-direction:column;
	gap:150px;
	margin-top:100px;
}
.oss-project {
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));
	gap:48px 72px;
	align-items:center;
}
.oss-project-glow {
	position:absolute;
	inset:10% 8%;
	background:radial-gradient(closest-side,color-mix(in srgb, var(--accent) 30%, transparent),transparent);
	filter:blur(40px);
}
.oss-project-image {
	position:relative;
	display:block;
	width:100%;
	height:auto;
}
.oss-project-details {
	display:flex;
	flex-direction:column;
	gap:20px;
}
.oss-project-index {
	font-family:'Zen Dots',sans-serif;
	font-size:15px;
	color:var(--accent);
}
.oss-project-title {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:clamp(28px,3.4vw,40px);
	margin:0;
	line-height:1.15;
}
.oss-project-title-compact {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:clamp(24px,3vw,34px);
	margin:0;
	line-height:1.2;
	overflow-wrap:anywhere;
}
.oss-project-tagline {
	font-size:21px;
	font-weight:200;
	color:#fff;
	margin:0;
	line-height:1.45;
}
.oss-project-description {
	color:rgba(255,255,255,.7);
	font-size:17px;
	line-height:1.7;
	margin:0;
}
.oss-project-features {
	list-style:none;
	margin:4px 0 0;
	padding:0;
	display:flex;
	flex-direction:column;
	gap:10px;
}
.oss-project-feature {
	display:flex;
	gap:12px;
	align-items:flex-start;
	color:rgba(255,255,255,.8);
	font-size:16px;
	line-height:1.5;
}
.oss-project-links {
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:14px 22px;
	margin-top:10px;
}
.oss-project-meta {
	color:rgba(255,255,255,.6);
	font-size:14px;
	letter-spacing:.04em;
}
.oss-project-note {
	margin:0;
	color:rgba(255,255,255,.6);
	font-size:13.5px;
	line-height:1.6;
}
.oss-code-window {
	position:relative;
	margin:0;
	background:#0b1214;
	border:1px solid rgba(255,255,255,.1);
	border-radius:14px;
	box-shadow:rgba(0,0,0,.55) 0 30px 60px;
	overflow:hidden;
}
.oss-window-header {
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	align-items:center;
	gap:6px 16px;
	padding:14px 20px;
	border-bottom:1px solid rgba(255,255,255,.08);
	font-size:13px;
	color:rgba(255,255,255,.6);
	letter-spacing:.04em;
}
.oss-code-body {
	padding:22px 22px 24px;
	overflow-x:auto;
	font-family:'Roboto Mono',ui-monospace,monospace;
	font-size:13px;
	line-height:1.7;
	color:rgba(255,255,255,.85);
}
.oss-code-line {
	white-space:pre;
	min-height:1.7em;
}
.oss-screenshot-wide {
	position:relative;
	display:block;
	width:100%;
	height:auto;
	aspect-ratio:16/9;
	object-fit:cover;
	border-radius:14px;
	border:1px solid rgba(255,255,255,.1);
	box-shadow:rgba(0,0,0,.55) 0 30px 60px;
	background:#0b1214;
}
.oss-screenshot {
	position:relative;
	display:block;
	width:100%;
	height:auto;
	border-radius:14px;
	border:1px solid rgba(255,255,255,.1);
	box-shadow:rgba(0,0,0,.55) 0 30px 60px;
	background:#0b1214;
}
.oss-config-window {
	position:relative;
	background:#0b1214;
	border:1px solid rgba(255,255,255,.1);
	border-radius:14px;
	box-shadow:rgba(0,0,0,.55) 0 30px 60px;
	overflow:hidden;
}
.oss-config-row {
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	justify-content:space-between;
	gap:10px 16px;
	padding:20px;
	border-bottom:1px solid rgba(255,255,255,.06);
}
.oss-config-row-text {
	display:flex;
	flex-direction:column;
	gap:6px;
	min-width:0;
}
.oss-config-name {
	font-family:'Roboto Mono',ui-monospace,monospace;
	font-size:14px;
	color:#fff;
}
.oss-chip-live {
	flex:none;
	font-size:12px;
	font-weight:400;
	letter-spacing:.08em;
	text-transform:uppercase;
	padding:6px 12px;
	border-radius:12px;
	background:var(--accent);
	color:#000;
}
.oss-chip-config {
	flex:none;
	font-size:12px;
	font-weight:400;
	letter-spacing:.08em;
	text-transform:uppercase;
	padding:6px 12px;
	border-radius:12px;
	background:rgba(255,255,255,.12);
	color:#fff;
}
.oss-config-footer {
	padding:16px 20px;
	color:rgba(255,255,255,.65);
	font-size:14px;
	line-height:1.6;
}
.oss-more {
	margin-top:130px;
	padding-top:44px;
	border-top:1px solid rgba(255,255,255,.1);
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	align-items:center;
	gap:22px 40px;
}
.oss-more-text {
	margin:0;
	font-size:19px;
	line-height:1.6;
	color:rgba(255,255,255,.8);
	max-width:640px;
}
.oss-cta-inner {
	position:relative;
	max-width:1160px;
	margin:0 auto;
	padding:130px 24px;
	text-align:center;
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:22px;
}
.oss-cta-title {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:clamp(24px,3vw,34px);
	margin:0;
	line-height:1.3;
	max-width:680px;
	text-wrap:balance;
}
.oss-cta-text {
	color:rgba(255,255,255,.7);
	font-weight:200;
	font-size:17px;
	line-height:1.7;
	margin:0;
	max-width:580px;
}
.oss-cta-actions {
	display:flex;
	justify-content:center;
	flex-wrap:wrap;
	gap:16px;
	margin-top:12px;
}
.oss-cta-button-secondary {
	color:#fff;
	border:1px solid rgba(255,255,255,.3);
	font-size:22px;
	font-weight:200;
	padding:12px 40px;
	border-radius:18px;
}
/* service pages (custom software, education, HVE applications) */
.service-hero {
	position:relative;
	overflow:hidden;
}
.service-hero-fade {
	position:absolute;
	inset:0;
	background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.35) 50%,#000 100%);
}
.service-hero-content {
	position:relative;
	max-width:1160px;
	margin:0 auto;
	padding:190px 24px 110px;
	text-align:center;
}
.service-hero-title {
	font-family:'Zen Dots',sans-serif;
	font-weight:400;
	font-size:clamp(30px,4.4vw,54px);
	line-height:1.2;
	margin:18px auto 0;
	max-width:900px;
}
.service-hero-subtitle {
	font-size:21px;
	font-weight:200;
	color:rgba(255,255,255,.8);
	margin:28px auto 0;
	max-width:640px;
	line-height:1.55;
}
.service-hero-actions {
	display:flex;
	justify-content:center;
	margin-top:40px;
}
.service-hero-button {
	color:#000;
	background:#fff;
	font-size:22px;
	font-weight:200;
	padding:12px 40px;
	border-radius:18px;
	box-shadow:rgba(24,37,41,.35) 0 18px 30px;
}
.svc-grid {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:24px;
}
.service-details-inner {
	max-width:1160px;
	margin:0 auto;
	padding:110px 24px;
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
	gap:64px;
	align-items:start;
}
.service-details-intro {
	color:rgba(255,255,255,.7);
	font-weight:200;
	font-size:18px;
	line-height:1.7;
	margin:22px 0 0;
	max-width:460px;
}
.service-feature-list {
	display:flex;
	flex-direction:column;
	gap:40px;
}
.service-feature {
	display:flex;
	gap:22px;
	align-items:flex-start;
}
.service-feature-number {
	font-family:'Zen Dots',sans-serif;
	font-size:28px;
	color:var(--accent);
	line-height:1;
	flex:none;
	width:52px;
}
.service-feature-title {
	font-size:20px;
	font-weight:400;
	margin:0;
	letter-spacing:.02em;
}
.service-cta-inner {
	position:relative;
	max-width:1160px;
	margin:0 auto;
	padding:120px 24px;
	text-align:center;
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:22px;
}
.service-cta-button {
	margin-top:12px;
	color:#000;
	background:#fff;
	font-size:22px;
	font-weight:200;
	padding:12px 40px;
	border-radius:18px;
}
.text-link-underlined {
	color:var(--accent);
	text-decoration:underline;
	text-underline-offset:3px;
}

/* shared navigation */
@layer base {
	@media (max-width:1060px){
		[data-nav]{display:none!important}
		#hamburger{display:flex!important}
	}
	#navlinks>a,#navlinks>div>a,#navlinks>div>button{white-space:nowrap}
	@media (max-width:480px){
		nav>div{padding:0 16px!important}
		nav .brand-name{display:none}
		#navlinks{gap:14px!important}
		#navlinks>.nav-contact-button{padding:8px 16px!important;font-size:15px!important}
	}
}
.footer-link[aria-current="page"]{color:var(--accent)}
.brand-link:hover{color:#fff}
/* a scrollbar appearing while the page loads would push the fixed menu sideways */
html{scrollbar-gutter:stable}
/* hidden until main.js has written the chosen language, so texts do not swap in view */
html.i18n-pending body{visibility:hidden}
