/*
* Skeleton V1.2
* Copyright 2011, Dave Gamache
* www.getskeleton.com
* Free to use under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
* 6/20/2012
*/


/* Table of Content
==================================================
	#Reset & Basics
	#Basic Styles
	#Site Styles
	#Typography
	#Links
	#Lists
	#Images
	#Buttons
	#Forms
	#Misc */


/* #Reset & Basics (Inspired by E. Meyers)
================================================== */
	html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
		margin: 0;
		padding: 0;
		border: 0;
		font-size: 100%;
		font: inherit;
		vertical-align: baseline; }
	article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
		display: block; }
	body {
		line-height: 1; }
	ol, ul {
		list-style: none; }
	blockquote, q {
		quotes: none; }
	blockquote:before, blockquote:after,
	q:before, q:after {
		content: '';
		content: none; }
	table {
		border-collapse: collapse;
		border-spacing: 0; }


/* #Basic Styles
================================================== */
	body {
		background: #fff;
		font: 15px/1.6 "Raleway", "HelveticaNeue-Light", Arial, sans-serif;
		color: #444;
		-webkit-font-smoothing: antialiased; /* Fix for webkit rendering */
		-moz-osx-font-smoothing: grayscale;
		-webkit-text-size-adjust: 100%;
		text-rendering: optimizeLegibility;
 }


