:root {
  --bg-main:#090d12;
  --bg-secondary:#111923;
  --bg-elevated:#202b36;
  --text-primary:#f1f4f2;
  --text-secondary:#a1abb5;
  --text-muted:#929ca7;
  --accent-primary:#c8ff4d;
  --accent-secondary:#6c8dff;
  --border-subtle:rgba(241,244,242,.12);
  --border-strong:rgba(241,244,242,.25);
  --color-ink:var(--bg-main);
  --color-graphite:var(--bg-secondary);
  --color-ivory:var(--text-primary);
  --color-accent:var(--accent-primary);
  --color-steel:var(--text-secondary);
  --color-white:#fff;
  --color-cobalt:var(--accent-secondary);
  --font-display:'Space Grotesk',Arial,sans-serif;
  --font-body:'Inter',Arial,sans-serif;
  --font-mono:'IBM Plex Mono',monospace;
  --font-editorial:'Instrument Serif',Georgia,serif;
  --container-width:1280px;
  --container-wide:1440px;
  --page-padding:clamp(20px,5vw,80px);
  --section-gap:clamp(90px,12vw,170px);
  --space-section:var(--section-gap);
  --space-small:16px;
  --space-medium:32px;
  --space-large:64px;
  --radius-sm:6px;
  --radius-md:14px;
  --radius-lg:24px;
  --radius-small:var(--radius-sm);
  --radius-medium:var(--radius-md);
  --radius-large:var(--radius-lg);
  --ease-premium:cubic-bezier(.22,1,.36,1);
  --duration-fast:220ms;
  --duration-normal:450ms;
  --duration-slow:850ms;
  --transition-fast:var(--duration-fast) ease;
  --transition-medium:var(--duration-normal) var(--ease-premium);
  --transition-slow:var(--duration-slow) var(--ease-premium);
  --page-bg:var(--bg-main);
  --text:var(--text-primary);
  --muted:var(--text-secondary);
  --line:var(--border-subtle)
}
*,*::before,*::after {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px
}
body {
  margin:0;
  background:var(--page-bg);
  color:var(--text);
  font:400 16px/1.65 var(--font-body);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden
}
body.nav-open {
  overflow:hidden
}
img,svg {
  max-width:100%;
  height:auto
}
img {
  display:block
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select,textarea {
  font:inherit
}
button {
  color:inherit
}
::selection {
  background:var(--color-accent);
  color:var(--color-ink)
}
.site-shell {
  overflow:clip
}
.container {
  width:min(calc(100% - 10vw),var(--container-width));
  margin-inline:auto
}
.section-pad {
  padding-block:var(--space-section)
}
.section-paper {
  background:var(--bg-secondary)
}
.section-graphite {
  background:var(--bg-elevated);
  color:var(--color-ivory)
}
.section-graphite .section-copy,.section-graphite .section-heading p:not(.eyebrow) {
  color:var(--text-secondary)
}
.eyebrow {
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 20px;
  color:var(--text-secondary);
  font:600 .72rem/1.4 var(--font-display);
  letter-spacing:.16em;
  text-transform:uppercase
}
.eyebrow-mark {
  width:25px;
  height:1px;
  background:var(--color-accent)
}
.eyebrow-lime {
  color:var(--color-accent)
}
.section-heading {
  max-width:760px
}
.section-heading h2,.section-heading-row h2 {
  margin:0;
  font:500 clamp(2.5rem,5.2vw,5.3rem)/.99 var(--font-display);
  letter-spacing:-.065em
}
.section-heading h2 em,.section-heading-row h2 em,.page-hero h1 em,.about-copy h2 em,.about-detail-copy h2 em,.faq-aside h2 em,.contact-details h2 em,.contact-home h2 em,.service-detail h2 em,.article-header h1 em,.error-inner h1 em {
  font-family:var(--font-editorial);
  font-weight:400;
  letter-spacing:-.035em
}
.section-copy {
  max-width:590px;
  margin:23px 0 0;
  color:var(--muted);
  font-size:1.02rem
}
.section-heading-row {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:40px;
  margin-bottom:58px
}
.section-heading-row .section-heading {
  max-width:760px
}
.section-heading-row .section-copy {
  margin-bottom:0
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:13px;
  flex:0 0 auto;
  font:600 .88rem/1.3 var(--font-display);
  border-bottom:1px solid currentColor;
  padding-bottom:7px
}
.text-link span {
  display:inline-block;
  transition:transform var(--transition-fast)
}
.text-link:hover span {
  transform:translate(4px,-3px)
}
.small-note {
  color:var(--muted);
  font-size:.78rem;
  line-height:1.55
}
.skip-link {
  position:fixed;
  z-index:1000;
  top:12px;
  left:12px;
  padding:10px 16px;
  background:var(--color-accent);
  color:var(--color-ink);
  transform:translateY(-160%)
}
.skip-link:focus {
  transform:none
}
.scroll-progress {
  position:fixed;
  z-index:99;
  inset:0 0 auto;
  height:2px;
  pointer-events:none
}
.scroll-progress span {
  display:block;
  width:100%;
  height:100%;
  background:var(--color-accent);
  transform:scaleX(0);
  transform-origin:left
}
:focus-visible {
  outline:2px solid var(--color-white);
  outline-offset:3px;
  box-shadow:0 0 0 5px var(--color-ink)
}
/* Header */
.site-header {
  position:sticky;
  z-index:100;
  top:0;
  background:rgba(9,13,18,.72);
  color:var(--color-ivory);
  border-bottom:1px solid rgba(241,244,242,.12);
  transition:background var(--transition-fast),box-shadow var(--transition-fast)
}
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  .site-header { -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
}
.site-header.is-scrolled {
  background:rgba(9,13,18,.97);
  box-shadow:0 8px 30px rgba(0,0,0,.13)
}
.header-inner {
  height:88px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:34px
}
.brand {
  display:inline-flex;
  align-items:center;
  gap:12px;
  width:max-content
}
.brand-monogram {
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border:1px solid rgba(200,255,77,.55);
  color:var(--color-accent);
  border-radius:50%
}
.brand-monogram svg {
  width:30px;
  height:30px
}
.brand-name {
  display:flex;
  flex-direction:column;
  font:600 1rem/1.05 var(--font-display);
  letter-spacing:-.03em
}
.brand-name span {
  margin-top:5px;
  color:#a1abb5;
  font-size:.54rem;
  font-weight:500;
  letter-spacing:.12em
}
.site-nav {
  justify-self:center
}
.menu-list {
  display:flex;
  align-items:center;
  gap:clamp(17px,2.6vw,38px);
  margin:0;
  padding:0;
  list-style:none
}
.menu-list a {
  position:relative;
  color:#a1abb5;
  font:500 .82rem/1.2 var(--font-display);
  transition:color var(--transition-fast)
}
.menu-list a::after {
  position:absolute;
  right:0;
  bottom:-8px;
  left:0;
  height:1px;
  background:var(--color-accent);
  content:"";
  transform:scaleX(0);
  transform-origin:right;
  transition:transform var(--transition-medium)
}
.menu-list a:hover,.menu-list .current-menu-item>a {
  color:var(--color-white)
}
.menu-list a:hover::after,.menu-list .current-menu-item>a::after {
  transform:scaleX(1);
  transform-origin:left
}
.header-actions {
  display:flex;
  align-items:center;
  justify-self:end;
  gap:22px
}
.availability {
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:#a1abb5;
  font-size:.72rem;
  white-space:nowrap
}
.availability i {
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--color-accent);
  box-shadow:0 0 0 4px rgba(200,255,77,.12)
}
.button {
  display:inline-flex;
  min-height:52px;
  align-items:center;
  justify-content:center;
  gap:16px;
  padding:0 22px;
  border:1px solid transparent;
  border-radius:100px;
  font:600 .86rem/1 var(--font-display);
  transition:transform var(--transition-fast),background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)
}
.button:hover {
  transform:translateY(-3px)
}
.button-lime {
  background:var(--color-accent);
  color:var(--color-ink)
}
.button-lime:hover {
  background:#d5ff7c
}
.button-outline {
  min-height:44px;
  padding:0 18px;
  border-color:rgba(241,244,242,.38);
  color:var(--color-ivory)
}
.button-outline:hover {
  border-color:var(--color-accent);
  color:var(--color-accent)
}
.button-dark {
  background:var(--color-ink);
  color:var(--color-ivory)
}
.button-dark:hover {
  background:#202b36
}
.button-dark-outline {
  border-color:rgba(241,244,242,.42);
  color:var(--color-ivory)
}
.button-dark-outline:hover {
  border-color:var(--color-accent);
  color:var(--color-accent)
}
.button-text {
  padding-inline:2px;
  color:var(--color-ivory)
}
.button-text:hover {
  color:var(--color-accent)
}
.button span {
  font-size:1.08rem;
  transition:transform var(--transition-fast)
}
.button:hover span {
  transform:translate(3px,-3px)
}
.menu-toggle,.nav-close,.mobile-nav-bottom {
  display:none
}
/* Hero architecture is defined in architecture.css. */
/* Intro statement */
.intro-strip {
  padding-block:clamp(56px,8vw,105px);
  background:var(--color-accent);
  color:var(--color-ink)
}
.intro-inner {
  position:relative
}
.intro-strip .eyebrow {
  color:#111923
}
.intro-statement {
  max-width:1000px;
  margin:0;
  font:500 clamp(2.25rem,4.8vw,5rem)/1.05 var(--font-display);
  letter-spacing:-.065em
}
.intro-statement em {
  font-family:var(--font-editorial);
  font-weight:400
}
.intro-stamp {
  position:absolute;
  right:0;
  bottom:-7px;
  display:grid;
  place-items:center;
  width:72px;
  height:72px;
  border:1px solid rgba(9,13,18,.5);
  border-radius:50%;
  font:600 1.5rem/.8 var(--font-display);
  text-align:center;
  transform:rotate(10deg)
}
/* Selected projects */
.project-grid {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:62px 26px
}
.project-card {
  grid-column:span 6;
  min-width:0
}
.project-card:nth-child(2) {
  margin-top:92px
}
.project-card:nth-child(3) {
  grid-column:2/span 6
}
.project-card:nth-child(4) {
  grid-column:8/span 5;
  margin-top:70px
}
.project-link {
  display:block
}
.project-image-wrap {
  position:relative;
  overflow:hidden;
  aspect-ratio:1.45;
  background:#202b36
}
.project-card:nth-child(2) .project-image-wrap,.project-card:nth-child(4) .project-image-wrap {
  aspect-ratio:1.2
}
.project-image {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 850ms cubic-bezier(.22,1,.36,1),filter 500ms
}
.project-link:hover .project-image {
  transform:scale(1.035);
  filter:saturate(1.06)
}
.project-open {
  position:absolute;
  right:16px;
  bottom:16px;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:50%;
  background:var(--color-accent);
  color:var(--color-ink);
  font-size:1.1rem;
  transform:translateY(8px);
  opacity:0;
  transition:opacity var(--transition-fast),transform var(--transition-fast)
}
.project-link:hover .project-open,.project-link:focus-visible .project-open {
  transform:none;
  opacity:1
}
.project-meta {
  display:flex;
  align-items:center;
  gap:11px;
  margin-top:21px;
  color:#a1abb5;
  font:500 .62rem var(--font-display);
  letter-spacing:.1em
}
.project-number {
  color:var(--accent-primary)
}
.project-category {
  padding-left:10px;
  border-left:1px solid var(--line)
}
.project-role {
  margin-left:auto;
  color:#929ca7;
  font-size:.56rem
}
.project-title {
  margin:10px 0 5px;
  font:500 clamp(1.45rem,2.2vw,2.1rem)/1.1 var(--font-display);
  letter-spacing:-.045em
}
.project-description {
  max-width:520px;
  margin:0;
  color:var(--muted);
  font-size:.91rem
}
.project-grid-work {
  row-gap:82px
}
.project-grid-work .project-card:nth-child(3) {
  grid-column:span 6
}
.project-grid-work .project-card:nth-child(4) {
  grid-column:7/span 6
}
.project-grid-work .project-card:nth-child(2) {
  margin-top:92px
}
.project-grid-work .project-card:nth-child(4) {
  margin-top:75px
}
.archive-work .section-heading-row {
  margin-bottom:44px
}
.archive-project-list {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0 28px;
  margin:0;
  padding:0;
  list-style:none;
  border-top:1px solid var(--line)
}
.archive-project-list li {
  border-bottom:1px solid var(--line)
}
.archive-project-list a {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:17px 0;
  font-size:.88rem;
  transition:color var(--transition-fast),padding var(--transition-fast)
}
.archive-project-list a:hover {
  padding-left:7px;
  color:#c8ff4d
}
.archive-project-list a span:last-child {
  color:#a1abb5
}
.case-story-list {
  border-top:1px solid var(--line)
}
.case-story {
  display:grid;
  grid-template-columns:minmax(100px,.23fr) minmax(0,1fr);
  gap:clamp(24px,5vw,72px);
  padding:clamp(34px,5vw,66px) 0;
  border-bottom:1px solid var(--line)
}
.case-story-index {
  display:flex;
  flex-direction:column;
  gap:11px;
  color:var(--muted);
  font:500 .62rem/1.5 var(--font-mono);
  letter-spacing:.07em
}
.case-story-index span:first-child {
  color:var(--color-accent);
  font-size:1.2rem
}
.case-story-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:25px;
  margin-bottom:28px
}
.case-story-heading h2 {
  margin:0;
  font:500 clamp(1.8rem,3.5vw,3.2rem)/1 var(--font-display);
  letter-spacing:-.06em
}
.case-story-details {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:25px 40px
}
.case-story-details h3 {
  margin:0 0 8px;
  color:var(--color-accent);
  font:500 .68rem/1.4 var(--font-mono);
  letter-spacing:.08em;
  text-transform:uppercase
}
.case-story-details p {
  max-width:520px;
  margin:0;
  color:var(--muted);
  font-size:.92rem
}
@media(max-width:900px) {
  .archive-project-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .case-story { grid-template-columns:80px minmax(0,1fr); gap:25px; }
}
@media(max-width:650px) {
  .archive-project-list,.case-story-details { grid-template-columns:1fr; }
  .case-story { grid-template-columns:1fr; gap:12px; }
  .case-story-index { flex-direction:row; align-items:center; }
  .case-story-heading { align-items:flex-start; flex-direction:column; gap:12px; }
  .case-story-details { gap:19px; }
}
/* Services */
.service-list {
  border-top:1px solid var(--line)
}
.service-item {
  position:relative;
  display:grid;
  grid-template-columns:50px minmax(0,1fr) minmax(94px,150px) 30px;
  align-items:center;
  gap:22px;
  padding:25px 10px;
  border-bottom:1px solid var(--line);
  transition:background var(--transition-medium),padding var(--transition-medium)
}
.service-item::before {
  position:absolute;
  z-index:0;
  inset:0;
  background:var(--color-accent);
  content:"";
  transform:scaleY(0);
  transform-origin:bottom;
  transition:transform var(--transition-medium)
}
.service-item>* {
  position:relative;
  z-index:1
}
.service-item:hover {
  padding-inline:20px
}
.service-item:hover::before {
  transform:scaleY(1)
}
.service-number {
  align-self:start;
  padding-top:6px;
  color:#929ca7;
  font:500 .76rem var(--font-display)
}
.service-main {
  display:grid;
  gap:5px
}
.service-title {
  font:500 clamp(1.35rem,2.2vw,2.25rem)/1.1 var(--font-display);
  letter-spacing:-.05em;
  transition:transform var(--transition-medium)
}
.service-description {
  max-width:590px;
  color:var(--muted);
  font-size:.89rem
}
.service-tag {
  justify-self:end;
  color:#929ca7;
  font:600 .61rem var(--font-display);
  letter-spacing:.12em
}
.service-arrow {
  justify-self:end;
  font-size:1.2rem;
  transition:transform var(--transition-fast)
}
.service-item:hover .service-arrow {
  transform:translate(4px,-4px)
}
.service-list-large .service-item {
  padding-block:32px
}
.service-list-large .service-title {
  font-size:clamp(1.6rem,2.8vw,2.8rem)
}
/* Process */
.process-layout {
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:clamp(60px,10vw,155px)
}
.process-intro {
  position:sticky;
  top:130px;
  align-self:start
}
.process-intro .section-heading {
  margin-bottom:30px
}
.process-timeline,.process-page-list {
  position:relative;
  padding-left:31px
}
.timeline-track {
  position:absolute;
  top:12px;
  bottom:28px;
  left:6px;
  width:1px;
  background:rgba(9,13,18,.18)
}
.timeline-track i {
  display:block;
  width:2px;
  height:0;
  background:#c8ff4d
}
.process-step {
  position:relative;
  display:grid;
  grid-template-columns:45px 1fr;
  gap:19px;
  padding-bottom:42px
}
.process-step:last-child {
  padding-bottom:0
}
.step-number {
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  width:43px;
  height:43px;
  margin-left:-45px;
  border:1px solid #929ca7;
  border-radius:50%;
  background:var(--page-bg);
  font:500 .7rem var(--font-display);
  transition:background var(--transition-fast),border-color var(--transition-fast)
}
.process-step.is-active .step-number {
  border-color:var(--color-accent);
  background:var(--color-accent)
}
.process-step h3 {
  margin:2px 0 8px;
  font:500 1.35rem/1.2 var(--font-display);
  letter-spacing:-.04em
}
.process-step p {
  max-width:520px;
  margin:0;
  color:var(--muted);
  font-size:.91rem
}
.process-page-layout {
  display:grid;
  grid-template-columns:.5fr 1.5fr;
  gap:90px
}
.process-side-note {
  position:sticky;
  top:130px;
  align-self:start
}
.process-side-note span {
  font:600 .7rem var(--font-display);
  letter-spacing:.12em
}
.process-side-note p {
  max-width:220px;
  color:var(--muted)
}
.process-page-list {
  padding-left:43px
}
.process-step-large {
  grid-template-columns:56px 1fr;
  padding-bottom:74px
}
.process-step-large .step-number {
  width:50px;
  height:50px;
  margin-left:-68px;
  font-size:.8rem
}
.process-step-large .eyebrow {
  margin-bottom:10px
}
.process-step-large h2 {
  margin:0 0 13px;
  font:500 clamp(2rem,3.5vw,3.45rem)/1 var(--font-display);
  letter-spacing:-.06em
}
.process-step-large>div>p:not(.eyebrow) {
  max-width:640px;
  color:var(--muted)
}
.process-step-large .review-point {
  margin-top:20px;
  padding-top:14px;
  border-top:1px solid var(--line);
  font-size:.86rem
}
.review-point strong {
  display:block;
  margin-bottom:3px;
  color:var(--text);
  font:600 .69rem var(--font-display);
  letter-spacing:.1em;
  text-transform:uppercase
}
/* About, capabilities */
.about-preview {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  align-items:center;
  gap:clamp(65px,12vw,180px)
}
.about-mark {
  position:relative;
  display:grid;
  place-items:center;
  min-height:440px;
  overflow:hidden;
  background:var(--color-graphite);
  color:var(--color-accent)
}
.about-mark::before,.about-mark::after {
  position:absolute;
  width:76%;
  aspect-ratio:1;
  border:1px solid rgba(200,255,77,.28);
  border-radius:50%;
  content:""
}
.about-mark::after {
  width:53%;
  border-color:rgba(241,244,242,.2);
  transform:translate(25%,10%)
}
.about-mark-inner {
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  width:210px;
  height:210px;
  border:1px solid rgba(200,255,77,.5);
  border-radius:50%;
  font:500 6rem/.8 var(--font-editorial);
  transform:rotate(-10deg)
}
.about-mark-caption {
  position:absolute;
  right:20px;
  bottom:18px;
  left:20px;
  color:#a1abb5;
  font:500 .6rem var(--font-display);
  letter-spacing:.16em;
  text-align:center
}
.about-copy h2,.about-detail-copy h2 {
  margin:0 0 22px;
  font:500 clamp(2.35rem,4.2vw,4.2rem)/1.02 var(--font-display);
  letter-spacing:-.065em
}
.about-copy>p:not(.eyebrow),.about-detail-copy>p:not(.eyebrow) {
  max-width:610px;
  color:var(--muted)
}
.about-copy .text-link {
  margin-top:13px
}
.about-detail-layout {
  display:grid;
  grid-template-columns:.86fr 1.14fr;
  align-items:center;
  gap:clamp(60px,10vw,140px)
}
.about-photo-wrap {
  position:relative;
  max-width:500px;
  padding:0 25px 25px 0
}
.about-photo-wrap::before {
  position:absolute;
  z-index:0;
  right:0;
  bottom:0;
  width:70%;
  height:65%;
  background:var(--color-accent);
  content:""
}
.about-portrait-image,.portrait-placeholder {
  position:relative;
  z-index:1;
  width:100%;
  max-height:580px;
  aspect-ratio:4/5;
  object-fit:cover;
  object-position:center 20%;
  background:#202b36
}
.photo-caption {
  display:block;
  position:relative;
  z-index:1;
  margin-top:12px;
  color:#a1abb5;
  font:500 .61rem var(--font-display);
  letter-spacing:.12em
}
.portrait-placeholder {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:20px;
  color:#a1abb5
}
.portrait-placeholder span {
  font:400 7rem/.8 var(--font-editorial)
}
.portrait-placeholder small {
  max-width:200px;
  font:600 .6rem/1.5 var(--font-display);
  letter-spacing:.12em;
  text-align:center
}
.about-detail-copy .button {
  margin-top:23px
}
.principle-grid,.outcome-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px
}
.principle-grid article,.outcome-grid article {
  padding:25px 0;
  border-top:1px solid var(--line)
}
.principle-grid article>span,.outcome-grid article>span {
  color:#929ca7;
  font:500 .73rem var(--font-display)
}
.principle-grid h3,.outcome-grid h3 {
  margin:26px 0 8px;
  font:500 1.3rem/1.2 var(--font-display);
  letter-spacing:-.04em
}
.principle-grid p,.outcome-grid p {
  margin:0;
  color:var(--muted);
  font-size:.91rem
}
.tech-heading {
  margin-bottom:47px
}
.tech-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid rgba(241,244,242,.2);
  border-left:1px solid rgba(241,244,242,.2)
}
.tech-item {
  display:flex;
  min-height:108px;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding:20px 22px;
  border-right:1px solid rgba(241,244,242,.2);
  border-bottom:1px solid rgba(241,244,242,.2);
  font:500 clamp(.95rem,1.5vw,1.25rem) var(--font-display);
  transition:background var(--transition-fast),color var(--transition-fast)
}
.tech-item i {
  color:var(--color-accent);
  font-size:.9rem;
  font-style:normal;
  opacity:.7;
  transition:transform var(--transition-fast)
}
.tech-item:hover {
  background:var(--color-accent);
  color:var(--color-ink)
}
.tech-item:hover i {
  color:var(--color-ink);
  transform:translate(3px,-3px)
}
/* FAQs and contact */
.faq-layout,.faq-page-layout {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:clamp(60px,10vw,150px)
}
.faq-layout>.section-heading,.faq-aside {
  max-width:440px
}
.faq-aside h2 {
  margin:0;
  font:500 clamp(2.5rem,4.6vw,4.7rem)/.98 var(--font-display);
  letter-spacing:-.06em
}
.faq-aside>p:not(.eyebrow) {
  color:var(--muted)
}
.faq-aside .text-link {
  margin-top:18px
}
.faq-list {
  border-top:1px solid var(--line)
}
.faq-item {
  border-bottom:1px solid var(--line)
}
.faq-item summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  padding:21px 0;
  cursor:pointer;
  list-style:none;
  font:500 1rem/1.4 var(--font-display)
}
.faq-item summary::-webkit-details-marker {
  display:none
}
.faq-item summary i {
  display:grid;
  place-items:center;
  flex:0 0 30px;
  width:30px;
  height:30px;
  border:1px solid var(--line);
  border-radius:50%;
  font-size:1rem;
  font-style:normal;
  transition:transform var(--transition-fast),background var(--transition-fast)
}
.faq-item[open] summary i {
  background:var(--color-accent);
  transform:rotate(45deg)
}
.faq-answer {
  padding:0 52px 19px 0;
  color:var(--muted);
  font-size:.91rem
}
.faq-answer p {
  margin:0
}
.contact-home {
  position:relative;
  overflow:hidden;
  background:var(--color-ink);
  color:var(--color-ivory)
}
.contact-home::after {
  position:absolute;
  top:-50%;
  right:-15%;
  width:65vw;
  aspect-ratio:1;
  border:1px solid rgba(200,255,77,.17);
  border-radius:50%;
  content:"";
  box-shadow:0 0 0 60px rgba(200,255,77,.025),0 0 0 120px rgba(200,255,77,.02)
}
.contact-home-inner {
  position:relative;
  z-index:1;
  max-width:900px
}
.contact-home h2 {
  max-width:900px;
  margin:0;
  font:500 clamp(3rem,7vw,7rem)/.94 var(--font-display);
  letter-spacing:-.075em
}
.contact-home h2 em {
  color:var(--color-accent)
}
.contact-home-inner>p:not(.eyebrow) {
  max-width:600px;
  color:#a1abb5
}
.contact-layout {
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:clamp(50px,9vw,135px)
}
.contact-details {
  position:sticky;
  top:130px;
  align-self:start
}
.contact-details h2 {
  margin:0 0 20px;
  font:500 clamp(2.3rem,4.2vw,4.3rem)/.98 var(--font-display);
  letter-spacing:-.065em
}
.contact-details>p:not(.eyebrow) {
  color:var(--muted)
}
.contact-method {
  display:flex;
  flex-direction:column;
  gap:5px;
  margin-top:27px;
  padding-top:17px;
  border-top:1px solid var(--line)
}
.contact-method small {
  color:#929ca7;
  font:600 .64rem var(--font-display);
  letter-spacing:.14em
}
.contact-method span {
  font:500 1.05rem var(--font-display)
}
.contact-method:hover span {
  color:#c8ff4d
}
.contact-details .small-note {
  margin-top:30px
}
.contact-form {
  display:grid;
  gap:21px
}
.form-pair {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px
}
.contact-form label {
  display:grid;
  gap:8px;
  font:500 .8rem var(--font-display)
}
.contact-form label span {
  color:#c8ff4d
}
.contact-form input,.contact-form select,.contact-form textarea,.search-form input {
  width:100%;
  min-height:51px;
  padding:13px 14px;
  border:1px solid rgba(9,13,18,.22);
  border-radius:0;
  background:rgba(241,244,242,.04);
  color:var(--text);
  outline:none;
  transition:border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)
}
.contact-form textarea {
  min-height:155px;
  resize:vertical
}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus,.search-form input:focus {
  border-color:#c8ff4d;
  background:var(--bg-secondary);
  box-shadow:0 0 0 3px rgba(200,255,77,.3)
}
.contact-form input::placeholder,.contact-form textarea::placeholder {
  color:#929ca7
}
.contact-form .button {
  justify-self:start;
  border:0;
  cursor:pointer
}
.form-status {
  grid-column:1/-1;
  padding:14px 16px;
  border-left:3px solid #c8ff4d;
  background:rgba(200,255,77,.12)
}
.form-status-error {
  border-color:#a74f3a;
  background:rgba(167,79,58,.14)
}
.form-trap {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important
}
.contact-form .small-note {
  max-width:540px;
  margin:0
}
.contact-page-hero {
  padding-bottom:80px
}
/* Content pages, insights and footer */
.page-hero {
  padding-bottom:75px;
  background:var(--color-ivory)
}
.page-hero-inner {
  max-width:var(--container-width)
}
.page-hero h1,.error-inner h1 {
  max-width:990px;
  margin:0;
  font:500 clamp(3.2rem,7.2vw,7.3rem)/.94 var(--font-display);
  letter-spacing:-.075em
}
.page-hero h1 em {
  color:#c8ff4d
}
.page-intro {
  max-width:700px;
  margin:25px 0 0;
  color:var(--muted);
  font-size:clamp(1rem,1.4vw,1.18rem)
}
.standard-page-content {
  padding-block:0 var(--space-section)
}
.entry-content {
  max-width:800px;
  margin-inline:auto;
  color:#f1f4f2
}
.entry-content>*:first-child {
  margin-top:0
}
.entry-content h2 {
  margin:52px 0 16px;
  font:500 clamp(1.8rem,3vw,2.7rem)/1.05 var(--font-display);
  letter-spacing:-.05em
}
.entry-content h3 {
  margin:34px 0 12px;
  font:500 1.45rem/1.2 var(--font-display)
}
.entry-content p,.entry-content li {
  font-size:1rem;
  line-height:1.8
}
.entry-content a {
  color:#c8ff4d;
  text-decoration:underline;
  text-underline-offset:3px
}
.entry-content img {
  height:auto
}
.entry-content .wp-block-image {
  margin-block:35px
}
.service-detail-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(40px,8vw,100px)
}
.service-detail h2 {
  margin:0 0 23px;
  font:500 clamp(2rem,3.7vw,3.5rem)/1 var(--font-display);
  letter-spacing:-.06em
}
.outcome-list {
  margin:0;
  padding:0;
  list-style:none;
  border-top:1px solid var(--line)
}
.outcome-list li {
  position:relative;
  padding:15px 0 15px 27px;
  border-bottom:1px solid var(--line);
  color:var(--muted)
}
.outcome-list li::before {
  position:absolute;
  top:22px;
  left:2px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#c8ff4d;
  content:""
}
.service-steps {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:70px
}
.service-steps ol {
  margin:0;
  padding:0;
  list-style:none
}
.service-steps li {
  display:grid;
  grid-template-columns:170px 1fr;
  gap:20px;
  padding:20px 0;
  border-top:1px solid var(--line)
}
.service-steps li strong {
  font:500 1rem var(--font-display)
}
.service-steps li span {
  color:var(--muted);
  font-size:.9rem
}
.cta-band {
  padding-block:78px;
  background:var(--color-graphite);
  color:var(--color-ivory)
}
.cta-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:45px
}
.cta-inner>div {
  max-width:760px
}
.cta-inner h2 {
  margin:0;
  font:500 clamp(2.4rem,4.6vw,4.5rem)/.98 var(--font-display);
  letter-spacing:-.065em
}
.cta-inner h2 em {
  color:var(--color-accent);
  font-family:var(--font-editorial);
  font-weight:400
}
.cta-inner>div>p:not(.eyebrow) {
  color:#a1abb5
}
.cta-inner>.button {
  flex:0 0 auto
}
.insights-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:32px
}
.insight-card {
  min-width:0
}
.insight-card>a {
  display:block
}
.insight-image {
  aspect-ratio:1.35;
  overflow:hidden;
  background:#202b36
}
.insight-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform var(--transition-slow)
}
.insight-card>a:hover .insight-image img {
  transform:scale(1.04)
}
.insight-image-placeholder {
  display:grid;
  place-items:center;
  background:var(--color-graphite);
  color:var(--color-accent);
  font:500 .8rem var(--font-display);
  letter-spacing:.18em
}
.insight-card .eyebrow {
  margin:20px 0 10px
}
.insight-card h2 {
  margin:0;
  font:500 1.65rem/1.12 var(--font-display);
  letter-spacing:-.05em
}
.insight-card p:not(.eyebrow) {
  color:var(--muted);
  font-size:.9rem
}
.insight-card .text-link {
  margin-top:8px
}
.empty-state {
  grid-column:1/-1;
  max-width:640px;
  padding-block:30px
}
.empty-state h2 {
  font:500 2.5rem/1 var(--font-display);
  letter-spacing:-.06em
}
.article-header {
  max-width:950px
}
.article-header h1 {
  font-size:clamp(2.8rem,6vw,6rem)
}
.article-featured-image {
  max-width:1150px;
  margin-bottom:50px
}
.article-featured-image img {
  width:100%;
  max-height:680px;
  object-fit:cover
}
.article-content {
  padding-bottom:36px
}
.article-back {
  padding-bottom:var(--space-section)
}
.error-page {
  min-height:66vh;
  display:flex;
  align-items:center;
  background:var(--color-ink);
  color:var(--color-ivory)
}
.error-inner {
  padding-block:55px
}
.error-inner h1 em {
  color:var(--color-accent)
}
.error-inner .page-intro {
  color:#a1abb5
}
.search-form {
  display:flex;
  max-width:500px;
  gap:10px;
  margin-top:24px
}
.search-form label {
  flex:1
}
.search-form input {
  background:#fff
}
.search-form input[type=submit] {
  width:auto;
  cursor:pointer;
  background:var(--color-accent)
}
.site-footer {
  background:#090d12;
  color:var(--color-ivory)
}
.footer-top {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:clamp(60px,10vw,150px);
  padding-block:84px 72px
}
.footer-invite h2 {
  max-width:560px;
  margin:0 0 26px;
  font:500 clamp(2.5rem,4.5vw,4.7rem)/.96 var(--font-display);
  letter-spacing:-.065em
}
.footer-invite h2 em {
  color:var(--color-accent);
  font-family:var(--font-editorial);
  font-weight:400
}
.footer-links {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px
}
.footer-links>div {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:13px
}
.footer-links strong {
  margin-bottom:9px;
  color:#f1f4f2;
  font:600 .76rem var(--font-display)
}
.footer-links a {
  color:#a1abb5;
  font-size:.78rem;
  transition:color var(--transition-fast)
}
.footer-links a:hover {
  color:var(--color-accent)
}
.footer-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  padding-block:22px;
  border-top:1px solid rgba(241,244,242,.17);
  color:#a1abb5;
  font-size:.68rem
}
.footer-bottom p {
  margin:0
}
.footer-signature {
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--color-ivory);
  font:600 .8rem var(--font-display)
}
.footer-signature span {
  display:grid;
  place-items:center;
  width:31px;
  height:31px;
  border:1px solid rgba(200,255,77,.5);
  border-radius:50%;
  color:var(--color-accent)
}
.footer-bottom>a:last-child {
  white-space:nowrap
}
.text-button {
  padding:0;
  border:0;
  background:none;
  color:#a1abb5;
  cursor:pointer;
  font-size:.68rem
}
.text-button:hover {
  color:var(--color-accent)
}
.consent-banner {
  position:fixed;
  z-index:120;
  right:20px;
  bottom:20px;
  left:auto;
  display:flex;
  max-width:600px;
  align-items:center;
  gap:24px;
  padding:19px 21px;
  border:1px solid rgba(241,244,242,.17);
  background:#111923;
  color:var(--color-ivory);
  box-shadow:0 16px 50px rgba(0,0,0,.3)
}
.consent-banner[hidden] {
  display:none
}
.consent-banner>div:first-child {
  flex:1
}
.consent-banner .eyebrow {
  margin-bottom:4px
}
.consent-banner p:not(.eyebrow) {
  margin:0;
  color:#a1abb5;
  font-size:.76rem
}
.consent-banner p a {
  text-decoration:underline;
  text-underline-offset:3px
}
.consent-actions {
  display:flex;
  flex:0 0 auto;
  gap:8px
}
.consent-actions button {
  min-height:38px;
  padding:0 12px;
  border:1px solid rgba(241,244,242,.35);
  background:transparent;
  color:var(--color-ivory);
  cursor:pointer;
  font-size:.72rem
}
.consent-actions button:first-child {
  border-color:var(--color-accent);
  background:var(--color-accent);
  color:var(--color-ink)
}
.consent-actions button:hover {
  filter:brightness(1.08)
}
.wp-block-image img,.wp-block-cover {
  border-radius:2px
}
.wp-block-button__link {
  background:var(--color-ink);
  color:var(--color-ivory)
}
.wp-block-quote {
  border-left:2px solid #c8ff4d;
  padding-left:22px;
  font:400 1.6rem/1.3 var(--font-editorial)
}
.pagination,.nav-links {
  display:flex;
  grid-column:1/-1;
  justify-content:center;
  gap:9px;
  margin-top:40px
}
.page-numbers {
  display:grid;
  place-items:center;
  min-width:38px;
  min-height:38px;
  border:1px solid var(--line)
}
.page-numbers.current {
  background:var(--color-accent)
}
/* Motion enhancement, all content stays visible without JavaScript */
.project-image-wrap {
  isolation:isolate
}
.project-image-wrap::after {
  position:absolute;
  inset:0;
  border:1px solid rgba(9,13,18,.06);
  content:"";
  pointer-events:none
}
@media(max-width:1100px) {
  .container {
    width:min(calc(100% - 8vw),var(--container-width))
  }
  .hero-layout {
    grid-template-columns:1fr .9fr;
    gap:34px
  }
  .hero-title {
    font-size:clamp(3rem,6.3vw,5.4rem)
  }
  .hero-visual {
    min-height:420px
  }
  .header-inner {
    gap:20px
  }
  .availability {
    font-size:.65rem
  }
  .header-actions {
    gap:14px
  }
  .project-grid-home .project-card:nth-child(3) {
    grid-column:1/span 6
  }
  .project-grid-home .project-card:nth-child(4) {
    grid-column:7/span 6
  }
  .footer-top {
    gap:60px
  }
}
@media(max-width:900px) {
  .container {
    width:calc(100% - 48px)
  }
  .header-inner {
    height:76px;
    grid-template-columns:1fr auto
  }
  .site-nav {
    position:fixed;
    z-index:110;
    inset:0 0 0 auto;
    display:flex;
    width:min(430px,100%);
    flex-direction:column;
    align-items:stretch;
    justify-content:center;
    padding:70px 38px 36px;
    background:var(--color-graphite);
    box-shadow:-25px 0 70px rgba(0,0,0,.34);
    transform:translateX(105%);
    transition:transform var(--transition-medium);
    visibility:hidden
  }
  .site-nav.is-open {
    visibility:visible;
    transform:translateX(0)
  }
  .site-nav .menu-list {
    flex-direction:column;
    align-items:flex-start;
    gap:0
  }
  .site-nav .menu-list li {
    width:100%;
    border-bottom:1px solid rgba(241,244,242,.13)
  }
  .site-nav .menu-list a {
    display:block;
    padding:14px 0;
    color:var(--color-ivory);
    font:500 clamp(1.75rem,5vw,2.4rem)/1.1 var(--font-display);
    letter-spacing:-.05em
  }
  .site-nav .menu-list a::after {
    display:none
  }
  .nav-close {
    position:absolute;
    top:24px;
    right:24px;
    display:grid;
    place-items:center;
    width:43px;
    height:43px;
    border:1px solid rgba(241,244,242,.32);
    border-radius:50%;
    background:transparent
  }
  .nav-close span {
    position:absolute;
    width:17px;
    height:1px;
    background:var(--color-ivory);
    transform:rotate(45deg)
  }
  .nav-close span+span {
    transform:rotate(-45deg)
  }
  .menu-toggle {
    display:flex;
    width:43px;
    height:43px;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:6px;
    border:1px solid rgba(241,244,242,.32);
    border-radius:50%;
    background:transparent;
    cursor:pointer
  }
  .menu-toggle span {
    width:17px;
    height:1px;
    background:var(--color-ivory);
    transition:transform var(--transition-fast)
  }
  .menu-toggle[aria-expanded=true] span:first-child {
    transform:translateY(3.5px) rotate(45deg)
  }
  .menu-toggle[aria-expanded=true] span:last-child {
    transform:translateY(-3.5px) rotate(-45deg)
  }
  .header-actions .availability {
    display:none
  }
  .mobile-nav-bottom {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:20px;
    margin-top:35px;
    padding-top:25px;
    border-top:1px solid rgba(241,244,242,.13)
  }
  .mobile-nav-bottom .availability {
    display:inline-flex
  }
  .hero-layout {
    grid-template-columns:1fr;
    gap:45px
  }
  .site-hero {
    min-height:auto;
    padding:90px 0 115px
  }
  .hero-copy {
    max-width:760px
  }
  .hero-title {
    max-width:740px;
    font-size:clamp(3.8rem,8vw,6.5rem)
  }
  .hero-visual {
    width:min(640px,100%);
    min-height:470px;
    margin-inline:auto
  }
  .visual-card-main {
    left:8%;
    width:76%
  }
  .visual-card-back {
    right:3%;
    width:43%
  }
  .process-layout,.process-page-layout {
    grid-template-columns:1fr;
    gap:52px
  }
  .process-intro,.process-side-note {
    position:static
  }
  .process-intro {
    max-width:650px
  }
  .process-side-note p {
    max-width:500px
  }
  .process-side-note {
    display:flex;
    gap:22px;
    align-items:baseline
  }
  .process-page-list {
    max-width:760px
  }
  .about-preview {
    gap:60px
  }
  .about-mark {
    min-height:360px
  }
  .faq-layout,.faq-page-layout {
    grid-template-columns:1fr;
    gap:38px
  }
  .faq-layout>.section-heading,.faq-aside {
    max-width:650px
  }
  .contact-layout {
    grid-template-columns:.8fr 1.2fr;
    gap:40px
  }
  .footer-top {
    grid-template-columns:1fr;
    gap:60px
  }
  .footer-invite {
    max-width:720px
  }
}
@media(max-width:650px) {
  :root {
    --space-section:78px
  }
  .container {
    width:calc(100% - 40px)
  }
  .header-inner {
    height:70px
  }
  .brand-monogram {
    width:35px;
    height:35px
  }
  .brand-name {
    font-size:.91rem
  }
  .brand-name span {
    font-size:.48rem
  }
  .header-actions {
    display:none
  }
  .site-nav {
    padding-inline:28px
  }
  .site-hero {
    padding:75px 0 100px
  }
  .hero-eyebrow {
    max-width:300px;
    font-size:.61rem
  }
  .hero-title {
    font-size:clamp(2.85rem,11.5vw,4.6rem);
    line-height:.92
  }
  .hero-description {
    margin-top:22px;
    font-size:.98rem
  }
  .hero-actions {
    gap:14px;
    margin-top:28px
  }
  .hero-actions .button {
    min-height:49px;
    padding-inline:18px
  }
  .hero-footnote {
    gap:10px;
    flex-direction:column;
    align-items:flex-start;
    margin-top:42px
  }
  .hero-visual {
    min-height:370px;
    margin-top:0
  }
  .visual-card-main {
    top:12%;
    left:5%;
    width:83%;
    height:76%;
    transform:rotate(-4deg)
  }
  .visual-card-back {
    top:21%;
    right:0;
    width:43%;
    height:57%
  }
  .mock-content {
    padding:23px 20px
  }
  .mock-content>strong {
    font-size:clamp(2.5rem,11vw,3.8rem)
  }
  .mock-content>p {
    font-size:.47rem
  }
  .mock-cta {
    margin-top:16px
  }
  .visual-note {
    padding:9px 10px;
    font-size:.49rem
  }
  .note-left {
    left:-1%;
    bottom:9%
  }
  .note-right {
    right:-2%;
    bottom:19%
  }
  .visual-label {
    font-size:.51rem
  }
  .visual-index {
    font-size:.55rem
  }
  .scroll-cue {
    bottom:18px
  }
  .intro-statement {
    font-size:clamp(2rem,9vw,3.4rem)
  }
  .intro-stamp {
    right:1px;
    bottom:-54px;
    width:48px;
    height:48px;
    font-size:1rem
  }
  .section-heading-row {
    display:block;
    margin-bottom:37px
  }
  .section-heading h2,.section-heading-row h2 {
    font-size:clamp(2.35rem,10vw,3.8rem)
  }
  .section-heading-row>.text-link {
    margin-top:25px
  }
  .section-copy {
    margin-top:16px;
    font-size:.93rem
  }
  .project-grid,.project-grid-work {
    grid-template-columns:1fr;
    gap:40px
  }
  .project-card,.project-card:nth-child(n) {
    grid-column:1;
    margin:0!important
  }
  .project-image-wrap,.project-card:nth-child(n) .project-image-wrap {
    aspect-ratio:1.27
  }
  .project-meta {
    flex-wrap:wrap;
    gap:8px;
    font-size:.53rem
  }
  .project-role {
    font-size:.49rem
  }
  .project-title {
    font-size:1.55rem
  }
  .project-description {
    font-size:.85rem
  }
  .service-item {
    grid-template-columns:30px 1fr 22px;
    gap:12px;
    padding:20px 3px
  }
  .service-title {
    font-size:1.25rem
  }
  .service-description {
    font-size:.82rem
  }
  .service-tag {
    display:none
  }
  .service-item:hover {
    padding-inline:8px
  }
  .process-layout {
    gap:39px
  }
  .process-timeline {
    padding-left:27px
  }
  .process-step {
    grid-template-columns:37px 1fr;
    gap:12px;
    padding-bottom:34px
  }
  .step-number {
    width:36px;
    height:36px;
    margin-left:-39px
  }
  .process-step h3 {
    font-size:1.18rem
  }
  .process-step p {
    font-size:.85rem
  }
  .process-page-list {
    padding-left:32px
  }
  .process-step-large {
    grid-template-columns:42px 1fr;
    gap:13px;
    padding-bottom:52px
  }
  .process-step-large .step-number {
    width:39px;
    height:39px;
    margin-left:-50px
  }
  .process-step-large h2 {
    font-size:2.1rem
  }
  .process-step-large .eyebrow {
    font-size:.62rem
  }
  .process-side-note {
    display:block
  }
  .about-preview,.about-detail-layout {
    grid-template-columns:1fr;
    gap:38px
  }
  .about-mark {
    min-height:300px
  }
  .about-mark-inner {
    width:155px;
    height:155px;
    font-size:4.5rem
  }
  .about-copy h2,.about-detail-copy h2 {
    font-size:clamp(2.4rem,10vw,3.6rem)
  }
  .about-photo-wrap {
    max-width:400px
  }
  .principle-grid,.outcome-grid {
    grid-template-columns:1fr;
    gap:5px
  }
  .principle-grid article,.outcome-grid article {
    padding:20px 0
  }
  .principle-grid h3,.outcome-grid h3 {
    margin:16px 0 7px
  }
  .tech-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .tech-item {
    min-height:81px;
    padding:15px 12px;
    font-size:.92rem
  }
  .faq-item summary {
    gap:15px;
    padding:18px 0;
    font-size:.92rem
  }
  .faq-answer {
    padding-right:25px;
    font-size:.85rem
  }
  .contact-home h2 {
    font-size:clamp(2.7rem,12vw,4.4rem)
  }
  .contact-home-inner>p:not(.eyebrow) {
    font-size:.92rem
  }
  .contact-home .hero-actions {
    align-items:flex-start;
    flex-direction:column
  }
  .contact-layout {
    grid-template-columns:1fr;
    gap:42px
  }
  .contact-details {
    position:static
  }
  .contact-details h2 {
    font-size:2.7rem
  }
  .form-pair {
    grid-template-columns:1fr;
    gap:19px
  }
  .contact-form input,.contact-form select {
    min-height:49px
  }
  .page-hero {
    padding-top:70px;
    padding-bottom:55px
  }
  .page-hero h1,.error-inner h1 {
    font-size:clamp(2.85rem,12vw,4.6rem)
  }
  .page-intro {
    margin-top:18px;
    font-size:.98rem
  }
  .archive-project-list {
    grid-template-columns:1fr
  }
  .archive-project-list a {
    padding:15px 0
  }
  .service-detail-grid,.service-steps {
    grid-template-columns:1fr;
    gap:42px
  }
  .service-steps li {
    grid-template-columns:130px 1fr;
    gap:14px
  }
  .cta-inner {
    align-items:flex-start;
    flex-direction:column;
    gap:24px
  }
  .cta-inner h2 {
    font-size:clamp(2.5rem,10vw,3.7rem)
  }
  .insights-grid {
    grid-template-columns:1fr;
    gap:40px
  }
  .insight-card h2 {
    font-size:1.55rem
  }
  .footer-top {
    padding-block:64px 48px;
    gap:45px
  }
  .footer-invite h2 {
    font-size:clamp(2.4rem,10vw,3.6rem)
  }
  .footer-links {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:34px 20px
  }
  .footer-bottom {
    align-items:flex-start;
    flex-wrap:wrap;
    justify-content:flex-start;
    gap:14px 22px
  }
  .footer-bottom p {
    width:calc(50% - 12px)
  }
  .footer-bottom .footer-signature {
    width:100%
  }
  .footer-bottom>a:last-child {
    margin-left:auto
  }
  .consent-banner {
    right:10px;
    bottom:10px;
    left:10px;
    display:block;
    padding:16px
  }
  .consent-actions {
    margin-top:13px
  }
  .consent-actions button {
    flex:1
  }
  .search-form {
    flex-direction:column
  }
  .search-form input[type=submit] {
    width:100%
  }
}
@media(max-width:374px) {
  .container {
    width:calc(100% - 36px)
  }
  .hero-title {
    font-size:2.55rem
  }
  .hero-visual {
    min-height:330px
  }
  .visual-note {
    font-size:.44rem
  }
  .mock-content {
    padding:19px 15px
  }
  .mock-content>strong {
    font-size:2.3rem
  }
  .hero-actions .button {
    font-size:.78rem;
    padding-inline:14px
  }
  .service-title {
    font-size:1.12rem
  }
  .contact-form .button {
    width:100%
  }
  .footer-links {
    grid-template-columns:1fr 1fr
  }
}
@media(hover:none),(pointer:coarse) {
  .project-open {
    transform:none;
    opacity:1
  }
  .hero-visual:hover .visual-card-main {
    transform:rotate(-5deg) translateZ(22px)
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important
  }
  .reveal-up,.reveal-left,.reveal-right,.reveal-fade,.reveal-scale {
    will-change:auto
  }
}
@media(max-width:900px) {
  html.no-js .header-inner {
    height:auto;
    padding-block:14px
  }
  html.no-js .site-nav {
    position:static;
    grid-column:1/-1;
    display:block;
    width:auto;
    padding:0;
    background:transparent;
    box-shadow:none;
    transform:none;
    visibility:visible
  }
  html.no-js .site-nav .menu-list {
    flex-direction:row;
    flex-wrap:wrap;
    gap:4px 18px
  }
  html.no-js .site-nav .menu-list li {
    width:auto;
    border:0
  }
  html.no-js .site-nav .menu-list a {
    padding:7px 0;
    color:var(--color-ivory);
    font:500 .82rem/1.2 var(--font-display);
    letter-spacing:0
  }
  html.no-js .nav-close,html.no-js .mobile-nav-bottom,html.no-js .menu-toggle,html.no-js .header-actions {
    display:none
  }
}
