/* The lens on the optical bench: thin lines on a warm white page, the rays in the one accent. */
:root {
  --page: #f3f0e8;          /* the page */
  --ink: #151515;           /* the letter, the lens, the screen, the title */
  --muted: #a29c90;         /* the axis, the rail, the focal marks, the small text */
  --accent: #2b3dff;        /* the rays of light */
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  height: 100%;
  overflow: hidden;
}

body {
  background: var(--page);
  color: var(--ink);
  font-family: 'Newsreader Variable', 'Newsreader', Georgia, serif;
  -webkit-font-smoothing: antialiased;
}

.stage {
  position: fixed;
  inset: 0;
  overflow: hidden;
  cursor: ew-resize;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.scene {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.axis {
  fill: none;
  stroke: var(--muted);
  stroke-width: 1;
  stroke-dasharray: 2 5;
}

.rail {
  fill: none;
  stroke: var(--muted);
  stroke-width: 1;
}

.ray {
  fill: none;
  stroke: var(--accent);
  stroke-width: 1;
  stroke-linecap: round;
}

.letter {
  fill: var(--ink);
  font-family: 'Newsreader Variable', 'Newsreader', Georgia, serif;
  font-weight: 420;
  font-variation-settings: 'opsz' 72;
}

.screen {
  fill: none;
  stroke: var(--ink);
  stroke-width: 1.5;
  stroke-linecap: round;
}

.lens__glass {
  fill: var(--page);
  fill-opacity: 0.55;
  stroke: var(--ink);
  stroke-width: 1.25;
}

.lens__stand {
  fill: none;
  stroke: var(--ink);
  stroke-width: 1.25;
  stroke-linecap: round;
}

.focal {
  fill: none;
  stroke: var(--muted);
  stroke-width: 1;
}

.tiny {
  fill: var(--muted);
  font-size: 12px;
  font-style: italic;
  font-variation-settings: 'opsz' 12;
}

.readout {
  fill: var(--accent);
  font-size: 13px;
  font-style: italic;
  font-variation-settings: 'opsz' 14;
  font-variant-numeric: tabular-nums;
}

/* ---------------------------------------------------------------- the type */
.top {
  position: absolute;
  inset: 0 0 auto;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  padding: 22px clamp(16px, 3vw, 40px);
  pointer-events: none;
}

.top__name {
  font-size: 19px;
  font-weight: 560;
  letter-spacing: -0.01em;
}

.top__note {
  font-size: 13px;
  font-style: italic;
  color: var(--muted);
}

.caption {
  position: absolute;
  left: clamp(16px, 3vw, 40px);
  right: clamp(16px, 3vw, 40px);
  top: 0;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
}

.caption__title {
  margin: 0;
  font-size: clamp(30px, 4.2vw, 60px);
  line-height: 1.05;
  font-weight: 300;
  font-variation-settings: 'opsz' 72;
  letter-spacing: -0.02em;
}

.caption__note {
  margin: 10px 0 0;
  font-size: 15px;
  font-style: italic;
  color: var(--muted);
}
