/* Shared structure. Each theme file layers its look on top of this. */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; line-height: 1.55; }
img { max-width: 100%; }

#page { max-width: 860px; margin: 0 auto; padding: 24px 16px 64px; }

/* Sidebar sections render inline (in markdown order) unless a theme lays them out. */
#resume { display: flex; flex-direction: column; }
#side, #primary { display: contents; }

.contact { display: flex; flex-wrap: wrap; gap: 4px 10px; margin: 0; }
.contact .sep { opacity: .5; }

.entry-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0 16px; }
.entry-head h3 { margin: 0; }
.entry-head .date { margin: 0; white-space: nowrap; }
.role::before { content: ", "; }

.print {
  margin-top: 16px; font: inherit; font-size: 14px; cursor: pointer;
  padding: 6px 14px; border-radius: 6px; border: 1px solid currentColor;
  background: transparent; color: inherit;
}

@media print {
  .print { display: none !important; }
  #page { padding: 0; max-width: none; }
  .entry { break-inside: avoid; }
  a { color: inherit !important; text-decoration: none !important; }
}
