/*
 * Custom CSS embedded in the Webflow pages (lifted verbatim from the snapshot),
 * followed by the few state hooks that replace webflow.js / Jetboost / IX2.
 */

/* ---- snapshot embed fab8ea04 ---- */
body {
    	-webkit-font-smoothing: antialiased;
    	-moz-font-smoothing: antialiased;
    	-o-font-smoothing: antialiased;
    }
  /*Text Selection Color*/
    ::selection {
     	background: #d14424;
      	color: #eeebdd;
    }
    ::-moz-selection {
     	background: #d14424;
      	color: #eeebdd;
    }
  	/*Reset apple form styles*/
    input, textarea, select { 
       	-webkit-appearance: none; 
       	-moz-appearance: none; 
       	appearance: none; 
        border-radius: 0; 
				background-image: none; 
    }
    /* Set search block to 0 opacity by default */
    .search_form-block {
    	opacity: 0;
    }
    /* Alter jetboost hidden state to fully remove */
    .jetboost-hidden {
      display: none;
    }

/* ---- snapshot embed 63acce0a ---- */
/* Style underline text of all links */
a {
  text-decoration-thickness: 0.05em;
  text-underline-offset: 0.2em;
  color: inherit;
}
/* Remove top margin on rich text first child */
.w-richtext > :first-child {
  margin-top: 0;
}
/* Remove bottom margin of rich text last child */
.w-richtext > :last-child,
.w-richtext ol li:last-child,
.w-richtext ul li:last-child {
  margin-bottom: 0;
}
/* Grid > Mosaic */
@media only screen and (min-width: 992px) {
  /* 4 big cards per page of 24 (PAGE_SIZE): 36 cells, a whole number of rows at 3 and 4 columns. */
  .post-grid.cc-mosaic .post-grid_item:nth-child(24n + 2),
  .post-grid.cc-mosaic .post-grid_item:nth-child(24n + 4),
  .post-grid.cc-mosaic .post-grid_item:nth-child(24n + 8),
  .post-grid.cc-mosaic .post-grid_item:nth-child(24n + 16) {
    grid-column: span 2 / auto;
    grid-row: span 2 / auto;
  }
}
@media only screen and (min-width: 1440px) {
  .post-grid.cc-mosaic {
    grid-template-columns: 1fr 1fr 1fr 1fr;
  }
  .post-grid.cc-mosaic .post-grid_item:nth-child(24n + 2),
  .post-grid.cc-mosaic .post-grid_item:nth-child(24n + 4),
  .post-grid.cc-mosaic .post-grid_item:nth-child(24n + 8),
  .post-grid.cc-mosaic .post-grid_item:nth-child(24n + 16) {
    grid-column: span 2 / auto;
    grid-row: span 2 / auto;
  }
  .post-grid.cc-list {
    grid-template-columns: 1fr 1fr;
  }
}
/* Grid > List */
.post-grid.cc-list .card {
  padding-left: 112px;
  flex-direction: row;
}
.post-grid.cc-list .card-header {
  position: static;
  width: auto;
  padding-top: 0%;
  order: 1;
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: auto;
}
.post-grid.cc-list .card-body {
  min-height: 90px;
  justify-content: center;
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 0%;
}
.post-grid.cc-list .card-header_preview {
  left: 0%;
  top: 0%;
  right: auto;
  bottom: 0%;
  width: 120px;
  padding-top: 8px;
  padding-bottom: 8px;
}
.post-grid.cc-list .card-header_actions {
  position: relative;
  height: 100%;
  padding-top: 8px;
  padding-bottom: 8px;
  justify-content: flex-end;
  align-items: center;
}
.post-grid.cc-list .card-header_video-btn {
  width: 24px;
  height: 24px;
  padding-top: 0px;
  padding-right: 5px;
  padding-left: 8px;
}
.post-grid.cc-list .card-header_tags {
  display: none;
}
@media only screen and (max-width: 479px) {
  .post-grid.cc-list .card {
    padding-left: 0px;
  }
  .post-grid.cc-list .card-body {
    min-height: auto;
  }
  .post-grid.cc-list .card-header_preview {
    display: none;
  }
}
/* Card details truncate */
.card-details.cc-related {
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}
/* Card hover alterations */
.card.cc-item:hover .card-header {
  border-color: var(--dark-gray);
}
.card.cc-item:hover .tag:not(.cc-orange),
.search_wrapper:hover .tag {
  background-color: var(--dark-gray);
}
.card.cc-item:hover .tag:not(.cc-orange),
.search_wrapper:hover .tag {
  background-color: var(--dark-gray);
}
/* Remove card hover styles for coming soon link type */
.card.cc-item[link-type="Coming Soon"] {
	background-color: var(--dark-gray);
  border-color: var(--mid-gray);
}
.card.cc-item[link-type="Coming Soon"]:hover .card-header {
  border-color: var(--mid-gray);
}
.card.cc-item[link-type="Coming Soon"]:hover .tag:not(.cc-orange) {
  background-color: var(--mid-gray);
}
/* Toggle show of search tags */
.search_form:focus-within .search_filter-wrapper,
.search_form:hover .search_filter-wrapper {
  max-height: 1000px;
  opacity: 1;
}
/* Hide the first selected tag that gets cloned */
.search_tag-wrapper .tag:first-child {
  display: none;
}
/* Group dropdown > radio text */
.search_dropdown-radio-text {
  pointer-events: none;
}
/* Group dropdown > rotate arrow */
.search_dropdown-btn.w--open .search_dropdown-icon {
  transform: rotate(0deg);
}
/* Search alter color on hover/focus */
.search_input:hover + .search_tag-wrapper .search_input-reset,
.search_input:focus + .search_tag-wrapper .search_input-reset,
.search_input:hover + .search_tag-wrapper .search_dropdown-btn,
.search_input:focus + .search_tag-wrapper .search_dropdown-btn,
.search_input:hover + .search_tag-wrapper .search_dropdown-list,
.search_input:focus + .search_tag-wrapper .search_dropdown-list {
  background-color: #eeebdd;
}
/* Show titles and adjust tag margin when filters are expanded */
.search_filter-tags-flex.cc-show-all .eyebrow.cc-search-filter-title {
  display: block;
}
.search_filter-tags-flex.cc-show-all .tag.cc-filter {
  margin-top: 0;
  margin-bottom: 4px;
}
/* Remove scrollbars on filter tag wrappers */
.search_filter-tags-flex::-webkit-scrollbar {
  display: none;
}
.search_tag-overflow::-webkit-scrollbar {
  display: none;
}
/* Made With Tag */
.made-tag:hover .made-tag_logo {
  margin-right: -2px;
}
.made-tag:hover .made-tag_logo-wrapper {
  padding-right: 2px;
}

