/* uwloo.ca — one family (Archivo), its width axis does the expressive work. */
:root {
  --paper: #f2f3f0;
  --ink: #1d1f22;
  --muted: #595e66;
  --rule: #d3d6d0;
  --soft: #e5e7e2;
  --gold: #fdd54f;
  --gold-ink: #6b5000;
  --f-mat: #c60078;
  --f-eng: #57058b;
  --f-art: #b83700;
  --f-sci: #0033be;
  --f-env: #4c5d00;
  --f-hea: #00707c;
  --fac: var(--ink);
  --pad: clamp(1rem, 4vw, 2.5rem);
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark) {
  :root {
    --paper: #161719;
    --ink: #e7e8e4;
    --muted: #a2a7ae;
    --rule: #33363a;
    --soft: #222427;
    --gold-ink: #f3c93f;
    --f-mat: #ff5cb0;
    --f-eng: #c49bff;
    --f-art: #ff8c52;
    --f-sci: #8aa6ff;
    --f-env: #bccd52;
    --f-hea: #4fcad6;
  }
}
body.f-mat { --fac: var(--f-mat); }
body.f-eng { --fac: var(--f-eng); }
body.f-art { --fac: var(--f-art); }
body.f-sci { --fac: var(--f-sci); }
body.f-env { --fac: var(--f-env); }
body.f-hea { --fac: var(--f-hea); }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Archivo", "Helvetica Neue", Arial, system-ui, sans-serif;
  font-size: 1.0625rem;
  line-height: 1.55;
  font-stretch: 100%;
}
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; box-shadow: 0 0 0 6px var(--gold); }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
p, li, dd { max-width: 70ch; }

/* ---------- header ---------- */
.bar {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 0.7rem var(--pad);
  border-bottom: 1px solid var(--rule);
}
.mark {
  font-weight: 900;
  font-stretch: 62.5%;
  font-size: 1.6rem;
  line-height: 1;
  text-decoration: none;
  padding-bottom: 2px;
  border-bottom: 4px solid var(--gold);
}
.jump { display: flex; align-items: baseline; margin-left: auto; min-width: 0; font-stretch: 75%; font-weight: 600; }
.jump span { color: var(--muted); }
.jump input {
  font: inherit;
  color: var(--ink);
  background: transparent;
  border: 0;
  border-bottom: 2px solid var(--rule);
  width: 8.5rem;
  padding: 0.1rem 0.15rem;
}
.jump input:focus { border-bottom-color: var(--ink); outline: none; box-shadow: none; }

main { max-width: 62rem; margin: 0 auto; padding: 1.75rem var(--pad) 4rem; }
h1, h2, h3 { line-height: 1.15; }
h2 { font-size: 1.05rem; font-weight: 700; font-stretch: 87.5%; margin: 2.25rem 0 0.6rem; }

/* ---------- course page ---------- */
.course-head h1 { margin: 0; }
.code {
  display: block;
  color: var(--fac);
  font-weight: 850;
  font-stretch: 62.5%;
  font-size: clamp(4.25rem, 17vw, 9.5rem);
  line-height: 0.82;
  letter-spacing: -0.01em;
}
.title {
  display: block;
  margin-top: 0.6rem;
  font-size: clamp(1.35rem, 3.6vw, 1.9rem);
  font-weight: 600;
  font-stretch: 100%;
  line-height: 1.2;
  max-width: 30ch;
}
.facts { display: flex; flex-wrap: wrap; gap: 0.35rem 1.5rem; margin: 1rem 0 0; padding: 0; color: var(--muted); }
.facts div { display: flex; gap: 0.4rem; }
.facts dt { font-weight: 600; }
.facts dd { margin: 0; color: var(--ink); }
.gone-note { margin: 1rem 0 0; padding: 0.6rem 0.8rem; background: var(--soft); border-left: 4px solid var(--gold); }

/* The term strip: the one loud thing on the page. */
.terms { margin: 1.6rem 0 0; }
.strip { display: flex; flex-wrap: wrap; gap: 5px; list-style: none; margin: 0; padding: 0; }
.strip li {
  width: 3.4rem;
  padding: 0.45rem 0 0.4rem;
  text-align: center;
  border: 2px solid var(--rule);
  color: var(--muted);
  font-stretch: 75%;
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1;
}
.strip li.on { background: var(--fac); border-color: var(--fac); color: var(--paper); }
.strip li.tbd { border-style: dashed; }
.strip li.now { box-shadow: 0 5px 0 -1px var(--gold); }
.strip abbr { text-decoration: none; }
.strip-note { margin: 0.6rem 0 0; color: var(--muted); font-size: 0.95rem; }

