{
  "id": "v1-wl-62b2",
  "long_id": "v1.weblogs-2000s.blog.s06.p02.t11.u02",
  "name": "Linklog, 2005",
  "era": {
    "slug": "weblogs-2000s",
    "code": "wl",
    "name": "Weblogs",
    "years": [
      2002,
      2007
    ],
    "description": "Hand-built personal weblogs, 2002 to 2007: a fixed reading column with a link sidebar, small Verdana or Georgia text on white, dotted rules between entries, and one or two muted colours of the author's own."
  },
  "archetype": "blog",
  "mode": "mix",
  "viewport": {
    "width": 1024,
    "fluid": false
  },
  "summary": "A linklog as kept between 2003 and 2007 beside or instead of a weblog: several short dated items a day, each a link with one line of remark, a quotation or a note, filed under tags. The page is a wide parchment sheet hanging from the top of the window, the menu as small tabs on its top edge, the brand (mark and site name) under them, a dark tag bar across, and then day blocks ruled down the left beside a weighted tag index. Text is 13px Georgia with small tracked capitals in Trebuchet for every label; rules are dotted, corners square, and the sheet and its boxes carry a soft glow of shadow.",
  "url": "https://chrono.skin/s/v1-wl-62b2",
  "preview_url": "https://chrono.skin/s/v1-wl-62b2/specimen.html",
  "files": {
    "STYLE.md": "# Linklog, 2005\n\n## Summary\n\nA linklog as kept between 2003 and 2007 beside or instead of a weblog: several short dated items a day, each a link with one line of remark, a quotation or a note, filed under tags. The page is a wide parchment sheet hanging from the top of the window, the menu as small tabs on its top edge, the brand (mark and site name) under them, a dark tag bar across, and then day blocks ruled down the left beside a weighted tag index. Text is 13px Georgia with small tracked capitals in Trebuchet for every label; rules are dotted, corners square, and the sheet and its boxes carry a soft glow of shadow.\n\n## Layout\n\n- The page is fixed, not fluid: `.ds-page__frame` is `--size-page` (880px) wide, centred, `--color-canvas` on `--fill-page`, flush with the top of the window and open there, with a 1px `--color-border` line down each side and along the foot and `--shadow-panel` around it. It never stretches.\n- Order from the top: `.ds-nav` (the `.ds-nav__menu` tabs hanging at the top right, the `.ds-nav__head` with the brand left and a two-line tagline right, then `.ds-nav__tags`, the `--fill-bar` tag bar across the sheet), the view, and `.ds-footer`, the inverted strip. The menu is never a bar of its own and never sits beside the name.\n- The home view is the `.ds-hero` (one tinted line across the sheet), then `.ds-page__columns`: the stream (`.ds-page__main`) on the left and `.ds-sidebar` at `--size-side` (230px) on the right, `--space-7` apart, and last the `.ds-grid`, four tinted cells across the whole sheet directly above the footer.\n- The stream is a stack of `.ds-day` blocks `--space-6` apart: a `.ds-day__date` line (small bold tracked capitals with the day's count at the right) over a `.ds-list` that is ruled down its left side with a `--border-width-strong` line. Items are divided by 1px rules, never by cards. Other blocks of a column are `.ds-page__section`, closed by a 1px rule with `--space-6` above and below; `.ds-page__label` is the small tracked caption over a block.\n- Inner pages keep the sheet, the tabs, the name, the tag bar and the footer. The hero and the closing grid are not used. A `.ds-breadcrumb` line sits under the tag bar, inside the sheet's padding. A page about one thing (an item, the about page) keeps both columns: the main column opens with `.ds-page-header` (18px title, one 11px grey line, one button at the right, a 3px `--color-border-muted` rule), then the text, related links, the `.ds-comments` thread and the form last; the sidebar carries lists that belong to that page. A page that is an index (the tags) drops the sidebar and uses `.ds-page__wide`: page header, `.ds-stats`, `.ds-tabs` with the panel in `.ds-tabs__body`, the table, `.ds-pagination`. Tabs stand on their own rule under the page header.\n- Views: the specimen is one linklog with four views. `links` is the front page: three days of items, the index column and the four counts. `item` is one link with its remark written out, related links, comments, the delete dialog, the notices that answer a posted comment and the comment form. `tags` is the tag index: figures, tabs over the weighted cloud, the table of the busiest tags, pagination and an empty tag. `about` is the keeper panel, what gets in, and the form for suggesting a link. The menu links to links, tags and about; items are reached from titles, comment counts and sidebar lists.\n- Spacing scale: `--space-1` 1px is the tracking of labels (doubled or tripled for titles and dates) and the padding of sidebar rows; `--space-2` 2px is the gap between tabs and between a line and its meta line; `--space-3` 5px is the padding of buttons, tabs, table cells and the tag bar; `--space-4` 8px is the padding of a list row, the inset of a day block and of notices; `--space-5` 12px is the gap between paragraphs and the padding of panels, the hero and the footer; `--space-6` 18px is the gap between blocks and day blocks; `--space-7` 28px is the side padding of the sheet and the gap between the columns.\n- Fixed sizes: `--size-kind` 52px is the column that names an item's kind, `--size-label` 100px the label column of a form, `--size-field` 250px a text input, `--size-num` 80px a numeric table column, `--size-dialog` 380px a dialog.\n\n## Typography and colour roles\n\nThis style combines the parts of different styles of one era. Where a note below names a value that differs from `tokens.css`, the tokens are right.\n\n- `--font-body` is Times at the browser's size: `--text-base` 16px with `--line-body` 1.375 (22px). It is the unstyled-serif look of hosted journals and early default themes; do not swap it for a sans.\n- `--font-heading` and `--font-ui` are Arial: `--text-display` 24px bold, `--text-h1` 18px bold, `--text-h2` 16px bold, `--text-h3` 13px bold. `--text-small` and `--text-ui` are 13px. Nothing is uppercased or tracked.\n- Every link is underlined, at rest and on hover, quiet links and navigation included (`--link-decoration`, `--link-decoration-hover` and `--link-decoration-quiet` all underline). `--font-mono` is Courier New.\n\n## Components\n\n- `.ds-page` on `<body>`: page fill and base type. Everything goes in `.ds-page__frame`. `.ds-page__columns` holds `.ds-page__main` and `.ds-sidebar`; `.ds-page__wide` is the body of a view without a sidebar; `.ds-page__section` is a block closed by a rule (`--last` drops it); `.ds-page__label` is its caption.\n- `.ds-view`: one screen of the example site. The specimen holds its views side by side in the markup and shows one at a time: the view named in the address, or the `.ds-view--home` view when none is named. In a real project each view is a page of its own; drop the class there.\n- `.ds-brand`: the site's mark and name, at the left of the header under the tabs; a link to the home page. `.ds-brand__mark` is a small square tile dressed like the primary button (`--fill-button`, `--color-button-text` for the drawing, a 1px `--color-input-border` outline that is 2px along the bottom, `--radius-control`, `--shadow-control`), 1.3 times `--text-display` on a side and never less than twice `--text-base`; it holds the mark as inline SVG painted with `currentColor`. `.ds-brand__name` is the name in `--font-heading` at `--text-display` in `--color-heading`. The name `chronoskin` and its mark are placeholders for the installing project's own name and logo; keep the classes and swap the text and the drawing.\n- `.ds-nav`: the header, written once above the views. `.ds-nav__menu` is the row of `.ds-nav__link` tabs hanging from the top edge at the right, filled with `--fill-bar-alt`; the current one takes `--fill-bar` and bold `--color-bar-text`: `is-current` on a real page, and in the specimen one selector per view that picks the link by its `href` (a single item counts as the links). `.ds-nav__head` holds the `.ds-brand` and `.ds-nav__tagline`. `.ds-nav__tags` is the tag bar: a `.ds-nav__tags-label` and `.ds-nav__tag` links on `--fill-bar`.\n- `.ds-breadcrumb`: a line of small tracked capitals under the tag bar: `.ds-breadcrumb__link` items, `.ds-breadcrumb__sep` (`/`), ending in `.ds-breadcrumb__current`. No strip, no fill.\n- `.ds-hero`: the front page's introduction, once: a `--color-fill-1` line across the sheet with a rule below, `.ds-hero__text` (`.ds-hero__title` at 18px and a `.ds-hero__lead` at 15px) on the left and `.ds-hero__actions` (one button over one text link) at the right. Not a banner: no large type, no picture.\n- `.ds-page-header`: the head of an inner page, never together with the hero: `.ds-page-header__main` holds the `.ds-page-header__title` and one `.ds-page-header__text` line; `.ds-page-header__action` at the right holds one button. A 3px `--color-border-muted` rule closes it.\n- `.ds-stat`: one summary figure, set as words in a sentence: a `.ds-stat__value` (18px Georgia, navy) followed on the same line by its `.ds-stat__label` (10px tracked capitals, grey). Three to five follow each other in `.ds-stats`, one `--color-surface-alt` line with a 3px `--color-border-strong` left edge. Do not stack the label under the number and do not box the figures.\n- `.ds-day`: one day of the log: `.ds-day__date` (the date in small bold tracked capitals, the day's count as a `.ds-badge` at the right) over one `.ds-list`.\n- `.ds-list`: the items of a day, ruled down the left. Each `.ds-list__item` has a `.ds-list__kind` (link, quote, note, in grey capitals) and a `.ds-list__body`. A link is one `.ds-list__excerpt` paragraph that opens with the bold `.ds-list__title` link and continues with the remark; a quotation is a `.ds-list__quote` (15px, navy); a note is a plain `.ds-list__excerpt`. Each ends with a `.ds-list__meta` line: time, source, comments, tags.\n- `.ds-tags`: the weighted tag index, a wrapping run of `.ds-tags__tag` links whose size follows their use: plain is 11px, `--2` 13px, `--3` 15px, `--4` 18px in the heading face. Use it in the sidebar and in a panel; four weights are enough.\n- `.ds-prose`: running text: h1, h2 (orange), h3 (bold Trebuchet, navy), paragraphs, square-bulleted lists with orange markers, `code`, and `blockquote` with a 1px `--color-border-strong` left rule. `.ds-post__meta` is the small grey line under it.\n- `.ds-comment`: one comment, inside a `.ds-comments` list: a `.ds-comment__text` paragraph over a `.ds-comment__meta` line, divided by 1px rules. `.ds-comment--author` tints the keeper's own reply.\n- `.ds-link`: text link with `is-visited`, `is-hover`, `is-active`, `is-focus`. `.ds-link--quiet` is the grey meta link; `.ds-link--strong` is bold. `.ds-links` lays links out in a wrapping row.\n- `.ds-button`: a small button lettered in bold tracked capitals, `--fill-button` with a 1px `--color-input-border` outline that is 2px along the bottom. `.ds-button--secondary` is paler and not bold. `.ds-button--danger` is the destructive action: the secondary button lettered and underscored in `--color-danger`, never filled red. `disabled` or `is-disabled` fades it. Group with `.ds-buttons`.\n- `.ds-form`: a `--color-surface-alt` block under a 3px rule: `.ds-form__title`, rows (`.ds-form__row`) of a bold capital `.ds-form__label` and a `.ds-form__field`. Controls take `.ds-form__input` (`--wide` full width, `--auto` for selects); `is-invalid` plus `.ds-form__error` marks a validation error; `.ds-form__hint` is help text; `.ds-form__check` with `.ds-form__checkbox` for checkboxes; `.ds-form__actions` starts the buttons under the fields and keeps them on one row.\n- `.ds-table`: data table at 11px with open sides: a head row of grey tracked capitals on a 3px rule, rows divided by 1px rules, `.ds-table__row--alt` for alternate rows, `.ds-table__num` for right-aligned numeric columns, `.ds-table__group` for a group row. The head is not a bar.\n- `.ds-panel`: a 1px outlined box with the soft glow, a `--color-surface-strong` `.ds-panel__title` in tracked capitals and a `.ds-panel__body`. Use it for the tag cloud or one boxed note.\n- `.ds-grid`: four `.ds-grid__cell` blocks across the whole sheet, joined edge to edge and divided by 1px rules, each a flat tint (`--2`, `--3`, `--4` select the other fills) with a large `.ds-grid__count`, a `.ds-grid__title` in tracked capitals and a `.ds-grid__text` line. It closes the front page above the footer; do not put gaps between the cells.\n- `.ds-tabs`: a row of small boxed `.ds-tabs__tab` links in tracked capitals standing on a 1px rule; `is-current` takes the sheet's colour and joins the content below, which goes in `.ds-tabs__body`.\n- `.ds-badge`: small square orange count. `.ds-badge--alt` is a bare coloured word (\"new\"); `.ds-badge--tag` is a grey outlined tag. Status labels are `.ds-badge--success`, `.ds-badge--warning` and `.ds-badge--danger`: a square label with a 1px outline and bold word, both in the status colour.\n- `.ds-sidebar`: the index column at 11px. Each `.ds-sidebar__block` has a navy `.ds-sidebar__title` in tracked capitals on a 1px rule and a `.ds-sidebar__list` of `.ds-sidebar__item` rows, the `.ds-sidebar__link` at the left and an optional `.ds-sidebar__count` at the right edge; `.ds-sidebar__list--two` sets a link list in two columns; `.ds-sidebar__text` is a paragraph; `.ds-sidebar__search` is an input with a button. `.ds-sidebar__block--box` boxes one block with `--fill-panel` and the glow.\n- `.ds-notice`: one-line message on `--color-notice` with a 1px `--color-border-strong` outline, starting with a bold `.ds-notice__title`. `.ds-notice--error` uses the danger colour for text and outline. Stack several in `.ds-notices`.\n- `.ds-pagination`: centred row of small 1px boxed `.ds-pagination__link` items. `is-current` is `--color-surface-strong` with a `--color-border-strong` outline; `is-disabled` is faded.\n- `.ds-dialog`: a 1px outlined box with `--shadow-dialog`, a `--fill-bar` `.ds-dialog__title`, `.ds-dialog__body`, `.ds-dialog__text` and right-aligned `.ds-dialog__actions`. It sits in the page flow on `.ds-dialog__backdrop` (`--color-overlay`). No dimmed overlay.\n- `.ds-empty`: a centred grey `.ds-empty__text` and one secondary button between two 1px rules; no box.\n- `.ds-footer`: the inverted strip closing the sheet, in tracked capitals: one `.ds-footer__row` with a line of text left and `.ds-footer__links` of underlined `.ds-footer__link` items right.\n- `ds-avatar`: a small square with initials beside a commenter name.\n- `ds-accordion`: a sidebar list that opens and closes, a details element whose summary holds the block title.\n\n## Never\n\n- `block-gap <= 30px`: blocks sit one rule apart.\n- `content-width <= 900px`: a fixed centred sheet; the page does not stretch with the window.\n- `font-size <= 32px`: the largest text measured is 32px; the set itself stops at 24px.\n- `font-size >= 10px`: the smallest text measured is 10px; the set itself stops at 13px.\n- `font-weight <= 700`: bold is the heaviest weight.\n- `font-families <= 3`: Times, Arial and a monospace.\n- `line-height >= 1.1`: text is set close, at 1.375.\n- `line-height <= 1.5`: and never open.\n- `underlined-links >= 60%`: links are underlined everywhere.\n- `border-radius <= 0px`: every box is square.\n- `box-shadow = none`: boxes are told apart by dotted lines and flat tints.\n- `text-shadow = none`: text is flat, also on strips.\n- `gradient-fills <= 0%`: strips and buttons are one flat colour.\n- `border-width <= 2px`: lines are 1px; control bevels and emphasis rules are 2px.\n- `transition = none`: states change instantly.\n- `animation = none`: nothing moves.\n\n## Extending\n\nDerive a new component from the nearest one in the specimen: a new kind of item copies `.ds-list__item` (its kind in the `--size-kind` column, a 1px rule below), a new group of items copies `.ds-day` (a tracked date line over a block ruled down the left), a new boxed block copies `.ds-panel`, a new line of figures copies `.ds-stats`, a new band across the sheet copies `.ds-grid` (flat tints joined edge to edge). Every label is `--font-ui` at `--text-ui`, in `--ui-transform` and tracked; every title is unbolded `--font-heading`. Use only the tokens in `tokens.css` and the `--size-*` and `--space-*` tokens in `components.css`; if a size is missing, take the nearest step of the scale. Keep text at 10px to 27px, corners square, fills flat, and separate things with a rule before reaching for a box.\n",
    "components.css": "/* Layout tokens (structure part). A linklog, 2003 to 2006: the menu hangs as tabs from the top of the\n   sheet, a tag bar runs under the name, short dated items stand in day blocks beside a tag index. */\n:root {\n  --size-page: 880px;\n  --size-side: 230px;\n  --size-kind: 52px;\n  --size-label: 100px;\n  --size-field: 250px;\n  --size-dialog: 380px;\n  --size-num: 80px;\n  --space-1: 1px;\n  --space-2: 2px;\n  --space-3: 5px;\n  --space-4: 8px;\n  --space-5: 12px;\n  --space-6: 18px;\n  --space-7: 28px;\n}\n\n/* ---------- shell ---------- */\n.ds-page {\n  margin: 0;\n  padding: 0 0 var(--space-7);\n  background: var(--fill-page);\n  color: var(--color-text);\n  font-family: var(--font-body);\n  font-size: var(--text-base);\n  font-weight: var(--weight-body);\n  line-height: var(--line-body);\n}\n/* The sheet: a wide fixed column hanging from the top of the window, open at the top. */\n.ds-page__frame {\n  box-sizing: border-box;\n  width: var(--size-page);\n  margin: 0 auto;\n  background: var(--color-canvas);\n  border-style: var(--border-style);\n  border-color: var(--color-border);\n  border-width: 0 var(--border-width) var(--border-width);\n  border-radius: 0 0 var(--radius-page) var(--radius-page);\n  box-shadow: var(--shadow-panel);\n}\n.ds-page__wide {\n  padding: var(--space-6) var(--space-7) var(--space-7);\n}\n/* The stream on the left, the index on the right. */\n.ds-page__columns {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr) var(--size-side);\n  column-gap: var(--space-7);\n  align-items: start;\n  padding: var(--space-6) var(--space-7) var(--space-7);\n}\n.ds-page__main {\n  min-width: 0;\n}\n.ds-page__section {\n  margin: 0 0 var(--space-6);\n  padding: 0 0 var(--space-6);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n}\n.ds-page__section--last {\n  margin-bottom: 0;\n  padding-bottom: 0;\n  border-bottom: 0;\n}\n/* Caption above a group of components: small tracked capitals. */\n.ds-page__label {\n  margin: 0 0 var(--space-4);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-ui);\n  line-height: var(--line-body);\n  letter-spacing: calc(var(--space-1) * 2);\n  text-transform: var(--ui-transform);\n  color: var(--color-text-muted);\n}\n\n/* ---------- views: one screen of the example site shows at a time ---------- */\n.ds-view { display: none; }\n.ds-view:target, .ds-page:not(:has(.ds-view:target)) .ds-view--home { display: block; }\n.ds-view:target { scroll-margin-top: 100vh; }\n\n/* ---------- links ---------- */\n.ds-link {\n  color: var(--color-link);\n  text-decoration: var(--link-decoration);\n}\n.ds-link:visited,\n.ds-link.is-visited {\n  color: var(--color-link-visited);\n}\n.ds-link:hover,\n.ds-link.is-hover {\n  color: var(--color-link-hover);\n  text-decoration: var(--link-decoration-hover);\n}\n.ds-link:active,\n.ds-link.is-active {\n  color: var(--color-link-active);\n  text-decoration: var(--link-decoration-hover);\n}\n.ds-link:focus-visible,\n.ds-link.is-focus {\n  outline: var(--focus-ring);\n}\n.ds-link--quiet,\n.ds-link--quiet:visited,\n.ds-link--quiet.is-visited {\n  color: var(--color-link-quiet);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-link--quiet:hover,\n.ds-link--quiet.is-hover {\n  color: var(--color-link-hover);\n  text-decoration: var(--link-decoration-hover);\n}\n.ds-link--strong {\n  font-weight: var(--weight-bold);\n}\n.ds-links {\n  display: flex;\n  flex-wrap: wrap;\n  gap: var(--space-2) var(--space-5);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n\n/* ---------- nav: tabs hanging from the top edge, the name under them, then the tag bar ---------- */\n.ds-nav {\n  margin: 0;\n}\n.ds-nav__menu {\n  display: flex;\n  justify-content: flex-end;\n  gap: var(--space-2);\n  margin: 0;\n  padding: 0 var(--space-7);\n  list-style: none;\n}\n.ds-nav__link {\n  display: block;\n  padding: var(--space-3) var(--space-5) var(--space-4);\n  background: var(--fill-bar-alt);\n  border-radius: 0 0 var(--radius-control) var(--radius-control);\n  color: var(--color-bar-alt-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-ui);\n  letter-spacing: var(--space-1);\n  text-transform: var(--ui-transform);\n  text-decoration: var(--link-decoration-quiet);\n  text-shadow: var(--shadow-text);\n}\n.ds-nav__link:hover,\n.ds-nav__link.is-hover {\n  text-decoration: var(--link-decoration-hover);\n}\n/* The current item: the tab takes the primary bar. One selector per view; a single item belongs to the links. */\n.ds-nav__link.is-current,\n.ds-page:not(:has(.ds-view:target)) .ds-nav__link[href=\"#links\"],\n.ds-page:has(#links:target) .ds-nav__link[href=\"#links\"],\n.ds-page:has(#item:target) .ds-nav__link[href=\"#links\"],\n.ds-page:has(#tags:target) .ds-nav__link[href=\"#tags\"],\n.ds-page:has(#about:target) .ds-nav__link[href=\"#about\"] {\n  background: var(--fill-bar);\n  color: var(--color-bar-text);\n  font-weight: var(--weight-bold);\n}\n.ds-nav__link:focus-visible,\n.ds-nav__link.is-focus {\n  outline: var(--focus-ring);\n}\n.ds-nav__head {\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-end;\n  gap: var(--space-6);\n  padding: var(--space-4) var(--space-7) var(--space-6);\n}\n/* The site's mark and name. The tile is dressed like the primary button, so every token set reskins it. */\n.ds-brand {\n  display: inline-flex;\n  align-items: center;\n  gap: var(--space-4);\n  text-decoration: none;\n}\n.ds-brand__mark {\n  display: flex;\n  flex: none;\n  align-items: center;\n  justify-content: center;\n  box-sizing: border-box;\n  width: max(calc(var(--text-display) * 1.3), calc(var(--text-base) * 2));\n  height: max(calc(var(--text-display) * 1.3), calc(var(--text-base) * 2));\n  background: var(--fill-button);\n  color: var(--color-button-text);\n  border: var(--border-width) var(--border-style) var(--color-input-border);\n  border-bottom-width: calc(var(--border-width) * 2);\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control);\n}\n.ds-brand__mark svg {\n  display: block;\n  width: 68%;\n  height: 68%;\n}\n.ds-brand__name {\n  color: var(--color-heading);\n  font-family: var(--font-heading);\n  font-size: var(--text-display);\n  font-weight: var(--weight-display);\n  line-height: var(--line-display);\n  letter-spacing: var(--display-tracking);\n  text-transform: var(--heading-transform);\n}\n.ds-nav__tagline {\n  margin: 0;\n  text-align: right;\n  font-size: var(--text-small);\n  color: var(--color-text-muted);\n}\n/* The tag bar: the most used tags, on the primary bar, across the sheet. */\n.ds-nav__tags {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: baseline;\n  gap: 0 var(--space-5);\n  margin: 0;\n  padding: var(--space-3) var(--space-7);\n  list-style: none;\n  background: var(--fill-bar);\n  color: var(--color-bar-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  line-height: var(--line-body);\n  letter-spacing: var(--space-1);\n  text-transform: var(--ui-transform);\n  text-shadow: var(--shadow-text);\n}\n.ds-nav__tags-label {\n  opacity: 0.7;\n}\n.ds-nav__tag {\n  color: var(--color-bar-text);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-nav__tag:hover,\n.ds-nav__tag.is-hover {\n  text-decoration: var(--link-decoration-hover);\n}\n\n/* ---------- breadcrumb ---------- */\n.ds-breadcrumb {\n  display: flex;\n  flex-wrap: wrap;\n  gap: var(--space-3);\n  margin: 0;\n  padding: var(--space-4) var(--space-7) 0;\n  list-style: none;\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  letter-spacing: var(--space-1);\n  text-transform: var(--ui-transform);\n  color: var(--color-text-muted);\n}\n.ds-breadcrumb__link {\n  color: var(--color-link);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-breadcrumb__link:hover,\n.ds-breadcrumb__link.is-hover {\n  color: var(--color-link-hover);\n  text-decoration: var(--link-decoration-hover);\n}\n.ds-breadcrumb__sep {\n  color: var(--color-text-muted);\n}\n.ds-breadcrumb__current {\n  color: var(--color-text);\n}\n\n/* ---------- hero: one tinted line of introduction across the sheet ---------- */\n.ds-hero {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  gap: var(--space-6);\n  padding: var(--space-5) var(--space-7);\n  background: var(--color-fill-1);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n}\n.ds-hero__text {\n  min-width: 0;\n}\n.ds-hero__title {\n  margin: 0;\n  font-family: var(--font-heading);\n  font-size: var(--text-h1);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n  color: var(--color-heading);\n}\n.ds-hero__lead {\n  margin: var(--space-2) 0 0;\n  font-size: var(--text-large);\n  line-height: var(--line-heading);\n}\n.ds-hero__actions {\n  display: flex;\n  flex: none;\n  flex-direction: column;\n  align-items: flex-end;\n  gap: var(--space-3);\n  font-size: var(--text-small);\n}\n\n/* ---------- page header: the title line of an inner page ---------- */\n.ds-page-header {\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-end;\n  gap: var(--space-4);\n  margin: 0 0 var(--space-6);\n  padding: 0 0 var(--space-4);\n  border-bottom: var(--border-width-strong) var(--border-style) var(--color-border-muted);\n}\n.ds-page-header__main {\n  min-width: 0;\n}\n.ds-page-header__title {\n  margin: 0;\n  font-family: var(--font-heading);\n  font-size: var(--text-h1);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n  color: var(--color-heading);\n}\n.ds-page-header__text {\n  margin: var(--space-2) 0 0;\n  font-size: var(--text-small);\n  color: var(--color-text-muted);\n}\n.ds-page-header__action {\n  flex: none;\n  font-size: var(--text-small);\n}\n\n/* ---------- stats: one sentence of figures, the numbers set large ---------- */\n.ds-stats {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: baseline;\n  gap: var(--space-2) var(--space-7);\n  margin: 0 0 var(--space-6);\n  padding: var(--space-4) var(--space-5);\n  list-style: none;\n  background: var(--color-surface-alt);\n  border-left: var(--border-width-strong) var(--border-style) var(--color-border-strong);\n}\n.ds-stat {\n  display: flex;\n  align-items: baseline;\n  gap: var(--space-3);\n}\n.ds-stat__value {\n  font-family: var(--font-heading);\n  font-size: var(--text-h1);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n  color: var(--color-heading-alt);\n}\n.ds-stat__label {\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  letter-spacing: var(--space-1);\n  text-transform: var(--ui-transform);\n  color: var(--color-text-muted);\n}\n\n/* ---------- prose ---------- */\n.ds-prose h1,\n.ds-prose h2,\n.ds-prose h3 {\n  margin: 0 0 var(--space-3);\n  font-family: var(--font-heading);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n  color: var(--color-heading);\n}\n.ds-prose h1 {\n  font-size: var(--text-h1);\n}\n.ds-prose h2 {\n  margin-top: var(--space-5);\n  font-size: var(--text-h2);\n  color: var(--color-heading);\n}\n.ds-prose h3 {\n  margin-top: var(--space-5);\n  font-family: var(--font-ui);\n  font-size: var(--text-h3);\n  font-weight: var(--weight-bold);\n  color: var(--color-heading-alt);\n}\n.ds-prose p {\n  margin: 0 0 var(--space-5);\n}\n.ds-prose ul,\n.ds-prose ol {\n  margin: 0 0 var(--space-5);\n  padding: 0 0 0 var(--space-6);\n}\n.ds-prose ul {\n  list-style: square;\n}\n.ds-prose li::marker {\n  color: var(--color-accent);\n}\n.ds-prose code {\n  font-family: var(--font-mono);\n  font-size: var(--text-base);\n  color: var(--color-heading);\n}\n.ds-prose blockquote {\n  margin: 0 0 var(--space-5);\n  padding: 0 0 0 var(--space-4);\n  border-left: var(--border-width) var(--border-style) var(--color-border-strong);\n}\n.ds-prose strong {\n  font-weight: var(--weight-bold);\n}\n.ds-prose > :last-child {\n  margin-bottom: 0;\n}\n.ds-post__meta {\n  margin: var(--space-4) 0 0;\n  font-size: var(--text-small);\n  color: var(--color-text-muted);\n}\n\n/* ---------- comments: the thread under an item ---------- */\n.ds-comments {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-comment {\n  padding: var(--space-4) var(--space-4);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n}\n.ds-comment:last-child {\n  border-bottom: 0;\n}\n/* The keeper's own reply. */\n.ds-comment--author {\n  background: var(--color-surface-alt);\n}\n.ds-comment__text {\n  margin: 0 0 var(--space-2);\n}\n.ds-comment__meta {\n  margin: 0;\n  font-size: var(--text-small);\n  color: var(--color-text-muted);\n}\n\n/* ---------- buttons: small lettered buttons, heavier along the bottom ---------- */\n.ds-buttons {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-3);\n}\n.ds-button {\n  display: inline-block;\n  box-sizing: border-box;\n  margin: 0;\n  padding: var(--space-3) var(--space-5);\n  border: var(--border-width) var(--border-style) var(--color-input-border);\n  border-bottom-width: calc(var(--border-width) * 2);\n  border-radius: var(--radius-control);\n  background: var(--fill-button);\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n  letter-spacing: var(--space-1);\n  text-transform: var(--ui-transform);\n  text-decoration: none;\n  white-space: nowrap;\n  transition: var(--transition);\n  cursor: pointer;\n}\n.ds-button:hover,\n.ds-button.is-hover {\n  background: var(--fill-button-hover);\n  box-shadow: var(--shadow-control-hover);\n  color: var(--color-button-hover-text);\n}\n.ds-button:active,\n.ds-button.is-active {\n  box-shadow: var(--shadow-control-pressed);\n}\n.ds-button:focus-visible,\n.ds-button.is-focus {\n  outline: var(--focus-ring);\n}\n.ds-button--secondary,\n.ds-button--secondary:hover,\n.ds-button--secondary.is-hover {\n  background: var(--fill-button-secondary);\n  color: var(--color-button-secondary-text);\n  font-weight: var(--weight-ui);\n}\n/* Destructive action: the same button, lettered and underscored in the error red. */\n.ds-button--danger,\n.ds-button--danger:hover,\n.ds-button--danger.is-hover {\n  border-bottom-color: var(--color-danger);\n  background: var(--fill-button-secondary);\n  color: var(--color-danger);\n}\n.ds-button:disabled,\n.ds-button.is-disabled {\n  border-color: var(--color-border-muted);\n  background: var(--color-disabled);\n  box-shadow: none;\n  color: var(--color-disabled-text);\n  cursor: default;\n}\n\n/* ---------- form ---------- */\n.ds-form {\n  margin: 0;\n  padding: var(--space-5);\n  background: var(--color-surface-alt);\n  border-top: var(--border-width-strong) var(--border-style) var(--color-border-muted);\n  border-radius: var(--radius-panel);\n}\n.ds-form__title {\n  margin: 0 0 var(--space-4);\n  font-family: var(--font-heading);\n  font-size: var(--text-h2);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n  color: var(--color-heading);\n}\n.ds-form__row {\n  display: flex;\n  align-items: flex-start;\n  margin: 0 0 var(--space-3);\n}\n.ds-form__label {\n  flex: none;\n  width: var(--size-label);\n  padding-top: var(--space-2);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  letter-spacing: var(--space-1);\n  text-transform: var(--ui-transform);\n  color: var(--color-text);\n}\n.ds-form__field {\n  flex: 1;\n  min-width: 0;\n}\n.ds-form__input {\n  box-sizing: border-box;\n  width: var(--size-field);\n  max-width: 100%;\n  margin: 0;\n  padding: var(--space-2) var(--space-3);\n  border: var(--border-width) var(--border-style) var(--color-input-border);\n  border-radius: var(--radius-control);\n  background: var(--fill-input);\n  box-shadow: var(--shadow-control);\n  color: var(--color-input-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  line-height: var(--line-heading);\n  transition: var(--transition);\n}\n.ds-form__input--wide {\n  width: 100%;\n}\n.ds-form__input--auto {\n  width: auto;\n}\n.ds-form__input:focus-visible,\n.ds-form__input.is-focus {\n  outline: var(--focus-ring);\n}\n.ds-form__input:disabled,\n.ds-form__input.is-disabled {\n  background: var(--color-disabled);\n  color: var(--color-disabled-text);\n}\n.ds-form__input.is-invalid {\n  border-color: var(--color-danger);\n}\n.ds-form__error {\n  margin: var(--space-2) 0 0;\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  color: var(--color-danger);\n}\n.ds-form__hint {\n  margin: var(--space-2) 0 0;\n  font-size: var(--text-small);\n  color: var(--color-text-muted);\n}\n.ds-form__check {\n  display: flex;\n  align-items: center;\n  gap: var(--space-3);\n  font-size: var(--text-small);\n}\n.ds-form__checkbox {\n  margin: 0;\n}\n/* The buttons start under the fields; the indent gives way before a button wraps. */\n.ds-form__actions {\n  display: flex;\n  gap: var(--space-3);\n  margin: var(--space-4) 0 0;\n}\n.ds-form__actions::before {\n  content: \"\";\n  flex: 0 1 calc(var(--size-label) - var(--space-3));\n}\n.ds-form__actions > .ds-button {\n  flex: none;\n}\n\n/* ---------- table: a quiet head on a heavy rule, ruled rows ---------- */\n.ds-table {\n  width: 100%;\n  border-collapse: collapse;\n  font-size: var(--text-small);\n}\n.ds-table th {\n  padding: var(--space-3) var(--space-4);\n  border-bottom: var(--border-width-strong) var(--border-style) var(--color-border-muted);\n  color: var(--color-text-muted);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-ui);\n  letter-spacing: var(--space-1);\n  text-align: left;\n  text-transform: var(--ui-transform);\n}\n.ds-table td {\n  padding: var(--space-3) var(--space-4);\n  background: var(--color-surface);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n  vertical-align: baseline;\n}\n.ds-table tr.is-alt td,\n.ds-table__row--alt td {\n  background: var(--color-surface-alt);\n}\n.ds-table th.ds-table__num,\n.ds-table td.ds-table__num {\n  width: var(--size-num);\n  text-align: right;\n}\n.ds-table__group td {\n  background: var(--color-surface-strong);\n  color: var(--color-heading-alt);\n  font-weight: var(--weight-bold);\n}\n\n/* ---------- day: one day of the log, its date over a block ruled down the left ---------- */\n.ds-day {\n  margin: 0 0 var(--space-6);\n}\n.ds-day:last-child {\n  margin-bottom: 0;\n}\n.ds-day__date {\n  display: flex;\n  justify-content: space-between;\n  align-items: baseline;\n  margin: 0 0 var(--space-3);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-body);\n  letter-spacing: calc(var(--space-1) * 3);\n  text-transform: var(--ui-transform);\n  color: var(--color-heading);\n}\n\n/* ---------- list: short items, the kind of each in a narrow column ---------- */\n.ds-list {\n  margin: 0;\n  padding: 0 0 0 var(--space-4);\n  list-style: none;\n  border-left: var(--border-width-strong) var(--border-style) var(--color-border-muted);\n}\n.ds-list__item {\n  display: grid;\n  grid-template-columns: var(--size-kind) minmax(0, 1fr);\n  column-gap: var(--space-4);\n  padding: var(--space-4) 0;\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n}\n.ds-list__item:first-child {\n  padding-top: var(--space-2);\n}\n.ds-list__item:last-child {\n  border-bottom: 0;\n  padding-bottom: var(--space-2);\n}\n/* What the item is: link, quote, note. */\n.ds-list__kind {\n  padding-top: var(--space-2);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  letter-spacing: var(--space-1);\n  text-transform: var(--ui-transform);\n  color: var(--color-text-muted);\n}\n.ds-list__body {\n  min-width: 0;\n}\n.ds-list__title {\n  color: var(--color-link);\n  font-weight: var(--weight-bold);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-list__title:hover,\n.ds-list__title.is-hover {\n  color: var(--color-link-hover);\n  text-decoration: var(--link-decoration-hover);\n}\n.ds-list__excerpt {\n  margin: 0;\n}\n/* A quoted line: set larger, in the heading face. */\n.ds-list__quote {\n  margin: 0;\n  font-family: var(--font-heading);\n  font-size: var(--text-large);\n  line-height: var(--line-heading);\n  color: var(--color-heading-alt);\n}\n.ds-list__meta {\n  margin: var(--space-2) 0 0;\n  font-size: var(--text-small);\n  color: var(--color-text-muted);\n}\n\n/* ---------- tags: the weighted index, a tag's size following its use ---------- */\n.ds-tags {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: baseline;\n  gap: var(--space-2) var(--space-4);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  line-height: var(--line-heading);\n}\n.ds-tags__tag {\n  color: var(--color-link);\n  font-size: var(--text-small);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-tags__tag:hover,\n.ds-tags__tag.is-hover {\n  color: var(--color-link-hover);\n  text-decoration: var(--link-decoration-hover);\n}\n.ds-tags__tag--2 {\n  font-size: var(--text-base);\n}\n.ds-tags__tag--3 {\n  font-size: var(--text-large);\n}\n.ds-tags__tag--4 {\n  font-family: var(--font-heading);\n  font-size: var(--text-h1);\n}\n\n/* ---------- panel ---------- */\n.ds-panel {\n  background: var(--fill-panel);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-panel);\n}\n.ds-panel__title {\n  margin: 0;\n  padding: var(--space-3) var(--space-5);\n  background: var(--color-surface-strong);\n  border-radius: var(--radius-panel) var(--radius-panel) 0 0;\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-body);\n  letter-spacing: calc(var(--space-1) * 2);\n  text-transform: var(--ui-transform);\n  color: var(--color-heading-alt);\n}\n.ds-panel__body {\n  padding: var(--space-5);\n}\n.ds-panel__body > :last-child {\n  margin-bottom: 0;\n}\n\n/* ---------- grid: four tinted cells across the sheet, one for each kind of item ---------- */\n.ds-grid {\n  display: grid;\n  grid-template-columns: repeat(4, minmax(0, 1fr));\n  border-top: var(--border-width) var(--border-style) var(--color-border);\n}\n.ds-grid__cell {\n  padding: var(--space-5) var(--space-6) var(--space-6);\n  background: var(--color-fill-1);\n  border-left: var(--border-width) var(--border-style) var(--color-border);\n  font-size: var(--text-small);\n}\n.ds-grid__cell:first-child {\n  border-left: 0;\n  padding-left: var(--space-7);\n}\n.ds-grid__cell--2 {\n  background: var(--color-fill-2);\n}\n.ds-grid__cell--3 {\n  background: var(--color-fill-3);\n}\n.ds-grid__cell--4 {\n  background: var(--color-fill-4);\n}\n.ds-grid__count {\n  display: block;\n  font-family: var(--font-heading);\n  font-size: var(--text-display);\n  font-weight: var(--weight-display);\n  line-height: var(--line-display);\n  color: var(--color-heading);\n}\n.ds-grid__title {\n  margin: 0 0 var(--space-2);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  letter-spacing: calc(var(--space-1) * 2);\n  text-transform: var(--ui-transform);\n  color: var(--color-heading);\n}\n.ds-grid__text {\n  margin: 0;\n}\n\n/* ---------- tabs: small boxed tabs on a rule ---------- */\n.ds-tabs {\n  display: flex;\n  gap: var(--space-2);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n}\n.ds-tabs__tab {\n  display: block;\n  margin-bottom: calc(var(--border-width) * -1);\n  padding: var(--space-3) var(--space-5);\n  background: var(--color-surface-strong);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-control) var(--radius-control) 0 0;\n  color: var(--color-link-quiet);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-ui);\n  letter-spacing: var(--space-1);\n  text-transform: var(--ui-transform);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-tabs__tab:hover,\n.ds-tabs__tab.is-hover {\n  color: var(--color-link-hover);\n  text-decoration: var(--link-decoration-hover);\n}\n.ds-tabs__tab.is-current {\n  background: var(--color-canvas);\n  border-bottom-color: var(--color-canvas);\n  color: var(--color-heading);\n  font-weight: var(--weight-bold);\n}\n.ds-tabs__body {\n  padding: var(--space-6) 0 0;\n}\n\n/* ---------- badge ---------- */\n.ds-badge {\n  display: inline-block;\n  padding: 0 var(--space-3);\n  background: var(--fill-accent);\n  border-radius: var(--radius-pill);\n  color: var(--color-accent-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n  vertical-align: baseline;\n}\n/* Text-only marker, the \"new\" word after a title. */\n.ds-badge--alt {\n  padding: 0;\n  background: transparent;\n  color: var(--color-accent-alt);\n}\n/* A tag: outlined, quiet. */\n.ds-badge--tag {\n  background: var(--color-surface-alt);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  color: var(--color-link-quiet);\n  font-weight: var(--weight-body);\n}\n/* Status labels: the tag's outline, drawn and lettered in the status colour. */\n.ds-badge--success,\n.ds-badge--warning,\n.ds-badge--danger {\n  background: var(--color-surface);\n  border: var(--border-width) var(--border-style) currentColor;\n}\n.ds-badge--success {\n  color: var(--color-success);\n}\n.ds-badge--warning {\n  color: var(--color-warning);\n}\n.ds-badge--danger {\n  color: var(--color-danger);\n}\n\n/* ---------- sidebar: the index column on the right ---------- */\n.ds-sidebar {\n  min-width: 0;\n  font-size: var(--text-small);\n}\n.ds-sidebar__block {\n  margin: 0 0 var(--space-6);\n}\n.ds-sidebar__block:last-child {\n  margin-bottom: 0;\n}\n.ds-sidebar__title {\n  margin: 0 0 var(--space-3);\n  padding: 0 0 var(--space-2);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-body);\n  letter-spacing: calc(var(--space-1) * 2);\n  text-transform: var(--ui-transform);\n  color: var(--color-heading-alt);\n}\n.ds-sidebar__list {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-sidebar__list--two {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  column-gap: var(--space-4);\n}\n.ds-sidebar__item {\n  display: flex;\n  justify-content: space-between;\n  align-items: baseline;\n  gap: var(--space-3);\n  padding: var(--space-1) 0;\n}\n.ds-sidebar__link {\n  color: var(--color-link);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-sidebar__link:visited,\n.ds-sidebar__link.is-visited {\n  color: var(--color-link-visited);\n}\n.ds-sidebar__link:hover,\n.ds-sidebar__link.is-hover {\n  color: var(--color-link-hover);\n  text-decoration: var(--link-decoration-hover);\n}\n.ds-sidebar__count {\n  flex: none;\n  color: var(--color-text-muted);\n}\n.ds-sidebar__text {\n  margin: 0;\n}\n.ds-sidebar__search {\n  display: flex;\n  gap: var(--space-2);\n}\n/* A boxed block for the one thing that must stand out. */\n.ds-sidebar__block--box {\n  padding: var(--space-4) var(--space-5) var(--space-5);\n  background: var(--fill-panel);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-panel);\n}\n\n/* ---------- notice ---------- */\n.ds-notices {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-3);\n}\n.ds-notice {\n  margin: 0;\n  padding: var(--space-4) var(--space-5);\n  background: var(--color-notice);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-panel);\n  color: var(--color-notice-text);\n  font-size: var(--text-small);\n}\n.ds-notice__title {\n  font-weight: var(--weight-bold);\n}\n.ds-notice--error {\n  background: var(--color-danger-surface);\n  border-color: var(--color-danger);\n  color: var(--color-danger);\n}\n\n/* ---------- pagination ---------- */\n.ds-pagination {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: var(--space-2);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  font-size: var(--text-small);\n}\n.ds-pagination__link {\n  display: block;\n  padding: var(--space-1) var(--space-3);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-control);\n  background: var(--color-surface);\n  color: var(--color-link);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-pagination__link:hover,\n.ds-pagination__link.is-hover {\n  color: var(--color-link-hover);\n  text-decoration: var(--link-decoration-hover);\n}\n.ds-pagination__link.is-current {\n  background: var(--color-surface-strong);\n  border-color: var(--color-border-strong);\n  color: var(--color-heading-alt);\n  font-weight: var(--weight-bold);\n}\n.ds-pagination__link.is-disabled {\n  border-color: var(--color-border-muted);\n  color: var(--color-disabled-text);\n}\n\n/* ---------- dialog: a box with a title bar, in the page flow ---------- */\n.ds-dialog__backdrop {\n  padding: var(--space-6);\n  background: var(--color-overlay);\n}\n.ds-dialog {\n  box-sizing: border-box;\n  width: var(--size-dialog);\n  max-width: 100%;\n  margin: 0 auto;\n  background: var(--fill-panel);\n  border: var(--border-width) var(--border-style) var(--color-text-muted);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-dialog);\n}\n.ds-dialog__title {\n  margin: 0;\n  padding: var(--space-3) var(--space-4);\n  background: var(--fill-bar);\n  border-radius: var(--radius-panel) var(--radius-panel) 0 0;\n  color: var(--color-bar-text);\n  font-family: var(--font-body);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  text-shadow: var(--shadow-text);\n}\n.ds-dialog__body {\n  padding: var(--space-4);\n  font-size: var(--text-small);\n}\n.ds-dialog__text {\n  margin: 0 0 var(--space-4);\n}\n.ds-dialog__actions {\n  display: flex;\n  justify-content: flex-end;\n  gap: var(--space-3);\n}\n\n/* ---------- empty ---------- */\n.ds-empty {\n  padding: var(--space-6);\n  border-top: var(--border-width) var(--border-style) var(--color-border);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n  text-align: center;\n  color: var(--color-text-muted);\n}\n.ds-empty__text {\n  margin: 0 0 var(--space-4);\n}\n\n/* ---------- footer: the inverted strip closing the sheet ---------- */\n.ds-footer {\n  padding: var(--space-5) var(--space-7);\n  background: var(--fill-inverse);\n  border-radius: 0 0 var(--radius-page) var(--radius-page);\n  color: var(--color-inverse-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  letter-spacing: var(--space-1);\n  text-transform: var(--ui-transform);\n}\n.ds-footer__row {\n  display: flex;\n  justify-content: space-between;\n  gap: var(--space-5);\n  margin: 0;\n}\n.ds-footer__links {\n  display: flex;\n  gap: var(--space-5);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-footer__link {\n  color: var(--color-inverse-text);\n  text-decoration: underline;\n}\n.ds-footer__link:hover,\n.ds-footer__link.is-hover {\n  text-decoration: none;\n}\n\n/* Period components: small picture beside a name, a list that opens, a hint, a meter. Tokens only. */\n.ds-avatar {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  width: calc(var(--space-4) * 2);\n  height: calc(var(--space-4) * 2);\n  margin-right: var(--space-2);\n  background: var(--color-surface-strong);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  color: var(--color-heading);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  line-height: 1;\n  vertical-align: middle;\n}\n.ds-accordion__summary {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  cursor: pointer;\n  list-style: none;\n}\n.ds-accordion__summary::-webkit-details-marker {\n  display: none;\n}\n.ds-accordion__summary::after {\n  content: \"\";\n  flex: none;\n  width: calc(var(--text-base) * 0.7);\n  height: calc(var(--text-base) * 0.7);\n  margin-left: var(--space-2);\n  margin-bottom: calc(var(--space-2) + var(--border-width));\n  background: linear-gradient(currentColor, currentColor) center / 100% max(var(--border-width), calc(var(--text-base) * 0.12)) no-repeat, linear-gradient(currentColor, currentColor) center / max(var(--border-width), calc(var(--text-base) * 0.12)) 100% no-repeat;\n  color: var(--color-link);\n}\n.ds-accordion[open] > .ds-accordion__summary::after {\n  background: linear-gradient(currentColor, currentColor) center / 100% max(var(--border-width), calc(var(--text-base) * 0.12)) no-repeat;\n}\n.ds-accordion__summary > .ds-sidebar__title {\n  display: block;\n  flex: 1 1 auto;\n  margin: 0;\n}\n.ds-accordion__summary:focus-visible {\n  outline: var(--border-width) var(--border-style) var(--color-link);\n}\n.ds-progress::-moz-progress-bar {\n  background: var(--fill-bar);\n}\n",
    "specimen.html": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>chronoskin, linklog specimen</title>\n<link rel=\"stylesheet\" href=\"tokens.css\">\n<link rel=\"stylesheet\" href=\"components.css\">\n</head>\n<body class=\"ds-page\" data-component=\"shell\">\n<div class=\"ds-page__frame\">\n\n  <header class=\"ds-nav\" data-component=\"nav\">\n    <ul class=\"ds-nav__menu\">\n      <li><a class=\"ds-nav__link\" href=\"#links\">Links</a></li>\n      <li><a class=\"ds-nav__link\" href=\"#tags\">Tag index</a></li>\n      <li><a class=\"ds-nav__link\" href=\"#about\">About and suggest</a></li>\n    </ul>\n    <div class=\"ds-nav__head\">\n      <a class=\"ds-brand\" data-component=\"brand\" href=\"#links\">\n        <span class=\"ds-brand__mark\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 20l1.2-5.2L16 4l4 4L9.2 18.8z\"/><line x1=\"13.4\" y1=\"6.6\" x2=\"17.4\" y2=\"10.6\"/><polygon points=\"4,20 5.2,14.8 9.2,18.8\" fill=\"currentColor\"/></svg></span>\n        <span class=\"ds-brand__name\">chronoskin</span>\n      </a>\n      <p class=\"ds-nav__tagline\">a linklog of odd sounds and the things that make them<br>a few short items a day, since autumn 2003</p>\n    </div>\n    <ul class=\"ds-nav__tags\">\n      <li class=\"ds-nav__tags-label\">Most used:</li>\n      <li><a class=\"ds-nav__tag\" href=\"#tags\">tape</a></li>\n      <li><a class=\"ds-nav__tag\" href=\"#tags\">bells</a></li>\n      <li><a class=\"ds-nav__tag\" href=\"#tags\">organs</a></li>\n      <li><a class=\"ds-nav__tag\" href=\"#tags\">birdsong</a></li>\n      <li><a class=\"ds-nav__tag\" href=\"#tags\">whistling</a></li>\n      <li><a class=\"ds-nav__tag\" href=\"#tags\">music boxes</a></li>\n      <li><a class=\"ds-nav__tag\" href=\"#tags\">circuits</a></li>\n      <li><a class=\"ds-nav__tag\" href=\"#tags\">all 214 tags &raquo;</a></li>\n    </ul>\n  </header>\n\n  <!-- View 1, the links: three days of short items beside the tag index. -->\n  <section class=\"ds-view ds-view--home\" id=\"links\">\n    <section class=\"ds-hero\" data-component=\"hero\">\n      <div class=\"ds-hero__text\">\n        <h1 class=\"ds-hero__title\">Things worth hearing, one line each</h1>\n        <p class=\"ds-hero__lead\">Links, quotations and the odd note about bells, tape and home-made instruments.</p>\n      </div>\n      <div class=\"ds-hero__actions\">\n        <a class=\"ds-button\" href=\"#about\">Suggest a link</a>\n        <a class=\"ds-link\" href=\"#tags\">or start from the tag index &raquo;</a>\n      </div>\n    </section>\n\n    <div class=\"ds-page__columns\">\n      <main class=\"ds-page__main\" data-component=\"list\">\n        <section class=\"ds-day\">\n          <h2 class=\"ds-day__date\"><span>Tuesday, 18 October 2005</span> <span class=\"ds-badge\">6 items</span></h2>\n          <ul class=\"ds-list\">\n            <li class=\"ds-list__item\">\n              <span class=\"ds-list__kind\">Link</span>\n              <div class=\"ds-list__body\">\n                <p class=\"ds-list__excerpt\"><a class=\"ds-list__title\" href=\"#item\">A carillon you can play from a web page</a> <span class=\"ds-badge ds-badge--alt\">new</span> Twenty-three bells, a slow connection and a very patient tower keeper.</p>\n                <p class=\"ds-list__meta\">11:40 am &middot; via a bell ringer's diary &middot; <a class=\"ds-link\" href=\"#item\">8 comments</a> &middot; tagged <a class=\"ds-link ds-link--quiet\" href=\"#tags\">bells</a> <a class=\"ds-link ds-link--quiet\" href=\"#tags\">museums</a></p>\n              </div>\n            </li>\n            <li class=\"ds-list__item\">\n              <span class=\"ds-list__kind\">Quote</span>\n              <div class=\"ds-list__body\">\n                <p class=\"ds-list__quote\">&ldquo;A tape recorder is the only instrument that improves when you drop it.&rdquo;</p>\n                <p class=\"ds-list__meta\">10:15 am &middot; from an interview with a studio caretaker &middot; tagged <a class=\"ds-link ds-link--quiet\" href=\"#tags\">tape</a></p>\n              </div>\n            </li>\n            <li class=\"ds-list__item\">\n              <span class=\"ds-list__kind\">Link</span>\n              <div class=\"ds-list__body\">\n                <p class=\"ds-list__excerpt\"><a class=\"ds-list__title\" href=\"#item\">Building a glass harmonica from a salad spinner</a> It works, it is dangerous, and the instructions say so twice.</p>\n                <p class=\"ds-list__meta\">9:02 am &middot; via a shed workshop &middot; <a class=\"ds-link\" href=\"#item\">3 comments</a> &middot; tagged <a class=\"ds-link ds-link--quiet\" href=\"#tags\">glass</a> <a class=\"ds-link ds-link--quiet\" href=\"#tags\">circuits</a></p>\n              </div>\n            </li>\n            <li class=\"ds-list__item\">\n              <span class=\"ds-list__kind\">Note</span>\n              <div class=\"ds-list__body\">\n                <p class=\"ds-list__excerpt\">The foghorn archive linked last week has moved. The old address now plays a single, rather sad, tone.</p>\n                <p class=\"ds-list__meta\">8:30 am &middot; tagged <a class=\"ds-link ds-link--quiet\" href=\"#tags\">foghorns</a> <a class=\"ds-link ds-link--quiet\" href=\"#tags\">archives</a></p>\n              </div>\n            </li>\n          </ul>\n        </section>\n        <section class=\"ds-day\">\n          <h2 class=\"ds-day__date\"><span>Monday, 17 October 2005</span> <span class=\"ds-badge\">5 items</span></h2>\n          <ul class=\"ds-list\">\n            <li class=\"ds-list__item\">\n              <span class=\"ds-list__kind\">Link</span>\n              <div class=\"ds-list__body\">\n                <p class=\"ds-list__excerpt\"><a class=\"ds-list__title\" href=\"#item\">Every whistled language, on one map</a> Four are still used daily; one is used mostly to call goats.</p>\n                <p class=\"ds-list__meta\">6:20 pm &middot; via a field recordist &middot; <a class=\"ds-link\" href=\"#item\">15 comments</a> &middot; tagged <a class=\"ds-link ds-link--quiet\" href=\"#tags\">whistling</a></p>\n              </div>\n            </li>\n            <li class=\"ds-list__item\">\n              <span class=\"ds-list__kind\">Link</span>\n              <div class=\"ds-list__body\">\n                <p class=\"ds-list__excerpt\"><a class=\"ds-list__title\" href=\"#item\">A music box that punches its own cards</a> Slowly, loudly and never the same tune twice.</p>\n                <p class=\"ds-list__meta\">2:45 pm &middot; via a clock repairer &middot; tagged <a class=\"ds-link ds-link--quiet\" href=\"#tags\">music boxes</a> <a class=\"ds-link ds-link--quiet\" href=\"#tags\">toys</a></p>\n              </div>\n            </li>\n            <li class=\"ds-list__item\">\n              <span class=\"ds-list__kind\">Quote</span>\n              <div class=\"ds-list__body\">\n                <p class=\"ds-list__quote\">&ldquo;We tuned the organ to the room, and then they moved the room.&rdquo;</p>\n                <p class=\"ds-list__meta\">11:05 am &middot; from a parish newsletter &middot; tagged <a class=\"ds-link ds-link--quiet\" href=\"#tags\">organs</a> <a class=\"ds-link ds-link--quiet\" href=\"#tags\">tuning</a></p>\n              </div>\n            </li>\n          </ul>\n        </section>\n        <section class=\"ds-day\">\n          <h2 class=\"ds-day__date\"><span>Sunday, 16 October 2005</span> <span class=\"ds-badge\">4 items</span></h2>\n          <ul class=\"ds-list\">\n            <li class=\"ds-list__item\">\n              <span class=\"ds-list__kind\">Link</span>\n              <div class=\"ds-list__body\">\n                <p class=\"ds-list__excerpt\"><a class=\"ds-list__title\" href=\"#item\">Dawn chorus, recorded from the same window for nine years</a> The blackbird gets earlier; the traffic gets there first.</p>\n                <p class=\"ds-list__meta\">9:10 pm &middot; via a sound archive &middot; <a class=\"ds-link\" href=\"#item\">22 comments</a> &middot; tagged <a class=\"ds-link ds-link--quiet\" href=\"#tags\">birdsong</a> <a class=\"ds-link ds-link--quiet\" href=\"#tags\">tape</a></p>\n              </div>\n            </li>\n            <li class=\"ds-list__item\">\n              <span class=\"ds-list__kind\">Link</span>\n              <div class=\"ds-list__body\">\n                <p class=\"ds-list__excerpt\"><a class=\"ds-list__title\" href=\"#item\">Scores written for factory sirens</a> Performed once, in 1922, to a city that had no choice but to listen.</p>\n                <p class=\"ds-list__meta\">4:00 pm &middot; via a museum notebook &middot; tagged <a class=\"ds-link ds-link--quiet\" href=\"#tags\">sirens</a> <a class=\"ds-link ds-link--quiet\" href=\"#tags\">scores</a></p>\n              </div>\n            </li>\n          </ul>\n        </section>\n      </main>\n\n      <aside class=\"ds-sidebar\" data-component=\"sidebar\">\n        <div class=\"ds-sidebar__block ds-sidebar__block--box\">\n          <h2 class=\"ds-sidebar__title\">Search the log</h2>\n          <form class=\"ds-sidebar__search\" action=\"#\">\n            <input class=\"ds-form__input ds-form__input--wide\" type=\"text\" value=\"carillon\" aria-label=\"Search the log\">\n            <button class=\"ds-button ds-button--secondary\" type=\"button\">Go</button>\n          </form>\n        </div>\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Tag index</h2>\n          <ul class=\"ds-tags\">\n            <li><a class=\"ds-tags__tag\" href=\"#tags\">accordions</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--4\" href=\"#tags\">bells</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--3\" href=\"#tags\">birdsong</a></li>\n            <li><a class=\"ds-tags__tag\" href=\"#tags\">buskers</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">circuits</a></li>\n            <li><a class=\"ds-tags__tag\" href=\"#tags\">clocks</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">echo</a></li>\n            <li><a class=\"ds-tags__tag\" href=\"#tags\">foghorns</a></li>\n            <li><a class=\"ds-tags__tag\" href=\"#tags\">glass</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">museums</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--3\" href=\"#tags\">organs</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">scores</a></li>\n            <li><a class=\"ds-tags__tag\" href=\"#tags\">sirens</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--4\" href=\"#tags\">tape</a></li>\n            <li><a class=\"ds-tags__tag\" href=\"#tags\">toys</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">tuning</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--3\" href=\"#tags\">whistling</a></li>\n            <li><a class=\"ds-tags__tag\" href=\"#tags\">wind</a></li>\n          </ul>\n        </div>\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Most followed this month</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">Every whistled language</a> <span class=\"ds-sidebar__count\">412</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">Dawn chorus, nine years</a> <span class=\"ds-sidebar__count\">377</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link is-visited\" href=\"#item\">Glass harmonica, salad spinner</a> <span class=\"ds-sidebar__count\">301</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">Scores for factory sirens</a> <span class=\"ds-sidebar__count\">188</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link is-hover\" href=\"#item\">The self-punching music box</a> <span class=\"ds-sidebar__count\">140</span></li>\n          </ul>\n        </div>\n        <div class=\"ds-sidebar__block\">\n          <details class=\"ds-accordion\" open>\n<summary class=\"ds-accordion__summary\"><span class=\"ds-sidebar__title\">By month</span></summary>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#links\">October 2005</a> <span class=\"ds-sidebar__count\">96</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#links\">September 2005</a> <span class=\"ds-sidebar__count\">141</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#links\">August 2005</a> <span class=\"ds-sidebar__count\">118</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#links\">July 2005</a> <span class=\"ds-sidebar__count\">127</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#links\">June 2005</a> <span class=\"ds-sidebar__count\">102</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#links\">May 2005</a> <span class=\"ds-sidebar__count\">134</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#tags\">All 25 months</a></li>\n          </ul>\n        </details></div>\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Feeds</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#tags\">Everything</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#tags\">Links only</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#tags\">Quotations only</a></li>\n          </ul>\n        </div>\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Who keeps this</h2>\n          <p class=\"ds-sidebar__text\">Tobin Hale, who repairs reed organs and cannot whistle. <a class=\"ds-sidebar__link\" href=\"#about\">More, and how to suggest a link &raquo;</a></p>\n        </div>\n      </aside>\n    </div>\n\n    <div class=\"ds-grid\" data-component=\"grid\">\n      <div class=\"ds-grid__cell\">\n        <span class=\"ds-grid__count\">2,140</span>\n        <h3 class=\"ds-grid__title\">Links</h3>\n        <p class=\"ds-grid__text\">One line and an address. <a class=\"ds-link\" href=\"#tags\">Browse &raquo;</a></p>\n      </div>\n      <div class=\"ds-grid__cell ds-grid__cell--2\">\n        <span class=\"ds-grid__count\">386</span>\n        <h3 class=\"ds-grid__title\">Quotations</h3>\n        <p class=\"ds-grid__text\">Overheard, read or misremembered. <a class=\"ds-link\" href=\"#tags\">Browse &raquo;</a></p>\n      </div>\n      <div class=\"ds-grid__cell ds-grid__cell--3\">\n        <span class=\"ds-grid__count\">171</span>\n        <h3 class=\"ds-grid__title\">Notes</h3>\n        <p class=\"ds-grid__text\">Corrections and moved addresses. <a class=\"ds-link\" href=\"#tags\">Browse &raquo;</a></p>\n      </div>\n      <div class=\"ds-grid__cell ds-grid__cell--4\">\n        <span class=\"ds-grid__count\">214</span>\n        <h3 class=\"ds-grid__title\">Tags</h3>\n        <p class=\"ds-grid__text\">From accordions to workshops. <a class=\"ds-link\" href=\"#tags\">Open the index &raquo;</a></p>\n      </div>\n    </div>\n  </section>\n\n  <!-- View 2, one item: the link, a few paragraphs about it, the comments under it. -->\n  <section class=\"ds-view\" id=\"item\">\n    <ol class=\"ds-breadcrumb\" data-component=\"breadcrumb\">\n      <li><a class=\"ds-breadcrumb__link\" href=\"#links\">Links</a></li>\n      <li class=\"ds-breadcrumb__sep\" aria-hidden=\"true\">/</li>\n      <li><a class=\"ds-breadcrumb__link\" href=\"#tags\">Bells</a></li>\n      <li class=\"ds-breadcrumb__sep\" aria-hidden=\"true\">/</li>\n      <li class=\"ds-breadcrumb__current\">A carillon you can play from a web page</li>\n    </ol>\n    <div class=\"ds-page__columns\">\n      <div class=\"ds-page__main\">\n\n        <div class=\"ds-page-header\" data-component=\"page-header\">\n          <div class=\"ds-page-header__main\">\n            <h1 class=\"ds-page-header__title\">A carillon you can play from a web page</h1>\n            <p class=\"ds-page-header__text\">Linked on Tuesday, 18 October 2005 at 11:40 am. Followed 96 times, eight comments.</p>\n          </div>\n          <div class=\"ds-page-header__action\"><a class=\"ds-button\" href=\"#links\">Back to the log</a></div>\n        </div>\n\n        <section class=\"ds-page__section\" data-component=\"typography\">\n          <div class=\"ds-prose\">\n            <h1>Twenty-three bells and a slow connection</h1>\n            <p>A tower keeper in a small northern town has wired the practice keyboard of his carillon to a web page. You press a key; some seconds later, <strong>a real bell rings in a real tower</strong>, and a microphone sends it back to you.</p>\n            <blockquote><p>Please do not play after nine in the evening. The neighbours know where I live.</p></blockquote>\n            <h2>Why it is worth the wait</h2>\n            <p>The delay is the instrument. Nobody can play fast, so everybody plays carefully, and the <a class=\"ds-link\" href=\"#item\">log of what was played</a> reads like a very slow conversation.</p>\n            <ul>\n              <li>Two octaves, no sharps below middle C.</li>\n              <li>One player at a time; the queue is shown on the page.</li>\n              <li>Silent on Sundays until noon.</li>\n            </ul>\n            <h3>For the curious</h3>\n            <p>The page sends one line per note, such as <code>ring 14 soft</code>, and the tower answers with the time it struck.</p>\n          </div>\n          <p class=\"ds-post__meta\">Via a bell ringer's diary &middot; tagged <a class=\"ds-link ds-link--quiet\" href=\"#tags\">bells</a> <a class=\"ds-link ds-link--quiet\" href=\"#tags\">museums</a> &middot; <a class=\"ds-link ds-link--quiet\" href=\"#item\">Permanent link</a></p>\n        </section>\n\n        <section class=\"ds-page__section\" data-component=\"links\">\n          <p class=\"ds-page__label\">Filed near this</p>\n          <ul class=\"ds-links\">\n            <li><a class=\"ds-link\" href=\"#item\">Bell founding, filmed in 1931</a></li>\n            <li><a class=\"ds-link is-visited\" href=\"#item\">A tower clock that plays hymns badly</a></li>\n            <li><a class=\"ds-link is-hover\" href=\"#tags\">Everything tagged bells</a></li>\n            <li><a class=\"ds-link is-active\" href=\"#item\">Handbells by post</a></li>\n            <li><a class=\"ds-link ds-link--quiet\" href=\"#links\">October 2005</a></li>\n            <li><a class=\"ds-link ds-link--strong\" href=\"#about\">Suggest a better one</a></li>\n          </ul>\n        </section>\n\n        <section class=\"ds-page__section\">\n          <p class=\"ds-page__label\">Three of eight comments</p>\n          <ol class=\"ds-comments\">\n            <li class=\"ds-comment\">\n              <p class=\"ds-comment__text\">I waited forty minutes for my turn and played three notes of a scale. Best forty minutes of the week.</p>\n              <p class=\"ds-comment__meta\"><span class=\"ds-avatar\" aria-hidden=\"true\">MO</span><a class=\"ds-link\" href=\"#about\">Maren Oake</a> &middot; 18 October 2005, 12:15 pm</p>\n            </li>\n            <li class=\"ds-comment ds-comment--author\">\n              <p class=\"ds-comment__text\">The keeper writes that the record so far is a whole hymn, played by somebody in a library over a lunch hour.</p>\n              <p class=\"ds-comment__meta\"><span class=\"ds-avatar\" aria-hidden=\"true\">TH</span><a class=\"ds-link ds-link--strong\" href=\"#about\">Tobin Hale</a> &middot; 18 October 2005, 1:02 pm</p>\n            </li>\n            <li class=\"ds-comment\">\n              <p class=\"ds-comment__text\">Does anyone know whether the lowest bell is really out of tune, or is that my speakers?</p>\n              <p class=\"ds-comment__meta\"><span class=\"ds-avatar\" aria-hidden=\"true\">IL</span><a class=\"ds-link\" href=\"#about\">Ivo Lindgren</a> &middot; 18 October 2005, 2:30 pm &middot; <a class=\"ds-link ds-link--quiet\" href=\"#item\">edit</a> &middot; <a class=\"ds-link ds-link--quiet\" href=\"#item\">delete</a></p>\n            </li>\n          </ol>\n        </section>\n\n        <section class=\"ds-page__section\" data-component=\"dialog\">\n          <div class=\"ds-dialog__backdrop\">\n            <div class=\"ds-dialog\" role=\"dialog\" aria-labelledby=\"dlg-title\">\n              <h3 class=\"ds-dialog__title\" id=\"dlg-title\">Delete your comment?</h3>\n              <div class=\"ds-dialog__body\">\n                <p class=\"ds-dialog__text\">The comment you posted at 2:30 pm will be removed from this item. This cannot be undone.</p>\n                <div class=\"ds-dialog__actions\">\n                  <button class=\"ds-button ds-button--danger\" type=\"button\">Delete</button>\n                  <a class=\"ds-button ds-button--secondary\" href=\"#item\">Cancel</a>\n                </div>\n              </div>\n            </div>\n          </div>\n        </section>\n\n        <section class=\"ds-page__section\" data-component=\"notice\">\n          <div class=\"ds-notices\">\n            <p class=\"ds-notice\"><span class=\"ds-notice__title\">Thank you.</span> Your last comment is waiting for approval and will appear shortly.</p>\n            <p class=\"ds-notice ds-notice--error\"><span class=\"ds-notice__title\">Not posted.</span> One field below needs another look.</p>\n          </div>\n        </section>\n\n        <section class=\"ds-page__section ds-page__section--last\" data-component=\"form\">\n          <form class=\"ds-form\" action=\"#\">\n            <h3 class=\"ds-form__title\">Add a comment</h3>\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"f-name\">Name</label>\n              <div class=\"ds-form__field\"><input class=\"ds-form__input\" id=\"f-name\" type=\"text\" value=\"Ivo Lindgren\"></div>\n            </div>\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"f-mail\">E-mail</label>\n              <div class=\"ds-form__field\">\n                <input class=\"ds-form__input is-invalid\" id=\"f-mail\" type=\"text\" value=\"ivo at example\">\n                <p class=\"ds-form__error\">That does not look like an e-mail address.</p>\n              </div>\n            </div>\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"f-about\">About</label>\n              <div class=\"ds-form__field\">\n                <select class=\"ds-form__input ds-form__input--auto\" id=\"f-about\">\n                  <option>This item</option>\n                  <option>An earlier comment</option>\n                  <option>A dead link</option>\n                </select>\n              </div>\n            </div>\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"f-text\">Comment</label>\n              <div class=\"ds-form__field\">\n                <textarea class=\"ds-form__input ds-form__input--wide\" id=\"f-text\" rows=\"4\">It was my speakers. The bell is fine.</textarea>\n                <p class=\"ds-form__hint\">Plain text. Line breaks are kept; addresses become links.</p>\n              </div>\n            </div>\n            <div class=\"ds-form__row\">\n              <span class=\"ds-form__label\"></span>\n              <label class=\"ds-form__check\"><input class=\"ds-form__checkbox\" type=\"checkbox\" checked> Remember my details</label>\n            </div>\n            <div class=\"ds-form__actions\" data-component=\"buttons\">\n              <button class=\"ds-button\" type=\"button\">Post</button>\n              <button class=\"ds-button ds-button--secondary\" type=\"button\">Preview</button>\n              <button class=\"ds-button ds-button--danger\" type=\"button\">Discard</button>\n              <button class=\"ds-button is-disabled\" type=\"button\" disabled>Closed</button>\n            </div>\n          </form>\n        </section>\n\n      </div>\n\n      <aside class=\"ds-sidebar\">\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Before and after</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">&laquo; A quotation about tape</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#links\">Back to today &raquo;</a></li>\n          </ul>\n        </div>\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Also tagged bells</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">Bell founding, filmed in 1931</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link is-visited\" href=\"#item\">A tower clock that plays hymns badly</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">Handbells by post</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">Change ringing as arithmetic</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">The cracked bell of a ferry</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#tags\">All 148 items</a></li>\n          </ul>\n        </div>\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Tags near bells</h2>\n          <ul class=\"ds-tags\">\n            <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">clocks</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--3\" href=\"#tags\">museums</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--3\" href=\"#tags\">organs</a></li>\n            <li><a class=\"ds-tags__tag\" href=\"#tags\">scores</a></li>\n            <li><a class=\"ds-tags__tag\" href=\"#tags\">sirens</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">towers</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--4\" href=\"#tags\">tuning</a></li>\n          </ul>\n        </div>\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Same day</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">A quotation about tape</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">Glass harmonica, salad spinner</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">The foghorn archive has moved</a></li>\n          </ul>\n        </div>\n        <div class=\"ds-sidebar__block ds-sidebar__block--box\">\n          <h2 class=\"ds-sidebar__title\">Commenting</h2>\n          <p class=\"ds-sidebar__text\">Comments close thirty days after an item is linked. A first comment waits for approval; after that yours appear at once. You can edit or delete your own for an hour.</p>\n        </div>\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Most followed this month</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">Every whistled language</a> <span class=\"ds-sidebar__count\">412</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">Dawn chorus, nine years</a> <span class=\"ds-sidebar__count\">377</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">Glass harmonica, salad spinner</a> <span class=\"ds-sidebar__count\">301</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">Scores for factory sirens</a> <span class=\"ds-sidebar__count\">188</span></li>\n          </ul>\n        </div>\n        <div class=\"ds-sidebar__block\">\n          <details class=\"ds-accordion\" open>\n<summary class=\"ds-accordion__summary\"><span class=\"ds-sidebar__title\">By month</span></summary>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#links\">October 2005</a> <span class=\"ds-sidebar__count\">96</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#links\">September 2005</a> <span class=\"ds-sidebar__count\">141</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#links\">August 2005</a> <span class=\"ds-sidebar__count\">118</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#links\">July 2005</a> <span class=\"ds-sidebar__count\">127</span></li>\n          </ul>\n        </details></div>\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Feeds</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">Comments on this item</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#tags\">Everything</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#tags\">Links only</a></li>\n          </ul>\n        </div>\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Tag index</h2>\n          <ul class=\"ds-tags\">\n            <li><a class=\"ds-tags__tag\" href=\"#tags\">accordions</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--4\" href=\"#tags\">bells</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--3\" href=\"#tags\">birdsong</a></li>\n            <li><a class=\"ds-tags__tag\" href=\"#tags\">buskers</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">circuits</a></li>\n            <li><a class=\"ds-tags__tag\" href=\"#tags\">clocks</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">echo</a></li>\n            <li><a class=\"ds-tags__tag\" href=\"#tags\">foghorns</a></li>\n            <li><a class=\"ds-tags__tag\" href=\"#tags\">glass</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">museums</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--3\" href=\"#tags\">organs</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">scores</a></li>\n            <li><a class=\"ds-tags__tag\" href=\"#tags\">sirens</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--4\" href=\"#tags\">tape</a></li>\n            <li><a class=\"ds-tags__tag\" href=\"#tags\">toys</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">tuning</a></li>\n            <li><a class=\"ds-tags__tag ds-tags__tag--3\" href=\"#tags\">whistling</a></li>\n            <li><a class=\"ds-tags__tag\" href=\"#tags\">wind</a></li>\n          </ul>\n        </div>\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Suggested lately</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">A footbridge that hums</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">Tin whistles, mass produced</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link is-visited\" href=\"#item\">The loudest room in a library</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">Sheep bells by region</a></li>\n          </ul>\n        </div>\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Others who collect</h2>\n          <ul class=\"ds-sidebar__list ds-sidebar__list--two\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#about\">Field tapes</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#about\">Bell towers</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#about\">Reed and pipe</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#about\">Loud rooms</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#about\">Old circuits</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#about\">Wax and shellac</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#about\">Bird hours</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#about\">Clockwork</a></li>\n          </ul>\n        </div>\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Who keeps this</h2>\n          <p class=\"ds-sidebar__text\">Tobin Hale, who repairs reed organs and cannot whistle. <a class=\"ds-sidebar__link\" href=\"#about\">More, and how to suggest a link &raquo;</a></p>\n        </div>\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Dead links</h2>\n          <p class=\"ds-sidebar__text\">Addresses move. If this one has gone silent, say so in a comment and it will be marked.</p>\n        </div>\n      </aside>\n    </div>\n  </section>\n\n  <!-- View 3, the tag index: every tag by weight, then the busiest as a table. -->\n  <section class=\"ds-view\" id=\"tags\">\n    <ol class=\"ds-breadcrumb\">\n      <li><a class=\"ds-breadcrumb__link\" href=\"#links\">Links</a></li>\n      <li class=\"ds-breadcrumb__sep\" aria-hidden=\"true\">/</li>\n      <li><a class=\"ds-breadcrumb__link\" href=\"#tags\">Tag index</a></li>\n      <li class=\"ds-breadcrumb__sep\" aria-hidden=\"true\">/</li>\n      <li class=\"ds-breadcrumb__current\">All tags</li>\n    </ol>\n    <div class=\"ds-page__wide\">\n\n      <div class=\"ds-page-header\">\n        <div class=\"ds-page-header__main\">\n          <h1 class=\"ds-page-header__title\">Tag index</h1>\n          <p class=\"ds-page-header__text\">Every tag used since autumn 2003; the larger the word, the more items it holds.</p>\n        </div>\n        <div class=\"ds-page-header__action\"><a class=\"ds-button\" href=\"#links\">Latest links</a></div>\n      </div>\n\n      <ul class=\"ds-stats\" data-component=\"stats\">\n        <li class=\"ds-stat\"><span class=\"ds-stat__value\">2,697</span> <span class=\"ds-stat__label\">items</span></li>\n        <li class=\"ds-stat\"><span class=\"ds-stat__value\">214</span> <span class=\"ds-stat__label\">tags</span></li>\n        <li class=\"ds-stat\"><span class=\"ds-stat__value\">25</span> <span class=\"ds-stat__label\">months</span></li>\n        <li class=\"ds-stat\"><span class=\"ds-stat__value\">61</span> <span class=\"ds-stat__label\">dead links</span></li>\n      </ul>\n\n      <section class=\"ds-page__section\" data-component=\"tabs\">\n        <ul class=\"ds-tabs\">\n          <li><a class=\"ds-tabs__tab is-current\" href=\"#tags\">By weight</a></li>\n          <li><a class=\"ds-tabs__tab\" href=\"#tags\">A to Z</a></li>\n          <li><a class=\"ds-tabs__tab\" href=\"#tags\">Newest</a></li>\n        </ul>\n        <div class=\"ds-tabs__body\">\n          <div class=\"ds-panel\" data-component=\"panel\">\n            <h3 class=\"ds-panel__title\">The forty most used</h3>\n            <div class=\"ds-panel__body\">\n              <ul class=\"ds-tags\">\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">accordions</a></li>\n                <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">archives</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">barrel organs</a></li>\n                <li><a class=\"ds-tags__tag ds-tags__tag--4\" href=\"#tags\">bells</a></li>\n                <li><a class=\"ds-tags__tag ds-tags__tag--3\" href=\"#tags\">birdsong</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">brass</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">buskers</a></li>\n                <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">circuits</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">clocks</a></li>\n                <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">cylinders</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">drums</a></li>\n                <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">echo</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">factories</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">foghorns</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">glass</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">harbours</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">kites</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">lathes</a></li>\n                <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">museums</a></li>\n                <li><a class=\"ds-tags__tag ds-tags__tag--3\" href=\"#tags\">music boxes</a></li>\n                <li><a class=\"ds-tags__tag ds-tags__tag--3\" href=\"#tags\">organs</a></li>\n                <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">pipes</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">rain</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">reeds</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">rivers</a></li>\n                <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">scores</a></li>\n                <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">shellac</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">sirens</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">stairwells</a></li>\n                <li><a class=\"ds-tags__tag ds-tags__tag--4\" href=\"#tags\">tape</a></li>\n                <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">telephones</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">toys</a></li>\n                <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">trains</a></li>\n                <li><a class=\"ds-tags__tag ds-tags__tag--2\" href=\"#tags\">tuning</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">valves</a></li>\n                <li><a class=\"ds-tags__tag ds-tags__tag--3\" href=\"#tags\">whistling</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">wind</a></li>\n                <li><a class=\"ds-tags__tag\" href=\"#tags\">workshops</a></li>\n              </ul>\n            </div>\n          </div>\n        </div>\n      </section>\n\n      <section class=\"ds-page__section\">\n        <p class=\"ds-page__label\">The busiest tags</p>\n        <table class=\"ds-table\" data-component=\"table\">\n          <thead>\n            <tr><th>Tag</th><th>Latest item</th><th>Last used</th><th>State</th><th class=\"ds-table__num\">Items</th></tr>\n          </thead>\n          <tbody>\n            <tr><td><a class=\"ds-link ds-link--strong\" href=\"#tags\">tape</a></td><td><a class=\"ds-link\" href=\"#item\">A quotation about dropping recorders</a></td><td>18 October 2005</td><td><span class=\"ds-badge ds-badge--success\">in use</span></td><td class=\"ds-table__num\">163</td></tr>\n            <tr class=\"ds-table__row--alt\"><td><a class=\"ds-link ds-link--strong\" href=\"#tags\">bells</a></td><td><a class=\"ds-link\" href=\"#item\">A carillon you can play from a web page</a></td><td>18 October 2005</td><td><span class=\"ds-badge ds-badge--success\">in use</span></td><td class=\"ds-table__num\">148</td></tr>\n            <tr><td><a class=\"ds-link ds-link--strong\" href=\"#tags\">organs</a></td><td><a class=\"ds-link\" href=\"#item\">We tuned the organ to the room</a></td><td>17 October 2005</td><td><span class=\"ds-badge ds-badge--success\">in use</span></td><td class=\"ds-table__num\">121</td></tr>\n            <tr class=\"ds-table__row--alt\"><td><a class=\"ds-link ds-link--strong\" href=\"#tags\">birdsong</a></td><td><a class=\"ds-link is-visited\" href=\"#item\">Dawn chorus from one window</a></td><td>16 October 2005</td><td><span class=\"ds-badge ds-badge--success\">in use</span></td><td class=\"ds-table__num\">104</td></tr>\n            <tr><td><a class=\"ds-link ds-link--strong\" href=\"#tags\">cylinders</a></td><td><a class=\"ds-link is-visited\" href=\"#item\">Wax recordings of a street market</a></td><td>2 June 2005</td><td><span class=\"ds-badge ds-badge--warning\">going quiet</span></td><td class=\"ds-table__num\">37</td></tr>\n            <tr class=\"ds-table__row--alt\"><td><a class=\"ds-link ds-link--strong\" href=\"#tags\">ringtones</a></td><td><a class=\"ds-link is-visited\" href=\"#item\">A choir sings the default tune</a></td><td>11 March 2004</td><td><span class=\"ds-badge ds-badge--danger\">retired</span></td><td class=\"ds-table__num\">9</td></tr>\n          </tbody>\n        </table>\n      </section>\n\n      <section class=\"ds-page__section\" data-component=\"pagination\">\n        <ul class=\"ds-pagination\">\n          <li><a class=\"ds-pagination__link\" href=\"#tags\">&laquo; Previous</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#tags\">1</a></li>\n          <li><a class=\"ds-pagination__link is-current\" href=\"#tags\">2</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#tags\">3</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#tags\">4</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#tags\">Next &raquo;</a></li>\n        </ul>\n      </section>\n\n      <section class=\"ds-page__section ds-page__section--last\">\n        <p class=\"ds-page__label\">Newest tag: typewriters</p>\n        <div class=\"ds-empty\" data-component=\"empty\">\n          <p class=\"ds-empty__text\">Nothing is tagged &ldquo;typewriters&rdquo; yet. It was made for a link that turned out to be dead.</p>\n          <a class=\"ds-button ds-button--secondary\" href=\"#about\">Suggest the first one</a>\n        </div>\n      </section>\n\n    </div>\n  </section>\n\n  <!-- View 4, about and suggest: who keeps the log and how to send it a link. -->\n  <section class=\"ds-view\" id=\"about\">\n    <ol class=\"ds-breadcrumb\">\n      <li><a class=\"ds-breadcrumb__link\" href=\"#links\">Links</a></li>\n      <li class=\"ds-breadcrumb__sep\" aria-hidden=\"true\">/</li>\n      <li class=\"ds-breadcrumb__current\">About and suggest</li>\n    </ol>\n    <div class=\"ds-page__columns\">\n      <div class=\"ds-page__main\">\n\n        <div class=\"ds-page-header\">\n          <div class=\"ds-page-header__main\">\n            <h1 class=\"ds-page-header__title\">About and suggest</h1>\n            <p class=\"ds-page-header__text\">Who keeps the log, what gets in, and how to send it a link.</p>\n          </div>\n          <div class=\"ds-page-header__action\"><a class=\"ds-button\" href=\"#links\">Latest links</a></div>\n        </div>\n\n        <section class=\"ds-page__section\">\n          <div class=\"ds-panel\">\n            <h3 class=\"ds-panel__title\">The keeper</h3>\n            <div class=\"ds-panel__body ds-prose\">\n              <p data-component=\"badge\">Tobin Hale repairs reed organs in a rented railway arch and reads too many newsletters. <span class=\"ds-badge\">96</span> items so far this month, most of them tagged <span class=\"ds-badge ds-badge--tag\">tape</span> <span class=\"ds-badge ds-badge--tag\">bells</span>. A suggested link is <span class=\"ds-badge ds-badge--success\">posted</span> within a day, <span class=\"ds-badge ds-badge--warning\">held</span> if it needs checking, or <span class=\"ds-badge ds-badge--danger\">declined</span> with a reason.</p>\n            </div>\n          </div>\n        </section>\n\n        <section class=\"ds-page__section\">\n          <div class=\"ds-prose\">\n            <h2>What gets in</h2>\n            <p>Anything that makes a noise worth describing, and the people who build, record or repair it. chronoskin has <a class=\"ds-link\" href=\"#tags\">214 tags</a> and no opinions about music.</p>\n            <h2>What does not</h2>\n            <p>Reviews, shops and anything that plays by itself when the page opens.</p>\n          </div>\n        </section>\n\n        <section class=\"ds-page__section ds-page__section--last\">\n          <form class=\"ds-form\" action=\"#\">\n            <h3 class=\"ds-form__title\">Suggest a link</h3>\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"c-name\">Your name</label>\n              <div class=\"ds-form__field\"><input class=\"ds-form__input\" id=\"c-name\" type=\"text\" value=\"Maren Oake\"></div>\n            </div>\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"c-link\">Address</label>\n              <div class=\"ds-form__field\"><input class=\"ds-form__input ds-form__input--wide\" id=\"c-link\" type=\"text\" value=\"example.org/singing-bridge\"></div>\n            </div>\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"c-kind\">Kind</label>\n              <div class=\"ds-form__field\">\n                <select class=\"ds-form__input ds-form__input--auto\" id=\"c-kind\">\n                  <option>Link</option>\n                  <option>Quotation</option>\n                  <option>Correction</option>\n                </select>\n              </div>\n            </div>\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"c-text\">One line</label>\n              <div class=\"ds-form__field\">\n                <textarea class=\"ds-form__input ds-form__input--wide\" id=\"c-text\" rows=\"3\">A footbridge that hums in a west wind, with recordings.</textarea>\n                <p class=\"ds-form__hint\">Say what it sounds like. The log will add the tags.</p>\n              </div>\n            </div>\n            <div class=\"ds-form__actions\">\n              <button class=\"ds-button\" type=\"button\">Send</button>\n              <a class=\"ds-button ds-button--secondary\" href=\"#links\">Cancel</a>\n            </div>\n          </form>\n        </section>\n\n      </div>\n\n      <aside class=\"ds-sidebar\">\n        <div class=\"ds-sidebar__block ds-sidebar__block--box\">\n          <h2 class=\"ds-sidebar__title\">House rules</h2>\n          <p class=\"ds-sidebar__text\">One line per item. A source is always named. Dead links are marked, not removed.</p>\n        </div>\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Suggested lately</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">A footbridge that hums</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">Tin whistles, mass produced</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link is-visited\" href=\"#item\">The loudest room in a library</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">Sheep bells by region</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">A kettle tuned to a fifth</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#item\">Lift music, catalogued</a></li>\n          </ul>\n        </div>\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Others who collect</h2>\n          <ul class=\"ds-sidebar__list ds-sidebar__list--two\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#about\">Field tapes</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#about\">Bell towers</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#about\">Reed and pipe</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#about\">Loud rooms</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#about\">Old circuits</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#about\">Wax and shellac</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#about\">Bird hours</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#about\">Clockwork</a></li>\n          </ul>\n        </div>\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Feeds</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#tags\">Everything</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#tags\">Links only</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-sidebar__link\" href=\"#tags\">Quotations only</a></li>\n          </ul>\n        </div>\n        <div class=\"ds-sidebar__block\">\n          <h2 class=\"ds-sidebar__title\">Colophon</h2>\n          <p class=\"ds-sidebar__text\">Kept in one text file and published by a short script, several times a day. Quote freely and say where from.</p>\n        </div>\n      </aside>\n    </div>\n  </section>\n\n  <footer class=\"ds-footer\" data-component=\"footer\">\n    <div class=\"ds-footer__row\">\n      <span>chronoskin is kept by Tobin Hale, 2003 to 2005.</span>\n      <ul class=\"ds-footer__links\">\n        <li><a class=\"ds-footer__link\" href=\"#links\">Links</a></li>\n        <li><a class=\"ds-footer__link\" href=\"#tags\">Tag index</a></li>\n        <li><a class=\"ds-footer__link\" href=\"#about\">Suggest a link</a></li>\n      </ul>\n    </div>\n  </footer>\n\n</div>\n</body>\n</html>\n",
    "style.json": "{\n  \"id\": \"v1.weblogs-2000s.blog.s06.p02.t11.u02\",\n  \"library\": \"2026.10.09-1346\",\n  \"era\": {\n    \"slug\": \"weblogs-2000s\",\n    \"years\": [\n      2002,\n      2007\n    ]\n  },\n  \"archetype\": \"blog\",\n  \"mode\": \"mix\",\n  \"markup\": \"modern\",\n  \"viewport\": {\n    \"width\": 1024,\n    \"fluid\": false\n  },\n  \"source\": \"https://chrono.skin/s/v1-wl-62b2\",\n  \"short\": \"v1-wl-62b2\"\n}\n",
    "tokens.css": "/* @part palette */\n:root {\n  --color-page: #ddddbb;\n  --color-canvas: #eeeedd;\n  --color-surface: #eeeedd;\n  --color-surface-alt: #e8e8d0;\n  --color-surface-strong: #ddddbb;\n  --color-bar: #777744;\n  --color-bar-text: #ffffee;\n  --color-bar-alt: #bbcc99;\n  --color-bar-alt-text: #182d04;\n  --color-inverse: #182d04;\n  --color-inverse-text: #ccccaa;\n  --color-text: #777744;\n  --color-text-muted: #808050;\n  --color-heading: #182d04;\n  --color-heading-alt: #99aa77;\n  --color-link: #006d00;\n  --color-link-quiet: #99aa77;\n  --color-link-visited: #99aa77;\n  --color-link-hover: #182d04;\n  --color-link-active: #cc6600;\n  --color-border: #ccccaa;\n  --color-border-strong: #99aa77;\n  --color-border-muted: #ddddbb;\n  --color-accent: #777744;\n  --color-accent-text: #ffffee;\n  --color-accent-alt: #cc6600;\n  --color-fill-1: #d0e0a8;\n  --color-fill-2: #ddddbb;\n  --color-fill-3: #cccc99;\n  --color-fill-4: #ffffee;\n  --color-button: #bbcc99;\n  --color-button-text: #182d04;\n  --color-button-hover-text: #182d04;\n  --color-button-secondary: #ddddbb;\n  --color-button-secondary-text: #333333;\n  --color-input: #ffffff;\n  --color-input-text: #000000;\n  --color-input-border: #767676;\n  --color-disabled: #ddddbb;\n  --color-disabled-text: #99aa77;\n  --color-danger: #cc0000;\n  --color-danger-surface: #ffffee;\n  --color-success: #006d00;\n  --color-warning: #cc6600;\n  --color-notice: #ffffee;\n  --color-notice-text: #777744;\n  --color-focus: #777744;\n  --color-shadow: #777744;\n  --color-overlay: #ddddbb;\n}\n\n/* @part type */\n:root {\n  --font-body: Times, \"Times New Roman\", serif;\n  --font-heading: Arial, Helvetica, sans-serif;\n  --font-ui: Arial, Helvetica, sans-serif;\n  --font-mono: \"Courier New\", Courier, monospace;\n  --text-base: 16px;\n  --text-small: 13px;\n  --text-ui: 13px;\n  --text-large: 16px;\n  --text-display: 24px;\n  --text-h1: 18px;\n  --text-h2: 16px;\n  --text-h3: 13px;\n  --line-body: 1.375;\n  --line-heading: 1.2;\n  --line-display: 1.2;\n  --weight-body: 400;\n  --weight-bold: 700;\n  --weight-heading: 700;\n  --weight-display: 700;\n  --weight-ui: 400;\n  --heading-transform: none;\n  --heading-tracking: 0;\n  --display-tracking: 0;\n  --figure-shift: 0em;\n  --ui-transform: none;\n  --link-decoration: underline;\n  --link-decoration-hover: underline;\n  --link-decoration-quiet: underline;\n}\n\n/* @part surface */\n:root {\n  --border-width: 1px;\n  --border-width-strong: 2px;\n  --border-style: dotted;\n  --radius-control: 0;\n  --radius-panel: 0;\n  --radius-pill: 0;\n  --radius-page: 0;\n  --shadow-panel: none;\n  --shadow-control: none;\n  --shadow-control-hover: none;\n  --shadow-control-pressed: none;\n  --shadow-dialog: none;\n  --shadow-text: none;\n  --fill-page: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='3' height='3'%3E%3Crect width='1' height='1' fill='black' fill-opacity='.14'/%3E%3C/svg%3E\") var(--color-page);\n  --fill-bar: var(--color-bar);\n  --fill-bar-alt: var(--color-bar-alt);\n  --fill-inverse: var(--color-inverse);\n  --fill-accent: var(--color-accent);\n  --fill-panel: var(--color-surface);\n  --fill-button: var(--color-button);\n  --fill-button-hover: var(--color-button);\n  --fill-button-secondary: var(--color-button-secondary);\n  --fill-input: var(--color-input);\n  --focus-ring: 1px dashed var(--color-focus);\n  --transition: none;\n  --backdrop-blur: 0px;\n}\n"
  }
}
