:root {
  --sand: #e5dfd6;
  --paper: #faf9f6;
  --forest: #656a5d;
  --ink: #2f3633;
  --muted: #68726e;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }

body {
  background: var(--paper);
  color: var(--ink);
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  text-rendering: optimizeLegibility;
}

main { min-height: 100svh; }

.site-header {
  min-height: 176px;
  padding: 34px clamp(32px, 8vw, 140px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 48px;
  border-bottom: 1px solid rgba(101, 106, 93, .1);
  background: var(--sand);
}

.v77-logo {
  display: block;
  width: clamp(168px, 18vw, 275px);
  max-height: 90px;
}

.swissroc-logo {
  display: block;
  width: clamp(190px, 20vw, 305px);
  height: auto;
  mix-blend-mode: multiply;
}

.project-image {
  height: clamp(260px, 36vw, 500px);
  margin: 0;
  overflow: hidden;
  background: var(--sand);
}

.project-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 55%;
}

.message {
  padding: clamp(70px, 10vh, 112px) clamp(32px, 8vw, 140px) 90px;
  display: flex;
  align-items: flex-start;
}

.message-inner { max-width: 930px; }

h1 {
  margin: 0;
  color: var(--forest);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(48px, 6vw, 86px);
  font-weight: 400;
  line-height: 1.03;
  letter-spacing: -.035em;
}

.introduction {
  margin: clamp(35px, 5vh, 52px) 0 0;
  max-width: 690px;
  color: var(--muted);
  font-size: clamp(18px, 1.65vw, 24px);
  font-weight: 300;
  line-height: 1.55;
}

a {
  width: fit-content;
  margin-top: clamp(42px, 6vh, 62px);
  padding: 15px 19px 15px 21px;
  display: inline-flex;
  align-items: center;
  gap: 42px;
  border: 1px solid var(--forest);
  color: var(--forest);
  font-size: 15px;
  font-weight: 400;
  text-decoration: none;
  transition: background .2s ease, color .2s ease;
}

a span:last-child { font-size: 21px; line-height: 1; }
a:hover, a:focus-visible { background: var(--forest); color: var(--paper); }
a:focus-visible { outline: 2px solid var(--forest); outline-offset: 4px; }

@media (max-width: 700px) {
  .site-header { min-height: 140px; padding: 28px 22px; gap: 25px; }
  .v77-logo, .swissroc-logo { width: 44%; }
  .project-image { height: 280px; }
  .message { padding: 58px 24px 60px; }
  h1 { font-size: clamp(43px, 13vw, 60px); line-height: 1.02; }
  .introduction { margin-top: 32px; font-size: 18px; }
  a { margin-top: 42px; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
}
