/* Vandelay College.
 *
 * An ordinary stylesheet for an ordinary site, with one thing done on purpose:
 * the selectors below are broad. `button`, `p` and `a` are styled by element
 * rather than by class, the way a real institution's decade-old stylesheet
 * does. A page like this is exactly what a consent banner has to survive, and
 * the shadow root is what makes it survive -- none of this reaches inside.
 *
 * If the banner ever starts inheriting from here, the boundary has broken.
 */

:root {
  --ink: #1c1a17;
  --muted: #5d574e;
  --line: #ddd6ca;
  --paper: #fbf9f5;
  --crest: #6b2737;
  --crest-dark: #4d1c27;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 16px/1.65 Georgia, "Times New Roman", serif;
}

p { color: var(--muted); }
a { color: var(--crest); }

button,
.button {
  font: inherit;
  padding: 0.6rem 1.2rem;
  border: 1px solid var(--crest);
  border-radius: 2px;
  background: var(--crest);
  color: #fff;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
}

.wrap { max-width: 62rem; margin: 0 auto; padding: 0 1.5rem; }

header.masthead {
  border-bottom: 3px double var(--line);
  background: #fff;
}

.masthead .wrap {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1.5rem;
  padding-block: 1.25rem;
  flex-wrap: wrap;
}

.crest {
  font-size: 1.35rem;
  letter-spacing: 0.02em;
  color: var(--crest);
  text-decoration: none;
  font-weight: 700;
}

.crest small {
  display: block;
  font-size: 0.6rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 400;
}

nav a {
  margin-left: 1.25rem;
  text-decoration: none;
  font-size: 0.95rem;
}

nav a:hover { text-decoration: underline; }

.hero {
  padding-block: 4rem 3rem;
  border-bottom: 1px solid var(--line);
}

.hero h1 {
  font-size: clamp(2rem, 5vw, 3.25rem);
  line-height: 1.1;
  margin: 0 0 1rem;
  max-width: 20ch;
}

.hero p { font-size: 1.15rem; max-width: 55ch; }

main { padding-block: 3rem; }

h2 { font-size: 1.5rem; margin-top: 2.5rem; }

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

.card {
  border: 1px solid var(--line);
  background: #fff;
  padding: 1.25rem;
}

.card h3 { margin-top: 0; font-size: 1.1rem; }

table { border-collapse: collapse; width: 100%; margin-top: 1rem; }
th, td { text-align: left; padding: 0.6rem 0.75rem; border-bottom: 1px solid var(--line); vertical-align: top; }
th { font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }

code, .mono { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 0.85em; }

.inspector {
  border: 1px solid var(--line);
  background: #fff;
  padding: 1rem 1.25rem;
  margin-top: 1.5rem;
}

.inspector pre {
  margin: 0.35rem 0 1rem;
  padding: 0.75rem;
  background: #f4f1ea;
  overflow-x: auto;
  font-size: 0.8rem;
  white-space: pre-wrap;
  word-break: break-all;
}

.inspector h3 { margin: 0 0 0.25rem; font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }

label { display: block; margin-top: 1rem; font-size: 0.9rem; }
input, select {
  font: inherit;
  display: block;
  width: 100%;
  max-width: 28rem;
  margin-top: 0.3rem;
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--line);
  border-radius: 2px;
  background: #fff;
}

footer {
  border-top: 1px solid var(--line);
  margin-top: 4rem;
  padding-block: 2rem 3rem;
  font-size: 0.85rem;
  color: var(--muted);
}

footer a { margin-right: 1.25rem; }

.note {
  border-left: 3px solid var(--crest);
  padding: 0.25rem 0 0.25rem 1rem;
  margin: 1.5rem 0;
}

.placeholder {
  border: 1px dashed var(--line);
  padding: 2rem 1.25rem;
  text-align: center;
  background: #fff;
  color: var(--muted);
}
