*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/

/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box;
  /* 1 */
  border-width: 0;
  /* 2 */
  border-style: solid;
  /* 2 */
  border-color: #e5e7eb;
  /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -moz-tab-size: 4;
  /* 3 */
  -o-tab-size: 4;
     tab-size: 4;
  /* 3 */
  font-family: Instrument Sans, system-ui, sans-serif;
  /* 4 */
  font-feature-settings: normal;
  /* 5 */
  font-variation-settings: normal;
  /* 6 */
  -webkit-tap-highlight-color: transparent;
  /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0;
  /* 1 */
  line-height: inherit;
  /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0;
  /* 1 */
  color: inherit;
  /* 2 */
  border-top-width: 1px;
  /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

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

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: IBM Plex Mono, Consolas, monospace;
  /* 1 */
  font-feature-settings: normal;
  /* 2 */
  font-variation-settings: normal;
  /* 3 */
  font-size: 1em;
  /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0;
  /* 1 */
  border-color: inherit;
  /* 2 */
  border-collapse: collapse;
  /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-feature-settings: inherit;
  /* 1 */
  font-variation-settings: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  font-weight: inherit;
  /* 1 */
  line-height: inherit;
  /* 1 */
  letter-spacing: inherit;
  /* 1 */
  color: inherit;
  /* 1 */
  margin: 0;
  /* 2 */
  padding: 0;
  /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button;
  /* 1 */
  background-color: transparent;
  /* 2 */
  background-image: none;
  /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/

dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/

:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  /* 1 */
  vertical-align: middle;
  /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */

[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}

.container {
  width: 100%;
}

@media (min-width: 640px) {
  .container {
    max-width: 640px;
  }
}

@media (min-width: 768px) {
  .container {
    max-width: 768px;
  }
}

@media (min-width: 1024px) {
  .container {
    max-width: 1024px;
  }
}

@media (min-width: 1280px) {
  .container {
    max-width: 1280px;
  }
}

@media (min-width: 1536px) {
  .container {
    max-width: 1536px;
  }
}

.visible {
  visibility: visible;
}

.hidden {
  display: none;
}

.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.resize {
  resize: both;
}

.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.ease-out {
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}

:root {
  --gallery: #f3f4f2;
  --paper: #fbfcfa;
  --ink: #17191f;
  --mist: #dee2e8;
  --graphite: #505764;
  --proof: #3155d9;
  --proof-deep: #203ca8;
  --coral: #ff705d;
  --line: rgb(23 25 31 / 16%);
  --line-light: rgb(243 244 242 / 20%);
  --container-max: 90rem;
  --container-gutter: clamp(1rem, 3vw, 3rem);
  --section-space: clamp(5.5rem, 10vw, 10rem);
  --header-height: 4.25rem;
}

* {
  box-sizing: border-box;
}

html {
  background: var(--gallery);
  color: var(--ink);
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-height) + 1rem);
}

body {
  min-width: 320px;
  margin: 0;
  overflow-x: clip;
  background: var(--gallery);
  color: var(--ink);
  font-family: 'Instrument Sans', system-ui, sans-serif;
  font-size: 1rem;
  line-height: 1.55;
  text-rendering: optimizeLegibility;
}

body.menu-open {
  overflow: hidden;
}

main {
  overflow: clip;
}

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

picture {
  display: block;
}

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

button,
input,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

button:disabled {
  cursor: not-allowed;
}

h1,
h2,
h3,
p,
figure,
blockquote,
dl,
dd,
ol,
ul {
  margin: 0;
}

ol,
ul {
  padding: 0;
}

h1,
h2,
h3 {
  font-family: 'Bricolage Grotesque', 'Instrument Sans', sans-serif;
  font-weight: 650;
  letter-spacing: -0.055em;
  line-height: 0.92;
  text-wrap: balance;
}

h1 {
  max-width: 10ch;
  font-size: clamp(3.25rem, 8.2vw, 8.5rem);
}

h2 {
  max-width: 12ch;
  font-size: clamp(2.45rem, 5.4vw, 5.85rem);
}

h3 {
  font-size: clamp(1.45rem, 2.25vw, 2.35rem);
}

em {
  font-family: 'Instrument Serif', Georgia, serif;
  font-weight: 400;
}

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

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

:focus-visible {
  outline: 3px solid var(--proof);
  outline-offset: 4px;
}

[hidden] {
  display: none !important;
}

.page-shell {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-gutter);
}

.section {
  position: relative;
  padding-block: var(--section-space);
}

.kicker,
.proof-label,
.service-number,
.work-case__category,
.contact-details dt,
.hero-notes dt {
  color: var(--graphite);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.11em;
  line-height: 1.35;
  text-transform: uppercase;
}

.kicker::before {
  display: inline-block;
  width: 0.48rem;
  height: 0.48rem;
  margin-right: 0.6rem;
  background: var(--coral);
  content: '';
  vertical-align: 0.05em;
}

.lede {
  max-width: 37rem;
  color: var(--graphite);
  font-size: clamp(1.05rem, 1.55vw, 1.3rem);
  line-height: 1.55;
}

.section-heading {
  display: grid;
  gap: 1.5rem;
  margin-bottom: clamp(2.5rem, 5vw, 5.5rem);
}

.section-heading > .kicker {
  margin-bottom: 0.25rem;
}

.section-heading--split {
  grid-template-columns: minmax(0, 1.12fr) minmax(15rem, 0.55fr);
  align-items: end;
  gap: clamp(2rem, 7vw, 9rem);
}

.section-heading--split > p {
  max-width: 28rem;
  color: var(--graphite);
}

.skip-link {
  position: fixed;
  z-index: 100;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.7rem 0.9rem;
  transform: translateY(-150%);
  background: var(--proof);
  color: white;
  font-weight: 700;
  transition: transform 150ms ease;
}

.skip-link:focus {
  transform: translateY(0);
}

/* Header */

.site-header {
  position: sticky;
  z-index: 40;
  top: 0;
  border-bottom: 1px solid transparent;
  background: rgb(243 244 242 / 88%);
  backdrop-filter: blur(12px);
  transition:
    border-color 180ms ease,
    background-color 180ms ease;
}

.site-header.is-scrolled {
  border-color: var(--line);
  background: rgb(243 244 242 / 96%);
}

.site-header__row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  min-height: var(--header-height);
  gap: clamp(1rem, 3vw, 3rem);
}

.wordmark {
  color: var(--ink);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 0.69rem;
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 1;
  white-space: nowrap;
}

.wordmark span {
  color: var(--proof);
}

.desktop-nav {
  display: flex;
  justify-content: center;
  gap: clamp(0.8rem, 2vw, 2.1rem);
}

.nav-link {
  position: relative;
  color: var(--graphite);
  font-size: 0.84rem;
  font-weight: 600;
  line-height: 1;
}

.nav-link::after {
  position: absolute;
  right: 0;
  bottom: -0.48rem;
  left: 0;
  height: 1px;
  transform: scaleX(0);
  transform-origin: right;
  background: var(--ink);
  content: '';
  transition: transform 180ms ease;
}

.nav-link:hover,
.nav-link:focus-visible,
.nav-link[aria-current] {
  color: var(--ink);
}

.nav-link:hover::after,
.nav-link:focus-visible::after,
.nav-link[aria-current]::after {
  transform: scaleX(1);
  transform-origin: left;
}

.nav-cta,
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  min-height: 2.8rem;
  border: 1px solid currentcolor;
  border-radius: 0;
  padding: 0.7rem 0.9rem;
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 0.69rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1.1;
  text-align: center;
  text-transform: uppercase;
  transition:
    background-color 160ms ease,
    border-color 160ms ease,
    color 160ms ease,
    transform 160ms ease;
}

.nav-cta {
  min-height: 2.75rem;
  border-color: var(--ink);
  padding: 0.55rem 0.8rem;
}

.nav-cta:hover,
.nav-cta:focus-visible {
  border-color: var(--proof);
  background: var(--proof);
  color: white;
}

.button:hover,
.button:focus-visible {
  transform: translateY(-2px);
}

.button-primary {
  border-color: var(--proof);
  background: var(--proof);
  color: white;
}

.button-primary:hover,
.button-primary:focus-visible {
  border-color: var(--proof-deep);
  background: var(--proof-deep);
}

.button-secondary {
  border-color: var(--ink);
  background: transparent;
  color: var(--ink);
}

.button-secondary:hover,
.button-secondary:focus-visible {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--gallery);
}

.button-quiet {
  min-height: auto;
  border-color: transparent;
  padding-inline: 0;
  color: inherit;
  text-transform: none;
}

