@font-face {
  font-family: "Cinzel";
  src: url("/assets/fonts/cinzel-var-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  src: url("/assets/fonts/inter-var.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  color-scheme: dark;
  --bg: #050403;
  --surface: #17110d;
  --surface-alt: #291910;
  --ink: #f4e9de;
  --muted: #b9a28f;
  --accent: #c3926a;
  --accent-on: #150d08;
  --line: rgba(244, 233, 222, 0.16);
  --line-strong: rgba(244, 233, 222, 0.34);
  --display: "Cinzel", Georgia, serif;
  --body: "Inter", system-ui, sans-serif;
  --radius: 2px;
  --page-pad: clamp(22px, 4.8vw, 76px);
  --section-pad: clamp(92px, 11vw, 180px);
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-ui: cubic-bezier(0.4, 0, 0.2, 1);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  background: var(--bg);
  overscroll-behavior-y: none;
}

body {
  margin: 0;
  overflow-x: clip;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.elevation-intro {
  display: none;
}

html.js-motion.intro-load body {
  overflow: hidden;
}

html.js-motion.intro-load .elevation-intro {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  overflow: hidden;
  place-items: center;
  background: #030202;
  pointer-events: none;
}

html.js-motion.intro-load.intro-ready .elevation-intro {
  animation: elevationIntroCurtain 4.05s cubic-bezier(.22, .61, .36, 1) both;
}

html.js-motion.intro-load:not(.intro-ready) .elevation-intro-glow,
html.js-motion.intro-load:not(.intro-ready) .elevation-intro-stage {
  opacity: 0;
}

.elevation-intro-glow {
  position: absolute;
  width: min(84vw, 980px);
  aspect-ratio: 1.55;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(204, 141, 88, .34) 0%, rgba(112, 60, 31, .16) 34%, transparent 72%);
  filter: blur(46px);
  transform: scale(.62);
}

html.js-motion.intro-load.intro-ready .elevation-intro-glow {
  opacity: 0;
  animation: elevationIntroGlow 3.62s 40ms cubic-bezier(.22, .61, .36, 1) both;
}

.elevation-intro-stage {
  --intro-end-x: 0px;
  --intro-end-y: -42vh;
  --intro-end-scale: .16;
  position: relative;
  width: min(68vw, 700px);
  aspect-ratio: 3 / 2;
  contain: layout paint;
  transform: translate3d(0, 0, 0) scale(.98);
  transform-origin: center;
  will-change: transform, opacity;
}

.elevation-intro-stage img,
.elevation-intro-planks,
.elevation-intro-planks span,
.elevation-intro-foreground,
.elevation-intro-foreground span {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.elevation-intro-planks {
  z-index: 2;
  clip-path: inset(0 0 38.2% 0);
  overflow: hidden;
}

.elevation-intro-planks::before,
.elevation-intro-planks::after {
  position: absolute;
  z-index: 0;
  inset: 0;
  content: "";
  background: #030202;
}

.elevation-intro-planks::before {
  clip-path: polygon(14.8% 42.4%, 19.9% 42.4%, 19.9% 56.7%, 19.2% 56.4%, 18.2% 56.2%, 16.6% 54.2%, 15.2% 50.4%, 14.8% 50%);
}

.elevation-intro-planks::after {
  clip-path: polygon(81.3% 42.4%, 86.4% 42.4%, 86.4% 50%, 84.8% 50.4%, 83.4% 54.2%, 81.8% 56.2%, 81.3% 56.7%);
}

.elevation-intro-stage img {
  object-fit: contain;
}

.elevation-intro-base {
  clip-path: inset(42.5% 0 0 0);
}

.elevation-intro-planks span {
  z-index: 1;
  background: url("/assets/images/elevation-official-logo-display.webp") center / 100% 100% no-repeat;
  clip-path: var(--plank-shape);
  backface-visibility: hidden;
  transform: translate3d(0, 92%, 0) scaleY(.86);
  transform-origin: 50% 42.6%;
  will-change: transform, opacity;
}

.elevation-intro-foreground {
  z-index: 3;
  overflow: hidden;
  pointer-events: none;
}

.elevation-intro-foreground span {
  background: url("/assets/images/elevation-official-logo-display.webp") center / 100% 100% no-repeat;
}

.elevation-intro-foreground-left {
  clip-path: polygon(0 55%, 2.5% 55%, 4.3% 51.2%, 6.4% 52%, 7.9% 48.8%, 9.6% 50.3%, 11.1% 48.8%, 12.4% 50.6%, 13.8% 50.1%, 15.2% 50.4%, 16.6% 54.2%, 18.2% 56.2%, 19.8% 56.7%, 21.5% 59.5%, 23.2% 60%, 24.8% 63%, 27.4% 64%, 29.2% 69%, 29.2% 100%, 0 100%);
}

.elevation-intro-foreground-right {
  clip-path: polygon(70.8% 69%, 72.6% 64%, 75.2% 63%, 76.8% 60%, 78.5% 59.5%, 80.2% 56.7%, 81.8% 56.2%, 83.4% 54.2%, 84.8% 50.4%, 86.2% 50.1%, 87.6% 50.6%, 88.9% 48.8%, 90.4% 50.3%, 92.1% 48.8%, 93.6% 52%, 95.7% 51.2%, 97.5% 55%, 100% 55%, 100% 100%, 70.8% 100%);
}

.elevation-intro-complete {
  z-index: 4;
}

html.js-motion.intro-load.intro-ready .elevation-intro-stage {
  animation: elevationIntroStage 3.75s 80ms cubic-bezier(.22, .61, .36, 1) both;
}

html.js-motion.intro-load.intro-ready .elevation-intro-base {
  opacity: 0;
  animation: elevationIntroBase 3.45s 80ms cubic-bezier(.22, .61, .36, 1) both;
}

html.js-motion.intro-load.intro-ready .elevation-intro-foreground {
  opacity: 0;
  animation: elevationIntroBase 3.45s 80ms cubic-bezier(.22, .61, .36, 1) both;
}

html.js-motion.intro-load.intro-ready .elevation-intro-planks span {
  opacity: 0;
  animation: elevationIntroPlank .46s calc(.78s + var(--plank) * 76ms) cubic-bezier(.2, .86, .24, 1.16) both;
}

html.js-motion.intro-load.intro-ready .elevation-intro-complete {
  opacity: 0;
  animation: elevationIntroComplete 2.3s 1.4s cubic-bezier(.22, .61, .36, 1) both;
}

html.js-motion.intro-load.intro-ready .site-header {
  animation: elevationPageReveal .5s 2.38s var(--ease-out) both;
}

html.js-motion.intro-load.intro-ready .hero {
  animation: elevationPageReveal .72s 2.48s var(--ease-out) both;
}

html.js-motion.intro-load.intro-ready .site-header .brand-link img {
  opacity: 0;
  animation: elevationHeaderMarkReveal .38s 3.44s linear both;
}

main p {
  max-width: 72ch;
}

h1,
h2,
h3,
.hero-copy,
.answer-capsule,
.lede,
.pull-quote,
.cta-label {
  text-wrap: pretty;
  text-wrap: balance;
}

body.menu-open {
  overflow: hidden;
}

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

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

button,
summary {
  font: inherit;
}

button {
  color: inherit;
}

a,
button,
summary,
input,
select,
textarea {
  touch-action: manipulation;
}

::selection {
  background: var(--accent);
  color: var(--accent-on);
}

.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 100;
  padding: 10px 14px;
  border-radius: var(--radius);
  background: var(--ink);
  color: var(--bg);
  font-size: 0.875rem;
  transform: translateY(-160%);
  transition: transform 180ms ease;
}

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

:where(a, button, summary, input, select, textarea):focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
}

.section-shell {
  width: min(100%, 1600px);
  max-width: 100%;
  margin-inline: auto;
  padding-inline: var(--page-pad);
}

.eyebrow {
  margin: 0;
  color: var(--accent);
  font-size: clamp(0.875rem, 0.9vw, 0.95rem);
  font-weight: 700;
  letter-spacing: 0.18em;
  line-height: 1.35;
  text-transform: uppercase;
}

.home-answer-section .eyebrow {
  color: #6a3c27;
}

.hero-source {
  padding: 7px 9px;
  background: rgba(5, 4, 3, .82);
  color: var(--ink);
}

.button {
  display: inline-flex;
  min-height: 50px;
  padding: 0 22px;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: var(--radius);
  font-size: 0.875rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
  transition: background 220ms var(--ease-ui), border-color 220ms var(--ease-ui), box-shadow 220ms var(--ease-out), color 220ms var(--ease-ui), transform 220ms var(--ease-out);
}

.button-solid,
.btn-primary {
  border-color: var(--accent);
  background: linear-gradient(135deg, #d3a078 0%, var(--accent) 54%, #a96f49 100%);
  box-shadow: 0 12px 30px rgba(195, 146, 106, .18), 0 2px 8px rgba(0, 0, 0, .22);
  color: var(--accent-on);
}

.button-outline {
  border-color: rgba(244, 233, 222, 0.68);
  background: rgba(5, 4, 3, 0.12);
  color: var(--ink);
}

.phone-cta {
  gap: 10px;
}

.phone-cta-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-linecap: square;
  stroke-linejoin: miter;
  stroke-width: 1.45;
}

.text-link {
  display: inline-flex;
  gap: 12px;
  align-items: center;
  padding-block: 8px;
  border-bottom: 1px solid var(--line-strong);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition: border-color 200ms ease, color 200ms ease;
}

.text-link span {
  font-size: 1rem;
  transition: transform 220ms var(--ease-out);
}

.site-header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 50;
  width: 100%;
  max-width: 100vw;
  background: linear-gradient(180deg, rgba(5, 4, 3, 0.82), rgba(5, 4, 3, 0));
  padding-top: env(safe-area-inset-top);
  transition: background-color 320ms ease, backdrop-filter 320ms ease;
}

.site-header.is-scrolled,
.site-header.is-open {
  background: rgba(5, 4, 3, 0.94);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

.header-inner {
  display: grid;
  width: 100%;
  min-width: 0;
  grid-template-columns: 210px minmax(0, 1fr) auto;
  min-height: 88px;
  padding-inline: var(--page-pad);
  align-items: center;
}

@media (min-width: 1021px) {
  .header-inner {
    /* Keep the primary action clear of the hero's architectural route rail. */
    padding-right: calc(clamp(96px, 8vw, 118px) + 20px);
  }
}

.brand-link {
  display: block;
  width: 174px;
  height: 68px;
  overflow: hidden;
}

.brand-link img,
.footer-brand img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: 50% 50%;
}

