:root {
  --ink: #07070a;
  --canvas: #ffffff;
  --mist: #f0f1ff;
  --steel: #5d5d68;
  --signal: #323cff;
  --signal-ink: #ffffff;
  --warm: #ffb222;
  --line: rgba(7, 7, 10, 0.13);
  --header-h: 4.5rem;
  --wide: 100rem;
  --pad-x: clamp(1.25rem, 5vw, 5rem);
  --section-y: clamp(4rem, 8vw, 7rem);
  --radius: 0.875rem;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --font-display: "Bricolage Grotesque", system-ui, sans-serif;
  --font-body: Manrope, system-ui, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, monospace;
  --admin-bar: 0px;

  /* Structural background grid (Antum-inspired, Appstric geometry) */
  --appstric-grid-width: 1px;
  --appstric-grid-stroke: rgba(7, 7, 10, 0.055);
  --appstric-grid-stroke-on-dark: rgba(255, 255, 255, 0.07);
  --appstric-grid-stroke-current: var(--appstric-grid-stroke);
  --appstric-grid-gutter: max(0px, calc((100vw - var(--wide)) / 2));
  --appstric-grid-left: calc(var(--appstric-grid-gutter) + var(--pad-x));
  --appstric-grid-right: calc(var(--appstric-grid-gutter) + var(--pad-x));
  --appstric-grid-inner: calc(100vw - var(--appstric-grid-left) - var(--appstric-grid-right));
  --appstric-grid-x1: var(--appstric-grid-left);
  --appstric-grid-x2: calc(var(--appstric-grid-left) + var(--appstric-grid-inner) * 0.25);
  --appstric-grid-x3: calc(var(--appstric-grid-left) + var(--appstric-grid-inner) * 0.5);
  --appstric-grid-x4: calc(var(--appstric-grid-left) + var(--appstric-grid-inner) * 0.75);
  --appstric-grid-x5: calc(100vw - var(--appstric-grid-right));
  --appstric-grid-layers:
    linear-gradient(
      to right,
      var(--appstric-grid-stroke-current),
      var(--appstric-grid-stroke-current)
    ),
    linear-gradient(
      to right,
      var(--appstric-grid-stroke-current),
      var(--appstric-grid-stroke-current)
    ),
    linear-gradient(
      to right,
      var(--appstric-grid-stroke-current),
      var(--appstric-grid-stroke-current)
    ),
    linear-gradient(
      to right,
      var(--appstric-grid-stroke-current),
      var(--appstric-grid-stroke-current)
    ),
    linear-gradient(
      to right,
      var(--appstric-grid-stroke-current),
      var(--appstric-grid-stroke-current)
    );
  --appstric-grid-sizes:
    var(--appstric-grid-width) 100%,
    var(--appstric-grid-width) 100%,
    var(--appstric-grid-width) 100%,
    var(--appstric-grid-width) 100%,
    var(--appstric-grid-width) 100%;
  --appstric-grid-positions:
    var(--appstric-grid-x1) 0,
    var(--appstric-grid-x2) 0,
    var(--appstric-grid-x3) 0,
    var(--appstric-grid-x4) 0,
    var(--appstric-grid-x5) 0;
}

@font-face {
  font-family: "Bricolage Grotesque";
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  font-stretch: 75% 100%;
  src: url("../fonts/bricolage-grotesque-latin-ext-standard-normal.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Bricolage Grotesque";
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  font-stretch: 75% 100%;
  src: url("../fonts/bricolage-grotesque-latin-standard-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  src: url("../fonts/manrope-latin-ext-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  src: url("../fonts/manrope-latin-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("../fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");
}

@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url("../fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2");
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: auto;
}

body {
  margin: 0;
  background-color: var(--canvas);
  background-image: var(--appstric-grid-layers);
  background-size: var(--appstric-grid-sizes);
  background-position: var(--appstric-grid-positions);
  background-repeat: no-repeat;
  background-attachment: fixed;
  color: var(--ink);
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}

body.admin-bar {
  --admin-bar: 32px;
}

body.appstric-nav-open {
  overflow: hidden;
}

/* Root template stack: no phantom gaps between full-bleed sections. */
.wp-site-blocks,
.wp-site-blocks > .wp-block-group,
.wp-site-blocks > .wp-block-template-part,
.wp-site-blocks > .wp-block-pattern {
  margin: 0;
  padding: 0;
}

/* Scope chrome resets to Appstric shells — leave nested groups editable in FSE. */
.wp-block-group.appstric-section,
.wp-block-group.appstric-header,
.wp-block-group.appstric-footer,
.wp-block-html:has(.appstric-section),
.wp-block-html:has(.appstric-hero) {
  margin-block: 0;
  margin-inline: 0;
  max-width: none;
}

.wp-block-group.appstric-section.alignfull {
  padding-inline: 0;
}

.appstric-section.wp-block-group {
  padding-block: var(--section-y);
  padding-inline: 0;
}

.appstric-section--tight.wp-block-group {
  padding-block: 2.5rem 3.5rem;
}

.appstric-section--notes.wp-block-group {
  padding-top: 2rem;
  padding-bottom: 7rem;
}

.appstric-section--caps.wp-block-group {
  padding-top: 0;
}

.appstric-hero__inner.wp-block-group {
  max-width: var(--wide);
  margin-inline: auto;
  padding-inline: var(--pad-x);
  padding-top: calc(var(--header-h) + 1rem);
  padding-bottom: 2rem;
}

.appstric-hero--page .appstric-hero__inner.wp-block-group {
  padding-top: calc(var(--header-h) + 2.25rem);
}

.appstric-footer__inner.wp-block-group {
  max-width: var(--wide);
  margin-inline: auto;
  padding-inline: var(--pad-x);
  padding-top: 5rem;
}

.appstric-header__inner.wp-block-group,
.wp-block-group.appstric-wrap {
  max-width: var(--wide);
  margin-inline: auto;
  padding-inline: var(--pad-x);
}

.has-global-padding > .alignfull {
  margin-inline: 0;
}

.appstric-wrap.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.appstric-hero__inner.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.appstric-footer__inner.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: none;
}

.wp-block-html:has(.appstric-hero),
.wp-block-html:has(.appstric-stage),
.wp-block-html:has(.appstric-alt-top),
.wp-block-html:has(.appstric-section),
.wp-block-html:has(.appstric-ops),
.wp-block-html:has(.appstric-header),
.wp-block-html:has(.appstric-footer),
.wp-block-html:has(.appstric-icon),
.wp-block-html:has(.appstric-hero__actions),
.wp-block-html:has(.appstric-prep),
.wp-block-html:has(> .appstric-btn),
.wp-block-shortcode {
  display: contents;
}

::selection {
  background: var(--signal);
  color: var(--signal-ink);
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

.section-pad,
.appstric-hero__inner,
.appstric-wrap,
.appstric-stage__copy,
.appstric-stage__viewport,
.appstric-header__inner,
.appstric-footer__inner,
.appstric-search,
.appstric-panel {
  max-width: var(--wide);
  margin-inline: auto;
  padding-inline: var(--pad-x);
  box-sizing: border-box;
}

.eyebrow,
.is-style-eyebrow {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--steel);
}

.display-xl {
  font-family: var(--font-display);
  font-weight: 650;
  font-stretch: 90%;
  font-variation-settings: "wdth" 90;
  letter-spacing: -0.065em;
  line-height: 0.84;
  text-wrap: balance;
}

.display-lg,
.is-style-display {
  font-family: var(--font-display);
  font-weight: 620;
  font-stretch: 92%;
  font-variation-settings: "wdth" 92;
  letter-spacing: -0.055em;
  line-height: 0.88;
  text-wrap: balance;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.15;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

/* Header */
.appstric-header {
  position: fixed;
  inset: var(--admin-bar) 0 auto;
  z-index: 1000;
  color: #fff;
  border-bottom: 1px solid transparent;
  transition: background 0.3s, color 0.3s, border-color 0.3s;
}

.appstric-header.is-scrolled,
.appstric-header:has(.appstric-panel.is-open),
.appstric-header:has(.wp-block-navigation__responsive-container.is-menu-open),
.appstric-header:has(.appstric-search:not([hidden])) {
  background: rgba(255, 255, 255, 0.94);
  color: var(--ink);
  border-bottom-color: var(--line);
  backdrop-filter: blur(16px);
}

.appstric-header__inner {
  display: flex;
  align-items: center;
  gap: 1rem;
  height: var(--header-h);
  max-width: var(--wide);
  margin: 0 auto;
  padding-inline: var(--pad-x);
  min-width: 0;
  flex-wrap: nowrap;
}

.appstric-header__logo {
  flex: 0 0 auto;
}

.appstric-logo,
.appstric-header .wp-block-site-logo img,
.appstric-header .custom-logo {
  width: 7.75rem;
  height: auto;
  filter: brightness(0) invert(1);
}

.appstric-header .wp-block-site-logo,
.appstric-header .wp-block-site-logo a {
  line-height: 0;
  display: block;
}

.appstric-header.is-scrolled .appstric-logo,
.appstric-header.is-scrolled .wp-block-site-logo img,
.appstric-header:has(.appstric-panel.is-open) .appstric-logo,
.appstric-header:has(.appstric-panel.is-open) .wp-block-site-logo img,
.appstric-header:has(.wp-block-navigation__responsive-container.is-menu-open) .appstric-logo,
.appstric-header:has(.wp-block-navigation__responsive-container.is-menu-open) .wp-block-site-logo img,
.appstric-header:has(.appstric-search:not([hidden])) .appstric-logo,
.appstric-header:has(.appstric-search:not([hidden])) .wp-block-site-logo img {
  filter: none;
}

.appstric-nav {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  margin-left: auto;
  min-width: 0;
}

.appstric-nav > a,
.appstric-drop > a {
  display: inline-flex;
  align-items: center;
  padding: 0.55rem 0.7rem;
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.78);
  border-radius: 999px;
}

.appstric-nav > a:hover,
.appstric-drop > a:hover,
.appstric-nav > a:focus-visible,
.appstric-drop > a:focus-visible {
  color: #fff;
}

.appstric-header.is-scrolled .appstric-nav > a,
.appstric-header.is-scrolled .appstric-drop > a,
.appstric-header:has(.appstric-panel.is-open) .appstric-nav > a,
.appstric-header:has(.appstric-search:not([hidden])) .appstric-nav > a {
  color: var(--steel);
}

.appstric-header.is-scrolled .appstric-nav > a:hover,
.appstric-header.is-scrolled .appstric-drop > a:hover {
  color: var(--ink);
  background: var(--mist);
}

.appstric-drop {
  position: relative;
  padding-bottom: 0.55rem;
  margin-bottom: -0.55rem;
}

.appstric-drop__menu {
  position: absolute;
  top: calc(100% - 0.15rem);
  left: 0;
  min-width: 16.5rem;
  padding: 0.55rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 18px 50px rgba(7, 7, 10, 0.12);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.2s, transform 0.2s, visibility 0.2s;
  z-index: 20;
}

.appstric-drop:hover .appstric-drop__menu,
.appstric-drop:focus-within .appstric-drop__menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.appstric-drop__menu a {
  display: block;
  padding: 0.7rem 0.8rem;
  border-radius: 0.7rem;
  color: var(--ink) !important;
  font-size: 0.875rem;
  line-height: 1.35;
}

.appstric-drop__menu a:hover {
  background: var(--mist);
}

.appstric-header__tools {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin-left: auto;
}

.appstric-nav + .appstric-header__tools {
  margin-left: 0.75rem;
}

.appstric-search-btn,
.wp-block-button.appstric-search-toggle,
.wp-block-button.is-style-appstric-search {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.appstric-search-btn,
.wp-block-button.appstric-search-toggle .wp-block-button__link,
.wp-block-button.is-style-appstric-search .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: inherit !important;
  font-size: 0;
  line-height: 0;
  box-shadow: none !important;
  text-indent: 0;
}

.wp-block-button.appstric-search-toggle .wp-block-button__link::before,
.wp-block-button.is-style-appstric-search .wp-block-button__link::before {
  content: "";
  width: 1.125rem;
  height: 1.125rem;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.appstric-search-btn:hover,
.wp-block-button.appstric-search-toggle .wp-block-button__link:hover,
.wp-block-button.is-style-appstric-search .wp-block-button__link:hover {
  background: rgba(255, 255, 255, 0.12) !important;
}

.appstric-header.is-scrolled .appstric-search-btn:hover,
.appstric-header.is-scrolled .wp-block-button.appstric-search-toggle .wp-block-button__link:hover,
.appstric-header.is-scrolled .wp-block-button.is-style-appstric-search .wp-block-button__link:hover {
  background: var(--mist) !important;
}

.appstric-header .appstric-search,
.appstric-header .wp-block-group.appstric-search {
  display: none;
  width: min(40rem, calc(100% - 2.5rem));
  margin: 0.75rem auto 1rem;
  padding-inline: var(--pad-x);
}

.appstric-header .appstric-search.is-open,
.appstric-header .appstric-search:not([hidden]),
.appstric-header .wp-block-group.appstric-search.is-open {
  display: block;
}

.appstric-header .appstric-search[hidden] {
  display: none !important;
}

.appstric-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 999px;
  padding: 0.7rem 1.15rem;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1;
  border: 0;
  cursor: pointer;
}

.appstric-btn--warm {
  background: var(--warm);
  color: var(--ink);
}

.appstric-btn--ink {
  background: var(--ink);
  color: #fff;
}

.appstric-btn--ink:hover {
  background: var(--signal);
}

.appstric-btn--line {
  border: 1px solid var(--line);
  background: transparent;
  color: var(--ink);
}

.btn-arrow {
  display: inline-block;
  transition: transform 0.35s var(--ease-out);
}

a:hover .btn-arrow {
  transform: translateX(4px);
}

.appstric-btn--ghost {
  border: 1px solid rgba(255, 255, 255, 0.4);
  color: #fff;
  background: transparent;
}

.appstric-btn--ghost:hover {
  background: #fff;
  color: var(--ink);
}

.appstric-btn--ghost-ink {
  border: 1px solid rgba(7, 7, 10, 0.2);
  color: var(--ink);
  background: transparent;
}

.appstric-btn--ghost-ink:hover {
  background: var(--ink);
  color: #fff;
}

.appstric-header .appstric-btn--header,
.wp-block-button.is-style-appstric-header .wp-block-button__link,
.wp-block-button.appstric-header-cta .wp-block-button__link {
  display: inline-flex;
  background: #fff !important;
  color: var(--ink) !important;
  padding: 0.55rem 0.9rem !important;
  font-size: 0.75rem !important;
  border: 0 !important;
  box-shadow: none !important;
}

.appstric-header.is-scrolled .appstric-btn--header,
.appstric-header:has(.appstric-panel.is-open) .appstric-btn--header,
.appstric-header:has(.wp-block-navigation__responsive-container.is-menu-open) .appstric-btn--header,
.appstric-header.is-scrolled .wp-block-button.is-style-appstric-header .wp-block-button__link,
.appstric-header:has(.wp-block-navigation__responsive-container.is-menu-open) .wp-block-button.is-style-appstric-header .wp-block-button__link,
.appstric-header:has(.appstric-search.is-open) .wp-block-button.is-style-appstric-header .wp-block-button__link,
.appstric-header:has(.appstric-search:not([hidden])) .wp-block-button.is-style-appstric-header .wp-block-button__link {
  background: var(--ink) !important;
  color: #fff !important;
}

.appstric-menu-toggle {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: none;
  border: 0;
  color: inherit;
  cursor: pointer;
  padding: 0.4rem 0;
}

.appstric-search {
  display: none;
  max-width: var(--wide);
  margin: 0 auto;
  padding-bottom: 1.1rem;
}

.appstric-search:not([hidden]) {
  display: block;
}

.appstric-search__form {
  display: flex;
  gap: 0.6rem;
  align-items: center;
}

.appstric-search__form input {
  flex: 1;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 0.85rem 1.1rem;
  font: inherit;
  background: #fff;
  color: var(--ink);
}

.appstric-panel {
  display: none;
  max-height: calc(100svh - var(--header-h) - var(--admin-bar));
  overflow: auto;
  background: var(--canvas);
  color: var(--ink);
  border-top: 1px solid var(--line);
  padding-top: 1rem;
  padding-bottom: 2rem;
}

.appstric-panel.is-open {
  display: block;
}

.appstric-panel > a,
.appstric-panel summary {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 8vw, 2.6rem);
  letter-spacing: -0.04em;
  padding: 0.65rem 0;
  cursor: pointer;
  list-style: none;
}

.appstric-panel summary::-webkit-details-marker {
  display: none;
}

.appstric-panel details a {
  display: block;
  padding: 0.45rem 0 0.45rem 0.2rem;
  color: var(--steel);
  font-size: 1rem;
}

.appstric-panel .appstric-btn {
  margin-top: 1.25rem;
}

.appstric-search__form--mobile {
  margin-bottom: 1.25rem;
}

.appstric-header .wp-block-buttons,
.appstric-header .wp-block-button,
.appstric-footer .wp-block-buttons,
.appstric-footer .wp-block-button {
  margin: 0;
}

.appstric-header .wp-block-button__link,
.appstric-footer .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border: 0;
  box-shadow: none;
}

.appstric-header .appstric-search .wp-block-search {
  display: flex;
  gap: 0.6rem;
  align-items: center;
}

.appstric-header .appstric-search .wp-block-search__inside-wrapper,
.appstric-header .appstric-search .wp-block-search__input {
  flex: 1;
  min-width: 0;
}

.appstric-header .appstric-search .wp-block-search__input {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 0.85rem 1.1rem;
  font: inherit;
  background: #fff;
  color: var(--ink);
}

.appstric-header .appstric-search .wp-block-search__button {
  border: 0;
  border-radius: 999px;
  padding: 0.7rem 1.15rem;
  background: var(--warm);
  color: var(--ink);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.appstric-header .wp-block-navigation {
  margin-left: auto;
}

.appstric-header .wp-block-navigation__container {
  gap: 0.15rem;
}

.appstric-header .wp-block-navigation-item > .wp-block-navigation-item__content {
  display: inline-flex;
  align-items: center;
  padding: 0.55rem 0.7rem;
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.78);
  background: none;
  border-radius: 999px;
}

.appstric-header .wp-block-navigation-item > .wp-block-navigation-item__content:hover,
.appstric-header .wp-block-navigation-item > .wp-block-navigation-item__content:focus-visible {
  color: #fff;
}

.appstric-header.is-scrolled .wp-block-navigation-item > .wp-block-navigation-item__content,
.appstric-header:has(.wp-block-navigation__responsive-container.is-menu-open) .wp-block-navigation-item > .wp-block-navigation-item__content,
.appstric-header:has(.appstric-search:not([hidden])) .wp-block-navigation-item > .wp-block-navigation-item__content {
  color: var(--steel);
}

.appstric-header.is-scrolled .wp-block-navigation-item > .wp-block-navigation-item__content:hover {
  color: var(--ink);
  background: var(--mist);
}

.appstric-header .wp-block-navigation .has-child .wp-block-navigation__submenu-container {
  min-width: 16.5rem;
  padding: 0.55rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 18px 50px rgba(7, 7, 10, 0.12);
}

.appstric-header .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  display: block;
  padding: 0.7rem 0.8rem;
  border-radius: 0.7rem;
  color: var(--ink) !important;
  font-size: 0.875rem;
  line-height: 1.35;
  background: none;
}

.appstric-header .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
  background: var(--mist);
}

.appstric-header .wp-block-navigation__responsive-container-open,
.appstric-header .wp-block-navigation__responsive-container-close {
  background: none;
  border: 0;
  padding: 0.4rem 0;
  color: inherit;
  box-shadow: none;
}

.appstric-header .wp-block-navigation__responsive-container-open svg,
.appstric-header .wp-block-navigation__responsive-container-close svg {
  display: none;
}

.appstric-header .wp-block-navigation__responsive-container-open::after {
  content: "Menu";
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.appstric-header .wp-block-navigation__responsive-container-close::after {
  content: "Close";
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.appstric-footer .wp-block-columns.appstric-footer__grid {
  display: grid !important;
  gap: 3rem;
}

.appstric-footer .wp-block-columns.appstric-footer__grid > .wp-block-column {
  margin: 0;
  flex-basis: auto !important;
  width: auto !important;
}

.appstric-footer .wp-block-site-logo img,
.appstric-footer .custom-logo {
  width: 7rem;
  filter: brightness(0) invert(1);
}

@media (max-width: 1023px) {
  .appstric-header .appstric-nav:not(.wp-block-navigation) {
    display: none !important;
  }

  .appstric-header .wp-block-navigation__responsive-container-open {
    display: flex !important;
    flex: 0 0 auto;
    margin-left: 0.15rem;
  }

  .appstric-header .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: none !important;
  }

  .appstric-header .wp-block-navigation:not(:has(.is-menu-open)) .wp-block-navigation__container {
    display: none !important;
  }

  .appstric-header__inner {
    gap: 0.5rem;
  }

  .appstric-header__logo,
  .appstric-header__tools,
  .appstric-header .wp-block-navigation {
    flex: 0 0 auto;
  }

  .appstric-header .appstric-logo,
  .appstric-header .wp-block-site-logo img,
  .appstric-header .custom-logo {
    width: 6.75rem;
  }

  .appstric-header .wp-block-navigation {
    margin-left: 0;
    order: 3;
  }

  .appstric-header__tools,
  .appstric-header .appstric-nav + .appstric-header__tools {
    margin-left: auto;
    order: 2;
  }

  .appstric-menu-toggle {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
  }

  .appstric-header .wp-block-navigation__responsive-container.is-menu-open {
    position: absolute;
    inset: 100% 0 auto;
    width: 100%;
    height: auto;
    max-height: calc(100svh - var(--header-h) - var(--admin-bar));
    overflow: auto;
    padding: 1rem clamp(1.25rem, 5vw, 5rem) 2rem;
    background: var(--canvas);
    color: var(--ink);
  }

  .appstric-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
  .appstric-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: 100%;
  }

  .appstric-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item > .wp-block-navigation-item__content {
    display: block;
    padding: 0.65rem 0;
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 8vw, 2.6rem);
    letter-spacing: -0.04em;
    color: var(--ink) !important;
    border-radius: 0;
  }

  .appstric-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
    position: static;
    min-width: 0;
    padding: 0 0 0.6rem;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
  }

  .appstric-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    padding: 0.45rem 0 0.45rem 0.2rem;
    color: var(--steel) !important;
    font-family: var(--font-body);
    font-size: 1rem;
    letter-spacing: 0;
  }

  .appstric-header .wp-block-navigation__responsive-container-close {
    position: absolute;
    top: 0.85rem;
    right: clamp(1.25rem, 5vw, 5rem);
    color: var(--ink);
  }
}

@media (max-width: 420px) {
  .appstric-header .appstric-logo,
  .appstric-header .wp-block-site-logo img,
  .appstric-header .custom-logo {
    width: 6.1rem;
  }

  .appstric-header__tools {
    gap: 0.3rem;
  }

  .appstric-header .appstric-btn--header {
    padding: 0.5rem 0.7rem;
    font-size: 0.7rem;
  }
}

/* Hero */
.appstric-hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  background: var(--ink);
  color: #fff;
}

.appstric-hero__canvas {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  background: var(--ink);
}

.appstric-hero::before,
.appstric-hero::after {
  z-index: 1;
}

.appstric-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(7, 7, 10, 0.25);
  pointer-events: none;
}

.appstric-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 42%;
  background: linear-gradient(to top, rgba(7, 7, 10, 0.8), transparent);
  pointer-events: none;
}

.appstric-hero__inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  min-height: 100svh;
  max-width: var(--wide);
  margin: 0 auto;
  padding-top: calc(var(--header-h) + 1rem);
  padding-bottom: 2rem;
}

.appstric-hero__eyebrow {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
}

.appstric-hero h1,
.appstric-hero__title,
.appstric-hero .wp-block-heading,
.appstric-hero .wp-block-post-title {
  margin: auto 0 0;
  font-family: var(--font-display);
  font-size: clamp(2.9rem, 9.2vw, 9.4rem);
  font-weight: 800;
  font-stretch: 100%;
  font-variation-settings: "wdth" 100;
  line-height: 0.88;
  letter-spacing: -0.05em;
  padding-inline-end: 0.06em;
}

.appstric-hero__line {
  display: block;
}

.appstric-period {
  color: var(--warm);
}