.desc { margin-top: 1.6rem; font-size: 1.1rem; }

.reqs { margin-top: 0.5rem; }
@media (min-width: 54rem) {
  .reqs { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 0 3.5rem; }
}
.none { color: var(--muted); margin: 0; }

.req, .req ul { list-style: none; margin: 0; padding: 0; }
.req ul { margin: 0.25rem 0 0 0.35rem; padding-left: 0.95rem; border-left: 2px solid var(--rule); }
.req li { margin: 0.45rem 0; }
.req .lead { font-weight: 600; }
.cl { list-style: none; margin: 0.15rem 0 0; padding: 0; border: 0 !important; }
.req .cl li { margin: 0.12rem 0; }
.cc { font-weight: 750; font-stretch: 75%; white-space: nowrap; }
.cc.gone { color: var(--muted); font-weight: 600; }
.t { color: var(--muted); }
.leads { list-style: none; margin: 0; padding: 0; columns: 2 7.5rem; column-gap: 1.25rem; }
.leads li { margin: 0 0 0.2rem; break-inside: avoid; }

.notes { color: var(--ink); }

/* sections */
.scroll { overflow-x: auto; }
.sec { border-collapse: collapse; width: 100%; font-size: 0.95rem; font-variant-numeric: tabular-nums; }
.sec caption { text-align: left; color: var(--muted); padding-bottom: 0.5rem; }
.sec th { text-align: left; font-weight: 600; color: var(--muted); border-bottom: 2px solid var(--ink); padding: 0.35rem 1rem 0.35rem 0; white-space: nowrap; }
.sec td { padding: 0.45rem 1rem 0.45rem 0; border-bottom: 1px solid var(--rule); vertical-align: top; }
.sec td:first-child { font-weight: 700; font-stretch: 75%; white-space: nowrap; }
.sec td:last-child { white-space: nowrap; }
.seats { display: flex; align-items: center; gap: 0.5rem; white-space: nowrap; }
.meter { width: 3.5rem; height: 0.4rem; background: var(--soft); }
.meter i { display: block; height: 100%; background: var(--fac); }
.meter.full i { background: var(--ink); }

.out { list-style: none; margin: 0; padding: 0; }
.out li { padding: 0.5rem 0; border-top: 1px solid var(--rule); display: flex; flex-wrap: wrap; gap: 0 1rem; justify-content: space-between; }
.out li:last-child { border-bottom: 1px solid var(--rule); }
.out a { font-weight: 600; }
.out small { color: var(--muted); font-size: 0.9rem; }

.ver-h { font-size: 0.95rem; font-weight: 600; color: var(--muted); margin: 0.9rem 0 0.3rem; }
.versions { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.3rem 1.4rem; }
.versions li { margin: 0; }
.versions .changed { color: var(--gold-ink); font-weight: 600; }