.desktop-nav {
  display: flex;
  gap: clamp(18px, 2.1vw, 36px);
  align-items: center;
  justify-content: center;
}

.desktop-nav > a,
.desktop-nav > .has-dropdown > a {
  position: relative;
  padding-block: 14px;
  color: rgba(244, 233, 222, 0.78);
  font-size: 0.875rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.desktop-nav > .has-dropdown > a {
  display: inline-flex;
  gap: 4px;
  align-items: center;
}

.desktop-nav > a::after,
.desktop-nav > .has-dropdown > a::after {
  position: absolute;
  right: 0;
  bottom: 8px;
  left: 0;
  height: 1px;
  background: var(--accent);
  content: "";
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 280ms var(--ease-out);
}

.has-dropdown {
  position: relative;
}

.has-dropdown::after {
  position: absolute;
  top: 100%;
  right: -18px;
  left: -18px;
  height: 24px;
  content: "";
}

.nav-caret {
  display: block;
  width: 12px;
  height: 12px;
  flex: none;
  color: var(--accent);
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.6;
  transform-origin: 50% 50%;
  transition: transform 220ms var(--ease-out);
}

.nav-submenu {
  position: absolute;
  top: calc(100% + 16px);
  left: 50%;
  width: min(650px, calc(100vw - 40px));
  padding: 10px;
  border: 1px solid var(--line-strong);
  background: #0d0907;
  box-shadow: 0 26px 70px rgba(0, 0, 0, .42);
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
  transition: opacity 180ms ease, transform 240ms var(--ease-out);
}

html.js-motion .nav-submenu,
html:not(.js-motion) .nav-submenu {
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -8px);
}

.has-dropdown:focus-within .nav-submenu {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

.has-dropdown:focus-within .nav-caret {
  transform: rotate(180deg);
}

.nav-submenu-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(3, auto);
  grid-auto-flow: column;
  column-gap: 18px;
}

.nav-submenu-grid::after {
  position: absolute;
  top: 10px;
  bottom: 10px;
  left: 50%;
  width: 1px;
  background: var(--line);
  content: "";
}

.desktop-nav .nav-submenu-grid > a {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 13px;
  min-height: 72px;
  padding: 12px 14px;
  align-items: center;
  color: var(--ink);
  text-transform: none;
  transition: background-color 180ms ease, color 180ms ease;
}

.desktop-nav .nav-submenu a:focus-visible {
  background: rgba(195, 146, 106, .1);
}

.desktop-nav .nav-submenu .submenu-all {
  display: flex;
  min-height: 48px;
  margin-top: 8px;
  padding: 13px 16px 9px;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--line-strong);
  color: var(--accent);
  font-size: .78rem;
  font-weight: 750;
  letter-spacing: .14em;
  text-transform: uppercase;
  transition: color 180ms ease, background-color 180ms ease;
}

.submenu-icon {
  width: 28px;
  height: 28px;
  fill: none;
  stroke: var(--accent);
  stroke-linecap: square;
  stroke-linejoin: miter;
  stroke-width: 1.25;
}

.service-icon {
  width: 36px;
  height: 36px;
  padding: 6px;
  border: 1px solid rgba(195, 146, 106, .68);
  border-radius: 2px;
  background: #110c09;
  box-shadow:
    0 0 0 3px rgba(195, 146, 106, .10),
    0 8px 22px rgba(0, 0, 0, .42),
    inset 0 0 14px rgba(195, 146, 106, .12);
  filter: drop-shadow(0 3px 6px rgba(0, 0, 0, .38));
}

.nav-submenu strong,
.nav-submenu small {
  display: block;
}