.button-quiet:hover,
.button-quiet:focus-visible {
  transform: none;
  color: var(--coral);
}

.menu-button {
  display: none;
  min-width: 3.5rem;
  min-height: 2.75rem;
  border: 1px solid var(--ink);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
}

.mobile-menu {
  position: fixed;
  z-index: 35;
  inset: var(--header-height) 0 0;
  display: none;
  align-content: start;
  padding-block: 2rem;
  border-bottom: 1px solid var(--line);
  background: var(--gallery);
}

.mobile-menu__inner {
  display: grid;
  align-content: start;
  gap: 2.5rem;
}

.mobile-menu[aria-hidden='true'] {
  display: none;
}

.mobile-menu nav {
  display: grid;
  border-top: 1px solid var(--line);
}

.mobile-menu nav a {
  padding-block: 1rem;
  border-bottom: 1px solid var(--line);
  font-family: 'Bricolage Grotesque', 'Instrument Sans', sans-serif;
  font-size: clamp(1.8rem, 8vw, 3rem);
  font-weight: 600;
  letter-spacing: -0.05em;
  line-height: 1;
}

.mobile-menu .nav-cta {
  justify-self: start;
}

/* Hero */

.hero-section {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: clamp(0.75rem, 1.8svh, 1.5rem);
  min-height: calc(100svh - var(--header-height));
  padding-top: clamp(1.5rem, 3svh, 2.75rem);
  padding-bottom: 0;
}

.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.96fr) minmax(24rem, 0.8fr);
  align-items: center;
  gap: clamp(2.5rem, 5vw, 6rem);
  min-height: 0;
}

.hero-copy {
  position: relative;
  z-index: 2;
}

.hero-copy h1 {
  font-size: clamp(4rem, 6.6vw, 7.5rem);
}

.hero-copy .kicker {
  margin-bottom: clamp(1rem, 2svh, 1.75rem);
}

.hero-copy h1 > span {
  display: block;
}

.hero-copy .lede {
  margin-top: clamp(1.1rem, 2svh, 1.8rem);
}

.action-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem 1.75rem;
  margin-top: clamp(1.25rem, 2.5svh, 2rem);
}

.text-action {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-bottom: 1px solid var(--ink);
  padding-bottom: 0.2rem;
  font-size: 0.92rem;
  font-weight: 650;
  transition:
    color 160ms ease,
    border-color 160ms ease;
}

.text-action:hover,
.text-action:focus-visible {
  border-color: var(--proof);
  color: var(--proof);
}

.hero-notes {
  display: flex;
  gap: 1.75rem;
  margin-top: clamp(1.5rem, 3svh, 2.75rem);
  padding-top: 0.8rem;
  border-top: 1px solid var(--line);
}

.hero-notes div {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.65rem;
  max-width: 15rem;
}

.hero-notes dt {
  color: var(--proof);
}

.hero-notes dd {
  color: var(--graphite);
  font-size: 0.8rem;
  line-height: 1.35;
}

.hero-stage {
  position: relative;
  align-self: center;
  width: 100%;
  min-height: clamp(27rem, calc(100svh - var(--header-height) - 7.5rem), 43rem);
  isolation: isolate;
}

.hero-proof {
  position: absolute;
  margin: 0;
  overflow: hidden;
  background: var(--ink);
  box-shadow: 0 1.1rem 2.8rem rgb(23 25 31 / 14%);
}

.hero-proof picture,
.hero-proof img {
  width: 100%;
  height: 100%;
}

.hero-proof img {
  -o-object-fit: cover;
     object-fit: cover;
}

.hero-proof figcaption {
  position: absolute;
  right: 0.65rem;
  bottom: 0.65rem;
  left: 0.65rem;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.48rem 0.55rem;
  background: rgb(243 244 242 / 95%);
  color: var(--ink);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 0.59rem;
  letter-spacing: 0.02em;
  line-height: 1.2;
}

.hero-proof figcaption span {
  color: var(--proof);
}

.hero-proof figcaption strong {
  font-weight: 600;
}

.hero-proof--primary {
  z-index: 1;
  right: 4%;
  bottom: 0;
  width: min(75%, 31rem);
  height: 91%;
}

.hero-proof--secondary {
  z-index: 2;
  top: 11%;
  left: 1%;
  width: 34%;
  aspect-ratio: 1 / 0.78;
  transform: rotate(-4deg);
}

.hero-proof--tertiary {
  z-index: 3;
  right: 0;
  bottom: 6%;
  width: 31%;
  aspect-ratio: 1 / 0.8;
  transform: rotate(4deg);
}

.approval-frame {
  position: relative;
}

.approval-frame::before,
.approval-frame::after,
.approval-frame__corner {
  position: absolute;
  z-index: 4;
  pointer-events: none;
  content: '';
}

.approval-frame::before {
  top: -0.55rem;
  left: -0.55rem;
  width: 2.2rem;
  height: 2.2rem;
  border-top: 3px solid var(--proof);
  border-left: 3px solid var(--proof);
}

.approval-frame::after {
  right: -0.55rem;
  bottom: -0.55rem;
  width: 2.2rem;
  height: 2.2rem;
  border-right: 3px solid var(--proof);
  border-bottom: 3px solid var(--proof);
}

.approval-frame__corner--top {
  top: -0.54rem;
  right: -0.54rem;
  width: 0.82rem;
  height: 0.82rem;
  background: var(--coral);
}

.hero-stage__label {
  position: absolute;
  z-index: 5;
  top: 49%;
  left: -5.5rem;
  color: var(--graphite);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 0.58rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transform: rotate(-90deg);
  transform-origin: left top;
}

.capability-ribbon {
  display: flex;
  gap: 0;
  overflow: hidden;
  width: 100%;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.capability-ribbon span {
  flex: 1 0 auto;
  padding: 0.85rem clamp(1rem, 3vw, 3rem);
  border-right: 1px solid var(--line);
  color: var(--graphite);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 0.61rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-align: center;
  text-transform: uppercase;
}

/* Positioning */

.about-section {
  padding-block: clamp(3.75rem, 7svh, 5.5rem);
  background: var(--mist);
}

.positioning-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(17rem, 0.56fr);
  -moz-column-gap: clamp(2.5rem, 8vw, 8rem);
       column-gap: clamp(2.5rem, 8vw, 8rem);
  row-gap: clamp(1.75rem, 4svh, 2.75rem);
}

.positioning-copy .kicker {
  margin-bottom: clamp(0.75rem, 1.5svh, 1rem);
}

.positioning-copy h2 {
  font-size: clamp(2.5rem, 4.4vw, 4.75rem);
  line-height: 0.95;
}

.positioning-copy .lede {
  max-width: 34rem;
  margin-top: clamp(1rem, 2.2svh, 1.5rem);
  font-size: clamp(1rem, 1.2vw, 1.12rem);
  line-height: 1.5;
}

.about-section .kicker,
.about-section .proof-label {
  font-size: clamp(0.61rem, 0.65vw, 0.68rem);
  letter-spacing: 0.1em;
}

.positioning-notes {
  align-self: end;
}

.positioning-notes > .proof-label {
  margin-bottom: 0.7rem;
}

.positioning-notes ol {
  list-style: none;
  border-top: 1px solid var(--line);
}

.positioning-notes li {
  display: grid;
  grid-template-columns: 1.75rem 1fr;
  -moz-column-gap: 0.65rem;
       column-gap: 0.65rem;
  padding: clamp(0.7rem, 1.5svh, 0.85rem) 0;
  border-bottom: 1px solid var(--line);
}

.positioning-notes li > span {
  grid-row: span 2;
  color: var(--proof);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 0.61rem;
}

.positioning-notes strong {
  font-size: 0.85rem;
}

.positioning-notes li p {
  color: var(--graphite);
  font-size: 0.76rem;
  line-height: 1.4;
}