.appstric-hero__bar {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.appstric-hero__bar p {
  max-width: 28rem;
  margin: 0;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.6;
}

.appstric-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.appstric-hero--page {
  min-height: 0;
}

.appstric-hero--page .appstric-hero__inner {
  min-height: 22rem;
  justify-content: flex-end;
  padding-top: calc(var(--header-h) + 2.25rem);
  padding-bottom: 2rem;
}

.appstric-hero--page h1,
.appstric-hero--page .wp-block-heading,
.appstric-hero--page .wp-block-post-title {
  margin: 1.1rem 0 0;
  font-size: clamp(2rem, 5.4vw, 4.35rem);
  font-weight: 800;
  line-height: 0.96;
  letter-spacing: -0.045em;
  padding-inline-end: 0.06em;
}

.appstric-hero--page .appstric-hero__bar {
  margin-top: 1.25rem;
  padding-top: 1.1rem;
}

/* Work archive: keep cinematic canvas, give intro a bit more editorial air */
.appstric-hero--work.appstric-hero--page .appstric-hero__inner {
  min-height: clamp(22rem, 48vh, 30rem);
  padding-bottom: clamp(2rem, 4vw, 3.25rem);
}

.appstric-hero--work.appstric-hero--page h1,
.appstric-hero--work.appstric-hero--page .wp-block-heading {
  font-size: clamp(2.35rem, 6vw, 5rem);
  max-width: 12ch;
}

/* Sections */
.appstric-section {
  position: relative;
  padding-block: var(--section-y);
  padding-inline: 0;
  max-width: none;
  margin: 0;
}

.appstric-section--mist,
.is-style-appstric-section-mist {
  background: var(--mist);
}

.appstric-section--ink,
.is-style-appstric-section-ink {
  background: var(--ink);
  color: #fff;
}

.appstric-wrap {
  max-width: var(--wide);
  margin-inline: auto;
  padding-inline: var(--pad-x);
  min-width: 0;
}

.appstric-intro {
  display: grid;
  gap: 1.5rem;
  margin-bottom: 3.5rem;
}

.appstric-intro.wp-block-group {
  margin-bottom: 3.5rem;
}

.appstric-intro h2 {
  margin: 0;
  font-size: clamp(2.5rem, 6vw, 5.5rem);
}

.appstric-intro p {
  margin: 0;
  max-width: 28rem;
  color: var(--steel);
  font-size: 1.125rem;
  line-height: 1.65;
}

.appstric-cards {
  display: grid;
  gap: var(--wp--style--block-gap, 1.75rem);
}

.appstric-intro + .appstric-cards,
.appstric-intro + .appstric-work-grid,
.appstric-intro + .appstric-caps,
.appstric-intro + .appstric-insights {
  margin-top: 2.5rem;
}

.appstric-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 22rem;
  padding: 1.75rem;
  border-radius: 1.5rem;
  background: var(--mist);
  transition: transform 0.4s var(--ease-out);
}

.appstric-card:hover {
  transform: translateY(-4px);
}

.appstric-card h3 {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 2vw, 1.85rem);
  letter-spacing: -0.03em;
  margin: auto 0 0;
  padding-top: 3.5rem;
}

.appstric-card p {
  color: var(--steel);
  line-height: 1.6;
}

.appstric-icon {
  width: 3rem;
  height: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--canvas);
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--ink);
}

.appstric-icon--shape {
  width: 3.35rem;
  height: 3.35rem;
  border-radius: 1rem;
  background: color-mix(in srgb, var(--signal) 12%, var(--canvas));
  color: var(--ink);
}

.appstric-icon--shape svg {
  width: 1.9rem;
  height: 1.9rem;
}

.appstric-card:hover .appstric-icon {
  background: var(--signal);
  color: #fff;
}

.appstric-card:hover .appstric-icon--shape {
  background: var(--signal);
  color: #fff;
}

.appstric-section--mist .appstric-icon--shape {
  background: #fff;
  color: var(--signal);
}

.appstric-section--ink .appstric-icon--shape,
.appstric-section--wash .appstric-icon--shape {
  background: rgba(255, 255, 255, 0.9);
  color: var(--ink);
}

.appstric-section--ink .appstric-card:hover .appstric-icon--shape {
  background: var(--warm);
  color: var(--ink);
}

.appstric-include__item .appstric-icon--shape {
  width: 3rem;
  height: 3rem;
  border-radius: 0.85rem;
  background: var(--mist);
  color: var(--signal);
}

.appstric-include__item.is-active .appstric-icon--shape {
  background: var(--signal);
  color: #fff;
}

.appstric-method__head .appstric-icon--shape {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.75rem;
  background: #fff;
  color: var(--signal);
  flex-shrink: 0;
}

.appstric-work-grid {
  display: grid;
  gap: 1.25rem;
  margin-top: 3rem;
}

.appstric-work-card {
  position: relative;
  display: block;
  min-height: 22rem;
  overflow: hidden;
  border-radius: var(--radius);
  color: #fff;
}

.appstric-work-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.appstric-work-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, #07070a, rgba(7, 7, 10, 0.25) 45%, transparent);
}

.appstric-work-card__body {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: inherit;
  padding: 1.5rem;
}

.appstric-work-card h3 {
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  letter-spacing: -0.04em;
  margin: 0.35rem 0 0;
}

.appstric-work-card p {
  color: rgba(255, 255, 255, 0.7);
}

/* Legacy masonry cards (kept for any stored content) */
.appstric-caps {
  display: grid;
  gap: var(--wp--style--block-gap, 1.75rem);
}

.appstric-caps .appstric-card {
  min-height: 18rem;
  background: #fff;
  margin: 0;
}

/* -------------------------------------------------------------------------
   Capabilities rail — editable cards, content-start → full-bleed scroll
   ------------------------------------------------------------------------- */

.appstric-caps-latest {
  padding-block: clamp(4rem, 8vw, 7rem);
  overflow: clip;
  scroll-margin-top: calc(var(--header-h) + var(--admin-bar) + 1rem);
}

.appstric-caps-latest > .appstric-wrap {
  margin-bottom: clamp(1.75rem, 3vw, 2.75rem);
}

.appstric-caps-rail {
  position: relative;
  width: 100%;
  max-width: none;
  padding-inline: var(--appstric-grid-left) var(--pad-x);
  box-sizing: border-box;
}

.appstric-caps-rail.alignfull {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.appstric-caps-rail__track,
.appstric-caps-rail__track.wp-block-group {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: var(--wp--style--block-gap, 1.25rem);
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--appstric-grid-left);
  padding-bottom: 0.35rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  cursor: grab;
}

.appstric-caps-rail__track::-webkit-scrollbar {
  display: none;
}

.appstric-caps-rail.is-dragging .appstric-caps-rail__track {
  cursor: grabbing;
  scroll-snap-type: none;
  user-select: none;
}

.appstric-caps-rail .appstric-card,
.appstric-caps-rail .appstric-card.wp-block-group {
  flex: 0 0 min(22rem, 82vw);
  width: min(22rem, 82vw);
  max-width: min(22rem, 82vw);
  min-height: 18rem;
  margin: 0;
  background: #fff;
  scroll-snap-align: start;
}

.appstric-caps-rail .appstric-card h3 {
  margin-top: auto;
}

.appstric-caps-rail__hint {
  position: absolute;
  top: 42%;
  left: 55%;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  padding: 0.45rem 0.85rem;
  border-radius: 999px;
  background: var(--signal);
  color: #fff;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: lowercase;
  white-space: nowrap;
  pointer-events: none;
  transform: translate(-10%, -50%);
  opacity: 0;
  transition: opacity 0.35s var(--ease-out);
}

.appstric-caps-rail__hint span {
  opacity: 0.75;
}

.appstric-caps-rail.is-hinted .appstric-caps-rail__hint {
  opacity: 1;
}

.appstric-caps-rail.is-scrolled .appstric-caps-rail__hint,
.appstric-caps-rail.is-dragging .appstric-caps-rail__hint {
  opacity: 0;
}

@media (min-width: 900px) {
  .appstric-caps-rail .appstric-card,
  .appstric-caps-rail .appstric-card.wp-block-group {
    flex-basis: min(24rem, 28vw);
    width: min(24rem, 28vw);
    max-width: min(24rem, 28vw);
  }
}

.appstric-include {
  display: grid;
  gap: 2.5rem;
}

.appstric-include ol,
.appstric-include__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.appstric-include li,
.appstric-include__item {
  display: grid;
  gap: 0.35rem;
  padding: 1.6rem 0;
  border-top: 1px solid var(--line);
  opacity: 0.45;
  transition: opacity 0.3s;
}

.appstric-include li.is-active,
.appstric-include__item.is-active {
  opacity: 1;
}

.appstric-include li .eyebrow,
.appstric-include__item .eyebrow {
  color: var(--steel);
  font-family: var(--font-display);
  letter-spacing: 0.18em;
}

.appstric-include li.is-active .eyebrow,
.appstric-include__item.is-active .eyebrow {
  color: var(--signal);
}

.appstric-include h3 {
  font-family: var(--font-display);
  font-size: 1.35rem;
  letter-spacing: -0.03em;
  margin: 0;
}

.appstric-include p {
  margin: 0.35rem 0 0;
  color: var(--steel);
}

.appstric-method {
  display: grid;
  gap: 0;
  margin-top: 3rem;
}

.appstric-method article {
  padding: 1.5rem 0;
  border-top: 1px solid var(--line);
}

.appstric-method h3 {
  font-family: var(--font-display);
  font-size: 1.5rem;
  margin: 0.5rem 0;
}

.appstric-method p {
  margin: 0;
  color: var(--steel);
  font-size: 0.95rem;
  line-height: 1.6;
}

.appstric-list article {
  display: grid;
  gap: 0.75rem;
  padding: 3.5rem 0;
  border-bottom: 1px solid var(--line);
}

.appstric-list h2 {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  letter-spacing: -0.04em;
  margin: 0;
}

.appstric-work-row {
  display: grid;
  gap: 1.5rem;
  padding: 2.5rem 0;
  border-bottom: 1px solid var(--line);
}

.appstric-work-row img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  background: var(--mist);
  border-radius: var(--radius);
}

.appstric-footer {
  background: var(--ink);
  color: #fff;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.appstric-footer__inner {
  max-width: var(--wide);
  margin: 0 auto;
  padding-top: 5rem;
}

.appstric-footer h2 {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  line-height: 0.95;
  letter-spacing: -0.04em;
  margin: 0;
}

.appstric-footer p {
  color: rgba(255, 255, 255, 0.65);
}

.appstric-footer .appstric-logo {
  width: 7rem;
  filter: brightness(0) invert(1);
}

.appstric-footer__grid {
  display: grid;
  gap: 3rem;
  padding-bottom: 4rem;
}

.appstric-footer__meta {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.75rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.4);
  font-size: 0.875rem;
}

.appstric-form label {
  display: block;
  padding: 1rem 0;
  border-top: 1px solid var(--line);
}

.appstric-form span {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 0.65rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--steel);
}

.appstric-form input,
.appstric-form textarea {
  width: 100%;
  border: 0;
  background: transparent;
  font: inherit;
  font-size: 1.125rem;
  outline: none;
}

.appstric-results {
  display: grid;
  gap: 0;
}

.appstric-results article {
  padding: 1.75rem 0;
  border-bottom: 1px solid var(--line);
}

.appstric-results h2 {
  font-family: var(--font-display);
  font-size: 1.8rem;
  margin: 0 0 0.4rem;
}

@media (min-width: 768px) {
  .appstric-logo,
  .appstric-header .wp-block-site-logo img {
    width: 8.5rem;
  }

  .appstric-hero__bar,
  .appstric-footer__meta {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }

  .appstric-hero--page .appstric-hero__inner {
    min-height: 26rem;
  }

  .appstric-cards {
    grid-template-columns: 1fr 1fr;
  }

  .appstric-work-grid {
    grid-template-columns: 1.2fr 1fr;
  }

  .appstric-work-card {
    min-height: 28rem;
  }

  .appstric-caps {
    grid-template-columns: 1fr 1fr;
  }

  .appstric-include {
    grid-template-columns: 0.8fr 1.2fr;
  }

  .appstric-footer__grid,
  .appstric-footer .wp-block-columns.appstric-footer__grid {
    grid-template-columns: 7fr 2fr 3fr;
  }

  .appstric-work-row {
    grid-template-columns: 1.1fr 1.2fr auto;
    align-items: center;
  }
}

@media (min-width: 1024px) {
  .appstric-header .wp-block-navigation__responsive-container-open,
  .appstric-header .wp-block-navigation__responsive-container-close {
    display: none !important;
  }

  .appstric-header .wp-block-navigation__responsive-container,
  .appstric-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    display: flex !important;
    position: relative !important;
    width: auto;
    height: auto;
    padding: 0;
    background: none;
    overflow: visible;
  }

  .appstric-header .appstric-btn--header {
    display: inline-flex;
    padding: 0.7rem 1.15rem;
    font-size: 0.875rem;
  }

  .appstric-menu-toggle {
    display: none;
  }

  .appstric-split {
    grid-template-columns: 1fr 1fr;
    gap: 3.5rem;
    align-items: start;
  }

  .appstric-intro {
    grid-template-columns: repeat(12, 1fr);
    align-items: end;
  }

  .appstric-intro > :first-child {
    grid-column: 1 / span 7;
  }

  .appstric-intro > :last-child:not(:first-child) {
    grid-column: 9 / span 4;
  }

  .appstric-cards--4 {
    grid-template-columns: repeat(4, 1fr);
  }

  .appstric-work-grid {
    grid-template-columns: 7fr 5fr;
  }

  .appstric-work-grid > :nth-child(3) {
    grid-column: span 2;
  }

  .appstric-caps {
    grid-template-columns: repeat(6, 1fr);
  }

  .appstric-caps > :nth-child(1),
  .appstric-caps > :nth-child(2) {
    grid-column: span 3;
  }

  .appstric-caps > :nth-child(n + 3) {
    grid-column: span 2;
  }

  .appstric-method {
    grid-template-columns: repeat(5, 1fr);
  }

  .appstric-method article {
    border-top: 0;
    border-left: 1px solid var(--line);
    padding: 0 1.1rem;
  }

  .appstric-method article:first-child {
    border-left: 0;
    padding-left: 0;
  }
}

@media screen and (max-width: 782px) {
  body.admin-bar {
    --admin-bar: 46px;
  }
}

@media screen and (max-width: 600px) {
  #wpadminbar {
    position: fixed !important;
  }
}

.appstric-muted {
  color: var(--steel);
}

.appstric-section__title {
  max-width: 52rem;
  margin: 0 0 1.25rem;
  font-size: clamp(2.5rem, 6vw, 5.5rem);
}

.appstric-lede,
.is-style-lede {
  max-width: 36rem;
  margin: 0;
  color: var(--steel);
  font-size: 1.125rem;
  line-height: 1.65;
}

.appstric-section--wash,
.is-style-appstric-section-wash {
  background: rgba(240, 241, 255, 0.45);
  max-width: none;
}

.appstric-section--signal {
  background: var(--signal);
  color: #fff;
  max-width: none;
}

.appstric-intro--row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
}

.appstric-intro--row h2 {
  font-size: clamp(2rem, 5vw, 3.75rem);
}

.appstric-card--outline {
  background: transparent;
  border: 1px solid var(--line);
}

.appstric-card--outline:hover {
  background: var(--mist);
}

.appstric-card--outline h3 {
  margin-top: 0.65rem;
  padding-top: 0;
}

.appstric-more {
  display: inline-flex;
  margin-top: 1.25rem;
  font-size: 0.875rem;
  font-weight: 600;
}

.appstric-work-all {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1.25rem;
  padding: 1.6rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--radius);
  color: #fff;
}

.appstric-work-all:hover {
  border-color: var(--warm);
  color: var(--warm);
}

.appstric-include__intro h2 {
  font-size: clamp(2rem, 4vw, 3.25rem);
  margin: 0 0 1rem;
}

.appstric-include__intro p {
  max-width: 24rem;
  color: var(--steel);
  line-height: 1.65;
}

.appstric-include li,
.appstric-include__item {
  grid-template-columns: 4.5rem 1fr;
  gap: 1.5rem;
  align-items: start;
}

.appstric-step {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border: 1px solid var(--line);
  font-family: var(--font-display);
  font-size: 0.7rem;
  letter-spacing: 0.08em;
}

.appstric-insights {
  display: grid;
  gap: 1px;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--line);
  margin-top: 3rem;
}

.appstric-insight {
  display: flex;
  flex-direction: column;
  min-height: 22rem;
  padding: 1.75rem;
  background: #fff;
}

.appstric-insight h3 {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 2.4vw, 1.9rem);
  letter-spacing: -0.04em;
  line-height: 1.15;
  margin: auto 0 0;
  padding-top: 3rem;
}

.appstric-insight p {
  color: var(--steel);
  line-height: 1.6;
}

.appstric-insight:hover {
  background: var(--mist);
}

.appstric-split {
  display: grid;
  gap: clamp(2rem, 4vw, 3.25rem);
}

.appstric-split .display-lg {
  font-size: clamp(2rem, 4vw, 3.5rem);
  margin: 0;
}

.appstric-form__bar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  border-top: 1px solid var(--line);
  padding: 1.25rem 0;
  margin: 0;
  color: var(--steel);
  font-size: 0.875rem;
}

.appstric-btn--signal {
  background: var(--signal);
  color: #fff;
}

.appstric-svc {
  display: grid;
  gap: 1.5rem;
  padding: 3.5rem 0;
  border-bottom: 1px solid var(--line);
  scroll-margin-top: calc(var(--header-h) + var(--admin-bar) + 1.5rem);
}

.appstric-svc h2 {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  letter-spacing: -0.04em;
  margin: 0.4rem 0 0;
}

.appstric-svc__lead {
  font-size: 1.25rem;
  line-height: 1.5;
  margin: 0 0 1rem;
}

.appstric-svc p {
  color: var(--steel);
  line-height: 1.65;
  max-width: 42rem;
}

.appstric-chips,
.appstric-pills {
  display: grid;
  gap: 0.75rem;
  list-style: none;
  margin: 1.75rem 0 0;
  padding: 0;
}

.appstric-chips {
  grid-template-columns: 1fr;
}

.appstric-chips li {
  border: 1px solid var(--line);
  background: rgba(240, 241, 255, 0.6);
  border-radius: 1rem;
  padding: 1.1rem 1.15rem;
  font-size: 0.9rem;
  line-height: 1.45;
}

.appstric-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.appstric-pills li {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: 0.45rem 0.8rem;
  font-family: var(--font-mono);
  font-size: 0.68rem;
}

.appstric-dots {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 1.15rem 0 0;
  border-top: 1px solid var(--line);
}

.appstric-dots li {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.3rem 0;
  font-size: 0.9rem;
}

.appstric-dots li::before {
  content: "";
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 999px;
  background: var(--signal);
  flex: 0 0 auto;
}

.appstric-models {
  display: grid;
  gap: 1px;
  overflow: hidden;
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.25);
  margin-top: 3rem;
}

.appstric-models article {
  background: var(--signal);
  padding: 1.75rem;
}

.appstric-models h3 {
  font-family: var(--font-display);
  font-size: 1.75rem;
  margin: 0.75rem 0 0.5rem;
  color: #fff;
}

.appstric-models p {
  color: rgba(255, 255, 255, 0.75);
  margin: 0;
  line-height: 1.6;
}

.appstric-quote {
  margin: 1.75rem 0 0;
  padding-left: 1.25rem;
  border-left: 2px solid var(--signal);
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  letter-spacing: -0.03em;
  color: var(--ink);
}

.appstric-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  align-items: center;
  justify-content: space-between;
}

.appstric-cta h2 {
  font-size: clamp(2rem, 5vw, 3.75rem);
  margin: 0;
  max-width: 40rem;
}

.appstric-form a {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.wp-block-search {
  display: flex;
  gap: 0.6rem;
  margin-bottom: 2.5rem;
}

.wp-block-search__inside-wrapper {
  display: flex;
  gap: 0.6rem;
  width: 100%;
}

.wp-block-search__input {
  flex: 1;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 0.85rem 1.1rem;
  font: inherit;
}

.wp-block-search__button {
  border: 0;
  border-radius: 999px;
  background: var(--ink);
  color: #fff;
  padding: 0.85rem 1.2rem;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.appstric-results .wp-block-post-title,
.appstric-results h2 {
  font-family: var(--font-display);
  font-size: 1.8rem;
  margin: 0 0 0.4rem;
}

.appstric-results article,
.appstric-results .wp-block-post {
  padding: 1.75rem 0;
  border-bottom: 1px solid var(--line);
}

.appstric-grid-2,
.appstric-grid-3 {
  display: grid;
  gap: 1rem;
}

@media (min-width: 768px) {
  .appstric-cards--2,
  .appstric-cards--3,
  .appstric-grid-2,
  .appstric-grid-3 {
    grid-template-columns: 1fr 1fr;
    gap: var(--wp--style--block-gap, 1.75rem);
  }

  .appstric-include__intro {
    position: sticky;
    top: calc(var(--header-h) + var(--admin-bar) + 1.5rem);
    align-self: start;
  }

  .appstric-chips {
    grid-template-columns: repeat(3, 1fr);
  }

  .appstric-insights {
    grid-template-columns: repeat(3, 1fr);
  }

  .appstric-models {
    grid-template-columns: repeat(3, 1fr);
  }

  .appstric-svc {
    grid-template-columns: 4fr 8fr;
    gap: 2rem;
  }
}

@media (min-width: 1024px) {
  .appstric-cards--3 {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--wp--style--block-gap, 1.75rem);
  }

  .appstric-grid-3 {
    grid-template-columns: repeat(3, 1fr);
  }

  .appstric-method.appstric-method--3,
  .appstric-about-serve {
    grid-template-columns: repeat(3, 1fr);
  }
}

.appstric-icon svg {
  width: 1.25rem;
  height: 1.25rem;
  display: block;
}

.appstric-photo {
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--mist);
}

.appstric-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 16 / 10;
  display: block;
}

.appstric-photo--tall img {
  aspect-ratio: 4 / 5;
}

.appstric-mosaic {
  display: grid;
  gap: 0.75rem;
  margin-top: 3rem;
}

.appstric-card--media {
  padding: 0;
  overflow: hidden;
  min-height: 0;
}

.appstric-card--media .appstric-photo {
  border-radius: 0;
}

.appstric-card--media .appstric-icon {
  margin: 1.5rem 1.75rem 0;
}

.appstric-card--media h3 {
  margin: 1.1rem 1.75rem 0;
  padding-top: 0;
}

.appstric-card--media p,
.appstric-card--media .eyebrow,
.appstric-card--media ul {
  margin-left: 1.75rem;
  margin-right: 1.75rem;
}

.appstric-card--media ul {
  margin-bottom: 1.75rem;
}

.appstric-svc .appstric-photo {
  margin-top: 1.5rem;
}

.appstric-insight {
  padding: 0 0 1.5rem;
  overflow: hidden;
}

.appstric-insight .appstric-photo {
  margin: 0 0 1.1rem;
  border-radius: 0;
}

.appstric-insight .eyebrow,
.appstric-insight h3,
.appstric-insight > p {
  padding-inline: 1.5rem;
}

.appstric-insight h3 {
  margin: 0.5rem 0 0;
  padding-top: 0;
}

.appstric-stats {
  display: grid;
  gap: 2rem;
}

.appstric-stats article {
  border-top: 1px solid var(--line);
  padding-top: 1.25rem;
}

.appstric-stats__n {
  font-family: var(--font-display);
  font-size: clamp(3rem, 8vw, 4.5rem);
  letter-spacing: -0.05em;
  line-height: 0.9;
  margin: 0 0 0.75rem;
}

.appstric-prep {
  list-style: none;
  margin: 2rem 0 0;
  padding: 0;
}

.appstric-prep li,
.appstric-prep__item {
  display: grid;
  grid-template-columns: 3rem 1fr;
  gap: 1rem;
  align-items: start;
  padding: 1rem 0;
}

.appstric-prep h3 {
  font-family: var(--font-display);
  font-size: 1.2rem;
  margin: 0;
}

.appstric-prep p {
  margin: 0.35rem 0 0;
  color: var(--steel);
}

@media (min-width: 768px) {
  .appstric-mosaic {
    grid-template-columns: 1.4fr 1fr;
    grid-template-rows: 1fr 1fr;
  }

  .appstric-mosaic__main {
    grid-row: span 2;
  }

  .appstric-mosaic__main img {
    height: 100%;
    min-height: 28rem;
    aspect-ratio: auto;
  }

  .appstric-stats {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Motion + Lenis progress */
.appstric-progress {
  pointer-events: none;
  position: fixed;
  inset: var(--admin-bar) 0 auto;
  z-index: 1100;
  height: 2px;
  opacity: 0;
  transition: opacity 0.3s;
}

.appstric-progress.is-visible {
  opacity: 1;
}

.appstric-progress span {
  display: block;
  height: 100%;
  width: 100%;
  transform: scaleX(0);
  transform-origin: left;
  background: var(--signal);
}

html.js-motion [data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out);
}

html.js-motion [data-reveal].is-in {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  html.js-motion [data-reveal] {
    opacity: 1;
    transform: none;
  }
}

.appstric-index br,
.appstric-cases br,
.appstric-case br,
.appstric-notes br,
.appstric-note br,
.appstric-article br,
.appstric-split-12 br,
.appstric-related br,
.appstric-cover br,
.appstric-ticks br,
.appstric-chips-row br,
.appstric-points br,
.appstric-toc br,
.appstric-band-cta br,
.appstric-next-cta br {
  display: none;
}
.appstric-index__band {
  padding-inline: 0;
}

.appstric-index__filters {
  padding-block: 2rem 2.5rem;
  border-bottom: 1px solid var(--line);
}

.appstric-index__filters .appstric-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.appstric-filter {
  border: 1px solid var(--line);
  background: transparent;
  color: var(--steel);
  padding: 0.65rem 0.9rem;
  font: inherit;
  font-size: 0.65rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color 0.3s, border-color 0.3s, background 0.3s;
}

.appstric-filter:hover,
.appstric-filter.is-active {
  border-color: var(--ink);
  color: var(--ink);
}

.appstric-filter.is-active {
  background: var(--ink);
  color: var(--canvas);
}

.appstric-index__list {
  padding-block: 1.5rem 2.5rem;
}

.appstric-index__empty {
  padding: 5rem 0;
  color: var(--steel);
}

.appstric-cases {
  list-style: none;
  margin: 0;
  padding: 0;
}

.appstric-case {
  border-bottom: 1px solid var(--line);
}

.appstric-case > a {
  display: grid;
  gap: 1.5rem;
  padding: 2rem 0;
}

.appstric-case__n {
  font-family: var(--font-display);
  font-size: 0.75rem;
  letter-spacing: 0.22em;
  color: var(--steel);
}

.appstric-case__media {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--mist);
}

