/* decades -- museum labels on a dark wall.
 *
 * The portfolio has warm-grey tiles, a comparison table, a cream appraisal note,
 * a standings board, a lilac dial, a kraft docket, and one dark app already.
 * That one (restockme) is a cool blue-black console with neon green and red --
 * a monitoring screen. This is the opposite kind of dark: warm pine, brass, and
 * a lot of space, because the subject is old objects and a dark ground is how
 * you light them.
 *
 * script-src 'none' and style-src 'self': no client JavaScript, no inline style
 * attribute -- which is why timeline positions are bucket classes at the bottom
 * of this file rather than percentages.
 */

:root {
  --wall: #1b2420;
  --case: #212c27;
  --case-2: #26332d;
  --edge: #33423a;
  --ink: #ece7db;
  --soft: #a9b2a6;
  --faint: #778274;

  --brass: #c9973f;
  --brass-dim: #8a6a2c;
  --patina: #6fae95;
  --link: #d9ab5c;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--wall);
  color: var(--ink);
  font: 15px/1.55 ui-sans-serif, system-ui, "Segoe UI", Roboto, sans-serif;
}

h1 { font-size: 28px; font-weight: 600; line-height: 1.2; letter-spacing: -0.015em;
  margin: 0 0 14px; max-width: 22ch; }
h2 { font-size: 12px; font-weight: 650; letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--faint); margin: 28px 0 8px; }
p { margin: 0 0 12px; }
a { color: var(--link); }

main { max-width: 740px; margin: 0 auto; padding: 26px 18px 70px; }

/* ---------------------------------------------------------------- chrome */

.band { display: flex; align-items: baseline; gap: 16px; padding: 14px 18px;
  background: var(--case); border-bottom: 1px solid var(--edge); }
.stamp { font-size: 18px; font-weight: 640; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--brass); text-decoration: none; margin-right: auto; }
.band nav a { font-size: 12px; color: var(--faint); text-decoration: none; margin-left: 14px; }
.band nav a:hover { color: var(--ink); }

.ticker { margin: 0; padding: 9px 18px; font-size: 13px; background: var(--case-2);
  color: var(--soft); border-bottom: 1px solid var(--edge); }
.ticker.ok { color: var(--patina); }
.ticker.no { color: #e08a76; }

/* ------------------------------------------------------------ the labels */

.hunt { background: var(--case); border: 1px solid var(--edge); margin-bottom: 18px;
  padding: 16px 18px 12px; }
.hunthead { border-bottom: 1px solid var(--edge); padding-bottom: 12px; margin-bottom: 4px; }
.words { font-size: 17px; font-weight: 600; letter-spacing: 0; text-transform: none;
  color: var(--ink); margin: 0 0 8px; }
.chosen { margin: 0 0 6px; }
.chip { display: inline-block; font-size: 11px; letter-spacing: 0.04em; padding: 2px 8px;
  margin: 0 5px 5px 0; color: var(--brass); border: 1px solid var(--brass-dim); border-radius: 2px; }
.chip.cap { color: var(--soft); border-color: var(--edge); }
.cost { font-size: 11.5px; color: var(--faint); margin: 0; }

.labels { list-style: none; margin: 0; padding: 0; }
.label { display: grid; grid-template-columns: 7.5rem 1fr; gap: 16px; align-items: start;
  padding: 14px 0; border-bottom: 1px solid var(--edge); }
.label:last-of-type { border-bottom: 0; }

.era { font-size: 21px; font-weight: 640; letter-spacing: -0.01em; color: var(--brass);
  font-variant-numeric: tabular-nums; display: flex; flex-direction: column; gap: 3px; }
.vintage { font-size: 9.5px; font-style: normal; font-weight: 600; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--patina); }

.object { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.objtitle { font-size: 15.5px; font-weight: 550; color: var(--ink); text-decoration: none; }
a.objtitle:hover { text-decoration: underline; }
.prov { font-size: 12.5px; color: var(--soft); }

/* the timeline ---------------------------------------------------------- */

.tl { position: relative; display: block; height: 3px; margin-top: 7px; max-width: 22rem;
  background: linear-gradient(to right, var(--edge), var(--brass-dim)); border-radius: 2px; }
.pip { position: absolute; top: -3px; width: 3px; height: 9px; margin-left: -1px;
  background: var(--brass); border-radius: 1px; }

.sample { background: var(--case); border: 1px solid var(--edge); padding: 4px 18px;
  margin: 22px 0; }
.none { padding: 16px 0; font-size: 14px; color: var(--soft); }

/* ------------------------------------------------------------------ forms */

.cast { background: var(--case); border: 1px solid var(--edge); padding: 18px; margin-bottom: 20px; }
.cap { display: block; font-size: 11px; letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--faint); margin-bottom: 12px; }
label { display: block; font-size: 12px; color: var(--soft); margin-bottom: 12px; }
.opt { color: var(--faint); font-size: 11px; }
input[type="text"] { display: block; width: 100%; margin-top: 5px; padding: 9px 11px;
  font: inherit; font-size: 14px; color: var(--ink); background: var(--wall);
  border: 1px solid var(--edge); border-radius: 3px; }