.proof-table {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.proof-table article {
  min-height: clamp(10.5rem, 21svh, 12.5rem);
  padding: clamp(1.1rem, 1.8vw, 1.7rem);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.proof-table .proof-label {
  margin-bottom: clamp(1.25rem, 2.5svh, 1.75rem);
}

.proof-table h3 {
  font-size: clamp(1.2rem, 1.6vw, 1.55rem);
  line-height: 1;
}

.proof-table p:last-child {
  max-width: 30rem;
  margin-top: 0.7rem;
  color: var(--graphite);
  font-size: 0.84rem;
  line-height: 1.42;
}

@media (min-width: 64rem) {
  .about-section {
    display: grid;
    min-height: calc(100svh - var(--header-height));
    align-items: center;
    padding-block: clamp(2.25rem, 5svh, 4.5rem);
  }
}

/* Services */

.services-section {
  padding-block: clamp(4rem, 6.5vw, 6.25rem);
  background: var(--paper);
}

.services-section .section-heading {
  margin-bottom: clamp(2.25rem, 3.5vw, 3.25rem);
}

.services-section .section-heading--split {
  grid-template-columns: minmax(0, 1.08fr) minmax(18rem, 0.62fr);
  align-items: end;
  gap: clamp(2.5rem, 6vw, 6rem);
}

.services-section .kicker {
  margin-bottom: clamp(0.75rem, 1.2vw, 1rem);
}

.services-section h2 {
  max-width: 11ch;
  font-size: clamp(2.75rem, 4vw, 4rem);
  line-height: 0.96;
}

.services-section .section-heading--split > p {
  justify-self: end;
  max-width: 31rem;
  font-size: clamp(1rem, 1.1vw, 1.1rem);
  line-height: 1.5;
}

.service-list {
  border-top: 1px solid var(--line);
}

.service-row {
  border-bottom: 1px solid var(--line);
}

.service-row__trigger {
  position: relative;
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr) 2rem;
  align-items: center;
  width: 100%;
  min-height: 4.75rem;
  gap: clamp(0.8rem, 1.5vw, 1.35rem);
  border: 0;
  padding: clamp(0.9rem, 1.25vw, 1.15rem) 0;
  background: transparent;
  color: var(--ink);
  text-align: left;
}

.service-row__trigger[aria-expanded='true'] .service-row__title strong {
  color: var(--proof);
}

.service-number {
  padding-top: 0.16rem;
  color: var(--proof);
}

.service-row__title {
  display: grid;
  grid-template-columns: minmax(12rem, 0.82fr) minmax(13rem, 0.75fr);
  align-items: baseline;
  gap: clamp(1rem, 2.2vw, 2rem);
}

.service-row__title strong {
  font-family: 'Bricolage Grotesque', 'Instrument Sans', sans-serif;
  font-size: clamp(1.4rem, 1.75vw, 1.85rem);
  font-weight: 600;
  letter-spacing: -0.045em;
  line-height: 1;
  transition: color 160ms ease;
}

.service-row__title small {
  max-width: 24rem;
  color: var(--graphite);
  font-size: clamp(0.84rem, 0.88vw, 0.92rem);
  line-height: 1.4;
}

.service-row__indicator {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border: 1px solid var(--line);
  color: var(--proof);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 1.15rem;
  line-height: 1;
  transition:
    background-color 160ms ease,
    color 160ms ease,
    transform 160ms ease;
}

.service-row__trigger[aria-expanded='true'] .service-row__indicator {
  border-color: var(--proof);
  background: var(--proof);
  color: white;
  transform: rotate(45deg);
}

.service-panel {
  display: grid;
  grid-template-columns: minmax(8rem, 40%) minmax(0, 1fr);
  align-items: center;
  gap: clamp(0.9rem, 2vw, 1.5rem);
  margin: 0 0 1.25rem 3.3rem;
  padding: 0.55rem;
  border: 1px solid var(--line);
  background: var(--gallery);
}

.service-panel img {
  width: 100%;
  height: clamp(8.5rem, 16vw, 12rem);
  -o-object-fit: cover;
     object-fit: cover;
}

.service-panel figcaption {
  max-width: 20rem;
  padding: 0.65rem 0.35rem;
  color: var(--graphite);
  font-size: clamp(0.85rem, 0.92vw, 0.94rem);
  line-height: 1.4;
}

.service-panel figcaption span {
  display: block;
  margin-bottom: 0.4rem;
  color: var(--proof);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 0.61rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

@media (min-width: 64.0625rem) {
  .services-section[data-services-enhanced='true'] .service-list {
    display: grid;
    grid-template-columns: minmax(0, 1.68fr) minmax(18rem, 1fr);
    grid-template-rows: repeat(4, auto);
    -moz-column-gap: clamp(2rem, 4vw, 4.5rem);
         column-gap: clamp(2rem, 4vw, 4.5rem);
    border-bottom: 1px solid var(--line);
  }

  .services-section[data-services-enhanced='true'] .service-row {
    display: contents;
  }

  .services-section[data-services-enhanced='true'] .service-row__trigger {
    grid-column: 1;
    border-bottom: 1px solid var(--line);
    transition:
      color 260ms cubic-bezier(0.22, 1, 0.36, 1),
      transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
  }

  .services-section[data-services-enhanced='true'] .service-row__trigger[aria-expanded='true'] {
    transform: translateX(0.25rem);
  }

  .services-section[data-services-enhanced='true'] .service-row:last-child .service-row__trigger {
    border-bottom: 0;
  }

  .services-section[data-services-enhanced='true'] .service-panel {
    z-index: 0;
    grid-column: 2;
    grid-row: 1 / -1;
    grid-template-columns: 1fr;
    align-self: stretch;
    gap: 0;
    min-height: clamp(20rem, 28vw, 27rem);
    margin: 0;
    padding: 0.65rem;
    opacity: 0;
    pointer-events: none;
    transform: translateY(0.75rem) scale(0.988);
    visibility: hidden;
    transition:
      opacity 620ms ease,
      transform 760ms cubic-bezier(0.22, 1, 0.36, 1),
      visibility 0s linear 760ms;
  }

  .services-section[data-services-enhanced='true'] .service-panel[data-state='active'] {
    z-index: 2;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
    visibility: visible;
    transition-delay: 80ms, 0ms, 0ms;
  }

  .services-section[data-services-enhanced='true'] .service-panel[data-state='leaving'] {
    z-index: 1;
    opacity: 0;
    transform: translateY(-0.55rem) scale(1.006);
    visibility: visible;
  }

  .services-section[data-services-enhanced='true'] .service-panel picture {
    overflow: hidden;
  }

  .services-section[data-services-enhanced='true'] .service-panel img {
    height: clamp(16.5rem, 23vw, 22.75rem);
    transform: scale(1.012);
    transition: transform 900ms cubic-bezier(0.22, 1, 0.36, 1);
  }

  .services-section[data-services-enhanced='true'] .service-panel[data-state='active'] img {
    transform: scale(1);
  }

  .services-section[data-services-enhanced='true'] .service-panel figcaption {
    max-width: none;
    padding: 0.85rem 0.35rem 0.35rem;
  }
}

/* Work rail */

.portfolio-section {
  padding-block: clamp(4rem, 7vw, 6rem);
  background: var(--ink);
  color: var(--gallery);
}

.portfolio-heading {
  grid-template-columns: 1fr;
  gap: 1.2rem;
  margin-bottom: clamp(2rem, 5vw, 3rem);
}

.portfolio-section h2 {
  max-width: 11ch;
  font-size: clamp(2.4rem, 10vw, 3.35rem);
  line-height: 0.96;
}

.portfolio-section .kicker,
.portfolio-section .section-heading--split > p,
.portfolio-section .lede {
  color: rgb(243 244 242 / 66%);
}

.portfolio-section .kicker {
  margin-bottom: 0.8rem;
}

.portfolio-section .section-heading--split > p {
  max-width: 32rem;
  font-size: clamp(0.94rem, 3.8vw, 1.05rem);
  line-height: 1.5;
}

.portfolio-section .kicker::before {
  background: var(--coral);
}

.portfolio-section[data-motion='pending'] .portfolio-heading,
.portfolio-section[data-motion='pending'] .work-rail__visual,
.portfolio-section[data-motion='pending'] .work-rail__caption-stack,
.portfolio-section[data-motion='pending'] .work-case__content {
  opacity: 0;
}

.work-rail {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: 2rem;
}

.work-rail__media {
  position: relative;
  overflow: visible;
  margin: 0;
}

.work-rail__visual {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: rgb(243 244 242 / 4%);
  isolation: isolate;
}

.work-rail__media picture,
.work-rail__media img {
  width: 100%;
  height: 100%;
}

.work-rail__media picture {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
  backface-visibility: hidden;
  transform: translateZ(0);
}

.work-rail__media picture[data-layer='active'] {
  z-index: 2;
}

.work-rail__media picture[data-layer='inactive'] {
  z-index: 0;
  opacity: 0;
}

.work-rail__media picture[data-layer='leaving'] {
  z-index: 1;
}

.work-rail__media img {
  -o-object-fit: cover;
     object-fit: cover;
}

.work-rail__caption-stack {
  position: relative;
  min-height: clamp(7.5rem, 12vw, 9.25rem);
}

.work-rail__caption {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-content: start;
  -moz-column-gap: 1rem;
       column-gap: 1rem;
  row-gap: 0.35rem;
  padding-top: 1rem;
  backface-visibility: hidden;
}

.work-rail__caption[data-layer='active'] {
  z-index: 2;
}

.work-rail__caption[data-layer='inactive'] {
  z-index: 0;
  opacity: 0;
}

.work-rail__caption[data-layer='leaving'] {
  z-index: 1;
}

.work-rail__caption [data-work-kicker],
.work-case__category {
  color: rgb(243 244 242 / 62%);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 0.09em;
  line-height: 1.35;
  text-transform: uppercase;
}

.work-rail__caption h3 {
  grid-column: 1 / -1;
  max-width: 16ch;
  color: var(--gallery);
  font-size: clamp(1.7rem, 6.5vw, 2.35rem);
  line-height: 0.98;
}

.work-rail__caption [data-work-meta] {
  color: var(--coral);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-align: right;
  text-transform: uppercase;
}

.work-rail__caption [data-work-description] {
  grid-column: 1 / -1;
  max-width: 38rem;
  margin-top: 0.15rem;
  color: rgb(243 244 242 / 69%);
  font-size: 0.86rem;
  line-height: 1.45;
}

.work-rail__list {
  border-top: 1px solid var(--line-light);
}

.work-case {
  position: relative;
  display: grid;
  padding: 0;
  border-bottom: 1px solid var(--line-light);
  scroll-margin-top: calc(var(--header-height) + 1.5rem);
}

.work-case:focus-visible {
  outline-offset: -3px;
}

.work-case__media,
.work-case__facts,
.work-case__deliverables {
  position: absolute;
  overflow: hidden;
  width: 1px;
  height: 1px;
  padding: 0;
  border: 0;
  margin: -1px;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.work-case__content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-content: center;
  width: 100%;
  min-height: 100%;
  -moz-column-gap: 1rem;
       column-gap: 1rem;
  row-gap: 0.35rem;
  padding: 1rem 0.5rem 1rem 1rem;
  transition:
    opacity 320ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.work-case h3 {
  grid-column: 1 / -1;
  max-width: 18ch;
  color: rgb(243 244 242 / 62%);
  font-size: clamp(1.35rem, 5.6vw, 1.75rem);
  line-height: 1;
  transition: color 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

.work-case__tag {
  color: var(--coral);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 0.58rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-align: right;
  text-transform: uppercase;
}

.work-case__description {
  grid-column: 1 / -1;
  max-width: 32rem;
  color: rgb(243 244 242 / 59%);
  font-size: 0.82rem;
  line-height: 1.42;
}

.work-case.is-active h3,
.work-case:hover h3,
.work-case:focus-within h3 {
  color: var(--gallery);
}

.work-case.is-active .work-case__content {
  transform: translateX(0.22rem);
}

@media (hover: hover) and (pointer: fine) {
  .work-case:hover .work-case__content,
  .work-case:focus-within .work-case__content {
    transform: translateX(0.22rem);
  }
}

.work-case.is-active::before {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 0;
  width: 0.38rem;
  height: 0.38rem;
  background: var(--coral);
  content: '';
  transform: translateY(-50%);
}

@media (min-width: 48rem) {
  .portfolio-heading,
  .work-rail {
    grid-template-columns: minmax(0, 1.2fr) minmax(16rem, 0.72fr);
    -moz-column-gap: clamp(2rem, 5vw, 5rem);
         column-gap: clamp(2rem, 5vw, 5rem);
  }

  .portfolio-heading {
    align-items: end;
    margin-bottom: clamp(2.25rem, 4vw, 3.5rem);
  }

  .portfolio-section h2 {
    font-size: clamp(3rem, 4.3vw, 4.25rem);
  }

  .portfolio-section .section-heading--split > p {
    justify-self: end;
  }

  .work-rail__visual {
    aspect-ratio: 1.18 / 1;
  }

  .portfolio-section[data-work-rail-enhanced='true'] .work-rail__list {
    position: relative;
    align-self: stretch;
    height: clamp(24rem, 39vw, 31rem);
    overflow: hidden;
    border-bottom: 1px solid var(--line-light);
    contain: layout paint;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0, black 7%, black 93%, transparent 100%);
            mask-image: linear-gradient(to bottom, transparent 0, black 7%, black 93%, transparent 100%);
  }

  .portfolio-section[data-work-rail-enhanced='true'] .work-case {
    position: absolute;
    inset: 0 0 auto;
    height: var(--portfolio-row-height, 25%);
    border-top: 1px solid var(--line-light);
    border-bottom: 0;
    cursor: pointer;
    will-change: transform;
  }

  .portfolio-section[data-work-rail-enhanced='true'][data-rail-paused='false']
    .work-case:not(.is-active)
    .work-case__content {
    opacity: 0.62;
  }

  .work-case__description {
    position: absolute;
    overflow: hidden;
    width: 1px;
    height: 1px;
    padding: 0;
    border: 0;
    margin: -1px;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  .work-case h3 {
    font-size: clamp(1.25rem, 2.1vw, 1.75rem);
  }
}

@media (min-width: 64rem) {
  .work-rail__visual {
    aspect-ratio: 1.6 / 1;
  }
}

/* Process */

.process-section {
  padding-block: clamp(4rem, 7vw, 6.5rem);
  background: var(--mist);
}

.process-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.58fr);
  align-items: end;
  gap: clamp(1.5rem, 5vw, 6rem);
  max-width: none;
  margin-bottom: clamp(2.5rem, 4.5vw, 4rem);
}

.process-heading .kicker {
  grid-column: 1 / -1;
  margin-bottom: clamp(-0.5rem, -0.8vw, -0.25rem);
  font-size: clamp(0.61rem, 0.65vw, 0.68rem);
  letter-spacing: 0.1em;
}

.process-heading h2 {
  max-width: 15ch;
  font-size: clamp(2.65rem, 4vw, 4.25rem);
  letter-spacing: -0.052em;
  line-height: 0.94;
}

.process-heading .lede {
  justify-self: end;
  max-width: 30rem;
  margin: 0 0 0.15rem;
  font-size: clamp(0.98rem, 1.08vw, 1.08rem);
  line-height: 1.5;
}

.process-section[data-motion='pending'] .process-heading .kicker,
.process-section[data-motion='pending'] .process-heading h2,
.process-section[data-motion='pending'] .process-heading .lede,
.process-section[data-motion='pending'] .process-timeline > li {
  opacity: 0;
}

.process-timeline {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
  list-style: none;
}

.process-timeline li {
  display: grid;
  grid-template-rows: auto 1fr;
  min-height: clamp(13rem, 18vw, 16rem);
  padding: clamp(1.25rem, 2vw, 1.8rem);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.process-timeline li > p {
  margin: 0;
  color: var(--proof);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: clamp(0.61rem, 0.66vw, 0.68rem);
  font-weight: 600;
  letter-spacing: 0.07em;
  line-height: 1.35;
}

.process-timeline li > div {
  display: grid;
  align-content: end;
  gap: 0.7rem;
  padding-top: clamp(2.5rem, 4vw, 4rem);
}

.process-timeline h3 {
  font-size: clamp(1.3rem, 1.55vw, 1.6rem);
  letter-spacing: -0.045em;
  line-height: 1;
}

.process-timeline li div > p {
  max-width: 25rem;
  color: var(--graphite);
  font-size: clamp(0.84rem, 0.86vw, 0.9rem);
  line-height: 1.45;
}

.process-timeline li div > span {
  margin-top: 0.15rem;
  color: var(--proof);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: clamp(0.56rem, 0.59vw, 0.61rem);
  letter-spacing: 0.01em;
  line-height: 1.4;
}

/* Packages */

.pricing-section {
  padding-block: clamp(4.25rem, 7vw, 6.75rem);
  background: var(--paper);
}

.pricing-story {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(25rem, 1.12fr);
  align-items: end;
  gap: clamp(2.5rem, 7vw, 8rem);
  padding-bottom: clamp(3rem, 5vw, 4.75rem);
  border-bottom: 1px solid var(--ink);
}

.pricing-hook {
  display: grid;
  gap: clamp(1.25rem, 2.5vw, 2rem);
}

.pricing-hook__headline {
  display: grid;
  gap: 1rem;
}

.pricing-hook h2 {
  max-width: 10ch;
  font-size: clamp(2.8rem, 4.5vw, 4.6rem);
  line-height: 0.94;
}

.pricing-hook h2 em {
  position: relative;
  display: inline-block;
  color: var(--proof);
}

.pricing-hook h2 em::after {
  position: absolute;
  right: 0;
  bottom: -0.08em;
  left: 0;
  height: 0.09em;
  background: var(--coral);
  content: '';
  transform: scaleX(1);
  transform-origin: left;
}

.pricing-hook__copy {
  max-width: 32rem;
  color: var(--graphite);
  font-size: clamp(0.96rem, 1.1vw, 1.08rem);
  line-height: 1.5;
}

.pricing-entry {
  display: grid;
  grid-template-columns: minmax(12rem, 0.8fr) minmax(15rem, 1fr);
  align-items: end;
  gap: clamp(1.5rem, 3vw, 3rem);
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border-left: 3px solid var(--proof);
  background: var(--mist);
}

.pricing-entry > .proof-label {
  grid-column: 1 / -1;
  margin-bottom: clamp(-0.4rem, -0.5vw, -0.15rem);
}

.entry-price {
  position: relative;
  display: grid;
  align-content: end;
  justify-items: start;
  min-width: 0;
  color: var(--proof);
  font-family: 'IBM Plex Mono', Consolas, monospace;
}

.entry-price span,
.entry-price small {
  color: var(--graphite);
  font-size: clamp(0.59rem, 0.65vw, 0.66rem);
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.35;
  text-transform: uppercase;
}

.entry-price strong {
  position: relative;
  z-index: 0;
  display: inline-block;
  font-family: 'Bricolage Grotesque', 'Instrument Sans', sans-serif;
  font-size: clamp(4rem, 7vw, 7rem);
  font-weight: 650;
  letter-spacing: -0.08em;
  line-height: 0.88;
  transition:
    transform 240ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 300ms ease;
}

.entry-price strong::after {
  position: absolute;
  z-index: -1;
  right: -0.05em;
  bottom: 0.02em;
  left: 0.02em;
  height: 0.18em;
  background: var(--coral);
  content: '';
  transform: scaleX(1);
  transform-origin: left;
}

.pricing-entry__support {
  display: grid;
  gap: 0.85rem;
  min-width: 0;
}

.pricing-entry__lead {
  max-width: 26rem;
  color: var(--ink);
  font-size: clamp(1.05rem, 1.3vw, 1.25rem);
  font-weight: 650;
  letter-spacing: -0.025em;
  line-height: 1.3;
}

.pricing-entry__note {
  max-width: 30rem;
  color: var(--graphite);
  font-size: 0.78rem;
  line-height: 1.45;
}

.pricing-entry__examples {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.9rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--line);
  list-style: none;
}

.pricing-entry__examples li {
  position: relative;
  padding-left: 0.75rem;
  color: var(--graphite);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 0.58rem;
  line-height: 1.35;
}

.pricing-entry__examples li::before {
  position: absolute;
  top: 0.42em;
  left: 0;
  width: 0.28rem;
  height: 0.28rem;
  background: var(--coral);
  content: '';
}

.package-menu {
  padding-top: clamp(3rem, 5vw, 4.75rem);
}

.package-menu__heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.42fr);
  align-items: end;
  gap: clamp(2rem, 6vw, 6rem);
  margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

.package-menu__heading > div {
  display: grid;
  gap: 0.8rem;
}

.package-menu__heading h3 {
  max-width: 16ch;
  font-size: clamp(2rem, 3.2vw, 3.35rem);
  line-height: 0.96;
}

.package-menu__heading > p {
  justify-self: end;
  max-width: 25rem;
  color: var(--graphite);
  font-size: 0.9rem;
  line-height: 1.45;
}

.rate-sheet {
  border-top: 1px solid var(--ink);
}

.package-row {
  border-bottom: 1px solid var(--line);
}

.package-row__summary {
  display: grid;
  grid-template-columns: 2.25rem minmax(15rem, 1fr) minmax(9.5rem, 0.34fr) 2rem;
  align-items: center;
  gap: clamp(1rem, 2.5vw, 2.5rem);
  padding-block: clamp(1.25rem, 2vw, 1.75rem);
  cursor: pointer;
  list-style: none;
  transition:
    color 220ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.package-row__summary::-webkit-details-marker {
  display: none;
}

.package-row__number {
  align-self: start;
  padding-top: 0.25rem;
  color: var(--proof);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.35;
}

.package-row__intro {
  display: grid;
  grid-template-columns: minmax(10rem, 0.64fr) minmax(15rem, 0.72fr);
  align-items: baseline;
  gap: 0.55rem clamp(1.5rem, 4vw, 4.5rem);
  min-width: 0;
}

.package-row__intro .proof-label {
  grid-column: 1 / -1;
  font-size: 0.6rem;
}

.package-row__intro h4 {
  font-family: 'Bricolage Grotesque', 'Instrument Sans', sans-serif;
  font-size: clamp(1.45rem, 2vw, 2rem);
  font-weight: 650;
  letter-spacing: -0.05em;
  line-height: 1;
}

.package-row__intro > p:last-child {
  max-width: 28rem;
  color: var(--graphite);
  font-size: 0.84rem;
  line-height: 1.4;
  transition: color 180ms ease;
}

.package-price {
  display: grid;
  align-content: start;
  gap: 0.12rem;
  font-family: 'IBM Plex Mono', Consolas, monospace;
}

.package-price span {
  color: var(--graphite);
  font-size: 0.56rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.package-price strong {
  color: var(--proof);
  font-size: clamp(0.9rem, 1.1vw, 1.05rem);
  font-weight: 600;
  letter-spacing: -0.035em;
  line-height: 1.25;
  white-space: nowrap;
}

.package-price small {
  color: var(--graphite);
  font-size: 0.61rem;
  line-height: 1.35;
}

.package-row__indicator {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border: 1px solid var(--line);
  color: var(--proof);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 1.1rem;
  line-height: 1;
  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    color 180ms ease,
    transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.package-row[open] .package-row__indicator {
  border-color: var(--proof);
  background: var(--proof);
  color: white;
  transform: rotate(45deg);
}

.package-row__details {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.package-row[open] .package-row__details {
  grid-template-rows: 1fr;
}

.package-row__details ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem clamp(1rem, 3vw, 3rem);
  overflow: hidden;
  margin-left: 2.25rem;
  padding: 0 2.25rem 0 0;
  list-style: none;
}

.package-row[open] .package-row__details ul {
  padding-bottom: 1.5rem;
}

.package-row__details li {
  position: relative;
  padding-left: 0.9rem;
  color: var(--graphite);
  font-size: 0.78rem;
  line-height: 1.4;
}

.package-row__details li::before {
  position: absolute;
  top: 0.5em;
  left: 0;
  width: 0.3rem;
  height: 0.3rem;
  background: var(--coral);
  content: '';
}

.pricing-cta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem clamp(1.5rem, 3vw, 2.5rem);
  margin-top: clamp(2rem, 4vw, 3rem);
}

.pricing-cta p {
  color: var(--graphite);
  font-size: 0.78rem;
  line-height: 1.4;
}

.pricing-section[data-motion='pending'] [data-pricing-headline],
.pricing-section[data-motion='pending'] [data-pricing-hook-copy],
.pricing-section[data-motion='pending'] [data-pricing-entry-label],
.pricing-section[data-motion='pending'] [data-pricing-entry-support],
.pricing-section[data-motion='pending'] [data-pricing-price],
.pricing-section[data-motion='pending'] [data-pricing-packages-heading],
.pricing-section[data-motion='pending'] [data-pricing-package],
.pricing-section[data-motion='pending'] [data-pricing-cta] {
  opacity: 0;
}

.pricing-section[data-motion='pending'] [data-pricing-free]::after,
.pricing-section[data-motion='pending'] [data-pricing-price] strong::after {
  transform: scaleX(0);
}

@media (hover: hover) and (pointer: fine) {
  .entry-price:hover strong {
    transform: translateY(-2px) scale(1.015);
  }

  .package-row__summary:hover,
  .package-row__summary:focus-visible {
    transform: translateX(0.3rem);
  }

  .package-row__summary:hover .package-row__intro > p:last-child,
  .package-row__summary:focus-visible .package-row__intro > p:last-child {
    color: var(--ink);
  }

  .package-row__summary:hover .package-row__indicator,
  .package-row__summary:focus-visible .package-row__indicator {
    border-color: var(--proof);
    background: var(--proof);
    color: white;
  }
}

/* Testimonials */

.testimonials-section {
  padding-block: clamp(4rem, 6vw, 5.75rem);
  background: var(--mist);
}

.testimonial-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.4fr);
  align-items: end;
  gap: clamp(2rem, 6vw, 7rem);
  margin-bottom: clamp(2.5rem, 4vw, 3.5rem);
}

.testimonial-heading > div {
  display: grid;
  gap: 0.8rem;
}

.testimonial-heading h2 {
  max-width: 12ch;
  font-size: clamp(2.5rem, 3.6vw, 3.6rem);
  line-height: 0.98;
}

.testimonial-heading > p {
  justify-self: end;
  max-width: 24rem;
  color: var(--graphite);
  font-size: clamp(0.88rem, 0.95vw, 0.96rem);
  line-height: 1.5;
}

.testimonial-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 3.5rem);
}