.appstric-case__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s var(--ease-out);
}

.appstric-case > a:hover .appstric-case__media img {
  transform: scale(1.05);
}

.appstric-case__meta {
  display: block;
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--steel);
}

.appstric-case__title {
  display: block;
  margin-top: 0.5rem;
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2.4vw, 1.875rem);
  letter-spacing: -0.04em;
  line-height: 1.15;
  transition: transform 0.4s var(--ease-out);
}

.appstric-case > a:hover .appstric-case__title {
  transform: translateX(0.25rem);
}

.appstric-case__summary {
  display: block;
  margin-top: 0.75rem;
  max-width: 28rem;
  color: var(--steel);
  font-size: 0.95rem;
  line-height: 1.65;
}

.appstric-case__aside {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
}

.appstric-case .wp-block-group.appstric-case__copy,
.appstric-case .wp-block-group.appstric-case__aside {
  margin: 0;
}

.appstric-cases--grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: 1fr;
}

.appstric-cases--grid .appstric-case {
  border: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.appstric-cases--grid .appstric-case > a {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 1rem;
  height: 100%;
  padding: 1.25rem;
}

.appstric-cases--grid .appstric-case__n {
  order: -1;
}

.appstric-cases--grid .appstric-case__media {
  width: 100%;
}

.appstric-cases--grid .appstric-case__copy,
.appstric-cases--grid .appstric-case__aside {
  grid-column: auto;
}

.appstric-cases--grid .appstric-case__aside {
  flex-direction: row;
  align-items: flex-end;
  text-align: left;
  margin-top: auto;
}

.appstric-index--editor .appstric-case--editor,
.appstric-work-template-editor .appstric-case__editor-row {
  display: grid;
  gap: 0.75rem;
  padding: 1rem;
  border: 1px dashed var(--line);
  background: color-mix(in srgb, var(--mist) 55%, transparent);
}

.appstric-work-field-editor {
  min-height: 1.5rem;
  font-size: 0.8rem;
  color: var(--steel);
}

.appstric-work-field-editor.appstric-case__media {
  aspect-ratio: 16 / 10;
  display: grid;
  place-items: center;
  background: var(--mist);
}

.appstric-case__aside strong {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 4vw, 3rem);
  font-weight: 500;
  letter-spacing: -0.05em;
  line-height: 1;
}

.appstric-case__aside em {
  display: block;
  margin-top: 0.25rem;
  font-style: normal;
  font-size: 0.75rem;
  color: var(--steel);
}

.appstric-case__view {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
}

.appstric-index__cta {
  padding-block: 2.5rem 7rem;
}

.appstric-next-cta {
  position: relative;
  display: block;
  overflow: hidden;
  border: 1px solid var(--line);
  min-height: 13.75rem;
}

.appstric-next-cta img {
  width: 100%;
  height: 100%;
  min-height: 13.75rem;
  aspect-ratio: 21 / 8;
  object-fit: cover;
  transition: transform 0.7s var(--ease-out);
}

.appstric-next-cta:hover img {
  transform: scale(1.05);
}

.appstric-next-cta::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(7, 7, 10, 0.6);
}

.appstric-next-cta > span {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 2rem;
}

.appstric-next-cta__title {
  display: block;
  margin-top: 0.75rem;
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 4vw, 3rem);
  letter-spacing: -0.04em;
  color: #fff;
}

/* Project cards */
.appstric-project-card {
  --accent: #0009f2;
  position: relative;
  display: block;
  min-height: 28.75rem;
  overflow: hidden;
  border-radius: var(--radius);
  color: #fff;
  background: var(--ink);
}

.appstric-project-card--large {
  min-height: 38.75rem;
}

.appstric-project-card--mid {
  min-height: 28.75rem;
}

.appstric-project-card__media,
.appstric-project-card__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.appstric-project-card__media img {
  object-fit: cover;
  transition: transform 0.7s var(--ease-out);
}

.appstric-project-card:hover img {
  transform: scale(1.04);
}

.appstric-project-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, #07070a, rgba(7, 7, 10, 0.3) 45%, rgba(7, 7, 10, 0.05));
}

.appstric-project-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  opacity: 0;
  mix-blend-mode: overlay;
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 40%, transparent), transparent 62%);
  transition: opacity 0.5s;
}

.appstric-project-card:hover::before {
  opacity: 0.7;
}

.appstric-project-card__body {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: inherit;
  padding: 1.5rem;
}

.appstric-project-card__top,
.appstric-project-card__row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.appstric-project-card__meta {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.65);
}

.appstric-project-card__go {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  transition: background 0.3s, color 0.3s;
}

.appstric-project-card__go svg {
  width: 1rem;
  height: 1rem;
}

.appstric-project-card:hover .appstric-project-card__go {
  background: var(--signal);
  color: #fff;
}

.appstric-project-card__client {
  display: block;
  margin-bottom: 0.75rem;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--signal);
}

.appstric-project-card__title {
  display: block;
  max-width: 36rem;
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  letter-spacing: -0.04em;
  line-height: 1.04;
}

.appstric-project-card--large .appstric-project-card__title {
  font-size: clamp(1.8rem, 4vw, 3rem);
}

.appstric-project-card__row {
  align-items: flex-end;
  margin-top: 1.5rem;
}

.appstric-project-card__summary {
  max-width: 24rem;
  font-size: 0.875rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.72);
}

.appstric-project-card__metric {
  text-align: right;
}

.appstric-project-card__metric strong {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 500;
  letter-spacing: -0.05em;
  color: var(--signal);
}

.appstric-project-card__metric em {
  display: block;
  margin-top: 0.25rem;
  font-style: normal;
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.6);
}

.appstric-related {
  display: grid;
  gap: 1.25rem;
  margin-top: 2rem;
}

/* Case / insight interiors */
.appstric-section--line {
  border-bottom: 1px solid var(--line);
}

.appstric-section--line-top,
.appstric-section--mist {
  border-top: 1px solid var(--line);
}

.appstric-section--mist {
  background: var(--mist);
}

.appstric-section--tight {
  padding-block: 2.5rem 3.5rem;
}

.appstric-section--notes {
  padding-top: 2rem;
  padding-bottom: 7rem;
}

.appstric-split-12 {
  display: grid;
  gap: 3rem;
}

.appstric-display {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 3vw, 1.875rem);
  letter-spacing: -0.04em;
}

.appstric-cta-title {
  font-size: clamp(1.8rem, 4vw, 3rem);
  margin: 0;
}

.appstric-prose {
  margin: 0;
  max-width: 42rem;
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--steel);
}

.appstric-cover {
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  aspect-ratio: 16 / 8;
}

.appstric-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.appstric-cover--wide {
  aspect-ratio: 21 / 9;
  border: 0;
  border-radius: var(--radius);
}

.appstric-ticks {
  list-style: none;
  margin: 2rem 0 0;
  padding: 0;
}

.appstric-ticks li {
  display: flex;
  gap: 0.75rem;
  padding: 1rem 0;
  border-top: 1px solid var(--line);
}

.appstric-ticks li:last-child {
  border-bottom: 1px solid var(--line);
}

.appstric-ticks li::before {
  content: "";
  flex: 0 0 auto;
  width: 0.375rem;
  height: 0.375rem;
  margin-top: 0.55rem;
  background: var(--signal);
}

.appstric-chips-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
}

.appstric-chips-row li {
  border: 1px solid var(--line);
  padding: 0.5rem 0.75rem;
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.appstric-chips-row--mist li {
  background: rgba(240, 241, 255, 0.5);
  font-size: 0.875rem;
  letter-spacing: 0;
  text-transform: none;
}

.appstric-eyebrow-space {
  margin-bottom: 2rem;
}

/* Insights archive */
.appstric-notes {
  list-style: none;
  margin: 0;
  padding: 0;
}

.appstric-notes > li {
  border-bottom: 1px solid var(--line);
}

.appstric-note {
  display: grid;
  gap: 1.5rem;
  padding: 2.5rem 0;
}

.appstric-note__n {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--signal);
}

.appstric-note__meta span:last-child {
  display: block;
  margin-top: 0.5rem;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--steel);
}

.appstric-note__media {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--mist);
}

.appstric-note__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.appstric-note__title {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 3vw, 2.25rem);
  letter-spacing: -0.04em;
  line-height: 1.15;
  transition: transform 0.3s;
}

.appstric-note:hover .appstric-note__title {
  transform: translateX(0.25rem);
}

.appstric-note__dek {
  display: block;
  margin-top: 1rem;
  max-width: 42rem;
  color: var(--steel);
  line-height: 1.65;
}

.appstric-note__aside {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--steel);
}

.appstric-note__go {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--ink);
  transition: background 0.3s, color 0.3s, border-color 0.3s;
}

.appstric-note__go svg {
  width: 1rem;
  height: 1rem;
}

.appstric-note:hover .appstric-note__go {
  background: var(--signal);
  border-color: var(--signal);
  color: #fff;
}

/* Insight article */
.appstric-article {
  display: grid;
  gap: 3rem;
}

.appstric-toc {
  font-size: 0.875rem;
}

.appstric-toc > div {
  position: sticky;
  top: calc(var(--header-h) + var(--admin-bar) + 1.5rem);
}

.appstric-toc ol {
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
}

.appstric-toc li + li {
  margin-top: 0.75rem;
}

.appstric-toc a {
  color: var(--steel);
  line-height: 1.4;
}

.appstric-toc a:hover {
  color: var(--ink);
}

.appstric-pull {
  margin: 0;
  padding-left: 1.5rem;
  border-left: 2px solid var(--signal);
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 3vw, 1.875rem);
  letter-spacing: -0.03em;
  line-height: 1.45;
}

.appstric-article__section {
  margin-top: 4rem;
  scroll-margin-top: calc(var(--header-h) + var(--admin-bar) + 1.5rem);
}

.appstric-article__n {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--signal);
}

.appstric-article__section h2 {
  margin: 0.75rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 3.5vw, 2.25rem);
  letter-spacing: -0.04em;
  line-height: 1.15;
}

.appstric-article__prose {
  margin-top: 1.5rem;
}

.appstric-article__prose p {
  margin: 0 0 1.25rem;
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--steel);
}

.appstric-points {
  list-style: none;
  margin: 2rem 0 0;
  padding: 1.5rem;
  border-radius: var(--radius);
  background: var(--mist);
}

.appstric-points li {
  display: flex;
  gap: 0.75rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--line);
}

.appstric-points li:first-child {
  padding-top: 0;
}

.appstric-points li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.appstric-points svg {
  width: 1rem;
  height: 1rem;
  margin-top: 0.2rem;
  color: var(--signal);
  flex: 0 0 auto;
}

.appstric-band-cta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
}

.appstric-band-cta .appstric-display {
  margin-top: 0.5rem;
  font-size: clamp(1.8rem, 3.5vw, 2.25rem);
}

.appstric-band-cta .appstric-btn svg {
  width: 1rem;
  height: 1rem;
}

.appstric-method-track {
  margin-top: 4rem;
}

.appstric-method-line {
  height: 1px;
  margin-bottom: 2.5rem;
  background: var(--line);
}

.appstric-method-line span {
  display: block;
  height: 1px;
  width: 100%;
  transform: scaleX(0);
  transform-origin: left;
  background: var(--signal);
}

.appstric-method__head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}

.appstric-insights--cards {
  gap: 1rem;
  background: transparent;
  overflow: visible;
  border-radius: 0;
}

.appstric-insights--cards .appstric-insight {
  min-height: 28rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.appstric-insight__time {
  margin-top: auto;
  padding: 1.5rem 1.5rem 0;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--steel);
}

@media (min-width: 768px) {
  .appstric-case > a {
    grid-template-columns: repeat(12, 1fr);
    align-items: center;
    gap: 2rem;
    padding: 2.5rem 0;
  }

  .appstric-case__n {
    grid-column: span 1;
  }

  .appstric-case__media {
    grid-column: span 5;
  }

  .appstric-case__copy {
    grid-column: span 4;
  }

  .appstric-case__aside {
    grid-column: span 2;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
  }

  .appstric-cases--grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .appstric-cases--grid .appstric-case > a {
    display: flex;
    padding: 1.5rem;
  }

  .appstric-cases--grid .appstric-case__n,
  .appstric-cases--grid .appstric-case__media,
  .appstric-cases--grid .appstric-case__copy,
  .appstric-cases--grid .appstric-case__aside {
    grid-column: auto;
  }

  .appstric-cases--grid .appstric-case__aside {
    flex-direction: row;
    align-items: flex-end;
    text-align: left;
  }

  .appstric-next-cta > span {
    padding: 3rem;
  }

  .appstric-project-card__body {
    padding: 2rem;
  }

  .appstric-project-card--mid {
    min-height: 35rem;
  }

  .appstric-related {
    grid-template-columns: 1fr 1fr;
  }

  .appstric-note {
    grid-template-columns: repeat(12, 1fr);
    align-items: center;
    padding: 3.5rem 0;
  }

  .appstric-note__meta {
    grid-column: span 2;
  }

  .appstric-note__media {
    grid-column: span 3;
  }

  .appstric-note__copy {
    grid-column: span 5;
  }

  .appstric-note__aside {
    grid-column: span 2;
    justify-content: flex-end;
    gap: 2rem;
  }

  .appstric-band-cta {
    flex-direction: row;
    align-items: center;
  }

  .appstric-insights.appstric-insights--cards {
    grid-template-columns: 1fr 1fr;
  }
}

@media (min-width: 1024px) {
  .appstric-work-grid {
    grid-template-columns: repeat(12, 1fr);
  }

  .appstric-work-grid > :nth-child(1) {
    grid-column: span 7;
  }

  .appstric-work-grid > :nth-child(2) {
    grid-column: span 5;
  }

  .appstric-work-grid > :nth-child(3) {
    grid-column: span 6;
  }

  .appstric-split-12 {
    grid-template-columns: repeat(12, 1fr);
    gap: 3rem;
  }

  .appstric-split-12 > :first-child {
    grid-column: span 4;
  }

  .appstric-split-12 > :last-child {
    grid-column: span 8;
  }

  .appstric-split-12--even > :first-child,
  .appstric-split-12--even > :last-child {
    grid-column: span 6;
  }

  .appstric-article {
    grid-template-columns: repeat(12, 1fr);
    gap: 3rem;
  }

  .appstric-toc {
    grid-column: span 3;
  }

  .appstric-article__body {
    grid-column: 5 / span 7;
  }
}

@media (min-width: 1280px) {
  .appstric-insights.appstric-insights--cards {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Alternate homepage — cinematic studio cut. Does not replace the live front page. */
.appstric-alt-top {
  background: var(--ink);
}

.page-template-page-home-alt .is-layout-flow > * {
  margin-block-start: 0 !important;
}

.appstric-alt-top > .appstric-hero,
.appstric-alt-top > .appstric-stage,
.appstric-hero + .appstric-stage {
  margin: 0 !important;
  margin-block-start: 0 !important;
}

.appstric-hero + br,
.appstric-stage + br,
.appstric-alt-top > br,
.appstric-alt-top > p:empty {
  display: none;
}

.appstric-alt-cue {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  margin-top: 1.75rem;
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
}

.appstric-alt-cue span {
  display: block;
  width: 1px;
  height: 1.6rem;
  background: var(--warm);
  transform-origin: top;
  animation: appstric-alt-cue 1.8s var(--ease-out) infinite;
}

@keyframes appstric-alt-cue {
  0% { transform: scaleY(0.2); opacity: 0; }
  35% { opacity: 1; }
  100% { transform: scaleY(1); opacity: 0; }
}

.appstric-stage {
  position: relative;
  background: var(--ink);
  color: #fff;
  overflow: hidden;
}

.appstric-stage__frame {
  display: flex;
  flex-direction: column;
  min-height: 100svh;
}

.appstric-stage__copy {
  padding-top: clamp(4rem, 8vw, 6rem);
  padding-bottom: 1.5rem;
  max-width: 46rem;
}

.appstric-stage__copy .eyebrow {
  color: rgba(255, 255, 255, 0.5);
}

.appstric-stage__copy h2 {
  margin: 0.8rem 0 0;
  color: #fff;
  font-size: clamp(2.2rem, 5.4vw, 4.4rem);
}

.appstric-stage__copy p {
  margin: 1.1rem 0 0;
  max-width: 32rem;
  color: rgba(255, 255, 255, 0.68);
  font-size: 1.05rem;
  line-height: 1.6;
}

.appstric-stage__viewport {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  padding-bottom: 2.5rem;
}

.appstric-stage__track {
  display: flex;
  gap: 1rem;
  width: max-content;
  padding-right: clamp(1.25rem, 5vw, 5rem);
  will-change: transform;
}

.appstric-stage__card {
  position: relative;
  margin: 0;
  width: min(78vw, 34rem);
  overflow: hidden;
  border-radius: var(--radius);
  background: #111;
}

.appstric-stage__card img {
  width: 100%;
  height: min(58vh, 32rem);
  object-fit: cover;
  display: block;
  transform: scale(1.08);
  transform-origin: center;
  transition: transform 1.2s var(--ease-out);
}

.appstric-stage__card:hover img {
  transform: scale(1);
}

.appstric-stage__card figcaption {
  position: absolute;
  inset: auto 0 0;
  display: grid;
  gap: 0.15rem;
  padding: 3.5rem 1.25rem 1.25rem;
  background: linear-gradient(to top, rgba(7, 7, 10, 0.88), transparent);
  color: #fff;
}

.appstric-stage__card span {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.16em;
  color: var(--warm);
}

.appstric-stage__card strong {
  font-family: var(--font-display);
  font-size: 1.65rem;
  font-weight: 620;
  letter-spacing: -0.04em;
}

.appstric-stage__card em {
  font-style: normal;
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.92rem;
}

@media (min-width: 768px) {
  .appstric-stage__card {
    width: min(62vw, 42rem);
  }

  .appstric-stage__card img {
    height: min(64vh, 38rem);
  }
}

@media (max-width: 767px) {
  .appstric-stage__track {
    width: 100%;
    flex-direction: column;
    padding-right: 0;
  }

  .appstric-stage__card {
    width: 100%;
  }

  .appstric-stage__card img {
    height: 22rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .appstric-alt-cue span,
  .appstric-stage__card img {
    animation: none;
    transition: none;
    transform: none;
  }
}

.appstric-you {
  display: grid;
  gap: 1.75rem;
}

.appstric-you article {
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
}

.appstric-you h3 {
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.2vw, 1.8rem);
  letter-spacing: -0.03em;
  margin: 0.7rem 0 0;
}

.appstric-you p {
  margin: 0.75rem 0 0;
  color: var(--steel);
}

.appstric-you__note {
  margin: 2.5rem 0 0;
  max-width: 40rem;
  color: var(--steel);
}

.appstric-evidence {
  display: grid;
  gap: 3.5rem;
}

.appstric-evidence article {
  display: grid;
  gap: 1.5rem;
}

.appstric-evidence h3 {
  font-family: var(--font-display);
  font-size: clamp(1.55rem, 3vw, 2.3rem);
  letter-spacing: -0.04em;
  margin: 0.55rem 0 0;
  color: #fff;
}

.appstric-evidence article > div > p {
  margin: 1rem 0 0;
  color: rgba(255, 255, 255, 0.72);
  max-width: 36rem;
}

.appstric-evidence__stack {
  font-family: var(--font-mono) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45) !important;
}

.appstric-book {
  display: grid;
  gap: 2.5rem;
}

.appstric-book__or {
  margin: 1.5rem 0 0.5rem;
  font-size: 0.9rem;
  color: var(--steel);
}

.appstric-cal {
  min-height: 36rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--mist);
}

.appstric-cal:empty {
  display: none;
}

.appstric-cal iframe {
  display: block;
  width: 100%;
  height: 36rem;
  border: 0;
}

.appstric-form {
  position: relative;
}

.appstric-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.appstric-form__status {
  margin: 0.85rem 0 0;
  font-size: 0.9rem;
}

.appstric-form__status.is-ok {
  color: var(--signal);
}

.appstric-form__status.is-err {
  color: #9b1c1c;
}

@media (min-width: 1024px) {
  .appstric-you {
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
  }

  .appstric-you article {
    border-top: 0;
    border-left: 1px solid var(--line);
    padding: 0 0 0 2rem;
    margin: 0;
  }

  .appstric-you article:first-child {
    border-left: 0;
    padding-left: 0;
  }

  .appstric-evidence article {
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
  }

  .appstric-evidence article:nth-child(even) figure {
    order: 2;
  }

  .appstric-book {
    grid-template-columns: 0.9fr 1.1fr;
    gap: 4rem;
    align-items: start;
  }
}

.appstric-evidence__go {
  display: inline-block;
  margin-top: 1.25rem;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--warm);
}

.appstric-study .appstric-prose + .appstric-prose {
  margin-top: 1.15rem;
}

.appstric-shots {
  display: grid;
  gap: 1.25rem;
}

.appstric-shots figure {
  margin: 0;
  border: 1px solid var(--line);
  background: var(--mist);
}

.appstric-shots img {
  display: block;
  width: 100%;
  height: auto;
}

.appstric-shots figcaption {
  padding: 0.85rem 1rem 1rem;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--steel);
}

.appstric-diagram {
  margin: 0;
  padding: 1.75rem 1.5rem 1.5rem;
  border: 1px solid var(--line);
  background: var(--ink);
  color: #fff;
}

.appstric-diagram figcaption {
  margin: 0 0 1.75rem;
}

.appstric-diagram__kicker {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--warm);
}

.appstric-diagram__title {
  display: block;
  margin-top: 0.55rem;
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  letter-spacing: -0.04em;
  font-weight: 600;
}

.appstric-diagram__dek {
  display: block;
  margin-top: 0.55rem;
  max-width: 38rem;
  color: rgba(255, 255, 255, 0.58);
}

