/* Resume templates. Everything is scoped to .rs so it can be embedded in any page.
   The paper is always light (it represents printed output), even in dark mode. */

.rs {
  --rs-ink: #1b1b1f;
  --rs-muted: #4a4a52;
  --rs-rule: #c9c9cf;
  box-sizing: border-box;
  color: var(--rs-ink);
  background: #fff;
  font-family: "Helvetica Neue", Helvetica, Arial, "Liberation Sans", sans-serif;
  font-size: calc(10.5pt * var(--rs-scale, 1));
  line-height: 1.38;
  text-align: left;
  overflow-wrap: break-word;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
.rs *, .rs *::before, .rs *::after { box-sizing: border-box; }
.rs p, .rs ul, .rs h2, .rs h3, .rs h4, .rs h5 { margin: 0; padding: 0; }
/* Heading baseline owned by the templates (independent of the site's heading styles). */
:where(.rs h2, .rs h3, .rs h4, .rs h5) { line-height: 1.2; letter-spacing: -.01em; }
.rs a { color: inherit; text-decoration: none; }
.rs-placeholder { color: #a0a0a8; }

/* Sheet: the article is the page in previews; padding mirrors @page margins. */
.sheet .rs, .paper .rs {
  width: var(--rs-w, 210mm);
  min-height: var(--rs-h, 297mm);
  padding: var(--rs-mv, 16mm) var(--rs-mh, 18mm);
  box-shadow: 0 1px 2px rgba(0,0,0,.08), 0 8px 28px rgba(0,0,0,.12);
}

/* ---------- shared structure ---------- */
.rs-head { margin-bottom: 1.1em; }
.rs-name { font-size: 2.15em; font-weight: 700; line-height: 1.1; letter-spacing: .01em; }
.rs-title { font-size: 1.12em; color: var(--rs-muted); margin-top: .25em; }
.rs-contact { font-size: .92em; color: var(--rs-muted); margin-top: .45em; }
.rs-contact a { text-decoration: none; }
.rs-dot { color: #9a9aa2; }

.rs-sec { margin-top: 1.05em; }
.rs-h {
  font-size: .98em; font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
  padding-bottom: .2em; margin-bottom: .55em; border-bottom: 1px solid var(--rs-accent);
  break-after: avoid; page-break-after: avoid;
}
.rs-item { margin-bottom: .75em; break-inside: avoid; page-break-inside: avoid; }
.rs-item:last-child { margin-bottom: 0; }
.rs-item-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0 1em; break-after: avoid; }
.rs-item-title { font-size: 1em; font-weight: 400; }
.rs-role { font-weight: 700; }
.rs-meta { color: var(--rs-muted); font-size: .92em; white-space: nowrap; }
.rs-text { margin-top: .2em; }
.rs-summary { margin-top: 0; }
.rs-details { color: #2b2b31; }
/* .rs prefix so this beats the `.rs ul` reset; otherwise bullet markers hang outside the text box and are clipped in print. */
.rs .rs-bullets { margin: .3em 0 0 1.15em; padding: 0; }
.rs-bullets li { margin: .14em 0; padding-left: .15em; }
.rs-list { list-style: none; margin: 0; padding: 0; }
.rs-list li { margin: .18em 0; break-inside: avoid; }
.rs-cert-meta { color: var(--rs-muted); }
.rs-skills { display: grid; gap: .25em; }
.rs-skill { break-inside: avoid; }
.rs-skill-group { font-weight: 700; }
.rs-footer { margin-top: 2.2em; text-align: center; font-size: .72em; color: #9a9aa2; letter-spacing: .02em; }

/* ---------- Classic ---------- */
.rs--classic .rs-head { text-align: center; }
.rs--classic .rs-name { letter-spacing: .03em; }

/* ---------- Modern ---------- */
.rs--modern {
  font-family: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
}
.rs--modern .rs-head { border-bottom: 3px solid var(--rs-accent); padding-bottom: .8em; }
.rs--modern .rs-name { color: var(--rs-accent); font-size: 2.35em; font-weight: 750; letter-spacing: -.01em; }
.rs--modern .rs-title { color: var(--rs-ink); font-weight: 500; }
.rs--modern .rs-h {
  color: var(--rs-accent); border-bottom: 0; padding: 0 0 0 .55em; border-left: 3px solid var(--rs-accent);
  letter-spacing: .1em; font-size: .95em;
}
.rs--modern .rs-org { color: var(--rs-ink); }
.rs--modern .rs-bullets li::marker { color: var(--rs-accent); }

/* ---------- Compact ---------- */
.rs--compact {
  font-family: Arial, "Helvetica Neue", Helvetica, "Liberation Sans", sans-serif;
  font-size: calc(9.4pt * var(--rs-scale, 1));
  line-height: 1.28;
}
.rs--compact .rs-head { margin-bottom: .6em; display: flex; flex-wrap: wrap; align-items: baseline; gap: .1em .8em; }
.rs--compact .rs-name { font-size: 1.85em; }
.rs--compact .rs-title { font-size: 1.05em; margin: 0; color: var(--rs-accent); font-weight: 700; }
.rs--compact .rs-contact { flex-basis: 100%; margin-top: .2em; }
.rs--compact .rs-sec { margin-top: .6em; }
.rs--compact .rs-h {
  font-size: .86em; letter-spacing: .12em; color: var(--rs-accent); border-bottom-color: var(--rs-rule);
  margin-bottom: .35em; padding-bottom: .12em;
}
.rs--compact .rs-item { margin-bottom: .45em; }
.rs--compact .rs-bullets { margin-top: .12em; }
.rs--compact .rs-bullets li { margin: .05em 0; }
.rs--compact .rs-skills { gap: .1em; }

/* ---------- Elegant ---------- */
.rs--elegant {
  font-family: "Gill Sans", "Gill Sans MT", Calibri, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  line-height: 1.45;
}
.rs--elegant .rs-name, .rs--elegant .rs-h, .rs--elegant .rs-title, .rs--elegant .rs-role {
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;
}
.rs--elegant .rs-head { text-align: center; padding-bottom: .9em; border-bottom: 3px double var(--rs-accent); }
.rs--elegant .rs-name { font-weight: 400; font-size: 2.5em; letter-spacing: .06em; }
.rs--elegant .rs-title { font-style: italic; font-size: 1.15em; }
.rs--elegant .rs-sec { margin-top: 1.25em; }
.rs--elegant .rs-h {
  display: flex; align-items: center; gap: .6em; border: 0; padding: 0;
  font-weight: 400; font-size: 1.2em; text-transform: none; letter-spacing: .04em; color: var(--rs-accent);
  font-variant: small-caps;
}
.rs--elegant .rs-h::after { content: ""; flex: 1; border-top: 1px solid var(--rs-rule); }
.rs--elegant .rs-role { font-weight: 600; font-size: 1.05em; }

/* ---------- Cover letter ---------- */
.rs--letter .rs-letter { margin-top: 1.4em; }
.rs--letter .rs-letter .rs-text { margin-top: .9em; }
.rs--letter .rs-letter .rs-letter-date { margin-top: 0; }
.rs--letter .rs-letter .rs-letter-sign { margin-top: 2.2em; font-weight: 700; }
.rs--letter .rs-letter .rs-letter-close { margin-top: 1.2em; }