/* ---------- calendar pages ---------- */
.cal-head h1 { margin: 0; font-size: clamp(2.2rem, 7vw, 3.75rem); font-weight: 850; font-stretch: 62.5%; line-height: 0.95; }
.cal-head p { margin: 0.5rem 0 0; color: var(--muted); }
.years { display: flex; flex-wrap: wrap; gap: 0.4rem 1.1rem; list-style: none; margin: 1.1rem 0 0; padding: 0; font-stretch: 87.5%; }
.years a[aria-current] { font-weight: 800; text-decoration: none; border-bottom: 3px solid var(--gold); }
/* Older Graduate Calendars: one row per academic year */
.older { margin: 0.85rem 0 0; }
.older summary { cursor: pointer; font-stretch: 87.5%; color: var(--muted); }
.older[open] summary { color: var(--ink); }
.tgrid { border-collapse: collapse; margin: 0.5rem 0 0; font-stretch: 87.5%; }
.tgrid th, .tgrid td { text-align: left; padding: 0.12rem 1.2rem 0.12rem 0; white-space: nowrap; }
.tgrid thead th { font-weight: 500; font-size: 0.88rem; color: var(--muted); }
.tgrid tbody th { font-weight: 600; color: var(--muted); }
.tgrid a[aria-current] { font-weight: 800; text-decoration: none; border-bottom: 3px solid var(--gold); }
.years a.no { color: var(--muted); }
.tgrid a { font-weight: 650; }
.tgrid a.no, .tgrid a.ext { color: var(--muted); font-weight: 450; text-decoration-color: var(--rule); }
.tgrid a.ext::after { content: "\2009↗"; font-size: 0.8em; }
.tstep { display: flex; flex-wrap: wrap; gap: 0.3rem 1.5rem; margin: 0.9rem 0 0; font-stretch: 87.5%; }
.older > .t { margin: 0.45rem 0 0; font-size: 0.9rem; max-width: 42rem; }
.topics { margin: 0.3rem 0 0; padding-left: 1.2rem; font-style: italic; }
.ver-old summary { cursor: pointer; }
.ver-old .versions { margin-top: 0.35rem; }
.nums { display: flex; flex-wrap: wrap; gap: 0.15rem 0.7rem; margin: 1.25rem 0 0.5rem; font-stretch: 75%; font-weight: 650; }
.nums + .nums { margin-top: 0.4rem; }
.nums-label { font-stretch: 87.5%; font-weight: 500; color: var(--muted); min-width: 7.5rem; }
.level { font-size: clamp(1.6rem, 4vw, 2.1rem); font-weight: 850; font-stretch: 62.5%; margin: 2.75rem 0 0.2rem; padding-top: 0.25rem; border-top: 4px solid var(--ink); }
.level-note { color: var(--muted); margin: 0 0 0.75rem; }
.nums + .level, .nums + .nums + .level { margin-top: 1.5rem; }
.entry { padding: 1.15rem 0 1.25rem; border-top: 1px solid var(--rule); scroll-margin-top: 1rem; }
.entry:target { background: linear-gradient(90deg, var(--soft), transparent); box-shadow: -0.6rem 0 0 var(--soft); }
.entry h2 { margin: 0 0 0.35rem; font-size: 1.12rem; font-stretch: 100%; font-weight: 650; display: flex; flex-wrap: wrap; gap: 0.2rem 0.7rem; align-items: baseline; }
.entry h2 .cc { font-size: 1.4rem; }
.entry h2 .u { margin-left: auto; color: var(--muted); font-weight: 500; font-size: 0.95rem; }
.entry p { margin: 0.3rem 0; }
.entry dl { margin: 0.8rem 0 0; font-size: 0.97rem; }
.entry dt { font-weight: 700; font-stretch: 87.5%; margin-top: 0.6rem; }
.entry dd { margin: 0.1rem 0 0; }
.entry .req > li { margin-top: 0.2rem; }
.entry-links { display: flex; flex-wrap: wrap; gap: 0.2rem 1.25rem; margin: 0.8rem 0 0; font-size: 0.9rem; }
.entry-links a { color: var(--muted); }
.entry-links a:hover { color: var(--ink); }
.cols { list-style: none; margin: 1.25rem 0 0; padding: 0; columns: 3 14rem; column-gap: 2rem; }
.cols li { break-inside: avoid; margin: 0 0 0.35rem; display: grid; grid-template-columns: 5rem minmax(0, 1fr) auto; gap: 0 0.5rem; align-items: baseline; }
.count { color: var(--muted); }

/* ---------- home ---------- */
.go { margin: clamp(1rem, 6vh, 4rem) 0 0; }
.go label { display: block; color: var(--muted); font-size: 1rem; margin-bottom: 0.4rem; }
.url {
  display: flex;
  align-items: baseline;
  font-weight: 850;
  font-stretch: 62.5%;
  font-size: clamp(2.6rem, 12vw, 7rem);
  line-height: 1;
  border-bottom: 6px solid var(--gold);
}
.url span { color: var(--muted); white-space: nowrap; }
.url input {
  font: inherit;
  color: var(--ink);
  background: transparent;
  border: 0;
  padding: 0;
  min-width: 0;
  width: 100%;
  caret-color: var(--gold-ink);
}
.url input::placeholder { color: var(--rule); }
.url:focus-within { border-bottom-color: var(--ink); }
.url input:focus { outline: none; box-shadow: none; }
.lede { font-size: 1.15rem; margin: 1rem 0 0; max-width: 46ch; }
.results { list-style: none; margin: 1.25rem 0 0; padding: 0; }
.results li a { display: flex; gap: 1rem; align-items: baseline; padding: 0.45rem 0.5rem; text-decoration: none; border-top: 1px solid var(--rule); }
.results li a .cc { min-width: 5.5rem; font-size: 1.15rem; }
.results li a[aria-selected="true"], .results li a:hover { background: var(--soft); }
.results .empty { color: var(--muted); padding: 0.5rem 0; }
.home-grid h2 { margin-top: 3rem; }