.appstric-diagram__surfaces {
  display: grid;
  gap: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.appstric-diagram__surfaces > div {
  padding: 1.15rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.appstric-diagram__surfaces span,
.appstric-diagram__surfaces em,
.appstric-diagram__surfaces code {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.42);
}

.appstric-diagram__surfaces strong {
  display: block;
  margin: 0.35rem 0 0.4rem;
  font-family: var(--font-display);
  font-size: 1.35rem;
  letter-spacing: -0.03em;
}

.appstric-diagram__surfaces p {
  margin: 0 0 0.65rem;
  color: rgba(255, 255, 255, 0.68);
}

.appstric-diagram__surfaces em {
  display: block;
  font-style: normal;
  color: var(--warm);
}

.appstric-diagram__surfaces code {
  display: block;
  margin-top: 0.35rem;
  color: rgba(255, 255, 255, 0.38);
}

.appstric-pos {
  border: 1px solid rgba(255, 255, 255, 0.16);
}

.appstric-pos__bar {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}

.appstric-pos__cols {
  display: grid;
}

.appstric-pos__cols > div {
  padding: 1.25rem 1rem 1.35rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.appstric-pos__cols span {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.14em;
  color: var(--warm);
}

.appstric-pos__cols strong {
  display: block;
  margin: 0.4rem 0 0.45rem;
  font-family: var(--font-display);
  font-size: 1.25rem;
  letter-spacing: -0.03em;
}

.appstric-pos__cols p {
  margin: 0;
  color: rgba(255, 255, 255, 0.62);
}

.appstric-scope {
  display: grid;
  gap: 2rem;
}

.appstric-scope .eyebrow {
  color: var(--warm);
}

.appstric-scope ul {
  list-style: none;
  margin: 0.85rem 0 0;
  padding: 0;
}

.appstric-scope li {
  padding: 0.7rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.78);
}

.appstric-scope li:last-child {
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.appstric-flow {
  list-style: none;
  margin: 0;
  padding: 0;
}

.appstric-flow li {
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  gap: 1rem;
  padding: 1rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.appstric-flow li:last-child {
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.appstric-flow li > span {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  color: var(--warm);
  padding-top: 0.2rem;
}

.appstric-flow em {
  display: block;
  font-style: normal;
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.42);
}

.appstric-flow strong {
  display: block;
  margin: 0.25rem 0 0.35rem;
  font-family: var(--font-display);
  font-size: 1.2rem;
  letter-spacing: -0.03em;
}

.appstric-flow p {
  margin: 0;
  color: rgba(255, 255, 255, 0.62);
}

.appstric-rails {
  list-style: none;
  margin: 0;
  padding: 0;
}

.appstric-rails li {
  display: grid;
  gap: 0.35rem;
  padding: 1rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.appstric-rails li:last-child {
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.appstric-rails strong {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--warm);
}

.appstric-rails span {
  color: rgba(255, 255, 255, 0.72);
}

@media (min-width: 800px) {
  .appstric-shots {
    grid-template-columns: 1fr 1fr;
  }

  .appstric-diagram__surfaces {
    grid-template-columns: repeat(5, 1fr);
    border-top: 0;
  }

  .appstric-diagram__surfaces > div {
    padding: 1.15rem 1rem 0 0;
    border-bottom: 0;
    border-right: 1px solid rgba(255, 255, 255, 0.12);
  }

  .appstric-diagram__surfaces > div:last-child {
    border-right: 0;
    padding-right: 0;
  }

  .appstric-pos__cols {
    grid-template-columns: repeat(3, 1fr);
  }

  .appstric-pos__cols > div {
    border-top: 0;
    border-left: 1px solid rgba(255, 255, 255, 0.12);
  }

  .appstric-pos__cols > div:first-child {
    border-left: 0;
  }

  .appstric-scope {
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
  }
}

/* Fluent Forms — match .appstric-form underline fields */
.appstric-ff .fluentform,
.appstric-ff .frm-fluent-form {
  margin: 0;
}

.appstric-ff .ff-el-group {
  margin: 0;
  padding: 1rem 0;
  border-top: 1px solid var(--line);
}

.appstric-ff .ff-el-input--label label {
  display: block;
  margin: 0 0 0.5rem;
  padding: 0;
  border: 0;
  font-size: 0.65rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--steel);
  font-weight: 500;
}

.appstric-ff .ff-el-required,
.appstric-ff .mark-required,
.appstric-ff .ff-el-input--label .required {
  display: none;
}

.appstric-ff .ff-el-form-control,
.appstric-ff .ff-el-input--content input,
.appstric-ff .ff-el-input--content textarea {
  width: 100%;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
  font: inherit;
  font-size: 1.125rem;
  color: var(--ink);
  outline: none;
}

.appstric-ff .ff-el-form-control:focus,
.appstric-ff .ff-el-input--content input:focus,
.appstric-ff .ff-el-input--content textarea:focus {
  border: 0 !important;
  box-shadow: none !important;
}

.appstric-ff .ff-el-help,
.appstric-ff .text-danger {
  font-size: 0.8rem;
  margin-top: 0.35rem;
}

.appstric-ff .ff-el-is-error .text-danger {
  color: #9b1c1c;
}

.appstric-ff .ff-btn-wrapper,
.appstric-ff .ff_submit_btn_wrapper,
.appstric-ff .ff-el-group.ff-text-right,
.appstric-ff .ff-el-group.ff-text-left,
.appstric-ff .ff-form-btn {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin: 0;
  padding: 1.25rem 0;
  border-top: 1px solid var(--line);
}

.appstric-ff .ff-btn-wrapper::before,
.appstric-ff .ff_submit_btn_wrapper::before,
.appstric-ff .ff-form-btn::before {
  content: "We use this only to reply about your brief.";
  color: var(--steel);
  font-size: 0.875rem;
}

.appstric-ff .ff-btn-submit,
.appstric-ff button.ff-btn-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  padding: 0.7rem 1.15rem;
  background: var(--signal) !important;
  color: #fff !important;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  min-width: 0 !important;
}

.appstric-ff .ff-message-success {
  margin: 1rem 0 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--signal);
  font-size: 0.9rem;
}

.appstric-modal .appstric-ff .ff-btn-wrapper::before,
.appstric-modal .appstric-ff .ff_submit_btn_wrapper::before,
.appstric-modal .appstric-ff .ff-form-btn::before {
  content: none;
}

.appstric-ff .ff-form-loading {
  opacity: 1;
}

.appstric-split > .appstric-form,
.appstric-split > .appstric-ff {
  min-width: 0;
}

.appstric-book.wp-block-group,
.appstric-split.wp-block-group,
.appstric-split-12.wp-block-group,
.appstric-cards.wp-block-group,
.appstric-cap.wp-block-group,
.appstric-stats.wp-block-group,
.appstric-method.wp-block-group,
.appstric-models.wp-block-group,
.appstric-include.wp-block-group,
.appstric-intro.wp-block-group,
.appstric-mosaic.wp-block-group,
.appstric-related.wp-block-group,
.appstric-shots.wp-block-group,
.appstric-article.wp-block-group,
.appstric-tools__grid.wp-block-group,
.appstric-tools__head.wp-block-group {
  display: grid;
}

.appstric-cta.wp-block-group,
.appstric-hero__bar.wp-block-group,
.appstric-card.wp-block-group,
.appstric-hero__inner.wp-block-group,
.appstric-method__head.wp-block-group,
.appstric-cap__kicker.wp-block-group,
.appstric-stack__board.wp-block-group,
.appstric-stack__lane-inner.wp-block-group,
.appstric-tool.wp-block-group {
  display: flex;
}

.appstric-book.wp-block-group,
.appstric-split.wp-block-group,
.appstric-split-12.wp-block-group,
.appstric-stats.wp-block-group,
.appstric-method.wp-block-group,
.appstric-models.wp-block-group,
.appstric-cta.wp-block-group,
.appstric-include.wp-block-group,
.appstric-mosaic.wp-block-group,
.appstric-related.wp-block-group,
.appstric-shots.wp-block-group,
.appstric-article.wp-block-group,
.appstric-hero__inner.wp-block-group,
.appstric-hero__bar.wp-block-group {
  gap: var(--wp--style--block-gap, 1.5rem);
}

.appstric-cards.wp-block-group,
.appstric-cards.appstric-cards--2.wp-block-group,
.appstric-cards.appstric-cards--3.wp-block-group,
.appstric-cards.appstric-cards--4.wp-block-group {
  gap: var(--wp--style--block-gap, 1.75rem);
}

.appstric-cap.wp-block-group {
  gap: clamp(2.25rem, 4.5vw, 4.25rem);
}

.appstric-mosaic.wp-block-group {
  gap: var(--wp--style--block-gap, 0.75rem);
}

.appstric-intro.wp-block-group + .appstric-cards.wp-block-group,
.appstric-intro.wp-block-group + .appstric-work-grid.wp-block-group,
.appstric-intro.wp-block-group + .appstric-caps.wp-block-group,
.appstric-intro.wp-block-group + .appstric-insights.wp-block-group {
  margin-top: var(--wp--preset--spacing--80, 2.5rem);
}

.appstric-lede + .appstric-cards,
.appstric-section__title + .appstric-cards {
  margin-top: 2.5rem;
}

.appstric-card.wp-block-group {
  flex-direction: column;
}

.appstric-hero__inner.wp-block-group {
  flex-direction: column;
}

.appstric-hero__bar.wp-block-group {
  flex-direction: column;
  margin-top: 2rem !important;
  padding-top: 1.5rem !important;
}

.appstric-hero--page .appstric-hero__bar.wp-block-group {
  margin-top: 1.25rem !important;
  padding-top: 1.1rem !important;
}

@media (min-width: 768px) {
  .appstric-hero__bar.wp-block-group {
    flex-direction: row;
  }
}

.wp-block-image.appstric-photo,
.wp-block-image.appstric-cover,
.appstric-cap__media .wp-block-image,
.appstric-card .wp-block-image,
.appstric-mosaic .wp-block-image,
.appstric-shots .wp-block-image,
.appstric-split .wp-block-image {
  margin: 0;
}

.wp-block-quote.appstric-quote {
  box-shadow: none;
}

.wp-block-quote.appstric-quote p {
  margin: 0;
}

.appstric-split .appstric-hero__actions {
  margin-top: 2rem;
}

ul.wp-block-list.appstric-cap__points,
ul.wp-block-list.appstric-pills,
ul.wp-block-list.appstric-dots,
ul.wp-block-list.appstric-ticks,
ul.wp-block-list.appstric-chips-row,
ul.wp-block-list.appstric-points,
ol.wp-block-list.appstric-toc__list {
  padding-inline-start: 0;
}

.appstric-section--signal .eyebrow {
  color: rgba(255, 255, 255, 0.7);
}

.appstric-section--signal h2,
.appstric-section--signal .display-lg {
  color: #fff;
}

.appstric-section--signal .appstric-icon {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
}

.appstric-section--ink .appstric-split .eyebrow {
  color: var(--warm);
}

.appstric-section--ink .appstric-split h2,
.appstric-section--ink .appstric-split .display-lg {
  color: #fff;
}

.appstric-section--ink .appstric-split p:not(.eyebrow) {
  color: rgba(255, 255, 255, 0.65);
}

/* Light Modal — hidden until opened, even if the plugin CSS is missing */
.wp-block-cloudcatch-light-modal-block__wrapper {
  display: none;
  background: rgba(7, 7, 10, 0.72) !important;
}

.wp-block-cloudcatch-light-modal-block__wrapper.is-open {
  display: inline-flex;
}

.wp-block-cloudcatch-light-modal-block.appstric-modal,
.wp-block-cloudcatch-light-modal-block {
  background: var(--canvas);
  border-radius: 1.5rem;
  color: var(--ink);
}

.wp-block-cloudcatch-light-modal-block__close {
  background: var(--warm) !important;
}

.wp-block-cloudcatch-light-modal-block .display-lg {
  margin: 0 0 0.5rem;
  font-size: clamp(1.8rem, 4vw, 2.6rem);
}

@media (max-width: 767px) {
  .appstric-cal,
  .appstric-cal-slot {
    display: none;
  }
}

/* Capabilities catalog — editorial spreads */
.appstric-section--caps {
  padding-top: 0;
}

.appstric-cap-nav {
  position: sticky;
  top: calc(var(--header-h) + var(--admin-bar));
  z-index: 40;
  background: rgba(255, 255, 255, 0.92);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px);
}

.appstric-cap-nav__inner {
  display: flex;
  align-items: stretch;
  max-width: var(--wide);
  margin: 0 auto;
  padding-inline: var(--pad-x);
  overflow-x: auto;
  scrollbar-width: none;
}

.appstric-cap-nav__inner::-webkit-scrollbar {
  display: none;
}

.appstric-cap-nav a {
  flex: 1 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.95rem 1.1rem;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--steel);
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}

.appstric-cap-nav a:hover,
.appstric-cap-nav a.is-current {
  color: var(--ink);
  border-bottom-color: var(--signal);
}

.appstric-cap-nav__book {
  color: var(--ink) !important;
  font-weight: 600;
}

.appstric-cap {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(2.25rem, 4.5vw, 4.25rem);
  align-items: start;
  padding-block: clamp(3.5rem, 8vw, 6.5rem);
  border-top: 1px solid var(--line);
  scroll-margin-top: calc(var(--header-h) + var(--admin-bar) + 3.75rem);
}

.appstric-cap:first-child {
  border-top: 0;
}

.appstric-cap__media,
.appstric-cap__copy {
  min-width: 0;
  max-width: 100%;
}

.appstric-cap__media.wp-block-group,
.appstric-cap__copy.wp-block-group {
  display: flex;
  flex-direction: column;
  gap: var(--wp--style--block-gap, 0.85rem);
}

.appstric-cap__media figure {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: 1.15rem;
  aspect-ratio: 4 / 5;
  background: var(--ink);
}

.appstric-cap__media figure::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: var(--signal);
  z-index: 1;
}

.appstric-cap__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.03);
  transition: transform 0.9s var(--ease-out);
}

.appstric-cap:hover .appstric-cap__media img {
  transform: scale(1.08);
}

.appstric-cap__caption {
  margin: 0.75rem 0 0;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--steel);
}

.appstric-cap__kicker {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0 0 1rem;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--steel);
}

.appstric-cap__kicker .appstric-icon {
  width: 2rem;
  height: 2rem;
  background: var(--mist);
  color: var(--signal);
}

.appstric-cap__num {
  color: var(--signal);
}

.appstric-cap h2 {
  margin: 0 0 1.15rem;
  font-family: var(--font-display);
  font-size: clamp(2.15rem, 4.4vw, 3.55rem);
  font-weight: 700;
  line-height: 0.94;
  letter-spacing: -0.05em;
}

.appstric-cap__lead {
  margin: 0 0 0.9rem;
  font-size: clamp(1.1rem, 1.6vw, 1.35rem);
  line-height: 1.45;
  color: var(--ink) !important;
  max-width: 36rem;
}

.appstric-cap__copy > p {
  margin: 0;
  color: var(--steel);
  line-height: 1.65;
  max-width: 36rem;
}

.appstric-cap__points {
  list-style: none;
  margin: 1.75rem 0 0;
  padding: 0;
  border-top: 1px solid var(--line);
}

.appstric-cap__points li {
  display: grid;
  grid-template-columns: 0.55rem 1fr;
  gap: 0.9rem;
  padding: 0.95rem 0;
  border-bottom: 1px solid var(--line);
  font-size: 0.98rem;
  line-height: 1.4;
}

.appstric-cap__points li::before {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  margin-top: 0.45rem;
  background: var(--signal);
}

.appstric-cap__rail {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.35rem;
  margin-top: 1.6rem;
}

.appstric-cap__rail a:not(.appstric-btn) {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink);
}

.appstric-cap__rail a:not(.appstric-btn) em {
  font-style: normal;
  color: var(--steel);
  margin-right: 0.35rem;
}

.appstric-cap__rail a:not(.appstric-btn):hover {
  color: var(--signal);
}

.appstric-cap__rail .appstric-btn {
  margin-left: auto;
  padding: 0.6rem 1rem;
  font-size: 0.78rem;
}

@media (min-width: 900px) {
  .appstric-cap {
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    column-gap: clamp(2.75rem, 5vw, 5.5rem);
    row-gap: 1.5rem;
    align-items: center;
  }

  .appstric-cap:nth-child(even) .appstric-cap__media {
    order: 2;
  }

  .appstric-cap__media figure {
    aspect-ratio: 4 / 5;
    min-height: 32rem;
  }
}

@media (min-width: 1200px) {
  .appstric-cap {
    column-gap: 5.5rem;
  }

  .appstric-cap__media figure {
    min-height: 38rem;
  }
}

/* Ops mirror — scroll-scrubbed product stage */
.appstric-ops {
  position: relative;
  overflow: hidden;
  background: var(--ink);
  color: #fff;
  padding: clamp(4.5rem, 10vw, 8rem) 0 0;
}

.appstric-ops__glow {
  position: absolute;
  inset: 18% 10% auto;
  height: 28rem;
  background:
    radial-gradient(ellipse at 50% 40%, rgba(50, 60, 255, 0.38), transparent 62%),
    radial-gradient(ellipse at 70% 60%, rgba(255, 178, 34, 0.18), transparent 55%);
  filter: blur(28px);
  pointer-events: none;
}

.appstric-ops__inner {
  position: relative;
  z-index: 1;
  max-width: var(--wide);
  margin: 0 auto;
  padding-inline: var(--pad-x);
}

.appstric-ops__title {
  max-width: 18ch;
  margin: 0 0 clamp(2.5rem, 6vw, 4rem);
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 6.4vw, 5.4rem);
  font-weight: 800;
  line-height: 0.94;
  letter-spacing: -0.055em;
  text-wrap: balance;
}

.appstric-ops__stage {
  position: relative;
}

.appstric-ops__preview {
  position: relative;
  overflow: hidden;
  border: 1px dotted rgba(255, 255, 255, 0.22);
  border-bottom: 0;
  border-radius: 1.15rem 1.15rem 0 0;
  background: #0c0c12;
}

.appstric-ops__chrome {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: 2.75rem;
  padding: 0.55rem 0.9rem;
  text-transform: uppercase;
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  color: rgba(255, 255, 255, 0.55);
}

.appstric-ops__dots {
  display: flex;
  align-items: center;
  gap: 0.28rem;
  min-width: 5.5rem;
}

.appstric-ops__dots span {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.22);
}

.appstric-ops__badge {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.45rem;
  border-radius: 0.2rem;
  background: var(--warm);
  color: var(--ink);
  font-weight: 600;
  letter-spacing: 0.12em;
  transition: background 0.35s, color 0.35s;
}

.appstric-ops__badge.is-live {
  background: #1ecb7a;
  color: #052012;
}

.appstric-ops__nav {
  display: none;
  gap: 1.1rem;
}

.appstric-ops__nav--end {
  min-width: 5.5rem;
  justify-content: flex-end;
}

.appstric-ops__site {
  position: relative;
  min-height: 16rem;
  padding: clamp(1.5rem, 4vw, 3.25rem) clamp(1.15rem, 3vw, 2.5rem) clamp(5rem, 12vw, 9rem);
}

.appstric-ops__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.42;
  filter: saturate(0.7) contrast(1.05);
}

.appstric-ops__site::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(7, 7, 10, 0.55) 0%, rgba(7, 7, 10, 0.2) 55%, transparent 100%);
  pointer-events: none;
}

.appstric-ops__copy {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 1.25rem;
}

.appstric-ops__hit {
  border: 1px solid transparent;
  border-radius: 0.35rem;
  padding: 0.15rem 0.25rem;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.appstric-ops__hit.is-on {
  border-color: #5b8cff;
  box-shadow: 0 0 0 1px rgba(91, 140, 255, 0.35);
}

.appstric-ops__hit.is-on h3::after,
.appstric-ops__hit.is-on p::after {
  content: "";
  display: inline-block;
  width: 2px;
  height: 0.82em;
  margin-left: 0.12em;
  background: #5b8cff;
  vertical-align: -0.05em;
  animation: appstric-ops-caret 1s steps(1) infinite;
}

@keyframes appstric-ops-caret {
  50% { opacity: 0; }
}

.appstric-ops__hit h3 {
  min-height: 2.4em;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.7rem, 3.6vw, 3.1rem);
  font-weight: 800;
  line-height: 1.02;
  letter-spacing: -0.045em;
}

.appstric-ops__hit p {
  min-height: 4.2em;
  margin: 0;
  max-width: 34rem;
  color: rgba(255, 255, 255, 0.82);
  font-size: 1.02rem;
  line-height: 1.55;
}

.appstric-ops__deck {
  display: flex;
  gap: 0.65rem;
  overflow-x: auto;
  padding: 0 0 2.5rem;
  margin: -4.5rem -1.25rem 0;
  scrollbar-width: none;
}

.appstric-ops__deck::-webkit-scrollbar {
  display: none;
}

.appstric-ops__card {
  position: relative;
  flex: 0 0 82%;
  min-height: 22rem;
  padding: 0.85rem 0.9rem 2.4rem;
  border-radius: 0.85rem;
  background: #101018;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.08),
    0 18px 50px rgba(0, 0, 0, 0.35);
}

.appstric-ops__hint {
  position: absolute;
  right: 0.75rem;
  bottom: 0.55rem;
  font-family: var(--font-mono);
  font-size: 0.58rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.35);
  opacity: 0;
  transition: opacity 0.25s;
}

.appstric-ops__card:hover .appstric-ops__hint,
.appstric-ops.is-live .appstric-ops__hint {
  opacity: 1;
}

.appstric-ops__tabs {
  display: flex;
  gap: 0.9rem;
  margin-bottom: 0.65rem;
}

.appstric-ops__tabs button {
  border: 0;
  border-bottom: 1px solid transparent;
  padding: 0.35rem 0;
  background: none;
  color: rgba(255, 255, 255, 0.4);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  cursor: pointer;
}

.appstric-ops__tabs button.is-on {
  color: #fff;
  border-bottom-color: #fff;
}

.appstric-ops__code {
  margin: 0;
  overflow: auto;
  max-height: 16rem;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.86);
}

.appstric-ops__code .ops-k { color: #c792ea; }
.appstric-ops__code .ops-n { color: #82aaff; }
.appstric-ops__code .ops-s { color: #c3e88d; }
.appstric-ops__code .ops-c { color: rgba(255, 255, 255, 0.38); }

.appstric-ops__crumb {
  margin: 0 0 0.85rem;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.5);
}

.appstric-ops__field {
  position: relative;
  display: block;
  margin-bottom: 0.75rem;
}

.appstric-ops__field > span,
.appstric-ops__media > span {
  display: block;
  margin-bottom: 0.3rem;
  font-size: 0.72rem;
  color: rgba(255, 255, 255, 0.45);
}

.appstric-ops__field input,
.appstric-ops__field textarea {
  width: 100%;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0.35rem;
  padding: 0.55rem 2.1rem 0.55rem 0.65rem;
  background: transparent;
  color: #fff;
  font: inherit;
  resize: none;
}

.appstric-ops__field.is-on input,
.appstric-ops__field.is-on textarea {
  border-color: #ff5ad5;
  box-shadow: 0 0 0 1px rgba(255, 90, 213, 0.35);
}

.appstric-ops__face {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 999px;
  background: #7c5cff;
  color: #fff;
  font-family: var(--font-mono);
  font-size: 0.55rem;
  font-style: normal;
  font-weight: 600;
}

.appstric-ops__field .appstric-ops__face {
  position: absolute;
  right: 0.45rem;
  top: 1.55rem;
  opacity: 0;
  transform: scale(0.7);
  transition: opacity 0.2s, transform 0.2s;
}

.appstric-ops__field.is-on .appstric-ops__face {
  opacity: 1;
  transform: scale(1);
}

.appstric-ops__face--warm { background: var(--warm); color: var(--ink); }
.appstric-ops__face--signal { background: var(--signal); }

.appstric-ops__comment {
  display: flex;
  gap: 0.55rem;
  align-items: flex-start;
  margin: 0.35rem 0 0.85rem;
  padding: 0.55rem 0.65rem;
  border-radius: 0.45rem;
  background: rgba(255, 255, 255, 0.05);
  font-size: 0.78rem;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.78);
}

.appstric-ops__comment p {
  margin: 0;
}

.appstric-ops__media figure {
  margin: 0 0 0.85rem;
  overflow: hidden;
  border-radius: 0.4rem;
  height: 3.4rem;
}

.appstric-ops__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.appstric-ops__publish {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  border: 0;
  border-radius: 0.4rem;
  padding: 0.55rem 0.8rem;
  background: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.45);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
}

.appstric-ops__publish.is-on {
  background: var(--signal);
  color: #fff;
}

.appstric-ops__loglead {
  margin: 0 0 0.85rem;
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.45);
}

.appstric-ops__log {
  list-style: none;
  margin: 0;
  padding: 0;
}

.appstric-ops__log li {
  display: flex;
  gap: 0.65rem;
  align-items: center;
  padding: 0.45rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  opacity: 0.18;
  transform: translateY(8px);
}

.appstric-ops__log li.is-on {
  opacity: 1;
  transform: none;
  transition: opacity 0.35s var(--ease-out), transform 0.35s var(--ease-out);
}

.appstric-ops__log strong {
  display: block;
  font-size: 0.82rem;
  font-weight: 600;
}

.appstric-ops__log em {
  font-style: normal;
  font-size: 0.68rem;
  color: rgba(255, 255, 255, 0.4);
}

.appstric-ops__docs {
  list-style: none;
  margin: 0 0 0.9rem;
  padding: 0;
  font-size: 0.82rem;
}

