/* ==========================================================================
   Geo Meta landing page
   Brand: teal #386C63, gold #D3C180 (from company profile)
   Type: Plus Jakarta Sans, major third scale (1.25), fluid between 360px and 1440px
   ========================================================================== */

:root {
  /* Brand */
  --teal-950: #0F2420;
  --teal-900: #16302B; /* deep surface, 12.7:1 against paper */
  --teal-700: #386C63; /* brand teal, 6.0:1 on white, 5.4:1 on paper */
  --teal-200: #C6D3CE;
  --teal-300: #A9BDB7; /* muted text on deep, 7.1:1 */
  --gold-400: #D3C180; /* brand gold, use on deep only (7.85:1) */
  --gold-300: #E2D5A4;
  --gold-700: #6E5F27; /* gold for text on light, 5.9:1 on paper */

  /* Neutrals */
  --paper: #F2F4F1;
  --white: #FFFFFF;
  --ink: #16302B;
  --ink-muted: #4E5F5A; /* 6.1:1 on paper */
  --line: rgba(22, 48, 43, 0.14);
  --line-dark: rgba(211, 193, 128, 0.22);

  /* Layer swatches */
  --sw-0: #6FA58A;
  --sw-1: #D3C180;
  --sw-2: #E9F0EC;
  --sw-3: #8FB3C4;

  /* Type scale */
  --fs-xs:   0.8125rem;                                 /* 13 */
  --fs-sm:   clamp(0.875rem, 0.86rem + 0.07vw, 0.9375rem); /* 14 to 15 */
  --fs-base: clamp(1rem, 0.96rem + 0.19vw, 1.125rem);   /* 16 to 18 */
  --fs-md:   clamp(1.125rem, 1.06rem + 0.3vw, 1.375rem); /* 18 to 22 */
  --fs-lg:   clamp(1.375rem, 1.26rem + 0.52vw, 1.75rem); /* 22 to 28 */
  --fs-xl:   clamp(1.75rem, 1.5rem + 1.1vw, 2.5rem);    /* 28 to 40 */
  --fs-2xl:  clamp(2.25rem, 1.75rem + 2.2vw, 3.75rem);  /* 36 to 60 */
  --fs-3xl:  clamp(2.75rem, 1.85rem + 4vw, 5.5rem);     /* 44 to 88 */

  --lh-tight: 1.04;
  --lh-snug: 1.18;
  --lh-body: 1.65;

  /* Spacing (8pt) */
  --sp-1: 0.25rem;
  --sp-2: 0.5rem;
  --sp-3: 0.75rem;
  --sp-4: 1rem;
  --sp-5: 1.5rem;
  --sp-6: 2rem;
  --sp-7: 3rem;
  --sp-8: 4rem;
  --sp-9: 6rem;
  --sp-10: 8rem;
  --section-y: clamp(5rem, 3.5rem + 7vw, 10rem);

  --gutter: clamp(1rem, 0.5rem + 2.5vw, 2.5rem);
  --max: 1240px;
  --header-h: 72px;

  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 16px;

  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);

  --focus: var(--teal-700);

  /* Logo mark as alpha mask, inlined so it also works from file:// */
  --logo: url("data:image/png;base64,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");
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: var(--fs-base);
  line-height: var(--lh-body);
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}
img, svg, canvas { display: block; max-width: 100%; }
ul, ol { list-style: none; padding: 0; }
a { color: inherit; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
address { font-style: normal; }
h1, h2, h3 { font-weight: 700; text-wrap: balance; }
p { text-wrap: pretty; }

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

[hidden] { display: none !important; }

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}

.skip-link {
  position: fixed; top: 12px; left: 12px; z-index: 100;
  padding: var(--sp-3) var(--sp-4);
  background: var(--gold-400); color: var(--teal-900);
  font-weight: 700; border-radius: var(--r-sm);
  transform: translateY(-160%);
  transition: transform 0.2s var(--ease-out);
}
.skip-link:focus { transform: none; }

.container {
  width: 100%;
  max-width: calc(var(--max) + var(--gutter) * 2);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

/* Dark surfaces switch the focus color */
.hero, .products, .site-header:not(.is-solid) { --focus: var(--gold-400); }

/* ---------- Shared type ---------- */
.section-title {
  font-size: var(--fs-2xl);
  line-height: var(--lh-tight);
  letter-spacing: -0.03em;
  max-width: 18ch;
}
.section-lede {
  margin-top: var(--sp-5);
  font-size: var(--fs-md);
  line-height: 1.5;
  color: var(--ink-muted);
  max-width: 42ch;
}

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px;
  padding: 0.75rem 1.375rem;
  border-radius: var(--r-sm);
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: 0.005em;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 0.2s, color 0.2s, border-color 0.2s, transform 0.2s var(--ease-out);
}
.btn:active { transform: translateY(1px); }
.btn-sm { min-height: 40px; padding: 0.5rem 1rem; }
.btn-gold { background: var(--gold-400); color: var(--teal-900); }
.btn-gold:hover { background: var(--gold-300); }
.btn-ghost-light {
  color: var(--paper);
  box-shadow: inset 0 0 0 1.5px rgba(242, 244, 241, 0.45);
}
.btn-ghost-light:hover { box-shadow: inset 0 0 0 1.5px var(--paper); background: rgba(242, 244, 241, 0.06); }

