@font-face {
  font-family: "Instrument Serif";
  src: url("/fonts/instrument-serif-regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Instrument Serif";
  src: url("/fonts/instrument-serif-italic.ttf") format("truetype");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Manrope";
  src: url("/fonts/manrope-latin.ttf") format("truetype");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}

:root {
  color-scheme: dark;
  --pine: #112e2b;
  --pine-deep: #0b2320;
  --silver: #e1e5da;
  --mist: #b7c6ba;
  --sage: #8fa79b;
  --rule: rgb(201 215 202 / 20%);
  --serif: "Instrument Serif", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: 36px;
  background: var(--pine);
}

body {
  margin: 0;
  color: var(--silver);
  font-family: var(--sans);
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
}

body::after {
  position: fixed;
  inset: 0;
  z-index: 4;
  opacity: .035;
  content: "";
  background: url("/grain.svg");
  pointer-events: none;
}

a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 2px solid var(--silver); outline-offset: 7px; }
::selection { color: var(--pine-deep); background: var(--silver); }

.skip-link {
  position: fixed;
  top: -80px;
  left: 20px;
  z-index: 10;
  padding: 12px 18px;
  color: var(--pine);
  background: var(--silver);
}

.skip-link:focus { top: 16px; }
.site-shell { max-width: 1920px; margin: auto; }

.header {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 124px;
  margin: 0 6.1%;
  border-bottom: 1px solid var(--rule);
}

.brand { display: inline-flex; align-items: center; gap: 17px; }
.brand > span { font-family: var(--serif); font-size: 26px; line-height: 1; }
.brand-llc { display: inline-block; margin-left: 8px; font-family: var(--sans); font-size: 9px; letter-spacing: .06em; }
.brand-mark { flex: 0 0 auto; }
.nav-link { display: flex; align-items: center; gap: 21px; font-size: 12px; }
.nav-link span { font-size: 19px; }
.nav-link:hover { color: white; }

.hero {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 750px;
  min-height: max(730px, calc(100svh - 124px));
  isolation: isolate;
  overflow: hidden;
}

.hero-copy {
  position: relative;
  z-index: 1;
  width: 61%;
  margin: 0 0 95px 10.4%;
  padding-top: 42px;
}

.intro {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 36px 5px;
  color: var(--mist);
  font-size: 11px;
  letter-spacing: .045em;
}

.intro-line { width: 28px; height: 1px; background: var(--mist); }

h1 {
  position: relative;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(118px, 11.9vw, 208px);
  line-height: .82;
  font-weight: 400;
  letter-spacing: -.036em;
}

h1 span { display: inline-block; margin: 13px 0 0 15.2%; font-style: italic; }

.hero-description {
  margin: 38px 0 0 7px;
  color: var(--mist);
  font-size: 15px;
  font-weight: 300;
  line-height: 1.8;
  letter-spacing: -.01em;
}

.hero-art {
  position: absolute;
  z-index: -1;
  top: 44%;
  left: 66%;
  width: min(74vw, 1100px);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.hero-art img {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
  opacity: .87;
  animation: sculpture-arrives 1.8s ease-out both;
}

.art-halo {
  position: absolute;
  inset: 8%;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgb(121 155 126 / 11%), transparent 67%);
}

.hero-bottom {
  position: absolute;
  right: 6.1%;
  bottom: 36px;
  left: 6.1%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--mist);
  font-size: 11px;
}

.hero-bottom p { margin: 0; }
.scroll-link { display: flex; align-items: center; gap: 21px; padding: 10px 0 10px 16px; }
.scroll-link svg { transition: transform .25s ease; }
.scroll-link:hover svg { transform: translateY(4px); }

.outlook {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  align-items: center;
  gap: 10%;
  padding: 118px 10.4% 126px;
  background: var(--pine-deep);
}

.section-label { margin: 0 0 28px; color: var(--mist); font-size: 11px; letter-spacing: .04em; }
h2 { margin: 0; font-family: var(--serif); font-size: clamp(44px, 4.3vw, 68px); font-weight: 400; line-height: 1.07; letter-spacing: -.025em; }
.outlook-copy { padding-top: 37px; color: var(--mist); font-size: 14px; line-height: 1.9; }
.outlook-copy p { max-width: 360px; margin: 0 0 22px; }
.outlook-copy p:first-child { color: var(--silver); font-size: 16px; }
.outlook-signature { display: block; margin-top: 34px; font-family: var(--serif); font-size: 30px; font-style: italic; color: var(--silver); }

.footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 34px 6.1%;
  background: var(--pine-deep);
  border-top: 1px solid var(--rule);
  color: var(--mist);
  font-size: 10px;
}

.footer-note { font-family: var(--serif); font-style: italic; font-size: 18px; }
.back-top { display: flex; gap: 15px; align-items: center; padding: 8px 0; }
.back-top span { font-size: 17px; }

@keyframes sculpture-arrives {
  from { opacity: 0; transform: translateY(12px) rotate(-4deg); }
  to { opacity: .87; transform: translateY(0) rotate(0); }
}

@media (min-width: 1700px) {
  .hero { min-height: 900px; }
}

@media (max-width: 900px) {
  .header { height: 100px; }
  .hero { min-height: 760px; min-height: max(740px, calc(100svh - 100px)); }
  .hero-copy { width: 76%; margin-left: 8%; margin-bottom: 110px; }
  h1 { font-size: clamp(104px, 16vw, 148px); }
  .hero-art { width: 104vw; left: 76%; top: 46%; opacity: .7; }
  .outlook { gap: 8%; padding: 95px 8%; }
  .outlook-copy { font-size: 12px; }
  .outlook-copy p:first-child { font-size: 14px; }
  .footer-note { display: none; }
}

@media (max-width: 600px) {
  .header { height: 92px; margin: 0 7%; }
  .brand { gap: 10px; }
  .brand-mark { width: 29px; height: 29px; }
  .brand > span { font-size: 22px; }
  .brand-llc { font-size: 7px; margin-left: 6px; }
  .nav-link { gap: 9px; font-size: 10px; }
  .nav-link span { font-size: 16px; }
  .hero { min-height: 710px; min-height: max(680px, calc(100svh - 92px)); justify-content: flex-start; }
  .hero-copy { width: 88%; margin: 0 6%; padding-top: 75px; }
  .intro { margin: 0 0 37px 5px; font-size: 10px; gap: 12px; }
  h1 { font-size: clamp(90px, 25.6vw, 150px); line-height: .88; }
  h1 span { margin-top: 4px; margin-left: 17%; }
  .hero-description { margin: 29px 0 0 8px; font-size: 13px; }
  .hero-art { top: 68%; left: 79%; width: 153vw; opacity: .55; }
  .hero-bottom { left: 7%; right: 7%; bottom: 22px; font-size: 10px; }
  .outlook { grid-template-columns: 1fr; gap: 35px; padding: 74px 9% 80px; }
  .section-label { margin-bottom: 24px; }
  h2 { font-size: 47px; }
  .outlook-copy { padding-top: 0; font-size: 13px; }
  .outlook-copy p { max-width: 340px; margin-bottom: 20px; }
  .outlook-copy p:first-child { font-size: 15px; }
  .outlook-signature { margin-top: 30px; }
  .footer { padding: 25px 7%; font-size: 9px; gap: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