.testimonial {
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-width: 0;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

.testimonial__number {
  color: var(--proof);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 0.09em;
  line-height: 1.35;
}

.testimonial blockquote {
  margin-block: clamp(1.75rem, 3vw, 2.75rem);
}

.testimonial blockquote p {
  font-family: 'Instrument Serif', Georgia, serif;
  font-size: clamp(1.4rem, 1.9vw, 1.85rem);
  font-style: italic;
  letter-spacing: -0.025em;
  line-height: 1.18;
}

.testimonial figcaption {
  display: grid;
  gap: 0.2rem;
  color: var(--graphite);
  font-size: 0.72rem;
  line-height: 1.4;
  opacity: 0.8;
  transition: opacity 180ms ease;
}

.testimonial figcaption strong {
  color: var(--ink);
  font-size: clamp(0.84rem, 0.9vw, 0.92rem);
  font-weight: 650;
}

.testimonials-section[data-motion='pending'] [data-testimonial-heading],
.testimonials-section[data-motion='pending'] [data-testimonial] {
  opacity: 0;
}

@media (hover: hover) and (pointer: fine) {
  .testimonial:hover figcaption {
    opacity: 1;
  }
}

/* FAQ */

.faq-section {
  background: var(--paper);
}

.faq-layout {
  display: grid;
  grid-template-columns: minmax(15rem, 0.56fr) minmax(0, 0.9fr);
  align-items: start;
  gap: clamp(2.5rem, 9vw, 12rem);
}

.faq-intro {
  position: sticky;
  top: calc(var(--header-height) + 1.4rem);
}

.faq-intro .kicker {
  margin-bottom: 1.25rem;
}

.faq-intro > p:not(.kicker) {
  max-width: 27rem;
  margin-top: 1.25rem;
  color: var(--graphite);
  font-size: 0.94rem;
  line-height: 1.45;
}

.faq-intro .button {
  margin-top: 1.8rem;
}

.faq-list {
  border-top: 1px solid var(--line);
}

.faq-item {
  border-bottom: 1px solid var(--line);
}

.faq-trigger {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1rem;
  padding: 1.2rem 0;
  color: var(--ink);
  cursor: pointer;
  font-family: 'Bricolage Grotesque', 'Instrument Sans', sans-serif;
  font-size: clamp(1.05rem, 1.65vw, 1.35rem);
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1.15;
  list-style: none;
}

.faq-trigger::-webkit-details-marker {
  display: none;
}

.faq-trigger svg {
  width: 1.2rem;
  height: 1.2rem;
  color: var(--proof);
  transition: transform 180ms ease;
}

.faq-item[open] .faq-trigger svg {
  transform: rotate(180deg);
}

.faq-answer {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 220ms ease;
}

.faq-item[open] .faq-answer {
  grid-template-rows: 1fr;
}

.faq-answer-inner {
  overflow: hidden;
}

.faq-answer p {
  max-width: 46rem;
  padding: 0 2.2rem 1.35rem 0;
  color: var(--graphite);
  font-size: 0.92rem;
  line-height: 1.55;
}

/* Brief */

.contact-section {
  background: var(--ink);
  color: var(--gallery);
}

.contact-section .kicker,
.contact-section .lede,
.contact-details dt {
  color: rgb(243 244 242 / 62%);
}

.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.74fr) minmax(22rem, 0.86fr);
  align-items: start;
  gap: clamp(2.5rem, 8vw, 10rem);
}