.text-link {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.22em;
  text-decoration-color: currentColor;
  transition: text-decoration-color 0.2s, color 0.2s;
}

/* ---------- Brand ---------- */
.brand {
  display: inline-flex; align-items: center; gap: var(--sp-3);
  text-decoration: none;
  color: var(--paper);
}
.brand-mark {
  width: 46px; height: 26px;
  background: currentColor;
  -webkit-mask: var(--logo) center / contain no-repeat;
          mask: var(--logo) center / contain no-repeat;
}
.brand-name {
  display: flex; flex-direction: column;
  font-size: var(--fs-sm);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: 0.01em;
}
.brand-name span { color: var(--gold-400); font-weight: 700; }

/* ---------- Header ---------- */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  height: var(--header-h);
  color: var(--paper);
  transition: transform 0.45s var(--ease-out), background-color 0.3s, color 0.3s, box-shadow 0.3s;
}
.site-header.is-solid {
  background: rgba(242, 244, 241, 0.86);
  -webkit-backdrop-filter: saturate(1.4) blur(14px);
          backdrop-filter: saturate(1.4) blur(14px);
  color: var(--ink);
  box-shadow: 0 1px 0 var(--line);
}
.site-header.is-solid .brand { color: var(--teal-700); }
.site-header.is-solid .brand-name { color: var(--ink); }
.site-header.is-solid .brand-name span { color: var(--gold-700); }
.site-header.is-hidden { transform: translateY(-100%); }

.header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--sp-5); }

.primary-nav { display: flex; align-items: center; gap: var(--sp-6); }
.primary-nav ul { display: flex; gap: var(--sp-1); }
.primary-nav ul a {
  display: inline-block;
  padding: 0.5rem 0.75rem;
  font-size: var(--fs-sm);
  font-weight: 600;
  text-decoration: none;
  border-radius: var(--r-sm);
  position: relative;
}
.primary-nav ul a::after {
  content: ""; position: absolute; left: 0.75rem; right: 0.75rem; bottom: 0.3rem;
  height: 2px; background: currentColor;
  transform: scaleX(0); transform-origin: left;
  transition: transform 0.3s var(--ease-out);
}
.primary-nav ul a:hover::after,
.primary-nav ul a[aria-current="true"]::after { transform: scaleX(1); }

.nav-toggle { display: none; width: 44px; height: 44px; border-radius: var(--r-sm); position: relative; }
.nav-toggle-bars, .nav-toggle-bars::before, .nav-toggle-bars::after {
  position: absolute; left: 11px; width: 22px; height: 2px; background: currentColor;
  transition: transform 0.3s var(--ease-out), opacity 0.2s;
}
.nav-toggle-bars { top: 21px; }
.nav-toggle-bars::before, .nav-toggle-bars::after { content: ""; left: 0; }
.nav-toggle-bars::before { top: -7px; }
.nav-toggle-bars::after { top: 7px; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::before { transform: translateY(7px) rotate(45deg); background: currentColor; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::after { transform: translateY(-7px) rotate(-45deg); }

/* ---------- Hero ---------- */
.hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  grid-template-rows: 1fr auto;
  background: var(--teal-900);
  color: var(--paper);
  overflow: hidden;
  isolation: isolate;
}
.hero-canvas {
  position: absolute; inset: 0; width: 100%; height: 100%; z-index: -2;
}
.hero-vignette {
  position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(22, 48, 43, 0.92) 0%, rgba(22, 48, 43, 0.55) 45%, rgba(22, 48, 43, 0) 75%),
    linear-gradient(0deg, rgba(22, 48, 43, 0.9) 0%, rgba(22, 48, 43, 0) 30%);
}
.hero-content {
  align-self: end;
  padding-top: calc(var(--header-h) + var(--sp-8));
  padding-bottom: var(--sp-8);
}
.hero-kicker {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--gold-400);
  margin-bottom: var(--sp-5);
}
.hero-title {
  font-size: var(--fs-3xl);
  line-height: var(--lh-tight);
  letter-spacing: -0.035em;
  font-weight: 700;
  max-width: 15ch;
}
.hero-lede {
  margin-top: var(--sp-5);
  font-size: var(--fs-md);
  line-height: 1.5;
  color: var(--teal-200);
  max-width: 44ch;
}
.hero-actions { margin-top: var(--sp-6); display: flex; flex-wrap: wrap; gap: var(--sp-3); }