/* ---- snapshot embed d4f7a916 ---- */
.swiper-button-disabled, .swiper-button-disabled:hover {
    cursor: not-allowed;
    background-color: var(--mid-gray);
}
.swiper-autoheight .swiper-wrapper {
    height: auto !important;
}
.swiper-slide-active {
  opacity: 1 !important;
 }
@media screen and (min-width: 1024px) {
  .swiper-slide-next {
    opacity: 1 !important;
  }
}

/* ---- snapshot embed e462a09c ---- */
.gist .gist-file {
  margin-bottom: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
}
.gist .gist-data {
  background-color: #eeebdd !important;
  border-bottom: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
}
.gist .blob-wrapper {
    overflow-y: auto !important;
}
.gist .blob-wrapper::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}            
.gist .blob-wrapper::-webkit-scrollbar-track {
  border-radius: 0px;
  background-color: #e1ded0;
}            
.gist .blob-wrapper::-webkit-scrollbar-thumb {
  border-radius: 0px;
  background: #918d84;
}
.gist .blob-code-content {
  padding: 20px 12px !important;
  min-width: 400px !important;
  max-height: 600px !important;
}
.gist .highlight {
  background: #eeebdd !important;
}
.gist .blob-code-inner {
  font-family: "JetBrains Mono", sans-serif !important;
  font-size: 0.85rem !important;
}
.gist .blob-code-inner::selection {
	background: #d14424 !important;
  color: #eeebdd !important;
}
.gist .blob-code-inner span::selection {
	background: #d14424 !important;
  color: #eeebdd !important;
}
.gist .gist-meta {
  padding: 12px 20px !important;
  font-family: "General Sans", sans-serif !important;
  font-size: 0.8rem !important;
  color: #1d1c1a !important;
  background-color: #e1ded0 !important;
  border-radius: 0 !important;
}
.gist .gist-meta a {
  font-weight: 600 !important;
  color: #d14324 !important;
}