.nav-submenu strong {
  font-size: .875rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.nav-submenu small {
  margin-top: 2px;
  color: var(--muted);
  font-size: .875rem;
  letter-spacing: 0;
}

.header-actions {
  display: flex;
  gap: 18px;
  align-items: center;
}

.header-phone {
  display: grid;
  grid-template-columns: 20px auto;
  column-gap: 8px;
  align-items: center;
  line-height: 1.2;
}

.header-phone .phone-cta-icon {
  grid-row: 1 / 3;
}

.header-phone span {
  grid-column: 2;
  color: var(--muted);
  font-size: 0.875rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.header-phone strong {
  grid-column: 2;
  margin-top: 3px;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.035em;
}

.header-project {
  min-height: 48px;
  padding-inline: 16px;
}

.menu-toggle {
  display: none;
  width: 48px;
  height: 48px;
  padding: 0 12px;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  background: rgba(5, 4, 3, 0.4);
}

.menu-toggle span {
  display: block;
  width: 100%;
  height: 1px;
  margin: 6px 0;
  background: var(--ink);
  transition: transform 240ms var(--ease-out);
}

.menu-toggle[aria-expanded="true"] span:first-child {
  transform: translateY(3.5px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] span:last-child {
  transform: translateY(-3.5px) rotate(-45deg);
}

.mobile-menu {
  display: none;
}

.hero {
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
}

.hero-image,
.hero-overlay {
  position: absolute;
  inset: 0;
}

.hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 48%;
}

.hero-overlay {
  background:
    linear-gradient(90deg, rgba(5, 4, 3, 0.78) 0%, rgba(5, 4, 3, 0.56) 35%, rgba(5, 4, 3, 0.06) 72%, rgba(5, 4, 3, 0.18) 100%),
    linear-gradient(180deg, rgba(5, 4, 3, 0.24) 0%, rgba(5, 4, 3, 0.02) 42%, rgba(5, 4, 3, 0.62) 100%);
}

.image-frame {
  position: relative;
  border: 1px solid rgba(195, 146, 106, .34);
  box-shadow:
    inset 0 0 0 1px rgba(244, 233, 222, .12),
    0 24px 72px rgba(195, 146, 106, .14),
    0 12px 34px rgba(0, 0, 0, .24);
}

.image-frame::before {
  position: absolute;
  z-index: 3;
  inset: 0;
  border: 1px solid rgba(244, 233, 222, .14);
  content: "";
  pointer-events: none;
}

.hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(96px, 8vw, 118px);
  min-height: 100vh;
  min-height: 100dvh;
}

.hero-content {
  position: relative;
  isolation: isolate;
  display: flex;
  min-width: 0;
  padding: clamp(150px, 17vh, 220px) clamp(24px, 5vw, 78px) clamp(84px, 10vh, 124px);
  flex-direction: column;
  justify-content: flex-end;
}

.hero-content::before {
  position: absolute;
  z-index: -1;
  top: 26%;
  bottom: 4%;
  left: -9%;
  width: min(95vw, 1040px);
  content: "";
  background: radial-gradient(ellipse at 38% 58%, rgba(195, 146, 106, .18) 0%, rgba(85, 48, 28, .12) 34%, transparent 72%);
  filter: blur(12px);
  pointer-events: none;
}

.hero-eyebrow {
  margin-bottom: 24px;
}

html.js-motion .hero-eyebrow {
  opacity: 0;
  animation: heroFade 900ms 780ms var(--ease-out) forwards;
}

.hero-title {
  max-width: 1070px;
  margin: 0;
  font-family: var(--display);
  font-size: clamp(3.15rem, 7.2vw, 7.75rem);
  font-weight: 520;
  letter-spacing: -0.055em;
  line-height: 0.92;
  text-wrap: balance;
}

.hero-title em,
.interior-hero h1 em {
  color: inherit;
  font-style: italic;
  font-weight: inherit;
}

.hero-eyebrow,
.hero-title,
.hero-copy,
.hero-actions,
.founder-quote,
.hero-source {
  text-shadow: 0 2px 8px rgba(0, 0, 0, .48);
}

.hero-line {
  display: block;
  overflow: hidden;
  padding: 0.08em 0.02em;
}

.hero-line > span {
  display: block;
}

html.js-motion .hero-line > span {
  transform: translateY(115%);
  animation: lineSettle 1.2s var(--ease-out) forwards;
}

.hero-line:nth-child(1) > span {
  animation-delay: 180ms;
}

.hero-line:nth-child(2) > span {
  animation-delay: 330ms;
}

.hero-lower {
  display: grid;
  width: min(100%, 1100px);
  grid-template-columns: max-content minmax(270px, 330px);
  gap: clamp(34px, 6vw, 92px);
  margin-top: clamp(48px, 7vh, 72px);
  align-items: end;
  justify-content: space-between;
}

.hero-actions {
  display: flex;
  gap: 24px;
  align-self: end;
  align-items: center;
  margin-top: 0;
}

html.js-motion .hero-actions {
  opacity: 0;
  animation: heroFade 900ms 850ms var(--ease-out) forwards;
}

.founder-quote {
  position: relative;
  width: min(100%, 330px);
  margin: 0;
  padding: 18px 58px 18px 20px;
  overflow: hidden;
  border: 1px solid rgba(244, 233, 222, .22);
  border-left-color: var(--accent);
  background: rgba(10, 7, 5, .54);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.founder-quote-mark {
  position: absolute;
  top: 6px;
  right: 14px;
  color: rgba(211, 160, 120, .16) !important;
  font-family: Georgia, serif;
  font-size: 7rem !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: 1 !important;
  text-transform: none !important;
}

html.js-motion .founder-quote {
  opacity: 0;
  animation: heroFade 900ms 1s var(--ease-out) forwards;
}

.founder-quote span {
  color: var(--accent);
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.founder-quote p {
  max-width: 28ch;
  margin: 6px 0 0;
  color: rgba(244, 233, 222, .78);
  font-family: var(--display);
  font-size: 1rem;
  line-height: 1.45;
}

.hero-rail {
  display: flex;
  min-width: 0;
  padding: 118px 14px 34px;
  flex-direction: column;
  justify-content: space-between;
  border-left: 1px solid rgba(244, 233, 222, 0.38);
  background: rgba(18, 12, 9, 0.34);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.hero-rail-title,
.hero-rail-note {
  color: rgba(244, 233, 222, .66);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
}

.hero-rail-title {
  align-self: center;
}

.hero-rail-note {
  align-self: center;
  color: var(--accent);
}

.hero-rail-nav {
  position: relative;
  display: grid;
  gap: 0;
}

.hero-rail-nav::before {
  position: absolute;
  top: 24px;
  bottom: 24px;
  left: 10px;
  width: 1px;
  background: rgba(244, 233, 222, .28);
  content: "";
}

.hero-rail-nav a {
  position: relative;
  display: grid;
  min-height: 58px;
  padding-left: 26px;
  align-content: center;
}

.hero-rail-nav a::before {
  position: absolute;
  top: calc(50% - 3px);
  left: 7px;
  width: 7px;
  height: 7px;
  border: 1px solid rgba(244, 233, 222, .54);
  border-radius: 50%;
  background: #120c09;
  content: "";
}

.hero-rail-nav a:is(:hover, :focus-visible, .is-current)::before {
  border-color: var(--accent);
  background: var(--accent);
  box-shadow: 0 0 18px rgba(195, 146, 106, .62);
}

.hero-rail-nav span,
.hero-rail-nav strong {
  color: rgba(244, 233, 222, .62);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .09em;
  line-height: 1.25;
  text-transform: uppercase;
}

.hero-rail-nav strong {
  color: var(--ink);
  font-size: .62rem;
}

.hero-source {
  position: absolute;
  right: calc(clamp(160px, 16vw, 250px) + 24px);
  bottom: 22px;
  z-index: 2;
  max-width: 520px;
  background: rgba(5, 4, 3, .9);
  color: var(--ink);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-align: right;
  text-transform: uppercase;
}

.home-answer-section {
  padding: clamp(76px, 9vw, 130px) 0;
  border-bottom: 1px solid var(--line);
  background: var(--ink);
  color: var(--accent-on);
}

.home-answer-grid {
  display: grid;
  grid-template-columns: minmax(300px, .85fr) minmax(0, 1.15fr);
  gap: clamp(48px, 8vw, 130px);
  align-items: end;
}

.home-answer-grid > *,
.section-intro > * {
  min-width: 0;
}

.home-answer-grid > .answer-capsule,
.section-intro > .answer-capsule {
  width: 100%;
  overflow-wrap: anywhere;
}

.home-answer-grid h2 {
  margin: 20px 0 0;
  font-family: var(--display);
  font-size: clamp(2.65rem, 5vw, 5.8rem);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .98;
  text-wrap: balance;
}

.home-answer-grid > .answer-capsule {
  max-width: 720px;
  margin: 0;
  color: rgba(21, 13, 8, .72);
  font-size: clamp(1rem, 1.2vw, 1.15rem);
  line-height: 1.8;
}

.proof-ledger {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}

.proof-cell {
  position: relative;
  display: flex;
  min-height: 240px;
  padding: clamp(28px, 3.4vw, 54px);
  flex-direction: column;
  justify-content: space-between;
  border-right: 1px solid var(--line);
}

.stat-card::before {
  position: absolute;
  top: 0;
  left: clamp(28px, 3.4vw, 54px);
  width: clamp(44px, 5vw, 78px);
  height: 3px;
  background: var(--accent);
  content: "";
}

.stat-card .stat-number {
  font-family: var(--display);
}

.proof-cell:last-child {
  border-right: 0;
}

.proof-number {
  font-family: var(--display);
  font-size: clamp(2rem, 3.6vw, 4rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1;
}

.proof-label {
  max-width: 260px;
  color: var(--muted);
  font-size: 0.875rem;
  font-weight: 550;
  letter-spacing: 0.06em;
  line-height: 1.55;
  text-transform: uppercase;
}

.proof-call {
  background: var(--ink);
  color: var(--accent-on);
}

.proof-call .proof-label {
  color: rgba(21, 13, 8, 0.66);
}

.proof-call a {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid rgba(21, 13, 8, 0.36);
  font-family: var(--display);
  font-size: clamp(1.15rem, 1.7vw, 1.7rem);
}

.trust-strip {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  min-height: 64px;
  overflow: hidden;
  border-block: 1px solid var(--line);
  background: #0d0907;
}

.trust-strip-label {
  position: relative;
  z-index: 2;
  display: flex;
  gap: 12px;
  margin: 0;
  padding: 0 clamp(22px, 3vw, 46px);
  align-items: center;
  border-right: 1px solid var(--line);
  background: #0d0907;
  color: var(--ink);
  font-size: .875rem;
  font-weight: 750;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.trust-strip-label > span {
  width: 7px;
  height: 7px;
  background: var(--accent);
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(195, 146, 106, .12);
}

.trust-strip-window {
  min-width: 0;
  overflow: hidden;
}

.trust-strip-track,
.trust-strip-group {
  display: flex;
  width: max-content;
  align-items: center;
}

.trust-strip-track {
  min-height: 64px;
  transform: translate3d(0, 0, 0);
  will-change: transform;
}

.trust-strip.is-running .trust-strip-track {
  animation: trustStripDrift 38s linear infinite;
}

@media (hover: hover) {
  .trust-strip:hover .trust-strip-track {
    animation-play-state: paused;
  }
}

.trust-strip-group {
  flex: none;
  padding-right: 34px;
}

.trust-strip-group > span {
  display: inline-flex;
  gap: 24px;
  align-items: center;
  color: var(--muted);
  font-size: .875rem;
  font-weight: 650;
  letter-spacing: .13em;
  text-transform: uppercase;
  white-space: nowrap;
}

.trust-strip-group > span + span {
  margin-left: 34px;
}

.trust-strip-group > span + span::before {
  width: 5px;
  height: 5px;
  flex: 0 0 auto;
  background: var(--accent);
  border-radius: 50%;
  content: "";
}

html:not(.js-motion) .trust-strip-track {
  width: 100%;
  transform: none;
  will-change: auto;
}

html:not(.js-motion) .trust-strip-group {
  width: 100%;
  flex-wrap: wrap;
  gap: 12px 28px;
  padding: 14px var(--page-pad);
}

html:not(.js-motion) .trust-strip-group[aria-hidden="true"] {
  display: none;
}

html:not(.js-motion) .trust-strip-group > span {
  white-space: normal;
}

html:not(.js-motion) .trust-strip-group > span + span {
  margin-left: 0;
}

.direction-section {
  padding-top: var(--section-pad);
  background: var(--bg);
}

.section-intro {
  display: block;
  max-width: 880px;
  margin: 0 auto clamp(46px, 7vw, 84px);
  text-align: center;
}

.section-intro h2,
.one-plan-copy h2,
.cedar-head h2,
.process-intro h2,
.founder-intro h2,
.faq-intro h2,
.closing-content h2 {
  margin: 24px 0 0;
  font-family: var(--display);
  font-size: clamp(2.65rem, 5.7vw, 6.5rem);
  font-weight: 500;
  letter-spacing: -0.055em;
  line-height: 0.96;
  text-wrap: balance;
}

.section-intro > p {
  max-width: 540px;
  margin: 24px auto 0;
  color: var(--muted);
  font-size: clamp(1rem, 1.15vw, 1.1rem);
  line-height: 1.75;
}

.work-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: clamp(360px, 40vw, 620px);
  gap: 1px;
  background: var(--line);
  border-block: 1px solid var(--line);
}

.work-card {
  position: relative;
  grid-column: span 5;
  overflow: hidden;
  background: var(--surface);
  box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  transition: box-shadow 240ms var(--ease-out), transform 240ms var(--ease-out);
}

.work-card-wide {
  grid-column: span 7;
}

.work-card-tall {
  grid-column: span 4;
}

.work-card-tall + .work-card-wide {
  grid-column: span 8;
}

.work-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.82) contrast(1.02);
  transform: scale(1.001);
  transition: filter 650ms var(--ease-out), transform 800ms var(--ease-out);
}

.work-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(5, 4, 3, 0.08) 24%, rgba(5, 4, 3, 0.72) 60%, rgba(5, 4, 3, 0.98) 100%);
}

.work-meta {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 42px;
  gap: 18px;
  padding: clamp(22px, 3vw, 40px);
  align-items: end;
  transition: opacity 260ms var(--ease-out), transform 320ms var(--ease-out);
}

.work-index {
  color: var(--ink);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.13em;
}

.work-meta h3 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(1.35rem, 2.6vw, 2.75rem);
  font-weight: 500;
  letter-spacing: -0.035em;
}

.work-meta p {
  margin: 7px 0 0;
  color: var(--ink);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.work-arrow {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid rgba(244, 233, 222, 0.4);
  border-radius: 50%;
  font-size: 1rem;
  transition: background-color 220ms ease, color 220ms ease, transform 220ms var(--ease-out);
}

.image-disclosure {
  display: grid;
  grid-template-columns: minmax(150px, 0.25fr) minmax(0, 1fr);
  gap: 32px;
  padding: 24px var(--page-pad);
  border-bottom: 1px solid var(--line);
  background: #0d0a08;
}

.image-disclosure span {
  color: var(--accent);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.image-disclosure p {
  max-width: 960px;
  margin: 0;
  color: rgba(244, 233, 222, 0.55);
  font-size: 1rem;
  line-height: 1.7;
}

.one-plan-section {
  padding-block: var(--section-pad);
  background: var(--ink);
  color: var(--accent-on);
}

.one-plan-grid {
  display: grid;
  grid-template-columns: minmax(330px, 0.7fr) minmax(0, 1.3fr);
  gap: clamp(60px, 9vw, 150px);
  align-items: center;
}

.one-plan-copy {
  position: sticky;
  top: 140px;
  align-self: start;
}

.one-plan-copy .eyebrow {
  color: #8a573d;
}

.one-plan-copy p:not(.eyebrow) {
  max-width: 520px;
  margin: 38px 0 28px;
  color: rgba(21, 13, 8, 0.7);
  font-size: clamp(1rem, 1.28vw, 1.16rem);
  line-height: 1.78;
}

.one-plan-copy .text-link {
  border-color: rgba(21, 13, 8, 0.28);
}

.one-plan-media {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 0.48fr);
  gap: 18px;
  align-items: end;
}

.plan-image {
  margin: 0;
}

.plan-image-main {
  min-height: clamp(600px, 69vw, 980px);
}

.plan-image-small {
  min-height: clamp(340px, 39vw, 560px);
}

.plan-image img {
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  filter: saturate(0.8) contrast(1.02);
}

.plan-image figcaption,
.cedar-frame figcaption {
  display: flex;
  justify-content: space-between;
  padding-top: 14px;
  border-top: 1px solid rgba(21, 13, 8, 0.25);
  color: rgba(21, 13, 8, 0.62);
  font-size: 0.875rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.cedar-section {
  padding-block: var(--section-pad);
  overflow: hidden;
  background: var(--surface-alt);
}

.cedar-head {
  display: block;
  max-width: 880px;
  margin-inline: auto;
  text-align: center;
}

.cedar-head h2 {
  margin: 0;
  max-width: 860px;
}

.cedar-head > p:last-child {
  max-width: 720px;
  margin: 24px auto 0;
  color: var(--muted);
  line-height: 1.75;
}

.cedar-gallery {
  display: grid;
  grid-template-columns: 1.4fr 0.8fr 0.8fr;
  gap: 14px;
  margin-top: clamp(64px, 8vw, 120px);
  padding-left: var(--page-pad);
}

.cedar-frame {
  min-height: clamp(480px, 48vw, 760px);
  margin: 0;
}

.cedar-frame:nth-child(2) {
  min-height: clamp(360px, 34vw, 540px);
  align-self: end;
}

.cedar-frame:nth-child(3) {
  min-height: clamp(420px, 42vw, 660px);
  align-self: center;
}

.cedar-frame img {
  width: 100%;
  height: calc(100% - 40px);
  object-fit: cover;
  filter: sepia(0.1) saturate(0.78) contrast(1.07);
}

.cedar-frame figcaption {
  border-color: var(--line);
  color: var(--muted);
}

.cedar-frame figcaption span {
  color: var(--accent);
}

.cedar-detail {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin-top: clamp(70px, 9vw, 130px);
  background: var(--line);
}

.cedar-detail > div {
  padding: clamp(28px, 4vw, 58px);
  background: var(--surface);
}

.detail-label {
  color: var(--accent);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.cedar-detail p {
  max-width: 620px;
  margin: 30px 0 0;
  font-family: var(--display);
  font-size: clamp(1.25rem, 2.15vw, 2.2rem);
  letter-spacing: -0.035em;
  line-height: 1.28;
}

.process-section {
  padding-block: var(--section-pad);
  background: var(--bg);
}

.process-grid {
  display: grid;
  grid-template-columns: minmax(340px, 0.85fr) minmax(0, 1.15fr);
  gap: clamp(50px, 8vw, 130px);
  align-items: start;
}

.process-visual {
  position: sticky;
  top: 118px;
  height: calc(100vh - 150px);
  min-height: 620px;
  max-height: 940px;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--surface);
}

.process-visual img {
  width: 100%;
  height: 108%;
  object-fit: cover;
  filter: saturate(0.72) contrast(1.04) brightness(0.78);
  transform: translateY(calc(var(--parallax, 0) * 1%));
  will-change: transform;
}

.process-visual::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 45%, rgba(5, 4, 3, 0.78));
  content: "";
}