.hero-meta {
  display: flex; align-items: flex-end; gap: var(--sp-7);
  pointer-events: none;
  padding-bottom: var(--sp-5);
  font-size: var(--fs-xs);
  color: var(--teal-300);
  font-variant-numeric: tabular-nums;
}
.readout { display: grid; gap: 2px; }
.readout-label { font-weight: 500; }
.readout-value { color: var(--paper); font-weight: 600; font-size: var(--fs-sm); }
.scalebar { display: grid; gap: 6px; justify-items: stretch; margin-left: auto; }
.scalebar-track { display: grid; grid-template-columns: repeat(4, 1fr); width: 160px; height: 6px; box-shadow: inset 0 0 0 1px var(--teal-300); }
.scalebar-track i:nth-child(odd) { background: var(--teal-300); }
.scalebar-label { display: flex; justify-content: space-between; gap: var(--sp-3); }

/* Hero entrance: one orchestrated moment */
.js [data-hero-in] { opacity: 0; transform: translateY(18px); }
.js.is-loaded [data-hero-in] {
  opacity: 1; transform: none;
  transition: opacity 0.9s var(--ease-out), transform 0.9s var(--ease-out);
}
.js.is-loaded [data-hero-in]:nth-child(2) { transition-delay: 0.08s; }
.js.is-loaded [data-hero-in]:nth-child(3) { transition-delay: 0.18s; }
.js.is-loaded [data-hero-in]:nth-child(4) { transition-delay: 0.28s; }

/* ---------- Statement (scroll-scrubbed words) ---------- */
.statement { height: 300vh; background: var(--paper); }
.statement-sticky {
  position: sticky; top: 0;
  height: 100vh; height: 100svh;
  display: flex; align-items: center;
}
.statement-text {
  font-size: var(--fs-xl);
  line-height: var(--lh-snug);
  letter-spacing: -0.02em;
  font-weight: 600;
  max-width: 30ch;
}
.statement-text .w {
  opacity: 0.16;
  transition: opacity 0.25s linear;
}
.statement-text .w.is-on { opacity: 1; }

.statement-grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--sp-8);
  align-items: center;
}

/* Raster to vector to system: one map frame that changes as the statement is read */
.tf { width: 100%; max-width: min(100%, 62vh); justify-self: end; }
.tf-frame {
  position: relative;
  aspect-ratio: 1;
  border-radius: var(--r-lg);
  overflow: hidden;
  background: #24434A;
  box-shadow: 0 0 0 1px var(--line), 0 40px 80px -40px rgba(22, 48, 43, 0.55);
}
.tf-raw, .tf-vector { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tf-coord {
  position: absolute; left: 4%; bottom: 4%;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  background: rgba(15, 36, 32, 0.72);
  color: var(--paper);
  font-size: 11px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.tf-vector { clip-path: inset(0 0 calc((1 - var(--q, 0)) * 100%) 0); }
.tf-scan {
  position: absolute; left: 0; right: 0; height: 2px;
  top: calc(var(--q, 0) * 100%);
  background: var(--gold-400);
  box-shadow: 0 0 18px 4px rgba(211, 193, 128, 0.55);
  opacity: var(--scan-o, 0);
  transition: opacity 0.2s;
}

.tf-ui > * {
  opacity: 0; transform: translateY(8px);
  transition: opacity 0.45s var(--ease-out), transform 0.45s var(--ease-out);
  transition-delay: var(--d, 0ms);
}
.tf.is-system .tf-ui > * { opacity: 1; transform: none; }
.tf-search {
  position: absolute; left: 4%; right: 4%; top: 4%;
  display: flex; align-items: center; gap: var(--sp-2);
  padding: 0.5rem 0.75rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 6px 18px -8px rgba(15, 36, 32, 0.5);
  font-size: var(--fs-xs);
  color: var(--ink-muted);
}
.tf-search-icon {
  width: 11px; height: 11px; border-radius: 50%;
  box-shadow: inset 0 0 0 1.5px var(--ink-muted);
  position: relative; flex: none;
}
.tf-search-icon::after {
  content: ""; position: absolute; right: -4px; bottom: -3px;
  width: 5px; height: 1.5px; background: var(--ink-muted); transform: rotate(45deg);
}
.tf-pin {
  position: absolute; left: var(--x); top: var(--y);
  width: 22px; height: 22px;
  margin: -22px 0 0 -11px;
  border-radius: 50% 50% 50% 0;
  background: var(--teal-900);
  box-shadow: inset 0 0 0 5px var(--teal-900), inset 0 0 0 11px var(--gold-400);
  rotate: -45deg;
}
.tf.is-system .tf-pin { transform: none; }
.tf-card {
  --d: 260ms;
  position: absolute; left: 8%; top: 44%;
  display: grid; gap: 1px;
  padding: 0.5rem 0.75rem;
  border-radius: var(--r-sm);
  background: var(--white);
  box-shadow: 0 10px 24px -10px rgba(15, 36, 32, 0.55);
}
.tf-card-key { font-size: 11px; color: var(--ink-muted); }
.tf-card-val { font-size: var(--fs-xs); font-weight: 700; color: var(--ink); }
.tf-legend {
  --d: 340ms;
  position: absolute; right: 4%; bottom: 4%;
  display: grid; gap: 4px;
  padding: 0.5rem 0.75rem;
  border-radius: var(--r-sm);
  background: rgba(255, 255, 255, 0.94);
  font-size: 11px;
  font-weight: 600;
  color: var(--ink);
}
.tf-legend li { display: flex; align-items: center; gap: 6px; }
.tf-legend li::before { content: ""; width: 10px; height: 10px; border-radius: 2px; background: var(--c); box-shadow: inset 0 0 0 1px rgba(22, 48, 43, 0.25); }
.tf-legend .tf-legend-line::before {
  height: 0; border-radius: 0; box-shadow: none;
  border-top: 2px dashed var(--teal-900);
}
.tf-credit { margin-top: var(--sp-3); font-size: 11px; line-height: 1.5; color: var(--ink-muted); }

.tf-steps {
  margin-top: var(--sp-4);
  display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-2);
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--ink-muted);
}
.tf-steps li { display: grid; gap: var(--sp-2); transition: color 0.3s; }
.tf-step-bar { height: 3px; border-radius: 3px; background: var(--line); overflow: hidden; position: relative; }
.tf-step-bar::after {
  content: ""; position: absolute; inset: 0; background: var(--teal-700);
  transform-origin: left; transform: scaleX(var(--sp, 0));
}
.tf-steps li.is-on { color: var(--ink); }