.contact-copy .kicker {
  margin-bottom: 1.25rem;
}

.contact-copy .lede {
  margin-top: 1.4rem;
}

.contact-details {
  display: grid;
  gap: 1rem;
  margin-top: clamp(2.5rem, 5vw, 4.5rem);
}

.contact-details div {
  display: grid;
  grid-template-columns: 6.3rem 1fr;
  gap: 1rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid var(--line-light);
}

.contact-details dd {
  color: var(--gallery);
  font-size: 0.9rem;
}

.contact-details a {
  text-decoration: underline;
  text-decoration-color: rgb(243 244 242 / 30%);
  text-underline-offset: 0.18em;
}

.contact-details a:hover,
.contact-details a:focus-visible {
  color: var(--coral);
}

.contact-form {
  padding: clamp(1.25rem, 3vw, 2.5rem);
  border: 1px solid rgb(243 244 242 / 22%);
  background: rgb(243 244 242 / 6%);
}

.contact-form fieldset {
  margin: 0;
  border: 0;
  padding: 0;
}

.contact-form legend,
.form-field label {
  display: block;
  margin-bottom: 0.65rem;
  color: var(--gallery);
  font-size: 0.83rem;
  font-weight: 650;
}

.contact-form legend {
  margin-bottom: 0.8rem;
}

