:root {
  --logo: url("data:image/svg+xml,%3Csvg width=%22310px%22 height=%22252px%22 viewBox=%220 0 310 252%22 version=%221.1%22 xmlns=%22http://www.w3.org/2000/svg%22 xmlns:xlink=%22http://www.w3.org/1999/xlink%22%3E%3Cg id=%22Page-1%22 stroke=%22none%22 stroke-width=%221%22 fill=%22none%22 fill-rule=%22evenodd%22%3E%3Cg id=%22RectangleVersion%22 transform=%22translate(6.000000, 6.000000)%22%3E%3Cg id=%22Combined-Shape-3%22 transform=%22translate(25.000000, 23.000000)%22 fill=%22%23000000%22 fill-rule=%22nonzero%22%3E%3Cpath d=%22M133.27034,161.644 L133.27034,182.896 C133.27034,186.484 135.24834,188.922 139.02034,188.922 C142.79234,188.922 144.77034,186.484 144.77034,182.896 L144.77034,182.896 L144.77034,161.644 L151.39434,161.644 L151.39434,183.264 C151.39434,190.854 146.10434,194.948 139.02034,194.948 C131.93634,194.948 126.69234,190.854 126.69234,183.264 L126.69234,183.264 L126.69234,161.644 L133.27034,161.644 Z M228.742851,161 C238.494851,161 245.762851,167.992 245.762851,177.744 C245.762851,187.496 238.632851,194.672 228.742851,194.672 C218.852851,194.672 211.722851,187.496 211.722851,177.744 C211.722851,167.992 219.082851,161 228.742851,161 Z M79.742,161 C85.814,161 89.448,164.588 91.104,167.9 L91.104,167.9 L85.952,170.844 C84.572,168.544 82.594,166.658 79.742,166.658 C77.166,166.658 75.878,168.038 75.878,169.648 C75.878,172.04 78.27,173.374 83.1,175.03 C87.286,176.502 91.288,179.4 91.288,184.828 C91.288,191.084 85.768,194.672 79.972,194.672 C73.992,194.672 69.116,190.992 67,186.392 L67,186.392 L71.784,182.988 C73.808,186.576 76.43,188.968 79.88,188.968 C82.548,188.968 84.296,187.496 84.296,185.196 C84.296,182.252 81.996,181.24 77.672,179.584 C74.452,178.388 69.07,176.088 69.07,169.924 C69.07,164.496 73.716,161 79.742,161 Z M203.680681,161.644 L203.680681,193.844 L196.964681,193.844 L196.964681,161.644 L203.680681,161.644 Z M171.994511,161.644 C182.206511,161.644 188.922511,167.946 188.922511,177.744 C188.922511,187.542 182.206511,193.844 171.994511,193.844 L171.994511,193.844 L161.046511,193.844 L161.046511,161.644 Z M120.26017,161.644 L120.26017,167.624 L111.56617,167.624 L111.56617,193.844 L104.94217,193.844 L104.94217,167.624 L96.2941702,167.624 L96.2941702,161.644 L120.26017,161.644 Z M228.742851,167.164 C222.808851,167.164 218.714851,171.58 218.714851,177.744 C218.714851,183.908 222.808851,188.324 228.742851,188.324 C234.676851,188.324 238.770851,183.908 238.770851,177.744 C238.770851,171.58 234.814851,167.164 228.742851,167.164 Z M171.810511,167.67 L167.854511,167.67 L167.854511,187.818 L171.810511,187.818 C177.468511,187.818 182.114511,184.828 182.114511,177.744 C182.114511,170.66 177.468511,167.67 171.810511,167.67 L171.810511,167.67 Z M25.8,98.36 C33.6,98.36 40.44,101.6 44.76,107.6 L44.76,107.6 L44.76,99.56 L64.56,99.56 L64.56,153.56 C64.56,175.64 51,183.8 33.24,183.8 C11.16,183.8 2.88,173.6 1.2,158.84 L1.2,158.84 L21.24,158.84 C21.96,165.32 26.28,167.48 32.28,167.48 C39.72,167.48 44.76,162.68 44.76,153.56 L44.76,153.56 L44.76,144.8 C40.44,150.8 33.6,154.04 25.8,154.04 C12.84,154.04 -1.13686838e-13,145.04 -1.13686838e-13,126.2 C-1.13686838e-13,107.36 12.84,98.36 25.8,98.36 Z M134.48,98.36 C142.28,98.36 149.12,101.84 153.44,108.2 L153.44,108.2 L153.44,99.56 L174.2,99.56 L174.2,154.76 L153.44,154.76 L153.44,146.12 C149.12,152.48 142.28,155.96 134.48,155.96 C121.52,155.96 108.68,146 108.68,127.16 C108.68,108.32 121.52,98.36 134.48,98.36 Z M104.44,98.12 C108.4,98.12 112.6,100.28 114.28,102.92 L114.28,102.92 L105.52,120.92 C103.84,119 101.68,117.56 98.56,117.56 C93.76,117.56 89.8,121.52 89.8,129.44 L89.8,129.44 L89.8,154.76 L69.4,154.76 L69.4,99.56 L89.8,99.56 L89.8,106.64 C93.4,101.36 98.8,98.12 104.44,98.12 Z M203.52,59 C212.477143,59 217.382946,62.9355867 220.170065,65.3498542 L220.32,65.48 L212.4,80.36 C210.84,78.44 209.04,77.36 206.88,77.36 C203.355,77.36 201.210625,79.5459896 201.122806,84.3685894 L201.12,84.68 L201.12,99.56 L218.44,99.56 L218.44,80.36 L238.36,80.36 L238.36,99.56 L248.2,99.56 L248.2,116.36 L238.36,116.36 L238.36,154.76 L218.44,154.76 L218.44,116.36 L201.12,116.36 L201.12,154.76 L181.32,154.76 L181.32,79.16 C181.32,67.04 188.64,59 203.52,59 Z M142.16,114.68 C135.92,114.68 130.64,119.72 130.64,127.16 C130.64,134.6 135.92,139.64 142.16,139.64 C147.68,139.64 153.44,135.08 153.44,127.16 C153.44,119.24 147.68,114.68 142.16,114.68 Z M33.48,114.68 C27.24,114.68 21.96,118.76 21.96,126.2 C21.96,133.64 27.24,137.72 33.48,137.72 C39,137.72 44.76,134.12 44.76,126.2 C44.76,118.28 39,114.68 33.48,114.68 Z M146.408663,36 C165.79096,36 176.416196,45.6833333 176.416196,63.0666667 C176.416196,64.9333333 176.532957,66.8 176.299435,68.2 L176.299435,68.2 L135.666667,68.2 C136.717514,74.5 140.453861,78 146.408663,78 C152.246704,78 156.216573,76.0166667 158.551789,71.9333333 L158.551789,71.9333333 L177,75.4333333 C171.161959,86.5166667 161.354049,92 147.109228,92 C127.026365,92 115,81.2666667 115,64 C115,46.5 126.792844,36 146.408663,36 Z M88,0 L88,90.835443 L67.7216117,90.835443 L67.7216117,82.4506329 C63.5018315,88.6227848 56.8205128,92 49.2014652,92 C36.5421245,92 24,82.3341772 24,64.0506329 C24,45.7670886 36.5421245,36.1012658 49.2014652,36.1012658 C56.8205128,36.1012658 63.5018315,39.478481 67.7216117,45.6506329 L67.7216117,45.6506329 L67.7216117,0 L88,0 Z M113,0 L113,91 L93,91 L93,0 L113,0 Z M22,37 L22,91 L2,91 L2,37 L22,37 Z M57.1157895,52 C51.0947368,52 46,56.8461538 46,64 C46,71.1538462 51.0947368,76 57.1157895,76 C62.4421053,76 68,71.6153846 68,64 C68,56.3846154 62.4421053,52 57.1157895,52 Z M146.08642,49 C140.574074,49 137.290123,51.9220779 136,58 L136,58 L155,58 C154.530864,52.3896104 151.246914,49 146.08642,49 Z M11.5,8 C17.8367347,8 23,12.2234637 23,18.5586592 C23,24.8938547 17.8367347,29 11.5,29 C5.16326531,29 0,24.8938547 0,18.5586592 C0,12.2234637 5.16326531,8 11.5,8 Z%22 id=%22Combined-Shape%22%3E%3C/path%3E%3C/g%3E%3Crect id=%22Rectangle%22 stroke=%22%23000000%22 stroke-width=%2211%22 fill-opacity=%220%22 fill=%22%23D8D8D8%22 x=%220%22 y=%220%22 width=%22298%22 height=%22240%22%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  --bg: #fbfaf8;
  --fg: #1c1c1c;
  --muted: #6b6b6b;
  --rule: #e4e2de;
  --accent: #3f6b4f;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #141414;
    --fg: #e8e6e3;
    --muted: #9a9894;
    --rule: #2a2a2a;
    --accent: #8fbf9f;
  }
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-size: 18px;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

.wrap {
  max-width: 38rem;
  margin: 0 auto;
  padding: 3rem 1.5rem;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 4rem;
}

/* Logo (igs-futura-rect.svg, embedded so it also works when opened from disk),
   drawn as a mask so it follows the text colour in light and dark mode */
.brand {
  display: block;
  width: 5.5rem;
  aspect-ratio: 310 / 252;
  background: var(--fg);
  -webkit-mask: var(--logo) center / contain no-repeat;
  mask: var(--logo) center / contain no-repeat;
}

nav a {
  color: var(--muted);
  text-decoration: none;
  margin-left: 1.25rem;
}

nav a:hover,
nav a[aria-current="page"] {
  color: var(--fg);
}

main {
  flex: 1;
}

h1 {
  font-size: 1.75rem;
  line-height: 1.25;
  letter-spacing: -0.02em;
  font-weight: 600;
  margin: 0 0 1.5rem;
}

h2 {
  font-size: 1rem;
  font-weight: 600;
  margin: 0;
}

p {
  margin: 0 0 1rem;
}

a {
  color: var(--accent);
}

.muted {
  color: var(--muted);
}

.projects {
  padding: 0;
  margin: 2rem 0 0;
  list-style: none;
}

.projects li,
.projects dd {
  margin: 0.25rem 0 1.75rem;
}

.projects dt {
  font-weight: 600;
}

.projects dt .tag {
  font-size: inherit;
}

.project-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
}