/* ---------- Products (layer stack) ---------- */
.products {
  height: 420vh;
  background: var(--teal-900);
  color: var(--paper);
}
.products .section-lede { color: var(--teal-300); }
.products-sticky {
  position: sticky; top: 0;
  height: 100vh; height: 100svh;
  display: flex; align-items: center;
  overflow: hidden;
}
.products-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--sp-7);
  align-items: center;
}
/* Layer panel styled after a GIS layer manager */
.layer-ui {
  margin-top: var(--sp-6);
  border-radius: var(--r-lg);
  background: rgba(242, 244, 241, 0.035);
  box-shadow: inset 0 0 0 1px var(--line-dark), 0 30px 60px -30px rgba(0, 0, 0, 0.6);
  overflow: hidden;
}
.lui-bar {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  border-bottom: 1px solid var(--line-dark);
  background: rgba(15, 36, 32, 0.55);
}
.lui-icon {
  width: 16px; height: 16px; flex: none;
  background:
    linear-gradient(var(--gold-400), var(--gold-400)) 0 2px / 100% 2px no-repeat,
    linear-gradient(var(--gold-400), var(--gold-400)) 0 7px / 100% 2px no-repeat,
    linear-gradient(var(--gold-400), var(--gold-400)) 0 12px / 100% 2px no-repeat;
}
.lui-title { font-size: var(--fs-sm); font-weight: 700; color: var(--paper); }
.lui-count { margin-left: auto; font-size: var(--fs-xs); color: var(--teal-300); font-variant-numeric: tabular-nums; }

.layer-list { padding: var(--sp-2); display: grid; gap: 2px; }
.layer-item { position: relative; border-radius: var(--r-sm); transition: background-color 0.3s; }
.layer-item:hover { background: rgba(242, 244, 241, 0.03); }
.layer-item.is-active { background: rgba(211, 193, 128, 0.08); box-shadow: inset 2px 0 0 var(--gold-400); }

.layer-row { display: flex; align-items: center; }
.layer-eye {
  flex: none;
  width: 40px; height: 44px;
  display: grid; place-items: center;
  border-radius: var(--r-sm);
  color: var(--teal-300);
  transition: color 0.2s;
}
.layer-eye:hover { color: var(--paper); }
.layer-eye svg { width: 18px; height: 18px; grid-area: 1 / 1; }
.layer-eye .eye-off { display: none; }
.layer-eye[aria-pressed="true"] .eye-on { display: none; }
.layer-eye[aria-pressed="true"] .eye-off { display: block; }

.layer-heading { flex: 1; min-width: 0; font: inherit; text-wrap: wrap; }
.layer-tab {
  width: 100%;
  display: flex; align-items: center; gap: var(--sp-3);
  min-height: 44px;
  padding: var(--sp-2) var(--sp-3) var(--sp-2) 0;
  border-radius: var(--r-sm);
  font-size: var(--fs-sm);
  font-weight: 600;
  line-height: 1.35;
  text-align: left;
  color: var(--teal-200);
  transition: color 0.25s;
}
.layer-tab:hover, .layer-item.is-active .layer-tab { color: var(--paper); }
.layer-title { flex: 1; min-width: 0; }
.layer-type {
  flex: none;
  padding: 2px var(--sp-2);
  border-radius: 4px;
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--teal-300);
  box-shadow: inset 0 0 0 1px var(--line-dark);
}
.layer-item.is-active .layer-type { color: var(--gold-400); box-shadow: inset 0 0 0 1px rgba(211, 193, 128, 0.4); }
.layer-item.is-off .layer-title { color: var(--teal-300); text-decoration: line-through; text-decoration-color: rgba(169, 189, 183, 0.6); }
.layer-item.is-off .layer-glyph { opacity: 0.4; }