footer { max-width: 62rem; margin: 0 auto; padding: 1.25rem var(--pad) 3rem; color: var(--muted); font-size: 0.9rem; border-top: 1px solid var(--rule); }
footer p { margin: 0.25rem 0; }

@media (max-width: 34rem) {
  .jump span { display: none; }
  .jump input { width: 6.5rem; }
  .strip li { width: 3rem; font-size: 0.88rem; }
}
@media (prefers-reduced-motion: no-preference) {
  .strip li.on { animation: fill 420ms cubic-bezier(0.2, 0.7, 0.2, 1) both; animation-delay: calc(var(--i, 0) * 45ms); }
  @keyframes fill { from { background: transparent; color: var(--muted); border-color: var(--rule); } }
}

/* scanned years: faculty lists fold away */
.staff { margin: 0.4rem 0; color: var(--muted); }
.staff summary { cursor: pointer; font-weight: 600; }
.staff p { margin: 0.3rem 0; font-size: 0.92rem; }
.entry.listed h2 { margin-bottom: 0.1rem; }

/* r/uwaterloo discussions */
.rd-fold > summary { cursor: pointer; list-style: none; display: flex; align-items: baseline; gap: 0.45rem; margin: 2.25rem 0 0.6rem; }
.rd-fold > summary::-webkit-details-marker { display: none; }
.rd-fold > summary::before { content: "▸"; font-size: 0.95em; color: var(--muted); width: 0.8em; flex: none; }
.rd-fold[open] > summary::before { content: "▾"; }
.rd-fold > summary h2 { margin: 0; }
.rd-fold > summary + * { margin-top: 0.5rem; }
.flow-stats { display: flex; flex-wrap: wrap; gap: 0.3rem 1.4rem; margin: 0.2rem 0 0.4rem; font-stretch: 87.5%; }
.flow-stats b { font-size: 1.35rem; font-weight: 800; margin-right: 0.2rem; }
.flow-list { list-style: none; padding: 0; margin: 0.6rem 0 0; }
.flow-list li { padding: 0.55rem 0; border-top: 1px solid var(--rule); }
.flow-list .entry-links { margin: 0.3rem 0 0; }
.reddit .rd-term { font-size: 0.95rem; font-weight: 700; font-stretch: 87.5%; color: var(--muted); margin: 1.4rem 0 0.2rem; }
.rd { padding: 0.75rem 0 0.8rem; border-top: 1px solid var(--rule); }
.rd-head { margin: 0 0 0.35rem; }
.rd-head time { font-variant-numeric: tabular-nums; color: var(--muted); margin-right: 0.35rem; white-space: nowrap; }
.rd-head a { font-weight: 650; }
.rd-q { margin: 0.25rem 0; max-width: 68ch; padding-left: 0.8rem; border-left: 2px solid var(--rule); color: var(--muted); font-size: 0.97rem; }
.rd-q.rd-deep { margin-left: 0.8rem; }
.rd-q.rd-hit { color: var(--ink); border-left-color: var(--fac); }
.rd-user { font-weight: 600; font-stretch: 87.5%; color: inherit; }
.more { margin-top: 1rem; font: inherit; font-weight: 600; padding: 0.5rem 0.9rem; border: 2px solid var(--ink); background: transparent; color: var(--ink); cursor: pointer; }
.more:hover { background: var(--soft); }
.more:disabled { opacity: 0.6; cursor: progress; }

/* course resources: list on the course page */
.res-list { list-style: none; margin: 0; padding: 0; }
.res-item { padding: 0.75rem 0 0.8rem; border-top: 1px solid var(--rule); }
.res-item:last-child { border-bottom: 1px solid var(--rule); }
.res-line { margin: 0; display: flex; flex-wrap: wrap; gap: 0.1rem 0.6rem; align-items: baseline; }
.kind { font-size: 0.82rem; font-weight: 700; font-stretch: 87.5%; text-transform: uppercase; letter-spacing: 0.04em; color: var(--fac); }
.res-title { font-weight: 650; }
.res-meta { margin: 0.1rem 0 0; font-size: 0.95rem; }
.res-note p { margin: 0.35rem 0 0; font-size: 0.97rem; }
.res-item .entry-links { margin-top: 0.45rem; }
.res-foot { font-size: 0.92rem; margin: 0.7rem 0 0; }
.res-parts { list-style: none; margin: 0.4rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.15rem 1.1rem; font-size: 0.95rem; }
.res-parts .t { font-size: 0.88rem; }
.more-parts a { font-weight: 650; }