.tag {
  font-size: 0.8rem;
  font-weight: 400;
  color: var(--muted);
  white-space: nowrap;
}

.projects p {
  margin: 0.25rem 0 0;
  color: var(--muted);
}

footer {
  margin-top: 4rem;
  font-size: 0.85rem;
  color: var(--muted);
}

.gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
  gap: 2rem;
  margin-top: 2rem;
}

.gallery figure {
  margin: 0;
}

.gallery img {
  display: block;
  width: 100%;
  height: auto;
  background: var(--rule);
}

.gallery figcaption {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  margin-top: 0.5rem;
  font-size: 0.9rem;
}

.projects audio,
.projects iframe {
  display: block;
  width: 100%;
  margin-top: 0.75rem;
  border: 0;
}

/* Long-form text pages (e.g. privacy policies) */
.prose h2 {
  margin: 2.5rem 0 0.75rem;
}

.prose ul {
  margin: 0 0 1rem;
  padding-left: 1.25rem;
}

.prose li {
  margin-bottom: 0.4rem;
}

.prose table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 1rem;
}

.prose th,
.prose td {
  text-align: left;
  vertical-align: top;
  padding: 0.5rem 1rem 0.5rem 0;
  border-bottom: 1px solid var(--rule);
}

.prose th {
  font-weight: 600;
}