/* Glyph echoes a plane from the stack: an isometric diamond with one layer beneath */
.layer-glyph { position: relative; flex: none; width: 20px; height: 20px; }
.layer-glyph::before, .layer-glyph::after {
  content: "";
  position: absolute; left: 4px; width: 12px; height: 12px;
  border: 1.5px solid var(--sw);
  border-radius: 2px;
  transform: scaleY(0.58) rotate(45deg);
  transition: background-color 0.3s, transform 0.4s var(--ease-out);
}
.layer-glyph::before { top: 1px; z-index: 1; background: var(--sw); }
.layer-glyph::after { top: 6px; opacity: 0.45; }
.layer-item.is-active .layer-glyph::before { transform: translateY(-2px) scaleY(0.58) rotate(45deg); }

.layer-detail {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.45s var(--ease-out);
}
.layer-item.is-active .layer-detail { grid-template-rows: 1fr; }
.layer-detail-inner { overflow: hidden; padding-left: 40px; padding-right: var(--sp-4); }
.layer-detail p { font-size: var(--fs-sm); line-height: 1.6; color: var(--teal-200); max-width: 48ch; }
.layer-props {
  margin-top: var(--sp-3);
  margin-bottom: var(--sp-4);
  display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-3);
  padding-top: var(--sp-3);
  border-top: 1px dashed var(--line-dark);
}
.layer-props dt { font-size: var(--fs-xs); color: var(--teal-300); }
.layer-props dd { margin-top: 2px; font-size: var(--fs-xs); font-weight: 600; line-height: 1.45; color: var(--paper); }

.layer-progress {
  position: absolute; left: 40px; right: var(--sp-4); bottom: 0; height: 2px;
  background: var(--line-dark);
  opacity: 0; transition: opacity 0.3s;
  overflow: hidden;
}
.layer-progress::after {
  content: ""; position: absolute; inset: 0;
  background: var(--gold-400);
  transform-origin: left; transform: scaleX(var(--lp, 0));
}
.layer-item.is-active .layer-progress { opacity: 1; }

.lui-status {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px var(--sp-4);
  padding: var(--sp-2) var(--sp-4);
  border-top: 1px solid var(--line-dark);
  background: rgba(15, 36, 32, 0.55);
  font-size: var(--fs-xs);
  color: var(--teal-300);
  font-variant-numeric: tabular-nums;
}

.stack-wrap {
  position: relative;
  aspect-ratio: 1;
  max-height: 78vh;
  justify-self: center;
  width: 100%;
  perspective: 1800px;
}
.stack {
  --gap: 34px;
  position: absolute; inset: 12%;
  transform-style: preserve-3d;
  transform: rotateX(58deg) rotateZ(-38deg) translateZ(calc(var(--gap) * -1.5));
}
.plane {
  position: absolute; inset: 0;
  border-radius: var(--r-md);
  background: rgba(15, 36, 32, 0.72);
  box-shadow: inset 0 0 0 1px rgba(169, 189, 183, 0.28);
  transform: translateZ(calc(var(--z) * var(--gap)));
  opacity: 0.42;
  transition: opacity 0.4s, box-shadow 0.4s;
}
.plane[data-plane="0"] { --z: 0; }
.plane[data-plane="1"] { --z: 1; }
.plane[data-plane="2"] { --z: 2; }
.plane[data-plane="3"] { --z: 3; }
.plane.is-active {
  opacity: 1;
  box-shadow: inset 0 0 0 2px var(--gold-400), 0 30px 60px -20px rgba(0, 0, 0, 0.5);
}
.plane.is-below { opacity: 0.8; }
/* Overlay layers are mostly glass so the map below stays readable */
.plane:not([data-plane="0"]) { background: rgba(15, 36, 32, 0.22); }
.plane:not([data-plane="0"]).is-active { background: rgba(15, 36, 32, 0.42); }
.plane:not([data-plane="0"]):not(.is-active) { opacity: 0.6; }
.plane[data-plane="0"]:not(.is-active) { opacity: 0.85; }
.plane.is-off { opacity: 0 !important; }
.plane svg, .plane img { width: 100%; height: 100%; border-radius: inherit; display: block; }

/* ---------- Services (timeline) ---------- */
.services { background: var(--white); padding-block: var(--section-y); }
.services-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  gap: var(--sp-8);
  align-items: start;
}
.services-head { position: sticky; top: calc(var(--header-h) + var(--sp-7)); }