.service-choices {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.service-chip {
  min-height: 2.3rem;
  border: 1px solid rgb(243 244 242 / 28%);
  border-radius: 0;
  padding: 0.45rem 0.6rem;
  background: transparent;
  color: rgb(243 244 242 / 76%);
  font-size: 0.72rem;
  line-height: 1.2;
  transition:
    background-color 150ms ease,
    border-color 150ms ease,
    color 150ms ease;
}

.service-chip:hover,
.service-chip:focus-visible,
.service-chip[aria-pressed='true'] {
  border-color: var(--proof);
  background: var(--proof);
  color: white;
}

.form-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.form-field {
  margin-top: 1.25rem;
}

.form-field input,
.form-field textarea {
  width: 100%;
  border: 1px solid rgb(243 244 242 / 30%);
  border-radius: 0;
  padding: 0.75rem 0.8rem;
  background: transparent;
  color: var(--gallery);
  font-size: 0.9rem;
  line-height: 1.45;
  transition:
    border-color 150ms ease,
    background-color 150ms ease;
}

.form-field textarea {
  resize: vertical;
}

.form-field input::-moz-placeholder, .form-field textarea::-moz-placeholder {
  color: rgb(243 244 242 / 45%);
}

.form-field input::placeholder,
.form-field textarea::placeholder {
  color: rgb(243 244 242 / 45%);
}

.form-field input:hover,
.form-field textarea:hover {
  border-color: rgb(243 244 242 / 58%);
}

.form-field input:focus,
.form-field textarea:focus {
  border-color: var(--proof);
  outline: 0;
  background: rgb(243 244 242 / 5%);
}

.form-field input:user-invalid,
.form-field textarea:user-invalid {
  border-color: var(--coral);
}

.form-field input[aria-invalid='true'],
.form-field textarea[aria-invalid='true'] {
  border-color: var(--coral);
}

.brief-summary,
.form-status {
  min-height: 1.3em;
  margin-top: 0.95rem;
  color: rgb(243 244 242 / 66%);
  font-size: 0.76rem;
  line-height: 1.4;
}

.form-status.is-error {
  color: #ff9e90;
}

.form-status.is-success {
  color: #b8c7ff;
}

.form-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  margin-top: 1.35rem;
}

.form-fallback {
  margin-top: 1rem;
  color: rgb(243 244 242 / 72%);
  font-size: 0.78rem;
  line-height: 1.4;
}