/* a set's parts, on its PDF pages */
.res-set { margin: 1.4rem 0 0; }
.res-set summary { cursor: pointer; margin-bottom: 0.4rem; }
.res-set summary h2 { display: inline; margin: 0; }
.res-set summary .t { font-size: 0.92rem; margin-left: 0.3rem; }
.set-list li > a { justify-self: start; }
.set-list { list-style: none; margin: 0; padding: 0; columns: 2 19rem; column-gap: 2rem; }
.set-list li { break-inside: avoid; display: grid; grid-template-columns: 1.9rem minmax(0, 1fr); gap: 0 0.3rem; margin: 0 0 0.25rem; }
.set-list li .t { grid-column: 2; font-size: 0.88rem; margin-top: -0.15rem; }
.set-list a[aria-current] { font-weight: 800; text-decoration: none; border-bottom: 3px solid var(--gold); }
.pn { font-weight: 750; font-stretch: 75%; font-variant-numeric: tabular-nums; color: var(--muted); }
.part-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0.3rem 1rem; margin-top: 1.6rem; }
.part-head h2 { margin: 0; font-size: 1.2rem; }
.part-head .pn { color: var(--fac); margin-right: 0.2rem; }
.part-nav { margin: 0; display: flex; gap: 1.2rem; font-weight: 600; }
.part-head + .viewer { margin-top: 0.4rem; }

/* resource page: notes on top, the PDF underneath */
.crumb { margin: 0; display: flex; flex-wrap: wrap; gap: 0.1rem 0.6rem; align-items: baseline; }
.crumb .cc { color: var(--fac); font-size: 1.25rem; }
.res-head h1 { margin: 0.35rem 0 0; font-size: clamp(2rem, 6vw, 3.4rem); font-weight: 850; font-stretch: 62.5%; line-height: 0.98; max-width: 24ch; }
.res-head .res-meta { margin-top: 0.5rem; color: var(--muted); font-size: 1rem; }
.res-notes a, .res-note a, .pnotes span { overflow-wrap: anywhere; }
.res-notes { margin: 1.25rem 0 0; padding: 0.9rem 1rem 1rem; background: var(--soft); border-left: 4px solid var(--fac); }
.res-notes > p { margin: 0 0 0.6rem; }
.res-notes h2 { margin: 0.9rem 0 0.3rem; font-size: 0.95rem; }
.pnotes { list-style: none; margin: 0 0 0.6rem; padding: 0; }
.pnotes li { display: grid; grid-template-columns: 3.6rem minmax(0, 1fr); gap: 0 0.5rem; margin: 0.15rem 0; }
.pnotes a { font-weight: 700; font-stretch: 75%; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cite { margin: 0.8rem 0 0.4rem; font-size: 0.93rem; }
.cite-label { font-weight: 700; font-stretch: 87.5%; margin-right: 0.3rem; }
.copy { font: inherit; font-size: 0.85rem; font-weight: 600; margin-left: 0.4rem; padding: 0.05rem 0.5rem; border: 1px solid var(--muted); background: transparent; color: var(--ink); cursor: pointer; }
.copy:hover { background: var(--paper); }
.res-notes .entry-links { margin-top: 0.5rem; }

.viewer { margin: 1.5rem 0 0; }
.vbar { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.4rem 0; background: var(--paper); border-bottom: 2px solid var(--ink); font-size: 0.95rem; }
.vpage-no { font-variant-numeric: tabular-nums; color: var(--muted); }
.vzoom { display: flex; gap: 0.25rem; }
.vzoom button { font: inherit; font-weight: 700; min-width: 2.2rem; padding: 0.15rem 0.5rem; border: 1px solid var(--rule); background: transparent; color: var(--ink); cursor: pointer; }
.vzoom button:hover { background: var(--soft); }
.vzoom button[aria-pressed="true"] { border-color: var(--ink); }
/* Block layout, not flex: a page zoomed wider than the screen then scrolls sideways from its left edge. */
.vpages { overflow-x: auto; padding: 0.75rem 0 0; }
.vpage { position: relative; box-sizing: content-box; margin: 0 auto 0.75rem; background: #fff; border: 1px solid var(--rule); box-shadow: 0 1px 3px rgb(0 0 0 / 0.12); --scale-round-x: 1px; --scale-round-y: 1px; scroll-margin-top: 3rem; }
.vpage canvas { display: block; width: 100%; height: 100%; }
.vmsg { color: var(--muted); }
.res-text { margin: 2rem 0 0; }
.res-text summary { cursor: pointer; font-weight: 650; }
.res-text h3 { font-size: 0.9rem; color: var(--muted); margin: 1.2rem 0 0.3rem; }
.res-text p { margin: 0.3rem 0; font-size: 0.95rem; }

/* PDF.js text layer (selectable text over each page), from pdfjs-dist's pdf_viewer.css */
.textLayer { position: absolute; text-align: initial; inset: 0; overflow: clip; opacity: 1; line-height: 1; letter-spacing: normal; word-spacing: normal; text-size-adjust: none; forced-color-adjust: none; transform-origin: 0 0; caret-color: CanvasText; z-index: 0; --min-font-size: 1; --text-scale-factor: calc(var(--total-scale-factor) * var(--min-font-size)); --min-font-size-inv: calc(1 / var(--min-font-size)); }
.textLayer :is(span, br) { color: transparent; position: absolute; white-space: pre; cursor: text; transform-origin: 0% 0%; user-select: text; }
.textLayer > :not(.markedContent), .textLayer .markedContent span:not(.markedContent) { z-index: 1; --font-height: 0; font-size: calc(var(--text-scale-factor) * var(--font-height)); --scale-x: 1; --rotate: 0deg; transform: rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv)); }
.textLayer .markedContent { display: contents; }
.textLayer span[role="img"] { user-select: none; cursor: default; }
.textLayer ::selection { background: rgb(0 0 255 / 0.25); background: color-mix(in srgb, AccentColor, transparent 50%); color: transparent; }
.textLayer br::selection { background: transparent; }
.textLayer .endOfContent { display: block; position: absolute; inset: 100% 0 0; z-index: 0; cursor: default; user-select: none; }
.textLayer.selecting .endOfContent { top: 0; }

