* { box-sizing: border-box; }
:root {
  --paper: #f8f8f8;
  --ink: #1e1e1e;
  --muted: #727272;
  --line: #dadddc;
  --hover: #e5e8e7;
  color: var(--ink);
  background: var(--paper);
  font-family: Arial, Helvetica, sans-serif;
  color-scheme: light;
}
html, body { width: 100%; height: 100%; margin: 0; overflow: hidden; }
body { display: grid; grid-template-columns: minmax(0, 1fr); place-items: center; }
button, input { font: inherit; color: inherit; -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:focus-visible, .date-label:focus-within { outline: 2px solid var(--ink); outline-offset: 3px; }
.masthead, .issue, footer { display: none; }
main { min-width: 0; width: 100%; max-width: 480px; padding: 12px 14px; text-align: center; }
.poster { margin: 0; }
h1 { font: bold clamp(32px, 12vw, 44px)/.8 Georgia, 'Times New Roman', serif; letter-spacing: -2.5px; margin: 0 auto; width: max-content; }
h1 > span { display: block; }
h1 > span + span { padding-left: 14px; margin-top: 5px; }
.period { font-size: .63em; margin-left: 3px; }
.title-rule { height: 2px; background: var(--ink); width: 155px; margin: 9px auto 10px; }
.drawing-wrap { position: relative; width: min(100%, clamp(230px, calc((100svh - 205px) * 1.534), 340px)); margin: auto; }
svg { display: block; width: 100%; height: auto; }
.day-buttons { position: absolute; inset: 0; pointer-events: none; }
.day-button { position: absolute; left: 5.36%; width: 89.28%; border: 0; background: transparent; padding: 0; pointer-events: auto; }
.day-button:hover { background: color-mix(in srgb, var(--ink) 5%, transparent); }
.day-button:focus-visible { outline-offset: 0; outline-style: dashed; }
.caption { font: italic 13px/1.3 Georgia, serif; color: var(--muted); margin: -12px 0 12px; }
.date-control { display: flex; align-items: center; justify-content: center; gap: 10px; }
.arrow { flex: 0 0 30px; height: 30px; border: 1px solid var(--line); border-radius: 50%; background: transparent; font-size: 18px; }
.arrow:hover { background: var(--hover); }
.date-label { position: relative; min-width: 0; width: 200px; display: flex; flex-direction: column; gap: 5px; cursor: pointer; }
.overline { font-size: 7px; letter-spacing: .7px; color: var(--muted); }
.date-text { font: 16px/1.2 Georgia, serif; }
.date-label input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; color-scheme: inherit; }
.date-label input::-webkit-calendar-picker-indicator { position: absolute; inset: 0; width: auto; height: auto; cursor: pointer; }
.today-button { display: block; margin: 10px auto 0; padding: 3px; border: 0; background: transparent; color: var(--muted); font-size: 10px; text-decoration: underline; text-underline-offset: 3px; }
.today-button:disabled { opacity: .5; cursor: default; }
.today-button span { margin-left: 5px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