/* #Typography
================================================== */
	h1, h2, h3, h4, h5, h6 {
		font-weight: 300; 
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
	}
	h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { font-weight: inherit; }
	h1 { font-size: 46px; line-height: 1.2; margin-bottom: 20px; letter-spacing: -0.02em;}
	h2 { font-size: 35px; line-height: 1.3; margin-bottom: 16px; letter-spacing: -0.01em; }
	h3 { font-size: 28px; line-height: 1.35; margin-bottom: 12px; }
	h4 { font-size: 21px; line-height: 1.4; margin-bottom: 10px; }
	h5 { font-size: 17px; line-height: 1.5; }
	h6 { font-size: 14px; line-height: 1.5; }
	.subheader { color: #777; }

	p { margin: 0 0 24px 0; line-height: 1.75; }
	p img { margin: 0; }
	p.lead { font-size: 21px; line-height: 1.6; color: #777;  }

	em { font-style: italic; }
	strong { font-weight: bold; }
	small { font-size: 80%; }

/*	Blockquotes  */
	blockquote, blockquote p { font-size: 17px; line-height: 24px; color: #777; font-style: italic; }
	blockquote { margin: 0 0 20px; padding: 9px 20px 0 19px; border-left: 1px solid #ddd; }
	blockquote cite { display: block; font-size: 12px; color: #555; }
	blockquote cite:before { content: "\2014 \0020"; }
	blockquote cite a, blockquote cite a:visited, blockquote cite a:visited { color: #555; }

	hr { border: solid #ddd; border-width: 1px 0 0; clear: both; margin: 10px 0 30px; height: 0; }


/* #Links
================================================== */
	a, a:visited { text-decoration: underline; outline: 0; }
	a:hover, a:focus { }
	p a, p a:visited { line-height: inherit; }


/* #Lists
================================================== */
	ul, ol { margin-bottom: 20px; }
	ul { list-style: none outside; }
	ol { list-style: decimal; }
	ul, ul.square { list-style: square outside; }
	ul ul, ul.circle { list-style: circle outside; }
	ul ul ul, ul.disc { list-style: disc outside; }
	ul ul li, ul ol li,
	ol ol li, ol ul li { margin-bottom: 6px; }
	li { line-height: 18px; margin-bottom: 12px; }
	ul.large li { line-height: 21px; }
	li p { line-height: 21px; }

/* #Images
================================================== */

	img.scale-with-grid {
		max-width: 100%;
		height: auto; }


/* #Buttons
================================================== */

	.button,
	button,
	input[type="submit"],
	input[type="reset"],
	input[type="button"] {
		background: #eee; /* Old browsers */
		background: #eee -moz-linear-gradient(top, rgba(255,255,255,.2) 0%, rgba(0,0,0,.2) 100%); /* FF3.6+ */
		background: #eee -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.2)), color-stop(100%,rgba(0,0,0,.2))); /* Chrome,Safari4+ */
		background: #eee -webkit-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Chrome10+,Safari5.1+ */
		background: #eee -o-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Opera11.10+ */
		background: #eee -ms-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* IE10+ */
		background: #eee linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* W3C */
	  border: 1px solid #aaa;
	  border-top: 1px solid #ccc;
	  border-left: 1px solid #ccc;
	  -moz-border-radius: 3px;
	  -webkit-border-radius: 3px;
	  border-radius: 3px;
	  color: #444;
	  display: inline-block;
	  font-size: 11px;
	  font-weight: bold;
	  text-decoration: none;
	  text-shadow: 0 1px rgba(255, 255, 255, .75);
	  cursor: pointer;
	  margin-bottom: 20px;
	  line-height: normal;
	  padding: 8px 10px;
	  font-family: "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; }

	.button:hover,
	button:hover,
	input[type="submit"]:hover,
	input[type="reset"]:hover,
	input[type="button"]:hover {
		color: #222;
		background: #ddd; /* Old browsers */
		background: #ddd -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); /* FF3.6+ */
		background: #ddd -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.3)), color-stop(100%,rgba(0,0,0,.3))); /* Chrome,Safari4+ */
		background: #ddd -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Chrome10+,Safari5.1+ */
		background: #ddd -o-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Opera11.10+ */
		background: #ddd -ms-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* IE10+ */
		background: #ddd linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* W3C */
	  border: 1px solid #888;
	  border-top: 1px solid #aaa;
	  border-left: 1px solid #aaa; }

	.button:active,
	button:active,
	input[type="submit"]:active,
	input[type="reset"]:active,
	input[type="button"]:active {
		border: 1px solid #666;
		background: #ccc; /* Old browsers */
		background: #ccc -moz-linear-gradient(top, rgba(255,255,255,.35) 0%, rgba(10,10,10,.4) 100%); /* FF3.6+ */
		background: #ccc -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.35)), color-stop(100%,rgba(10,10,10,.4))); /* Chrome,Safari4+ */
		background: #ccc -webkit-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Chrome10+,Safari5.1+ */
		background: #ccc -o-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Opera11.10+ */
		background: #ccc -ms-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* IE10+ */
		background: #ccc linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* W3C */ }

	.button.full-width,
	button.full-width,
	input[type="submit"].full-width,
	input[type="reset"].full-width,
	input[type="button"].full-width {
		width: 100%;
		padding-left: 0 !important;
		padding-right: 0 !important;
		text-align: center; }

	/* Fix for odd Mozilla border & padding issues */
	button::-moz-focus-inner,
	input::-moz-focus-inner {
    border: 0;
    padding: 0;
	}


/* #Forms
================================================== */

	form {
		margin-bottom: 20px; }
	fieldset {
		margin-bottom: 20px; }
	input[type="text"],
	input[type="password"],
	input[type="email"],
	textarea,
	select {
		border: 1px solid #ccc;
		padding: 6px 4px;
		outline: none;
		-moz-border-radius: 2px;
		-webkit-border-radius: 2px;
		border-radius: 2px;
		font: 13px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
		color: #777;
		margin: 0;
		width: 210px;
		max-width: 100%;
		display: block;
		margin-bottom: 20px;
		background: #fff; }
	select {
		padding: 0; }
	input[type="text"]:focus,
	input[type="password"]:focus,
	input[type="email"]:focus,
	textarea:focus {
		border: 1px solid #aaa;
 		color: #444;
 		-moz-box-shadow: 0 0 3px rgba(0,0,0,.2);
		-webkit-box-shadow: 0 0 3px rgba(0,0,0,.2);
		box-shadow:  0 0 3px rgba(0,0,0,.2); }
	textarea {
		min-height: 60px; }
	label,
	legend {
		display: block;
		font-weight: bold;
		font-size: 13px;  }
	select {
		width: 220px; }
	input[type="checkbox"] {
		display: inline; }
	label span,
	legend span {
		font-weight: normal;
		font-size: 13px;
		color: #444; }

/* #Misc
================================================== */
	.remove-bottom { margin-bottom: 0 !important; }
	.half-bottom { margin-bottom: 10px !important; }
	.add-bottom { margin-bottom: 20px !important; }



  /* #Syntax highlighting
  ================================================== */


.highlight {
  color: #f8f8f2;
  table-layout: fixed;
  white-space: nowrap;
  width:90%;
}

.highlight pre, .highlight code { display:block; margin:0; padding:0; background: none; overflow:auto; word-wrap: normal; }

.highlight, .linenodiv {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQIHWPQ1dU1BgABzQC7XXMTYQAAAABJRU5ErkJggg==);
  display:block;
  padding: 10px;
  margin-bottom:20px;
}
.gutter, .lineno { color: #ccc; }

td.gl { width: 40px; }

.gutter {
  border-right: none;
  padding: 10px;
  text-align: right;
}
span.lineno {
  display: block;
  float: left;
  width: 40px;
  padding-right: 8px;
  text-align: right;
}


.hll { background-color: #49483e }
.c { color: #75715e } /* Comment */
.err { color: #960050; background-color: #1e0010 } /* Error */
.k { color: #66d9ef } /* Keyword */
.l { color: #ae81ff } /* Literal */
.n { color: #f8f8f2 } /* Name */
.o { color: #f92672 } /* Operator */
.p { color: #f8f8f2 } /* Punctuation */
.cm { color: #75715e } /* Comment.Multiline */
.cp { color: #75715e } /* Comment.Preproc */
.c1 { color: #75715e } /* Comment.Single */
.cs { color: #75715e } /* Comment.Special */
.ge { font-style: italic } /* Generic.Emph */
.gs { font-weight: bold } /* Generic.Strong */
.kc { color: #66d9ef } /* Keyword.Constant */
.kd { color: #66d9ef } /* Keyword.Declaration */
.kn { color: #f92672 } /* Keyword.Namespace */
.kp { color: #66d9ef } /* Keyword.Pseudo */
.kr { color: #66d9ef } /* Keyword.Reserved */
.kt { color: #66d9ef } /* Keyword.Type */
.ld { color: #e6db74 } /* Literal.Date */
.m { color: #ae81ff } /* Literal.Number */
.s { color: #e6db74 } /* Literal.String */
.na { color: #a6e22e } /* Name.Attribute */
.nb { color: #f8f8f2 } /* Name.Builtin */
.nc { color: #a6e22e } /* Name.Class */
.no { color: #66d9ef } /* Name.Constant */
.nd { color: #a6e22e } /* Name.Decorator */
.ni { color: #f8f8f2 } /* Name.Entity */
.ne { color: #a6e22e } /* Name.Exception */
.nf { color: #a6e22e } /* Name.Function */
.nl { color: #f8f8f2 } /* Name.Label */
.nn { color: #f8f8f2 } /* Name.Namespace */
.nx { color: #a6e22e } /* Name.Other */
.py { color: #f8f8f2 } /* Name.Property */
.nt { color: #f92672 } /* Name.Tag */
.nv { color: #f8f8f2 } /* Name.Variable */
.ow { color: #f92672 } /* Operator.Word */
.w { color: #f8f8f2 } /* Text.Whitespace */
.mf { color: #ae81ff } /* Literal.Number.Float */
.mh { color: #ae81ff } /* Literal.Number.Hex */
.mi { color: #ae81ff } /* Literal.Number.Integer */
.mo { color: #ae81ff } /* Literal.Number.Oct */
.sb { color: #e6db74 } /* Literal.String.Backtick */
.sc { color: #e6db74 } /* Literal.String.Char */
.sd { color: #e6db74 } /* Literal.String.Doc */
.s2 { color: #e6db74 } /* Literal.String.Double */
.se { color: #ae81ff } /* Literal.String.Escape */
.sh { color: #e6db74 } /* Literal.String.Heredoc */
.si { color: #e6db74 } /* Literal.String.Interpol */
.sx { color: #e6db74 } /* Literal.String.Other */
.sr { color: #e6db74 } /* Literal.String.Regex */
.s1 { color: #e6db74 } /* Literal.String.Single */
.ss { color: #e6db74 } /* Literal.String.Symbol */
.bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */
.vc { color: #f8f8f2 } /* Name.Variable.Class */
.vg { color: #f8f8f2 } /* Name.Variable.Global */
.vi { color: #f8f8f2 } /* Name.Variable.Instance */
.il { color: #ae81ff } /* Literal.Number.Integer.Long */

.gh { } /* Generic Heading & Diff Header */
.gu { color: #75715e; } /* Generic.Subheading & Diff Unified/Comment? */
.gd { color: #f92672; } /* Generic.Deleted & Diff Deleted */
.gi { color: #a6e22e; } /* Generic.Inserted & Diff Inserted */


/* -----------------------------------*/
/* ----- 960px wide fancy grid! ----- */
/* -----------------------------------*/

/* by tim o'brien, t413.com
 * based on getskeleton.com
 */


/* ----- base grid----- */

.container               { position: relative; width: 960px; margin: 0 auto; padding: 0; }
.container .column       { float: left; display: inline; margin-left: 10px; margin-right: 10px; }
.row                     { margin-bottom: 20px; }

.container .small.column { width: 300px; }
.container .half.column  { width: 460px; }
.container .big.column   { width: 620px; }
.container .full.column  { width: 940px; }


/* ----- Tablet (Portrait) -- 768px ----- */
  @media only screen and (min-width: 768px) and (max-width: 959px) {
    .container               { width: 768px; }

    .container .small.column { width: 236px; }
    .container .half.column  { width: 364px; }
    .container .big.column   { width: 488px; }
    .container .full.column  { width: 748px; }
  }


/* ----- Mobile (Portrait) ----- */
  @media only screen and (max-width: 767px) {
    .container                { width:  96%; }
    .container .column        { margin:  1%; }

    .container .small.column { width: 48%; }
    .container .half.column  { width: 48%; }
    .container .big.column   { width: 98%; }
    .container .full.column  { width: 98%; }
  }


/* ----- Mobile (Landscape) -- 480px ----- */
  @media only screen and (min-width: 480px) and (max-width: 767px) {
    .container                { width:  92%; }
    .container .column        { margin:  2%; }

    .container .small.column { width: 46%; }
    .container .half.column  { width: 46%; }
    .container .big.column   { width: 96%; }
    .container .full.column  { width: 96%; }
  }



/* ----- Clearing ----- */

  /* Self Clearing Goodness */
  .container:after { content: "\0020"; display: block; height: 0; clear: both; visibility: hidden; }

  /* Use clearfix class on parent to clear nested columns,
  or wrap each row of columns in a <div class="row"> */
  .clearfix:before,
  .clearfix:after,
  .row:before,
  .row:after {
    content: '\0020';
    display: block;
    overflow: hidden;
    visibility: hidden;
    width: 0;
    height: 0; }
  .row:after,
  .clearfix:after {
    clear: both; }
  .row,
  .clearfix {
    zoom: 1; }

  /* You can also use a <br class="clear" /> to clear columns */
  .clear {
    clear: both;
    display: block;
    overflow: hidden;
    visibility: hidden;
    width: 0;
    height: 0;
  }

html {
  box-sizing: border-box;
  scroll-behavior: smooth;
  scroll-padding-top: 100px;
}
*, *:before, *:after { box-sizing: inherit; }

/* Override base font to Inter */
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 17px;
  line-height: 1.7;
  color: #eae6e0;
  background: #141821;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}


/* ---------------------------*/
/* ----- Color System    ----- */
/* ---------------------------*/

/* autogenerated from _config.yml */

.border-navy { border-color: #141821 !important; }
.text-navy   { color: #141821; }
.text-navy a { color: #141821; }
.bg-navy     { background-color: #141821 !important; }

.border-darkblue { border-color: #1c2333 !important; }
.text-darkblue   { color: #1c2333; }
.text-darkblue a { color: #1c2333; }
.bg-darkblue     { background-color: #1c2333 !important; }

.border-charcoal { border-color: #232530 !important; }
.text-charcoal   { color: #232530; }
.text-charcoal a { color: #232530; }
.bg-charcoal     { background-color: #232530 !important; }

.border-cream { border-color: #f4f1ec !important; }
.text-cream   { color: #f4f1ec; }
.text-cream a { color: #f4f1ec; }
.bg-cream     { background-color: #f4f1ec !important; }

.border-copper { border-color: #c17829 !important; }
.text-copper   { color: #c17829; }
.text-copper a { color: #c17829; }
.bg-copper     { background-color: #c17829 !important; }

.border-white { border-color: #eae6e0 !important; }
.text-white   { color: #eae6e0; }
.text-white a { color: #eae6e0; }
.bg-white     { background-color: #eae6e0 !important; }

.border-darktext { border-color: #2c2c2e !important; }
.text-darktext   { color: #2c2c2e; }
.text-darktext a { color: #2c2c2e; }
.bg-darktext     { background-color: #2c2c2e !important; }

.border-muted { border-color: #9a978f !important; }
.text-muted   { color: #9a978f; }
.text-muted a { color: #9a978f; }
.bg-muted     { background-color: #9a978f !important; }

.border-black { border-color: #0f0f0f !important; }
.text-black   { color: #0f0f0f; }
.text-black a { color: #0f0f0f; }
.bg-black     { background-color: #0f0f0f !important; }

.border-green { border-color: #3a8a5c !important; }
.text-green   { color: #3a8a5c; }
.text-green a { color: #3a8a5c; }
.bg-green     { background-color: #3a8a5c !important; }

.border-amber { border-color: #d4943a !important; }
.text-amber   { color: #d4943a; }
.text-amber a { color: #d4943a; }
.bg-amber     { background-color: #d4943a !important; }

.border-red { border-color: #c44b4b !important; }
.text-red   { color: #c44b4b; }
.text-red a { color: #c44b4b; }
.bg-red     { background-color: #c44b4b !important; }


/* per-post colors */

  
  
  
  nav .p-contact { border-color: #232530; }
  #contact { background-color: #232530 !important; color: #eae6e0; }
  #contact a { color: #eae6e0; }
  #contact .sectiondivider { color: #232530; }

  
  
  
  nav .p-how-we-work { border-color: #141821; }
  #how-we-work { background-color: #141821 !important; color: #eae6e0; }
  #how-we-work a { color: #eae6e0; }
  #how-we-work .sectiondivider { color: #141821; }

  
  
  
  nav .p-projects { border-color: #f4f1ec; }
  #projects { background-color: #f4f1ec !important; color: #2c2c2e; }
  #projects a { color: #2c2c2e; }
  #projects .sectiondivider { color: #f4f1ec; }

  
  
  
  nav .p-technology { border-color: #232530; }
  #technology { background-color: #232530 !important; color: #eae6e0; }
  #technology a { color: #eae6e0; }
  #technology .sectiondivider { color: #232530; }

  
  
  
  nav .p-solution { border-color: #f4f1ec; }
  #solution { background-color: #f4f1ec !important; color: #2c2c2e; }
  #solution a { color: #2c2c2e; }
  #solution .sectiondivider { color: #f4f1ec; }

  
  
  
  nav .p-home { border-color: #141821; }
  #home { background-color: #141821 !important; color: #eae6e0; }
  #home a { color: #eae6e0; }
  #home .sectiondivider { color: #141821; }



/* ---------------------------*/
/* ----- Typography      ----- */
/* ---------------------------*/

h1, h2 {
  font-family: 'DM Serif Display', Georgia, 'Times New Roman', serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h3, h4, h5, h6 {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.container h1 {
  font-size: 48px;
  font-weight: 400;
  line-height: 1.15;
  margin-bottom: 24px;
  letter-spacing: -0.01em;
  text-align: left;
  padding: 0;
}
.container h2 {
  font-size: 36px;
  font-weight: 400;
  line-height: 1.25;
  margin-bottom: 20px;
  letter-spacing: -0.01em;
  text-align: left;
  padding: 0;
}
.container h3 {
  font-size: 24px;
  font-weight: 650;
  line-height: 1.3;
  margin-bottom: 16px;
  letter-spacing: -0.01em;
}
.container h4 {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.35;
  margin-bottom: 12px;
}
.container p, .container ol, .container ul {
  font-size: 17px;
  line-height: 1.75;
  padding: 0;
  margin-bottom: 24px;
  letter-spacing: 0.005em;
}
.container ol, .container ul {
  padding-left: 24px;
  line-height: 1.8;
}
.container ul li, .container ol li {
  margin-bottom: 12px;
  padding-left: 4px;
}
.container strong {
  font-weight: 600;
}
.container p:first-of-type {
  margin-top: 0;
}

.center { text-align: center; }
.center h1, .center h2, .center h3, .center h4 { text-align: center; }
.left, .container .left { text-align: left; }


/* ---------------------------*/
/* ----- Base Elements   ----- */
/* ---------------------------*/

img {
  max-width: 100% !important;
  height: auto;
  vertical-align: middle;
}

hr {
  margin: 64px auto;
  width: 60%;
  border: none;
  border-top: 1px solid rgba(154, 151, 143, 0.2);
}

.container {
  word-wrap: break-word;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

/* Links */
.container a {
  text-decoration: none;
  color: #c17829;
  border-bottom: 1px solid rgba(193, 120, 41, 0.3);
  padding-bottom: 1px;
  transition: border-bottom-color 0.2s ease, color 0.2s ease;
}
.container a:hover {
  border-bottom-color: #c17829;
}
.container a.btn-primary,
.container a.btn-secondary {
  border-bottom: none;
  padding-bottom: 14px;
}

code, pre {
  font-family: 'SF Mono', Monaco, Menlo, Consolas, 'Courier New', monospace;
}
code {
  background: rgba(255,255,255,0.08);
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 0.9em;
}
pre {
  display: block;
  margin: 20px 0;
  padding: 16px;
  background: rgba(255,255,255,0.05);
  border-radius: 8px;
  overflow-x: auto;
}
pre code { background: none; padding: 0; }


/* ---------------------------*/
/* ----- Navigation      ----- */
/* ---------------------------*/




nav {
  font-size: 13px;
  width: 100%;
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  background: rgba(20, 24, 33, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(154, 151, 143, 0.1);
}

nav ul {
  list-style: none;
  text-align: center;
  padding: 0;
  margin: 0;
  display: flex;
  justify-content: center;
}

nav ul li {
  display: inline-block;
  border-top: 3px solid;
  padding: 3px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  min-width: 100px;
  line-height: 52px;
  margin: 0;
}

nav ul li a, nav ul li a:visited {
  display: block;
  color: #9a978f;
  text-decoration: none;
  border-bottom: none;
  font-weight: 600;
  font-size: 13px;
  transition: color 0.2s ease;
}

nav ul li a:hover {
  color: #eae6e0;
}
nav ul li:hover, nav ul li.active {
  border-top-width: 5px;
  padding-top: 1px;
  transition: border-top-width 0.2s ease, padding-top 0.2s ease;
}
nav ul li.active a {
  color: #eae6e0;
}


/* ---------------------------*/
/* ----- Sections        ----- */
/* ---------------------------*/

.section {
  position: relative;
  display: block;
  width: 100%;
  min-height: 200px;
  padding: 96px 0;
}

.section:first-of-type {
  padding-top: 140px;
  padding-bottom: 48px;
  margin-top: 0;
}

#main {
  padding-top: 0;
}


/* ---------------------------*/
/* ----- Footer          ----- */
/* ---------------------------*/

#footer {
  padding: 24px 0;
  min-height: 0;
  text-align: center;
  background-color: #0f0f0f;
  border-top: 1px solid rgba(154, 151, 143, 0.1);
}
#footer .container p {
  font-size: 13px;
  margin: 0;
  color: #9a978f;
}
#footer .container a {
  color: #9a978f;
  border-bottom-color: rgba(154, 151, 143, 0.2);
}




/* ---------------------------*/
/* ----- Hero Section    ----- */
/* ---------------------------*/

.container.hero {
  max-width: 1200px;
}
.container.hero h1 {
  text-align: left;
}
.container.hero p {
  text-align: left;
}

.hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
  margin-bottom: 48px;
}

.hero-subhead {
  font-size: 20px;
  line-height: 1.6;
  color: #9a978f;
  margin-bottom: 32px;
}

.hero-bullets {
  list-style: none !important;
  padding-left: 0 !important;
  margin-bottom: 40px;
}
.hero-bullets li {
  font-size: 18px;
  line-height: 1.6;
  padding: 8px 0;
  padding-left: 28px !important;
  position: relative;
}
.hero-bullets li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 16px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #c17829;
}

.hero-ctas {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 32px;
}


/* ---------------------------*/
/* ----- Spec Sheet      ----- */
/* ---------------------------*/

.spec-sheet {
  background: rgba(28, 35, 51, 0.6);
  border: 1px solid rgba(154, 151, 143, 0.15);
  border-left: 3px solid #c17829;
  border-radius: 2px 12px 12px 2px;
  padding: 32px;
}

.spec-header {
  font-family: 'Inter', -apple-system, sans-serif;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #c17829;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(154, 151, 143, 0.12);
}

.spec-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 10px 8px;
  margin: 0 -8px;
  border-bottom: 1px solid rgba(154, 151, 143, 0.06);
  border-radius: 4px;
  transition: background 0.15s ease;
}
.spec-row:hover {
  background: rgba(193, 120, 41, 0.06);
}
.spec-row:last-of-type {
  border-bottom: none;
}

.spec-label {
  font-size: 14px;
  color: #9a978f;
  font-weight: 500;
}

.spec-value {
  font-family: 'SF Mono', Monaco, Menlo, Consolas, monospace;
  font-size: 14px;
  font-weight: 600;
  color: #eae6e0;
  letter-spacing: 0.01em;
}

.spec-note {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid rgba(154, 151, 143, 0.12);
  font-size: 14px;
  color: #9a978f;
  line-height: 1.6;
  font-style: italic;
}


/* ---------------------------*/
/* ----- Trust Strip     ----- */
/* ---------------------------*/

.trust-strip {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  padding: 32px 0;
  margin-top: 48px;
  border-top: 1px solid rgba(154, 151, 143, 0.1);
  border-bottom: 1px solid rgba(154, 151, 143, 0.1);
}

.trust-item {
  font-size: 14px;
  font-weight: 500;
  color: #9a978f;
  letter-spacing: 0.02em;
}

.trust-divider {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #5a5650;
}

.what-we-dont-do {
  text-align: center;
  font-size: 14px !important;
  color: #736f67 !important;
  font-style: italic;
  margin-top: 24px;
}


/* ---------------------------*/
/* ----- Buttons         ----- */
/* ---------------------------*/

.btn-primary {
  display: inline-block;
  background: #c17829;
  color: #eae6e0 !important;
  padding: 14px 36px;
  border-radius: 4px;
  font-weight: 600;
  font-size: 15px;
  letter-spacing: 0.02em;
  text-decoration: none !important;
  border: none !important;
  border-bottom: none !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12) !important;
  outline: none;
  transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.15s ease;
  cursor: pointer;
}
.btn-primary:hover {
  background: #a56420;
  border: none !important;
  border-bottom: none !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(193, 120, 41, 0.25) !important;
}
.btn-primary:active {
  transform: translateY(1px);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15) !important;
}

.btn-secondary {
  display: inline-block;
  background: transparent;
  color: #9a978f !important;
  padding: 14px 36px;
  border-radius: 4px;
  border: 1px solid rgba(154, 151, 143, 0.3) !important;
  border-bottom: 1px solid rgba(154, 151, 143, 0.3) !important;
  font-weight: 600;
  font-size: 15px;
  letter-spacing: 0.02em;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: border-color 0.2s ease, color 0.2s ease;
  cursor: pointer;
}
.btn-secondary:hover {
  border-color: #9a978f !important;
  color: #eae6e0 !important;
  transform: translateY(-1px);
}
.btn-secondary:active {
  transform: translateY(1px);
}


/* ---------------------------*/
/* ----- Cards           ----- */
/* ---------------------------*/

.card-grid {
  display: grid;
  gap: 24px;
  margin: 40px 0;
}
.card-grid.thirds {
  grid-template-columns: repeat(3, 1fr);
}
.card-grid.quarters {
  grid-template-columns: repeat(4, 1fr);
}

.card {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(154, 151, 143, 0.12);
  border-radius: 14px;
  padding: 32px 28px;
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.card:hover {
  transform: translateY(-2px);
  border-color: rgba(154, 151, 143, 0.22);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.card h3 {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 16px;
  color: #eae6e0;
}

.card ul {
  list-style: none !important;
  padding-left: 0 !important;
  margin-bottom: 20px;
}
.card ul li {
  font-size: 15px;
  line-height: 1.6;
  color: #c9c4bb;
  padding: 4px 0;
  padding-left: 20px !important;
  position: relative;
  margin-bottom: 8px;
}
.card ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 11px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #c17829;
}

.card-deliverable {
  font-size: 14px !important;
  font-weight: 600;
  color: #c17829 !important;
  padding-top: 12px;
  border-top: 1px solid rgba(154, 151, 143, 0.1);
  margin-bottom: 0;
}

.card-outcome {
  font-size: 15px;
  color: #c9c4bb;
  margin-bottom: 16px;
}


/* ---------------------------*/
/* ----- Two-Column Prose ----- */
/* ---------------------------*/

.two-col-prose {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  margin: 40px 0;
}

.prose-col h3 {
  margin-bottom: 16px;
}

.prose-col p {
  font-size: 16px;
  line-height: 1.75;
  color: #c9c4bb;
  margin-bottom: 0;
}


/* ---------------------------*/
/* ----- Callout Block   ----- */
/* ---------------------------*/

.callout-block {
  background: rgba(193, 120, 41, 0.06);
  border-left: 3px solid #c17829;
  border-radius: 0 10px 10px 0;
  padding: 28px 32px;
  margin: 40px 0;
}

.callout-block h3 {
  margin-bottom: 12px;
  color: #eae6e0;
}

.callout-block p {
  font-size: 16px;
  line-height: 1.75;
  color: #c9c4bb;
  margin-bottom: 0;
}


/* ---------------------------*/
/* ----- Light Sections  ----- */
/* ---------------------------*/

#solution .card {
  background: #fff;
  border-color: rgba(44, 44, 46, 0.1);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}
#solution .card:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  border-color: rgba(44, 44, 46, 0.18);
}

#solution .card h3 {
  color: #2c2c2e;
}

#solution .card ul li {
  color: #4a4843;
}

#solution .card-deliverable {
  color: #8f5a1a !important;
  border-top-color: rgba(44, 44, 46, 0.1);
}

#solution .section-intro,
#projects .section-intro {
  color: #736f67 !important;
}

#solution .card ul li::before {
  background: #c17829;
}

#solution a,
#projects a {
  color: #8f5a1a !important;
  border-bottom-color: rgba(143, 90, 26, 0.3);
}

#solution hr,
#projects hr {
  border-top-color: rgba(44, 44, 46, 0.12);
}


/* ---------------------------*/
/* ----- Pipeline List   ----- */
/* ---------------------------*/

.pipeline-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 40px 0;
}

.pipeline-item {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  padding: 28px 32px;
  background: #fff;
  border: 1px solid rgba(44, 44, 46, 0.1);
  border-left: 3px solid #c17829;
  border-radius: 0 12px 12px 0;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.pipeline-item:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
}

.pipeline-item .pipeline-status {
  flex-shrink: 0;
  margin-top: 2px;
  margin-bottom: 0;
}

.pipeline-content h3 {
  font-size: 20px;
  margin-bottom: 8px;
  color: #2c2c2e;
}

.pipeline-content p {
  font-size: 15px;
  color: #4a4843;
  margin-bottom: 0;
  line-height: 1.6;
}

.pipeline-status {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 4px 12px;
  border-radius: 20px;
  margin-bottom: 16px;
}
.pipeline-status.active {
  background: rgba(193, 120, 41, 0.1);
  color: #8f5a1a;
}


/* ---------------------------*/
/* ----- Process Steps   ----- */
/* ---------------------------*/

.process-steps {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 20px;
  margin: 40px 0;
}

.step {
  text-align: center;
  position: relative;
}

.step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(193, 120, 41, 0.15);
  border: 2px solid #c17829;
  color: #c17829;
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 16px;
}

.step h4 {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 8px;
  text-align: center;
}

.step p {
  font-size: 14px !important;
  color: #9a978f !important;
  line-height: 1.5;
  text-align: center;
}

/* connector lines between steps */
.step:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 24px;
  right: -10px;
  width: 20px;
  height: 1px;
  background: rgba(154, 151, 143, 0.2);
}


/* ---------------------------*/
/* ----- FAQ             ----- */
/* ---------------------------*/

.faq-item {
  border: 1px solid rgba(154, 151, 143, 0.12);
  border-radius: 10px;
  margin-bottom: 12px;
  overflow: hidden;
  transition: border-color 0.2s ease;
}
.faq-item:hover {
  border-color: rgba(154, 151, 143, 0.25);
}

.faq-item summary {
  padding: 20px 24px;
  font-size: 17px;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
  color: #eae6e0;
  transition: color 0.2s ease;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::before {
  content: '+';
  display: inline-block;
  width: 20px;
  margin-right: 12px;
  color: #c17829;
  font-weight: 400;
  font-size: 20px;
}
.faq-item[open] summary::before {
  content: '\2212';
}
.faq-item[open] {
  border-color: rgba(154, 151, 143, 0.2);
  background: rgba(255, 255, 255, 0.02);
}

.faq-item p, .faq-item div {
  padding: 0 24px 20px 56px;
  font-size: 16px !important;
  color: #9a978f !important;
  line-height: 1.7;
  margin: 0;
}


/* ---------------------------*/
/* ----- Info List       ----- */
/* ---------------------------*/

.info-list {
  list-style: none !important;
  padding-left: 0 !important;
  columns: 2;
  column-gap: 40px;
  margin: 24px 0;
}
.info-list li {
  padding: 8px 0;
  padding-left: 24px !important;
  position: relative;
  font-size: 16px;
  break-inside: avoid;
}
.info-list li::before {
  content: '\2192';
  position: absolute;
  left: 0;
  color: #c17829;
  font-weight: 600;
}


/* ---------------------------*/
/* ----- CTA Section     ----- */
/* ---------------------------*/

.cta-block {
  text-align: center;
  max-width: 640px;
  margin: 0 auto;
}

.cta-block .lead {
  font-size: 20px;
  color: #c9c4bb;
  line-height: 1.65;
  margin-bottom: 40px;
}

.cta-options {
  margin-top: 32px;
}

.cta-alt {
  font-size: 15px !important;
  color: #736f67 !important;
  margin-top: 24px;
}
.cta-alt a {
  color: #c17829 !important;
}


/* ---------------------------*/
/* ----- Section Intro   ----- */
/* ---------------------------*/

.section-intro {
  font-size: 20px !important;
  color: #9a978f !important;
  max-width: 720px;
  line-height: 1.65;
  margin-bottom: 48px;
}


/* ---------------------------*/
/* ----- Keep fluid vids ----- */
/* ---------------------------*/

.icontain {
  position: relative;
  height: 0;
  overflow: hidden;
  padding-bottom: 56.25%;
}
.icontain iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}


/* -----------------------------------*/
/* ----- Responsive              ----- */
/* -----------------------------------*/

/* Tablet */
@media only screen and (max-width: 959px) {
  .section { padding: 72px 0; }
  .section:first-of-type { padding-top: 120px; }

  .container h1 { font-size: 40px; }
  .container h2 { font-size: 30px; }
  .container h3 { font-size: 22px; }

  .hero-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .card-grid.thirds { grid-template-columns: repeat(2, 1fr); }
  .card-grid.quarters { grid-template-columns: repeat(2, 1fr); }

  .two-col-prose { gap: 32px; }

  .process-steps {
    grid-template-columns: repeat(3, 1fr);
  }
  .step:not(:last-child)::after { display: none; }
}

/* Mid-size nav */
@media only screen and (max-width: 679px) {
  nav { font-size: 11px; }
  nav ul li {
    min-width: 56px;
    line-height: 36px;
    letter-spacing: 0.04em;
  }
}

/* Mobile */
@media only screen and (max-width: 767px) {
  .section { padding: 56px 0; }
  .section:first-of-type { padding-top: 100px; padding-bottom: 32px; }

  .container { padding: 0 16px; }
  .container h1 { font-size: 32px; line-height: 1.2; }
  .container h2 { font-size: 26px; }
  .container h3 { font-size: 20px; }
  .container p, .container ol, .container ul { font-size: 16px; }

  .hero-grid { grid-template-columns: 1fr; gap: 32px; }
  .hero-subhead { font-size: 18px; }
  .hero-ctas { flex-direction: column; }
  .hero-ctas .btn-primary,
  .hero-ctas .btn-secondary {
    text-align: center;
    width: 100%;
  }

  .spec-sheet { padding: 24px; }
  .spec-value { font-size: 13px; }

  .trust-strip { flex-direction: column; gap: 8px; text-align: center; }
  .trust-divider { display: none; }

  .card-grid.thirds { grid-template-columns: 1fr; }
  .card-grid.quarters { grid-template-columns: 1fr; }

  .two-col-prose {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .callout-block { padding: 24px; }

  .pipeline-item {
    flex-direction: column;
    gap: 12px;
    padding: 24px;
  }

  .process-steps { grid-template-columns: 1fr; gap: 24px; }
  .step:not(:last-child)::after { display: none; }
  .step { text-align: left; display: flex; align-items: flex-start; gap: 16px; }
  .step-number { flex-shrink: 0; margin-bottom: 0; }
  .step h4, .step p { text-align: left; }

  .info-list { columns: 1; }
}

/* Tiny nav */
@media only screen and (max-width: 380px) {
  nav ul li { min-width: 48px; line-height: 20px; }
}


/* -----------------------------------*/
/* ----- Scroll Reveal           ----- */
/* -----------------------------------*/

.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger children in card grids and process steps */
.card-grid .card.reveal,
.pipeline-list .pipeline-item.reveal,
.process-steps .step.reveal {
  transition-delay: 0s;
}
.card-grid .card.reveal:nth-child(2),
.pipeline-list .pipeline-item.reveal:nth-child(2),
.process-steps .step.reveal:nth-child(2) { transition-delay: 0.08s; }
.card-grid .card.reveal:nth-child(3),
.pipeline-list .pipeline-item.reveal:nth-child(3),
.process-steps .step.reveal:nth-child(3) { transition-delay: 0.16s; }
.card-grid .card.reveal:nth-child(4),
.process-steps .step.reveal:nth-child(4) { transition-delay: 0.24s; }
.process-steps .step.reveal:nth-child(5) { transition-delay: 0.32s; }


/* -----------------------------------*/
/* ----- Accessibility           ----- */
/* -----------------------------------*/

/* Focus-visible for keyboard navigation */
a:focus-visible,
summary:focus-visible {
  outline: 2px solid #c17829;
  outline-offset: 3px;
  border-radius: 4px;
}

.btn-primary:focus-visible {
  outline: 2px solid #eae6e0;
  outline-offset: 3px;
}

nav ul li a:focus-visible {
  outline: 2px solid #c17829;
  outline-offset: 2px;
}

/* Reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
  .reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}