.appstric-ops__docs li {
  display: flex;
  gap: 0.55rem;
  padding: 0.4rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.appstric-ops__docs em {
  font-style: normal;
  color: var(--warm);
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  min-width: 3.4rem;
}

@media (min-width: 768px) {
  .appstric-ops__nav {
    display: flex;
  }

  .appstric-ops__copy {
    grid-template-columns: 1.1fr 0.9fr;
    align-items: end;
    gap: 2rem;
  }

  .appstric-ops__site {
    min-height: 22rem;
  }

  .appstric-ops__deck {
    margin-left: 0;
    margin-right: 0;
  }

  .appstric-ops__card {
    flex-basis: 46%;
  }
}

@media (min-width: 1100px) {
  .appstric-ops__deck {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    overflow: visible;
    margin-top: -5.5rem;
    padding-bottom: 4rem;
  }

  .appstric-ops__card {
    flex: none;
    min-height: 24rem;
  }

  .appstric-ops__site {
    min-height: 24rem;
    padding-bottom: 8.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .appstric-ops__log li,
  .appstric-ops__hint,
  .appstric-ops__badge {
    transition: none;
  }
}

/* Ship mirror — idea → documents → code → feature; stage is the wireframe */
.appstric-ship {
  position: relative;
  overflow: hidden;
  background: var(--ink);
  color: #fff;
  padding: clamp(4.5rem, 10vw, 8rem) 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.appstric-ship__glow {
  position: absolute;
  inset: 22% 8% auto;
  height: 22rem;
  background:
    radial-gradient(ellipse at 18% 40%, rgba(50, 60, 255, 0.42), transparent 58%),
    radial-gradient(ellipse at 88% 70%, rgba(255, 178, 34, 0.16), transparent 52%);
  filter: blur(32px);
  pointer-events: none;
}

.appstric-ship__inner {
  position: relative;
  z-index: 1;
  max-width: var(--wide);
  margin: 0 auto;
  padding-inline: var(--pad-x);
}

.appstric-ship__eyebrow {
  color: var(--warm) !important;
  margin-bottom: 0.85rem;
}

.appstric-ship__title {
  max-width: 18ch;
  margin: 0 0 clamp(2.25rem, 5vw, 3.5rem);
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 5.6vw, 4.6rem);
  font-weight: 800;
  line-height: 0.96;
  letter-spacing: -0.05em;
  text-wrap: balance;
}

.appstric-ship__viewport {
  position: relative;
  overflow: hidden;
  border-radius: 1.15rem 1.15rem 0 0;
  background: #0a0a10;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
}

.appstric-ship__bar {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 3rem;
  padding: 0.65rem 1.1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.appstric-ship__dots {
  width: 2.4rem;
  height: 0.55rem;
  border-radius: 999px;
  background:
    radial-gradient(circle at 0.28rem 50%, #ff5f57 0.22rem, transparent 0.23rem),
    radial-gradient(circle at 1.05rem 50%, #febc2e 0.22rem, transparent 0.23rem),
    radial-gradient(circle at 1.82rem 50%, #28c840 0.22rem, transparent 0.23rem);
}

.appstric-ship__mark {
  color: var(--warm);
  font-weight: 600;
}

.appstric-ship__phase {
  margin-left: auto;
  padding: 0.22rem 0.5rem;
  border-radius: 999px;
  background: rgba(255, 178, 34, 0.18);
  color: var(--warm);
  font-weight: 600;
}

.appstric-ship__phase.is-live {
  background: rgba(50, 60, 255, 0.28);
  color: #c9cdff;
}

.appstric-ship__wire {
  display: grid;
  grid-template-columns: 5.5rem 1fr;
  gap: 1rem;
  min-height: clamp(22rem, 46vw, 30rem);
  padding: 1.1rem 1.1rem clamp(5.8rem, 12vw, 9rem);
}

.appstric-ship__wire-side,
.appstric-ship__wire-hero,
.appstric-ship__wire-line,
.appstric-ship__wire-cards > div,
.appstric-ship__wire-last {
  border: 1.5px dashed rgba(255, 255, 255, 0.16);
  border-radius: 0.45rem;
  background: rgba(255, 255, 255, 0.015);
  opacity: 0.22;
  transform: translateY(8px);
}

.appstric-ship__wire-side.is-on,
.appstric-ship__wire-hero.is-on,
.appstric-ship__wire-line.is-on,
.appstric-ship__wire-cards > div.is-on,
.appstric-ship__wire-last.is-on {
  opacity: 1;
  transform: none;
  border-color: rgba(255, 255, 255, 0.32);
  transition: opacity 0.35s var(--ease-out), transform 0.35s var(--ease-out), border-color 0.35s;
}

.appstric-ship__wire-side {
  display: grid;
  align-content: start;
  gap: 0.7rem;
  padding: 0.85rem 0.7rem;
}

.appstric-ship__wire-side b {
  display: block;
  height: 0.55rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
}

.appstric-ship__wire-side b:first-child { width: 70%; background: var(--signal); }
.appstric-ship__wire-side b:nth-child(2) { width: 88%; }
.appstric-ship__wire-side b:nth-child(3) { width: 54%; }
.appstric-ship__wire-side b:nth-child(4) { width: 76%; }

.appstric-ship__wire-main {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-width: 0;
}

.appstric-ship__wire-hero { height: 2.6rem; width: 72%; }
.appstric-ship__wire-line { height: 0.9rem; width: 90%; }

.appstric-ship__wire-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}

.appstric-ship__wire-cards > div { height: 5.5rem; }

.appstric-ship__wire-last {
  position: relative;
  flex: 1;
  min-height: 6.5rem;
  overflow: hidden;
}

.appstric-ship__wire-last.is-filled {
  border-style: solid;
  border-color: rgba(50, 60, 255, 0.55);
  background: #101018;
}

.appstric-ship__fill {
  display: none;
  padding: 0.85rem 1rem;
  color: #fff;
}

.appstric-ship__fill.is-on {
  display: block;
}

.appstric-ship__fill p {
  margin: 0 0 0.55rem;
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--warm);
}

.appstric-ship__fill ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.appstric-ship__fill li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.35rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 0.78rem;
}

.appstric-ship__fill em { font-style: normal; color: rgba(255, 255, 255, 0.72); }
.appstric-ship__fill span { color: #7dffb2; font-family: var(--font-mono); font-size: 0.68rem; }
.appstric-ship__fill strong {
  display: inline-flex;
  margin-top: 0.7rem;
  border-radius: 999px;
  padding: 0.4rem 0.9rem;
  background: var(--signal);
  font-size: 0.72rem;
  font-weight: 600;
}

.appstric-ship__deck {
  display: flex;
  gap: 0.65rem;
  overflow-x: auto;
  padding: 0 0 2.5rem;
  margin: -4.25rem -1.25rem 0;
  scrollbar-width: none;
}

.appstric-ship__deck::-webkit-scrollbar { display: none; }

.appstric-ship__card {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 0 0 82%;
  min-height: 20rem;
  padding: 1rem 1rem 1.2rem;
  border-radius: 0.85rem;
  background: #101018;
  opacity: 0.28;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.08),
    0 18px 50px rgba(0, 0, 0, 0.35);
  transition: opacity 0.4s var(--ease-out), transform 0.4s var(--ease-out), box-shadow 0.4s;
}

.appstric-ship__card.is-current {
  opacity: 1;
  box-shadow:
    inset 0 0 0 1px rgba(50, 60, 255, 0.5),
    0 22px 56px rgba(0, 0, 0, 0.42);
}

.appstric-ship__card--paper {
  background: #efe8d8;
  color: #1c1710;
}

.appstric-ship__card--paper .appstric-ship__crumb {
  color: rgba(28, 23, 16, 0.5);
}

.appstric-ship__crumb {
  margin: 0 0 0.9rem;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--warm);
}

.appstric-ship__hand {
  margin: 0;
  flex: 1;
  font-family: "Snell Roundhand", "Segoe Script", "Bradley Hand", "Apple Chancery", cursive;
  font-size: clamp(1.45rem, 2.4vw, 1.85rem);
  font-weight: 600;
  line-height: 1.35;
  color: #1a2744;
}

.appstric-ship__hand.is-on span::after {
  content: "";
  display: inline-block;
  width: 2px;
  height: 0.85em;
  margin-left: 0.12em;
  background: var(--signal);
  vertical-align: -0.08em;
  animation: appstric-ops-caret 1s steps(1) infinite;
}

.appstric-ship__pile {
  position: relative;
  flex: 1;
  min-height: 14.5rem;
}

.appstric-ship__pile article {
  position: absolute;
  left: 4%;
  width: 78%;
  padding: 0.95rem 1rem 1.1rem;
  border-radius: 0.4rem;
  background: #f4efe4;
  color: #16161c;
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.28);
  opacity: 0;
  transform: translateY(22px) rotate(-5deg);
}

.appstric-ship__pile article.is-on {
  opacity: 1;
  transition: opacity 0.35s var(--ease-out), transform 0.35s var(--ease-out);
}

.appstric-ship__pile article p {
  margin: 0 0 0.35rem;
  font-family: var(--font-mono);
  font-size: 0.58rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--signal);
}

.appstric-ship__pile article h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 0.98rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.2;
}

.appstric-ship__pile [data-ship-doc="0"] { top: 0; z-index: 1; }
.appstric-ship__pile [data-ship-doc="1"] { top: 1.55rem; left: 10%; z-index: 2; }
.appstric-ship__pile [data-ship-doc="2"] { top: 3.1rem; left: 16%; z-index: 3; }
.appstric-ship__pile [data-ship-doc="3"] { top: 4.65rem; left: 22%; z-index: 4; }

.appstric-ship__pile [data-ship-doc="0"].is-on { transform: rotate(-3.2deg); }
.appstric-ship__pile [data-ship-doc="1"].is-on { transform: rotate(2.4deg); }
.appstric-ship__pile [data-ship-doc="2"].is-on { transform: rotate(-1.4deg); }
.appstric-ship__pile [data-ship-doc="3"].is-on { transform: rotate(1.1deg); }

.appstric-ship__ides {
  position: relative;
  flex: 1;
  min-height: 14.5rem;
}

.appstric-ship__ide {
  position: absolute;
  inset: 0.15rem 0.1rem 0.2rem;
  overflow: hidden;
  border-radius: 0.45rem;
  background: #07070c;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
  opacity: 0;
  transform: translate(10px, 12px) scale(0.96);
  pointer-events: none;
}

.appstric-ship__ide.is-back {
  opacity: 0.4;
  transform: translate(-8px, -6px) scale(0.97);
  z-index: 1;
}

.appstric-ship__ide.is-on {
  opacity: 1;
  transform: none;
  z-index: 3;
  transition: opacity 0.22s var(--ease-out), transform 0.22s var(--ease-out);
}

.appstric-ship__ide header {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.45rem 0.65rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.06em;
}

.appstric-ship__ide header span { color: #fff; }
.appstric-ship__ide header em {
  font-style: normal;
  color: var(--warm);
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.appstric-ship__ide pre {
  margin: 0;
  padding: 0.7rem 0.7rem 0.8rem;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.88);
}

.appstric-ship__ide [data-ship-cline] {
  display: block;
  opacity: 0;
}

.appstric-ship__ide [data-ship-cline].is-on {
  opacity: 1;
  background: rgba(50, 60, 255, 0.1);
}

.appstric-ship .ops-k { color: #c792ea; }
.appstric-ship .ops-n { color: #82aaff; }
.appstric-ship .ops-s { color: #c3e88d; }

.appstric-ship__feat {
  display: flex;
  flex-direction: column;
  flex: 1;
  border-radius: 0.55rem;
  padding: 0.85rem 0.9rem 0.95rem;
  background: #14141c;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.appstric-ship__feat header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.65rem;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.appstric-ship__feat header span { color: var(--warm); }

.appstric-ship__feat header em {
  font-style: normal;
  padding: 0.18rem 0.45rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.45);
}

.appstric-ship__feat header em.is-on {
  background: rgba(50, 60, 255, 0.28);
  color: #c9cdff;
}

.appstric-ship__feat ul {
  list-style: none;
  margin: 0 0 0.9rem;
  padding: 0;
}

.appstric-ship__feat li {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.55rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 0.88rem;
  opacity: 0.18;
}

.appstric-ship__feat li.is-on {
  opacity: 1;
  transition: opacity 0.3s var(--ease-out);
}

.appstric-ship__feat em { font-style: normal; }
.appstric-ship__feat span {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  color: #7dffb2;
}

.appstric-ship__go {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: auto;
  border: 0;
  border-radius: 999px;
  padding: 0.6rem 0.9rem;
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.4);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
}

.appstric-ship__go.is-on {
  background: var(--signal);
  color: #fff;
}

@media (min-width: 768px) {
  .appstric-ship__deck {
    margin-left: 0;
    margin-right: 0;
  }

  .appstric-ship__card {
    flex-basis: 46%;
  }

  .appstric-ship__wire {
    grid-template-columns: 6.5rem 1fr;
    padding-inline: 1.35rem;
  }
}

@media (min-width: 1100px) {
  .appstric-ship__deck {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    overflow: visible;
    margin-top: -5.25rem;
    padding-bottom: 4rem;
  }

  .appstric-ship__card {
    flex: none;
    min-height: 23.5rem;
  }

  .appstric-ship__card.is-current {
    transform: translateY(-10px);
  }

  .appstric-ship__wire {
    min-height: 30rem;
  }
}

/* Homepage stack strip + /tech editorial grid */
.appstric-section--ink .appstric-intro .eyebrow {
  color: rgba(255, 255, 255, 0.5);
}

.appstric-section--ink .appstric-intro h2,
.appstric-section--ink .appstric-intro .display-lg {
  color: #fff;
}

.appstric-section--ink .appstric-intro p:not(.eyebrow) {
  color: rgba(255, 255, 255, 0.65);
}

.appstric-section--ink .appstric-intro a {
  color: #fff;
}

.appstric-section--ink .appstric-intro a:hover {
  color: var(--warm);
}

.appstric-stack {
  overflow: hidden;
}

.appstric-stack .appstric-intro > :last-child {
  display: grid;
  gap: 1.15rem;
}

.appstric-stack__board {
  flex-direction: column;
  gap: 0.85rem;
  min-width: 0;
  margin-inline: calc(-1 * var(--pad-x));
  padding-inline: 0;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.appstric-stack__lane {
  overflow: hidden;
}

.appstric-stack__lane-inner {
  flex-wrap: nowrap !important;
  align-items: center;
  gap: 0.75rem !important;
  width: max-content;
  padding-inline: var(--pad-x);
  animation: appstric-stack-marquee 42s linear infinite;
}

.appstric-stack__lane--rev .appstric-stack__lane-inner {
  animation-duration: 54s;
  animation-direction: reverse;
}

@media (hover: hover) and (pointer: fine) {
  .appstric-stack__board:hover .appstric-stack__lane-inner {
    animation-play-state: paused;
  }
}

.appstric-stack__chip.wp-block-group {
  flex: 0 0 auto;
  width: max-content !important;
  padding: 0.7rem 1.15rem !important;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.03);
  opacity: 0.42;
  transition: opacity 0.35s var(--ease-out), border-color 0.35s var(--ease-out), background 0.35s var(--ease-out);
}

.appstric-stack__chip:hover {
  opacity: 1;
  border-color: rgba(255, 255, 255, 0.45);
  background: rgba(255, 255, 255, 0.08);
}

.appstric-stack__chip p {
  margin: 0;
  color: #fff;
  font-family: var(--font-mono);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1;
  white-space: nowrap;
}

@keyframes appstric-stack-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

.appstric-tools + .appstric-tools {
  padding-top: 0 !important;
}

.appstric-tools__head {
  margin-bottom: 2.25rem;
  max-width: 38rem;
}

.appstric-tools__head .display-lg {
  font-size: clamp(1.85rem, 4.2vw, 3.35rem);
  margin: 0.45rem 0 0;
}

.appstric-tools__grid {
  display: grid;
  gap: 1px;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--line);
}

.appstric-tool.wp-block-group {
  flex-direction: column;
  gap: 0;
  min-height: 13.5rem;
  min-width: 0;
  padding: 1.85rem 1.7rem 2rem !important;
  background: var(--canvas);
  transition: background 0.4s var(--ease-out), opacity 0.5s var(--ease-out);
}

html.js-motion .appstric-tool {
  opacity: 0.4;
}

html.js-motion .appstric-tool.is-on,
html.js-motion .appstric-tool:hover {
  opacity: 1;
}

.appstric-tool:hover {
  background: var(--mist);
}

.appstric-tool h3 {
  margin: 0;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--line);
  font-family: var(--font-mono);
  font-size: clamp(1.2rem, 2.3vw, 1.8rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.15;
}

.appstric-tool p {
  margin: 1.15rem 0 0;
  max-width: 34rem;
  color: var(--steel);
  line-height: 1.65;
}

.appstric-tool__go {
  margin-top: auto;
  padding-top: 1.25rem;
}

.appstric-tool__go a {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--signal);
}

.appstric-tool__go a:hover {
  color: var(--ink);
}

@media (min-width: 768px) {
  .appstric-tools__grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 767px) {
  .appstric-hero--page h1,
  .appstric-hero--page .wp-block-heading,
  .appstric-hero--page .wp-block-post-title {
    font-size: clamp(1.85rem, 9vw, 2.6rem);
  }

  .appstric-hero__actions {
    width: 100%;
  }

  .appstric-hero__actions .appstric-btn,
  .appstric-hero__actions .wp-block-button.appstric-btn,
  .appstric-hero__actions .wp-block-button.appstric-btn > .wp-block-button__link {
    justify-content: center;
    width: auto;
  }

  .appstric-stack__lane-inner {
    animation-duration: 28s;
    gap: 0.5rem !important;
  }

  .appstric-stack__lane--rev .appstric-stack__lane-inner {
    animation-duration: 34s;
  }

  .appstric-stack__chip.wp-block-group {
    padding: 0.55rem 0.9rem !important;
  }

  .appstric-stack__chip p {
    font-size: 0.7rem;
  }

  .appstric-tool.wp-block-group {
    min-height: 0;
    padding: 1.35rem 1.2rem 1.5rem !important;
  }

  .appstric-split.wp-block-group {
    gap: 1.5rem;
  }

  .appstric-footer h2 {
    font-size: clamp(2rem, 11vw, 2.8rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .appstric-stack__lane-inner,
  .appstric-stack__board:hover .appstric-stack__lane-inner {
    animation: none;
  }

  html.js-motion .appstric-tool {
    opacity: 1;
  }
}

/* Gutenberg core-block chrome — keep studio look on buttons, lists, and named groups. */
a.appstric-btn,
.wp-block-button.appstric-btn > .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 999px;
  padding: 0.7rem 1.15rem;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1;
  border: 0;
  cursor: pointer;
  text-decoration: none;
  box-shadow: none;
}

.wp-block-buttons.appstric-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 0;
}

.wp-block-buttons.appstric-hero__actions > .wp-block-button {
  margin: 0;
}

.wp-block-button.appstric-btn {
  margin: 0;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.wp-block-button.appstric-btn::before,
.wp-block-button.appstric-btn::after {
  content: none !important;
  display: none !important;
}

.wp-block-button.appstric-btn--warm > .wp-block-button__link {
  background: var(--warm) !important;
  color: var(--ink) !important;
  border: 0 !important;
}

.wp-block-button.appstric-btn--ink > .wp-block-button__link {
  background: var(--ink) !important;
  color: #fff !important;
  border: 0 !important;
}

.wp-block-button.appstric-btn--ink > .wp-block-button__link:hover {
  background: var(--signal) !important;
}

.wp-block-button.appstric-btn--line > .wp-block-button__link {
  background: transparent !important;
  color: var(--ink) !important;
  border: 1px solid var(--line) !important;
}

.wp-block-button.appstric-btn--ghost > .wp-block-button__link {
  background: transparent !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.45) !important;
  box-shadow: none !important;
  outline: none !important;
}

.wp-block-button.appstric-btn--ghost > .wp-block-button__link:hover,
.wp-block-button.appstric-btn--ghost > .wp-block-button__link:focus {
  background: #fff !important;
  color: var(--ink) !important;
  border-color: #fff !important;
  box-shadow: none !important;
}

.wp-block-button.appstric-btn--ghost-ink > .wp-block-button__link {
  background: transparent !important;
  color: var(--ink) !important;
  border: 1px solid rgba(7, 7, 10, 0.2) !important;
}

.wp-block-button.appstric-btn--ghost-ink > .wp-block-button__link:hover {
  background: var(--ink) !important;
  color: #fff !important;
}

.wp-block-button.appstric-btn--signal > .wp-block-button__link {
  background: var(--signal) !important;
  color: #fff !important;
  border: 0 !important;
}

.appstric-card.wp-block-group,
.is-style-appstric-card.wp-block-group {
  padding: 1.75rem;
}

.appstric-card--media.wp-block-group {
  padding: 0;
}

.appstric-card--outline.wp-block-group,
.is-style-appstric-card-outline.wp-block-group {
  padding: 1.75rem;
}

.appstric-prep.wp-block-group {
  margin-top: 2rem !important;
}

.appstric-prep__item.wp-block-group {
  display: grid !important;
  grid-template-columns: 3rem 1fr;
  gap: 1rem;
  align-items: start;
  padding: 1rem 0 !important;
}

.appstric-include__item.wp-block-group {
  display: grid !important;
  padding: 1.6rem 0 !important;
}

.appstric-method__step.wp-block-group,
.appstric-method article.wp-block-group {
  padding: 1.5rem 0 !important;
}

.appstric-method.wp-block-group {
  margin-top: 3rem !important;
}

.appstric-method-track.wp-block-group {
  margin-top: 4rem !important;
}

.appstric-method__head.wp-block-group {
  align-items: center;
  gap: 0.75rem !important;
  margin-bottom: 1.25rem !important;
}

.appstric-mosaic.wp-block-group {
  margin-top: 3rem !important;
}

.appstric-related.wp-block-group {
  margin-top: 2rem !important;
}

.appstric-lede + .appstric-cards,
.appstric-section__title + .appstric-cards {
  margin-top: 2.5rem !important;
}

.appstric-cap__kicker.wp-block-group {
  align-items: center;
  gap: 0.65rem !important;
  margin: 0 0 1rem !important;
}

.appstric-cap__kicker p {
  margin: 0;
}

.appstric-toc.wp-block-group {
  position: sticky;
  top: calc(var(--header-h) + var(--admin-bar) + 1.5rem);
}

.appstric-toc ol,
ol.wp-block-list.appstric-toc__list {
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
}

@media (min-width: 1024px) {
  .appstric-method article.wp-block-group,
  .appstric-method__step.wp-block-group {
    border-top: 0;
    border-left: 1px solid var(--line);
    padding: 0 1.1rem !important;
  }

  .appstric-method article.wp-block-group:first-child,
  .appstric-method__step.wp-block-group:first-child {
    border-left: 0;
    padding-left: 0 !important;
  }
}

/* -------------------------------------------------------------------------
   Work archive — editorial portfolio (Antum-inspired rhythm, Appstric identity)
   ------------------------------------------------------------------------- */

.appstric-work-intro {
  padding-block: clamp(4.5rem, 10vw, 8rem) clamp(4rem, 9vw, 7.5rem);
  background: var(--canvas);
  color: var(--ink);
}

.appstric-work-intro__grid.wp-block-group,
.appstric-work-intro .appstric-work-intro__grid {
  display: grid;
  gap: 1.75rem 3rem;
  align-items: end;
}

.appstric-work-intro__eyebrow {
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--steel);
  margin: 0 0 1rem;
}

.appstric-work-intro__title,
.appstric-work-intro h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(3.25rem, 9vw, 6.5rem);
  font-weight: 550;
  letter-spacing: -0.055em;
  line-height: 0.92;
  max-width: 11ch;
}

.appstric-work-intro__aside {
  max-width: 26rem;
}

.appstric-work-intro__body,
.appstric-work-intro__aside p {
  margin: 0;
  color: var(--steel);
  font-size: 1.05rem;
  line-height: 1.65;
}

.appstric-work-intro__actions {
  margin-top: 1.5rem;
}

@media (min-width: 900px) {
  .appstric-work-intro__grid.wp-block-group,
  .appstric-work-intro .appstric-work-intro__grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.85fr);
  }

  .appstric-work-intro__aside {
    justify-self: end;
    padding-bottom: 0.35rem;
  }
}

.appstric-index--editorial .appstric-index__filters--editorial {
  padding-block: 0 3.5rem;
  border: 0;
}

.appstric-index--editorial .appstric-filter-nav {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.25rem 1.75rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 0.25rem;
}

.appstric-index--editorial .appstric-filter-nav::-webkit-scrollbar {
  display: none;
}

.appstric-index--editorial .appstric-filter {
  flex: 0 0 auto;
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0.35rem 0 0.55rem;
  margin: 0;
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--steel);
  cursor: pointer;
  position: relative;
  border-radius: 0;
  box-shadow: none;
  text-transform: none;
}

.appstric-index--editorial .appstric-filter:hover,
.appstric-index--editorial .appstric-filter:focus-visible {
  color: var(--ink);
  outline: none;
}

.appstric-index--editorial .appstric-filter.is-active {
  color: var(--ink);
  background: transparent;
}

.appstric-index--editorial .appstric-filter.is-active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1.5px;
  background: var(--ink);
}

.appstric-index--editorial .appstric-index__list--editorial {
  padding-block: 0 2rem;
}

.appstric-work-archive {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  column-gap: clamp(1.5rem, 3vw, 3.25rem);
  row-gap: clamp(4rem, 10vw, 8rem);
  align-items: start;
}

.appstric-work-archive--solo {
  display: grid;
  grid-template-columns: 1fr;
}

.appstric-work-item {
  margin: 0;
  border: 0;
  min-width: 0;
}

.appstric-work-item[hidden] {
  display: none !important;
}

.appstric-work-item__link {
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
  color: inherit;
  text-decoration: none;
}

.appstric-work-item__link:focus-visible {
  outline: 2px solid var(--signal);
  outline-offset: 4px;
}

.appstric-work-item__media {
  display: block;
  width: 100%;
  overflow: hidden;
  background: var(--mist);
  aspect-ratio: 16 / 10;
}

.appstric-work-item--standard .appstric-work-item__media {
  aspect-ratio: 4 / 3;
}

.appstric-work-item--portrait .appstric-work-item__media {
  aspect-ratio: 4 / 5;
}

.appstric-work-item--compact .appstric-work-item__media {
  aspect-ratio: 1 / 1;
}

.appstric-work-item--full .appstric-work-item__media {
  aspect-ratio: 16 / 8;
}

.appstric-work-item--featured-wide .appstric-work-item__media,
.appstric-work-item--wide .appstric-work-item__media {
  aspect-ratio: 16 / 10;
}