/* Timeline: dashed route = planned, solid fill = traveled */
.timeline { position: relative; --node: 48px; }
.tl-track {
  position: absolute;
  left: calc(var(--node) / 2 - 1px);
  top: var(--track-top, 0px);
  height: var(--track-h, 0px);
  width: 2px;
  background: repeating-linear-gradient(to bottom, var(--teal-200) 0 6px, transparent 6px 12px);
}
.tl-fill {
  position: absolute; left: 0; top: 0; width: 100%;
  height: var(--fill, 0px);
  background: var(--teal-700);
  border-radius: 2px;
}
.tl-head {
  position: absolute; left: 50%; top: var(--fill, 0px);
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--gold-400);
  box-shadow: 0 0 0 3px var(--white), 0 0 0 4px var(--teal-700);
  transform: translate(-50%, -50%);
  opacity: var(--head-o, 0);
  transition: opacity 0.3s;
}
.tl-head::after {
  content: ""; position: absolute; inset: -8px; border-radius: 50%;
  border: 1.5px solid var(--gold-400);
  animation: tl-pulse 2s var(--ease-out) infinite;
}
@keyframes tl-pulse { from { transform: scale(0.5); opacity: 0.9; } to { transform: scale(1.6); opacity: 0; } }

.tl-list { display: grid; gap: var(--sp-4); }
.tl-step {
  display: grid;
  grid-template-columns: var(--node) minmax(0, 1fr);
  gap: var(--sp-5);
  align-items: start;
}
.tl-node {
  position: relative; z-index: 1;
  width: var(--node); height: var(--node);
  margin-top: var(--sp-4);
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--white);
  box-shadow: inset 0 0 0 2px var(--teal-200);
  color: var(--ink-muted);
  font-size: var(--fs-sm);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  transition: background-color 0.35s, box-shadow 0.35s, color 0.35s;
}
.tl-num, .tl-check { grid-area: 1 / 1; transition: opacity 0.25s, transform 0.35s var(--ease-out); }
.tl-check { width: 22px; height: 22px; opacity: 0; transform: scale(0.6); }

.tl-body {
  padding: var(--sp-5) var(--sp-5) var(--sp-6);
  border-radius: var(--r-lg);
  transition: background-color 0.35s, box-shadow 0.35s;
}
.tl-label { font-size: var(--fs-sm); font-weight: 600; color: var(--ink-muted); transition: color 0.35s; }
.tl-body h3 {
  margin-top: var(--sp-1);
  font-size: var(--fs-lg);
  line-height: var(--lh-snug);
  letter-spacing: -0.015em;
  color: var(--ink-muted);
  transition: color 0.35s;
}
.tl-body p:last-child { margin-top: var(--sp-3); color: var(--ink-muted); max-width: 48ch; }

/* Done */
.tl-step.is-done .tl-node { box-shadow: inset 0 0 0 2px var(--teal-700); color: var(--teal-700); }
.tl-step.is-done .tl-num { opacity: 0; transform: scale(0.6); }
.tl-step.is-done .tl-check { opacity: 1; transform: none; }
.tl-step.is-done .tl-body h3 { color: var(--ink); }

/* Current */
.tl-step.is-active .tl-node {
  background: var(--teal-700);
  color: var(--white);
  box-shadow: 0 0 0 6px rgba(56, 108, 99, 0.16);
}
.tl-step.is-active .tl-body { background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); }
.tl-step.is-active .tl-label { color: var(--gold-700); }
.tl-step.is-active .tl-body h3 { color: var(--ink); }

/* ---------- Work (filterable card grid) ---------- */
.work { background: var(--paper); padding-block: var(--section-y); }
.work-head {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
  gap: var(--sp-5) var(--sp-8);
  align-items: end;
}
.work-head .section-lede { margin-top: 0; }

/* Three on top, two below: a six-column grid */
.work-grid {
  margin-top: var(--sp-7);
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--sp-5);
}
.work-card { grid-column: span 2; }
.work-card:nth-child(n + 4) { grid-column: span 3; }
.work-card {
  display: flex; flex-direction: column;
  border-radius: var(--r-lg);
  background: var(--white);
  box-shadow: 0 0 0 1px var(--line);
  overflow: hidden;
  transition: box-shadow 0.3s, transform 0.4s var(--ease-out);
}
.work-card:hover { box-shadow: 0 0 0 1px rgba(56, 108, 99, 0.45), 0 24px 48px -28px rgba(22, 48, 43, 0.4); transform: translateY(-3px); }
.work-card.is-entering { animation: work-in 0.5s var(--ease-out) both; }
@keyframes work-in { from { opacity: 0; transform: translateY(12px); } }