.form-fallback a {
  color: var(--gallery);
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.contact-section .button-secondary {
  border-color: rgb(243 244 242 / 72%);
  color: var(--gallery);
}

.contact-section .button-secondary:hover,
.contact-section .button-secondary:focus-visible {
  border-color: var(--gallery);
  background: var(--gallery);
  color: var(--ink);
}

/* Footer and persistent contact */

.site-footer {
  padding-block: 1.2rem;
  border-top: 1px solid var(--line-light);
  background: var(--ink);
  color: var(--gallery);
}

.site-footer .wordmark {
  color: var(--gallery);
}

.site-footer__grid {
  display: grid;
  grid-template-columns: minmax(9rem, 0.45fr) minmax(14rem, 0.8fr) auto;
  align-items: center;
  gap: 1.5rem;
}

.site-footer p,
.site-footer__meta {
  color: rgb(243 244 242 / 59%);
  font-size: 0.72rem;
  line-height: 1.35;
}

.site-footer__meta {
  display: flex;
  justify-content: flex-end;
  gap: 1.25rem;
  white-space: nowrap;
}

.site-footer__meta a {
  color: var(--gallery);
}

.site-footer__meta a:hover,
.site-footer__meta a:focus-visible {
  color: var(--coral);
}

.floating-wa {
  position: fixed;
  z-index: 30;
  right: 1rem;
  bottom: 1rem;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  border: 1px solid var(--ink);
  padding: 0.65rem 0.75rem;
  background: var(--gallery);
  box-shadow: 0 0.55rem 1.6rem rgb(23 25 31 / 15%);
  color: var(--ink);
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 0.63rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0;
  pointer-events: none;
  transform: translateY(0.75rem);
  transition:
    background-color 160ms ease,
    border-color 160ms ease,
    color 160ms ease,
    transform 160ms ease,
    opacity 160ms ease;
}

.floating-wa.visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.floating-wa:hover,
.floating-wa:focus-visible {
  border-color: var(--proof);
  background: var(--proof);
  color: white;
  transform: translateY(-2px);
}

@media (min-width: 1024px) and (max-height: 760px) {
  .hero-section {
    gap: 0.65rem;
    padding-top: clamp(1rem, 2svh, 1.5rem);
  }

  .hero-grid {
    gap: clamp(2rem, 4vw, 4.5rem);
  }

  .hero-copy h1 {
    font-size: clamp(3.75rem, 6.2vw, 5.25rem);
  }

  .hero-copy .lede {
    max-width: 34rem;
    margin-top: 0.9rem;
    font-size: clamp(1rem, 1.35vw, 1.15rem);
  }

  .action-row {
    margin-top: 1rem;
  }

  .hero-notes {
    margin-top: 1.15rem;
    padding-top: 0.65rem;
  }

  .hero-stage {
    min-height: clamp(25rem, calc(100svh - var(--header-height) - 6.25rem), 34rem);
  }

  .capability-ribbon span {
    padding-block: 0.65rem;
  }
}

@media (max-width: 1023px) {
  .desktop-nav,
  .desktop-cta {
    display: none;
  }

  .site-header__row {
    grid-template-columns: 1fr auto;
  }

  .menu-button {
    display: inline-grid;
    place-items: center;
  }

  html:not(.js-enhanced) .menu-button {
    display: none;
  }

  html.js-enhanced .mobile-menu.is-open {
    display: grid;
  }

  html:not(.js-enhanced) .mobile-menu {
    position: static;
    display: grid;
    padding-block: 0 1.5rem;
    border-bottom: 0;
    background: transparent;
  }

  .hero-section {
    gap: 1rem;
    min-height: 0;
    padding-top: clamp(1.75rem, 4vw, 2.75rem);
  }

  .hero-grid {
    grid-template-columns: minmax(0, 0.94fr) minmax(17rem, 0.7fr);
    gap: 2rem;
  }

  .hero-copy h1 {
    font-size: clamp(3.5rem, 7.8vw, 5.75rem);
  }

  .hero-stage {
    min-height: clamp(29rem, 63vw, 38rem);
  }

  .hero-stage__label {
    display: none;
  }

  .section-heading--split,
  .contact-layout {
    gap: 2.5rem;
  }

  .positioning-layout {
    -moz-column-gap: clamp(1.75rem, 4vw, 2.5rem);
         column-gap: clamp(1.75rem, 4vw, 2.5rem);
    row-gap: 2rem;
  }

  .section-heading--split {
    grid-template-columns: 1fr;
  }

  .section-heading--split > p {
    max-width: 38rem;
  }

  .services-section .section-heading--split {
    grid-template-columns: minmax(0, 1fr) minmax(17rem, 0.62fr);
    gap: clamp(2rem, 5vw, 3.5rem);
  }

  .service-row__title {
    grid-template-columns: minmax(13rem, 0.8fr) minmax(15rem, 0.72fr);
    gap: clamp(1rem, 2.5vw, 2rem);
  }

  .process-heading {
    grid-template-columns: minmax(0, 1fr) minmax(17rem, 0.62fr);
    gap: clamp(2rem, 5vw, 3.5rem);
  }

  .process-heading h2 {
    font-size: clamp(2.75rem, 5.8vw, 3.65rem);
    line-height: 0.95;
  }

  .process-heading .lede {
    font-size: clamp(0.96rem, 1.7vw, 1.04rem);
  }

  .process-timeline {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .process-timeline li {
    min-height: 13.5rem;
  }

  .process-timeline li > div {
    padding-top: clamp(2.25rem, 4vw, 3.5rem);
  }

  .process-timeline h3 {
    font-size: clamp(1.3rem, 2.3vw, 1.5rem);
  }

  .process-timeline li div > p {
    font-size: clamp(0.84rem, 1.5vw, 0.9rem);
  }

  .pricing-story {
    grid-template-columns: minmax(0, 0.74fr) minmax(24rem, 1fr);
    gap: clamp(2rem, 5vw, 3.5rem);
  }

  .pricing-entry {
    grid-template-columns: 1fr;
  }

  .pricing-entry__support {
    max-width: 34rem;
  }

  .package-row__summary {
    grid-template-columns: 2.25rem minmax(0, 1fr) minmax(9rem, 0.34fr) 2rem;
  }

  .package-row__intro {
    grid-template-columns: 1fr;
    gap: 0.45rem;
  }

  .package-row__intro .proof-label {
    grid-column: auto;
  }

  .testimonial-heading {
    grid-template-columns: minmax(0, 1fr) minmax(15rem, 0.44fr);
    gap: clamp(2rem, 5vw, 3.5rem);
  }

  .testimonial-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1.25rem, 2.5vw, 2rem);
  }

  .faq-layout {
    gap: 3rem;
  }

  .site-footer__grid {
    grid-template-columns: minmax(9rem, 0.45fr) 1fr;
  }

  .site-footer__meta {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
}

@media (max-width: 767px) {
  :root {
    --section-space: clamp(4.35rem, 18vw, 6.5rem);
    --header-height: 4.25rem;
  }

  h1 {
    font-size: clamp(3.05rem, 15vw, 5.1rem);
  }

  h2 {
    font-size: clamp(2.3rem, 11vw, 3.85rem);
  }

  .hero-section {
    display: block;
    min-height: 0;
    padding-top: 1.75rem;
  }

  .hero-grid,
  .positioning-layout,
  .work-rail,
  .faq-layout,
  .contact-layout {
    grid-template-columns: 1fr;
  }

  .hero-grid {
    min-height: 0;
    gap: 1.75rem;
  }

  .hero-copy {
    padding-bottom: 0;
  }

  .hero-copy h1 {
    font-size: clamp(3.05rem, 15vw, 5.1rem);
  }

  .hero-copy .kicker {
    margin-bottom: 1rem;
  }

  .hero-copy .lede {
    margin-top: 1.1rem;
  }

  .action-row {
    margin-top: 1.35rem;
  }

  .hero-notes {
    gap: 1rem;
    margin-top: 1.75rem;
  }

  .hero-notes div {
    grid-template-columns: 1.65rem 1fr;
  }

  .hero-stage {
    min-height: clamp(24rem, 108vw, 34rem);
  }

  .hero-proof--primary {
    right: 4%;
    width: 75%;
    height: 89%;
  }

  .hero-proof--secondary {
    top: 5%;
    left: 0;
    width: 38%;
  }

  .hero-proof--tertiary {
    right: 0;
    bottom: 4%;
    width: 34%;
  }

  .hero-proof figcaption {
    right: 0.4rem;
    bottom: 0.4rem;
    left: 0.4rem;
    padding: 0.35rem 0.4rem;
    font-size: 0.5rem;
  }

  .capability-ribbon {
    justify-content: flex-start;
    overflow-x: auto;
    margin-top: 1.75rem;
    scrollbar-width: none;
  }

  .capability-ribbon::-webkit-scrollbar {
    display: none;
  }

  .capability-ribbon span {
    flex-basis: max-content;
  }

  .about-section {
    padding-block: clamp(3.75rem, 14vw, 5.5rem);
  }

  .positioning-layout {
    row-gap: 2.25rem;
  }

  .positioning-copy h2 {
    max-width: 11ch;
    font-size: clamp(2.35rem, 10vw, 3.6rem);
    line-height: 0.96;
  }

  .positioning-copy .lede {
    margin-top: 1.15rem;
    font-size: clamp(1rem, 4.2vw, 1.08rem);
  }

  .positioning-notes li {
    padding-block: 0.8rem;
  }

  .proof-table {
    grid-template-columns: 1fr;
  }

  .proof-table article {
    min-height: 0;
    padding: clamp(1.15rem, 5vw, 1.5rem);
  }

  .proof-table .proof-label {
    margin-bottom: 1.25rem;
  }

  .services-section {
    padding-block: clamp(3.75rem, 13vw, 5rem);
  }

  .services-section .section-heading {
    margin-bottom: clamp(2.15rem, 8vw, 2.75rem);
  }

  .services-section .section-heading--split {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .services-section h2 {
    max-width: 11ch;
    font-size: clamp(2.35rem, 9.8vw, 3.35rem);
    line-height: 0.97;
  }

  .services-section .section-heading--split > p {
    justify-self: start;
    max-width: 34rem;
    font-size: clamp(0.96rem, 4vw, 1.03rem);
  }

  .service-row__trigger {
    grid-template-columns: 2rem minmax(0, 1fr) 1.85rem;
    align-items: start;
    gap: 0.6rem;
    padding-block: 1rem;
  }

  .service-row__title {
    grid-template-columns: 1fr;
    gap: 0.45rem;
  }

  .service-row__title strong {
    font-size: clamp(1.4rem, 6.5vw, 1.85rem);
  }

  .service-row__title small {
    max-width: 30rem;
    font-size: clamp(0.875rem, 3.7vw, 0.94rem);
  }

  .service-row__indicator {
    width: 1.85rem;
    height: 1.85rem;
  }

  .service-panel {
    grid-template-columns: minmax(7.5rem, 40%) minmax(0, 1fr);
    align-items: center;
    gap: clamp(0.75rem, 4vw, 1.25rem);
    margin: 0 0 1.25rem 2.6rem;
  }

  .service-panel img {
    height: clamp(7.5rem, 34vw, 9.5rem);
  }

  .service-panel figcaption {
    max-width: 18rem;
    padding: 0.65rem 0.35rem;
    font-size: clamp(0.84rem, 3.5vw, 0.92rem);
  }

  .process-section {
    padding-block: clamp(3.75rem, 13vw, 5rem);
  }

  .process-heading {
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-bottom: clamp(2rem, 8vw, 2.75rem);
  }

  .process-heading .kicker {
    grid-column: auto;
    margin-bottom: 0.25rem;
  }

  .process-heading h2 {
    max-width: 14ch;
    font-size: clamp(2.35rem, 10vw, 3.1rem);
    letter-spacing: -0.05em;
    line-height: 0.96;
  }

  .process-heading .lede {
    justify-self: start;
    max-width: 30rem;
    margin: 0.25rem 0 0;
    font-size: clamp(0.94rem, 4vw, 1rem);
    line-height: 1.5;
  }

  .process-timeline,
  .testimonial-grid {
    grid-template-columns: 1fr;
  }

  .process-timeline li {
    grid-template-columns: 2.25rem minmax(0, 1fr);
    grid-template-rows: auto;
    min-height: 0;
    gap: 0.85rem;
    padding: 1.25rem 1rem;
  }

  .process-timeline li > p {
    padding-top: 0.16rem;
    font-size: 0.6rem;
  }

  .process-timeline li > div {
    align-content: start;
    gap: 0.55rem;
    padding-top: 0;
  }

  .process-timeline h3 {
    font-size: clamp(1.3rem, 5.5vw, 1.48rem);
  }

  .process-timeline li div > p {
    max-width: 32rem;
    font-size: clamp(0.84rem, 3.6vw, 0.9rem);
  }

  .process-timeline li div > span {
    font-size: clamp(0.56rem, 2.45vw, 0.61rem);
  }

  .pricing-section {
    padding-block: clamp(3.75rem, 13vw, 5rem);
  }

  .pricing-story {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 2.25rem;
    padding-bottom: 3rem;
  }

  .pricing-hook {
    gap: 1.15rem;
  }

  .pricing-hook h2 {
    max-width: 11ch;
    font-size: clamp(2.55rem, 11vw, 3.4rem);
    line-height: 0.95;
  }

  .pricing-hook__copy {
    font-size: clamp(0.94rem, 4vw, 1rem);
  }

  .pricing-entry {
    grid-template-columns: 1fr;
    gap: 1.35rem;
    padding: 1.35rem 1.1rem;
  }

  .entry-price strong {
    font-size: clamp(3.85rem, 19vw, 5.5rem);
  }

  .pricing-entry__examples {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.4rem 0.75rem;
  }

  .package-menu {
    padding-top: 3rem;
  }

  .package-menu__heading {
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-bottom: 1.75rem;
  }

  .package-menu__heading h3 {
    font-size: clamp(2rem, 8.5vw, 2.7rem);
  }

  .package-menu__heading > p {
    justify-self: start;
  }

  .package-row__summary {
    grid-template-columns: 1.75rem minmax(0, 1fr) 1.85rem;
    align-items: start;
    gap: 0.75rem;
    padding-block: 1.25rem;
  }

  .package-row__intro {
    grid-column: 2;
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }

  .package-price {
    grid-column: 2;
    margin-top: 0.25rem;
  }

  .package-row__indicator {
    grid-column: 3;
    grid-row: 1;
    width: 1.85rem;
    height: 1.85rem;
  }

  .package-row__details ul {
    grid-template-columns: 1fr;
    margin-left: 2.5rem;
    padding-right: 0;
  }

  .pricing-cta {
    align-items: stretch;
    flex-direction: column;
    margin-top: 2rem;
  }

  .pricing-cta .button {
    width: 100%;
  }

  .testimonials-section {
    padding-block: clamp(3.5rem, 12vw, 4.5rem);
  }

  .testimonial-heading {
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-bottom: 2rem;
  }

  .testimonial-heading h2 {
    max-width: 12ch;
    font-size: clamp(2.25rem, 9.5vw, 2.9rem);
    line-height: 0.98;
  }

  .testimonial-heading > p {
    justify-self: start;
    max-width: 30rem;
    font-size: clamp(0.88rem, 3.7vw, 0.96rem);
  }

  .testimonial-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .testimonial {
    padding-top: 0.9rem;
  }

  .testimonial blockquote {
    margin-block: 1.35rem 1.5rem;
  }

  .testimonial blockquote p {
    font-size: clamp(1.4rem, 6vw, 1.75rem);
    line-height: 1.17;
  }

  .testimonial figcaption {
    opacity: 1;
  }

  .faq-intro {
    position: static;
  }

  .form-row {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .site-footer__grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .site-footer__meta {
    grid-column: auto;
    justify-content: space-between;
  }

  .floating-wa {
    right: 0.75rem;
    bottom: 0.75rem;
  }
}

@media (max-width: 420px) {
  .hero-notes {
    display: grid;
  }

  .action-row .button {
    width: 100%;
  }

  .service-panel {
    grid-template-columns: minmax(7rem, 38%) minmax(0, 1fr);
    margin-left: 0;
  }

  .contact-details div {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .services-section[data-services-enhanced='true'] .service-row__trigger,
  .services-section[data-services-enhanced='true'] .service-panel,
  .services-section[data-services-enhanced='true'] .service-panel img,
  .portfolio-section[data-motion] .portfolio-heading,
  .portfolio-section[data-motion] .work-rail__visual,
  .portfolio-section[data-motion] .work-rail__caption-stack,
  .portfolio-section[data-motion] .work-case__content,
  .process-section[data-motion] .process-heading .kicker,
  .process-section[data-motion] .process-heading h2,
  .process-section[data-motion] .process-heading .lede,
  .process-section[data-motion] .process-timeline > li,
  .pricing-section[data-motion] [data-pricing-headline],
  .pricing-section[data-motion] [data-pricing-hook-copy],
  .pricing-section[data-motion] [data-pricing-entry-label],
  .pricing-section[data-motion] [data-pricing-entry-support],
  .pricing-section[data-motion] [data-pricing-price],
  .pricing-section[data-motion] [data-pricing-packages-heading],
  .pricing-section[data-motion] [data-pricing-package],
  .pricing-section[data-motion] [data-pricing-cta],
  .testimonials-section[data-motion] [data-testimonial-heading],
  .testimonials-section[data-motion] [data-testimonial] {
    opacity: 1;
    transform: none;
  }

  .pricing-section[data-motion] [data-pricing-free]::after,
  .pricing-section[data-motion] [data-pricing-price] strong::after {
    transform: scaleX(1);
  }

  .services-section[data-services-enhanced='true'] .service-panel[data-state='active'] {
    opacity: 1;
    transform: none;
    visibility: visible;
  }

  .portfolio-section[data-work-rail-enhanced='true'] .work-rail__list {
    height: auto;
    overflow: visible;
    border-bottom: 0;
    contain: none;
    -webkit-mask-image: none;
            mask-image: none;
  }

  .portfolio-section[data-work-rail-enhanced='true'] .work-case {
    position: relative;
    height: auto;
    border-top: 0;
    border-bottom: 1px solid var(--line-light);
    transform: none !important;
  }

  .work-rail__media picture[data-layer='inactive'],
  .work-rail__media picture[data-layer='leaving'],
  .work-rail__caption[data-layer='inactive'],
  .work-rail__caption[data-layer='leaving'] {
    opacity: 0;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