/* ---- snapshot embed 3c33491f ---- */
.newsletter-page_title-rtf *,
.newsletter-page_subtitle-rtf *,
.newsletter-page_title-rtf figure.w-richtext-align-fullwidth,
.newsletter-page_subtitle-rtf figure.w-richtext-align-fullwidth {
	display: none;
}
.newsletter-page_title-rtf div:first-child,
.newsletter-page_title-rtf h2:first-child,
.newsletter-page_subtitle-rtf div:first-child,
.newsletter-page_subtitle-rtf p:first-of-type {
	display: block;
  margin: 0;
}
.newsletter-richtext h2:first-child,
.newsletter-richtext p:first-of-type,
.newsletter-richtext hr:first-of-type {
	display: none;
}
.newsletter-richtext button {
	background-color: transparent;
  padding: 0;
  margin: 0 0 6rem 0;
  width: 100%;
}
.newsletter-richtext button a {
	width: 100%;
	background-color: var(--primary);
  color: var(--white);
  text-transform: uppercase;
  border-radius: 4px;
  padding: 0.8em 1em;
  font-family: JetBrains Mono,sans-serif;
  font-size: .9rem;
  font-weight: 500;
  text-decoration: none !important;
  transition: box-shadow .2s ease-out;
  display: inline-block;
  box-shadow: inset 0 -1px 0 30px rgba(29,28,26,0);
}
.newsletter-richtext button a:hover {
  box-shadow: inset 0 -1px 0 30px rgba(29,28,26,.2);
}
.newsletter-richtext hr {
  border: 0;
  border-top: 2px solid var(--mid-gray);
  margin: 4rem 0;
}

/* ---- snapshot embed c5a63827 ---- */
/* Code highlighting mods*/
pre code.hljs {
    overflow: hidden !important;
}
pre.hljs::selection, code.hljs::selection, pre.hljs::-moz-selection, code.hljs::-moz-selection {
  background: #d14424;
  color: #eeebdd;
}
.hljs {
    color: #edebdd !important;
    background: transparent !important;
    font-family: 'JetBrains Mono',sans-serif !important;
    font-size: 0.8rem !important;
    padding: 0 !important;
}
.hljs-attribute, .hljs-function .hljs-title, .hljs-section, .hljs-title.function_, .ruby .hljs-property {
    color: #73c2ff !important;
}
.hljs-bullet, .hljs-deletion, .hljs-name, .hljs-selector-tag, .hljs-template-variable, .hljs-variable {
    color: #ff5c36 !important;
}
.hljs-attr, .hljs-link, .hljs-literal, .hljs-number, .hljs-symbol, .hljs-variable.constant_ {
    color: #f89d3f !important;
}
.hljs-addition, .hljs-code, .hljs-string, .hljs-title.class_.inherited__ {
    color: #d8db60 !important;
}

/* ---- snapshot embed 1206746d ---- */
@media screen and (min-width: 2000px) {
  .mast_title {
  	font-size: 44rem;
  }
  .mast_hero-content {
  	padding: 0 3rem;
  }
  .mast_made-title {
  	font-size: 11.5rem;
  }
}

/* ---- snapshot embed 242a5a6d ---- */
.mast-docs_list.cc-alpha {
	list-style-type: lower-alpha;
}
.mast-docs_body a:not(.btn) {
	color: #d14424;
}
a.accordion-trigger {
	color: #eeebdd;
}