/* Screenshot framed like a map sheet with a light graticule and corner ticks */
.work-media {
  position: relative;
  height: clamp(220px, 20vw, 300px);
  display: grid; place-items: center;
  background-color: #E8EEEA;
  background-image:
    linear-gradient(rgba(56, 108, 99, 0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(56, 108, 99, 0.09) 1px, transparent 1px);
  background-size: 32px 32px;
  background-position: -1px -1px;
  overflow: hidden;
}
.work-media::before, .work-media::after {
  content: ""; position: absolute; width: 14px; height: 14px;
  border: 0 solid var(--teal-700); opacity: 0.6;
}
.work-media::before { left: 12px; top: 12px; border-width: 1.5px 0 0 1.5px; }
.work-media::after { right: 12px; bottom: 12px; border-width: 0 1.5px 1.5px 0; }
.work-media img {
  position: absolute; inset: 6%;
  width: 88%; height: 88%;
  object-fit: contain;
  transition: transform 0.6s var(--ease-out);
}
.work-card:hover .work-media img { transform: scale(1.04); }

.work-info { padding: var(--sp-5); display: grid; align-content: start; gap: var(--sp-2); }
.work-meta {
  display: block;
  font-size: var(--fs-xs);
  color: var(--ink-muted);
  font-weight: 500;
}
.work-title { font-size: var(--fs-md); line-height: var(--lh-snug); letter-spacing: -0.01em; }
.work-desc {
  font-size: var(--fs-sm); line-height: 1.6; color: var(--ink-muted);
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2;
  overflow: hidden;
}

.btn-outline { color: var(--teal-700); box-shadow: inset 0 0 0 1.5px var(--teal-700); }
.btn-outline:hover { background: var(--teal-700); color: var(--white); }

/* ---------- About ---------- */
.about {
  position: relative;
  background: var(--white);
  padding-block: var(--section-y) calc(var(--section-y) + 40px);
  overflow: hidden;
  isolation: isolate;
  box-shadow: 0 28px 56px -16px rgba(15, 36, 32, 0.45);
}
/* Shutter slats along the bottom edge: the last section lifts like a rolling door to reveal the footer */
.about::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0; height: 48px;
  background:
    linear-gradient(var(--teal-700), var(--teal-700)) bottom / 100% 6px no-repeat,
    repeating-linear-gradient(to bottom, transparent 0 9px, rgba(56, 108, 99, 0.16) 9px 10px);
  pointer-events: none;
}
.about-mark {
  position: absolute; z-index: -1;
  right: -8vw; top: 6%;
  width: min(70vw, 900px); aspect-ratio: 903 / 503;
  background: var(--teal-700);
  opacity: 0.06;
  -webkit-mask: var(--logo) center / contain no-repeat;
          mask: var(--logo) center / contain no-repeat;
  transform: translate3d(0, var(--py, 0px), 0);
}
.about-grid {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
  gap: var(--sp-6) var(--sp-8);
  align-items: start;
}
.about-copy { padding-top: var(--sp-3); }
.about-copy p { color: var(--ink-muted); max-width: 54ch; }
.about-copy p + p { margin-top: var(--sp-5); }
.sector-list { margin-top: var(--sp-6); display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.sector-list li {
  padding: 0.375rem 0.875rem;
  border-radius: 999px;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--teal-700);
  box-shadow: inset 0 0 0 1px rgba(56, 108, 99, 0.35);
}