input[type="text"]::placeholder { color: var(--faint); }
input:focus-visible { outline: none; border-color: var(--brass); }
:focus-visible { outline: 2px solid var(--brass); outline-offset: 2px; }

.two { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

.picker { border: 1px solid var(--edge); border-radius: 3px; padding: 12px 14px 8px;
  margin: 0 0 14px; }
.picker legend { font-size: 11px; letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--faint); padding: 0 6px; }
.tick { display: inline-flex; align-items: center; gap: 6px; margin: 0 14px 8px 0;
  font-size: 13px; color: var(--soft); }
.tick input { accent-color: var(--brass); }
.tick span { white-space: nowrap; }

.go { font: inherit; font-size: 14px; font-weight: 620; padding: 10px 18px; cursor: pointer;
  color: var(--wall); background: var(--brass); border: 0; border-radius: 3px;
  text-decoration: none; display: inline-block; }
.go:hover { background: #dda94f; }
.thin { font: inherit; font-size: 11.5px; background: none; border: 0; padding: 0;
  color: var(--link); cursor: pointer; text-decoration: underline; }
.thin.dim { color: var(--faint); }
.inline { display: inline; margin: 0; }

.count { font-size: 11px; letter-spacing: 0.11em; text-transform: uppercase;
  color: var(--faint); margin-bottom: 14px; }
.lede { font-size: 16.5px; color: var(--soft); max-width: 58ch; }
.aside { font-size: 12.5px; color: var(--faint); max-width: 66ch; }
.crumb { font-size: 12px; }
.enter { margin: 26px 0 10px; }

/* -------------------------------------------------------------- documents */

main.doc { background: var(--case); border: 1px solid var(--edge);
  padding: 28px 30px 36px; margin: 26px auto 70px; }
.doc h1 { max-width: none; }
.doc h2 { font-size: 15px; font-weight: 600; letter-spacing: 0; text-transform: none;
  color: var(--ink); margin: 26px 0 8px; }
.doc p, .doc li { color: var(--soft); }
.doc li { margin-bottom: 7px; }
.doc strong, .doc b { color: var(--ink); }
.doc ul { padding-left: 19px; }
.doc code { font-family: ui-monospace, Consolas, monospace; font-size: 0.88em;
  background: var(--wall); color: var(--brass); padding: 1px 5px; }
.doc .when { font-size: 12px; color: var(--faint); margin-top: -8px; }
.doc table { border-collapse: collapse; width: 100%; margin: 10px 0 18px; font-size: 13.5px; }
.doc th, .doc td { text-align: left; padding: 8px 10px; border: 1px solid var(--edge); color: var(--soft); }
.doc th { background: var(--case-2); color: var(--ink); font-weight: 620; }

/* ----------------------------------------------------------------- footer */

.plinth { border-top: 1px solid var(--edge); background: var(--case); padding: 18px; }
.plinth a { font-size: 12px; color: var(--faint); text-decoration: none; margin-right: 16px; }
.plinth a:hover { color: var(--ink); }
.plinth p { margin: 10px 0 0; font-size: 11px; color: var(--faint); max-width: 68ch; }

@media (max-width: 560px) {
  .label { grid-template-columns: 1fr; gap: 6px; }
  .era { flex-direction: row; align-items: baseline; gap: 8px; }
  .two { grid-template-columns: 1fr; }
  h1 { font-size: 23px; }
}

/* --- generated: 22 positions on the 1700-2030 timeline ------------------
   style-src 'self' forbids the inline style attribute, so every position a
   pip can take needs a class. 22 of them, the price of shipping zero JS. */

.b-0 { left: 0.0000%; }
.b-1 { left: 4.7619%; }
.b-2 { left: 9.5238%; }
.b-3 { left: 14.2857%; }
.b-4 { left: 19.0476%; }
.b-5 { left: 23.8095%; }
.b-6 { left: 28.5714%; }
.b-7 { left: 33.3333%; }
.b-8 { left: 38.0952%; }
.b-9 { left: 42.8571%; }
.b-10 { left: 47.6190%; }
.b-11 { left: 52.3810%; }
.b-12 { left: 57.1429%; }
.b-13 { left: 61.9048%; }
.b-14 { left: 66.6667%; }
.b-15 { left: 71.4286%; }
.b-16 { left: 76.1905%; }
.b-17 { left: 80.9524%; }
.b-18 { left: 85.7143%; }
.b-19 { left: 90.4762%; }
.b-20 { left: 95.2381%; }
.b-21 { left: 100.0000%; }