/* ---- runtime state hooks (replace webflow.js / Jetboost / IX2) ---- */
/* Search dock: the snapshot sets the block to opacity 0 and Slater JS faded it in. */
.search_form-block { transition: opacity .3s cubic-bezier(.165, .84, .44, 1); }
.search_form-wrapper[data-state="open"] .search_form-block { opacity: 1; }
.search_form-wrapper[data-state="closed"] .search_form-block { display: none; }
.search_form-wrapper[data-state="open"] .search_show-btn { display: none; }
.search_form-wrapper[data-state="closed"] .search_show-btn { opacity: 1; transform: none; }
/* Dropdown open state (webflow.js toggled these) */
.search_dropdown-list.w--open { display: block; }
/* Filter checkboxes: real inputs, visually the tag; checked state mirrors Webflow's redirected class */
.tag.cc-filter { cursor: pointer; }
.tag.cc-filter input[type="checkbox"] { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.tag.cc-filter:has(input:checked) { background-color: var(--primary); color: var(--white); }
.tag.cc-filter:has(input:checked) .tag-checkbox_input { background-color: var(--primary); }
/* Full-screen menu open state (webflow.js toggled these) */
/* Menu open/close, timed from the live IX2: bars rotate into an × and fill (200ms),
   the overlay fades to .9 (200ms), the cards rise 20px + fade in 200ms each,
   staggered 0 / 100 / 200 / 200ms; closing fades everything out in 150ms. */
.nav-menu[data-nav-menu-open] { display: block !important; background: transparent; text-align: left; min-width: 0; top: 0; }
body.is-menu-open { overflow: hidden; }
.nav-link_menu-bar { transition: transform .2s ease, background-color .2s ease; }
.nav-link.cc-menu.w--open .nav-link_menu-bar { background-color: var(--off-white); }
.nav-link.cc-menu.w--open .nav-link_menu-bar.cc-top { transform: translateY(4px) rotate(45deg); }
.nav-link.cc-menu.w--open .nav-link_menu-bar.cc-btm { transform: translateY(-4px) rotate(-45deg); }
.nav-menu_overlay { opacity: 0; transition: opacity .2s ease; }
.nav-menu_overlay.is-visible { display: block; }
.nav-menu_overlay.is-open { opacity: .9; }
.nav-menu_card { opacity: 0; transform: translateY(20px); transition: opacity .2s ease, transform .2s ease; }
.nav-menu[data-nav-menu-open="open"] .nav-menu_card { opacity: 1; transform: none; }
.nav-menu[data-nav-menu-open="open"] .nav-menu_card:nth-child(2) { transition-delay: .1s; }
.nav-menu[data-nav-menu-open="open"] .nav-menu_card:nth-child(n + 3) { transition-delay: .2s; }
.nav-menu[data-nav-menu-open="closing"] .nav-menu_card { opacity: 0; transform: none; transition: opacity .15s ease; }
/* Feedback page: the floating tags follow the cursor (site.ts) */
.comingsoon-tag { will-change: transform; }
@media (prefers-reduced-motion: reduce) {
  .nav-link_menu-bar, .nav-menu_overlay, .nav-menu_card { transition: none !important; }
}
/* Elements Webflow reveals on scroll via IX2 — render at rest */
[data-w-id] { opacity: 1; transform: none; }
/* Empty CMS bindings never render server-side; keep Webflow's hook harmless */
.w-dyn-bind-empty { display: none !important; }
/* Subscribe forms: success/error states toggled by site.ts */
.w-form[data-state="success"] form { display: none; }
.w-form[data-state="success"] .w-form-done { display: block; }
.w-form[data-state="error"] .w-form-fail { display: block; }

/* Load more button (was styled via its Jetboost class) */
.btn.cc-load-more {
  background-color: var(--dark-gray);
  text-align: center;
  border-radius: 8px;
  margin-top: 48px;
  padding-top: 1em;
  padding-bottom: 1em;
  box-shadow: inset 0 -1px 0 50px #1d1c1a00;
}
.btn.cc-load-more:hover {
  box-shadow: inset 0 -1px 0 50px #eeebdd1f;
}

/* Accordions (Mast docs): site.ts toggles the aria state, this hides the content */
.accordion-content[aria-hidden="true"] { display: none; }
.accordion-trigger[aria-expanded="true"] .accordion-trigger_icon { transform: rotate(90deg); }
/* `hidden` must win over Webflow's display rules (e.g. .btn on the Load more link) */
[hidden] { display: none !important; }

/* The dock fades in while the list it searches is on screen (site.ts sets data-inview) */
.search_show-btn { transition: opacity .3s cubic-bezier(.165, .84, .44, 1), transform .3s cubic-bezier(.165, .84, .44, 1); }
#search-wrapper[data-inview="false"] .search_form-block,
#search-wrapper[data-inview="false"] .search_show-btn { opacity: 0; pointer-events: none; }
/* In-place filtering: dim the results while the next set loads. */
.tag-list_item[hidden], .search_filter-list[hidden], .cc-search-filter-title[hidden] { display: none !important; }
#main-list { transition: opacity .15s ease; }
#main-list-wrapper[aria-busy="true"] #main-list { opacity: .55; }
