/* Robin: shared site styles.
   Typography rule in force: the monospace face is reserved for genuinely
   small, data-ish labels only. Headings, subheadings, eyebrows and body copy
   are the serif display face or the sans text face, never mono. */

:root {
  --ground:   #F2EDE4;
  --ground-2: #EAE3D6;
  --card:     #FBF9F5;
  --ink:      #201C17;
  --ink-2:    #5F584F;
  --ink-3:    #8C8479;
  --accent:   #A8482553;
  --accent:   #A84825;
  --line:     rgba(32,28,23,.15);
  --display: 'Iowan Old Style', 'Charter', 'Palatino Linotype', Georgia, serif;
  --body:    -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--ground); color: var(--ink);
  font-family: var(--body); -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
a { color: inherit; }

/* ── film grain, shared across every page so they feel like one stock ── */
.grain {
  position: fixed; inset: 0; z-index: 90; pointer-events: none;
  opacity: .12; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='150' height='150'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/></filter><rect width='150' height='150' filter='url(%23n)' opacity='.5'/></svg>");
}

/* ── top bar ── */
.bar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 70;
  display: flex; align-items: center; gap: 14px;
  padding: 16px 28px;
}
.bar::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(to bottom, var(--ground) 30%, rgba(242,237,228,0));
}
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.brand img { width: 44px; height: 44px; display: block; }
.brand b {
  font-family: var(--display); font-weight: 400; font-size: 34px;
  line-height: 1; letter-spacing: -.005em;
}
@media (max-width: 760px) {
  .brand img { width: 34px; height: 34px; }
  .brand b { font-size: 26px; }
}
.bar nav { margin-left: auto; display: flex; align-items: center; gap: 6px; }
.btn {
  font-size: 12.5px; letter-spacing: .01em; text-decoration: none;
  padding: 9px 14px; border-radius: 3px; white-space: nowrap;
  border: 1px solid transparent; color: var(--ink-2);
}
.btn:hover { color: var(--ink); }
.btn--line { border-color: var(--line); color: var(--ink); }
.btn--solid { background: var(--ink); color: #fff; border-color: var(--ink); }
.btn--g { border-color: var(--line); color: var(--ink); display: inline-flex; align-items: center; gap: 7px; }
.btn--g svg { width: 14px; height: 14px; display: block; }
@media (max-width: 900px) {
  .bar { padding: 12px 16px; gap: 8px; }
  .bar nav .hide-sm { display: none; }
}

/* ── shared type ── */
.eyebrow {
  font-size: 11px; letter-spacing: .19em; text-transform: uppercase;
  color: var(--accent); font-weight: 600; margin: 0 0 16px;
  display: flex; align-items: center; gap: 10px;
}
.eyebrow i { width: 24px; height: 1px; background: var(--accent); display: block; }

h1, h2, h3 { font-family: var(--display); font-weight: 400; letter-spacing: -.018em; }
h1 { font-size: clamp(32px, 3.6vw, 48px); line-height: 1.12; margin: 0 0 20px; }
h2 { font-size: clamp(25px, 2.6vw, 35px); line-height: 1.17; margin: 0 0 18px; }
h3 { font-size: 20px; line-height: 1.3; margin: 0 0 10px; }
p  { line-height: 1.66; }
.lede { font-size: 17px; line-height: 1.62; color: var(--ink-2); margin: 0; }

/* ── footer, shared ── */
.foot {
  border-top: 1px solid var(--line); background: var(--ground-2);
  padding: 54px clamp(20px, 5vw, 70px) 40px;
}
.foot-in {
  max-width: 1180px; margin-inline: auto;
  display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 34px;
}
@media (max-width: 820px) { .foot-in { grid-template-columns: 1fr 1fr; } }
.foot h4 {
  font-family: var(--body); font-size: 10.5px; letter-spacing: .16em;
  text-transform: uppercase; color: var(--ink-3); margin: 0 0 14px; font-weight: 600;
}
.foot ul { list-style: none; margin: 0; padding: 0; }
.foot li { margin-bottom: 9px; }
.foot a { font-size: 14px; text-decoration: none; color: var(--ink-2); }
.foot a:hover { color: var(--ink); text-decoration: underline; }
.foot-note {
  max-width: 1180px; margin: 40px auto 0; padding-top: 20px;
  border-top: 1px solid var(--line);
  font-size: 12.5px; color: var(--ink-3);
  display: flex; gap: 16px; flex-wrap: wrap; align-items: center;
}

/* The sign-off, under the legal line and quieter than it. Centred because it
   is an aside to the whole page rather than the end of the row above. */
.foot-made {
  max-width: 1180px;
  margin: 18px auto 0;
  text-align: center;
  font-size: 12.5px;
  color: var(--ink-3);
  letter-spacing: 0.01em;
}

/* ── interior page shell ── */
.page { padding: 132px clamp(20px, 5vw, 70px) 90px; }
.page-in { max-width: 760px; margin-inline: auto; }
.page-in--wide { max-width: 1080px; }
.page-in p { color: var(--ink-2); margin: 0 0 18px; }
.page-in h2 { margin-top: 46px; }
.page-in ul { color: var(--ink-2); line-height: 1.75; padding-left: 20px; }
.page-hero-note { font-size: 17px; line-height: 1.6; color: var(--ink-2); margin: 0 0 8px; }

.placeholder {
  border: 1px dashed var(--line); background: var(--card);
  padding: 12px 15px; font-size: 13px; color: var(--ink-3);
  margin: 0 0 32px; border-radius: 3px;
}

.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px,1fr)); gap: 22px; margin-top: 30px; }
.card {
  background: var(--card); border: 1px solid var(--line); border-radius: 4px;
  padding: 20px;
}
.card p { font-size: 14.5px; margin: 0; }
.avatar {
  width: 100%; aspect-ratio: 1; border-radius: 3px; margin-bottom: 14px;
  background:
    radial-gradient(ellipse 70% 60% at 50% 42%, rgba(168,72,37,.14), transparent 70%),
    var(--ground-2);
  display: grid; place-items: center;
}
.avatar img { width: 56%; height: auto; opacity: .85; }
.role { font-size: 12.5px; color: var(--ink-3); margin-top: 4px; }
