:root {
  --spat-ink: #101317;
  --spat-ink-2: #171c22;
  --spat-blue: #15222f;
  --spat-paper: #f3f2ee;
  --spat-white: #fff;
  --spat-mist: #e8e9e7;
  --spat-line: rgba(16, 19, 23, .16);
  --spat-burgundy: #761b2b;
  --spat-burgundy-bright: #9b2940;
  --spat-metal: #9da3a8;
  --spat-container: min(92vw, 1600px);
  --spat-header: 104px;
  --spat-ease: cubic-bezier(.22, 1, .36, 1);
  --spat-font: "Arial Nova", "Aptos", "Helvetica Neue", Arial, sans-serif;
  --spat-display: "Arial Nova Condensed", "Arial Narrow", "Aptos Display", "Helvetica Neue", Arial, sans-serif;
}

html { width: 100%; max-width: 100%; overflow-x: hidden; scroll-behavior: smooth; scrollbar-color: var(--spat-burgundy) var(--spat-ink); }
body.spat-site { width: 100%; max-width: 100%; margin: 0; padding: 0 !important; overflow-x: hidden; color: var(--spat-ink); background: var(--spat-paper); font-family: var(--spat-font); font-size: 16px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
.spat-site *, .spat-site *::before, .spat-site *::after { box-sizing: border-box; }
.spat-site main, .spat-site section, .spat-site header, .spat-site footer, .spat-site nav, .spat-site div, .spat-site article { min-width: 0; }
.spat-site img { display: block; max-width: 100%; }
[data-spat-parallax] { --spat-parallax-y: 0px; }
[data-spat-parallax] > img { transform: translate3d(0, var(--spat-parallax-y), 0) scale(1.03); transform-origin: center; will-change: transform; }
.spat-site a { color: inherit; text-decoration: none; }
.spat-site button, .spat-site input, .spat-site select, .spat-site textarea { font: inherit; }
.spat-site button { color: inherit; }
.spat-site h1, .spat-site h2, .spat-site h3, .spat-site p { margin-top: 0; }
.spat-site h1, .spat-site h2, .spat-site h3 { font-family: var(--spat-display); font-weight: 500; letter-spacing: -.035em; line-height: .98; }
.spat-site #spat-main { margin: 0 !important; padding: 0 !important; }
.spat-container { width: var(--spat-container); margin-inline: auto; }
.spat-section { position: relative; padding: clamp(96px, 10vw, 180px) 0; }
.spat-section--ink { color: var(--spat-white); background: var(--spat-ink); }
.spat-section--mist { background: var(--spat-mist); }
.spat-section--burgundy { color: var(--spat-white); background: var(--spat-burgundy); }
.spat-skip-link { position: fixed; z-index: 99999; top: 10px; left: 10px; padding: 12px 16px; color: #fff; background: var(--spat-burgundy); transform: translateY(-150%); transition: transform .2s; }
.spat-skip-link:focus { transform: translateY(0); }
.spat-eyebrow { margin-bottom: 22px; font-size: 11px; font-weight: 700; letter-spacing: .17em; line-height: 1.25; text-transform: uppercase; }
.spat-section-head { display: grid; grid-template-columns: minmax(120px, .5fr) 1.5fr 1fr; gap: 4vw; align-items: start; margin-bottom: clamp(56px, 7vw, 112px); }
.spat-section-head .spat-eyebrow { padding-top: 10px; }
.spat-section-head h2 { max-width: 900px; margin: 0; font-size: clamp(42px, 5.3vw, 88px); }
.spat-section-copy { max-width: 560px; margin: 8px 0 0; color: #555d65; font-size: clamp(16px, 1.25vw, 20px); }
.spat-section--ink .spat-section-copy { color: rgba(255,255,255,.58); }
.spat-section-action { display: flex; justify-content: flex-end; margin-top: 56px; }
.spat-progress { position: fixed; z-index: 10002; top: 0; right: 0; left: 0; height: 2px; pointer-events: none; }
.spat-progress span { display: block; width: 100%; height: 100%; background: var(--spat-burgundy-bright); transform: scaleX(0); transform-origin: 0 50%; }

.spat-header { position: fixed; z-index: 10000; top: 0; right: 0; left: 0; display: grid; grid-template-columns: auto 1fr auto; gap: 32px; align-items: center; height: var(--spat-header); margin: 0; padding: 0 4vw; color: #fff; border-bottom: 1px solid rgba(255,255,255,.15); transform: translateZ(0); transition: height .45s var(--spat-ease), background .45s, border-color .45s, box-shadow .45s, backdrop-filter .45s; }
.spat-header.is-scrolled { top: 0; height: 86px; background: rgba(16,19,23,.94); border-color: rgba(255,255,255,.1); box-shadow: 0 12px 35px rgba(0,0,0,.14); backdrop-filter: blur(18px) saturate(130%); }
.spat-logo { display: inline-flex; width: 190px; min-width: 0; align-items: center; transition: width .45s var(--spat-ease); }
.spat-logo img { width: 100%; height: auto; max-height: 100px; object-fit: contain; object-position: left center; }
.spat-header.is-scrolled .spat-logo { width: 160px; }
.spat-nav { display: flex; gap: clamp(14px, 1.7vw, 31px); align-items: center; justify-content: center; font-size: 12px; font-weight: 600; white-space: nowrap; }
.spat-nav a { position: relative; padding: 9px 0; opacity: .76; transition: opacity .3s; }
.spat-nav a::after { position: absolute; right: 0; bottom: 2px; left: 0; height: 1px; background: currentColor; content: ""; transform: scaleX(0); transform-origin: 100% 50%; transition: transform .4s var(--spat-ease); }
.spat-nav a:hover, .spat-nav a:focus-visible { opacity: 1; }
.spat-nav a:hover::after, .spat-nav a:focus-visible::after { transform: scaleX(1); transform-origin: 0 50%; }
.spat-nav .spat-nav-external { color: #d9a8b1; opacity: 1; }
.spat-header-actions { display: flex; gap: 18px; align-items: center; }
.spat-header-phone { font-size: 12px; font-weight: 700; white-space: nowrap; }
.spat-header-cta { padding: 12px 17px; color: #fff; background: var(--spat-burgundy); border: 0; cursor: pointer; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; transition: background .3s, transform .3s; }
.spat-header-cta:hover { background: var(--spat-burgundy-bright); transform: translateY(-2px); }
.spat-menu-toggle { display: none; width: 44px; height: 44px; padding: 13px; background: transparent; border: 1px solid rgba(255,255,255,.25); cursor: pointer; }
.spat-menu-toggle i { display: block; width: 100%; height: 1px; margin: 5px 0; background: currentColor; transition: transform .3s; }

.spat-btn { position: relative; display: inline-flex; overflow: hidden; gap: 38px; align-items: center; justify-content: space-between; min-height: 58px; padding: 0 21px 0 25px; appearance: none; border: 1px solid transparent; border-radius: 0; cursor: pointer; font-family: var(--spat-font); font-size: 11px; font-weight: 700; letter-spacing: .08em; line-height: 1; text-align: left; text-transform: uppercase; white-space: nowrap; transition: color .4s, background .4s, border-color .4s, transform .2s; }
.spat-btn::before { position: absolute; inset: 0; background: var(--spat-white); content: ""; transform: translateY(102%); transition: transform .45s var(--spat-ease); }
.spat-btn span, .spat-btn svg { position: relative; z-index: 1; }
.spat-btn svg { width: 19px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.spat-btn:hover::before { transform: translateY(0); }
.spat-btn--primary { color: #fff !important; background: var(--spat-burgundy); }
.spat-btn--primary::before { background: var(--spat-burgundy-bright); }
.spat-btn--primary:hover { color: #fff !important; }
.spat-btn--glass { color: #fff; background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.34); backdrop-filter: blur(10px); }
.spat-btn--glass:hover { color: var(--spat-ink); }
.spat-btn--outline-light { color: #fff; background: transparent; border-color: rgba(255,255,255,.42); }
.spat-btn--outline-light:hover { color: var(--spat-ink); }
.spat-btn--outline { color: var(--spat-ink); background: transparent; border-color: rgba(16,19,23,.35); }
.spat-btn--outline::before { background: var(--spat-ink); }
.spat-btn--outline:hover { color: #fff; }
.spat-btn--text { min-height: auto; padding: 8px 0; border-bottom: 1px solid currentColor; }
.spat-btn--text::before { display: none; }
.spat-btn--text:hover { color: var(--spat-burgundy); }

.spat-hero { position: relative; min-height: max(760px, 100svh); margin-top: 0 !important; overflow: hidden; color: #fff; background: var(--spat-ink); }
.spat-hero-media { position: absolute; inset: 0; overflow: hidden; will-change: transform; }
.spat-hero-image { position: relative; top: -6%; width: 100%; height: 112%; object-fit: cover; object-position: center 44%; filter: saturate(.7) contrast(1.08); transform: translate3d(0, var(--spat-parallax-y), 0) scale(1.03); }
.spat-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9,12,15,.96) 0%, rgba(11,14,18,.88) 35%, rgba(12,15,19,.2) 76%), linear-gradient(0deg, rgba(10,13,16,.78), transparent 45%); }
.spat-hero-grid { position: absolute; z-index: 1; inset: 0; opacity: .16; background-image: linear-gradient(rgba(255,255,255,.22) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.22) 1px, transparent 1px); background-size: 7.5vw 7.5vw; mask-image: linear-gradient(90deg, black, transparent 72%); }
.spat-hero-content { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; min-height: max(760px, 100svh); padding-top: calc(var(--spat-header) + 70px); padding-bottom: 90px; }
.spat-hero-kicker { display: flex; gap: 18px; align-items: center; margin-bottom: clamp(30px, 5vh, 60px); font-size: 10px; font-weight: 700; letter-spacing: .16em; }
.spat-hero-kicker i { width: 65px; height: 1px; background: rgba(255,255,255,.5); }
.spat-hero-title { max-width: 1140px; margin: 0; font-size: clamp(54px, 6.6vw, 118px); font-weight: 500; line-height: .92; text-wrap: balance; }
.spat-hero-title em { color: #cf9da7; font-style: normal; }
.spat-hero-lead { max-width: 680px; margin: clamp(30px, 4vh, 48px) 0 0 clamp(0px, 14vw, 230px); color: rgba(255,255,255,.78); font-size: clamp(17px, 1.35vw, 22px); }
.spat-hero-actions { display: flex; gap: 12px; margin: 34px 0 0 clamp(0px, 14vw, 230px); }
.spat-hero-note { position: absolute; right: 0; bottom: 56px; display: flex; gap: 18px; align-items: flex-start; width: 330px; padding: 22px 0 0; border-top: 1px solid rgba(255,255,255,.35); font-size: 12px; letter-spacing: .03em; }
.spat-hero-note b { color: #d9a8b1; }
.spat-scroll-cue { position: absolute; z-index: 3; bottom: 34px; left: 4vw; display: flex; gap: 15px; align-items: center; writing-mode: vertical-rl; font-size: 8px; letter-spacing: .2em; }
.spat-scroll-cue i { position: relative; width: 1px; height: 60px; overflow: hidden; background: rgba(255,255,255,.24); }
.spat-scroll-cue i::after { position: absolute; top: 0; left: 0; width: 1px; height: 30px; background: #fff; content: ""; animation: spat-scroll 2s infinite; }
@keyframes spat-scroll { 0% { transform: translateY(-32px); } 100% { transform: translateY(64px); } }

.spat-proof { color: #fff; background: var(--spat-burgundy); }
.spat-proof-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.spat-proof-grid > div { min-height: 150px; padding: 34px 28px; border-left: 1px solid rgba(255,255,255,.2); }
.spat-proof-grid > div:last-child { border-right: 1px solid rgba(255,255,255,.2); }
.spat-proof strong { display: block; margin-bottom: 15px; font-family: var(--spat-display); font-size: clamp(27px, 2.25vw, 38px); font-weight: 500; letter-spacing: -.035em; line-height: 1; }
.spat-proof span { opacity: .7; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }

.spat-reveal { opacity: 0; transform: translateY(38px); transition: opacity .85s var(--spat-ease), transform .85s var(--spat-ease); }
.spat-reveal.is-visible { opacity: 1; transform: none; }
.spat-mask-reveal { position: relative; overflow: hidden; clip-path: inset(0 100% 0 0); transition: clip-path 1.15s var(--spat-ease); }
.spat-mask-reveal.is-visible { clip-path: inset(0 0 0 0); }
.spat-mask-reveal img { transition: transform 1.2s var(--spat-ease), filter .8s; transform: scale(1.08); }
.spat-mask-reveal.is-visible img { transform: scale(1); }
.spat-split-word { display: inline-block; overflow: hidden; vertical-align: bottom; }
.spat-split-word > span { display: inline-block; transform: translateY(110%); transition: transform .9s var(--spat-ease); transition-delay: calc(var(--word-index) * 45ms + 100ms); }
.is-split-visible .spat-split-word > span { transform: translateY(0); }

.spat-manifesto-grid { display: grid; grid-template-columns: minmax(140px, .42fr) 1.58fr; gap: 5vw; }
.spat-section-index { padding-top: 12px; font-size: 10px; font-weight: 700; letter-spacing: .17em; }
.spat-manifesto-copy { max-width: 1250px; margin-bottom: 70px; font-family: var(--spat-display); font-size: clamp(38px, 5vw, 82px); letter-spacing: -.045em; line-height: 1.02; }
.spat-manifesto-copy em { color: var(--spat-burgundy); font-style: normal; }
.spat-manifesto-bottom { display: grid; grid-template-columns: 1fr auto; gap: 80px; align-items: end; padding-top: 40px; border-top: 1px solid var(--spat-line); }
.spat-manifesto-bottom p { max-width: 600px; margin: 0; color: #535a60; font-size: 18px; }

.spat-service-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.15); border-left: 1px solid rgba(255,255,255,.15); }
.spat-service-card { position: relative; min-height: 320px; padding: 32px; color: #fff; border-right: 1px solid rgba(255,255,255,.15); border-bottom: 1px solid rgba(255,255,255,.15); transform-style: preserve-3d; transition: background .45s, color .45s, transform .18s; }
.spat-service-card::before { position: absolute; inset: 0; background: var(--spat-burgundy); content: ""; opacity: 0; transition: opacity .45s; }
.spat-service-card > * { position: relative; z-index: 1; }
.spat-service-card:hover::before { opacity: 1; }
.spat-service-number { display: inline-block; margin-right: 24px; color: #bf8994; font-size: 11px; font-weight: 700; }
.spat-service-group { color: rgba(255,255,255,.45); font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.spat-service-card h3 { margin: 74px 0 20px; font-size: clamp(30px, 2.4vw, 45px); }
.spat-service-card p { max-width: 390px; margin: 0; color: rgba(255,255,255,.55); font-size: 13px; }
.spat-service-card:hover p, .spat-service-card:hover .spat-service-group { color: rgba(255,255,255,.8); }
.spat-card-arrow { position: absolute; right: 28px; bottom: 24px; font-size: 24px; transition: transform .4s var(--spat-ease); }
.spat-service-card:hover .spat-card-arrow { transform: translate(4px,-4px); }

.spat-objects { min-height: clamp(1120px, 150vh, 1600px); overflow: clip; padding-bottom: clamp(40px, 4vw, 72px); }
.spat-object-viewport { position: sticky; top: 105px; width: 100%; overflow: hidden; }
.spat-object-track { display: flex; gap: 24px; width: max-content; padding: 0 4vw; will-change: transform; }
.spat-object-card { width: min(44vw, 700px); flex: none; }
.spat-object-image { position: relative; overflow: hidden; height: clamp(360px, 42vw, 650px); background: #d5d7d5; }
.spat-object-image::after { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(118,27,43,.06), rgba(14,25,36,.25)); content: ""; mix-blend-mode: multiply; }
.spat-object-image img { width: 100%; height: 110%; object-fit: cover; filter: saturate(.72); transition: transform .8s var(--spat-ease), filter .6s; }
.spat-object-card:hover img { transform: scale(1.04); filter: saturate(.95); }
.spat-object-image span { position: absolute; z-index: 2; inset: 18px; border: 1px solid rgba(255,255,255,.25); pointer-events: none; }
.spat-object-card > div:last-child { display: grid; grid-template-columns: 45px 1fr auto; gap: 20px; align-items: start; padding: 24px 0; border-bottom: 1px solid var(--spat-line); }
.spat-object-card b { color: var(--spat-burgundy); font-size: 11px; }
.spat-object-card h3 { margin: 0; font-size: clamp(30px, 3vw, 52px); }
.spat-object-card p { margin: 8px 0 0; color: #6a7075; font-size: 12px; }

.spat-path { padding-top: 0; }
.spat-path-line { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--spat-line); border-left: 1px solid var(--spat-line); }
.spat-path-step { position: relative; min-height: 180px; padding: 25px; border-right: 1px solid var(--spat-line); border-bottom: 1px solid var(--spat-line); }
.spat-path-step b { color: var(--spat-burgundy); font-size: 11px; }
.spat-path-step span { position: absolute; right: 25px; bottom: 24px; left: 25px; font-size: clamp(17px, 1.5vw, 24px); font-weight: 600; line-height: 1.15; }
.spat-path-progress { position: absolute; z-index: 2; top: -1px; left: 0; width: 100%; height: 2px; background: var(--spat-burgundy); transform: scaleX(0); transform-origin: 0 50%; }

.spat-feature-grid { display: grid; grid-template-columns: 1.12fr .88fr; gap: clamp(60px, 9vw, 150px); align-items: center; }
.spat-feature-grid--reverse { grid-template-columns: .88fr 1.12fr; }
.spat-feature-media { height: min(67vw, 840px); }
.spat-feature-media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72) contrast(1.03); }
.spat-image-code { position: absolute; z-index: 3; right: 18px; bottom: 18px; padding: 9px 11px; color: #fff; background: rgba(16,19,23,.76); font-size: 9px; font-weight: 700; letter-spacing: .15em; }
.spat-feature-copy h2 { max-width: 700px; margin: 0 0 32px; font-size: clamp(44px, 5vw, 80px); }
.spat-feature-copy > p:not(.spat-eyebrow) { max-width: 590px; color: #565e64; font-size: 18px; }
.spat-feature-copy ul { margin: 42px 0; padding: 0; list-style: none; border-top: 1px solid var(--spat-line); }
.spat-feature-copy li { padding: 15px 0; border-bottom: 1px solid var(--spat-line); font-size: 13px; font-weight: 600; }
.spat-mini-metrics { display: grid; grid-template-columns: 1fr 1fr; margin: 38px 0; border-top: 1px solid var(--spat-line); border-bottom: 1px solid var(--spat-line); }
.spat-mini-metrics span { padding: 24px 18px 24px 0; color: #6a7075; font-size: 11px; text-transform: uppercase; }
.spat-mini-metrics span + span { padding-left: 22px; border-left: 1px solid var(--spat-line); }
.spat-mini-metrics b { display: block; margin-bottom: 7px; color: var(--spat-ink); font-family: var(--spat-display); font-size: 34px; font-weight: 500; }

.spat-project-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(55px, 7vw, 110px) 24px; }
.spat-project-card { color: #fff; }
.spat-project-image { position: relative; height: clamp(350px, 39vw, 650px); background: #272c31; }
.spat-project-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.7) contrast(1.05); }
.spat-project-open { position: absolute; z-index: 2; right: 20px; bottom: 20px; padding: 10px 12px; color: var(--spat-ink); background: #fff; font-size: 9px; font-weight: 700; letter-spacing: .12em; opacity: 0; transform: translateY(10px); transition: opacity .4s, transform .4s; }
.spat-project-card:hover .spat-project-open { opacity: 1; transform: none; }
.spat-project-meta { display: flex; gap: 12px; margin-top: 19px; color: rgba(255,255,255,.5); font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.spat-project-meta span + span::before { margin-right: 12px; content: "/"; }
.spat-project-card h3, .spat-project-card h2 { margin: 14px 0 12px; font-size: clamp(32px, 3vw, 52px); transition: color .3s; }
.spat-project-card:hover h3, .spat-project-card:hover h2 { color: #d7a4ae; }
.spat-project-card > p { max-width: 600px; color: rgba(255,255,255,.5); }
.spat-project-grid--catalog .spat-project-card { color: var(--spat-ink); }
.spat-project-grid--catalog .spat-project-meta, .spat-project-grid--catalog .spat-project-card > p { color: #666d72; }

.spat-why-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(70px, 10vw, 180px); align-items: start; }
.spat-why-sticky { position: sticky; top: 110px; }
.spat-why-sticky h2 { margin: 0 0 50px; font-size: clamp(43px, 5vw, 80px); }
.spat-why-image { height: 450px; }
.spat-why-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.55); }
.spat-why-list { border-top: 1px solid var(--spat-line); }
.spat-reason { display: grid; grid-template-columns: 50px 1fr .9fr; gap: 25px; align-items: center; min-height: 150px; border-bottom: 1px solid var(--spat-line); }
.spat-reason > b { color: var(--spat-burgundy); font-size: 11px; }
.spat-reason h3 { margin: 0; font-size: clamp(27px, 2.5vw, 44px); }
.spat-reason p { margin: 0; color: #60676c; font-size: 13px; }

.spat-evidence-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 12vw; align-items: end; }
.spat-evidence h2 { max-width: 880px; margin: 0; font-size: clamp(45px, 5.5vw, 88px); }
.spat-evidence-copy p { margin-bottom: 35px; color: rgba(255,255,255,.73); font-size: 18px; }

.spat-start-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--spat-line); border-left: 1px solid var(--spat-line); }
.spat-start-card { min-height: 190px; padding: 25px; border-right: 1px solid var(--spat-line); border-bottom: 1px solid var(--spat-line); }
.spat-start-card b { color: var(--spat-burgundy); font-size: 11px; }
.spat-start-card h3 { max-width: 290px; margin: 70px 0 0; font-size: clamp(24px, 2.1vw, 36px); }
.spat-start-cta { display: grid; grid-template-columns: 1fr auto; gap: 50px; align-items: end; margin-top: 24px; padding: clamp(35px, 5vw, 72px); color: #fff; background: var(--spat-blue); }
.spat-start-cta span { font-size: 9px; font-weight: 700; letter-spacing: .17em; }
.spat-start-cta h3 { max-width: 920px; margin: 23px 0 0; font-size: clamp(34px, 4vw, 64px); }

.spat-article-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--spat-line); border-left: 1px solid var(--spat-line); }
.spat-article-card { position: relative; min-height: 390px; padding: 28px; border-right: 1px solid var(--spat-line); border-bottom: 1px solid var(--spat-line); transition: color .4s, background .4s; }
.spat-article-card:hover { color: #fff; background: var(--spat-burgundy); }
.spat-article-card > div { display: flex; justify-content: space-between; font-size: 9px; font-weight: 700; letter-spacing: .12em; }
.spat-article-card h3 { margin: 100px 0 20px; font-size: clamp(27px, 2.5vw, 43px); }
.spat-article-card p { color: #62696e; font-size: 13px; }
.spat-article-card:hover p { color: rgba(255,255,255,.72); }
.spat-article-arrow { position: absolute; right: 28px; bottom: 25px; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

.spat-bpla { position: relative; overflow: hidden; padding: clamp(90px, 10vw, 170px) 0; color: #fff; background: #0b141c; }
.spat-bpla::before { position: absolute; inset: 0; opacity: .18; background-image: linear-gradient(rgba(255,255,255,.25) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.25) 1px, transparent 1px); background-size: 70px 70px; content: ""; mask-image: radial-gradient(circle at 20% 50%, #000, transparent 55%); }
.spat-bpla-grid { position: relative; display: grid; grid-template-columns: .8fr 1.2fr; gap: 10vw; align-items: center; }
.spat-bpla-mark { position: relative; width: min(30vw, 440px); aspect-ratio: 1; isolation: isolate; }
.spat-bpla-mark::before { position: absolute; z-index: -1; inset: 8%; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.065), rgba(255,255,255,0) 69%); box-shadow: 0 0 100px rgba(130,194,226,.08); content: ""; }
.spat-bpla-radar { display: block; width: 100%; height: 100%; overflow: hidden; border-radius: 50%; }
.spat-radar-field { fill: url(#spat-radar-field); stroke: rgba(255,255,255,.26); stroke-width: 1; }
.spat-radar-grid { fill: none; stroke: rgba(255,255,255,.19); stroke-width: .8; }
.spat-radar-grid path { stroke: rgba(255,255,255,.09); stroke-dasharray: 2 8; }
.spat-radar-grid circle:nth-of-type(2) { stroke-dasharray: 2 7; }
.spat-radar-grid circle:nth-of-type(4) { stroke-dasharray: 1 6; }
.spat-radar-sweep path { fill: url(#spat-radar-sweep); }
.spat-radar-pulse { fill: none; stroke: rgba(255,255,255,.68); stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.spat-radar-core-glow { fill: rgba(255,255,255,.16); filter: url(#spat-radar-glow); }
.spat-radar-core { fill: #fff; filter: url(#spat-radar-glow); }
.spat-radar-fallback-drone { fill: #fff; opacity: .82; filter: url(#spat-radar-glow); }
.spat-bpla-mark.is-radar-active .spat-radar-fallback-flights { display: none; }
.spat-radar-flight-path { visibility: hidden; pointer-events: none; }
.spat-radar-drone { color: #fff; filter: url(#spat-radar-glow); }
.spat-radar-drone path { fill: currentColor; }
.spat-radar-drone circle { fill: none; stroke: currentColor; stroke-width: 1.2; }
.spat-radar-trail-dot { fill: #fff; pointer-events: none; }
.spat-bpla h2 { margin: 0 0 28px; font-size: clamp(48px, 6vw, 96px); }
.spat-bpla p:not(.spat-eyebrow) { max-width: 620px; margin-bottom: 35px; color: rgba(255,255,255,.65); font-size: 18px; }

.spat-final-cta { position: relative; min-height: 750px; overflow: hidden; color: #fff; }
.spat-final-image { position: absolute; inset: -5%; }
.spat-final-image img { width: 100%; height: 110%; object-fit: cover; filter: saturate(.55); }
.spat-final-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12,15,19,.93), rgba(12,15,19,.34)); }
.spat-final-content { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: 750px; }
.spat-final-content h2 { max-width: 1050px; margin: 0 0 28px; font-size: clamp(48px, 6vw, 96px); }
.spat-final-content > p:not(.spat-eyebrow) { max-width: 600px; color: rgba(255,255,255,.72); font-size: 18px; }
.spat-final-content .spat-btn { align-self: flex-start; margin-top: 26px; }

.spat-footer { padding-top: clamp(80px, 9vw, 150px); color: #fff; background: #090c0f; }
.spat-footer-top { display: grid; grid-template-columns: 1.35fr .85fr .4fr; gap: 7vw; padding-bottom: 85px; }
.spat-footer-logo { display: block; width: clamp(280px, 28vw, 430px); max-width: 100%; margin-bottom: clamp(42px, 5vw, 70px); }
.spat-footer-logo img { width: 100%; height: auto; }
.spat-footer-brand h2 { margin: 0 0 36px; font-size: clamp(45px, 5vw, 82px); }
.spat-footer-contact { display: flex; flex-direction: column; gap: 17px; align-items: flex-start; padding-top: 37px; }
.spat-footer-contact > a { font-family: var(--spat-display); font-size: clamp(25px, 2vw, 34px); letter-spacing: -.02em; }
.spat-footer-contact address { max-width: 480px; margin-top: 20px; color: rgba(255,255,255,.5); font-style: normal; }
.spat-footer-nav { display: flex; flex-direction: column; gap: 14px; padding-top: 37px; font-size: 12px; font-weight: 700; }
.spat-footer-nav a:hover { color: #d9a8b1; }
.spat-footer-bottom { display: flex; gap: 30px; justify-content: space-between; padding: 24px 0; color: rgba(255,255,255,.42); border-top: 1px solid rgba(255,255,255,.13); font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.spat-mobile-call { position: fixed; z-index: 9000; right: 20px; bottom: 20px; display: none; width: 54px; height: 54px; padding: 15px; color: #fff; background: var(--spat-burgundy); border-radius: 50%; box-shadow: 0 10px 35px rgba(0,0,0,.28); }
.spat-mobile-call svg { width: 100%; fill: currentColor; }

.spat-inner-hero { position: relative; min-height: 700px; padding: calc(var(--spat-header) + 90px) 0 90px; overflow: hidden; color: #fff; background: var(--spat-ink); }
.spat-inner-hero > .spat-container { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: flex-end; min-height: 515px; }
.spat-inner-hero.has-image > .spat-container { width: min(92vw, 1680px); padding-right: 40%; }
.spat-inner-media { position: absolute; top: 0; right: 0; bottom: 0; width: 55%; overflow: hidden; }
.spat-inner-media img { position: relative; top: -5%; width: 100%; height: 110%; object-fit: cover; filter: saturate(.62) contrast(1.08); }
.spat-inner-media span { position: absolute; inset: 0; background: linear-gradient(90deg, var(--spat-ink), rgba(16,19,23,.05) 55%), linear-gradient(0deg, rgba(16,19,23,.45), transparent); }
.spat-inner-hero h1 { max-width: 1050px; margin: 0; font-size: clamp(58px, 7vw, 118px); }
.spat-inner-lead { max-width: 760px; margin: 35px 0 0; color: rgba(255,255,255,.68); font-size: clamp(17px, 1.5vw, 23px); }
.spat-breadcrumbs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: auto; color: rgba(255,255,255,.48); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.spat-breadcrumbs a:hover { color: #fff; }

.spat-directory-group { display: grid; grid-template-columns: .45fr 1.55fr; gap: 5vw; padding: 30px 0 90px; border-top: 1px solid var(--spat-line); }
.spat-directory-title { display: flex; flex-direction: column; justify-content: space-between; min-height: 130px; }
.spat-directory-title span { color: #777d82; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.spat-directory-list { border-top: 1px solid var(--spat-line); }
.spat-directory-row { position: relative; display: grid; grid-template-columns: .7fr 1fr auto; gap: 40px; align-items: center; min-height: 150px; border-bottom: 1px solid var(--spat-line); transition: padding .4s var(--spat-ease), color .3s; }
.spat-directory-row::before { position: absolute; inset: 0; z-index: -1; background: var(--spat-burgundy); content: ""; transform: scaleY(0); transform-origin: 50% 100%; transition: transform .45s var(--spat-ease); }
.spat-directory-row:hover { z-index: 1; padding-inline: 24px; color: #fff; }
.spat-directory-row:hover::before { transform: scaleY(1); }
.spat-directory-row h2 { margin: 0; font-size: clamp(28px, 3vw, 50px); }
.spat-directory-row p { margin: 0; color: #62696e; font-size: 13px; }
.spat-directory-row:hover p { color: rgba(255,255,255,.7); }
.spat-directory-row > span { font-size: 23px; }

.spat-cost-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; }
.spat-cost-grid h2 { margin: 0 0 25px; font-size: clamp(44px, 5vw, 78px); }
.spat-cost-grid > div:first-child > p:not(.spat-eyebrow) { max-width: 550px; color: #666d72; }
.spat-section--ink .spat-cost-grid > div:first-child > p:not(.spat-eyebrow) { color: rgba(255,255,255,.56); }
.spat-cost-factors { border-top: 1px solid currentColor; }
.spat-cost-factors span { display: grid; grid-template-columns: 44px 1fr; padding: 17px 0; border-bottom: 1px solid currentColor; font-size: 14px; }
.spat-cost-factors b { color: var(--spat-burgundy-bright); font-size: 10px; }
.spat-cost-action { grid-column: 2; }

.spat-about-number-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.16); border-left: 1px solid rgba(255,255,255,.16); }
.spat-about-number-grid > div { min-height: 350px; padding: 35px; border-right: 1px solid rgba(255,255,255,.16); border-bottom: 1px solid rgba(255,255,255,.16); }
.spat-about-number-grid strong { display: block; margin-bottom: 15px; color: #d6a2ad; font-family: var(--spat-display); font-size: clamp(60px, 8vw, 125px); font-weight: 500; letter-spacing: -.06em; line-height: .9; }
.spat-about-number-grid span { font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.spat-about-number-grid p { max-width: 350px; margin-top: 100px; color: rgba(255,255,255,.55); }
.spat-principle-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--spat-line); border-left: 1px solid var(--spat-line); }
.spat-principle { min-height: 300px; padding: 32px; border-right: 1px solid var(--spat-line); border-bottom: 1px solid var(--spat-line); }
.spat-principle > b { color: var(--spat-burgundy); font-size: 11px; }
.spat-principle h3 { margin: 90px 0 18px; font-size: clamp(32px, 3.2vw, 52px); }
.spat-principle p { max-width: 550px; color: #62696e; }
.spat-mosaic { display: grid; grid-template-columns: 1.35fr .65fr; grid-template-rows: 380px 380px; gap: 20px; }
.spat-mosaic > div { min-height: 0; }
.spat-mosaic img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.68); }
.spat-mosaic-a { grid-row: 1 / span 2; }

.spat-archive-lead { max-width: 720px; margin: -22px 0 54px min(22vw,320px); color: #5c6267; font-size: clamp(16px,1.4vw,20px); line-height: 1.65; }
.spat-archive-grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); grid-template-rows: repeat(2,clamp(290px,27vw,460px)) clamp(280px,23vw,400px); gap: 18px; }
.spat-archive-card { position: relative; min-width: 0; min-height: 0; overflow: hidden; margin: 0; background: #20262b; isolation: isolate; }
.spat-archive-card::after { position: absolute; z-index: 1; right: 0; bottom: 0; left: 0; height: 58%; pointer-events: none; background: linear-gradient(180deg,transparent,rgba(4,7,9,.82)); content: ""; }
.spat-archive-card img { display: block; width: 100%; height: 100%; visibility: visible !important; opacity: 1 !important; object-fit: cover; filter: saturate(.78) contrast(1.04); transform: scale(1.005); transition: filter .7s ease, transform 1s var(--spat-ease); }
.spat-archive-card:hover img { filter: saturate(.98) contrast(1.02); transform: scale(1.045); }
.spat-archive-card figcaption { position: absolute; z-index: 2; right: clamp(18px,2.2vw,34px); bottom: clamp(18px,2.2vw,34px); left: clamp(18px,2.2vw,34px); display: flex; gap: 12px; align-items: flex-end; justify-content: space-between; color: #fff; }
.spat-archive-card figcaption span { color: rgba(255,255,255,.68); font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.spat-archive-card figcaption strong { max-width: 290px; color: #fff; font-size: clamp(18px,1.8vw,29px); font-weight: 500; line-height: 1.08; text-align: right; }
.spat-archive-card--main { grid-column: 1 / span 8; grid-row: 1 / span 2; }
.spat-archive-card--office { grid-column: 9 / span 4; grid-row: 1; }
.spat-archive-card--brick { grid-column: 9 / span 4; grid-row: 2; }
.spat-archive-card--retail { grid-column: 1 / span 5; grid-row: 3; }
.spat-archive-card--industrial { grid-column: 6 / span 7; grid-row: 3; }

@media (max-width: 980px) {
	.spat-archive-lead { margin-left: 0; }
	.spat-archive-grid { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: auto; }
	.spat-archive-card { grid-column: auto; grid-row: auto; min-height: 0; aspect-ratio: 4 / 3; }
	.spat-archive-card--main, .spat-archive-card--industrial { grid-column: 1 / -1; aspect-ratio: 16 / 8.5; }
}

@media (max-width: 680px) {
	.spat-archive-lead { margin: -8px 0 34px; font-size: 16px; }
	.spat-archive-grid { grid-template-columns: 1fr; gap: 12px; }
	.spat-archive-card, .spat-archive-card--main, .spat-archive-card--industrial { grid-column: 1; aspect-ratio: 4 / 3; }
	.spat-archive-card figcaption { align-items: flex-start; flex-direction: column; }
	.spat-archive-card figcaption strong { max-width: 100%; font-size: 21px; text-align: left; }
}

.spat-filters { display: flex; gap: 10px; margin-bottom: 55px; overflow-x: auto; }
.spat-filters button { flex: none; padding: 11px 16px; color: #535a60; background: transparent; border: 1px solid var(--spat-line); cursor: pointer; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.spat-filters button.is-active, .spat-filters button:hover { color: #fff; background: var(--spat-burgundy); border-color: var(--spat-burgundy); }
[data-spat-project-filter].is-filtered-out { display: none; }

.spat-document-note { display: grid; grid-template-columns: 140px 1fr; gap: 30px; margin-bottom: 70px; padding: 25px; border: 1px solid var(--spat-line); }
.spat-document-note b { color: var(--spat-burgundy); font-size: 10px; letter-spacing: .14em; }
.spat-document-note p { max-width: 760px; margin: 0; color: #5c6368; }
.spat-document-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.spat-document-card { min-height: 300px; padding: 28px; background: #fff; }
.spat-document-card > span { color: var(--spat-burgundy); font-size: 9px; font-weight: 700; letter-spacing: .14em; }
.spat-document-card h2 { margin: 100px 0 20px; font-size: 34px; }
.spat-document-empty { display: grid; grid-template-columns: .75fr 1.25fr; gap: 8vw; align-items: center; padding: clamp(45px, 7vw, 105px); color: #fff; background: var(--spat-blue); }
.spat-document-empty h2 { margin: 0 0 25px; font-size: clamp(42px, 5vw, 78px); }
.spat-document-empty p:not(.spat-eyebrow) { max-width: 600px; color: rgba(255,255,255,.66); }
.spat-document-empty .spat-btn { margin-top: 25px; }
.spat-doc-rings { position: relative; aspect-ratio: 1; }
.spat-doc-rings i { position: absolute; inset: calc(var(--r, 0) * 16%); border: 1px solid rgba(255,255,255,.22); border-radius: 50%; }
.spat-doc-rings i:nth-child(1) { --r: 0; }
.spat-doc-rings i:nth-child(2) { --r: 1; }
.spat-doc-rings i:nth-child(3) { --r: 2; background: var(--spat-burgundy); }
.spat-article-grid--page { grid-template-columns: repeat(3, 1fr); }

.spat-contact-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 7vw; }
.spat-contact-list > div { display: grid; grid-template-columns: 150px 1fr; gap: 30px; padding: 22px 0; border-bottom: 1px solid var(--spat-line); }
.spat-contact-list > div:first-child { border-top: 1px solid var(--spat-line); }
.spat-contact-list span { color: #70777b; font-size: 9px; font-weight: 700; letter-spacing: .14em; }
.spat-contact-list a, .spat-contact-list address, .spat-contact-list p { margin: 0; font-family: var(--spat-display); font-size: clamp(24px, 2.4vw, 39px); font-style: normal; line-height: 1.12; }
.spat-contact-list .spat-btn { margin-top: 40px; }
.spat-map-card { position: relative; min-height: 650px; overflow: hidden; background: #d9d9d3; isolation: isolate; }
.spat-map-card iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.spat-map-label { position: absolute; z-index: 2; right: 24px; bottom: 24px; left: 24px; display: grid; gap: 8px; padding: 24px; color: #fff; background: rgba(16,19,23,.91); border: 1px solid rgba(255,255,255,.18); box-shadow: 0 20px 55px rgba(0,0,0,.26); backdrop-filter: blur(16px) saturate(120%); transition: background .3s, transform .3s var(--spat-ease); }
.spat-map-label:hover { background: rgba(118,27,43,.96); transform: translateY(-3px); }
.spat-map-label span { font-size: 9px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.spat-map-label address { max-width: 560px; color: rgba(255,255,255,.74); font-size: 13px; font-style: normal; line-height: 1.45; }
.spat-map-label b { margin-top: 4px; color: #fff; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }

.spat-service-hero { position: relative; min-height: 800px; overflow: hidden; color: #fff; background: var(--spat-ink); }
.spat-service-hero-media { position: absolute; inset: 0 0 0 42%; }
.spat-service-hero-media img { position: relative; top: -5%; width: 100%; height: 110%; object-fit: cover; filter: saturate(.6) contrast(1.08); }
.spat-service-hero-media span { position: absolute; inset: 0; background: linear-gradient(90deg, var(--spat-ink), rgba(16,19,23,.08) 60%), linear-gradient(0deg, rgba(16,19,23,.55), transparent); }
.spat-service-hero-content { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: flex-end; min-height: 800px; padding: calc(var(--spat-header) + 45px) 48% 90px 0; }
.spat-service-hero-content .spat-breadcrumbs { margin-bottom: auto; }
.spat-service-hero h1 { margin: 0; font-size: clamp(58px, 7vw, 112px); }
.spat-service-hero .spat-hero-actions { margin-left: 0; }
.spat-service-facts { color: #fff; background: var(--spat-burgundy); }
.spat-service-facts .spat-container { display: grid; grid-template-columns: repeat(4, 1fr); }
.spat-service-facts .spat-container > div { min-height: 130px; padding: 28px; border-left: 1px solid rgba(255,255,255,.2); }
.spat-service-facts .spat-container > div:last-child { border-right: 1px solid rgba(255,255,255,.2); }
.spat-service-facts span { display: block; margin-bottom: 26px; opacity: .58; font-size: 9px; font-weight: 700; letter-spacing: .13em; }
.spat-service-facts b { font-family: var(--spat-display); font-size: 24px; font-weight: 500; }
.spat-service-two-col { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8vw; }
.spat-service-two-col .spat-section-head { display: block; margin-bottom: 45px; }
.spat-service-two-col .spat-section-head h2 { font-size: clamp(40px, 4vw, 65px); }
.spat-large-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--spat-line); }
.spat-large-list li { display: grid; grid-template-columns: 50px 1fr; gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--spat-line); font-size: 18px; }
.spat-large-list b { color: var(--spat-burgundy); font-size: 10px; }
.spat-inputs-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10vw; }
.spat-inputs h2 { margin: 0 0 25px; font-size: clamp(45px, 5vw, 78px); }
.spat-inputs-grid > div:first-child > p:not(.spat-eyebrow) { color: rgba(255,255,255,.55); }
.spat-input-cards { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid rgba(255,255,255,.15); border-left: 1px solid rgba(255,255,255,.15); }
.spat-input-cards div { min-height: 150px; padding: 23px; border-right: 1px solid rgba(255,255,255,.15); border-bottom: 1px solid rgba(255,255,255,.15); }
.spat-input-cards b { display: block; margin-bottom: 55px; color: #d7a4ae; font-size: 10px; }
.spat-input-cards span { font-size: 16px; }
.spat-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--spat-line); border-left: 1px solid var(--spat-line); }
.spat-related-card { position: relative; min-height: 260px; padding: 27px; border-right: 1px solid var(--spat-line); border-bottom: 1px solid var(--spat-line); transition: color .4s, background .4s; }
.spat-related-card:hover { color: #fff; background: var(--spat-burgundy); }
.spat-related-card > span { font-size: 9px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.spat-related-card h3 { margin: 95px 0 0; font-size: clamp(30px, 3vw, 48px); }
.spat-related-card b { position: absolute; right: 25px; bottom: 22px; font-size: 22px; }
.spat-inline-cta { padding: clamp(70px, 8vw, 130px) 0; color: #fff; background: var(--spat-burgundy); }
.spat-inline-cta .spat-container { display: grid; grid-template-columns: 1fr auto; gap: 70px; align-items: end; }
.spat-inline-cta h2 { max-width: 1000px; margin: 0; font-size: clamp(43px, 5vw, 78px); }

.spat-project-hero { position: relative; min-height: 850px; overflow: hidden; color: #fff; background: #101317; }
.spat-project-hero-image { position: absolute; inset: 0; }
.spat-project-hero-image img { position: relative; top: -5%; width: 100%; height: 110%; object-fit: cover; filter: saturate(.62) contrast(1.08); }
.spat-project-hero-image span { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(9,12,15,.94), rgba(9,12,15,.08) 75%), linear-gradient(90deg, rgba(9,12,15,.55), transparent); }
.spat-project-hero-content { position: relative; z-index: 2; display: flex; min-height: 850px; flex-direction: column; justify-content: flex-end; padding: calc(var(--spat-header) + 40px) 0 90px; }
.spat-project-hero-content .spat-breadcrumbs { margin-bottom: auto; }
.spat-project-hero h1 { max-width: 1100px; margin: 0; font-size: clamp(60px, 8vw, 125px); }
.spat-project-summary { color: #fff; background: var(--spat-burgundy); }
.spat-project-summary .spat-container { display: grid; grid-template-columns: repeat(4, 1fr); }
.spat-project-summary .spat-container > div { min-height: 140px; padding: 27px; border-left: 1px solid rgba(255,255,255,.2); }
.spat-project-summary .spat-container > div:last-child { border-right: 1px solid rgba(255,255,255,.2); }
.spat-project-summary span { display: block; margin-bottom: 28px; opacity: .55; font-size: 9px; font-weight: 700; letter-spacing: .12em; }
.spat-project-summary b { font-family: var(--spat-display); font-size: 23px; font-weight: 500; }
.spat-project-story-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 10vw; }
.spat-project-story h2 { font-size: clamp(44px, 5vw, 80px); }
.spat-prose { color: #42494f; font-size: clamp(17px, 1.35vw, 21px); line-height: 1.7; }
.spat-prose h2 { margin: 1.8em 0 .6em; color: var(--spat-ink); font-size: clamp(31px, 3vw, 48px); }
.spat-prose li { margin-bottom: 8px; }
.spat-gallery-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.spat-gallery-grid figure { position: relative; height: min(48vw, 700px); margin: 0; }
.spat-gallery-grid figure.is-wide { grid-column: 1 / -1; height: min(60vw, 850px); }
.spat-gallery-grid img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72); }
.spat-gallery-grid figcaption { position: absolute; right: 15px; bottom: 15px; padding: 8px 10px; color: #fff; background: rgba(16,19,23,.78); font-size: 8px; font-weight: 700; letter-spacing: .12em; }

.spat-article-hero { padding: calc(var(--spat-header) + 85px) 0 100px; color: #fff; background: var(--spat-ink); }
.spat-article-hero .spat-breadcrumbs { margin-bottom: 110px; }
.spat-article-hero h1 { max-width: 1200px; margin: 0; font-size: clamp(55px, 7vw, 108px); }
.spat-article-date { display: flex; gap: 35px; margin-top: 55px; padding-top: 22px; color: rgba(255,255,255,.5); border-top: 1px solid rgba(255,255,255,.18); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.spat-article-layout { display: grid; grid-template-columns: .45fr 1.55fr; gap: 8vw; padding-top: 90px; padding-bottom: 130px; }
.spat-article-layout aside { position: sticky; top: 110px; display: flex; height: max-content; flex-direction: column; gap: 13px; font-size: 11px; }
.spat-article-layout aside > span { margin-bottom: 15px; color: #777d82; font-size: 9px; font-weight: 700; letter-spacing: .14em; }
.spat-article-layout aside a { padding-bottom: 8px; border-bottom: 1px solid var(--spat-line); }
.spat-article-content { max-width: 900px; }

.spat-not-found { position: relative; min-height: 100svh; overflow: hidden; color: #fff; background: var(--spat-ink); }
.spat-not-found-grid { position: absolute; inset: 0; opacity: .15; background-image: linear-gradient(rgba(255,255,255,.22) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.22) 1px, transparent 1px); background-size: 8vw 8vw; }
.spat-not-found .spat-container { position: relative; display: flex; min-height: 100svh; flex-direction: column; justify-content: center; align-items: flex-start; padding-top: var(--spat-header); }
.spat-not-found strong { position: absolute; right: 0; color: rgba(255,255,255,.035); font-family: var(--spat-display); font-size: min(47vw, 700px); letter-spacing: -.09em; line-height: .8; }
.spat-not-found h1 { max-width: 800px; margin: 0 0 25px; font-size: clamp(55px, 7vw, 110px); }
.spat-not-found p:not(.spat-eyebrow) { max-width: 520px; color: rgba(255,255,255,.6); }
.spat-not-found .spat-container > div { display: flex; gap: 10px; margin-top: 30px; }

.spat-modal { position: fixed; z-index: 20000; inset: 0; visibility: hidden; opacity: 0; transition: visibility .5s, opacity .5s; }
.spat-modal.is-open { visibility: visible; opacity: 1; }
.spat-modal-backdrop { position: absolute; inset: 0; background: rgba(4,7,9,.8); backdrop-filter: blur(8px); }
.spat-modal-panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(980px, 92vw); overflow-y: auto; padding: clamp(45px, 6vw, 90px); background: var(--spat-paper); transform: translateX(100%); transition: transform .65s var(--spat-ease); }
.spat-modal.is-open .spat-modal-panel { transform: none; }
.spat-modal-close { position: absolute; top: 25px; right: 25px; width: 48px; height: 48px; background: transparent; border: 1px solid var(--spat-line); cursor: pointer; }
.spat-modal-close span { position: absolute; top: 23px; left: 13px; width: 21px; height: 1px; background: currentColor; transform: rotate(45deg); }
.spat-modal-close span + span { transform: rotate(-45deg); }
.spat-modal-intro { padding-right: 45px; }
.spat-modal-intro h2 { max-width: 760px; margin: 0 0 22px; font-size: clamp(45px, 5vw, 77px); }
.spat-modal-intro > p:not(.spat-eyebrow) { max-width: 720px; color: #5b6267; }
.spat-form { display: grid; gap: 19px; margin-top: 45px; }
.spat-form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 19px; }
.spat-form label { display: grid; gap: 8px; }
.spat-form label > span { font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.spat-form input, .spat-form select, .spat-form textarea { width: 100%; padding: 15px 0; color: var(--spat-ink); background: transparent; border: 0; border-bottom: 1px solid #abb0b3; border-radius: 0; outline: none; }
.spat-form input:focus, .spat-form select:focus, .spat-form textarea:focus { border-color: var(--spat-burgundy); }
.spat-form select { -webkit-appearance: none; appearance: none; min-height: 53px; padding: 14px 44px 14px 14px; cursor: pointer; background-color: rgba(255,255,255,.78); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='none'%3E%3Cpath d='m4 7 5 5 5-5' stroke='%23901f2b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 18px; border: 1px solid rgba(23,27,31,.22); border-radius: 2px; transition: border-color .25s ease, box-shadow .25s ease, background-color .25s ease; }
.spat-form select:hover { border-color: rgba(144,31,43,.6); background-color: #fff; }
.spat-form select:focus { border-color: var(--spat-burgundy); box-shadow: 0 0 0 3px rgba(144,31,43,.12); background-color: #fff; }
.spat-form select option { color: #fff; background: #11161a; }
.spat-form select::-ms-expand { display: none; }

.spat-project-image.spat-mask-reveal, .spat-gallery-grid .spat-mask-reveal { clip-path: none; }
.spat-project-story-media { margin: 34px 0 0; aspect-ratio: 4 / 3; overflow: hidden; }
.spat-project-story-media img { width: 100%; height: 100%; object-fit: cover; }

.spat-legal-hero { padding: clamp(150px,18vw,260px) 0 clamp(70px,9vw,130px); color: #fff; background: var(--spat-ink); }
.spat-legal-hero h1 { max-width: 980px; margin: 20px 0 28px; color: #fff; font-size: clamp(42px,6.4vw,96px); line-height: .98; letter-spacing: -.055em; }
.spat-legal-hero > .spat-container > p:last-child { max-width: 720px; color: rgba(255,255,255,.72); font-size: clamp(17px,1.6vw,23px); line-height: 1.55; }
.spat-legal { padding: clamp(70px,9vw,130px) 0; color: var(--spat-ink); background: #f2f0eb; }
.spat-legal-grid { display: grid; gap: 0; }
.spat-legal-grid section { display: grid; grid-template-columns: 80px minmax(0,760px); gap: 30px; padding: 38px 0; border-top: 1px solid rgba(16,19,23,.18); }
.spat-legal-grid section > span { color: var(--spat-burgundy); font-size: 12px; font-weight: 700; }
.spat-legal-grid h2 { margin: 0 0 18px; color: var(--spat-ink); font-size: clamp(25px,3vw,44px); line-height: 1.08; }
.spat-legal-grid p { margin: 0; color: #4f555a; font-size: 16px; line-height: 1.75; }
@media (max-width: 680px) { .spat-legal-grid section { grid-template-columns: 38px minmax(0,1fr); gap: 14px; } .spat-legal-hero h1 { overflow-wrap: anywhere; } }

.spat-thanks { position: relative; display: flex; min-height: 100svh; overflow: hidden; padding: calc(var(--spat-header) + clamp(70px,9vw,130px)) 0 clamp(80px,9vw,130px); color: #fff; background: #0d1115; isolation: isolate; }
.spat-thanks::before { position: absolute; z-index: -1; inset: 0; background: radial-gradient(circle at 78% 48%, rgba(144,31,43,.28), transparent 30%), radial-gradient(circle at 25% 100%, rgba(39,77,98,.24), transparent 36%); content: ""; }
.spat-thanks-grid { position: absolute; z-index: -1; inset: 0; opacity: .12; background-image: linear-gradient(rgba(255,255,255,.22) 1px, transparent 1px), linear-gradient(90deg,rgba(255,255,255,.22) 1px,transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(90deg,#000,transparent 82%); }
.spat-thanks-content { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; }
.spat-thanks-content .spat-eyebrow { color: rgba(255,255,255,.68); }
.spat-thanks h1 { max-width: 920px; margin: 22px 0 34px; color: #fff; font-size: clamp(54px,7.2vw,116px); line-height: .91; letter-spacing: -.062em; }
.spat-thanks h1 em { color: rgba(255,255,255,.48); font-family: inherit; font-style: normal; }
.spat-thanks-lead { max-width: 660px; margin: 0; color: rgba(255,255,255,.72); font-size: clamp(17px,1.5vw,22px); line-height: 1.6; }
.spat-thanks-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 42px; }
.spat-thanks-orbit { position: absolute; z-index: 1; top: 50%; right: 7vw; width: min(31vw,470px); aspect-ratio: 1; border: 1px solid rgba(255,255,255,.17); border-radius: 50%; transform: translateY(-50%); }
.spat-thanks-orbit > i { position: absolute; inset: 13%; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; animation: spat-thanks-pulse 3.6s ease-out infinite; }
.spat-thanks-orbit > i:nth-child(2) { inset: 28%; animation-delay: 1.2s; }
.spat-thanks-orbit > i:nth-child(3) { inset: 42%; animation-delay: 2.4s; }
.spat-thanks-orbit > span { position: absolute; top: 50%; left: 50%; display: grid; width: 82px; aspect-ratio: 1; place-items: center; color: #fff; background: var(--spat-burgundy); border-radius: 50%; box-shadow: 0 0 0 18px rgba(144,31,43,.13); transform: translate(-50%,-50%); }
.spat-thanks-orbit svg { width: 42px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
@keyframes spat-thanks-pulse { 0% { opacity: .15; transform: scale(.72); } 45% { opacity: .75; } 100% { opacity: 0; transform: scale(1.32); } }
@media (max-width: 980px) { .spat-thanks-orbit { right: -14vw; opacity: .64; width: 54vw; } .spat-thanks h1 { max-width: 78vw; } }
@media (max-width: 680px) { .spat-thanks { min-height: 100svh; padding-top: calc(var(--spat-header) + 68px); padding-bottom: 100px; } .spat-thanks-grid { background-size: 44px 44px; } .spat-thanks h1 { max-width: 100%; margin-block: 18px 26px; font-size: clamp(46px,14vw,66px); overflow-wrap: anywhere; } .spat-thanks-lead { max-width: 100%; font-size: 16px; } .spat-thanks-actions { align-items: stretch; flex-direction: column; margin-top: 34px; } .spat-thanks-actions .spat-btn { width: 100%; justify-content: space-between; } .spat-thanks-orbit { top: auto; right: -30vw; bottom: -15vw; width: 90vw; opacity: .26; transform: none; } }
@media (prefers-reduced-motion: reduce) { .spat-thanks-orbit > i { animation: none; } }

/* 1.5.0 — content-rich company, projects and forms */
.spat-feature-media--fixed { position: relative; overflow: visible; background: #20262b; }
.spat-feature-media--fixed > .spat-feature-main-image { display: block; width: 100%; height: 100%; visibility: visible !important; opacity: 1 !important; object-fit: cover; transform: none !important; }
.spat-feature-detail { position: absolute; z-index: 3; right: -34px; bottom: -42px; width: min(43%,330px); margin: 0; padding: 8px 8px 12px; background: #fff; box-shadow: 0 24px 65px rgba(10,14,17,.2); }
.spat-feature-detail--left { right: auto; left: -34px; }
.spat-feature-detail > div { aspect-ratio: 4 / 3; overflow: hidden; }
.spat-feature-detail img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.78) contrast(1.04); transform: none !important; }
.spat-feature-detail figcaption { padding: 10px 4px 0; color: #5a6065; font-size: 8px; font-weight: 700; letter-spacing: .14em; }

.spat-about-seo-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(55px,8vw,130px); align-items: start; }
.spat-about-seo-heading { position: sticky; top: 110px; }
.spat-about-seo-heading h2 { max-width: 650px; margin: 22px 0 0; font-size: clamp(46px,5.5vw,86px); line-height: .98; }
.spat-about-seo-copy { color: #4f565c; font-size: clamp(17px,1.35vw,21px); line-height: 1.75; }
.spat-about-seo-copy p { margin: 0 0 24px; }
.spat-about-seo-copy .spat-about-seo-lead { color: var(--spat-ink); font-family: var(--spat-display); font-size: clamp(25px,2.4vw,39px); line-height: 1.28; }
.spat-about-capabilities { display: grid; grid-template-columns: repeat(3,1fr); margin-top: clamp(70px,9vw,130px); border-top: 1px solid var(--spat-line); border-left: 1px solid var(--spat-line); }
.spat-about-capabilities article { min-height: 360px; padding: clamp(25px,3vw,42px); border-right: 1px solid var(--spat-line); border-bottom: 1px solid var(--spat-line); }
.spat-about-capabilities span { color: var(--spat-burgundy); font-size: 10px; font-weight: 700; letter-spacing: .14em; }
.spat-about-capabilities h3 { margin: 100px 0 20px; font-size: clamp(29px,3vw,47px); line-height: 1.02; }
.spat-about-capabilities p { color: #5b6267; line-height: 1.65; }
.spat-about-seo-bottom { display: grid; grid-template-columns: .7fr 1fr 1fr; gap: clamp(30px,5vw,80px); padding-top: clamp(70px,8vw,115px); }
.spat-about-seo-bottom h3 { margin: 0; font-size: clamp(31px,3.4vw,53px); line-height: 1.05; }
.spat-about-seo-bottom p { margin: 0; color: #555d62; font-size: 17px; line-height: 1.75; }

.spat-project-story { background: #f3f1ed; }
.spat-project-story-grid { grid-template-columns: minmax(320px,.78fr) minmax(0,1.22fr); gap: clamp(55px,8vw,130px); align-items: start; }
.spat-project-story-side { position: sticky; top: 105px; }
.spat-project-story-side h2 { max-width: 650px; margin: 18px 0 0; font-size: clamp(42px,4.7vw,72px); line-height: .98; }
.spat-project-story-media { position: relative; margin-top: 42px; background: #20262b; }
.spat-project-story-media img { visibility: visible !important; opacity: 1 !important; }
.spat-project-facts { display: grid; margin: 26px 0 0; border-top: 1px solid rgba(16,19,23,.18); }
.spat-project-facts > div { display: grid; grid-template-columns: 105px 1fr; gap: 20px; padding: 16px 0; border-bottom: 1px solid rgba(16,19,23,.18); }
.spat-project-facts dt { color: #72787c; font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.spat-project-facts dd { margin: 0; color: var(--spat-ink); font-size: 14px; font-weight: 600; }
.spat-project-story-copy { max-width: 820px; padding-top: 6px; }
.spat-project-story-copy .spat-project-lead { margin: 0 0 54px; padding-bottom: 42px; color: var(--spat-ink); border-bottom: 1px solid rgba(16,19,23,.2); font-family: var(--spat-display); font-size: clamp(25px,2.5vw,40px); line-height: 1.3; }
.spat-project-story-copy h3 { margin: 52px 0 16px; color: var(--spat-ink); font-size: clamp(28px,2.5vw,40px); line-height: 1.08; }
.spat-project-story-copy h3::before { display: inline-block; width: 34px; height: 2px; margin-right: 14px; background: var(--spat-burgundy); vertical-align: middle; content: ""; }
.spat-project-story-copy p:not(.spat-project-lead) { margin: 0 0 24px; color: #4c5459; font-size: clamp(17px,1.22vw,19px); line-height: 1.78; }

.spat-article-content { max-width: 880px; }
.spat-article-content > .spat-article-intro:first-child { margin: 0 0 46px; color: var(--spat-ink); font-family: var(--spat-display); font-size: clamp(27px,2.7vw,43px); line-height: 1.3; }
.spat-article-content h2 { margin: 2.1em 0 .62em; padding-top: .2em; font-size: clamp(34px,3.3vw,53px); line-height: 1.06; }
.spat-article-content h3 { margin: 1.8em 0 .6em; color: var(--spat-ink); font-size: clamp(24px,2.2vw,35px); line-height: 1.15; }
.spat-article-content p { margin: 0 0 1.25em; }
.spat-article-content ul, .spat-article-content ol { margin: 30px 0 42px; padding: 26px 30px 18px 55px; background: #f1efeb; border-left: 3px solid var(--spat-burgundy); }
.spat-article-content li { padding: 0 0 10px 5px; }
.spat-article-callout { margin: 42px 0 55px; padding: clamp(26px,3vw,42px); color: #fff; background: var(--spat-ink); }
.spat-article-callout strong { display: block; margin-bottom: 18px; color: #d7a6af; font-size: 10px; letter-spacing: .15em; text-transform: uppercase; }
.spat-article-callout p { margin: 0; color: rgba(255,255,255,.82); font-family: var(--spat-display); font-size: clamp(23px,2.3vw,36px); line-height: 1.35; }

.spat-contact-list .spat-btn--primary, .spat-contact-list .spat-btn--primary span { color: #fff !important; }

.spat-form select.is-customized { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; opacity: 0 !important; pointer-events: none !important; }
.spat-select { position: relative; width: 100%; }
.spat-select-trigger { position: relative; display: flex; width: 100%; min-height: 56px; padding: 0 48px 0 15px; align-items: center; color: var(--spat-ink); background: rgba(255,255,255,.82); border: 1px solid rgba(23,27,31,.24); border-radius: 2px; cursor: pointer; text-align: left; transition: border-color .25s,box-shadow .25s,background .25s; }
.spat-select-trigger::after { position: absolute; top: 50%; right: 17px; width: 9px; height: 9px; border-right: 2px solid var(--spat-burgundy); border-bottom: 2px solid var(--spat-burgundy); content: ""; transform: translateY(-70%) rotate(45deg); transition: transform .25s; }
.spat-select.is-open .spat-select-trigger { color: var(--spat-ink); background: #fff; border-color: var(--spat-burgundy); box-shadow: 0 0 0 3px rgba(144,31,43,.12); }
.spat-select.is-open .spat-select-trigger::after { transform: translateY(-25%) rotate(225deg); }
.spat-select-menu { position: absolute; z-index: 80; top: calc(100% + 7px); right: 0; left: 0; visibility: hidden; max-height: 280px; overflow-y: auto; padding: 7px; opacity: 0; background: #11161a; border: 1px solid rgba(255,255,255,.13); box-shadow: 0 22px 60px rgba(4,7,9,.28); transform: translateY(-7px); transition: opacity .2s,transform .2s,visibility .2s; }
.spat-select.is-open .spat-select-menu { visibility: visible; opacity: 1; transform: none; }
.spat-site .spat-select-menu .spat-select-option { display: flex; width: 100%; min-height: 44px; padding: 10px 13px; align-items: center; color: rgba(255,255,255,.82); background: transparent; border: 0; cursor: pointer; text-align: left; transition: color .2s,background .2s; }
.spat-site .spat-select-menu .spat-select-option:hover, .spat-site .spat-select-menu .spat-select-option:focus, .spat-site .spat-select-menu .spat-select-option.is-selected { color: #fff; background: var(--spat-burgundy); outline: none; }

@media (max-width: 980px) {
	.spat-feature-detail { right: 18px; bottom: 18px; }
	.spat-feature-detail--left { right: auto; left: 18px; }
	.spat-about-seo-grid, .spat-about-seo-bottom { grid-template-columns: 1fr; }
	.spat-about-seo-heading { position: static; }
	.spat-about-capabilities { grid-template-columns: 1fr; }
	.spat-about-capabilities article { min-height: 280px; }
	.spat-about-capabilities h3 { margin-top: 58px; }
	.spat-project-story-grid { grid-template-columns: 1fr; }
	.spat-project-story-side { position: static; }
	.spat-project-story-media { max-width: 720px; }
}

@media (max-width: 680px) {
	.spat-feature-detail { right: 12px; bottom: 12px; width: 44%; padding: 5px 5px 8px; }
	.spat-feature-detail--left { right: auto; left: 12px; }
	.spat-feature-detail figcaption { font-size: 6px; }
	.spat-about-seo-heading h2 { font-size: clamp(38px,11vw,56px); overflow-wrap: anywhere; }
	.spat-about-capabilities { margin-top: 55px; }
	.spat-about-capabilities article { min-height: 0; padding: 28px 22px; }
	.spat-about-capabilities h3 { margin-top: 48px; }
	.spat-about-seo-bottom { gap: 25px; padding-top: 55px; }
	.spat-project-story-side h2 { font-size: clamp(38px,11vw,58px); }
	.spat-project-story-copy .spat-project-lead { margin-bottom: 38px; padding-bottom: 30px; font-size: 25px; }
	.spat-project-story-copy h3 { margin-top: 40px; font-size: 27px; }
	.spat-project-story-copy h3::before { width: 22px; }
	.spat-article-content > .spat-article-intro:first-child { font-size: 25px; }
	.spat-article-content h2 { font-size: clamp(31px,9vw,45px); overflow-wrap: anywhere; }
	.spat-article-content ul, .spat-article-content ol { padding: 22px 18px 14px 40px; }
	.spat-select-menu { position: fixed; z-index: 21000; top: auto; right: 12px; bottom: 12px; left: 12px; max-height: min(62vh,480px); border-radius: 4px; }
}
.spat-file { position: relative; padding: 20px; border: 1px dashed #9da3a8; cursor: pointer; }
.spat-file input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.spat-file span { font-size: 12px !important; }
.spat-file span b { margin-right: 10px; color: var(--spat-burgundy); font-size: 20px; }
.spat-file small { color: #737a7f; }
.spat-consent { display: flex !important; gap: 11px !important; align-items: center; }
.spat-consent input { width: 18px; height: 18px; flex: 0 0 18px; margin: 0; padding: 0; accent-color: var(--spat-burgundy); }
.spat-consent span { color: #62696e; font-size: 10px !important; font-weight: 400 !important; letter-spacing: 0 !important; line-height: 1.5; text-transform: none !important; }
.spat-consent a { text-decoration: underline; }
.spat-form-submit { display: flex; gap: 30px; align-items: center; justify-content: space-between; min-height: 64px; padding: 0 24px; color: #fff !important; background: var(--spat-burgundy); border: 0; cursor: pointer; font-size: 11px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.spat-form-submit svg { width: 22px; fill: none; stroke: currentColor; }
.spat-honeypot { position: absolute !important; left: -9999px; }
.spat-toast { position: fixed; z-index: 21000; right: 25px; bottom: 25px; max-width: 430px; padding: 18px 22px; color: #fff; background: var(--spat-ink); box-shadow: 0 10px 50px rgba(0,0,0,.25); font-size: 13px; opacity: 0; transform: translateY(15px); pointer-events: none; transition: opacity .35s, transform .35s; }
.spat-toast.is-visible { opacity: 1; transform: none; }
.spat-toast.is-error { background: var(--spat-burgundy); }
body.spat-modal-open { overflow: hidden; }

/* Consistent editorial rhythm for headings followed by explanatory copy. */
.spat-inner-hero h1 + .spat-inner-lead,
.spat-service-hero h1 + .spat-inner-lead,
.spat-project-hero h1 + .spat-inner-lead,
.spat-article-hero h1 + .spat-inner-lead { margin-top: clamp(28px, 3vw, 42px); }
.spat-feature-copy h2,
.spat-cost-grid h2,
.spat-inputs h2,
.spat-document-empty h2,
.spat-project-story h2,
.spat-bpla h2,
.spat-final-content h2,
.spat-modal-intro h2 { margin-bottom: clamp(24px, 2.4vw, 34px); }
.spat-service-two-col .spat-section-head { margin-bottom: 30px; }
.spat-header-cta, .spat-header-cta:hover, .spat-form-submit, .spat-form-submit:hover { color: #fff !important; }

@media (max-width: 1280px) {
  :root { --spat-header: 92px; }
  .spat-header { grid-template-columns: auto 1fr; }
  .spat-logo { position: relative; z-index: 2; width: 168px; }
  .spat-header.is-scrolled .spat-logo { width: 150px; }
  .spat-nav { position: fixed; z-index: 1; top: 0; right: 0; width: min(520px, 100%); height: 100svh; overflow-y: auto; flex-direction: column; gap: 4px; align-items: stretch; justify-content: flex-start; padding: 120px 42px 50px; color: #fff; background: var(--spat-ink); visibility: hidden; opacity: 0; transform: translateX(100%); pointer-events: none; transition: visibility .55s, opacity .35s, transform .55s var(--spat-ease); }
  .spat-nav.is-open { visibility: visible; opacity: 1; transform: none; pointer-events: auto; }
  .spat-nav a { padding: 15px 0; border-bottom: 1px solid rgba(255,255,255,.13); font-family: var(--spat-display); font-size: 30px; font-weight: 500; letter-spacing: -.03em; }
  .spat-header-actions { justify-content: flex-end; }
  .spat-menu-toggle { position: relative; z-index: 2; display: block; }
  .spat-menu-toggle[aria-expanded="true"] i:first-child { transform: translateY(3px) rotate(45deg); }
  .spat-menu-toggle[aria-expanded="true"] i:last-child { transform: translateY(-3px) rotate(-45deg); }
  .spat-section-head { grid-template-columns: .35fr 1.65fr; }
  .spat-section-head .spat-section-copy { grid-column: 2; }
  .spat-service-grid { grid-template-columns: repeat(2, 1fr); }
  .spat-object-card { width: min(58vw, 680px); }
  .spat-footer-top { grid-template-columns: 1.1fr .9fr; }
  .spat-footer-nav { grid-column: 2; flex-direction: row; flex-wrap: wrap; }
}

@media (max-width: 900px) {
  :root { --spat-container: min(90vw, 1600px); --spat-header: 82px; }
  .spat-section { padding: 85px 0; }
  .spat-header { padding: 0 5vw; }
  .spat-logo, .spat-header.is-scrolled .spat-logo { width: 142px; }
  .spat-header-phone, .spat-header-cta { display: none; }
  .spat-section-head { display: block; margin-bottom: 48px; }
  .spat-section-head h2 { font-size: clamp(39px, 11vw, 65px); }
  .spat-section-head .spat-section-copy { margin-top: 20px; }
  .spat-hero-content { padding-top: 130px; padding-bottom: 140px; }
  .spat-hero-title { font-size: clamp(47px, 13vw, 76px); }
  .spat-hero-lead, .spat-hero-actions { margin-left: 0; }
  .spat-hero-actions { align-items: stretch; flex-direction: column; max-width: 420px; }
  .spat-hero-note { right: 5vw; bottom: 37px; width: 70vw; }
  .spat-scroll-cue { display: none; }
  .spat-proof-grid { grid-template-columns: repeat(2, 1fr); }
  .spat-proof-grid > div { min-height: 130px; padding: 25px 20px; border-bottom: 1px solid rgba(255,255,255,.2); }
  .spat-proof-grid > div:nth-child(odd) { border-left: 1px solid rgba(255,255,255,.2); }
  .spat-manifesto-grid { display: block; }
  .spat-section-index { margin-bottom: 35px; }
  .spat-manifesto-copy { margin-bottom: 45px; font-size: clamp(35px, 10vw, 60px); }
  .spat-manifesto-bottom { grid-template-columns: 1fr; gap: 30px; }
  .spat-service-grid { grid-template-columns: 1fr; }
  .spat-service-card { min-height: 260px; padding: 25px; }
  .spat-service-card h3 { margin-top: 55px; }
  .spat-object-card { width: 82vw; }
  .spat-objects { min-height: auto; }
  .spat-object-viewport { position: static; overflow-x: auto; scrollbar-width: thin; }
  .spat-object-track { transform: none !important; }
  .spat-object-image { height: 105vw; max-height: 620px; }
  .spat-object-card > div:last-child { grid-template-columns: 35px 1fr; }
  .spat-object-card p { grid-column: 2; }
  .spat-path-line { grid-template-columns: repeat(2, 1fr); }
  .spat-path-step { min-height: 145px; }
  .spat-feature-grid, .spat-feature-grid--reverse { display: flex; flex-direction: column; gap: 50px; }
  .spat-feature-grid--reverse .spat-feature-copy { order: 2; }
  .spat-feature-grid--reverse .spat-feature-media { order: 1; }
  .spat-feature-media { width: 100%; height: 125vw; max-height: 680px; }
  .spat-project-grid { grid-template-columns: 1fr; }
  .spat-project-image { height: 105vw; max-height: 680px; }
  .spat-why-grid { display: block; }
  .spat-why-sticky { position: static; }
  .spat-why-image { height: auto; max-height: none; margin-bottom: 32px; aspect-ratio: 16 / 9; }
  .spat-why-image.spat-mask-reveal { clip-path: none; }
  .spat-why-image.spat-mask-reveal img { transform: none; }
  .spat-reason { grid-template-columns: 38px 1fr; min-height: 130px; }
  .spat-reason p { grid-column: 2; }
  .spat-evidence-grid { grid-template-columns: 1fr; gap: 45px; }
  .spat-start-grid { grid-template-columns: repeat(2, 1fr); }
  .spat-start-card { min-height: 155px; padding: 20px; }
  .spat-start-card h3 { margin-top: 45px; }
  .spat-start-cta { grid-template-columns: 1fr; align-items: start; padding: 30px; }
  .spat-article-grid, .spat-article-grid--page { grid-template-columns: 1fr; }
  .spat-article-card { min-height: 310px; }
  .spat-article-card h3 { margin-top: 70px; }
  .spat-bpla-grid { grid-template-columns: 1fr; gap: 45px; }
  .spat-bpla-mark { width: 70vw; max-width: 400px; }
  .spat-final-cta, .spat-final-content { min-height: 680px; }
  .spat-footer-top { grid-template-columns: 1fr; gap: 40px; }
  .spat-footer-nav { grid-column: auto; }
  .spat-footer-bottom { flex-direction: column; }
  .spat-mobile-call { display: block; }
  .spat-inner-hero { min-height: 720px; padding-top: calc(var(--spat-header) + 50px); }
  .spat-inner-hero.has-image > .spat-container { padding-right: 0; }
  .spat-inner-media { inset: 0; width: 100%; }
  .spat-inner-media span { background: linear-gradient(0deg, rgba(16,19,23,.97) 0, rgba(16,19,23,.65) 65%, rgba(16,19,23,.25)); }
  .spat-inner-hero h1 { font-size: clamp(50px, 14vw, 76px); }
  .spat-directory-group { display: block; padding-bottom: 70px; }
  .spat-directory-title { min-height: auto; margin-bottom: 30px; }
  .spat-directory-title span { display: none; }
  .spat-directory-row { grid-template-columns: 1fr auto; gap: 18px; min-height: 135px; }
  .spat-directory-row p { grid-column: 1; }
  .spat-directory-row > span { grid-row: 1 / span 2; grid-column: 2; }
  .spat-cost-grid { grid-template-columns: 1fr; gap: 45px; }
  .spat-cost-action { grid-column: 1; }
  .spat-about-number-grid { grid-template-columns: 1fr; }
  .spat-about-number-grid > div { min-height: 260px; }
  .spat-about-number-grid p { margin-top: 55px; }
  .spat-principle-grid { grid-template-columns: 1fr; }
  .spat-principle { min-height: 250px; }
  .spat-principle h3 { margin-top: 60px; }
  .spat-mosaic { grid-template-columns: 1fr; grid-template-rows: 100vw 70vw 70vw; }
  .spat-mosaic-a { grid-row: auto; }
  .spat-document-note { grid-template-columns: 1fr; }
  .spat-document-grid { grid-template-columns: 1fr; }
  .spat-document-empty { grid-template-columns: 1fr; }
  .spat-doc-rings { width: 70vw; max-width: 390px; }
  .spat-contact-grid { grid-template-columns: 1fr; }
  .spat-contact-list > div { grid-template-columns: 1fr; gap: 8px; }
  .spat-map-card { min-height: 480px; }
  .spat-service-hero { min-height: 780px; }
  .spat-service-hero-media { inset: 0; }
  .spat-service-hero-media span { background: linear-gradient(0deg, rgba(16,19,23,.97), rgba(16,19,23,.35)); }
  .spat-service-hero-content { min-height: 780px; padding-right: 0; padding-bottom: 70px; }
  .spat-service-facts .spat-container { grid-template-columns: repeat(2, 1fr); }
  .spat-service-facts .spat-container > div { min-height: 120px; padding: 20px; border-bottom: 1px solid rgba(255,255,255,.2); }
  .spat-service-two-col { grid-template-columns: 1fr; gap: 75px; }
  .spat-inputs-grid { grid-template-columns: 1fr; }
  .spat-related-grid { grid-template-columns: 1fr; }
  .spat-related-card { min-height: 230px; }
  .spat-inline-cta .spat-container { grid-template-columns: 1fr; align-items: start; }
  .spat-project-hero, .spat-project-hero-content { min-height: 760px; }
  .spat-project-summary .spat-container { grid-template-columns: repeat(2, 1fr); }
  .spat-project-summary .spat-container > div { min-height: 125px; border-bottom: 1px solid rgba(255,255,255,.2); }
  .spat-project-story-grid { grid-template-columns: 1fr; gap: 25px; }
  .spat-gallery-grid { grid-template-columns: 1fr; }
  .spat-gallery-grid figure, .spat-gallery-grid figure.is-wide { grid-column: auto; height: 100vw; max-height: 650px; }
  .spat-article-hero .spat-breadcrumbs { margin-bottom: 75px; }
  .spat-article-date { flex-direction: column; gap: 8px; }
  .spat-article-layout { grid-template-columns: 1fr; padding-top: 60px; }
  .spat-article-layout aside { position: static; }
  .spat-modal-panel { width: 100%; padding: 70px 5vw 40px; }
  .spat-form-grid { grid-template-columns: 1fr; }
}

@media (max-width: 540px) {
  .spat-logo, .spat-header.is-scrolled .spat-logo { width: 132px; }
  .spat-nav { padding-inline: 25px; }
  .spat-nav a { font-size: 27px; }
  .spat-hero-grid { background-size: 18vw 18vw; }
  .spat-hero-title { font-size: 13.5vw; }
  .spat-hero-lead { font-size: 16px; }
  .spat-btn { gap: 22px; width: 100%; }
  .spat-proof strong { font-size: 24px; }
  .spat-proof span { font-size: 8px; }
  .spat-path-step { min-height: 130px; padding: 16px; }
  .spat-path-step span { right: 16px; bottom: 16px; left: 16px; font-size: 16px; }
  .spat-start-grid { grid-template-columns: 1fr; }
  .spat-start-card { min-height: 130px; }
  .spat-service-facts .spat-container, .spat-project-summary .spat-container { grid-template-columns: 1fr; }
  .spat-inline-cta .spat-btn { width: 100%; }
  .spat-not-found .spat-container > div { width: 100%; flex-direction: column; }
}

/* Mobile hardening: one fluid column, no page-level horizontal overflow. */
@media (max-width: 900px) {
  :root { --spat-container: calc(100vw - 32px); --spat-header: 82px; }
  body.spat-menu-open { overflow: hidden; }
  .spat-site h1, .spat-site h2, .spat-site h3, .spat-site address, .spat-site a { overflow-wrap: anywhere; }
  .spat-header, .spat-header.is-scrolled { top: 0; height: var(--spat-header); padding-inline: 16px; }
  .spat-header { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; }
  .spat-header-actions { gap: 10px; }
  .spat-menu-toggle { flex: 0 0 44px; }
  .spat-nav { width: 100%; padding: calc(var(--spat-header) + 34px) 20px 38px; }
  .spat-nav a { font-size: clamp(25px, 8vw, 34px); line-height: 1.05; }

  .spat-section { padding: clamp(68px, 18vw, 88px) 0; }
  .spat-section-head { margin-bottom: 42px; }
  .spat-section-head .spat-eyebrow { margin-bottom: 20px; padding-top: 0; }
  .spat-section-head h2 { font-size: clamp(36px, 10.6vw, 58px); line-height: 1.01; }
  .spat-section-head .spat-section-copy { margin-top: 24px; line-height: 1.6; }
  .spat-section-action { justify-content: stretch; margin-top: 36px; }
  .spat-section-action .spat-btn { width: 100%; }
  .spat-eyebrow { margin-bottom: 20px; }

  .spat-hero, .spat-hero-content { min-height: 100svh; }
  .spat-hero-content { justify-content: flex-start; padding-top: calc(var(--spat-header) + 58px); padding-bottom: 56px; }
  .spat-hero-kicker { flex-wrap: wrap; gap: 10px 14px; margin-bottom: 30px; font-size: 8px; }
  .spat-hero-kicker i { width: 34px; }
  .spat-hero-title { max-width: 100%; font-size: clamp(42px, 11.8vw, 66px); line-height: .96; text-wrap: wrap; }
  .spat-hero-lead { margin-top: 28px; font-size: clamp(16px, 4.6vw, 19px); line-height: 1.55; }
  .spat-hero-actions { width: 100%; max-width: none; margin-top: 28px; }
  .spat-hero-actions .spat-btn { width: 100%; min-height: 58px; font-family: var(--spat-font); font-size: 10px; font-weight: 700; letter-spacing: .08em; line-height: 1; }
  .spat-hero-note { position: static; width: 100%; margin-top: 48px; padding-top: 18px; }

  .spat-proof-grid > div { min-width: 0; }
  .spat-proof strong { overflow-wrap: anywhere; }
  .spat-manifesto-copy { line-height: 1.03; }
  .spat-manifesto-bottom p { font-size: 16px; line-height: 1.65; }
  .spat-service-card h3 { font-size: clamp(29px, 9vw, 42px); }

  .spat-objects { min-height: auto; overflow: hidden; }
  .spat-object-viewport { overflow: visible; }
  .spat-object-track { display: grid; width: auto; gap: 44px; padding: 0 16px; transform: none !important; }
  .spat-object-card { width: 100%; }
  .spat-object-image { height: auto; aspect-ratio: 4 / 3; max-height: none; }
  .spat-object-card > div:last-child { gap: 13px; }
  .spat-object-card h3 { font-size: clamp(30px, 9.5vw, 46px); }

  .spat-feature-grid, .spat-feature-grid--reverse { gap: 40px; }
  .spat-feature-media { height: auto; aspect-ratio: 4 / 5; max-height: none; }
  .spat-feature-copy h2 { font-size: clamp(38px, 10.7vw, 58px); line-height: 1.01; }
  .spat-feature-copy > p:not(.spat-eyebrow) { font-size: 16px; line-height: 1.65; }
  .spat-feature-copy ul { margin-block: 32px; }
  .spat-mini-metrics { margin-block: 30px; }

  .spat-project-grid { gap: 58px; }
  .spat-project-image { height: auto; aspect-ratio: 4 / 3; max-height: none; }
  .spat-project-card h3, .spat-project-card h2 { font-size: clamp(30px, 9.5vw, 46px); }
  .spat-project-meta { flex-wrap: wrap; gap: 7px 10px; line-height: 1.45; }
  .spat-project-meta span + span::before { margin-right: 10px; }

  .spat-why-sticky h2, .spat-evidence h2, .spat-start-cta h3, .spat-bpla h2, .spat-final-content h2,
  .spat-inline-cta h2, .spat-inputs h2, .spat-cost-grid h2, .spat-project-story h2,
  .spat-document-empty h2, .spat-modal-intro h2 { font-size: clamp(37px, 10.7vw, 58px); line-height: 1.02; }
  .spat-why-sticky h2 br, .spat-final-content h2 br { display: none; }
  .spat-reason { gap: 14px; padding-block: 22px; }
  .spat-reason h3 { font-size: clamp(27px, 8.3vw, 39px); }
  .spat-reason p { line-height: 1.55; }
  .spat-evidence-copy p { font-size: 16px; line-height: 1.65; }
  .spat-start-cta { gap: 32px; }
  .spat-start-cta .spat-btn { width: 100%; }
  .spat-article-card h3 { font-size: clamp(28px, 8.5vw, 41px); }
  .spat-bpla { padding-block: 76px; }
  .spat-final-cta, .spat-final-content { min-height: 620px; }
  .spat-final-content > p:not(.spat-eyebrow), .spat-bpla p:not(.spat-eyebrow) { font-size: 16px; line-height: 1.65; }

  .spat-footer { padding-top: 72px; }
  .spat-footer-top { gap: 42px; padding-bottom: 55px; }
  .spat-footer-brand h2 { font-size: clamp(39px, 11vw, 58px); }
  .spat-footer-contact, .spat-footer-nav { padding-top: 0; }
  .spat-footer-contact > a { max-width: 100%; font-size: clamp(23px, 7.4vw, 32px); word-break: break-word; }
  .spat-footer-contact address { margin-top: 10px; line-height: 1.6; }
  .spat-footer-bottom { gap: 15px; padding-bottom: 90px; line-height: 1.5; }

  .spat-inner-hero { min-height: 650px; padding: calc(var(--spat-header) + 42px) 0 64px; }
  .spat-inner-hero > .spat-container { min-height: 500px; }
  .spat-inner-hero h1 { font-size: clamp(42px, 11.4vw, 66px); line-height: .98; }
  .spat-inner-lead { margin-top: 26px !important; font-size: clamp(16px, 4.6vw, 19px); line-height: 1.55; }
  .spat-breadcrumbs { gap: 7px; max-width: 100%; font-size: 8px; line-height: 1.5; }

  .spat-directory-group { padding-top: 24px; padding-bottom: 58px; }
  .spat-directory-title { margin-bottom: 24px; }
  .spat-directory-row { grid-template-columns: minmax(0, 1fr) 22px; gap: 13px; min-height: 0; padding: 25px 0; }
  .spat-directory-row:hover { padding-inline: 0; }
  .spat-directory-row h2 { font-size: clamp(27px, 8.5vw, 42px); }
  .spat-directory-row p { line-height: 1.55; }
  .spat-cost-grid { gap: 38px; }
  .spat-cost-factors span { grid-template-columns: 34px minmax(0, 1fr); }
  .spat-cost-action .spat-btn { width: 100%; }

  .spat-about-number-grid > div { min-height: 0; padding: 28px 22px; }
  .spat-about-number-grid strong { font-size: clamp(65px, 22vw, 100px); }
  .spat-about-number-grid p { margin-top: 42px; }
  .spat-principle { min-height: 0; padding: 28px 22px; }
  .spat-principle h3 { margin-top: 54px; font-size: clamp(30px, 9vw, 46px); }
  .spat-mosaic { grid-template-rows: auto; gap: 14px; }
  .spat-mosaic > div { aspect-ratio: 4 / 3; }
  .spat-filters { flex-wrap: wrap; gap: 8px; overflow: visible; margin-bottom: 42px; }

  .spat-document-note { gap: 14px; margin-bottom: 42px; }
  .spat-document-card { min-height: 250px; padding: 24px; }
  .spat-document-card h2 { margin-top: 75px; font-size: clamp(28px, 8.5vw, 40px); }
  .spat-document-empty { gap: 42px; padding: 32px 22px; }
  .spat-doc-rings { justify-self: center; width: min(70vw, 330px); }

  .spat-contact-grid { gap: 56px; }
  .spat-contact-list > div { gap: 10px; padding: 19px 0; }
  .spat-contact-list a, .spat-contact-list address, .spat-contact-list p { max-width: 100%; font-size: clamp(23px, 7.4vw, 34px); word-break: break-word; }
  .spat-contact-list .spat-btn { width: 100%; margin-top: 30px; }
  .spat-map-card { min-height: 520px; }
  .spat-map-label { right: 14px; bottom: 14px; left: 14px; padding: 18px; }

  .spat-service-hero, .spat-service-hero-content { min-height: 720px; }
  .spat-service-hero-content { justify-content: flex-end; padding: calc(var(--spat-header) + 35px) 0 55px; }
  .spat-service-hero h1, .spat-project-hero h1, .spat-article-hero h1 { font-size: clamp(42px, 11.5vw, 67px); line-height: .98; }
  .spat-service-hero .spat-hero-actions { margin-top: 27px; }
  .spat-service-facts b, .spat-project-summary b { overflow-wrap: anywhere; font-size: 21px; line-height: 1.1; }
  .spat-service-two-col { gap: 58px; }
  .spat-service-two-col .spat-section-head { margin-bottom: 26px; }
  .spat-service-two-col .spat-section-head h2 { font-size: clamp(34px, 9.8vw, 50px); }
  .spat-large-list li { grid-template-columns: 35px minmax(0, 1fr); gap: 12px; font-size: 16px; }
  .spat-inputs-grid { gap: 42px; }
  .spat-input-cards { grid-template-columns: 1fr; }
  .spat-input-cards div { min-height: 125px; }
  .spat-input-cards b { margin-bottom: 38px; }
  .spat-related-card h3 { font-size: clamp(29px, 9vw, 43px); }
  .spat-inline-cta { padding-block: 66px; }
  .spat-inline-cta .spat-container { gap: 30px; }
  .spat-inline-cta .spat-btn { width: 100%; }

  .spat-project-hero, .spat-project-hero-content { min-height: 700px; }
  .spat-project-hero-content { padding: calc(var(--spat-header) + 35px) 0 58px; }
  .spat-project-summary .spat-container > div { min-width: 0; padding: 19px 16px; }
  .spat-project-story-grid { gap: 30px; }
  .spat-gallery-grid { gap: 14px; }
  .spat-gallery-grid figure, .spat-gallery-grid figure.is-wide { height: auto; aspect-ratio: 4 / 3; max-height: none; }

  .spat-article-hero { padding: calc(var(--spat-header) + 55px) 0 70px; }
  .spat-article-hero .spat-breadcrumbs { margin-bottom: 65px; }
  .spat-article-date { margin-top: 38px; }
  .spat-article-layout { padding-top: 52px; padding-bottom: 80px; }
  .spat-prose { font-size: 16px; line-height: 1.75; }
  .spat-not-found strong { top: 25%; font-size: 58vw; }
  .spat-not-found h1 { font-size: clamp(43px, 12vw, 65px); }

  .spat-modal-panel { padding: 76px 16px 34px; }
  .spat-modal-close { top: 14px; right: 14px; }
  .spat-modal-intro { padding-right: 0; }
  .spat-form { gap: 17px; margin-top: 34px; }
  .spat-form-grid { gap: 17px; }
  .spat-file { padding: 17px; }
  .spat-consent { align-items: flex-start; }
  .spat-consent input { margin-top: 1px; }
  .spat-form-submit { width: 100%; }
  .spat-toast { right: 14px; bottom: 84px; left: 14px; max-width: none; }
}

@media (max-width: 400px) {
  :root { --spat-container: calc(100vw - 28px); }
  .spat-logo, .spat-header.is-scrolled .spat-logo { width: 122px; }
  .spat-menu-toggle { width: 42px; height: 42px; }
  .spat-btn { gap: 14px; min-height: 56px; padding-inline: 18px; font-size: 9.5px; white-space: normal; }
  .spat-proof-grid { grid-template-columns: 1fr; }
  .spat-proof-grid > div { min-height: 105px; }
  .spat-path-line { grid-template-columns: 1fr; }
  .spat-mini-metrics { grid-template-columns: 1fr; }
  .spat-mini-metrics span + span { padding-left: 0; border-top: 1px solid var(--spat-line); border-left: 0; }
  .spat-service-facts .spat-container, .spat-project-summary .spat-container { grid-template-columns: 1fr; }
  .spat-map-card { min-height: 480px; }
  .spat-map-label address { font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .spat-site *, .spat-site *::before, .spat-site *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .spat-reveal { opacity: 1; transform: none; }
  .spat-mask-reveal { clip-path: none; }
  .spat-mask-reveal img, [data-spat-parallax] > img { transform: none !important; }
  .spat-split-word > span { transform: none; }
}