/* ---------- Footer (fixed, revealed from behind main) ---------- */
main { position: relative; z-index: 1; margin-bottom: var(--footer-h, 50vh); }
.site-footer {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 0;
  min-height: 50vh; min-height: 50svh;
  display: flex;
  background: var(--teal-900);
  color: var(--paper);
  overflow: hidden;
  isolation: isolate;
  --focus: var(--gold-400);
}
.footer-canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; }
.site-footer.is-static { position: relative; }
.footer-stage {
  flex: 1;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding-block: var(--sp-6) var(--sp-5);
  transform: translate3d(0, var(--reveal-y, 0px), 0);
  opacity: var(--reveal-o, 1);
}
.footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 2fr) minmax(0, 3fr) minmax(0, 3fr);
  gap: var(--sp-6);
}
.brand-footer { color: var(--paper); }
.brand-footer .brand-name { color: var(--paper); }
.brand-footer .brand-name span { color: var(--gold-400); }
.footer-tagline { margin-top: var(--sp-4); font-size: var(--fs-sm); color: var(--teal-300); max-width: 34ch; }
.footer-heading { font-size: var(--fs-sm); font-weight: 700; color: var(--gold-400); margin-bottom: var(--sp-3); }
.footer-col ul { display: grid; gap: var(--sp-1); }
.footer-col a, .footer-col address {
  font-size: var(--fs-sm);
  line-height: 1.6;
  color: var(--paper);
}
.footer-col a { text-decoration: none; display: inline-block; padding: 2px 0; }
.footer-note { color: var(--teal-300); }
.footer-col .footer-map { margin-top: var(--sp-2); font-weight: 600; color: var(--gold-400); }
.footer-col a:hover, .footer-top:hover { text-decoration: underline; text-underline-offset: 0.22em; }
.footer-bottom {
  padding-top: var(--sp-4);
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--sp-3) var(--sp-5);
  border-top: 1px solid var(--line-dark);
  font-size: var(--fs-xs);
  color: var(--teal-300);
}
.footer-credit { flex-basis: 100%; order: 3; opacity: 0.85; }
.office-pin {
  position: absolute; z-index: 0;
  width: 0; height: 0;
  pointer-events: none;
}
.office-dot {
  position: absolute; left: -7px; top: -7px;
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--gold-400);
  box-shadow: 0 0 0 3px var(--teal-900), 0 0 0 4px var(--gold-400);
}
.office-dot::after {
  content: ""; position: absolute; inset: -10px; border-radius: 50%;
  border: 1.5px solid var(--gold-400);
  animation: tl-pulse 2.2s var(--ease-out) infinite;
}
.office-label {
  position: absolute; left: 16px; top: -12px;
  padding: 2px 8px;
  border-radius: 4px;
  background: var(--gold-400);
  color: var(--teal-900);
  font-size: var(--fs-xs);
  font-weight: 700;
  white-space: nowrap;
}
.footer-top { font-weight: 600; color: var(--gold-400); text-decoration: none; }
.footer-wordmark {
  margin-block: var(--sp-6) var(--sp-4);
  font-size: clamp(4rem, 1rem + 9vw, 10rem);
  font-weight: 800;
  line-height: 0.8;
  letter-spacing: -0.055em;
  color: var(--gold-400);
  opacity: 0.16;
  user-select: none;
  white-space: nowrap;
}

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
  :root { --header-h: 64px; }

  .nav-toggle { display: block; }
  .primary-nav {
    position: fixed; inset: var(--header-h) 0 auto 0;
    flex-direction: column; align-items: stretch; gap: var(--sp-5);
    padding: var(--sp-5) var(--gutter) var(--sp-6);
    background: var(--paper);
    color: var(--ink);
    box-shadow: 0 1px 0 var(--line), 0 20px 40px -20px rgba(22, 48, 43, 0.3);
    visibility: hidden; opacity: 0; transform: translateY(-8px);
    transition: opacity 0.25s, transform 0.3s var(--ease-out), visibility 0s linear 0.3s;
    --focus: var(--teal-700);
  }
  .primary-nav.is-open { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
  .primary-nav ul { flex-direction: column; }
  .primary-nav ul a { display: block; padding: var(--sp-3) 0; font-size: var(--fs-md); }
  .primary-nav ul a::after { left: 0; right: auto; width: 2rem; }
  .nav-cta { align-self: flex-start; min-height: 48px; padding-inline: 1.375rem; }
  .site-header.menu-open { background: var(--paper); color: var(--ink); }
  .site-header.menu-open .brand { color: var(--teal-700); }
  .site-header.menu-open .brand-name { color: var(--ink); }
  .site-header.menu-open .brand-name span { color: var(--gold-700); }

  /* Products: drop the pin, keep tabs */
  .products { height: auto; padding-block: var(--section-y); }
  .products-sticky { position: static; height: auto; overflow: visible; }
  .products-grid { grid-template-columns: 1fr; gap: var(--sp-6); }
  .stack-wrap { order: -1; max-width: 420px; max-height: none; }
  .stack { --gap: 46px; }
  .layer-progress { display: none; }

  .services-grid { grid-template-columns: 1fr; gap: var(--sp-7); }
  .services-head { position: static; }

  .work-head { grid-template-columns: 1fr; }
  .work-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .work-card, .work-card:nth-child(n + 4) { grid-column: auto; }
  .work-media { height: auto; aspect-ratio: 4 / 3; }
  .work-card:last-child:nth-child(odd) { grid-column: 1 / -1; }

  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-intro, .footer-col:last-child { grid-column: 1 / -1; }


  .about-grid { grid-template-columns: 1fr; gap: var(--sp-7); }

  .statement-grid { grid-template-columns: 1fr; gap: var(--sp-5); }
  .statement-text { font-size: var(--fs-lg); }
  .tf { order: -1; max-width: min(100%, 40vh); justify-self: start; }
}

@media (max-width: 560px) {
  .work-grid { grid-template-columns: 1fr; }
  .hero-meta { flex-wrap: wrap; gap: var(--sp-3) var(--sp-6); }
  .office-label { left: auto; right: 16px; }
  .tf-legend { display: none; }
  .tf-card { top: 32%; }
  .hero-meta .scalebar { display: none; }
  .hero-actions .btn { flex: 1 1 100%; }
  .footer-grid { gap: var(--sp-5); }
  .timeline { --node: 40px; }
  .tl-step { gap: var(--sp-3); }
  .tl-body { padding: var(--sp-4) var(--sp-4) var(--sp-5); }
}

/* Short laptop screens: keep the pinned products view clear of the header */
@media (min-width: 961px) and (max-height: 820px) {
  .products .section-title { font-size: var(--fs-xl); }
  .products .section-lede { margin-top: var(--sp-3); font-size: var(--fs-base); }
  .layer-ui { margin-top: var(--sp-5); }
  .products-sticky { padding-top: calc(var(--header-h) * 0.5); }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .js [data-hero-in] { opacity: 1; transform: none; }
  .statement { height: auto; }
  .statement-sticky { position: static; height: auto; padding-block: var(--section-y); }
  .statement-text .w { opacity: 1; }
  .tf-vector { clip-path: none; }
  .tf-ui > * { opacity: 1; transform: none; }
  .about-mark { transform: none; }
  .footer-stage { transform: none; opacity: 1; }
  .tl-head::after, .office-dot::after { animation: none; }
}

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}