.appstric-work-item__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
  transition: transform 400ms var(--ease-out);
}

.appstric-work-item__link:hover .appstric-work-item__img,
.appstric-work-item__link:focus-visible .appstric-work-item__img {
  transform: scale(1.025);
}

.appstric-work-item__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.45rem;
  max-width: 38rem;
}

.appstric-work-item__index {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  color: var(--steel);
}

.appstric-work-item__client {
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  font-weight: 550;
  letter-spacing: -0.03em;
  line-height: 1.15;
}

.appstric-work-item__title {
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 1.8vw, 1.45rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.25;
  color: var(--ink);
}

.appstric-work-item__summary {
  margin-top: 0.35rem;
  color: var(--steel);
  font-size: 0.95rem;
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.appstric-work-item__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.65rem;
}

.appstric-work-item__tag {
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--steel);
  border: 1px solid var(--line);
  padding: 0.28rem 0.55rem;
}

.appstric-work-item__view {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.85rem;
  font-size: 0.9rem;
  font-weight: 600;
}

.appstric-work-item__view .btn-arrow {
  display: inline-block;
  transition: transform 350ms var(--ease-out);
}

.appstric-work-item__link:hover .appstric-work-item__view .btn-arrow,
.appstric-work-item__link:focus-visible .appstric-work-item__view .btn-arrow {
  transform: translateX(4px);
}

.appstric-index__cta--editorial {
  padding-block: clamp(3rem, 8vw, 6rem) clamp(4rem, 10vw, 8rem);
}

.appstric-work-next {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 0.75rem;
  min-height: clamp(16rem, 32vw, 22rem);
  padding: clamp(1.75rem, 4vw, 3rem);
  background: var(--ink);
  color: #fff;
  text-decoration: none;
}

.appstric-work-next__eyebrow {
  color: var(--warm) !important;
  margin: 0;
}

.appstric-work-next__title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4.5vw, 3.25rem);
  font-weight: 550;
  letter-spacing: -0.045em;
  line-height: 1.05;
  max-width: 12ch;
}

.appstric-work-next__action {
  margin-top: auto;
  font-size: 0.95rem;
  font-weight: 600;
}

.appstric-work-next:hover .appstric-work-next__action,
.appstric-work-next:focus-visible .appstric-work-next__action {
  color: var(--warm);
}

.appstric-work-next:focus-visible {
  outline: 2px solid var(--signal);
  outline-offset: 4px;
}

@media (min-width: 768px) {
  .appstric-work-archive {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    row-gap: clamp(5rem, 9vw, 7.5rem);
  }

  .appstric-work-item--featured-wide,
  .appstric-work-item--wide {
    grid-column: span 4;
  }

  .appstric-work-item--portrait,
  .appstric-work-item--standard,
  .appstric-work-item--compact {
    grid-column: span 2;
  }

  .appstric-work-item--full {
    grid-column: 1 / -1;
  }

  .appstric-work-item:nth-child(4n + 2) {
    margin-top: 3.5rem;
  }

  .appstric-work-archive--solo {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .appstric-work-archive--solo .appstric-work-next {
    grid-column: span 4;
  }
}

@media (min-width: 1100px) {
  .appstric-work-archive {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: clamp(2rem, 3.5vw, 3.5rem);
    row-gap: clamp(6rem, 11vw, 9.5rem);
  }

  .appstric-work-item--featured-wide {
    grid-column: span 7;
  }

  .appstric-work-item--portrait {
    grid-column: span 5;
  }

  .appstric-work-item--standard {
    grid-column: span 5;
  }

  .appstric-work-item--wide {
    grid-column: span 8;
  }

  .appstric-work-item--compact {
    grid-column: span 4;
  }

  .appstric-work-item--full {
    grid-column: 1 / -1;
  }

  .appstric-work-item:nth-child(4n + 2) {
    margin-top: 5.5rem;
  }

  .appstric-work-item:nth-child(4n + 3) {
    margin-top: 2rem;
  }

  .appstric-work-archive--solo {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }

  .appstric-work-archive--solo .appstric-work-next {
    grid-column: span 7;
  }
}

@media (prefers-reduced-motion: reduce) {
  .appstric-work-item__img,
  .appstric-work-item__view .btn-arrow {
    transition: none;
  }

  .appstric-work-item__link:hover .appstric-work-item__img,
  .appstric-work-item__link:focus-visible .appstric-work-item__img {
    transform: none;
  }
}

/* -------------------------------------------------------------------------
   Global structural background grid
   Fixed attachment keeps vertical axes continuous; painted under imagery.
   ------------------------------------------------------------------------- */

.appstric-grid-surface,
.appstric-section--mist,
.is-style-appstric-section-mist,
.appstric-footer,
.appstric-section--ink,
.is-style-appstric-section-ink,
.appstric-work-next {
  background-image: var(--appstric-grid-layers);
  background-size: var(--appstric-grid-sizes);
  background-position: var(--appstric-grid-positions);
  background-repeat: no-repeat;
  background-attachment: fixed;
}

.appstric-section--mist,
.is-style-appstric-section-mist {
  background-color: var(--mist);
}

.appstric-hero,
.appstric-footer,
.appstric-section--ink,
.is-style-appstric-section-ink,
.appstric-work-next {
  --appstric-grid-stroke-current: var(--appstric-grid-stroke-on-dark);
}

/*
 * Home / page heroes: keep the cinematic canvas clean.
 * Do not paint fixed grid layers onto hero::before — attachment:fixed on this
 * overlay fights WebGL canvas + header stacking.
 */
.appstric-hero::before {
  background: rgba(7, 7, 10, 0.25);
  background-image: none;
}

/* Scrolled header stays frosted glass — grid continues on the page behind it */
.appstric-header.is-scrolled,
.appstric-header:has(.appstric-panel.is-open),
.appstric-header:has(.wp-block-navigation__responsive-container.is-menu-open),
.appstric-header:has(.appstric-search:not([hidden])) {
  background: rgba(255, 255, 255, 0.94);
  background-image: none;
  color: var(--ink);
  border-bottom-color: var(--line);
  backdrop-filter: blur(16px);
}

/* Horizontal structural rules — section rhythm only, not a dense lattice */
.appstric-section + .appstric-section,
.appstric-section + .appstric-index,
.appstric-hero + .appstric-section,
.appstric-hero + .appstric-index,
.appstric-index + .appstric-section {
  border-top: var(--appstric-grid-width) solid var(--appstric-grid-stroke);
}

.appstric-section--ink + .appstric-section,
.appstric-section + .appstric-section--ink,
.is-style-appstric-section-ink + .appstric-section {
  border-top-color: var(--appstric-grid-stroke-on-dark);
}

.appstric-footer {
  border-top-color: rgba(255, 255, 255, 0.1);
  background-image: var(--appstric-grid-layers);
  background-size: var(--appstric-grid-sizes);
  background-position: var(--appstric-grid-positions);
  background-repeat: no-repeat;
  background-attachment: fixed;
}

.appstric-section--ink,
.is-style-appstric-section-ink,
.appstric-work-next {
  background-image: var(--appstric-grid-layers);
  background-size: var(--appstric-grid-sizes);
  background-position: var(--appstric-grid-positions);
  background-repeat: no-repeat;
  background-attachment: fixed;
}

/* Media sits above the painted grid within the same stacking context.
 * Do NOT include .appstric-hero__canvas — it must stay position:absolute; inset:0
 * to fill the cinematic hero. Relative positioning collapses it to a header strip. */
.appstric-work-item__media,
.appstric-case__media,
.appstric-work-card,
.appstric-project-card,
.appstric-mosaic .wp-block-image,
.appstric-next-cta img {
  position: relative;
  z-index: 1;
}

.appstric-hero__canvas {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  display: block;
  pointer-events: none;
}

/* Header always above hero field + grid */
.appstric-header {
  z-index: 1000;
}

.appstric-hero__inner {
  position: relative;
  z-index: 2;
}

@media (max-width: 1279px) {
  :root {
    --appstric-grid-layers:
      linear-gradient(
        to right,
        var(--appstric-grid-stroke-current),
        var(--appstric-grid-stroke-current)
      ),
      linear-gradient(
        to right,
        var(--appstric-grid-stroke-current),
        var(--appstric-grid-stroke-current)
      ),
      linear-gradient(
        to right,
        var(--appstric-grid-stroke-current),
        var(--appstric-grid-stroke-current)
      ),
      linear-gradient(
        to right,
        var(--appstric-grid-stroke-current),
        var(--appstric-grid-stroke-current)
      );
    --appstric-grid-sizes:
      var(--appstric-grid-width) 100%,
      var(--appstric-grid-width) 100%,
      var(--appstric-grid-width) 100%,
      var(--appstric-grid-width) 100%;
    --appstric-grid-positions:
      var(--appstric-grid-x1) 0,
      var(--appstric-grid-x2) 0,
      var(--appstric-grid-x4) 0,
      var(--appstric-grid-x5) 0;
  }
}

@media (max-width: 767px) {
  :root {
    --appstric-grid-layers:
      linear-gradient(
        to right,
        var(--appstric-grid-stroke-current),
        var(--appstric-grid-stroke-current)
      ),
      linear-gradient(
        to right,
        var(--appstric-grid-stroke-current),
        var(--appstric-grid-stroke-current)
      ),
      linear-gradient(
        to right,
        var(--appstric-grid-stroke-current),
        var(--appstric-grid-stroke-current)
      );
    --appstric-grid-sizes:
      var(--appstric-grid-width) 100%,
      var(--appstric-grid-width) 100%,
      var(--appstric-grid-width) 100%;
    --appstric-grid-positions:
      var(--appstric-grid-x1) 0,
      var(--appstric-grid-x3) 0,
      var(--appstric-grid-x5) 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  body,
  .appstric-grid-surface,
  .appstric-section--mist,
  .appstric-footer,
  .appstric-section--ink,
  .appstric-work-next {
    background-attachment: scroll;
  }
}

/* ==========================================================================
   Phase 1 fixes (2026-10-06). Remove this whole block to revert.
   ========================================================================== */

/* 1. Grid cards: WordPress flow-layout gap leaked into the grid and pushed
      every card after the first down by 20px. */
.appstric-cards.appstric-cards > *,
.appstric-include__item.appstric-include__item > * {
  margin-block-start: 0;
}

/* 2. Capabilities rail hint sat on top of the middle card on desktop.
      Park it under the rail, aligned right. */
@media (min-width: 900px) {
  .appstric-caps-rail__hint {
    top: auto;
    bottom: -2.75rem;
    left: auto;
    right: var(--pad-x);
    transform: none;
  }
}

/* 3. Project cards: stronger scrim so the title and summary stay readable
      over any cover image or screenshot. */
.appstric-project-card__media::after {
  background: linear-gradient(
    to top,
    rgba(7, 7, 10, 0.96) 0%,
    rgba(7, 7, 10, 0.88) 38%,
    rgba(7, 7, 10, 0.45) 68%,
    rgba(7, 7, 10, 0.1) 100%
  );
}

/* ==========================================================================
   Phase 2 (2026-10-06). Remove this whole block to revert.
   ========================================================================== */

/* --- 1. Hero: breathing room under the CTA bar -------------------------- */
.appstric-hero__inner.appstric-hero__inner {
  padding-bottom: clamp(3rem, 9vh, 6rem);
}

/* --- 2. Section intros: "All …" links sit on the right ------------------- */
@media (min-width: 782px) {
  .appstric-intro.wp-block-group:has(> p:last-child > a:only-child) {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    column-gap: 2rem;
  }

  .appstric-intro:has(> p:last-child > a:only-child) > p:last-child {
    margin-left: auto;
    padding-bottom: 0.6rem;
    white-space: nowrap;
  }
}

/* --- 3. Selected work: bento grid ---------------------------------------- */
.appstric-work-grid.wp-block-group.is-layout-grid.is-layout-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-auto-rows: auto;
  gap: var(--wp--preset--spacing--50, 1.25rem);
}

.appstric-work-grid > .appstric-project-card {
  min-height: 26rem;
}

.appstric-bento-tile.wp-block-group {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1.5rem;
  min-height: 15rem;
  margin: 0;
  padding: clamp(1.5rem, 2.5vw, 2.25rem);
  overflow: hidden;
  border-radius: var(--radius);
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
  color: #fff;
}

.appstric-bento-tile > * {
  margin: 0;
}

.appstric-bento-tile .eyebrow {
  color: rgba(255, 255, 255, 0.5);
}

.appstric-bento-tile__figure.wp-block-heading {
  font-family: var(--font-display);
  font-size: clamp(4rem, 8vw, 7.5rem);
  font-weight: 700;
  line-height: 0.85;
  letter-spacing: -0.04em;
  color: #fff;
}

.appstric-bento-tile__figure .appstric-period {
  color: var(--warm);
}

.appstric-bento-tile p:not(.eyebrow) {
  max-width: 26rem;
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.55;
}

.appstric-bento-tile--cta.wp-block-group {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-end;
  background: var(--signal);
  border-color: transparent;
}

.appstric-bento-tile--cta .wp-block-heading {
  max-width: 34rem;
  font-size: clamp(1.75rem, 3.4vw, 3rem);
  line-height: 1.02;
  letter-spacing: -0.03em;
  color: #fff;
}

.appstric-bento-tile--cta p:not(.eyebrow) {
  color: rgba(255, 255, 255, 0.8);
}

.appstric-bento-tile--cta .eyebrow {
  color: rgba(255, 255, 255, 0.7);
}

.appstric-bento-tile--cta .wp-block-buttons {
  margin-left: auto;
}

@media (min-width: 640px) {
  .appstric-work-grid.wp-block-group.is-layout-grid.is-layout-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .appstric-work-grid > .appstric-project-card--large,
  .appstric-work-grid > .appstric-bento-tile--cta {
    grid-column: 1 / -1;
  }
}

@media (min-width: 1024px) {
  .appstric-work-grid.wp-block-group.is-layout-grid.is-layout-grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-auto-rows: minmax(17.5rem, auto);
    grid-auto-flow: row dense;
  }

  .appstric-work-grid.wp-block-group.is-layout-grid.is-layout-grid > * {
    grid-column: span 5;
    grid-row: span 1;
    min-height: 0;
  }

  .appstric-work-grid.wp-block-group.is-layout-grid.is-layout-grid > .appstric-project-card--large {
    grid-column: span 7;
    grid-row: span 2;
  }

  .appstric-work-grid.wp-block-group.is-layout-grid.is-layout-grid > .appstric-bento-tile--cta {
    grid-column: 1 / -1;
  }

  .appstric-work-grid > .appstric-project-card .appstric-project-card__body {
    min-height: 100%;
    height: 100%;
  }
}

/* --- 4. Services rail: right bleed, focus card, bigger icons ------------- */
.appstric-caps-rail.appstric-caps-rail {
  padding-right: 0;
}

.appstric-caps-rail .appstric-caps-rail__track {
  padding-block: 1.25rem 1.75rem;
  margin-block: -1.25rem -1.75rem;
  gap: clamp(1.25rem, 2.2vw, 2.25rem);
}

.appstric-caps-rail .appstric-card,
.appstric-caps-rail .appstric-card.wp-block-group {
  transform-origin: left center;
  transition:
    transform 0.7s var(--ease-out),
    box-shadow 0.7s var(--ease-out);
  will-change: transform;
}

.appstric-caps-rail .appstric-card.is-focus {
  transform: scale(1.06);
  box-shadow: 0 24px 60px -28px rgba(7, 7, 10, 0.35);
  z-index: 1;
}

.appstric-caps-rail .appstric-card[aria-hidden="true"] a {
  pointer-events: none;
}

.appstric-caps-rail .appstric-icon.appstric-icon {
  width: 4.25rem;
  height: 4.25rem;
}

.appstric-caps-rail .appstric-icon svg {
  width: 2.6rem;
  height: 2.6rem;
}

@media (prefers-reduced-motion: reduce) {
  .appstric-caps-rail .appstric-card.is-focus {
    transform: none;
  }
}

/* --- 5. Technology marquee: larger chips, brand icons on hover ----------- */
.appstric-stack__chip.wp-block-group {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  transition:
    border-color 0.3s,
    background-color 0.3s,
    color 0.3s;
}

.appstric-stack__chip p {
  font-size: clamp(1.05rem, 1.4vw, 1.35rem);
  transition: color 0.3s;
}

.appstric-stack__chip[class*="tech-"]::before {
  content: "";
  flex: 0 0 auto;
  width: 1.5em;
  height: 1.5em;
  font-size: clamp(1.05rem, 1.4vw, 1.35rem);
  background-color: rgba(255, 255, 255, 0.55);
  -webkit-mask: var(--tech-icon) center / contain no-repeat;
  mask: var(--tech-icon) center / contain no-repeat;
  transition: background-color 0.3s;
}

.appstric-stack__lane:hover .appstric-stack__lane-inner,
.appstric-stack__lane:focus-within .appstric-stack__lane-inner {
  animation-play-state: paused;
}

.appstric-stack__chip[class*="tech-"]:hover {
  border-color: var(--tech-brand);
  background-color: color-mix(in srgb, var(--tech-brand) 14%, transparent);
}

.appstric-stack__chip[class*="tech-"]:hover::before {
  background-color: var(--tech-brand);
}

.appstric-stack__chip[class*="tech-"]:hover p {
  color: #fff;
}

/* --- 6. Insights: 2 x 2 on tablet, two cards on mobile ------------------- */
@media (min-width: 600px) and (max-width: 1023px) {
  .appstric-insights.wp-block-group {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .appstric-insights > :nth-child(n + 5) {
    display: none;
  }
}

@media (max-width: 599px) {
  .appstric-insights > :nth-child(n + 3) {
    display: none;
  }
}

/* --- 7. Brief form: send button on the right ----------------------------- */
.appstric-ff .ff_submit_btn_wrapper::after {
  content: none;
  display: none;
}

.appstric-ff .ff_submit_btn_wrapper .ff-btn-submit {
  margin-left: auto;
}

/* --- 8. Tablet / mobile menu: anchor the panel to the full-width header -- */
@media (max-width: 1023px) {
  .appstric-header .wp-block-navigation.appstric-nav {
    position: static;
  }

  .appstric-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
  .appstric-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
  .appstric-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    align-items: flex-start;
    text-align: left;
  }
}

/* --- 9. Trust bar (placeholder client logos) ----------------------------- */
.appstric-trust.wp-block-group {
  padding-block: clamp(2.5rem, 5vw, 3.5rem);
  border-bottom: 1px solid var(--line);
}

.appstric-trust__inner.wp-block-group {
  display: grid;
  gap: 1.75rem;
  align-items: center;
}

.appstric-trust .eyebrow {
  margin: 0;
}