/* links found around the web */
.found-h { font-size: 0.95rem; font-weight: 700; font-stretch: 87.5%; margin: 1.4rem 0 0.1rem; }
.found-note { margin: 0 0 0.4rem; font-size: 0.9rem; }
.found { list-style: none; margin: 0; padding: 0; }
.found li { padding: 0.4rem 0; border-top: 1px solid var(--rule); overflow-wrap: anywhere; }
.found .t { font-size: 0.9rem; }
.found .t a { color: inherit; }
.found-title { font-weight: 600; margin-right: 0.3rem; }
.found .rm { font-size: 0.8rem; color: var(--muted); margin-left: 0.4rem; }
.found-more summary { cursor: pointer; font-weight: 600; padding: 0.4rem 0; border-top: 1px solid var(--rule); }
.about h2 { margin-top: 1.8rem; }
.about pre { background: var(--soft); padding: 0.6rem 0.8rem; overflow-x: auto; }

/* courses no longer offered */
.course.retired .code { color: var(--muted); }
.mentions { list-style: none; margin: 0; padding: 0; }
.mentions li { margin: 0.2rem 0; }

.found-set summary { cursor: pointer; }
.found-set summary .found-title { font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
.found-parts { margin: 0.35rem 0 0.2rem; padding-left: 1.4rem; columns: 2 14rem; column-gap: 1.5rem; font-size: 0.95rem; }
.found-parts li { break-inside: avoid; margin: 0 0 0.15rem; }
.found-set > .rm { display: inline-block; margin-top: 0.2rem; }
.found-set > details > summary { font-size: 0.92rem; color: var(--muted); margin-top: 0.15rem; }
.found-set > details > summary:has(.found-title) { font-size: inherit; color: inherit; }

/* Retired pages: the scanned calendars, version by version */
.scan-src { margin: 0.45rem 0 0; font-size: 0.9rem; max-width: 42rem; }
.scan-ver { padding: 1rem 0 0.9rem; border-top: 1px solid var(--rule); max-width: 46rem; }
.scan-ver h3 { margin: 0 0 0.45rem; font-size: 1.05rem; }
.scan-ver h3 .t { margin-left: 0.45rem; font-size: 0.88rem; font-weight: 400; }
.scan-ver p { margin: 0.35rem 0; }
.scan-years { margin-top: 0.7rem; gap: 0.3rem 1.2rem; font-size: 0.93rem; }
.scan-years .pdf { font-size: 0.8rem; color: var(--muted); }
.scan-years sup { color: var(--muted); }
.scan-gap { margin: 0.4rem 0 1rem; font-style: italic; }