.process-visual-label {
  position: absolute;
  right: 26px;
  bottom: 22px;
  left: 26px;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  padding-top: 13px;
  border-top: 1px solid rgba(244, 233, 222, 0.34);
  color: rgba(244, 233, 222, 0.68);
  font-size: 0.875rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.process-intro {
  margin-bottom: 62px;
}

.process-intro h2 {
  font-size: clamp(2.6rem, 4.4vw, 5rem);
}

.process-intro .answer-capsule,
.founder-intro .answer-capsule {
  max-width: 720px;
  margin: 28px 0 0;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.75;
}

.founder-intro .answer-capsule { color: rgba(21, 13, 8, .7); }

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

.process-list li {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 24px;
  padding: 34px 0 38px;
  border-top: 1px solid var(--line);
}

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

.process-list > li > span {
  color: var(--accent);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.process-list h3 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(1.25rem, 2vw, 2rem);
  font-weight: 500;
  letter-spacing: -0.025em;
}

.process-list p {
  max-width: 650px;
  margin: 13px 0 0;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.75;
}

.founders-section {
  padding-top: var(--section-pad);
  background: var(--ink);
  color: var(--accent-on);
}

.founders-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
  gap: clamp(60px, 9vw, 150px);
  align-items: end;
  padding-bottom: clamp(70px, 9vw, 130px);
}

.founder-intro .eyebrow {
  color: #8a573d;
}

.founder-story p {
  margin: 0 0 28px;
  color: rgba(21, 13, 8, 0.72);
  font-size: clamp(1rem, 1.25vw, 1.15rem);
  line-height: 1.8;
}

.founder-story .text-link {
  border-color: rgba(21, 13, 8, 0.3);
}

.founder-ledger {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  background: rgba(21, 13, 8, 0.16);
  border-top: 1px solid rgba(21, 13, 8, 0.2);
}

.founder-ledger article {
  min-height: 390px;
  padding: clamp(34px, 4.5vw, 70px);
  border-right: 1px solid rgba(21, 13, 8, 0.2);
}

.founder-ledger article:last-child {
  border-right: 0;
}

.founder-role {
  color: #5a3425;
  font-size: 0.875rem;
  font-weight: 750;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.founder-ledger h3 {
  margin: 100px 0 22px;
  font-family: var(--display);
  font-size: clamp(1.8rem, 3vw, 3.5rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1;
}

.founder-ledger p {
  max-width: 520px;
  margin: 0;
  color: rgba(21, 13, 8, 0.7);
  line-height: 1.75;
}

.founder-ledger .standard-card {
  background: var(--accent-on);
  color: var(--ink);
}

.standard-card .founder-role {
  color: var(--accent);
}

.standard-card p {
  color: var(--muted);
}

.condition-section {
  padding-block: var(--section-pad);
  border-bottom: 1px solid var(--line);
  background: var(--surface-alt);
}

.condition-inner {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr) minmax(260px, 0.42fr);
  gap: clamp(40px, 6vw, 100px);
  align-items: end;
}

.condition-label {
  display: flex;
  gap: 14px;
  flex-direction: column;
  color: var(--accent);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.condition-inner .condition-statement {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(2.3rem, 4.7vw, 5.4rem);
  font-weight: 500;
  letter-spacing: -0.055em;
  line-height: 1.04;
}

.condition-inner > p {
  margin: 0;
  color: var(--muted);
  line-height: 1.8;
}

.home-sources {
  padding-block: var(--section-pad);
  border-bottom: 1px solid var(--line);
  background: #0d0907;
}

.home-sources-heading {
  display: grid;
  min-width: 0;
  max-width: 880px;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  margin: 0 auto clamp(46px, 6vw, 80px);
  text-align: center;
}

.home-sources-heading h2 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(2.5rem, 5vw, 5.25rem);
  font-weight: 420;
  letter-spacing: -0.05em;
  line-height: 0.98;
  text-transform: uppercase;
}

.home-sources-heading .answer-capsule {
  max-width: 720px;
  margin: 0 auto;
  color: var(--muted);
  line-height: 1.75;
}

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

.home-sources-grid a {
  display: grid;
  min-width: 0;
  min-height: 320px;
  grid-template-columns: minmax(0, 1fr);
  padding: clamp(28px, 3vw, 44px);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  text-decoration: none;
  align-content: start;
  transition: background-color 220ms ease;
}

.home-sources-grid span,
.home-sources-grid strong {
  color: var(--accent);
  font-size: 0.875rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.home-sources-grid h3 {
  margin: 52px 0 18px;
  font-family: var(--display);
  font-size: clamp(1.35rem, 2vw, 2.05rem);
  font-weight: 430;
  letter-spacing: -0.035em;
  line-height: 1.08;
  text-transform: uppercase;
}

.home-sources-grid p {
  margin: 0 0 26px;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.7;
}

.home-sources-grid strong {
  margin-top: auto;
}

.home-sources-heading > *,
.home-sources-grid a > * {
  min-width: 0;
}

.faq-section {
  padding-block: var(--section-pad);
  background: var(--bg);
}

.faq-grid {
  display: grid;
  max-width: 820px;
  gap: clamp(44px, 6vw, 76px);
  align-items: start;
  margin-inline: auto;
}

.faq-intro {
  position: static;
  text-align: center;
}

.faq-intro h2 {
  font-size: clamp(2.5rem, 4.2vw, 4.8rem);
}

.faq-intro > p:not(.eyebrow) {
  max-width: 720px;
  margin: 30px auto;
  color: var(--muted);
  line-height: 1.75;
}

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

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

.faq-list summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 36px;
  gap: 20px;
  padding: 29px 0;
  align-items: center;
  font-family: var(--display);
  font-size: clamp(1.08rem, 1.75vw, 1.65rem);
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.35;
  list-style: none;
  cursor: pointer;
}

.faq-list summary h3 {
  margin: 0;
  font: inherit;
  font-weight: 500;
  letter-spacing: inherit;
  line-height: inherit;
  text-transform: none;
}

.page-freshness {
  margin: 0;
  padding: 22px var(--page-pad);
  border-top: 1px solid var(--line);
  background: #0d0907;
  color: var(--muted);
  font-size: .875rem;
  letter-spacing: .12em;
  text-align: center;
  text-transform: uppercase;
}

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

.faq-list summary span {
  position: relative;
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  font-family: var(--body);
  overflow: hidden;
  color: transparent;
  font-size: 0;
  transition: background-color 200ms ease, color 200ms ease, transform 240ms var(--ease-out);
}

.faq-list summary span::before,
.faq-list summary span::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 13px;
  height: 1.5px;
  background: var(--accent);
  content: "";
  transform: translate(-50%, -50%);
  transition: background-color 200ms ease, transform 240ms var(--ease-out);
}

.faq-list summary span::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.faq-list details[open] summary span {
  background: var(--accent);
  color: var(--accent-on);
}

.faq-list details[open] summary span::before {
  background: var(--accent-on);
}

.faq-list details[open] summary span::after {
  background: var(--accent-on);
  transform: translate(-50%, -50%) rotate(90deg) scaleX(0);
}

.faq-list details p {
  max-width: 760px;
  margin: -4px 52px 30px 0;
  color: var(--muted);
  line-height: 1.8;
}

.closing-section {
  position: relative;
  min-height: min(880px, 90svh);
  overflow: hidden;
}

.closing-section > img,
.closing-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.closing-section > img {
  object-fit: cover;
  object-position: 50% 58%;
}

.closing-overlay {
  background: linear-gradient(90deg, rgba(5, 4, 3, 0.96) 0%, rgba(5, 4, 3, 0.76) 45%, rgba(5, 4, 3, 0.22) 100%), linear-gradient(180deg, transparent 50%, rgba(5, 4, 3, 0.7));
}

.closing-content {
  position: relative;
  z-index: 1;
  display: flex;
  min-height: min(880px, 90svh);
  padding-block: var(--section-pad);
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}

.closing-content h2 {
  max-width: 980px;
}

.closing-content > p:not(.eyebrow) {
  max-width: 620px;
  margin: 34px 0 0;
  color: rgba(244, 233, 222, 0.72);
  font-size: clamp(1rem, 1.25vw, 1.15rem);
  line-height: 1.78;
}

.closing-actions {
  display: flex;
  gap: 24px;
  align-items: center;
  margin-top: 38px;
}

.conversion-trust {
  display: flex;
  gap: 10px;
  max-width: 720px;
  margin: 18px 0 0;
  align-items: center;
  color: rgba(244, 233, 222, .72);
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.5;
  text-transform: uppercase;
}