.appstric-logos.wp-block-group {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.appstric-logo-slot.wp-block-group {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 4.5rem;
  margin: 0;
  padding: 0.75rem 1rem;
  border: 1px dashed var(--line);
  border-radius: calc(var(--radius) * 0.6);
  color: var(--steel);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.appstric-logo-slot > * {
  margin: 0;
}

.appstric-logo-slot img {
  max-height: 2.25rem;
  width: auto;
  filter: grayscale(1);
  opacity: 0.7;
  transition: filter 0.3s, opacity 0.3s;
}

.appstric-logo-slot:hover img {
  filter: none;
  opacity: 1;
}

.appstric-logo-slot:has(img) {
  border-style: solid;
  border-color: transparent;
}

@media (min-width: 782px) {
  .appstric-trust__inner.wp-block-group {
    grid-template-columns: minmax(12rem, 1fr) 4fr;
    gap: 3rem;
  }

  .appstric-logos.wp-block-group {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}

/* --- 10. Testimonials (placeholder) -------------------------------------- */
.appstric-quotes.wp-block-group {
  display: grid;
  gap: var(--wp--preset--spacing--50, 1.25rem);
}

.appstric-quote.wp-block-group {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 2.5rem;
  margin: 0;
  padding: clamp(1.75rem, 3vw, 2.75rem);
  border-radius: var(--radius);
  background: #fff;
  border: 1px solid var(--line);
}

.appstric-quote > * {
  margin: 0;
}

.appstric-quote__text {
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.1vw, 1.85rem);
  line-height: 1.25;
  letter-spacing: -0.015em;
  color: var(--ink);
}

.appstric-quote__text::before {
  content: "\201C";
  display: block;
  margin-bottom: 0.75rem;
  font-size: 3.5rem;
  line-height: 0.6;
  color: var(--signal);
}

.appstric-quote__who.wp-block-group {
  display: flex;
  align-items: center;
  gap: 0.9rem;
}

.appstric-quote__who > * {
  margin: 0;
}

.appstric-quote__avatar {
  flex: 0 0 auto;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 999px;
  background: var(--mist);
}

.appstric-quote__name {
  font-weight: 600;
  color: var(--ink);
}

.appstric-quote__role {
  color: var(--steel);
  font-size: 0.9rem;
}

@media (min-width: 900px) {
  .appstric-quotes.wp-block-group {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Tech stack icons: Simple Icons (CC0), https://simpleicons.org */
.appstric-stack__chip.tech-nextjs { --tech-icon: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M18.665 21.978C16.758 23.255 14.465 24 12 24 5.377 24 0 18.623 0 12S5.377 0 12 0s12 5.377 12 12c0 3.583-1.574 6.801-4.067 9.001L9.219 7.2H7.2v9.596h1.615V9.251l9.85 12.727Zm-3.332-8.533 1.6 2.061V7.2h-1.6v6.245Z%22/%3E%3C/svg%3E"); --tech-brand: #FFFFFF; }
.appstric-stack__chip.tech-vue { --tech-icon: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M24,1.61H14.06L12,5.16,9.94,1.61H0L12,22.39ZM12,14.08,5.16,2.23H9.59L12,6.41l2.41-4.18h4.43Z%22/%3E%3C/svg%3E"); --tech-brand: #4FC08D; }
.appstric-stack__chip.tech-react { --tech-icon: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M14.23 12.004a2.236 2.236 0 0 1-2.235 2.236 2.236 2.236 0 0 1-2.236-2.236 2.236 2.236 0 0 1 2.235-2.236 2.236 2.236 0 0 1 2.236 2.236zm2.648-10.69c-1.346 0-3.107.96-4.888 2.622-1.78-1.653-3.542-2.602-4.887-2.602-.41 0-.783.093-1.106.278-1.375.793-1.683 3.264-.973 6.365C1.98 8.917 0 10.42 0 12.004c0 1.59 1.99 3.097 5.043 4.03-.704 3.113-.39 5.588.988 6.38.32.187.69.275 1.102.275 1.345 0 3.107-.96 4.888-2.624 1.78 1.654 3.542 2.603 4.887 2.603.41 0 .783-.09 1.106-.275 1.374-.792 1.683-3.263.973-6.365C22.02 15.096 24 13.59 24 12.004c0-1.59-1.99-3.097-5.043-4.032.704-3.11.39-5.587-.988-6.38-.318-.184-.688-.277-1.092-.278zm-.005 1.09v.006c.225 0 .406.044.558.127.666.382.955 1.835.73 3.704-.054.46-.142.945-.25 1.44-.96-.236-2.006-.417-3.107-.534-.66-.905-1.345-1.727-2.035-2.447 1.592-1.48 3.087-2.292 4.105-2.295zm-9.77.02c1.012 0 2.514.808 4.11 2.28-.686.72-1.37 1.537-2.02 2.442-1.107.117-2.154.298-3.113.538-.112-.49-.195-.964-.254-1.42-.23-1.868.054-3.32.714-3.707.19-.09.4-.127.563-.132zm4.882 3.05c.455.468.91.992 1.36 1.564-.44-.02-.89-.034-1.345-.034-.46 0-.915.01-1.36.034.44-.572.895-1.096 1.345-1.565zM12 8.1c.74 0 1.477.034 2.202.093.406.582.802 1.203 1.183 1.86.372.64.71 1.29 1.018 1.946-.308.655-.646 1.31-1.013 1.95-.38.66-.773 1.288-1.18 1.87-.728.063-1.466.098-2.21.098-.74 0-1.477-.035-2.202-.093-.406-.582-.802-1.204-1.183-1.86-.372-.64-.71-1.29-1.018-1.946.303-.657.646-1.313 1.013-1.954.38-.66.773-1.286 1.18-1.868.728-.064 1.466-.098 2.21-.098zm-3.635.254c-.24.377-.48.763-.704 1.16-.225.39-.435.782-.635 1.174-.265-.656-.49-1.31-.676-1.947.64-.15 1.315-.283 2.015-.386zm7.26 0c.695.103 1.365.23 2.006.387-.18.632-.405 1.282-.66 1.933-.2-.39-.41-.783-.64-1.174-.225-.392-.465-.774-.705-1.146zm3.063.675c.484.15.944.317 1.375.498 1.732.74 2.852 1.708 2.852 2.476-.005.768-1.125 1.74-2.857 2.475-.42.18-.88.342-1.355.493-.28-.958-.646-1.956-1.1-2.98.45-1.017.81-2.01 1.085-2.964zm-13.395.004c.278.96.645 1.957 1.1 2.98-.45 1.017-.812 2.01-1.086 2.964-.484-.15-.944-.318-1.37-.5-1.732-.737-2.852-1.706-2.852-2.474 0-.768 1.12-1.742 2.852-2.476.42-.18.88-.342 1.356-.494zm11.678 4.28c.265.657.49 1.312.676 1.948-.64.157-1.316.29-2.016.39.24-.375.48-.762.705-1.158.225-.39.435-.788.636-1.18zm-9.945.02c.2.392.41.783.64 1.175.23.39.465.772.705 1.143-.695-.102-1.365-.23-2.006-.386.18-.63.406-1.282.66-1.933zM17.92 16.32c.112.493.2.968.254 1.423.23 1.868-.054 3.32-.714 3.708-.147.09-.338.128-.563.128-1.012 0-2.514-.807-4.11-2.28.686-.72 1.37-1.536 2.02-2.44 1.107-.118 2.154-.3 3.113-.54zm-11.83.01c.96.234 2.006.415 3.107.532.66.905 1.345 1.727 2.035 2.446-1.595 1.483-3.092 2.295-4.11 2.295-.22-.005-.406-.05-.553-.132-.666-.38-.955-1.834-.73-3.703.054-.46.142-.944.25-1.438zm4.56.64c.44.02.89.034 1.345.034.46 0 .915-.01 1.36-.034-.44.572-.895 1.095-1.345 1.565-.455-.47-.91-.993-1.36-1.565z%22/%3E%3C/svg%3E"); --tech-brand: #61DAFB; }
.appstric-stack__chip.tech-typescript { --tech-icon: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z%22/%3E%3C/svg%3E"); --tech-brand: #3178C6; }
.appstric-stack__chip.tech-swift { --tech-icon: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M7.508 0c-.287 0-.573 0-.86.002-.241.002-.483.003-.724.01-.132.003-.263.009-.395.015A9.154 9.154 0 0 0 4.348.15 5.492 5.492 0 0 0 2.85.645 5.04 5.04 0 0 0 .645 2.848c-.245.48-.4.972-.495 1.5-.093.52-.122 1.05-.136 1.576a35.2 35.2 0 0 0-.012.724C0 6.935 0 7.221 0 7.508v8.984c0 .287 0 .575.002.862.002.24.005.481.012.722.014.526.043 1.057.136 1.576.095.528.25 1.02.495 1.5a5.03 5.03 0 0 0 2.205 2.203c.48.244.97.4 1.498.495.52.093 1.05.124 1.576.138.241.007.483.009.724.01.287.002.573.002.86.002h8.984c.287 0 .573 0 .86-.002.241-.001.483-.003.724-.01a10.523 10.523 0 0 0 1.578-.138 5.322 5.322 0 0 0 1.498-.495 5.035 5.035 0 0 0 2.203-2.203c.245-.48.4-.972.495-1.5.093-.52.124-1.05.138-1.576.007-.241.009-.481.01-.722.002-.287.002-.575.002-.862V7.508c0-.287 0-.573-.002-.86a33.662 33.662 0 0 0-.01-.724 10.5 10.5 0 0 0-.138-1.576 5.328 5.328 0 0 0-.495-1.5A5.039 5.039 0 0 0 21.152.645 5.32 5.32 0 0 0 19.654.15a10.493 10.493 0 0 0-1.578-.138 34.98 34.98 0 0 0-.722-.01C17.067 0 16.779 0 16.492 0H7.508zm6.035 3.41c4.114 2.47 6.545 7.162 5.549 11.131-.024.093-.05.181-.076.272l.002.001c2.062 2.538 1.5 5.258 1.236 4.745-1.072-2.086-3.066-1.568-4.088-1.043a6.803 6.803 0 0 1-.281.158l-.02.012-.002.002c-2.115 1.123-4.957 1.205-7.812-.022a12.568 12.568 0 0 1-5.64-4.838c.649.48 1.35.902 2.097 1.252 3.019 1.414 6.051 1.311 8.197-.002C9.651 12.73 7.101 9.67 5.146 7.191a10.628 10.628 0 0 1-1.005-1.384c2.34 2.142 6.038 4.83 7.365 5.576C8.69 8.408 6.208 4.743 6.324 4.86c4.436 4.47 8.528 6.996 8.528 6.996.154.085.27.154.36.213.085-.215.16-.437.224-.668.708-2.588-.09-5.548-1.893-7.992z%22/%3E%3C/svg%3E"); --tech-brand: #F05138; }
.appstric-stack__chip.tech-laravel { --tech-icon: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M23.642 5.43a.364.364 0 01.014.1v5.149c0 .135-.073.26-.189.326l-4.323 2.49v4.934a.378.378 0 01-.188.326L9.93 23.949a.316.316 0 01-.066.027c-.008.002-.016.008-.024.01a.348.348 0 01-.192 0c-.011-.002-.02-.008-.03-.012-.02-.008-.042-.014-.062-.025L.533 18.755a.376.376 0 01-.189-.326V2.974c0-.033.005-.066.014-.098.003-.012.01-.02.014-.032a.369.369 0 01.023-.058c.004-.013.015-.022.023-.033l.033-.045c.012-.01.025-.018.037-.027.014-.012.027-.024.041-.034H.53L5.043.05a.375.375 0 01.375 0L9.93 2.647h.002c.015.01.027.021.04.033l.038.027c.013.014.02.03.033.045.008.011.02.021.025.033.01.02.017.038.024.058.003.011.01.021.013.032.01.031.014.064.014.098v9.652l3.76-2.164V5.527c0-.033.004-.066.013-.098.003-.01.01-.02.013-.032a.487.487 0 01.024-.059c.007-.012.018-.02.025-.033.012-.015.021-.03.033-.043.012-.012.025-.02.037-.028.014-.01.026-.023.041-.032h.001l4.513-2.598a.375.375 0 01.375 0l4.513 2.598c.016.01.027.021.042.031.012.01.025.018.036.028.013.014.022.03.034.044.008.012.019.021.024.033.011.02.018.04.024.06.006.01.012.021.015.032zm-.74 5.032V6.179l-1.578.908-2.182 1.256v4.283zm-4.51 7.75v-4.287l-2.147 1.225-6.126 3.498v4.325zM1.093 3.624v14.588l8.273 4.761v-4.325l-4.322-2.445-.002-.003H5.04c-.014-.01-.025-.021-.04-.031-.011-.01-.024-.018-.035-.027l-.001-.002c-.013-.012-.021-.025-.031-.04-.01-.011-.021-.022-.028-.036h-.002c-.008-.014-.013-.031-.02-.047-.006-.016-.014-.027-.018-.043a.49.49 0 01-.008-.057c-.002-.014-.006-.027-.006-.041V5.789l-2.18-1.257zM5.23.81L1.47 2.974l3.76 2.164 3.758-2.164zm1.956 13.505l2.182-1.256V3.624l-1.58.91-2.182 1.255v9.435zm11.581-10.95l-3.76 2.163 3.76 2.163 3.759-2.164zm-.376 4.978L16.21 7.087 14.63 6.18v4.283l2.182 1.256 1.58.908zm-8.65 9.654l5.514-3.148 2.756-1.572-3.757-2.163-4.323 2.489-3.941 2.27z%22/%3E%3C/svg%3E"); --tech-brand: #FF2D20; }
.appstric-stack__chip.tech-php { --tech-icon: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M7.01 10.207h-.944l-.515 2.648h.838c.556 0 .97-.105 1.242-.314.272-.21.455-.559.55-1.049.092-.47.05-.802-.124-.995-.175-.193-.523-.29-1.047-.29zM12 5.688C5.373 5.688 0 8.514 0 12s5.373 6.313 12 6.313S24 15.486 24 12c0-3.486-5.373-6.312-12-6.312zm-3.26 7.451c-.261.25-.575.438-.917.551-.336.108-.765.164-1.285.164H5.357l-.327 1.681H3.652l1.23-6.326h2.65c.797 0 1.378.209 1.744.628.366.418.476 1.002.33 1.752a2.836 2.836 0 0 1-.305.847c-.143.255-.33.49-.561.703zm4.024.715l.543-2.799c.063-.318.039-.536-.068-.651-.107-.116-.336-.174-.687-.174H11.46l-.704 3.625H9.388l1.23-6.327h1.367l-.327 1.682h1.218c.767 0 1.295.134 1.586.401s.378.7.263 1.299l-.572 2.944h-1.389zm7.597-2.265a2.782 2.782 0 0 1-.305.847c-.143.255-.33.49-.561.703a2.44 2.44 0 0 1-.917.551c-.336.108-.765.164-1.286.164h-1.18l-.327 1.682h-1.378l1.23-6.326h2.649c.797 0 1.378.209 1.744.628.366.417.477 1.001.331 1.751zM17.766 10.207h-.943l-.516 2.648h.838c.557 0 .971-.105 1.242-.314.272-.21.455-.559.551-1.049.092-.47.049-.802-.125-.995s-.524-.29-1.047-.29z%22/%3E%3C/svg%3E"); --tech-brand: #777BB4; }
.appstric-stack__chip.tech-mysql { --tech-icon: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M16.405 5.501c-.115 0-.193.014-.274.033v.013h.014c.054.104.146.18.214.273.054.107.1.214.154.32l.014-.015c.094-.066.14-.172.14-.333-.04-.047-.046-.094-.08-.14-.04-.067-.126-.1-.18-.153zM5.77 18.695h-.927a50.854 50.854 0 00-.27-4.41h-.008l-1.41 4.41H2.45l-1.4-4.41h-.01a72.892 72.892 0 00-.195 4.41H0c.055-1.966.192-3.81.41-5.53h1.15l1.335 4.064h.008l1.347-4.064h1.095c.242 2.015.384 3.86.428 5.53zm4.017-4.08c-.378 2.045-.876 3.533-1.492 4.46-.482.716-1.01 1.073-1.583 1.073-.153 0-.34-.046-.566-.138v-.494c.11.017.24.026.386.026.268 0 .483-.075.647-.222.197-.18.295-.382.295-.605 0-.155-.077-.47-.23-.944L6.23 14.615h.91l.727 2.36c.164.536.233.91.205 1.123.4-1.064.678-2.227.835-3.483zm12.325 4.08h-2.63v-5.53h.885v4.85h1.745zm-3.32.135l-1.016-.5c.09-.076.177-.158.255-.25.433-.506.648-1.258.648-2.253 0-1.83-.718-2.746-2.155-2.746-.704 0-1.254.232-1.65.697-.43.508-.646 1.256-.646 2.245 0 .972.19 1.686.574 2.14.35.41.877.615 1.583.615.264 0 .506-.033.725-.098l1.325.772.36-.622zM15.5 17.588c-.225-.36-.337-.94-.337-1.736 0-1.393.424-2.09 1.27-2.09.443 0 .77.167.977.5.224.362.336.936.336 1.723 0 1.404-.424 2.108-1.27 2.108-.445 0-.77-.167-.978-.5zm-1.658-.425c0 .47-.172.856-.516 1.156-.344.3-.803.45-1.384.45-.543 0-1.064-.172-1.573-.515l.237-.476c.438.22.833.328 1.19.328.332 0 .593-.073.783-.22a.754.754 0 00.3-.615c0-.33-.23-.61-.648-.845-.388-.213-1.163-.657-1.163-.657-.422-.307-.632-.636-.632-1.177 0-.45.157-.81.47-1.085.315-.278.72-.415 1.22-.415.512 0 .98.136 1.4.41l-.213.476a2.726 2.726 0 00-1.064-.23c-.283 0-.502.068-.654.206a.685.685 0 00-.248.524c0 .328.234.61.666.85.393.215 1.187.67 1.187.67.433.305.648.63.648 1.168zm9.382-5.852c-.535-.014-.95.04-1.297.188-.1.04-.26.04-.274.167.055.053.063.14.11.214.08.134.218.313.346.407.14.11.28.216.427.31.26.16.555.255.81.416.145.094.293.213.44.313.073.05.12.14.214.172v-.02c-.046-.06-.06-.147-.105-.214-.067-.067-.134-.127-.2-.193a3.223 3.223 0 00-.695-.675c-.214-.146-.682-.35-.77-.595l-.013-.014c.146-.013.32-.066.46-.106.227-.06.435-.047.67-.106.106-.027.213-.06.32-.094v-.06c-.12-.12-.21-.283-.334-.395a8.867 8.867 0 00-1.104-.823c-.21-.134-.476-.22-.697-.334-.08-.04-.214-.06-.26-.127-.12-.146-.19-.34-.275-.514a17.69 17.69 0 01-.547-1.163c-.12-.262-.193-.523-.34-.763-.69-1.137-1.437-1.826-2.586-2.5-.247-.14-.543-.2-.856-.274-.167-.008-.334-.02-.5-.027-.11-.047-.216-.174-.31-.235-.38-.24-1.364-.76-1.644-.072-.18.434.267.862.422 1.082.115.153.26.328.34.5.047.116.06.235.107.356.106.294.207.622.347.897.073.14.153.287.247.413.054.073.146.107.167.227-.094.136-.1.334-.154.5-.24.757-.146 1.693.194 2.25.107.166.362.534.703.393.3-.12.234-.5.32-.835.02-.08.007-.133.048-.187v.015c.094.188.188.367.274.555.206.328.566.668.867.895.16.12.287.328.487.402v-.02h-.015c-.043-.058-.1-.086-.154-.133a3.445 3.445 0 01-.35-.4 8.76 8.76 0 01-.747-1.218c-.11-.21-.202-.436-.29-.643-.04-.08-.04-.2-.107-.24-.1.146-.247.273-.32.453-.127.288-.14.642-.188 1.01-.027.007-.014 0-.027.014-.214-.052-.287-.274-.367-.46-.2-.475-.233-1.238-.06-1.785.047-.14.247-.582.167-.716-.042-.127-.174-.2-.247-.303a2.478 2.478 0 01-.24-.427c-.16-.374-.24-.788-.414-1.162-.08-.173-.22-.354-.334-.513-.127-.18-.267-.307-.368-.52-.033-.073-.08-.194-.027-.274.014-.054.042-.075.094-.09.088-.072.335.022.422.062.247.1.455.194.662.334.094.066.195.193.315.226h.14c.214.047.455.014.655.073.355.114.675.28.962.46a5.953 5.953 0 012.085 2.286c.08.154.115.295.188.455.14.33.313.663.455.982.14.315.275.636.476.897.1.14.502.213.682.286.133.06.34.115.46.188.23.14.454.3.67.454.11.076.443.243.463.378z%22/%3E%3C/svg%3E"); --tech-brand: #4479A1; }
.appstric-stack__chip.tech-postgres { --tech-icon: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M23.5594 14.7228a.5269.5269 0 0 0-.0563-.1191c-.139-.2632-.4768-.3418-1.0074-.2321-1.6533.3411-2.2935.1312-2.5256-.0191 1.342-2.0482 2.445-4.522 3.0411-6.8297.2714-1.0507.7982-3.5237.1222-4.7316a1.5641 1.5641 0 0 0-.1509-.235C21.6931.9086 19.8007.0248 17.5099.0005c-1.4947-.0158-2.7705.3461-3.1161.4794a9.449 9.449 0 0 0-.5159-.0816 8.044 8.044 0 0 0-1.3114-.1278c-1.1822-.0184-2.2038.2642-3.0498.8406-.8573-.3211-4.7888-1.645-7.2219.0788C.9359 2.1526.3086 3.8733.4302 6.3043c.0409.818.5069 3.334 1.2423 5.7436.4598 1.5065.9387 2.7019 1.4334 3.582.553.9942 1.1259 1.5933 1.7143 1.7895.4474.1491 1.1327.1441 1.8581-.7279.8012-.9635 1.5903-1.8258 1.9446-2.2069.4351.2355.9064.3625 1.39.3772a.0569.0569 0 0 0 .0004.0041 11.0312 11.0312 0 0 0-.2472.3054c-.3389.4302-.4094.5197-1.5002.7443-.3102.064-1.1344.2339-1.1464.8115-.0025.1224.0329.2309.0919.3268.2269.4231.9216.6097 1.015.6331 1.3345.3335 2.5044.092 3.3714-.6787-.017 2.231.0775 4.4174.3454 5.0874.2212.5529.7618 1.9045 2.4692 1.9043.2505 0 .5263-.0291.8296-.0941 1.7819-.3821 2.5557-1.1696 2.855-2.9059.1503-.8707.4016-2.8753.5388-4.1012.0169-.0703.0357-.1207.057-.1362.0007-.0005.0697-.0471.4272.0307a.3673.3673 0 0 0 .0443.0068l.2539.0223.0149.001c.8468.0384 1.9114-.1426 2.5312-.4308.6438-.2988 1.8057-1.0323 1.5951-1.6698zM2.371 11.8765c-.7435-2.4358-1.1779-4.8851-1.2123-5.5719-.1086-2.1714.4171-3.6829 1.5623-4.4927 1.8367-1.2986 4.8398-.5408 6.108-.13-.0032.0032-.0066.0061-.0098.0094-2.0238 2.044-1.9758 5.536-1.9708 5.7495-.0002.0823.0066.1989.0162.3593.0348.5873.0996 1.6804-.0735 2.9184-.1609 1.1504.1937 2.2764.9728 3.0892.0806.0841.1648.1631.2518.2374-.3468.3714-1.1004 1.1926-1.9025 2.1576-.5677.6825-.9597.5517-1.0886.5087-.3919-.1307-.813-.5871-1.2381-1.3223-.4796-.839-.9635-2.0317-1.4155-3.5126zm6.0072 5.0871c-.1711-.0428-.3271-.1132-.4322-.1772.0889-.0394.2374-.0902.4833-.1409 1.2833-.2641 1.4815-.4506 1.9143-1.0002.0992-.126.2116-.2687.3673-.4426a.3549.3549 0 0 0 .0737-.1298c.1708-.1513.2724-.1099.4369-.0417.156.0646.3078.26.3695.4752.0291.1016.0619.2945-.0452.4444-.9043 1.2658-2.2216 1.2494-3.1676 1.0128zm2.094-3.988-.0525.141c-.133.3566-.2567.6881-.3334 1.003-.6674-.0021-1.3168-.2872-1.8105-.8024-.6279-.6551-.9131-1.5664-.7825-2.5004.1828-1.3079.1153-2.4468.079-3.0586-.005-.0857-.0095-.1607-.0122-.2199.2957-.2621 1.6659-.9962 2.6429-.7724.4459.1022.7176.4057.8305.928.5846 2.7038.0774 3.8307-.3302 4.7363-.084.1866-.1633.3629-.2311.5454zm7.3637 4.5725c-.0169.1768-.0358.376-.0618.5959l-.146.4383a.3547.3547 0 0 0-.0182.1077c-.0059.4747-.054.6489-.115.8693-.0634.2292-.1353.4891-.1794 1.0575-.11 1.4143-.8782 2.2267-2.4172 2.5565-1.5155.3251-1.7843-.4968-2.0212-1.2217a6.5824 6.5824 0 0 0-.0769-.2266c-.2154-.5858-.1911-1.4119-.1574-2.5551.0165-.5612-.0249-1.9013-.3302-2.6462.0044-.2932.0106-.5909.019-.8918a.3529.3529 0 0 0-.0153-.1126 1.4927 1.4927 0 0 0-.0439-.208c-.1226-.4283-.4213-.7866-.7797-.9351-.1424-.059-.4038-.1672-.7178-.0869.067-.276.1831-.5875.309-.9249l.0529-.142c.0595-.16.134-.3257.213-.5012.4265-.9476 1.0106-2.2453.3766-5.1772-.2374-1.0981-1.0304-1.6343-2.2324-1.5098-.7207.0746-1.3799.3654-1.7088.5321a5.6716 5.6716 0 0 0-.1958.1041c.0918-1.1064.4386-3.1741 1.7357-4.4823a4.0306 4.0306 0 0 1 .3033-.276.3532.3532 0 0 0 .1447-.0644c.7524-.5706 1.6945-.8506 2.802-.8325.4091.0067.8017.0339 1.1742.081 1.939.3544 3.2439 1.4468 4.0359 2.3827.8143.9623 1.2552 1.9315 1.4312 2.4543-1.3232-.1346-2.2234.1268-2.6797.779-.9926 1.4189.543 4.1729 1.2811 5.4964.1353.2426.2522.4522.2889.5413.2403.5825.5515.9713.7787 1.2552.0696.087.1372.1714.1885.245-.4008.1155-1.1208.3825-1.0552 1.717-.0123.1563-.0423.4469-.0834.8148-.0461.2077-.0702.4603-.0994.7662zm.8905-1.6211c-.0405-.8316.2691-.9185.5967-1.0105a2.8566 2.8566 0 0 0 .135-.0406 1.202 1.202 0 0 0 .1342.103c.5703.3765 1.5823.4213 3.0068.1344-.2016.1769-.5189.3994-.9533.6011-.4098.1903-1.0957.333-1.7473.3636-.7197.0336-1.0859-.0807-1.1721-.151zm.5695-9.2712c-.0059.3508-.0542.6692-.1054 1.0017-.055.3576-.112.7274-.1264 1.1762-.0142.4368.0404.8909.0932 1.3301.1066.887.216 1.8003-.2075 2.7014a3.5272 3.5272 0 0 1-.1876-.3856c-.0527-.1276-.1669-.3326-.3251-.6162-.6156-1.1041-2.0574-3.6896-1.3193-4.7446.3795-.5427 1.3408-.5661 2.1781-.463zm.2284 7.0137a12.3762 12.3762 0 0 0-.0853-.1074l-.0355-.0444c.7262-1.1995.5842-2.3862.4578-3.4385-.0519-.4318-.1009-.8396-.0885-1.2226.0129-.4061.0666-.7543.1185-1.0911.0639-.415.1288-.8443.1109-1.3505.0134-.0531.0188-.1158.0118-.1902-.0457-.4855-.5999-1.938-1.7294-3.253-.6076-.7073-1.4896-1.4972-2.6889-2.0395.5251-.1066 1.2328-.2035 2.0244-.1859 2.0515.0456 3.6746.8135 4.8242 2.2824a.908.908 0 0 1 .0667.1002c.7231 1.3556-.2762 6.2751-2.9867 10.5405zm-8.8166-6.1162c-.025.1794-.3089.4225-.6211.4225a.5821.5821 0 0 1-.0809-.0056c-.1873-.026-.3765-.144-.5059-.3156-.0458-.0605-.1203-.178-.1055-.2844.0055-.0401.0261-.0985.0925-.1488.1182-.0894.3518-.1226.6096-.0867.3163.0441.6426.1938.6113.4186zm7.9305-.4114c.0111.0792-.049.201-.1531.3102-.0683.0717-.212.1961-.4079.2232a.5456.5456 0 0 1-.075.0052c-.2935 0-.5414-.2344-.5607-.3717-.024-.1765.2641-.3106.5611-.352.297-.0414.6111.0088.6356.1851z%22/%3E%3C/svg%3E"); --tech-brand: #4169E1; }
.appstric-stack__chip.tech-redis { --tech-icon: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M22.71 13.145c-1.66 2.092-3.452 4.483-7.038 4.483-3.203 0-4.397-2.825-4.48-5.12.701 1.484 2.073 2.685 4.214 2.63 4.117-.133 6.94-3.852 6.94-7.239 0-4.05-3.022-6.972-8.268-6.972-3.752 0-8.4 1.428-11.455 3.685C2.59 6.937 3.885 9.958 4.35 9.626c2.648-1.904 4.748-3.13 6.784-3.744C8.12 9.244.886 17.05 0 18.425c.1 1.261 1.66 4.648 2.424 4.648.232 0 .431-.133.664-.365a100.49 100.49 0 0 0 5.54-6.765c.222 3.104 1.748 6.898 6.014 6.898 3.819 0 7.604-2.756 9.33-8.965.2-.764-.73-1.361-1.261-.73zm-4.349-5.013c0 1.959-1.926 2.922-3.685 2.922-.941 0-1.664-.247-2.235-.568 1.051-1.592 2.092-3.225 3.21-4.973 1.972.334 2.71 1.43 2.71 2.619z%22/%3E%3C/svg%3E"); --tech-brand: #FF4438; }
.appstric-stack__chip.tech-wordpress { --tech-icon: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M21.469 6.825c.84 1.537 1.318 3.3 1.318 5.175 0 3.979-2.156 7.456-5.363 9.325l3.295-9.527c.615-1.54.82-2.771.82-3.864 0-.405-.026-.78-.07-1.11m-7.981.105c.647-.03 1.232-.105 1.232-.105.582-.075.514-.93-.067-.899 0 0-1.755.135-2.88.135-1.064 0-2.85-.15-2.85-.15-.585-.03-.661.855-.075.885 0 0 .54.061 1.125.09l1.68 4.605-2.37 7.08L5.354 6.9c.649-.03 1.234-.1 1.234-.1.585-.075.516-.93-.065-.896 0 0-1.746.138-2.874.138-.2 0-.438-.008-.69-.015C4.911 3.15 8.235 1.215 12 1.215c2.809 0 5.365 1.072 7.286 2.833-.046-.003-.091-.009-.141-.009-1.06 0-1.812.923-1.812 1.914 0 .89.513 1.643 1.06 2.531.411.72.89 1.643.89 2.977 0 .915-.354 1.994-.821 3.479l-1.075 3.585-3.9-11.61.001.014zM12 22.784c-1.059 0-2.081-.153-3.048-.437l3.237-9.406 3.315 9.087c.024.053.05.101.078.149-1.12.393-2.325.609-3.582.609M1.211 12c0-1.564.336-3.05.935-4.39L7.29 21.709C3.694 19.96 1.212 16.271 1.211 12M12 0C5.385 0 0 5.385 0 12s5.385 12 12 12 12-5.385 12-12S18.615 0 12 0%22/%3E%3C/svg%3E"); --tech-brand: #21759B; }
.appstric-stack__chip.tech-woocommerce { --tech-icon: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M.754 9.58a.754.754 0 00-.754.758v2.525c0 .42.339.758.758.758h3.135l1.431.799-.326-.799h2.373a.757.757 0 00.758-.758v-2.525a.757.757 0 00-.758-.758H.754zm2.709.445h.03c.065.001.124.023.179.067a.26.26 0 01.103.19.29.29 0 01-.033.16c-.13.239-.236.64-.322 1.199-.083.541-.114.965-.094 1.267a.392.392 0 01-.039.219.213.213 0 01-.176.12c-.086.006-.177-.034-.263-.124-.31-.316-.555-.788-.735-1.416-.216.425-.375.744-.478.957-.196.376-.363.568-.502.578-.09.007-.166-.069-.233-.228-.17-.436-.352-1.277-.548-2.524a.297.297 0 01.054-.222c.047-.064.116-.095.21-.102.169-.013.265.065.288.238.103.695.217 1.284.336 1.766l.727-1.387c.066-.126.15-.192.25-.199.146-.01.237.083.273.28.083.441.188.817.315 1.136.086-.844.233-1.453.44-1.828a.255.255 0 01.218-.147zm1.293.36c.056 0 .116.006.18.02.232.05.411.177.53.386.107.18.161.395.161.654 0 .343-.087.654-.26.94-.2.332-.459.5-.781.5a.88.88 0 01-.18-.022.763.763 0 01-.531-.384 1.287 1.287 0 01-.158-.659c0-.342.085-.655.258-.937.202-.333.462-.498.78-.498zm2.084 0c.056 0 .116.006.18.02.236.05.411.177.53.386.107.18.16.395.16.654 0 .343-.086.654-.259.94-.2.332-.459.5-.781.5a.88.88 0 01-.18-.022.763.763 0 01-.531-.384 1.287 1.287 0 01-.16-.659c0-.342.087-.655.26-.937.202-.333.462-.498.78-.498zm4.437.047c-.305 0-.546.102-.718.304-.173.203-.256.49-.256.856 0 .395.086.697.256.906.17.21.418.316.744.316.315 0 .559-.107.728-.316.17-.21.256-.504.256-.883s-.087-.673-.26-.879c-.176-.202-.424-.304-.75-.304zm-1.466.002a1.13 1.13 0 00-.84.326c-.223.22-.332.499-.332.838 0 .362.108.658.328.88.22.223.505.336.861.336.103 0 .22-.016.346-.052v-.54c-.117.034-.216.051-.303.051a.545.545 0 01-.422-.177c-.106-.12-.16-.278-.16-.48 0-.19.053-.348.156-.468a.498.498 0 01.397-.181c.103 0 .212.015.332.049v-.537a1.394 1.394 0 00-.363-.045zm12.414 0a1.135 1.135 0 00-.84.326c-.223.22-.332.499-.332.838 0 .362.108.658.328.88.22.223.506.336.861.336.103 0 .22-.016.346-.052v-.54c-.116.034-.216.051-.303.051a.545.545 0 01-.422-.177c-.106-.12-.16-.278-.16-.48 0-.19.053-.348.156-.468a.498.498 0 01.397-.181c.103 0 .212.015.332.049v-.537a1.394 1.394 0 00-.363-.045zm-9.598.06l-.29 2.264h.579l.156-1.559.395 1.559h.412l.379-1.555.164 1.555h.603l-.304-2.264h-.791l-.12.508c-.03.13-.06.264-.087.4l-.067.352a29.97 29.97 0 00-.258-1.26h-.771zm2.768 0l-.29 2.264h.579l.156-1.559.396 1.559h.412l.375-1.555.165 1.555h.603l-.305-2.264h-.789l-.119.508c-.03.13-.06.264-.086.4l-.066.352c-.063-.352-.15-.771-.26-1.26h-.771zm3.988 0v2.264h.611v-1.031h.012l.494 1.03h.645l-.489-1.019a.61.61 0 00.37-.552.598.598 0 00-.25-.506c-.167-.123-.394-.186-.68-.186h-.713zm3.377 0v2.264H24v-.483h-.63v-.414h.54v-.468h-.54v-.416h.626v-.483H22.76zm-4.793.004v2.264h1.24v-.483h-.627v-.416h.541v-.468h-.54v-.415h.622v-.482h-1.236zm2.025.432c.146.003.25.025.313.072.063.046.091.12.091.227 0 .156-.135.236-.404.24v-.54zm-15.22.011c-.104 0-.205.069-.301.211a1.078 1.078 0 00-.2.639c0 .096.02.2.06.303.049.13.117.198.196.215.083.016.173-.02.27-.106.123-.11.205-.273.252-.492.016-.077.023-.16.023-.246 0-.097-.02-.2-.06-.303-.05-.13-.116-.198-.196-.215a.246.246 0 00-.045-.006zm2.083 0c-.103 0-.204.069-.3.211a1.078 1.078 0 00-.2.639c0 .096.02.2.06.303.049.13.117.198.196.215.083.016.173-.02.27-.106.123-.11.205-.273.252-.492.013-.077.023-.16.023-.246 0-.097-.02-.2-.06-.303-.05-.13-.116-.198-.196-.215a.246.246 0 00-.045-.006zm4.428.006c.233 0 .354.218.354.66-.004.273-.038.46-.098.553a.293.293 0 01-.262.139.266.266 0 01-.242-.139c-.056-.093-.084-.28-.084-.562 0-.436.11-.65.332-.65Z%22/%3E%3C/svg%3E"); --tech-brand: #96588A; }
.appstric-stack__chip.tech-graphql { --tech-icon: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M12.002 0a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm8.54 4.931a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm0 9.862a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm-8.54 4.931a2.138 2.138 0 1 0 0 4.276 2.138 2.138 0 1 0 0-4.276zm-8.542-4.93a2.138 2.138 0 1 0 0 4.276 2.138 2.138 0 1 0 0-4.277zm0-9.863a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm8.542-3.378L2.953 6.777v10.448l9.049 5.224 9.047-5.224V6.777zm0 1.601 7.66 13.27H4.34zm-1.387.371L3.97 15.037V7.363zm2.774 0 6.646 3.838v7.674zM5.355 17.44h13.293l-6.646 3.836z%22/%3E%3C/svg%3E"); --tech-brand: #E10098; }
.appstric-stack__chip.tech-stripe { --tech-icon: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M13.976 9.15c-2.172-.806-3.356-1.426-3.356-2.409 0-.831.683-1.305 1.901-1.305 2.227 0 4.515.858 6.09 1.631l.89-5.494C18.252.975 15.697 0 12.165 0 9.667 0 7.589.654 6.104 1.872 4.56 3.147 3.757 4.992 3.757 7.218c0 4.039 2.467 5.76 6.476 7.219 2.585.92 3.445 1.574 3.445 2.583 0 .98-.84 1.545-2.354 1.545-1.875 0-4.965-.921-6.99-2.109l-.9 5.555C5.175 22.99 8.385 24 11.714 24c2.641 0 4.843-.624 6.328-1.813 1.664-1.305 2.525-3.236 2.525-5.732 0-4.128-2.524-5.851-6.594-7.305h.003z%22/%3E%3C/svg%3E"); --tech-brand: #635BFF; }
.appstric-stack__chip.tech-python { --tech-icon: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z%22/%3E%3C/svg%3E"); --tech-brand: #3776AB; }
.appstric-stack__chip.tech-solidity { --tech-icon: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M4.409 6.608L7.981.255l3.572 6.353H4.409zM8.411 0l3.569 6.348L15.552 0H8.411zm4.036 17.392l3.572 6.354 3.575-6.354h-7.147zm-.608-10.284h-7.43l3.715 6.605 3.715-6.605zm.428-.25h7.428L15.982.255l-3.715 6.603zM15.589 24l-3.569-6.349L8.448 24h7.141zm-3.856-6.858H4.306l3.712 6.603 3.715-6.603zm.428-.25h7.433l-3.718-6.605-3.715 6.605z%22/%3E%3C/svg%3E"); --tech-brand: #A9B4D4; }
.appstric-stack__chip.tech-openai { --tech-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cpath d=%22M12 1.5l2.6 7.9 7.9 2.6-7.9 2.6L12 22.5l-2.6-7.9L1.5 12l7.9-2.6z%22/%3E%3C/svg%3E"); --tech-brand: #10A37F; }

/* ==========================================================================
   Phase 3 (2026-10-06). Remove this whole block to revert.
   ========================================================================== */

/* --- 1. Menu size --------------------------------------------------------- */
@media (min-width: 1024px) {
  .appstric-header .appstric-nav .wp-block-navigation-item__content {
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: -0.005em;
  }

  .appstric-header .appstric-nav .wp-block-navigation__container {
    gap: 0.35rem 1.6rem;
  }

  .appstric-header .appstric-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    font-size: 0.95rem;
    font-weight: 400;
  }
}

.appstric-header .wp-block-navigation__responsive-container-open::after,
.appstric-header .wp-block-navigation__responsive-container-close::after {
  font-size: 0.85rem;
  letter-spacing: 0.08em;
}

/* --- 2. Clients section (matches other sections) -------------------------- */
.appstric-clients .appstric-logos.wp-block-group {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--wp--style--block-gap, 1.25rem);
}

.appstric-clients .appstric-logo-slot.wp-block-group {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(7rem, 11vw, 9rem);
  margin: 0;
  padding: 1.5rem;
  border: 0;
  border-radius: var(--radius-lg, 24px);
  background: var(--mist);
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(1.1rem, 1.6vw, 1.4rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  text-transform: none;
  transition: background-color 0.3s, transform 0.3s var(--ease-out);
}

.appstric-clients .appstric-logo-slot p {
  opacity: 0.55;
  transition: opacity 0.3s;
}

.appstric-clients .appstric-logo-slot:hover {
  background: #e6e8ff;
}

.appstric-clients .appstric-logo-slot:hover p {
  opacity: 1;
}

.appstric-clients .appstric-logo-slot figure,
.appstric-clients .appstric-logo-slot .wp-block-image {
  margin: 0;
}

.appstric-clients .appstric-logo-slot img {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 2.75rem;
  filter: grayscale(1) contrast(1.1);
  opacity: 0.6;
  transition: filter 0.3s, opacity 0.3s;
}

.appstric-clients .appstric-logo-slot:hover img {
  filter: none;
  opacity: 1;
}

@media (min-width: 782px) {
  .appstric-clients .appstric-logos.wp-block-group {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* --- 3. Services rail: grow evenly, keep the shadow inside the rail ------- */
.appstric-caps-rail .appstric-caps-rail__track {
  padding-block: 2rem 4.5rem;
  margin-block: -2rem -4.5rem;
}

.appstric-caps-rail .appstric-card,
.appstric-caps-rail .appstric-card.wp-block-group {
  transform-origin: center center;
}

.appstric-caps-rail .appstric-card.is-focus {
  box-shadow: 0 22px 44px -26px rgba(7, 7, 10, 0.3);
}

/* --- 4. Technology marquee: larger chips ---------------------------------- */
.appstric-stack__chip.wp-block-group {
  gap: 0.85rem;
  padding: clamp(0.85rem, 1.1vw, 1.1rem) clamp(1.25rem, 1.9vw, 1.85rem);
}

.appstric-stack__chip p {
  font-size: clamp(1.3rem, 2vw, 1.85rem);
  letter-spacing: -0.01em;
}

.appstric-stack__chip[class*="tech-"]::before {
  font-size: clamp(1.3rem, 2vw, 1.85rem);
  width: 1.2em;
  height: 1.2em;
}

.appstric-stack__lane-inner.wp-block-group {
  gap: 1rem;
}

/* Services rail: full-bleed track with inset start so the focused card can
   grow on both sides without being clipped. */
.appstric-caps-rail.appstric-caps-rail {
  padding-left: 0;
}

.appstric-caps-rail .appstric-caps-rail__track {
  padding-inline-start: var(--appstric-grid-left);
  scroll-padding-inline-start: var(--appstric-grid-left);
}

/* Services rail: whole card is a link */
.appstric-caps-rail .appstric-card {
  cursor: pointer;
}

.appstric-caps-rail .appstric-card .appstric-more a {
  transition: color 0.25s;
}

.appstric-caps-rail .appstric-card:hover .appstric-more a {
  color: var(--signal);
}

.appstric-caps-rail .appstric-card:not(.is-focus):hover {
  box-shadow: 0 16px 36px -28px rgba(7, 7, 10, 0.3);
}

/* ==========================================================================
   Phase 4 (2026-10-06): site-wide consistency for buttons, icons, type.
   Remove this whole block to revert.
   ========================================================================== */

/* --- Buttons: one standard size, one compact size ------------------------ */
.wp-block-button.appstric-btn .wp-block-button__link,
.appstric-footer-cta .wp-block-button__link,
.appstric-ff .ff-btn-submit,
.fluentform .ff-btn-submit.appstric-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4em;
  box-sizing: border-box;
  min-height: 48px;
  padding: 0 1.6rem;
  border-width: 1px;
  border-style: solid;
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}

.wp-block-button.appstric-btn--warm .wp-block-button__link,
.wp-block-button.appstric-btn--ink .wp-block-button__link,
.wp-block-button.appstric-btn--signal .wp-block-button__link,
.appstric-footer-cta .wp-block-button__link,
.appstric-ff .ff-btn-submit {
  border-color: transparent;
}

.appstric-header .appstric-header-cta .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  min-height: 40px;
  padding: 0 1.2rem;
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1;
}

/* --- Icons: one tile size and shape --------------------------------------- */
main .appstric-icon.appstric-icon,
main .wp-block-outermost-icon-block.appstric-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 60px;
  height: 60px;
  border-radius: 18px;
}

main .appstric-icon.appstric-icon svg {
  width: 30px;
  height: 30px;
}

main .appstric-cap__kicker .appstric-icon.appstric-icon {
  width: 34px;
  height: 34px;
  border-radius: 10px;
}

main .appstric-cap__kicker .appstric-icon.appstric-icon svg {
  width: 18px;
  height: 18px;
}

/* --- Typography: consistent tiers ------------------------------------------ */
.appstric-hero--page .appstric-hero__inner h1 {
  font-size: clamp(2.75rem, 4.85vw, 4.35rem);
}

main .appstric-include__intro h2,
main .appstric-tools__head h2,
main .appstric-cap__copy h2,
main .appstric-cta h2,
main .appstric-split .appstric-reveal > h2.display-lg {
  font-size: clamp(2.25rem, 3.9vw, 3.5rem);
  font-weight: 620;
  line-height: 0.92;
  letter-spacing: -0.035em;
}

main h3.wp-block-heading:not(.appstric-bento-tile h3):not(.appstric-quote h3) {
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2vw, 1.8rem);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.015em;
}

/* Phase 4 follow-up: stronger selectors for the remaining outliers */
.appstric-header .appstric-header-cta.is-style-appstric-header .wp-block-button__link.wp-element-button {
  font-size: 0.875rem !important;
}

main .appstric-caps-rail .appstric-card .appstric-icon.appstric-icon {
  width: 60px;
  height: 60px;
  border-radius: 18px;
}

main .appstric-caps-rail .appstric-card .appstric-icon.appstric-icon svg {
  width: 30px;
  height: 30px;
}

.appstric-hero--page.appstric-hero--work .appstric-hero__inner h1.wp-block-heading {
  font-size: clamp(2.75rem, 4.85vw, 4.35rem);
}

main .appstric-intro.appstric-intro--row h2.display-lg {
  font-size: clamp(2.5rem, 6vw, 5.5rem);
}

main .appstric-wrap .appstric-tools__head h2.display-lg {
  font-size: clamp(2.25rem, 3.9vw, 3.5rem);
}

main .appstric-insights .appstric-insight h3 {
  font-size: clamp(1.35rem, 2vw, 1.8rem);
  line-height: 1.15;
}

/* ==========================================================================
   Phase 5 (2026-10-06): site-wide spacing scale. Remove this block to revert.
   ========================================================================== */
:root {
  --section-y: clamp(4.5rem, 9.5vw, 8.5rem);
  --ap-gap: clamp(1.25rem, 2.8vw, 2.5rem);
  --ap-pad: clamp(1.5rem, 2.8vw, 2.5rem);
}

/* Section rhythm */
main .appstric-section.wp-block-group {
  padding-block: var(--section-y);
}

main .appstric-intro.wp-block-group {
  margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

main .appstric-intro.wp-block-group + .appstric-cards.wp-block-group,
main .appstric-intro.wp-block-group + .appstric-work-grid.wp-block-group,
main .appstric-intro.wp-block-group + .appstric-insights.wp-block-group {
  margin-top: 0;
}

/* Gaps between cards (roughly double) */
main .appstric-cards.appstric-cards.wp-block-group.wp-block-group,
main .appstric-insights.appstric-insights.wp-block-group,
main .appstric-quotes.wp-block-group,
main .appstric-clients .appstric-logos.wp-block-group,
main .appstric-work-grid.wp-block-group.is-layout-grid.is-layout-grid,
main .appstric-caps.wp-block-group,
main .appstric-stats.wp-block-group {
  gap: var(--ap-gap);
}

/* Inner padding: content never touches a card edge */
main .appstric-card.wp-block-group:not(.appstric-card--media),
main .appstric-quote.wp-block-group,
main .appstric-bento-tile.wp-block-group {
  padding: var(--ap-pad);
}

main .appstric-card--media.wp-block-group {
  padding: 0 0 var(--ap-pad);
}

main .appstric-card--media.wp-block-group > :not(figure) {
  margin-inline: var(--ap-pad);
  padding-inline: 0;
}


main .appstric-card--media.wp-block-group > figure + * {
  margin-top: var(--ap-pad);
}


main .appstric-insights .appstric-insight > :not(figure):not(a:first-child) {
  padding-inline: var(--ap-pad);
}

/* Lists and text inside cards get a little more air */
main .appstric-card .wp-block-list li + li,
main .appstric-card ul li + li {
  margin-top: 0.45rem;
}

main .appstric-card p + p,
main .appstric-card h3 + p {
  margin-top: 0.85rem;
}

/* ==========================================================================
   Phase 6 (2026-10-06): caret, checklist, article CTA, sticky offsets.
   Remove this whole block to revert.
   ========================================================================== */

/* Larger menu caret */
.appstric-header .wp-block-navigation .wp-block-navigation__submenu-icon {
  width: 1.1rem;
  height: 1.1rem;
  margin-left: 0.3rem;
  padding: 0;
}

.appstric-header .wp-block-navigation .wp-block-navigation__submenu-icon svg {
  width: 1.1rem;
  height: 1.1rem;
  stroke-width: 1.75;
}

/* Checklist component (.appstric-points), used across the site */
main ul.appstric-points.wp-block-list {
  list-style: none;
  margin: clamp(1.75rem, 3vw, 2.5rem) 0;
  padding: clamp(0.5rem, 1vw, 0.75rem) var(--ap-pad, 2rem);
  border-radius: var(--radius);
  background: var(--mist);
}

main ul.appstric-points.wp-block-list > li {
  position: relative;
  margin: 0;
  padding: 1.05rem 0 1.05rem 2.25rem;
  border-bottom: 1px solid var(--line);
  font-size: 1.05rem;
  line-height: 1.5;
  color: var(--ink);
}

main ul.appstric-points.wp-block-list > li:last-child {
  border-bottom: 0;
}

main ul.appstric-points.wp-block-list > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 1.35rem;
  height: 1.35rem;
  transform: translateY(-50%);
  border-radius: 999px;
  background: var(--signal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 0.8rem no-repeat;
}

/* Article closing CTA ("Keep building.") */
main .appstric-wrap > h2.appstric-cta-title {
  margin: 0;
}

main .appstric-wrap > h2.appstric-cta-title + p {
  max-width: 36rem;
  margin: 1.25rem 0 0;
  font-size: clamp(1.1rem, 1.4vw, 1.3rem);
  line-height: 1.5;
  color: var(--steel);
}

main .appstric-wrap > h2.appstric-cta-title ~ .wp-block-buttons {
  margin-top: clamp(1.75rem, 3vw, 2.5rem);
  gap: 0.75rem;
}

/* Article: table of contents stays in view while reading */
main .appstric-article > .appstric-toc {
  align-self: start;
  top: calc(var(--header-h, 4.5rem) + 2rem);
  transition: top 0.32s var(--ease-out);
}

body.admin-bar main .appstric-article > .appstric-toc {
  top: calc(var(--header-h, 4.5rem) + 2rem + 32px);
}

/* When the header slides away, sticky bars move up with it (no empty strip) */
main .appstric-cap-nav {
  transition: top 0.32s var(--ease-out);
}

html:has(.appstric-header.amm-header-hidden) main .appstric-cap-nav {
  top: 0;
}

html:has(.appstric-header.amm-header-hidden) body.admin-bar main .appstric-cap-nav {
  top: 32px;
}

html:has(.appstric-header.amm-header-hidden) main .appstric-article > .appstric-toc {
  top: 2rem;
}

html:has(.appstric-header.amm-header-hidden) body.admin-bar main .appstric-article > .appstric-toc {
  top: calc(2rem + 32px);
}

@media (max-width: 782px) {
  html:has(.appstric-header.amm-header-hidden) body.admin-bar main .appstric-cap-nav {
    top: 0;
  }
}

/* ==========================================================================
   Phase 7 (2026-10-06): footer wordmark "Signal". Remove this block to revert.
   ========================================================================== */
.appstric-wordmark-stage.wp-block-cover {
  position: relative;
  overflow: hidden;
}

/* Studio line above the mark */
.appstric-wordmark-meta.wp-block-group {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.5rem 2rem;
  margin: 0 0 clamp(1rem, 3vw, 2.5rem);
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.appstric-wordmark-meta > p {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
}

.appstric-clock {
  color: #fff;
  font-variant-numeric: tabular-nums;
}

.appstric-clock::before {
  content: "";
  display: inline-block;
  width: 0.45rem;
  height: 0.45rem;
  margin-right: 0.45rem;
  border-radius: 999px;
  background: #3ddc84;
  vertical-align: 0.05rem;
  animation: appstric-blink 2.4s ease-in-out infinite;
}

@keyframes appstric-blink {
  50% { opacity: 0.25; }
}

/* The mark */
p.appstric-wordmark {
  margin: 0;
  padding-block: 0.02em 0.14em;
  line-height: 0.95;
  white-space: nowrap;
  overflow: visible;
  clip-path: inset(-0.05em -0.6em -0.02em -0.6em);
  cursor: default;
  user-select: none;
}

p.appstric-wordmark .wm-l {
  display: inline-block;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(255, 255, 255, 0.24);
  background-image:
    radial-gradient(
      circle min(30vw, 460px) at calc(var(--mx, -999px) - var(--ox, 0px)) calc(var(--my, -999px) - var(--oy, 0px)),
      #ffffff 0%,
      #d6d8ff 14%,
      var(--signal) 34%,
      rgba(47, 59, 255, 0) 60%
    ),
    linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05));
  -webkit-background-clip: text;
  background-clip: text;
  transform: translateY(105%);
  opacity: 0;
  transition:
    transform 1.1s var(--ease-out) calc(var(--i, 0) * 70ms),
    opacity 0.7s ease calc(var(--i, 0) * 70ms);
}

p.appstric-wordmark.is-in .wm-l {
  transform: none;
  opacity: 1;
}

p.appstric-wordmark.is-in .wm-l:hover {
  transform: translateY(-4%);
  transition-delay: 0s;
  transition-duration: 0.45s;
}

p.appstric-wordmark .appstric-wordmark__dot {
  display: inline-block;
  color: var(--warm);
  -webkit-text-stroke: 0;
  transform: translateY(-140%) scale(0.5);
  opacity: 0;
  transition:
    transform 0.9s cubic-bezier(0.34, 1.56, 0.64, 1) 0.75s,
    opacity 0.3s ease 0.75s;
}

p.appstric-wordmark.is-in .appstric-wordmark__dot {
  transform: none;
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  p.appstric-wordmark .wm-l,
  p.appstric-wordmark .appstric-wordmark__dot {
    transform: none;
    opacity: 1;
    transition: none;
  }

  .appstric-clock::before {
    animation: none;
  }
}

@media (max-width: 781px) {
  .appstric-wordmark-meta > p:nth-child(2) {
    display: none;
  }

  p.appstric-wordmark .wm-l {
    -webkit-text-stroke-width: 1px;
  }
}
