/* ───── Variables & reset ───────────────────────── */
:root {
  --bg:      #ffffff;
  --text:    #000000;
  --gutter:  20px;
  --maxW:    800px;       /* shared container width  */
}

* { margin: 0; padding: 0; box-sizing: border-box; }

/* ───── Generic container helper ────────────────── */
.container {
  max-width: var(--maxW);
  margin:    0 auto;
  padding:   0 var(--gutter);
  width:     100%;
}

/* ───── Page base layout ────────────────────────── */
body {
  background: var(--bg);
  color:      var(--text);
  font-family: Helvetica, sans-serif;
  min-height: 100vh;
  display:    flex;
  justify-content: flex-start; /* left-aligned main column */
  align-items:     center;     /* vertically centred */
}

/* ───── Header & logo ───────────────────────────── */
header.site-header {
  position: absolute;
  top:  var(--gutter);
  left: var(--gutter);
}
.site-header .logo {
  font-size: 32px;
  text-decoration: none;
  color: var(--text);
}

/* ───── Hamburger toggle ────────────────────────── */
nav.menu-nav {
  position: absolute;
  top:  var(--gutter);
  right: var(--gutter);
  z-index: 1000;
}

.ham-menu {
  width: 30px;
  height: 22px;                    /* 3×4px bars + 2×5px gaps */
  position: relative;
  cursor: pointer;
}
.ham-menu span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 4px;
  background: var(--text);
  border-radius: 2px;
  transition: transform .3s ease, opacity .3s ease;
}
.ham-menu span:nth-child(1) { top: 0; }
.ham-menu span:nth-child(2) { top: 9px; }
.ham-menu span:nth-child(3) { bottom: 0; }

/* morph to ✕ */
.ham-menu.active span:nth-child(1) {
  transform: translateY(9px) rotate(45deg);
}
.ham-menu.active span:nth-child(2) { opacity: 0; }
.ham-menu.active span:nth-child(3) {
  transform: translateY(-9px) rotate(-45deg);
}

/* ───── Off-screen panel ────────────────────────── */
.off-screen-menu {
  position: fixed;
  top: 0;
  right: -450px;                 /* start hidden */
  width: 450px;
  height: 100%;
  background: var(--bg);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-size: 2rem;
  transition: right .3s ease;
}
.off-screen-menu ul { list-style: none; }
.off-screen-menu.active { right: 0; }

/* ───── Landing vertical nav ────────────────────── */
.landing-menu {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 30px;
  margin-top: 140px;  /* push below header */
  width: 532px;
}
.landing-menu a {
  font-size: 48px;
  line-height: 150%;
  color: var(--text);
  text-decoration: none;
}