.conversion-trust::before {
  width: 24px;
  height: 1px;
  flex: 0 0 auto;
  background: var(--accent);
  content: "";
}

.site-footer {
  padding-top: clamp(66px, 8vw, 110px);
  background: var(--bg);
}

.footer-main {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(270px, 0.7fr) minmax(190px, 0.4fr);
  gap: clamp(45px, 7vw, 120px);
  padding-bottom: clamp(60px, 8vw, 110px);
}

.footer-brand img {
  width: 215px;
  height: 88px;
}

.footer-brand p {
  max-width: 420px;
  margin: 24px 0 0;
  color: var(--muted);
  line-height: 1.7;
}

.footer-contact,
.footer-nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.footer-label {
  margin-bottom: 22px;
  color: var(--accent);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.footer-contact a {
  margin-bottom: 10px;
  font-family: var(--display);
  font-size: clamp(1.15rem, 1.9vw, 1.9rem);
  letter-spacing: -0.025em;
}

.footer-contact a[href^="mailto:"] {
  max-width: 100%;
  overflow-wrap: anywhere;
  font-family: var(--body);
  font-size: clamp(1rem, 1.12vw, 1.05rem);
  letter-spacing: 0;
}

.footer-nav {
  gap: 12px;
}

.footer-nav a {
  color: var(--muted);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.footer-bottom {
  display: flex;
  padding-block: 24px;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.875rem;
}

.footer-bottom > div {
  display: flex;
  gap: 24px;
}

.footer-bottom a {
  color: var(--muted);
}

.mobile-actions {
  display: none;
}

@media (hover: hover) {
  .button:hover { transform: translateY(-2px); }
  .button-solid:hover,
  .btn-primary:hover {
    border-color: #ddad86;
    background: linear-gradient(135deg, #deb08b 0%, #ca956b 48%, #a36540 100%);
    box-shadow: 0 18px 44px rgba(195, 146, 106, .3), 0 7px 16px rgba(0, 0, 0, .36);
  }
  .button-outline:hover { border-color: var(--accent); background: var(--accent); color: var(--accent-on); }
  .text-link:hover { border-color: var(--accent); color: var(--accent); }
  .text-link:hover span { transform: translate(3px, -3px); }
  .desktop-nav > a:hover::after,
  .desktop-nav > .has-dropdown > a:hover::after { transform: scaleX(1); }
  .has-dropdown:hover .nav-submenu { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
  .has-dropdown:hover .nav-caret { transform: rotate(180deg); }
  .desktop-nav .nav-submenu a:hover { background: rgba(195, 146, 106, .1); }
  .header-phone:hover,
  .footer-contact a:hover { color: var(--accent); }
  .faq-list summary:hover span { border-color: var(--accent); background: rgba(195, 146, 106, .1); }
  .direction-card .work-meta { opacity: .78; transform: translateY(10px); }
  .direction-card:hover,
  .direction-card:focus-visible,
  html.js-motion .direction-card[data-reveal].is-visible:hover,
  html.js-motion .direction-card[data-reveal].is-visible:focus-visible {
    z-index: 2;
    box-shadow: 0 28px 72px rgba(0, 0, 0, .42), 0 10px 28px rgba(195, 146, 106, .16);
    transform: translateY(-6px);
  }
  .direction-card:hover img,
  .direction-card:focus-visible img { filter: saturate(1) contrast(1.04); transform: scale(1.045); }
  .direction-card:hover .work-meta,
  .direction-card:focus-visible .work-meta { opacity: 1; transform: translateY(0); }
  .direction-card:hover .work-arrow,
  .direction-card:focus-visible .work-arrow { background: var(--accent); color: var(--accent-on); transform: translate(3px, -3px); }
  .footer-nav a:hover { color: var(--accent); }
}

@media (hover: none) {
  .direction-card .work-meta {
    opacity: 1;
    transform: none;
  }
}

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

html.js-motion [data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

html.js-motion.practice-enter-ready [data-practice-enter] {
  opacity: 0;
  clip-path: inset(0 14% 0 0);
  transform: translate3d(-8vw, 0, 0) scale(.985);
  transition: opacity .72s var(--ease-out), clip-path 1.05s var(--ease-out), transform 1.05s var(--ease-out);
  will-change: opacity, clip-path, transform;
}

html.js-motion.practice-enter-ready [data-practice-enter].is-entered {
  opacity: 1;
  clip-path: inset(0);
  transform: translate3d(0, 0, 0) scale(1);
}

@media (hover: hover) {
  .service-card:hover,
  .feature-card:hover,
  html.js-motion .service-card[data-reveal].is-visible:hover,
  html.js-motion .feature-card[data-reveal].is-visible:hover {
    z-index: 3;
    box-shadow: 0 24px 60px rgba(0, 0, 0, .48), 0 0 0 1px rgba(195, 146, 106, .32);
    transform: translateY(-6px);
  }
}

@keyframes trustStripDrift {
  to { transform: translate3d(calc(-1 * var(--trust-strip-distance, 50%)), 0, 0); }
}

@keyframes elevationIntroGlow {
  0%, 7% { opacity: 0; transform: scale(.62); }
  27% { opacity: .82; transform: scale(.84); }
  64% { opacity: .58; transform: scale(1); }
  100% { opacity: 0; transform: scale(1.14); }
}

@keyframes elevationIntroStage {
  0% { opacity: 0; transform: translate3d(0, 8px, 0) scale(.975); }
  6%, 64% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
  88%, 91% { opacity: 1; transform: translate3d(var(--intro-end-x), var(--intro-end-y), 0) scale(var(--intro-end-scale)); }
  100% { opacity: 0; transform: translate3d(var(--intro-end-x), var(--intro-end-y), 0) scale(var(--intro-end-scale)); }
}

@keyframes elevationIntroBase {
  0%, 4% { opacity: 0; filter: brightness(.32) saturate(.7); }
  16%, 76% { opacity: 1; filter: brightness(.98) saturate(.94); }
  100% { opacity: 0; filter: brightness(1) saturate(.95); }
}

@keyframes elevationIntroPlank {
  0% { opacity: 0; transform: translate3d(0, 92%, 0) scaleY(.86); }
  12% { opacity: 1; }
  72% { opacity: 1; transform: translate3d(0, -2.4%, 0) scaleY(1.018); }
  88% { opacity: 1; transform: translate3d(0, .8%, 0) scaleY(.996); }
  100% { opacity: 1; transform: translate3d(0, 0, 0) scaleY(1); }
}

@keyframes elevationIntroComplete {
  0%, 7% { opacity: 0; filter: brightness(.84) saturate(.86); }
  24%, 91% { opacity: 1; filter: brightness(1.02) saturate(.96); }
  100% { opacity: 1; filter: brightness(1) saturate(1); }
}

@keyframes elevationIntroCurtain {
  0%, 62% { background-color: #030202; visibility: visible; }
  88% { background-color: rgba(3, 2, 2, 0); visibility: visible; }
  100% { background-color: transparent; visibility: hidden; }
}

@keyframes elevationHeaderMarkReveal {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes elevationPageReveal {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes lineSettle {
  to {
    transform: translateY(0);
  }
}

@keyframes heroFade {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 1240px) {
  .header-inner {
    grid-template-columns: 190px minmax(0, 1fr) auto;
  }

  .desktop-nav {
    gap: 16px;
  }

  .header-phone {
    display: none;
  }

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

  .proof-cell:nth-child(2) {
    border-right: 0;
  }

  .proof-cell:nth-child(-n+2) {
    border-bottom: 1px solid var(--line);
  }

  .cedar-head {
    grid-template-columns: 150px minmax(0, 1fr);
  }

  .cedar-head > p:last-child {
    grid-column: 2;
  }

  .condition-inner {
    grid-template-columns: 130px minmax(0, 1fr);
  }

  .condition-inner > p {
    grid-column: 2;
    max-width: 620px;
  }
}

@media (max-width: 1020px) {
  .home-answer-grid { grid-template-columns: 1fr; }

  .header-inner {
    grid-template-columns: 1fr auto;
  }

  .desktop-nav,
  .header-project {
    display: none;
  }

  .menu-toggle {
    display: block;
  }

  .mobile-menu {
    display: flex;
    position: relative;
    z-index: 1;
    padding: calc(116px + env(safe-area-inset-top)) var(--page-pad) max(32px, env(safe-area-inset-bottom));
    flex-direction: column;
    overflow-y: auto;
    background: #050403;
    overscroll-behavior: contain;
    touch-action: pan-y;
    transition: opacity 240ms ease, transform 280ms var(--ease-out);
    -webkit-overflow-scrolling: touch;
  }

  /* Keep every route reachable without JavaScript without letting the
     fallback navigation consume the entire first screen. */
  html:not(.js-motion) .mobile-menu {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    padding: calc(96px + env(safe-area-inset-top)) 12px 12px;
    background: #050403;
  }

  html:not(.js-motion) .mobile-menu a,
  html:not(.js-motion) .mobile-menu .mobile-submenu-link {
    min-height: 48px;
    padding: 9px 5px;
    border: 1px solid var(--line);
    font-family: var(--body);
    font-size: .875rem;
    font-weight: 650;
    letter-spacing: .06em;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
  }

  html:not(.js-motion) .mobile-menu .mobile-submenu-link {
    color: var(--muted);
  }

  html:not(.js-motion) .mobile-menu .mobile-menu-call {
    margin-top: 0;
    color: var(--accent);
  }

  html.js-motion .mobile-menu {
    position: fixed;
    top: var(--drawer-top, 88px);
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 49;
    width: 100vw;
    max-width: 100vw;
    padding: 28px var(--page-pad) max(32px, env(safe-area-inset-bottom));
    opacity: 0;
    pointer-events: none;
    transform: translateY(-18px);
  }

  html.js-motion .mobile-menu.is-open {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  .mobile-menu a {
    min-height: 52px;
    padding: 14px 0;
    border-bottom: 1px solid var(--line);
    font-family: var(--display);
    font-size: clamp(1.35rem, 4vw, 2rem);
  }

  .mobile-menu .mobile-submenu-link {
    min-height: 48px;
    padding-left: 24px;
    color: var(--muted);
    font-family: var(--body);
    font-size: .875rem;
    font-weight: 650;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .mobile-menu .mobile-menu-call {
    display: flex;
    gap: 10px;
    margin-top: 18px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--accent);
    color: var(--accent);
    text-align: center;
  }

  .hero-grid {
    grid-template-columns: minmax(0, 1fr) 100px;
  }

  .hero-rail {
    padding-inline: 10px;
  }

  .one-plan-grid {
    grid-template-columns: 1fr;
  }

  .one-plan-copy {
    position: static;
  }

  .process-grid {
    grid-template-columns: 0.8fr 1.2fr;
    gap: 48px;
  }

  .process-visual {
    min-height: 550px;
  }

  .founders-grid {
    grid-template-columns: 1fr;
  }

  .founder-ledger {
    grid-template-columns: 1fr;
  }

  .founder-ledger article {
    min-height: 300px;
    border-right: 0;
    border-bottom: 1px solid rgba(21, 13, 8, 0.2);
  }

  .founder-ledger h3 {
    margin-top: 62px;
  }

  .faq-grid {
    gap: 54px;
  }

  .footer-main {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .footer-nav {
    grid-column: 1 / -1;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px 24px;
  }
}

@media (max-width: 760px) {
  :root {
    --page-pad: 20px;
    --section-pad: 88px;
  }

  main :where(h1, h2, h3) {
    overflow-wrap: normal;
    word-break: normal;
  }

  .section-shell,
  .section-shell > * {
    min-width: 0;
  }

  .header-inner {
    min-height: 76px;
  }

  .brand-link {
    width: 148px;
    height: 58px;
  }

  .hero {
    min-height: 100vh;
    min-height: 100dvh;
  }

  .hero-image {
    inset: 0;
    height: 100%;
  }

  .hero-image img {
    object-position: 58% 48%;
  }

  .hero-overlay {
    background: linear-gradient(180deg, rgba(5, 4, 3, 0.64) 0%, rgba(5, 4, 3, 0.34) 44%, rgba(5, 4, 3, 0.36) 68%, rgba(5, 4, 3, 0.76) 100%);
  }

  .hero-grid {
    display: block;
    min-height: 100vh;
    min-height: 100dvh;
  }

  .hero-content {
    display: flex;
    min-height: 100vh;
    min-height: 100dvh;
    padding: 142px var(--page-pad) 105px;
    justify-content: flex-end;
  }

  .hero-title {
    font-size: clamp(2.65rem, 13vw, 4.2rem);
    line-height: 0.97;
  }

  .hero-copy {
    margin-top: 24px;
    font-size: 1rem;
    line-height: 1.65;
  }

  .hero-actions {
    display: grid;
    width: min(100%, 360px);
    max-width: 100%;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    align-items: stretch;
    margin-top: 26px;
  }

  .hero-lower {
    width: min(100%, 720px);
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }

  .hero-actions .text-link {
    width: 100%;
  }

  .founder-quote {
    margin-top: 22px;
    padding: 13px 14px;
  }

  .hero-lower .founder-quote {
    width: min(100%, 360px);
    margin-top: 0;
    padding: 15px 54px 15px 16px;
  }

  .hero-rail {
    display: none;
  }

  .elevation-intro-stage {
    width: min(92vw, 520px);
  }

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

  .proof-cell {
    min-height: 175px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .proof-cell:nth-child(2) {
    border-right: 0;
  }

  .section-intro {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .section-intro h2,
  .one-plan-copy h2,
  .cedar-head h2,
  .process-intro h2,
  .founder-intro h2,
  .faq-intro h2,
  .closing-content h2 {
    font-size: clamp(2.35rem, 11.5vw, 4rem);
  }

  .work-grid {
    display: block;
    background: transparent;
  }

  .work-card {
    display: block;
    min-height: 510px;
    margin-bottom: 1px;
  }

  .work-card:nth-child(even) {
    min-height: 420px;
  }

  .work-meta {
    grid-template-columns: 32px minmax(0, 1fr) 38px;
    gap: 12px;
  }

  .work-meta h3 {
    font-size: 1.65rem;
  }

  .image-disclosure {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .one-plan-media {
    grid-template-columns: minmax(0, 1fr);
  }

  .one-plan-grid,
  .process-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .one-plan-grid > *,
  .one-plan-media > *,
  .process-grid > * {
    min-width: 0;
  }

  .one-plan-copy h2,
  .process-intro h2 {
    font-size: clamp(2.2rem, 10vw, 3.6rem);
  }

  .plan-image-main,
  .plan-image-small {
    min-height: 470px;
  }

  .cedar-head {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .cedar-head > p:last-child {
    grid-column: auto;
  }

  .cedar-gallery {
    display: flex;
    margin-top: 58px;
    padding-inline: var(--page-pad);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
  }

  .cedar-frame,
  .cedar-frame:nth-child(2),
  .cedar-frame:nth-child(3) {
    min-width: 82vw;
    min-height: 510px;
    align-self: auto;
    scroll-snap-align: start;
  }

  .cedar-detail {
    grid-template-columns: 1fr;
  }

  .process-visual {
    position: relative;
    top: auto;
    height: 72svh;
    min-height: 520px;
  }

  .process-copy {
    margin-top: 20px;
  }

  .process-list li {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 16px;
  }

  .founders-grid {
    padding-bottom: 68px;
  }

  .founder-ledger article {
    min-height: 330px;
    padding: 40px var(--page-pad);
  }

  .condition-inner {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .condition-inner > p {
    grid-column: auto;
  }

  .condition-label {
    flex-direction: row;
    flex-wrap: wrap;
  }

  .faq-grid {
    grid-template-columns: 1fr;
  }

  .faq-intro {
    position: static;
  }

  .faq-list summary {
    padding-block: 24px;
    font-size: 1.15rem;
  }

  .closing-section,
  .closing-content {
    min-height: 780px;
  }

  .closing-overlay {
    background: linear-gradient(180deg, rgba(5, 4, 3, 0.89) 0%, rgba(5, 4, 3, 0.66) 50%, rgba(5, 4, 3, 0.88) 100%);
  }

  .closing-actions {
    display: grid;
    width: min(100%, 360px);
    max-width: 100%;
    grid-template-columns: minmax(0, 1fr);
  }

  .closing-actions .text-link {
    width: 100%;
  }

  .footer-main {
    grid-template-columns: 1fr;
  }

  .footer-bottom {
    display: block;
    padding-bottom: calc(92px + env(safe-area-inset-bottom));
  }

  .footer-bottom > div {
    margin-top: 12px;
    flex-wrap: wrap;
  }

  .mobile-actions {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 60;
    width: 100vw;
    max-width: 100vw;
    display: grid;
    grid-template-columns: 0.7fr 1.3fr;
    min-height: 64px;
    padding: 10px 12px;
    padding-bottom: max(10px, env(safe-area-inset-bottom));
    border-top: 1px solid var(--line-strong);
    background: var(--bg);
    box-shadow: 0 48px 0 0 var(--bg);
    transform: translateY(calc(100% + 48px + env(safe-area-inset-bottom, 0px)));
    transition: transform 300ms ease;
  }

  .mobile-actions.is-visible {
    transform: translateY(0);
  }

  .mobile-actions.is-visible.is-retreating {
    transform: translateY(calc(100% + 48px + env(safe-area-inset-bottom, 0px)));
    transition-duration: 0ms;
  }

  .site-header.is-open ~ .mobile-cta-bar {
    transform: translateY(calc(100% + 48px + env(safe-area-inset-bottom, 0px)));
  }

  .mobile-actions a {
    display: grid;
    min-height: 48px;
    place-items: center;
    font-size: 0.875rem;
    font-weight: 750;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .mobile-actions a:first-child {
    border-right: 1px solid var(--line);
    color: var(--accent);
  }

  .mobile-actions .phone-cta {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: center;
  }

  .mobile-actions a:last-child {
    background: linear-gradient(135deg, #d3a078 0%, var(--accent) 54%, #a96f49 100%);
    color: var(--accent-on);
  }
}

@media (hover: hover) {
  .home-sources-grid a:hover,
  .home-sources-grid a:focus-visible {
    background: rgba(195, 146, 106, 0.08);
  }
}

@media (max-width: 900px) {
  .home-sources-grid {
    grid-template-columns: 1fr;
  }

  .home-sources-grid a {
    min-height: 0;
  }
}

@media (max-width: 360px) {
  .home-sources-grid h3 {
    font-size: 1.1rem;
  }
}

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

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-delay: 0ms !important;
    transition-duration: 0.01ms !important;
  }

  .hero-eyebrow,
  .hero-copy,
  .hero-actions,
  .founder-quote,
  html.js-motion [data-reveal] {
    opacity: 1;
    transform: none;
  }

  .hero-line > span {
    transform: none;
  }

  .trust-strip-track {
    width: 100%;
    animation: none;
    transform: none;
    will-change: auto;
  }

  .trust-strip-group {
    width: 100%;
    flex-wrap: wrap;
    gap: 12px 28px;
    padding: 14px var(--page-pad);
  }

  .trust-strip-group[aria-hidden="true"] {
    display: none;
  }

  .trust-strip-group > span + span {
    margin-left: 0;
  }

  .process-visual img {
    transform: none !important;
  }
}

@media (max-width: 760px) {
  .trust-strip {
    grid-template-columns: minmax(0, 1fr);
  }

  .trust-strip-label {
    min-height: 48px;
    padding-inline: var(--page-pad);
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .trust-strip-track {
    min-height: 54px;
  }
}

/* Wave 8 mobile tap-target floor. Interior pages add a few route-specific
   targets in pages.css; these shared controls cover the homepage and chrome. */
@media (max-width: 760px) {
  .skip-link,
  .text-link,
  .proof-call a,
  .footer-contact a,
  .footer-nav a,
  .footer-bottom a {
    display: inline-flex;
    min-height: 48px;
    min-width: 48px;
    align-items: center;
  }

  .footer-nav {
    gap: 0;
  }

  .footer-bottom > div {
    gap: 8px 18px;
  }
}

/* Wave 12 — reopened architectural direction. The service browser is an
   original capability browser, not P-026 and not a completed-work portfolio. */
:root {
  --wipe-shadow: rgba(195, 146, 106, .22);
  --browser-h: clamp(620px, 78dvh, 940px);
}

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.direction-browser {
  position: relative;
  border-block: 1px solid var(--line);
  background: var(--bg);
}

.direction-browser__frame {
  position: relative;
  overflow: clip;
}

.direction-browser__stage {
  min-width: 0;
}

.direction-slide {
  position: relative;
  min-height: clamp(540px, 72vw, 860px);
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}

.direction-slide__link {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  min-height: inherit;
  overflow: clip;
}

.direction-slide img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.78) contrast(1.05);
}

.direction-slide__veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(41, 25, 16, .08) 12%, rgba(5, 4, 3, .16) 46%, rgba(5, 4, 3, .91) 100%),
    linear-gradient(90deg, rgba(5, 4, 3, .48), transparent 58%);
}

.direction-slide__copy {
  position: absolute;
  right: clamp(24px, 5vw, 78px);
  bottom: clamp(34px, 7vw, 94px);
  left: var(--page-pad);
  z-index: 2;
  display: grid;
  min-width: 0;
  max-width: min(760px, 78%);
  gap: 12px;
  color: var(--ink);
  text-shadow: 0 2px 18px rgba(5, 4, 3, .72);
}

.direction-slide__kicker {
  width: fit-content;
  padding: 6px 8px;
  background: rgba(5, 4, 3, .82);
  color: var(--ink);
  font-size: .875rem;
  font-weight: 750;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.direction-slide__copy strong {
  min-width: 0;
  font-family: var(--display);
  font-size: clamp(2.8rem, 6vw, 6.5rem);
  font-weight: 480;
  letter-spacing: -.055em;
  line-height: .92;
}

.direction-slide__copy > span:not(.direction-slide__kicker, .direction-slide__action) {
  font-size: clamp(1rem, 1.2vw, 1.15rem);
  font-weight: 620;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.direction-slide__action {
  display: inline-flex;
  width: fit-content;
  min-height: 48px;
  margin-top: 14px;
  align-items: center;
  border-bottom: 1px solid rgba(244, 233, 222, .58);
  font-size: .875rem;
  font-weight: 750;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.direction-slide__action i {
  margin-left: 14px;
  font-style: normal;
}

.direction-browser__rail,
.direction-browser__controls {
  display: none;
}

.direction-browser.is-ready .direction-browser__frame {
  display: grid;
  height: var(--browser-h);
  grid-template-columns: minmax(0, 1fr) clamp(190px, 22vw, 350px);
}

.direction-browser.is-ready .direction-browser__stage {
  position: relative;
  min-height: 0;
}

.direction-browser.is-ready .direction-slide {
  position: absolute;
  inset: 0;
  min-height: 0;
  visibility: hidden;
  border: 0;
  opacity: 0;
  pointer-events: none;
}

.direction-browser.is-ready .direction-slide.is-active,
.direction-browser.is-ready .direction-slide.is-leaving {
  visibility: visible;
  opacity: 1;
}

.direction-browser.is-ready .direction-slide.is-active {
  z-index: 2;
  pointer-events: auto;
}

.direction-browser.is-ready .direction-slide.is-leaving {
  z-index: 1;
}

.direction-browser.is-ready.move-next .direction-slide.is-entering {
  animation: direction-wipe-next .76s var(--ease-out) both;
}

.direction-browser.is-ready.move-prev .direction-slide.is-entering {
  animation: direction-wipe-prev .76s var(--ease-out) both;
}

.direction-browser.is-ready .direction-slide.is-entering img {
  animation: direction-image-arrive .76s var(--ease-out) both;
}

.direction-browser.is-ready .direction-slide.is-entering .direction-slide__copy {
  animation: direction-copy-arrive .76s var(--ease-out) both;
}

@keyframes direction-wipe-next {
  from { clip-path: inset(0 0 0 100%); }
  to { clip-path: inset(0); }
}

@keyframes direction-wipe-prev {
  from { clip-path: inset(0 100% 0 0); }
  to { clip-path: inset(0); }
}

@keyframes direction-image-arrive {
  from { transform: scale(1.035) translateX(1.4%); }
  to { transform: scale(1) translateX(0); }
}

@keyframes direction-copy-arrive {
  0%, 24% { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}

.direction-browser.is-ready .direction-browser__rail {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-left: 1px solid rgba(244, 233, 222, .42);
  border-radius: 0;
  background: var(--surface);
  color: var(--ink);
  cursor: pointer;
  text-align: left;
}

.direction-browser__rail::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(5, 4, 3, .34), rgba(5, 4, 3, .88));
  content: "";
}

.direction-browser__rail img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(.52) saturate(.7) contrast(1.08);
}

.direction-browser__rail-copy {
  position: absolute;
  right: 24px;
  bottom: 54px;
  left: 24px;
  z-index: 2;
  display: grid;
  gap: 10px;
  text-shadow: 0 2px 12px rgba(5, 4, 3, .8);
}

.direction-browser__rail [data-direction-rail-label] {
  font-size: .875rem;
  font-weight: 750;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.direction-browser__rail [data-direction-rail-title] {
  font-family: var(--display);
  font-size: clamp(1.35rem, 2.2vw, 2.65rem);
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: 1.05;
}

.direction-browser__rail.is-refreshing img {
  animation: direction-rail-image .58s var(--ease-out) both;
}

.direction-browser__rail.is-refreshing .direction-browser__rail-copy {
  animation: direction-rail-copy .58s var(--ease-out) both;
}

@keyframes direction-rail-image {
  from { opacity: .45; transform: scale(1.045); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes direction-rail-copy {
  0%, 20% { opacity: 0; transform: translateY(15px); }
  to { opacity: 1; transform: translateY(0); }
}

.direction-browser.is-ready .direction-browser__controls {
  position: relative;
  display: grid;
  min-height: 92px;
  grid-template-columns: 52px max-content minmax(0, 1fr) 52px;
  gap: clamp(12px, 2vw, 28px);
  align-items: center;
  border-top: 1px solid var(--line);
}

.direction-browser.is-ready .direction-browser__controls::before {
  position: absolute;
  top: -1px;
  left: var(--page-pad);
  width: min(calc(100% - (var(--page-pad) * 2)), var(--direction-progress, 16.667%));
  height: 2px;
  background: var(--accent);
  content: "";
  transition: width 520ms var(--ease-out);
}

.direction-browser__arrow,
.direction-browser__dashes button {
  position: relative;
  display: grid;
  min-width: 48px;
  min-height: 48px;
  padding: 0;
  place-items: center;
  border: 1px solid var(--line-strong);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
}

.direction-browser__arrow {
  font-size: 1.2rem;
}

.direction-browser__dashes {
  display: flex;
  align-items: center;
}

.direction-browser__dashes button {
  min-width: 48px;
  border-color: transparent;
}

.direction-browser__dashes button::before {
  width: 28px;
  height: 3px;
  background: rgba(244, 233, 222, .32);
  content: "";
  transition: width 220ms var(--ease-out), background 220ms ease;
}

.direction-browser__dashes button[aria-selected="true"]::before {
  width: 42px;
  background: var(--accent);
}

.direction-browser__status {
  justify-self: end;
  margin: 0;
  color: var(--muted);
  font-size: .875rem;
  font-weight: 650;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.one-plan-section {
  position: relative;
  overflow: clip;
}

.one-plan-grid {
  position: relative;
  z-index: 2;
}

.plan-route {
  position: absolute;
  inset: clamp(18px, 4vw, 64px) 0;
  z-index: 1;
  width: 100%;
  height: calc(100% - clamp(36px, 8vw, 128px));
  overflow: visible;
  pointer-events: none;
}

.plan-route-path,
.plan-route-echo {
  fill: none;
  stroke: var(--accent);
  stroke-linecap: round;
  stroke-linejoin: round;
}

.plan-route-path {
  stroke-width: 1.8;
  opacity: .62;
}

.plan-route-echo {
  stroke-width: 1;
  opacity: .22;
}

.plan-route-nodes circle {
  fill: var(--bg);
  stroke: var(--accent);
  stroke-width: 2;
}

html.route-motion-ready .plan-route-path {
  stroke-dasharray: 1;
  stroke-dashoffset: calc(1 - var(--route-progress, 0));
}

/* P-014 reopened lock: one dark ground across the homepage; subtle surfaces
   remain components, not alternating bands. */
.route-home :where(.home-answer-section, .direction-section, .one-plan-section, .cedar-section, .process-section, .founders-section, .condition-section, .home-sources, .faq-section) {
  background: var(--bg);
  color: var(--ink);
}

.route-home .home-answer-grid > .answer-capsule,
.route-home .one-plan-copy p:not(.eyebrow),
.route-home .founder-intro .answer-capsule,
.route-home .founder-story p,
.route-home .founder-ledger p {
  color: var(--muted);
}

.route-home :where(.home-answer-section, .one-plan-section, .cedar-section, .founders-section, .condition-section) {
  border-bottom: 1px solid var(--line);
}

.route-home .home-answer-section .eyebrow,
.route-home .one-plan-copy .eyebrow,
.route-home .founder-intro .eyebrow {
  color: var(--ink);
}

.route-home .founder-role {
  color: var(--accent);
}

.route-home :where(.one-plan-copy .text-link, .founder-story .text-link) {
  border-color: var(--line-strong);
}

.route-home .plan-image figcaption {
  border-color: var(--line);
  color: var(--muted);
}

.route-home .founder-ledger {
  background: rgba(244, 233, 222, .025);
  border-color: var(--line);
}

.route-home .founder-ledger article {
  border-color: var(--line);
}

.route-home .founder-ledger .standard-card,
.route-home .proof-call {
  background: var(--surface);
  color: var(--ink);
}

.route-home .proof-call .proof-label {
  color: var(--muted);
}

.route-home .proof-call a {
  border-color: var(--line-strong);
}

@media (hover: hover) {
  .direction-browser__arrow:hover,
  .direction-browser__arrow:focus-visible {
    border-color: var(--accent);
    background: rgba(195, 146, 106, .1);
  }

  .direction-browser__dashes button:hover::before {
    background: rgba(244, 233, 222, .72);
  }

  .direction-browser__rail:hover img {
    filter: brightness(.62) saturate(.78) contrast(1.08);
  }

  .direction-slide__link:hover img,
  .direction-slide__link:focus-visible img {
    filter: saturate(.9) contrast(1.07);
  }
}

@media (max-width: 900px) {
  .direction-browser.is-ready .direction-browser__frame {
    grid-template-columns: minmax(0, 1fr) 190px;
  }

  .direction-browser.is-ready .direction-browser__controls {
    grid-template-columns: 52px minmax(0, 1fr) 52px;
  }

  .direction-browser__dashes {
    justify-content: center;
  }

  .direction-browser__status {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-self: center;
    padding-bottom: 18px;
  }
}

@media (max-width: 760px) {
  :root { --browser-h: min(72dvh, 680px); }

  .direction-browser.is-ready .direction-browser__frame {
    display: block;
    height: var(--browser-h);
  }

  .direction-browser.is-ready .direction-browser__stage {
    height: 100%;
  }

  .direction-browser.is-ready .direction-browser__rail {
    display: none;
  }

  .direction-slide__copy {
    right: 20px;
    bottom: 28px;
    left: 20px;
    max-width: none;
    gap: 9px;
  }

  .direction-slide__copy strong {
    font-size: clamp(1.75rem, 8.8vw, 3.2rem);
  }

  .direction-browser.is-ready .direction-browser__controls {
    min-height: 154px;
    padding: 14px 8px 12px;
    grid-template-columns: 52px minmax(0, 1fr) 52px;
    grid-template-rows: 48px 48px;
    gap: 12px 6px;
  }

  .direction-browser__arrow:first-child { grid-column: 1; grid-row: 1; }
  .direction-browser__arrow:last-child { grid-column: 3; grid-row: 1; }

  .direction-browser__dashes {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .direction-browser__dashes button {
    min-width: 48px;
  }

  .direction-browser__dashes button::before {
    width: 20px;
  }

  .direction-browser__dashes button[aria-selected="true"]::before {
    width: 30px;
  }

  .direction-browser__status {
    grid-column: 2;
    grid-row: 1;
    max-width: 100%;
    padding: 0;
    justify-self: center;
    text-align: center;
  }

  .plan-route {
    inset: 12px -90px;
    width: calc(100% + 180px);
    opacity: .5;
  }
}

@media (prefers-reduced-motion: reduce) {
  html.route-motion-ready .plan-route-path {
    stroke-dashoffset: 0;
  }

  .direction-browser.is-ready .direction-slide.is-entering {
    animation: none;
  }

  .direction-browser.is-ready .direction-slide.is-entering img,
  .direction-browser.is-ready .direction-slide.is-entering .direction-slide__copy,
  .direction-browser__rail.is-refreshing img,
  .direction-browser__rail.is-refreshing .direction-browser__rail-copy {
    animation: none;
  }

  .direction-browser.is-ready .direction-browser__controls::before {
    transition: none;
  }
}

/* Wave 13: the home proof becomes a reversible editorial ledger rather than
   another row of equal cards. Every fact remains visible without motion. */
.fact-ledger {
  border-block: 1px solid var(--line);
  background: var(--bg);
}

.fact-ledger-head {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(24px, 3vw, 48px);
  padding-block: clamp(82px, 9vw, 132px) clamp(54px, 7vw, 94px);
  align-items: end;
}

.fact-ledger-head .eyebrow {
  grid-column: 1 / -1;
  margin: 0;
}

.fact-ledger-head h2 {
  grid-column: 1 / 10;
  grid-row: 2;
  max-width: 760px;
  margin: 0;
  font-family: var(--display);
  font-size: clamp(2.7rem, 5.2vw, 6.1rem);
  font-weight: 460;
  letter-spacing: -.055em;
  line-height: .96;
  text-wrap: balance;
  text-transform: uppercase;
}

.fact-ledger-head > p:last-child {
  grid-column: 7 / -1;
  grid-row: 3;
  max-width: 55ch;
  margin: 0 0 6px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: clamp(1rem, 1.25vw, 1.16rem);
  line-height: 1.75;
}

.fact-ledger-rows {
  border-top: 1px solid var(--line);
}

.fact-ledger-row {
  position: relative;
  display: grid;
  min-height: 154px;
  grid-template-columns: 56px minmax(180px, .7fr) minmax(0, 1.25fr) minmax(110px, .3fr);
  gap: clamp(18px, 3vw, 52px);
  padding: clamp(30px, 3.5vw, 54px) var(--page-pad);
  align-items: baseline;
  border-bottom: 1px solid var(--line);
  transition: background-color 280ms ease, padding-left 340ms var(--ease-out);
}

.fact-ledger-row::before {
  position: absolute;
  top: -1px;
  left: var(--page-pad);
  width: 0;
  height: 2px;
  background: var(--accent);
  content: "";
  transition: width 420ms var(--ease-out);
}

.fact-ledger-row.stat-card::before { left: var(--page-pad); }

.fact-ledger-row.is-active {
  padding-left: calc(var(--page-pad) + clamp(8px, 1.4vw, 20px));
  background: linear-gradient(90deg, rgba(195,146,106,.09), transparent 68%);
}

.fact-ledger-row.is-active::before { width: clamp(56px, 8vw, 118px); }

.fact-ledger-row:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -7px;
}

[data-ledger-direction="reverse"] .fact-ledger-row.is-active {
  padding-left: var(--page-pad);
  padding-right: calc(var(--page-pad) + clamp(8px, 1.4vw, 20px));
  background: linear-gradient(270deg, rgba(195,146,106,.09), transparent 68%);
}

[data-ledger-direction="reverse"] .fact-ledger-row.is-active::before {
  right: var(--page-pad);
  left: auto;
}

.fact-ledger-index,
.fact-ledger-kind {
  color: var(--accent);
  font-size: .875rem;
  font-weight: 730;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.fact-ledger-value {
  color: var(--ink);
  font-family: var(--display);
  font-size: clamp(1.45rem, 2.5vw, 3rem);
  font-weight: 470;
  letter-spacing: -.04em;
  line-height: 1;
  text-transform: uppercase;
}

.fact-ledger-copy {
  max-width: 58ch;
  margin: 0;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.7;
}

.fact-ledger-kind { justify-self: end; }

.route-home .image-disclosure p { max-width: 72ch; }

@media (max-width: 900px) {
  .fact-ledger-head { grid-template-columns: 1fr; }
  .fact-ledger-head .eyebrow { grid-column: auto; }
  .fact-ledger-head h2,
  .fact-ledger-head > p:last-child {
    grid-column: auto;
    grid-row: auto;
  }
  .fact-ledger-row {
    grid-template-columns: 42px minmax(140px, .55fr) minmax(0, 1fr);
  }
  .fact-ledger-kind { display: none; }
}

@media (max-width: 620px) {
  .fact-ledger-row {
    min-height: 0;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px 16px;
    align-items: start;
  }
  .fact-ledger-value { line-height: 1.1; }
  .fact-ledger-copy { grid-column: 2; }
}

@media (max-width: 360px) {
  .fact-ledger-head h2 { font-size: 2.2rem; }
}

@media (prefers-reduced-motion: reduce) {
  .fact-ledger-row { transition: none; }
}

/* Wave 15: six source-specific art directions keep the service browser from
   reading like one stock crop repeated six times. The photo remains still in
   every settled state; only the existing state-change curtain moves. */
.direction-slide {
  --direction-position: 50% 50%;
  --direction-filter: saturate(.78) contrast(1.05);
  --direction-filter-hover: saturate(.86) contrast(1.07);
  --direction-veil:
    linear-gradient(180deg, rgba(41, 25, 16, .08) 12%, rgba(5, 4, 3, .16) 46%, rgba(5, 4, 3, .91) 100%),
    linear-gradient(90deg, rgba(5, 4, 3, .48), transparent 58%);
}

.direction-slide:nth-child(1) {
  --direction-position: 62% 48%;
  --direction-filter: saturate(.72) contrast(1.10) brightness(.91);
  --direction-filter-hover: saturate(.82) contrast(1.10) brightness(.96);
  --direction-veil:
    linear-gradient(180deg, rgba(5, 4, 3, .04) 8%, rgba(5, 4, 3, .16) 48%, rgba(5, 4, 3, .94) 100%),
    linear-gradient(90deg, rgba(5, 4, 3, .58), transparent 62%);
}

.direction-slide:nth-child(2) {
  --direction-position: 70% 52%;
  --direction-filter: saturate(.88) contrast(1.04) brightness(.88);
  --direction-filter-hover: saturate(.96) contrast(1.05) brightness(.93);
  --direction-veil:
    linear-gradient(180deg, rgba(23, 17, 13, .08) 10%, rgba(5, 4, 3, .18) 52%, rgba(5, 4, 3, .93) 100%),
    linear-gradient(90deg, rgba(5, 4, 3, .70), transparent 72%);
}

.direction-slide:nth-child(3) {
  --direction-position: 54% 66%;
  --direction-filter: sepia(.07) saturate(.68) contrast(1.12) brightness(.88);
  --direction-filter-hover: sepia(.04) saturate(.78) contrast(1.11) brightness(.94);
  --direction-veil:
    linear-gradient(180deg, rgba(41, 25, 16, .03), rgba(5, 4, 3, .18) 50%, rgba(5, 4, 3, .93) 100%),
    linear-gradient(90deg, rgba(5, 4, 3, .62), rgba(5, 4, 3, .42) 48%, transparent 76%);
}

.direction-slide:nth-child(4) {
  --direction-position: 72% 48%;
  --direction-filter: saturate(.62) contrast(1.13) brightness(.82);
  --direction-filter-hover: saturate(.72) contrast(1.12) brightness(.89);
  --direction-veil:
    linear-gradient(180deg, rgba(5, 4, 3, .12), rgba(5, 4, 3, .22) 48%, rgba(5, 4, 3, .95) 100%),
    linear-gradient(90deg, rgba(5, 4, 3, .64), transparent 66%);
}

.direction-slide:nth-child(5) {
  --direction-position: 42% 56%;
  --direction-filter: saturate(.72) contrast(1.08) brightness(.90);
  --direction-filter-hover: saturate(.82) contrast(1.09) brightness(.95);
  --direction-veil:
    linear-gradient(180deg, rgba(41, 25, 16, .05), rgba(5, 4, 3, .20) 44%, rgba(5, 4, 3, .95) 100%),
    linear-gradient(90deg, rgba(5, 4, 3, .52), transparent 58%);
}

.direction-slide:nth-child(6) {
  --direction-position: 64% 42%;
  --direction-filter: saturate(.94) contrast(1.05) brightness(.76);
  --direction-filter-hover: saturate(1) contrast(1.06) brightness(.82);
  --direction-veil:
    linear-gradient(180deg, rgba(5, 4, 3, .02), rgba(5, 4, 3, .16) 54%, rgba(5, 4, 3, .94) 100%),
    linear-gradient(90deg, rgba(5, 4, 3, .52), transparent 62%);
}

.direction-slide img {
  object-position: var(--direction-position);
  filter: var(--direction-filter);
}

.direction-slide__veil { background: var(--direction-veil); }

.direction-browser__rail img {
  object-position: var(--direction-rail-position, 50% 50%);
}

@media (hover: hover) {
  .direction-slide__link:hover img,
  .direction-slide__link:focus-visible img {
    filter: var(--direction-filter-hover);
  }
}

@media (max-width: 760px) {
  .direction-slide:nth-child(1) { --direction-position: 67% 52%; }
  .direction-slide:nth-child(2) { --direction-position: 66% 50%; }
  .direction-slide:nth-child(3) { --direction-position: 50% 62%; }
  .direction-slide:nth-child(4) { --direction-position: 64% 50%; }
  .direction-slide:nth-child(5) { --direction-position: 44% 52%; }
  .direction-slide:nth-child(6) { --direction-position: 60% 48%; }
}
