{
  "id": "v1-wk-4723",
  "long_id": "v1.wiki-2000s.docs.s04.p07.t02.u03",
  "name": "Wiki dictionary, masthead look-up and letter strip, 2003 to 2010",
  "era": {
    "slug": "wiki-2000s",
    "code": "wk",
    "name": "Wiki",
    "years": [
      2003,
      2010
    ],
    "description": "Collaborative reference sites of 2003 to 2010: a narrow column of links at the left, tabs above a white article sheet, blue and red links, grey bordered boxes for contents and facts, small sans text and tables of plain data."
  },
  "archetype": "docs",
  "mode": "mix",
  "viewport": {
    "width": 1024,
    "fluid": true
  },
  "summary": "This is the dictionary or phrasebook wiki of the middle 2000s in a \"paper\" skin: one framed page with a masthead that holds the name and a look-up box, a dark bar of sections, a strip of letters from A to Z and, under them, the sheet. An entry is a headword on a double rule, tabs for its faces, numbered senses with quotations, and translation boxes that fold; the front page shows a word of the day on a calendar leaf. Everything is set in Georgia on cream with brown rules and underlined ink-blue links, square and still, with only a one-pixel hard shadow under boxes.",
  "url": "https://chrono.skin/s/v1-wk-4723",
  "preview_url": "https://chrono.skin/s/v1-wk-4723/specimen.html",
  "files": {
    "STYLE.md": "# Wiki dictionary, masthead look-up and letter strip, 2003 to 2010\n\n## Summary\n\nThis is the dictionary or phrasebook wiki of the middle 2000s in a \"paper\" skin: one framed page with a masthead that holds the name and a look-up box, a dark bar of sections, a strip of letters from A to Z and, under them, the sheet. An entry is a headword on a double rule, tabs for its faces, numbered senses with quotations, and translation boxes that fold; the front page shows a word of the day on a calendar leaf. Everything is set in Georgia on cream with brown rules and underlined ink-blue links, square and still, with only a one-pixel hard shadow under boxes.\n\n## Layout\n\n- The page is fluid. `--size-page` is `100%`; `.ds-page__frame` has `--space-5` (14px) above and `--space-6` (20px) at the sides. Designed at 1024px; it does not reflow for phones.\n- Everything sits in one bordered box, `.ds-page__book`: the header `.ds-nav` (masthead `.ds-nav__mast` in the secondary bar fill, section bar `.ds-nav__menu` in the bar fill, letter strip `.ds-index` on `--color-surface-alt`), then the sheet `.ds-page__sheet` on the canvas, then the footer band in the inverse fill. No text sits on the page colour. There is no side column of site links: navigation is the bar and the letters.\n- Views. The specimen is a four-screen example dictionary; the bar has one item per view and the current one takes the accent fill. `home` is the main page: the word of the day, the figures line, then a wide column (welcome box, newest entries) beside a `--size-side` (232px) margin column of link boxes, and the shelves grid. `entry` is one entry: trail, headword, tabs, the senses and translations beside a margin column with a small facts table and a notice. `index` is the index for one letter: second-letter strip, the table of headwords, paging and an empty section. `request` is the request form with its two notices, a tips box and the withdraw confirmation.\n- Inner pages (every view but `home`) start with `.ds-breadcrumb`, then `.ds-page-header` in place of the word of the day (title and one muted line at the left, the action at the right, on a double rule), then `.ds-tabs` when the page has several faces, then the working blocks. Blocks in a view are in `.ds-view__body`, `--space-5` apart. Two-column areas use `.ds-layout`: a fluid column and the `--size-side` margin column at the right, `--space-6` apart.\n- Form rows are a `--size-label` (160px) label and the field; inputs are `--size-field` (300px), the look-up field `--size-search` (240px), a text area `--size-editor` (96px) tall. The calendar leaf is `--size-leaf` (84px) wide. A dialog is `--size-dialog` (440px) wide.\n- Spacing scale: `--space-1` 2px, `--space-2` 4px, `--space-3` 6px, `--space-4` 10px, `--space-5` 14px, `--space-6` 20px, `--space-7` 28px.\n  - `--space-1`: vertical padding of buttons, tabs, strips; gap between letters.\n  - `--space-2`: vertical padding of table cells, list rows and bar items.\n  - `--space-3`: gap between buttons, padding of notices and panel bodies.\n  - `--space-4`: horizontal padding of cells, strips and boxes; gap between grid cells.\n  - `--space-5`: gap between blocks; horizontal padding of bar items and tabs.\n  - `--space-6`: padding of the sheet and masthead, gap between the columns, margin above a language heading.\n  - `--space-7`: list indent.\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- Text on fills follows the era's conventions (see the first layout of this era): no text on `--color-page`; body, heading and link colours on the canvas, the three surfaces, `--fill-panel` and the four fills; only `--color-bar-text` on `--fill-bar`, `--color-bar-alt-text` on `--fill-bar-alt`, `--color-inverse-text` on `--fill-inverse`, `--color-accent-text` on `--fill-accent`, `--color-notice-text` on `--color-notice`, and `--color-text` on `--color-danger-surface`.\n- `--color-page` is charcoal with fine scan lines from `--fill-page`; the sheet `--color-canvas` is white. `--color-surface` fills the navigation boxes, the profile box and alternate news rows; `--color-surface-alt` (lavender) the breadcrumb, label cells, idle tabs, counters and alternate table rows; `--color-surface-strong` (pale blue) letter heads and plain panel titles.\n- `--fill-bar` (near black, shaded) with amber `--color-bar-text` is the section bar, table heads, the profile title, the current tab, the dialog title, tile icons and the footer. `--fill-bar-alt` (deep blue) with white `--color-bar-alt-text` titles every navigation box, panel and form and the group strips of the profile box. `--fill-inverse` (dark maroon) with `--color-inverse-text` is the banner.\n- `--color-heading` (maroon) is for page and section titles and figures, `--color-heading-alt` (blue) for third-level headings and news dates. Links are `--color-link` (blue), tool links `--color-link-quiet` (olive), hover `--color-link-hover` (burnt orange); a missing page is `.ds-link--new` in `--color-danger`.\n- `--color-border-strong` (tan) frames the sheet, the header, the boxes and the buttons and rules the headings; `--color-border` (grey) is for ordinary box outlines and dotted row rules; `--color-border-muted` for panel feet.\n- `--color-accent` (amber) with dark `--color-accent-text` marks the current bar item, the current page number and badges; `--color-accent-alt` is the left bar of an information notice.\n- `--color-fill-1` to `--color-fill-4` are the lavender, cream, sage and sand of the browse tiles; the welcome box is `--color-fill-1`.\n- Body and controls are `--font-body` / `--font-ui` (Verdana); headings, box titles, the wordmark and tile names are `--font-heading` (Trebuchet MS), bold. `--font-mono` is for code.\n- Sizes: `--text-base` 11px; `--text-small` and `--text-ui` 10px for meta, bar items, tabs, buttons and badges; `--text-large` 13px for the lead, panel titles and tile names; `--text-h3` 12px, `--text-h2` 15px, `--text-h1` 20px, `--text-display` 22px for the wordmark and the welcome title. `--weight-ui` is 700.\n- Bars, buttons and the accent are short vertical gradients from the surface set; panels, boxes and the sheet are flat. Row rules inside boxes are `dotted`.\n- One-off choices outside the token set: the dividers between bar items are `--color-bar-text` at 25%; the notice's left bar is `calc(var(--border-width-strong) * 2)`; status badges are an 18 to 26% `color-mix()` of the status colour over `--color-surface`; `dotted` is used for row rules and the empty state instead of `--border-style`.\n\n## Components\n\n- `.ds-page`: on `<body>`. `.ds-page__frame` is the padded page, `.ds-page__book` the framed box, `.ds-page__sheet` the sheet. Views are `.ds-view` with a `.ds-view__body` column; `.ds-layout` with `.ds-layout__main` and `.ds-layout__side` makes the two columns.\n- `.ds-nav`: the header. `.ds-nav__mast` holds the brand, the look-up form `.ds-nav__search` (`.ds-nav__label`, `.ds-nav__field`) and the `.ds-nav__personal` list of `.ds-nav__personal-link` items. `.ds-nav__menu` is the bar of `.ds-nav__link` items (`is-current` in the accent fill); `.ds-nav__aux` items at the right, after `.ds-nav__rest`, are never current.\n- `.ds-brand`: mark and name at the left of the masthead. `.ds-brand__mark` is a square tile 1.5 times `--text-display`, dressed like the primary button; `.ds-brand__text` stacks `.ds-brand__name` and the italic `.ds-brand__tag`. The name `chronoskin` and its mark are placeholders for the installing project's own name and logo: replace both, keep the tile.\n- `.ds-index`: the letter strip: `.ds-index__label`, `.ds-index__letter` (`is-current`, `is-empty`), `.ds-index__rest` for links at the right. `.ds-index--boxed` is the same strip as a box inside a view.\n- `.ds-breadcrumb`: a small italic trail with `.ds-breadcrumb__link` and `.ds-breadcrumb__current`.\n- `.ds-hero`: the word of the day between double rules: the calendar leaf `.ds-hero__leaf` (`.ds-hero__month`, `.ds-hero__day`), `.ds-hero__text` with `.ds-hero__kicker`, `.ds-hero__title`, `.ds-hero__pron` and `.ds-hero__lead`, and a stack of buttons `.ds-hero__action`.\n- `.ds-page-header`: the head of an inner page: `.ds-page-header__title`, `.ds-page-header__desc`, `.ds-page-header__action`.\n- `.ds-tabs`: the faces of an entry on a strong rule under the header; `.ds-tabs__tab` with `is-current` (canvas, open at the bottom) and `is-missing`.\n- `.ds-stat`: the row; a ledger line of `.ds-stat__item` figures, each a `.ds-stat__value` beside an italic `.ds-stat__label`.\n- `.ds-section`: a heading on a hairline between blocks.\n- `.ds-panel`: a titled box: italic `.ds-panel__title` strip, `.ds-panel__body` with `.ds-panel__line` paragraphs and a right-aligned `.ds-panel__more`.\n- `.ds-list`: dictionary lines with a hanging indent: `.ds-list__item` with a bold `.ds-list__term`, an italic `.ds-list__pos`, the gloss and a `.ds-list__meta` line.\n- `.ds-sidebar`: the margin column of link boxes: `.ds-sidebar__block`, `.ds-sidebar__title`, `.ds-sidebar__list`, `.ds-sidebar__item`.\n- `.ds-grid`: four shelf cells in a row: `.ds-grid__cell` (`--2`, `--3`, `--4`) with a drop capital `.ds-grid__icon`, a `.ds-grid__name` link and `.ds-grid__meta`.\n- `.ds-prose`: the entry text: h1, h2 (a language, in a tinted strip with a strong left edge), h3 (a part of speech, on a faint rule), p, ul, ol, strong, code. `.ds-edit` is the bracketed edit link in a heading. `.ds-headline` with `.ds-headline__word` is the headword line; `.ds-senses` the numbered senses (`.ds-senses__item`, `.ds-senses__label`, `.ds-senses__quote`).\n- `.ds-trans`: a translation box: `.ds-trans__bar` with a bold `.ds-trans__gloss` and a bracketed show or hide link; an unfolded box also has the two-column `.ds-trans__body`.\n- `.ds-table`: a ledger table: bar-fill head, dotted row rules; `.ds-table__num` right-aligns numbers, `.ds-table__row--alt` tints a row, `.ds-table__term` is a bold headword cell, `.ds-table__pos` an italic one, `.ds-table__nowrap` keeps a cell on one line.\n- `.ds-notice`: a slip with a thick top rule in `--color-accent-alt`; `.ds-notice--error` has it in `--color-danger` on `--color-danger-surface`. `.ds-notice__title` is the bold first phrase, `.ds-notice__link` an underlined link in the text colour.\n- `.ds-form`: rows `.ds-form__row` of a `.ds-form__label` and a `.ds-form__field` holding a `.ds-form__input` (`--wide`, `--auto`, `--text`; `is-invalid`, `is-disabled`) with `.ds-form__hint` or `.ds-form__error`; `.ds-form__check` and `.ds-form__checkbox`; `.ds-form__actions` with `.ds-form__spacer` pushing the destructive button to the right.\n- `.ds-link`: every link in text. States `is-visited`, `is-hover`, `is-active`, `is-focus`; `.ds-link--new` (in `--color-danger`) for a page nobody has written, `.ds-link--quiet` for tool and outside links, `.ds-link--strong` for bold.\n- `.ds-button`: primary action. `.ds-button--secondary` is the plain button, `.ds-button--danger` the destructive one (error text on the error surface), `.ds-button--small` a smaller one. States `is-hover`, `is-active`, `is-focus`, `is-disabled`. Group with `.ds-buttons`.\n- `.ds-badge`: a small label in the accent fill for counts and \"new\". `.ds-badge--success`, `.ds-badge--warning` and `.ds-badge--danger` are status labels: a 14 to 22% tint of the status colour over `--color-surface`, body text and a 1px outline in the status colour.\n- `.ds-pagination`: a line of small bordered `.ds-pagination__link` steps (`is-current` in the accent fill, `is-disabled` plain) with a muted `.ds-pagination__label`.\n- `.ds-dialog`: a box in the page flow, centred in the `.ds-dialog__backdrop` band (`--color-overlay`, no text on it): `.ds-dialog__title` in the bar fill, `.ds-dialog__body`, `.ds-dialog__text`, `.ds-dialog__actions`. It never floats over the page.\n- `.ds-empty`: a dashed box on `--color-surface` with `.ds-empty__title`, `.ds-empty__text` and one secondary button.\n- `.ds-footer`: the colophon band: `.ds-footer__text` and a `.ds-footer__row` of `.ds-footer__link` items.\n- `.ds-clear` ends floats; `.ds-icon` sizes an inline icon and `.ds-sprite` hides a symbol sheet, for projects that add icons.\n- `ds-accordion` (with `__summary`, `__body`): a collapsible box, a `<details>` section for contents, tips or rules.\n- `ds-menu` (with `__summary`, `__list`, `__item`): a page-actions or language drop-down, a `<details>` opened by click.\n- `ds-tooltip` (with `__tip`): a small hint box on a link, shown on hover or focus.\n- `ds-progress` (inside `ds-meter`): a native progress bar for completeness or a drive.\n\n## Never\n\n- `content-width >= 75%`: the page stretches with the window.\n- `font-size <= 22px`: the wordmark and the welcome title, 22px, are the largest text.\n- `font-size >= 10px`: meta text and controls are 10px; nothing is smaller.\n- `font-families <= 3`: Verdana, Trebuchet MS for headings, monospace for code.\n- `letter-spacing <= 1px`: only the wordmark is tracked, by 1px.\n- `uppercase-text <= 0%`: no text is transformed to uppercase.\n- `border-radius <= 8px`: corners are softly rounded, 4 to 8px; only pills and round numbers go further.\n- `box-shadow = none`: no box shadow was measured in any reference.\n- `text-shadow = none`: no text shadow was measured in any reference.\n- `transition = none`: hover states switch at once.\n- `animation = none`: nothing moves.\n- `border-width <= 6px`: borders are 1px or 2px; only the left bar of a notice is 6px.\n- `gradient-fills <= 10%`: only buttons carry a faint gradient.\n\n## Extending\n\nDerive a new component from the nearest one in the specimen: a box in the margin from `.ds-sidebar__block`, a folded section from `.ds-trans`, a titled box from `.ds-panel`, a message from `.ds-notice`. Build it as a 1px `--color-border` outline on `--color-surface`, keep text on fills as the conventions above say, and use tokens only: no raw colours or lengths, no gradient or transition of its own, no font size outside the type tokens, and `--space-5` as the gap to the next block.\n",
    "components.css": "/* Layout tokens (structure part). A framed page of masthead, section bar,\n   letter strip and sheet; widths and gaps measured on dictionary and\n   reference wikis captured 2005 to 2008. */\n:root {\n  --size-page: 100%;\n  --size-side: 232px;\n  --size-search: 240px;\n  --size-label: 160px;\n  --size-field: 300px;\n  --size-editor: 96px;\n  --size-dialog: 440px;\n  --size-icon: 14px;\n  --size-leaf: 84px;\n  --space-1: 2px;\n  --space-2: 4px;\n  --space-3: 6px;\n  --space-4: 10px;\n  --space-5: 14px;\n  --space-6: 20px;\n  --space-7: 28px;\n}\n/* ---------- shell ---------- */\n.ds-page {\n  margin: 0;\n  padding: 0;\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.ds-sprite {\n  position: absolute;\n}\n.ds-icon {\n  flex: none;\n  width: var(--size-icon);\n  height: var(--size-icon);\n  vertical-align: middle;\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.ds-view__body {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-5);\n}\n.ds-clear {\n  clear: both;\n}\n\n/* ---------- links ---------- */\n.ds-link {\n  color: var(--color-link);\n  text-decoration: var(--link-decoration);\n  transition: var(--transition);\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}\n.ds-link:focus-visible,\n.ds-link.is-focus {\n  outline: var(--focus-ring);\n}\n\n/* Tool, meta and outside links. */\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\n/* A link to a page that does not exist yet. */\n.ds-link--new,\n.ds-link--new:visited,\n.ds-link--new.is-visited {\n  color: var(--color-danger);\n}\n.ds-link--strong {\n  font-weight: var(--weight-bold);\n}\n\n/* ---------- buttons ---------- */\n.ds-button {\n  display: inline-block;\n  box-sizing: border-box;\n  margin: 0;\n  padding: var(--space-1) var(--space-4);\n  background: var(--fill-button);\n  color: var(--color-button-text);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control);\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  text-decoration: none;\n  text-transform: var(--ui-transform);\n  text-shadow: var(--shadow-text);\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  color: var(--color-button-hover-text);\n  box-shadow: var(--shadow-control-hover);\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  border-color: var(--color-input-border);\n  font-weight: var(--weight-ui);\n  text-shadow: none;\n}\n.ds-button--secondary:hover,\n.ds-button--secondary.is-hover {\n  border-color: var(--color-border-strong);\n}\n\n/* Destructive action: the error pair. */\n.ds-button--danger,\n.ds-button--danger:hover,\n.ds-button--danger.is-hover {\n  background: var(--color-danger-surface);\n  color: var(--color-danger);\n  border-color: var(--color-danger);\n  text-shadow: none;\n}\n.ds-button--small {\n  padding: 0 var(--space-3);\n  font-size: var(--text-small);\n}\n.ds-button:disabled,\n.ds-button.is-disabled {\n  background: var(--color-disabled);\n  color: var(--color-disabled-text);\n  border-color: var(--color-disabled-text);\n  box-shadow: none;\n  text-shadow: none;\n  cursor: default;\n}\n.ds-buttons {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-3);\n}\n\n/* ---------- form ---------- */\n.ds-form {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-4);\n  margin: 0;\n}\n.ds-form__row {\n  display: grid;\n  grid-template-columns: var(--size-label) minmax(0,1fr);\n  gap: var(--space-1) var(--space-5);\n  align-items: baseline;\n}\n.ds-form__label {\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n}\n.ds-form__field {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: var(--space-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-1) var(--space-2);\n  background: var(--fill-input);\n  color: var(--color-input-text);\n  border: var(--border-width) var(--border-style) var(--color-input-border);\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-body);\n  line-height: var(--line-body);\n}\n.ds-form__input--auto {\n  width: auto;\n}\n.ds-form__input--text {\n  display: block;\n  width: 100%;\n  height: var(--size-editor);\n  resize: vertical;\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  color: var(--color-danger);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n}\n.ds-form__hint {\n  font-size: var(--text-small);\n  color: var(--color-text-muted);\n}\n.ds-form__check {\n  display: inline-flex;\n  align-items: center;\n  gap: var(--space-2);\n  font-size: var(--text-ui);\n}\n.ds-form__checkbox {\n  margin: 0;\n}\n.ds-form__actions {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-3);\n}\n.ds-form__spacer {\n  flex: 1 1 0;\n}\n\n/* ---------- badge ---------- */\n.ds-badge {\n  display: inline-block;\n  padding: 0 var(--space-3);\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n  border-radius: var(--radius-pill);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-style: normal;\n  font-weight: var(--weight-bold);\n  line-height: var(--line-body);\n  white-space: nowrap;\n}\n\n/* Status labels: a tint of the status colour over the surface, body text,\n   and the status colour as the outline. */\n.ds-badge--success,\n.ds-badge--warning,\n.ds-badge--danger {\n  color: var(--color-text);\n  font-weight: var(--weight-body);\n  border: var(--border-width) solid var(--color-success);\n}\n.ds-badge--success {\n  background: color-mix(in srgb,var(--color-success) 16%,var(--color-surface));\n}\n.ds-badge--warning {\n  background: color-mix(in srgb,var(--color-warning) 22%,var(--color-surface));\n  border-color: var(--color-warning);\n}\n.ds-badge--danger {\n  background: color-mix(in srgb,var(--color-danger) 14%,var(--color-surface));\n  border-color: var(--color-danger);\n}\n\n/* ---------- notice ---------- */\n.ds-notice {\n  display: flow-root;\n  margin: 0;\n  padding: var(--space-3) var(--space-5);\n  background: var(--color-notice);\n  color: var(--color-notice-text);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n  font-size: var(--text-ui);\n}\n.ds-notice--error {\n  background: var(--color-danger-surface);\n  color: var(--color-text);\n}\n.ds-notice__title {\n  font-weight: var(--weight-bold);\n}\n.ds-notice--error .ds-notice__title {\n  color: var(--color-danger);\n}\n.ds-notice__link {\n  color: inherit;\n  text-decoration: underline;\n}\n\n/* ---------- pagination ---------- */\n.ds-pagination {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-2);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n.ds-pagination__label {\n  padding: 0 var(--space-3);\n  color: var(--color-text-muted);\n}\n.ds-pagination__link {\n  display: block;\n  padding: 0 var(--space-3);\n  background: var(--color-surface);\n  color: var(--color-link);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-control);\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(--fill-accent);\n  color: var(--color-accent-text);\n  border-color: var(--color-border-strong);\n  font-weight: var(--weight-bold);\n  text-decoration: none;\n}\n.ds-pagination__link.is-disabled {\n  background: transparent;\n  color: var(--color-text-muted);\n  text-decoration: none;\n}\n\n/* ---------- typography ---------- */\n.ds-prose {\n  line-height: var(--line-body);\n}\n.ds-prose h1,\n.ds-prose h2,\n.ds-prose h3 {\n  color: var(--color-heading);\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}\n.ds-prose h1 {\n  margin: 0 0 var(--space-4);\n  font-size: var(--text-h1);\n}\n.ds-prose h2 {\n  margin: var(--space-6) 0 var(--space-3);\n  font-size: var(--text-h2);\n}\n.ds-prose h3 {\n  margin: var(--space-5) 0 var(--space-2);\n  font-size: var(--text-h3);\n}\n.ds-prose > :first-child {\n  margin-top: 0;\n}\n.ds-prose p {\n  margin: var(--space-3) 0 var(--space-4);\n}\n.ds-prose ul,\n.ds-prose ol {\n  margin: var(--space-2) 0 var(--space-4);\n  padding: 0 0 0 var(--space-7);\n}\n.ds-prose strong {\n  font-weight: var(--weight-bold);\n}\n.ds-prose code {\n  padding: 0 var(--space-1);\n  background: var(--color-surface-alt);\n  border: var(--border-width) solid var(--color-border-muted);\n  border-radius: var(--radius-control);\n  font-family: var(--font-mono);\n  font-size: var(--text-small);\n}\n.ds-edit {\n  float: right;\n  margin: 0 0 0 var(--space-5);\n  color: var(--color-text-muted);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-body);\n  line-height: var(--line-body);\n  letter-spacing: 0;\n  text-transform: none;\n}\n\n/* ---------- table ---------- */\n.ds-table {\n  width: 100%;\n  box-sizing: border-box;\n  border-collapse: collapse;\n  background: var(--color-surface);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  font-size: var(--text-ui);\n}\n.ds-table th,\n.ds-table td {\n  padding: var(--space-2) var(--space-4);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border-muted);\n  text-align: left;\n  vertical-align: top;\n}\n.ds-table th {\n  background: var(--fill-bar);\n  color: var(--color-bar-text);\n  border-bottom-color: var(--color-border);\n  font-family: var(--font-ui);\n  font-weight: var(--weight-bold);\n  text-shadow: var(--shadow-text);\n  white-space: nowrap;\n}\n.ds-table .ds-table__num {\n  text-align: right;\n  white-space: nowrap;\n}\n.ds-table .ds-table__nowrap {\n  white-space: nowrap;\n}\n.ds-table__row--alt td {\n  background: var(--color-surface-alt);\n}\n\n/* ---------- dialog: a box in the page flow ---------- */\n.ds-dialog__backdrop {\n  padding: var(--space-6);\n  background: var(--color-overlay);\n  border: var(--border-width) var(--border-style) var(--color-border-muted);\n  border-radius: var(--radius-panel);\n}\n.ds-dialog {\n  width: var(--size-dialog);\n  max-width: 100%;\n  box-sizing: border-box;\n  margin: 0 auto;\n  overflow: hidden;\n  background: var(--color-canvas);\n  border: var(--border-width-strong) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-dialog);\n}\n.ds-dialog__title {\n  margin: 0;\n  padding: var(--space-2) var(--space-5);\n  background: var(--fill-bar);\n  color: var(--color-bar-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-base);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-body);\n  text-shadow: var(--shadow-text);\n}\n.ds-dialog__body {\n  padding: var(--space-5);\n}\n.ds-dialog__text {\n  margin: 0 0 var(--space-5);\n}\n.ds-dialog__actions {\n  display: flex;\n  justify-content: flex-end;\n  gap: var(--space-3);\n}\n\n/* ---------- empty state ---------- */\n.ds-empty {\n  padding: var(--space-6) var(--space-5);\n  background: var(--color-surface);\n  border: var(--border-width) dashed var(--color-border);\n  border-radius: var(--radius-panel);\n  text-align: center;\n}\n.ds-empty__title {\n  margin: 0 0 var(--space-1);\n  color: var(--color-heading);\n  font-family: var(--font-heading);\n  font-size: var(--text-large);\n  font-weight: var(--weight-bold);\n}\n.ds-empty__text {\n  margin: 0 0 var(--space-4);\n  color: var(--color-text-muted);\n}\n/* ---------- page frame: masthead, bar, letters, sheet and foot in one border ---------- */\n.ds-page__frame {\n  width: var(--size-page);\n  box-sizing: border-box;\n  padding: var(--space-5) var(--space-6) var(--space-6);\n}\n.ds-page__book {\n  background: var(--color-canvas);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-page);\n  box-shadow: var(--shadow-panel);\n  overflow: hidden;\n}\n.ds-page__sheet {\n  padding: var(--space-5) var(--space-6) var(--space-6);\n  background: var(--color-canvas);\n}\n.ds-layout {\n  display: grid;\n  grid-template-columns: minmax(0,1fr) var(--size-side);\n  gap: var(--space-6);\n  align-items: start;\n}\n.ds-layout__main {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-5);\n  min-width: 0;\n}\n.ds-layout__side {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-5);\n  min-width: 0;\n}\n\n/* ---------- nav: masthead with the look-up box, then the section bar ---------- */\n.ds-nav {\n  display: block;\n  border-bottom: var(--border-width) var(--border-style) var(--color-border-strong);\n}\n.ds-nav__mast {\n  display: flex;\n  align-items: center;\n  gap: var(--space-6);\n  padding: var(--space-4) var(--space-6);\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n}\n.ds-brand {\n  display: flex;\n  align-items: center;\n  gap: var(--space-4);\n  color: var(--color-bar-alt-text);\n  text-decoration: none;\n}\n.ds-brand__mark {\n  display: flex;\n  flex: none;\n  align-items: center;\n  justify-content: center;\n  width: calc(var(--text-display) * 1.5);\n  height: calc(var(--text-display) * 1.5);\n  box-sizing: border-box;\n  background: var(--fill-button);\n  color: var(--color-button-text);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control);\n}\n.ds-brand__mark svg {\n  display: block;\n  width: 70%;\n  height: 70%;\n}\n.ds-brand__text {\n  display: flex;\n  flex-direction: column;\n}\n.ds-brand__name {\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-brand__tag {\n  font-size: var(--text-small);\n  font-style: italic;\n  line-height: var(--line-heading);\n}\n.ds-nav__search {\n  display: flex;\n  flex: 1 1 0;\n  justify-content: center;\n  align-items: center;\n  gap: var(--space-3);\n  margin: 0;\n}\n.ds-nav__label {\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-style: italic;\n}\n.ds-nav__field {\n  width: var(--size-search);\n}\n.ds-nav__personal {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-end;\n  gap: 0;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  text-transform: var(--ui-transform);\n}\n.ds-nav__personal-link {\n  color: var(--color-bar-alt-text);\n  text-decoration: underline;\n}\n.ds-nav__menu {\n  display: flex;\n  flex-wrap: wrap;\n  margin: 0;\n  padding: 0 var(--space-5);\n  list-style: none;\n  background: var(--fill-bar);\n  color: var(--color-bar-text);\n  border-top: var(--border-width) var(--border-style) var(--color-border-strong);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-ui);\n  text-transform: var(--ui-transform);\n  text-shadow: var(--shadow-text);\n}\n.ds-nav__link,\n.ds-nav__aux {\n  display: block;\n  padding: var(--space-2) var(--space-5);\n  color: var(--color-bar-text);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-nav__link:hover,\n.ds-nav__link.is-hover,\n.ds-nav__aux:hover,\n.ds-nav__aux.is-hover {\n  text-decoration: underline;\n}\n.ds-nav__link.is-current {\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n  text-shadow: none;\n}\n\n/* The current view's item, and the home item when no view is named. */\n.ds-page:not(:has(.ds-view:target)) .ds-nav__link[href=\"#home\"] {\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n  text-shadow: none;\n}\n.ds-page:has(#home:target) .ds-nav__link[href=\"#home\"] {\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n  text-shadow: none;\n}\n.ds-page:has(#entry:target) .ds-nav__link[href=\"#entry\"] {\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n  text-shadow: none;\n}\n.ds-page:has(#index:target) .ds-nav__link[href=\"#index\"] {\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n  text-shadow: none;\n}\n.ds-page:has(#request:target) .ds-nav__link[href=\"#request\"] {\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n  text-shadow: none;\n}\n.ds-nav__rest {\n  margin: 0 0 0 auto;\n}\n\n/* ---------- letter strip: the index by first letter ---------- */\n.ds-index {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: 0 var(--space-1);\n  margin: 0;\n  padding: var(--space-1) var(--space-6);\n  list-style: none;\n  background: var(--color-surface-alt);\n  font-size: var(--text-ui);\n}\n.ds-index--boxed {\n  padding: var(--space-2) var(--space-4);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n}\n.ds-index__rest {\n  margin: 0 0 0 auto;\n  font-style: italic;\n}\n.ds-index__label {\n  padding: 0 var(--space-4) 0 0;\n  color: var(--color-text-muted);\n  font-style: italic;\n}\n.ds-index__letter {\n  display: block;\n  min-width: calc(var(--text-ui) * 1.2);\n  padding: 0 var(--space-1);\n  color: var(--color-link);\n  text-align: center;\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-index__letter:hover,\n.ds-index__letter.is-hover {\n  color: var(--color-link-hover);\n  text-decoration: var(--link-decoration-hover);\n}\n.ds-index__letter.is-current {\n  background: var(--color-surface-strong);\n  color: var(--color-text);\n  font-weight: var(--weight-bold);\n}\n.ds-index__letter.is-empty {\n  color: var(--color-text-muted);\n}\n\n/* ---------- breadcrumb: a small italic trail ---------- */\n.ds-breadcrumb {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-2);\n  margin: 0 0 var(--space-3);\n  padding: 0;\n  list-style: none;\n  font-size: var(--text-small);\n  font-style: italic;\n  color: var(--color-text-muted);\n}\n.ds-breadcrumb__link {\n  color: var(--color-link-quiet);\n  text-decoration: underline;\n}\n.ds-breadcrumb__link:hover,\n.ds-breadcrumb__link.is-hover {\n  color: var(--color-link-hover);\n}\n.ds-breadcrumb__current {\n  color: var(--color-text);\n  font-weight: var(--weight-bold);\n}\n\n/* ---------- hero: the word of the day ---------- */\n.ds-hero {\n  display: grid;\n  grid-template-columns: var(--size-leaf) minmax(0,1fr) auto;\n  gap: var(--space-6);\n  align-items: center;\n  padding: var(--space-5) var(--space-6);\n  background: var(--fill-panel);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-top: var(--border-width-strong) double var(--color-border-strong);\n  border-bottom: var(--border-width-strong) double var(--color-border-strong);\n  border-radius: var(--radius-page);\n}\n\n/* A calendar leaf: the month on the accent fill, the day below it. */\n.ds-hero__leaf {\n  align-self: start;\n  background: var(--color-surface);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-panel);\n  overflow: hidden;\n  text-align: center;\n}\n.ds-hero__month {\n  display: block;\n  padding: var(--space-1) 0;\n  background: var(--fill-accent);\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}\n.ds-hero__day {\n  display: block;\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: 1.4;\n}\n.ds-hero__text {\n  min-width: 0;\n}\n.ds-hero__kicker {\n  margin: 0;\n  color: var(--color-heading-alt);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n}\n.ds-hero__title {\n  margin: 0;\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-hero__pron {\n  margin: var(--space-1) 0 0;\n  color: var(--color-text-muted);\n  font-size: var(--text-ui);\n}\n.ds-hero__lead {\n  margin: var(--space-3) 0 0;\n  font-size: var(--text-large);\n}\n.ds-hero__action {\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n  gap: var(--space-3);\n  margin: 0;\n  text-align: center;\n}\n\n/* ---------- page header: headword on a double rule ---------- */\n.ds-page-header {\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-end;\n  gap: var(--space-6);\n  margin: 0 0 var(--space-5);\n  padding: 0 0 var(--space-2);\n  border-bottom: var(--border-width-strong) double var(--color-border-strong);\n}\n.ds-page-header__title {\n  margin: 0;\n  color: var(--color-heading);\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}\n.ds-page-header__desc {\n  margin: var(--space-1) 0 0;\n  color: var(--color-text-muted);\n  font-size: var(--text-ui);\n}\n.ds-page-header__action {\n  display: flex;\n  flex: none;\n  gap: var(--space-3);\n  margin: 0;\n  padding: 0 0 var(--space-1);\n}\n\n/* ---------- tabs: the faces of an entry, under the header ---------- */\n.ds-tabs {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: flex-end;\n  gap: var(--space-1);\n  margin: 0 0 var(--space-5);\n  padding: 0 var(--space-4);\n  list-style: none;\n  border-bottom: var(--border-width) var(--border-style) var(--color-border-strong);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-ui);\n  text-transform: var(--ui-transform);\n}\n.ds-tabs__tab {\n  display: block;\n  margin: 0 0 calc(var(--border-width) * -1);\n  padding: var(--space-1) var(--space-5);\n  background: var(--color-surface-alt);\n  color: var(--color-link);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-bottom-color: var(--color-border-strong);\n  border-radius: var(--radius-control) var(--radius-control) 0 0;\n  text-decoration: none;\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  padding: var(--space-2) var(--space-5);\n  background: var(--color-canvas);\n  color: var(--color-text);\n  border-color: var(--color-border-strong);\n  border-bottom-color: var(--color-canvas);\n  font-weight: var(--weight-bold);\n}\n.ds-tabs__tab.is-missing {\n  color: var(--color-danger);\n}\n\n/* ---------- stats: a ledger line between double rules ---------- */\n.ds-stat {\n  display: flex;\n  margin: 0;\n  padding: var(--space-3) 0;\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}\n.ds-stat__item {\n  display: flex;\n  flex: 1 1 0;\n  align-items: baseline;\n  justify-content: center;\n  gap: var(--space-3);\n  padding: 0 var(--space-4);\n  border-left: var(--border-width) var(--border-style) var(--color-border-muted);\n}\n.ds-stat__item:first-child {\n  border-left: 0;\n}\n.ds-stat__value {\n  margin: 0;\n  color: var(--color-heading-alt);\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}\n.ds-stat__label {\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  font-style: italic;\n  text-transform: var(--ui-transform);\n}\n\n/* ---------- section heading between blocks ---------- */\n.ds-section {\n  margin: 0;\n  padding: 0 0 var(--space-1);\n  color: var(--color-heading);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\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}\n\n/* ---------- panel: a titled box ---------- */\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  overflow: hidden;\n}\n.ds-panel__title {\n  margin: 0;\n  padding: var(--space-2) var(--space-4);\n  background: var(--color-surface-strong);\n  color: var(--color-heading-alt);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n  font-family: var(--font-heading);\n  font-size: var(--text-large);\n  font-style: italic;\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n}\n.ds-panel__body {\n  padding: var(--space-3) var(--space-4) var(--space-4);\n}\n.ds-panel__line {\n  margin: 0 0 var(--space-3);\n}\n.ds-panel__more {\n  margin: var(--space-3) 0 0;\n  font-size: var(--text-ui);\n  font-style: italic;\n  text-align: right;\n}\n\n/* ---------- list: dictionary lines, headword first ---------- */\n.ds-list {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-list__item {\n  padding: var(--space-2) 0 var(--space-2) var(--space-6);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border-muted);\n  text-indent: calc(var(--space-6) * -1);\n}\n.ds-list__item:last-child {\n  border-bottom: 0;\n}\n.ds-list__term {\n  color: var(--color-link);\n  font-weight: var(--weight-bold);\n  text-decoration: var(--link-decoration);\n}\n.ds-list__term:hover,\n.ds-list__term.is-hover {\n  color: var(--color-link-hover);\n  text-decoration: var(--link-decoration-hover);\n}\n.ds-list__pos {\n  color: var(--color-text-muted);\n  font-style: italic;\n}\n.ds-list__meta {\n  display: block;\n  font-size: var(--text-small);\n  color: var(--color-text-muted);\n}\n\n/* ---------- sidebar: boxes of links in the margin column ---------- */\n.ds-sidebar {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-5);\n}\n.ds-sidebar__block {\n  background: var(--color-surface);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n  overflow: hidden;\n}\n.ds-sidebar__title {\n  margin: 0;\n  padding: var(--space-1) var(--space-4);\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\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  text-transform: var(--ui-transform);\n}\n.ds-sidebar__list {\n  margin: 0;\n  padding: var(--space-2) var(--space-4) var(--space-3) var(--space-7);\n  font-size: var(--text-ui);\n  color: var(--color-text-muted);\n}\n.ds-sidebar__item {\n  padding: var(--space-1) 0 0;\n}\n\n/* ---------- grid: shelves of the dictionary, each with a drop capital ---------- */\n.ds-grid {\n  display: grid;\n  grid-template-columns: repeat(4,minmax(0,1fr));\n  gap: var(--space-4);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-grid__cell {\n  display: grid;\n  grid-template-columns: auto minmax(0,1fr);\n  column-gap: var(--space-4);\n  align-items: start;\n  padding: var(--space-3) var(--space-4) var(--space-4);\n  background: var(--color-fill-1);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\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__icon {\n  color: var(--color-heading-alt);\n  font-family: var(--font-heading);\n  font-size: var(--text-display);\n  font-weight: var(--weight-display);\n  line-height: 1;\n}\n.ds-grid__name {\n  display: block;\n  color: var(--color-link);\n  font-size: var(--text-large);\n  line-height: var(--line-heading);\n  text-decoration: var(--link-decoration);\n}\n.ds-grid__name:hover,\n.ds-grid__name.is-hover {\n  color: var(--color-link-hover);\n  text-decoration: var(--link-decoration-hover);\n}\n.ds-grid__meta {\n  display: block;\n  margin: var(--space-1) 0 0;\n  font-size: var(--text-small);\n  line-height: var(--line-heading);\n  color: var(--color-text-muted);\n}\n\n/* ---------- entry: headword line, numbered senses, quotations ---------- */\n.ds-prose h2 {\n  padding: var(--space-1) var(--space-4);\n  background: var(--color-surface-alt);\n  border-left: var(--border-width-strong) var(--border-style) var(--color-border-strong);\n}\n.ds-prose h3 {\n  padding: 0 0 var(--space-1);\n  color: var(--color-heading-alt);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border-muted);\n  font-weight: var(--weight-bold);\n}\n.ds-prose .ds-headline {\n  margin: var(--space-3) 0 var(--space-2);\n}\n.ds-headline__word {\n  font-size: var(--text-large);\n  font-weight: var(--weight-bold);\n}\n.ds-prose .ds-senses {\n  margin: var(--space-2) 0 var(--space-4);\n  padding: 0 0 0 var(--space-7);\n}\n.ds-senses__item {\n  padding: 0 0 var(--space-2);\n}\n.ds-senses__label {\n  color: var(--color-text-muted);\n  font-style: italic;\n}\n.ds-senses__quote {\n  display: block;\n  margin: var(--space-1) 0 0;\n  padding: 0 0 0 var(--space-4);\n  color: var(--color-text-muted);\n  border-left: var(--border-width) var(--border-style) var(--color-border);\n  font-size: var(--text-ui);\n  font-style: italic;\n}\n\n/* ---------- translations: a bar that looks folded, and one unfolded ---------- */\n.ds-trans {\n  margin: 0 0 var(--space-3);\n  background: var(--color-surface);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n  font-size: var(--text-ui);\n}\n.ds-trans .ds-trans__bar {\n  display: flex;\n  justify-content: space-between;\n  gap: var(--space-5);\n  margin: 0;\n  padding: var(--space-1) var(--space-4);\n  background: var(--color-surface-strong);\n  color: var(--color-heading);\n}\n.ds-trans__gloss {\n  font-weight: var(--weight-bold);\n}\n.ds-trans .ds-trans__body {\n  display: grid;\n  grid-template-columns: repeat(2,minmax(0,1fr));\n  gap: 0 var(--space-6);\n  margin: 0;\n  padding: var(--space-3) var(--space-4) var(--space-3) var(--space-7);\n  border-top: var(--border-width) var(--border-style) var(--color-border);\n}\n\n/* ---------- notice: a slip with a thick top rule ---------- */\n.ds-notice {\n  border-top: var(--border-width-strong) var(--border-style) var(--color-accent-alt);\n}\n.ds-notice--error {\n  border-top-color: var(--color-danger);\n}\n\n/* ---------- table: ruled like a ledger ---------- */\n.ds-table td {\n  border-bottom-style: dotted;\n  border-bottom-color: var(--color-border);\n}\n.ds-table__term {\n  font-weight: var(--weight-bold);\n}\n.ds-table__pos {\n  color: var(--color-text-muted);\n  font-style: italic;\n}\n\n/* ---------- footer: the colophon ---------- */\n.ds-footer {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  gap: var(--space-6);\n  padding: var(--space-4) var(--space-6);\n  background: var(--fill-inverse);\n  color: var(--color-inverse-text);\n  border-top: var(--border-width-strong) double var(--color-border-strong);\n  font-size: var(--text-small);\n}\n.ds-footer__text {\n  margin: 0;\n  font-style: italic;\n}\n.ds-footer__row {\n  display: flex;\n  flex-wrap: wrap;\n  gap: var(--space-1) 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\n/* Components of the period: collapsible boxes, page-action menu, hint box, meter. */\n.ds-extras {\n  grid-column: 1 / -1;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: flex-start;\n  gap: var(--space-4) var(--space-5);\n  margin: var(--space-4) 0;\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  color: var(--color-text);\n}\n.ds-extras > .ds-accordion { flex: 1 1 var(--size-fold); }\n.ds-accordion {\n  box-sizing: border-box;\n  background: var(--color-surface);\n  color: var(--color-text);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n}\n.ds-accordion__summary {\n  cursor: pointer;\n  padding: var(--space-2) var(--space-4);\n  background: var(--color-surface-alt);\n  color: var(--color-heading);\n  font-weight: var(--weight-bold);\n}\n.ds-accordion[open] > .ds-accordion__summary {\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n}\n.ds-accordion__body { padding: var(--space-3) var(--space-4); }\n.ds-accordion__body p { margin: 0; }\n.ds-menu { position: relative; display: inline-block; }\n.ds-menu__summary {\n  cursor: pointer;\n  list-style: none;\n  padding: var(--space-2) var(--space-4);\n  background: var(--fill-button-secondary);\n  color: var(--color-button-secondary-text);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control);\n  font-weight: var(--weight-ui);\n}\n.ds-menu__summary::-webkit-details-marker { display: none; }\n.ds-menu__summary::after { content: \"\"; display: inline-block; width: 0; height: 0; border: calc(var(--text-base) * 0.3) solid transparent; border-top: calc(var(--text-base) * 0.36) solid currentColor; border-bottom-width: 0; margin-left: calc(var(--text-base) * 0.45); vertical-align: calc(var(--text-base) * 0.12); }\n.ds-menu__list {\n  position: absolute;\n  z-index: 5;\n  top: 100%;\n  left: 0;\n  min-width: var(--size-menu);\n  margin: var(--space-1) 0 0;\n  padding: var(--space-2) 0;\n  list-style: none;\n  background: var(--color-canvas);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  box-shadow: var(--shadow-panel);\n}\n.ds-menu__item {\n  display: block;\n  padding: var(--space-2) var(--space-4);\n  color: var(--color-link);\n  text-decoration: var(--link-decoration);\n  white-space: nowrap;\n}\n.ds-menu__item:hover, .ds-menu__item:focus {\n  background: var(--color-surface-alt);\n  color: var(--color-link-hover);\n}\n.ds-tooltip { position: relative; display: inline-block; }\n.ds-tooltip__tip {\n  position: absolute;\n  z-index: 5;\n  bottom: 100%;\n  left: 0;\n  width: var(--size-tip);\n  padding: var(--space-3) var(--space-4);\n  background: var(--color-notice);\n  color: var(--color-notice-text);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  box-shadow: var(--shadow-panel);\n  font-size: var(--text-small);\n  font-weight: var(--weight-body);\n  text-align: left;\n  visibility: hidden;\n  opacity: 0;\n  pointer-events: none;\n}\n.ds-tooltip:hover > .ds-tooltip__tip, .ds-tooltip:focus-within > .ds-tooltip__tip {\n  visibility: visible;\n  opacity: 1;\n}\n.ds-meter { display: inline-flex; align-items: center; gap: var(--space-3); }\n.ds-progress {\n  -webkit-appearance: none;\n  appearance: none;\n  width: var(--size-meter);\n  height: var(--size-meter-h);\n  box-sizing: border-box;\n  background: var(--color-surface-strong);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-control);\n  overflow: hidden;\n  vertical-align: middle;\n}\n.ds-progress::-webkit-progress-bar { background: var(--color-surface-strong); }\n.ds-progress::-webkit-progress-value { background: var(--color-accent); }\n.ds-progress::-moz-progress-bar { background: var(--color-accent); }\n\n:root {\n  --size-fold: 18em;\n  --size-menu: 12em;\n  --size-tip: 15em;\n  --size-meter: 14em;\n  --size-meter-h: 1em;\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: wiki dictionary 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\n<div class=\"ds-page__frame\">\n<div class=\"ds-page__book\">\n\n  <header class=\"ds-nav\" data-component=\"nav\">\n    <div class=\"ds-nav__mast\">\n      <a class=\"ds-brand\" data-component=\"brand\" href=\"#home\">\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=\"M12 6.5C10 4.5 6.5 4 3 4.5V19c3.5-.5 7 0 9 2c2-2 5.5-2.5 9-2V4.5c-3.5-.5-7 0-9 2z\"/><line x1=\"12\" y1=\"6.5\" x2=\"12\" y2=\"21\"/></svg></span>\n        <span class=\"ds-brand__text\">\n          <span class=\"ds-brand__name\">chronoskin</span>\n          <span class=\"ds-brand__tag\">the dictionary its readers write</span>\n        </span>\n      </a>\n      <form class=\"ds-nav__search\" action=\"#entry\">\n        <label class=\"ds-nav__label\" for=\"lookup\">Look up a word:</label>\n        <input class=\"ds-form__input ds-nav__field\" id=\"lookup\" type=\"text\" value=\"gloaming\">\n        <button class=\"ds-button\" type=\"submit\">Go</button>\n        <a class=\"ds-button ds-button--secondary\" href=\"#index\">Search</a>\n      </form>\n      <ul class=\"ds-nav__personal\">\n        <li><a class=\"ds-nav__personal-link\" href=\"#request\">Marit Oster</a> (<a class=\"ds-nav__personal-link\" href=\"#home\">talk</a>)</li>\n        <li><a class=\"ds-nav__personal-link\" href=\"#index\">My watchlist</a></li>\n        <li><a class=\"ds-nav__personal-link\" href=\"#home\">Log out</a></li>\n      </ul>\n    </div>\n    <ul class=\"ds-nav__menu\">\n      <li><a class=\"ds-nav__link\" href=\"#home\">Main page</a></li>\n      <li><a class=\"ds-nav__link\" href=\"#entry\">Word of the day</a></li>\n      <li><a class=\"ds-nav__link\" href=\"#index\">Index of entries</a></li>\n      <li><a class=\"ds-nav__link\" href=\"#request\">Request an entry</a></li>\n      <li class=\"ds-nav__rest\"><a class=\"ds-nav__aux\" href=\"#index\">Recent changes</a></li>\n      <li><a class=\"ds-nav__aux\" href=\"#home\">Help</a></li>\n    </ul>\n    <ul class=\"ds-index\">\n      <li class=\"ds-index__label\">Entries by letter</li>\n      <li><a class=\"ds-index__letter\" href=\"#index\">A</a></li><li><a class=\"ds-index__letter\" href=\"#index\">B</a></li><li><a class=\"ds-index__letter\" href=\"#index\">C</a></li><li><a class=\"ds-index__letter\" href=\"#index\">D</a></li><li><a class=\"ds-index__letter\" href=\"#index\">E</a></li><li><a class=\"ds-index__letter\" href=\"#index\">F</a></li><li><a class=\"ds-index__letter\" href=\"#index\">G</a></li><li><a class=\"ds-index__letter\" href=\"#index\">H</a></li><li><a class=\"ds-index__letter\" href=\"#index\">I</a></li><li><a class=\"ds-index__letter\" href=\"#index\">J</a></li><li><a class=\"ds-index__letter\" href=\"#index\">K</a></li><li><a class=\"ds-index__letter\" href=\"#index\">L</a></li><li><a class=\"ds-index__letter\" href=\"#index\">M</a></li><li><a class=\"ds-index__letter\" href=\"#index\">N</a></li><li><a class=\"ds-index__letter\" href=\"#index\">O</a></li><li><a class=\"ds-index__letter\" href=\"#index\">P</a></li><li><a class=\"ds-index__letter\" href=\"#index\">Q</a></li><li><a class=\"ds-index__letter\" href=\"#index\">R</a></li><li><a class=\"ds-index__letter\" href=\"#index\">S</a></li><li><a class=\"ds-index__letter\" href=\"#index\">T</a></li><li><a class=\"ds-index__letter\" href=\"#index\">U</a></li><li><a class=\"ds-index__letter\" href=\"#index\">V</a></li><li><a class=\"ds-index__letter\" href=\"#index\">W</a></li><li><a class=\"ds-index__letter is-empty\" href=\"#index\">X</a></li><li><a class=\"ds-index__letter\" href=\"#index\">Y</a></li><li><a class=\"ds-index__letter\" href=\"#index\">Z</a></li>\n      <li class=\"ds-index__rest\"><a class=\"ds-link ds-link--quiet\" href=\"#index\">Phrasebooks</a> &middot; <a class=\"ds-link ds-link--quiet\" href=\"#index\">Rhymes</a> &middot; <a class=\"ds-link ds-link--quiet\" href=\"#index\">Abbreviations</a></li>\n    </ul>\n  </header>\n\n  <div class=\"ds-page__sheet\">\n\n    <!-- ============ main page ============ -->\n    <section class=\"ds-view ds-view--home\" id=\"home\">\n      <div class=\"ds-view__body\">\n        <section class=\"ds-hero\" data-component=\"hero\">\n          <div class=\"ds-hero__leaf\"><span class=\"ds-hero__month\">March 2007</span><span class=\"ds-hero__day\">14</span></div>\n          <div class=\"ds-hero__text\">\n            <p class=\"ds-hero__kicker\">Word of the day</p>\n            <h1 class=\"ds-hero__title\">gloaming</h1>\n            <p class=\"ds-hero__pron\"><i>noun</i> &middot; GLOH-ming &middot; two syllables, stress on the first</p>\n            <p class=\"ds-hero__lead\">The half-light after sunset and before full dark; <a class=\"ds-link\" href=\"#entry\">twilight</a>, <a class=\"ds-link\" href=\"#entry\">dusk</a>.</p>\n          </div>\n          <p class=\"ds-hero__action\">\n            <a class=\"ds-button\" href=\"#entry\">Read the full entry</a>\n            <a class=\"ds-button ds-button--secondary\" href=\"#request\">Suggest tomorrow's word</a>\n          </p>\n        </section>\n\n        <dl class=\"ds-stat\" data-component=\"stats\">\n          <div class=\"ds-stat__item\"><dd class=\"ds-stat__value\">48,210</dd><dt class=\"ds-stat__label\">entries</dt></div>\n          <div class=\"ds-stat__item\"><dd class=\"ds-stat__value\">112</dd><dt class=\"ds-stat__label\">languages</dt></div>\n          <div class=\"ds-stat__item\"><dd class=\"ds-stat__value\">96,530</dd><dt class=\"ds-stat__label\">translations</dt></div>\n          <div class=\"ds-stat__item\"><dd class=\"ds-stat__value\">1,274</dd><dt class=\"ds-stat__label\">open requests</dt></div>\n        </dl>\n\n        <div class=\"ds-layout\">\n          <div class=\"ds-layout__main\">\n          <div class=\"ds-extras\">Said <span class=\"ds-tooltip\"><a class=\"ds-link\" href=\"#entry\" aria-describedby=\"t4\">GLOH-ming</a><span class=\"ds-tooltip__tip\" id=\"t4\" role=\"tooltip\">Stress on the first syllable, like the word glow plus ming.</span></span></div>\n            <section class=\"ds-panel\" data-component=\"panel\">\n              <h2 class=\"ds-panel__title\">Welcome, reader and writer</h2>\n              <div class=\"ds-panel__body\">\n                <p class=\"ds-panel__line\">chronoskin is a dictionary that anyone may correct and extend. Every entry gives the meanings of a word as numbered senses, with its pronunciation, its history, quotations that show it in use and its translations.</p>\n                <p class=\"ds-panel__line\">Look a word up in the box above, walk the <a class=\"ds-link\" href=\"#index\">index by letter</a>, or, if the word you want is not here yet, <a class=\"ds-link\" href=\"#request\">ask for it</a>. A link in <a class=\"ds-link ds-link--new\" href=\"#request\">red</a> leads to an entry nobody has written.</p>\n                <p class=\"ds-panel__more\"><a class=\"ds-link\" href=\"#home\">How an entry is laid out</a> &middot; <a class=\"ds-link\" href=\"#home\">House style</a></p>\n              </div>\n            </section>\n            <h2 class=\"ds-section\">Newest entries</h2>\n            <ul class=\"ds-list\" data-component=\"list\">\n              <li class=\"ds-list__item\"><a class=\"ds-list__term\" href=\"#entry\">gloaming</a> <span class=\"ds-list__pos\">noun</span> the half-light after sunset. <span class=\"ds-list__meta\">3 senses &middot; 14 translations &middot; added by Marit Oster, 14 March</span></li>\n              <li class=\"ds-list__item\"><a class=\"ds-list__term\" href=\"#entry\">petrichor</a> <span class=\"ds-list__pos\">noun</span> the smell of rain on dry ground. <span class=\"ds-list__meta\">1 sense &middot; 6 translations &middot; added by Deniz, 13 March</span></li>\n              <li class=\"ds-list__item\"><a class=\"ds-list__term\" href=\"#entry\">widdershins</a> <span class=\"ds-list__pos\">adverb</span> against the course of the sun; anticlockwise. <span class=\"ds-list__meta\">2 senses &middot; 9 translations &middot; added by Hollis B, 13 March</span></li>\n              <li class=\"ds-list__item\"><a class=\"ds-list__term\" href=\"#entry\">to dither</a> <span class=\"ds-list__pos\">verb</span> to waver between choices; to delay by hesitating. <span class=\"ds-list__meta\">3 senses &middot; 11 translations &middot; added by Anselm, 12 March</span></li>\n              <li class=\"ds-list__item\"><a class=\"ds-list__term\" href=\"#entry\">threshold</a> <span class=\"ds-list__pos\">noun</span> the sill of a doorway; a point of beginning. <span class=\"ds-list__meta\">4 senses &middot; 31 translations &middot; added by Deniz, 11 March</span></li>\n            </ul>\n          </div>\n          <aside class=\"ds-sidebar\" data-component=\"sidebar\">\n            <div class=\"ds-sidebar__block\">\n              <h2 class=\"ds-sidebar__title\">Requested entries</h2>\n              <ul class=\"ds-sidebar__list\">\n                <li class=\"ds-sidebar__item\"><a class=\"ds-link ds-link--new\" href=\"#request\">crepuscule</a></li>\n                <li class=\"ds-sidebar__item\"><a class=\"ds-link ds-link--new\" href=\"#request\">owl-light</a></li>\n                <li class=\"ds-sidebar__item\"><a class=\"ds-link ds-link--new\" href=\"#request\">to eventide</a></li>\n                <li class=\"ds-sidebar__item\"><a class=\"ds-link ds-link--new\" href=\"#request\">dimpsy</a></li>\n                <li class=\"ds-sidebar__item\"><a class=\"ds-link ds-link--strong\" href=\"#request\">All 1,274 requests</a></li>\n              </ul>\n            </div>\n            <div class=\"ds-sidebar__block\">\n              <h2 class=\"ds-sidebar__title\">Appendices</h2>\n              <ul class=\"ds-sidebar__list\">\n                <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#index\">Pronunciation key</a></li>\n                <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#index\">Irregular verbs</a></li>\n                <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#index\">Days and months</a></li>\n                <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#index\">Travel phrasebook</a></li>\n              </ul>\n            </div>\n            <div class=\"ds-sidebar__block\">\n              <h2 class=\"ds-sidebar__title\">Writers' desk</h2>\n              <ul class=\"ds-sidebar__list\">\n                <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#home\">Tea room</a> <span class=\"ds-badge\" data-component=\"badge\">new</span></li>\n                <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#index\">Entries to verify</a></li>\n                <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#home\">Entry templates</a></li>\n              </ul>\n            </div>\n          </aside>\n        </div>\n\n        <h2 class=\"ds-section\">Shelves of the dictionary</h2>\n        <ul class=\"ds-grid\" data-component=\"grid\">\n          <li class=\"ds-grid__cell\"><span class=\"ds-grid__icon\">E</span><span><a class=\"ds-grid__name\" href=\"#index\">English entries</a><span class=\"ds-grid__meta\">31,870 headwords with senses and quotations</span></span></li>\n          <li class=\"ds-grid__cell ds-grid__cell--2\"><span class=\"ds-grid__icon\">T</span><span><a class=\"ds-grid__name\" href=\"#index\">Translations</a><span class=\"ds-grid__meta\">Tables in 112 languages, filled in sense by sense</span></span></li>\n          <li class=\"ds-grid__cell ds-grid__cell--3\"><span class=\"ds-grid__icon\">P</span><span><a class=\"ds-grid__name\" href=\"#index\">Phrasebooks</a><span class=\"ds-grid__meta\">Greetings, numbers and directions for travellers</span></span></li>\n          <li class=\"ds-grid__cell ds-grid__cell--4\"><span class=\"ds-grid__icon\">R</span><span><a class=\"ds-grid__name\" href=\"#index\">Rhymes</a><span class=\"ds-grid__meta\">Words grouped by their final sounds</span></span></li>\n        </ul>\n      </div>\n    </section>\n\n    <!-- ============ entry ============ -->\n    <section class=\"ds-view\" id=\"entry\">\n      <ol class=\"ds-breadcrumb\" data-component=\"breadcrumb\">\n        <li><a class=\"ds-breadcrumb__link\" href=\"#home\">Main page</a></li>\n        <li>/</li>\n        <li><a class=\"ds-breadcrumb__link\" href=\"#index\">Index: G</a></li>\n        <li>/</li>\n        <li class=\"ds-breadcrumb__current\">gloaming</li>\n      </ol>\n      <header class=\"ds-page-header\" data-component=\"page-header\">\n        <div>\n          <h1 class=\"ds-page-header__title\">gloaming</h1>\n          <p class=\"ds-page-header__desc\">English noun &middot; 3 senses &middot; first recorded before 1100</p>\n          <div class=\"ds-extras\"><details class=\"ds-menu\"><summary class=\"ds-menu__summary\">Languages</summary><ul class=\"ds-menu__list\"><li><a class=\"ds-menu__item\" href=\"#entry\">English</a></li><li><a class=\"ds-menu__item\" href=\"#entry\">Deutsch</a></li><li><a class=\"ds-menu__item\" href=\"#entry\">Francais</a></li></ul></details><details class=\"ds-accordion\"><summary class=\"ds-accordion__summary\">How to read this entry [show]</summary><div class=\"ds-accordion__body\"><p>Senses are numbered. Labels in brackets give the register. A red link is a word nobody has written yet.</p></div></details></div>\n        </div>\n        <p class=\"ds-page-header__action\"><a class=\"ds-button ds-button--secondary\" href=\"#request\">Edit this entry</a></p>\n      </header>\n      <ul class=\"ds-tabs\" data-component=\"tabs\">\n        <li><a class=\"ds-tabs__tab is-current\" href=\"#entry\">Entry</a></li>\n        <li><a class=\"ds-tabs__tab\" href=\"#entry\">Discussion</a></li>\n        <li><a class=\"ds-tabs__tab is-missing\" href=\"#request\">Citations</a></li>\n        <li><a class=\"ds-tabs__tab\" href=\"#index\">History</a></li>\n      </ul>\n      <div class=\"ds-layout\">\n        <div class=\"ds-prose\" data-component=\"typography\">\n          <h2><span class=\"ds-edit\">[<a class=\"ds-link\" href=\"#request\">edit</a>]</span>English</h2>\n          <h3>Etymology</h3>\n          <p>From an old word for <strong>twilight</strong>, built on the same root as <a class=\"ds-link\" href=\"#entry\">glow</a>. It dropped out of general use and came back through northern poetry in the 1700s.</p>\n          <h3>Pronunciation</h3>\n          <ul>\n            <li>Respelled: <code>GLOH-ming</code></li>\n            <li>Rhymes with: <a class=\"ds-link\" href=\"#index\">roaming</a>, <a class=\"ds-link\" href=\"#index\">homing</a>, <a class=\"ds-link\" href=\"#index\">foaming</a></li>\n          </ul>\n          <h3>Noun</h3>\n          <p class=\"ds-headline\"><span class=\"ds-headline__word\">gloaming</span> (<i>plural</i> <strong>gloamings</strong>)</p>\n          <ol class=\"ds-senses\">\n            <li class=\"ds-senses__item\">The half-light after sunset and before full dark; twilight. <span class=\"ds-senses__quote\">They walked home in the gloaming, the lamps not yet lit.</span></li>\n            <li class=\"ds-senses__item\"><span class=\"ds-senses__label\">(figurative)</span> The closing part of a period; a time of fading. <span class=\"ds-senses__quote\">In the gloaming of the old firm, few clerks remained.</span></li>\n            <li class=\"ds-senses__item\"><span class=\"ds-senses__label\">(rare, regional)</span> The dim light before sunrise. <span class=\"ds-badge ds-badge--warning\">needs a quotation</span></li>\n          </ol>\n          <h3>Translations</h3>\n          <div class=\"ds-trans\">\n            <p class=\"ds-trans__bar\"><span class=\"ds-trans__gloss\">the half-light after sunset</span><span>[<a class=\"ds-link\" href=\"#entry\">hide</a>]</span></p>\n            <ul class=\"ds-trans__body\">\n              <li>Danish: <a class=\"ds-link\" href=\"#entry\">tusmørke</a></li>\n              <li>Dutch: <a class=\"ds-link\" href=\"#entry\">schemering</a></li>\n              <li>French: <a class=\"ds-link\" href=\"#entry\">crépuscule</a></li>\n              <li>German: <a class=\"ds-link\" href=\"#entry\">Dämmerung</a></li>\n              <li>Italian: <a class=\"ds-link\" href=\"#entry\">crepuscolo</a></li>\n              <li>Polish: <a class=\"ds-link ds-link--new\" href=\"#request\">zmierzch</a></li>\n              <li>Spanish: <a class=\"ds-link\" href=\"#entry\">crepúsculo</a></li>\n              <li>Swedish: <a class=\"ds-link ds-link--new\" href=\"#request\">skymning</a></li>\n            </ul>\n          </div>\n          <div class=\"ds-trans\">\n            <p class=\"ds-trans__bar\"><span class=\"ds-trans__gloss\">the closing part of a period</span><span>[<a class=\"ds-link\" href=\"#entry\">show</a>]</span></p>\n          </div>\n          <div class=\"ds-trans\">\n            <p class=\"ds-trans__bar\"><span class=\"ds-trans__gloss\">translations to be checked</span><span>[<a class=\"ds-link\" href=\"#entry\">show</a>]</span></p>\n          </div>\n          <h3>See also</h3>\n          <ul data-component=\"links\">\n            <li><a class=\"ds-link\" href=\"#entry\">twilight</a> (a link to an entry)</li>\n            <li><a class=\"ds-link is-visited\" href=\"#entry\">dusk</a> (an entry you have read)</li>\n            <li><a class=\"ds-link is-hover\" href=\"#entry\">evenfall</a> (under the pointer)</li>\n            <li><a class=\"ds-link is-active\" href=\"#entry\">nightfall</a> (while pressed)</li>\n            <li><a class=\"ds-link ds-link--new\" href=\"#request\">owl-light</a> (an entry nobody has written yet)</li>\n            <li><a class=\"ds-link ds-link--quiet\" href=\"#entry\">gloaming in the open quotation archive</a> (an outside link)</li>\n          </ul>\n        </div>\n        <div class=\"ds-layout__side\">\n          <section class=\"ds-panel\">\n            <h2 class=\"ds-panel__title\">At a glance</h2>\n            <div class=\"ds-panel__body\">\n              <table class=\"ds-table\">\n                <tbody>\n                  <tr><td class=\"ds-table__pos\">singular</td><td class=\"ds-table__term\">gloaming</td></tr>\n                  <tr><td class=\"ds-table__pos\">plural</td><td class=\"ds-table__term\">gloamings</td></tr>\n                  <tr><td class=\"ds-table__pos\">syllables</td><td>gloam&middot;ing</td></tr>\n                  <tr><td class=\"ds-table__pos\">register</td><td>literary</td></tr>\n                </tbody>\n              </table>\n              <p class=\"ds-panel__more\"><a class=\"ds-link\" href=\"#index\">All nouns in -ing</a></p>\n            </div>\n          </section>\n          <p class=\"ds-notice\"><span class=\"ds-notice__title\">Sense 3 is under review.</span> It rests on a single source. <a class=\"ds-notice__link\" href=\"#request\">Add a quotation</a> if you know one.</p>\n          <div class=\"ds-sidebar__block\">\n            <h2 class=\"ds-sidebar__title\">Related words</h2>\n            <ul class=\"ds-sidebar__list\">\n              <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#entry\">to gloam</a> <i>verb</i></li>\n              <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#entry\">glow</a> <i>noun, verb</i></li>\n              <li class=\"ds-sidebar__item\"><a class=\"ds-link ds-link--new\" href=\"#request\">gloamy</a> <i>adjective</i></li>\n            </ul>\n          </div>\n        </div>\n      </div>\n    </section>\n\n    <!-- ============ index ============ -->\n    <section class=\"ds-view\" id=\"index\">\n      <ol class=\"ds-breadcrumb\">\n        <li><a class=\"ds-breadcrumb__link\" href=\"#home\">Main page</a></li>\n        <li>/</li>\n        <li><a class=\"ds-breadcrumb__link\" href=\"#index\">Index of entries</a></li>\n        <li>/</li>\n        <li class=\"ds-breadcrumb__current\">G</li>\n      </ol>\n      <header class=\"ds-page-header\">\n        <div>\n          <h1 class=\"ds-page-header__title\">Index of entries: G</h1>\n          <p class=\"ds-page-header__desc\">1,948 English headwords begin with G. Entries 201 to 208 are shown.</p>\n          <div class=\"ds-extras\"><label class=\"ds-meter\">Entries verified <progress class=\"ds-progress\" value=\"74\" max=\"100\">74%</progress> 74%</label></div>\n        </div>\n        <p class=\"ds-page-header__action\"><a class=\"ds-button\" href=\"#request\">Request an entry</a></p>\n      </header>\n      <div class=\"ds-view__body\">\n        <ul class=\"ds-index ds-index--boxed\">\n          <li class=\"ds-index__label\">Second letter</li>\n          <li><a class=\"ds-index__letter\" href=\"#index\">Ga</a></li><li><a class=\"ds-index__letter\" href=\"#index\">Ge</a></li><li><a class=\"ds-index__letter\" href=\"#index\">Gh</a></li><li><a class=\"ds-index__letter\" href=\"#index\">Gi</a></li><li><a class=\"ds-index__letter is-current\" href=\"#index\">Gl</a></li><li><a class=\"ds-index__letter\" href=\"#index\">Gn</a></li><li><a class=\"ds-index__letter\" href=\"#index\">Go</a></li><li><a class=\"ds-index__letter\" href=\"#index\">Gr</a></li><li><a class=\"ds-index__letter\" href=\"#index\">Gu</a></li><li><a class=\"ds-index__letter\" href=\"#index\">Gy</a></li><li><a class=\"ds-index__letter is-empty\" href=\"#index\">Gz</a></li>\n        </ul>\n        <table class=\"ds-table\" data-component=\"table\">\n          <thead>\n            <tr><th scope=\"col\">Headword</th><th scope=\"col\">Part of speech</th><th scope=\"col\">First sense</th><th scope=\"col\">Senses</th><th scope=\"col\">Translations</th><th scope=\"col\">State</th></tr>\n          </thead>\n          <tbody>\n            <tr><td class=\"ds-table__term\"><a class=\"ds-link\" href=\"#entry\">glimmer</a></td><td class=\"ds-table__pos\">noun, verb</td><td>a faint, unsteady light</td><td class=\"ds-table__num\">4</td><td class=\"ds-table__num\">27</td><td><span class=\"ds-badge ds-badge--success\">verified</span></td></tr>\n            <tr class=\"ds-table__row--alt\"><td class=\"ds-table__term\"><a class=\"ds-link\" href=\"#entry\">glint</a></td><td class=\"ds-table__pos\">noun, verb</td><td>a quick flash of reflected light</td><td class=\"ds-table__num\">3</td><td class=\"ds-table__num\">19</td><td><span class=\"ds-badge ds-badge--success\">verified</span></td></tr>\n            <tr><td class=\"ds-table__term\"><a class=\"ds-link\" href=\"#entry\">gloam</a></td><td class=\"ds-table__pos\">verb</td><td>to grow dark at evening</td><td class=\"ds-table__num\">1</td><td class=\"ds-table__num\">2</td><td><span class=\"ds-badge ds-badge--warning\">needs quotation</span></td></tr>\n            <tr class=\"ds-table__row--alt\"><td class=\"ds-table__term\"><a class=\"ds-link\" href=\"#entry\">gloaming</a></td><td class=\"ds-table__pos\">noun</td><td>the half-light after sunset</td><td class=\"ds-table__num\">3</td><td class=\"ds-table__num\">14</td><td><span class=\"ds-badge ds-badge--warning\">sense 3 in review</span></td></tr>\n            <tr><td class=\"ds-table__term\"><a class=\"ds-link ds-link--new\" href=\"#request\">gloamy</a></td><td class=\"ds-table__pos\">adjective</td><td>requested, not yet written</td><td class=\"ds-table__num\">0</td><td class=\"ds-table__num\">0</td><td><span class=\"ds-badge ds-badge--danger\">missing</span></td></tr>\n            <tr class=\"ds-table__row--alt\"><td class=\"ds-table__term\"><a class=\"ds-link\" href=\"#entry\">gloat</a></td><td class=\"ds-table__pos\">verb</td><td>to dwell on one's luck with open pleasure</td><td class=\"ds-table__num\">2</td><td class=\"ds-table__num\">22</td><td><span class=\"ds-badge ds-badge--success\">verified</span></td></tr>\n            <tr><td class=\"ds-table__term\"><a class=\"ds-link\" href=\"#entry\">globe</a></td><td class=\"ds-table__pos\">noun</td><td>a ball; a round model of the earth</td><td class=\"ds-table__num\">5</td><td class=\"ds-table__num\">48</td><td><span class=\"ds-badge ds-badge--success\">verified</span></td></tr>\n            <tr class=\"ds-table__row--alt\"><td class=\"ds-table__term\"><a class=\"ds-link\" href=\"#entry\">gloom</a></td><td class=\"ds-table__pos\">noun, verb</td><td>partial darkness; low spirits</td><td class=\"ds-table__num\">4</td><td class=\"ds-table__num\">35</td><td><span class=\"ds-badge ds-badge--success\">verified</span></td></tr>\n          </tbody>\n        </table>\n        <ul class=\"ds-pagination\" data-component=\"pagination\">\n          <li><a class=\"ds-pagination__link\" href=\"#index\">&laquo; previous</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#index\">24</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#index\">25</a></li>\n          <li><a class=\"ds-pagination__link is-current\" href=\"#index\">26</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#index\">27</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#index\">28</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#index\">next &raquo;</a></li>\n          <li class=\"ds-pagination__label\">page 26 of 244</li>\n        </ul>\n        <h2 class=\"ds-section\">Entries beginning with Gz</h2>\n        <div class=\"ds-empty\" data-component=\"empty\">\n          <p class=\"ds-empty__title\">No entries under Gz yet</p>\n          <p class=\"ds-empty__text\">Nobody has written an entry that begins with these letters. If you know such a word, ask for it or write it.</p>\n          <a class=\"ds-button ds-button--secondary\" href=\"#request\">Request an entry</a>\n        </div>\n      </div>\n    </section>\n\n    <!-- ============ request ============ -->\n    <section class=\"ds-view\" id=\"request\">\n      <ol class=\"ds-breadcrumb\">\n        <li><a class=\"ds-breadcrumb__link\" href=\"#home\">Main page</a></li>\n        <li>/</li>\n        <li><a class=\"ds-breadcrumb__link\" href=\"#index\">Requested entries</a></li>\n        <li>/</li>\n        <li class=\"ds-breadcrumb__current\">New request</li>\n      </ol>\n      <header class=\"ds-page-header\">\n        <div>\n          <h1 class=\"ds-page-header__title\">Request an entry</h1>\n          <p class=\"ds-page-header__desc\">Ask for a word that is missing. A request stays on the list until somebody writes the entry.</p>\n        </div>\n        <p class=\"ds-page-header__action\"><a class=\"ds-button ds-button--secondary\" href=\"#index\">All requests</a></p>\n      </header>\n      <div class=\"ds-view__body\">\n        <div class=\"ds-view__body\" data-component=\"notice\">\n          <p class=\"ds-notice\"><span class=\"ds-notice__title\">Check the index first.</span> One request in five is for a word that already has an entry under another spelling. <a class=\"ds-notice__link\" href=\"#index\">Search the index</a>.</p>\n          <p class=\"ds-notice ds-notice--error\"><span class=\"ds-notice__title\">Your request was not saved.</span> Tell us where you met the word, so that a writer can find a quotation.</p>\n        </div>\n        <div class=\"ds-layout\">\n          <form class=\"ds-form\" data-component=\"form\" action=\"#index\">\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"r-word\">The word</label>\n              <span class=\"ds-form__field\"><input class=\"ds-form__input\" id=\"r-word\" type=\"text\" value=\"owl-light\"><span class=\"ds-form__hint\">As you would look it up: singular, lower case.</span></span>\n            </div>\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"r-lang\">Language</label>\n              <span class=\"ds-form__field\"><select class=\"ds-form__input ds-form__input--auto\" id=\"r-lang\"><option>English</option><option>Scots</option><option>Latin</option></select></span>\n            </div>\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"r-where\">Where you met it</label>\n              <span class=\"ds-form__field\"><input class=\"ds-form__input is-invalid\" id=\"r-where\" type=\"text\" value=\"\"><span class=\"ds-form__error\">Please name a book, a place or a speaker.</span></span>\n            </div>\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"r-note\">What you think it means</label>\n              <span class=\"ds-form__field\"><textarea class=\"ds-form__input ds-form__input--text\" id=\"r-note\">Dusk; the time when owls begin to fly.</textarea></span>\n            </div>\n            <div class=\"ds-form__row\">\n              <span class=\"ds-form__label\">Follow up</span>\n              <span class=\"ds-form__field\"><label class=\"ds-form__check\"><input class=\"ds-form__checkbox\" type=\"checkbox\" checked> Tell me on my talk page when the entry is written</label></span>\n            </div>\n            <div class=\"ds-form__actions\" data-component=\"buttons\">\n              <button class=\"ds-button\" type=\"submit\">Save request</button>\n              <a class=\"ds-button ds-button--secondary\" href=\"#index\">Cancel</a>\n              <button class=\"ds-button is-disabled\" type=\"button\" disabled>Write it myself</button>\n              <span class=\"ds-form__spacer\"></span>\n              <a class=\"ds-button ds-button--danger\" href=\"#request\">Withdraw request</a>\n            </div>\n          </form>\n          <section class=\"ds-panel\">\n            <h2 class=\"ds-panel__title\">A good request</h2>\n            <div class=\"ds-panel__body\">\n              <p class=\"ds-panel__line\">Names one word, in one language.</p>\n              <p class=\"ds-panel__line\">Says where the word was read or heard.</p>\n              <p class=\"ds-panel__line\">Does not ask for names of people, firms or products.</p>\n              <p class=\"ds-panel__more\"><a class=\"ds-link\" href=\"#home\">Criteria for inclusion</a></p>\n            </div>\n          </section>\n        </div>\n        <div class=\"ds-dialog__backdrop\">\n          <div class=\"ds-dialog\" data-component=\"dialog\" role=\"dialog\" aria-labelledby=\"dlg-title\">\n            <h2 class=\"ds-dialog__title\" id=\"dlg-title\">Withdraw the request for \"owl-light\"?</h2>\n            <div class=\"ds-dialog__body\">\n              <p class=\"ds-dialog__text\">The word leaves the list of requested entries. Two other readers have asked for it and will be told.</p>\n              <div class=\"ds-dialog__actions\">\n                <a class=\"ds-button ds-button--secondary\" href=\"#request\">Keep the request</a>\n                <a class=\"ds-button ds-button--danger\" href=\"#index\">Withdraw it</a>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </section>\n\n  </div>\n\n  <footer class=\"ds-footer\" data-component=\"footer\">\n    <p class=\"ds-footer__text\">chronoskin, a dictionary under an open documentation licence. This page was last changed on 14 March 2007.</p>\n    <ul class=\"ds-footer__row\">\n      <li><a class=\"ds-footer__link\" href=\"#home\">About chronoskin</a></li>\n      <li><a class=\"ds-footer__link\" href=\"#home\">Privacy</a></li>\n      <li><a class=\"ds-footer__link\" href=\"#home\">Disclaimers</a></li>\n      <li><a class=\"ds-footer__link\" href=\"#index\">Recent changes</a></li>\n    </ul>\n  </footer>\n\n</div>\n</div>\n\n</body>\n</html>\n",
    "style.json": "{\n  \"id\": \"v1.wiki-2000s.docs.s04.p07.t02.u03\",\n  \"library\": \"2026.10.09-1346\",\n  \"era\": {\n    \"slug\": \"wiki-2000s\",\n    \"years\": [\n      2003,\n      2010\n    ]\n  },\n  \"archetype\": \"docs\",\n  \"mode\": \"mix\",\n  \"markup\": \"modern\",\n  \"viewport\": {\n    \"width\": 1024,\n    \"fluid\": true\n  },\n  \"source\": \"https://chrono.skin/s/v1-wk-4723\",\n  \"short\": \"v1-wk-4723\"\n}\n",
    "tokens.css": "/* @part palette */\n:root {\n  --color-page: #d9d2e4;\n  --color-canvas: #ffffff;\n  --color-surface: #f7f5fa;\n  --color-surface-alt: #eeeaf4;\n  --color-surface-strong: #dcd3ea;\n  --color-bar: #4b2e6e;\n  --color-bar-text: #ffffff;\n  --color-bar-alt: #ece6f5;\n  --color-bar-alt-text: #3a2358;\n  --color-inverse: #2d1b45;\n  --color-inverse-text: #efe6fb;\n  --color-text: #1c1a21;\n  --color-text-muted: #686274;\n  --color-heading: #3a2358;\n  --color-heading-alt: #7a3fa0;\n  --color-link: #1f45a8;\n  --color-link-quiet: #6a5a8c;\n  --color-link-visited: #7b2d8e;\n  --color-link-hover: #c45a00;\n  --color-link-active: #a01060;\n  --color-border: #c4bbd2;\n  --color-border-strong: #8d7fa6;\n  --color-border-muted: #e3ddec;\n  --color-accent: #f2a93b;\n  --color-accent-text: #2d1b00;\n  --color-accent-alt: #a01060;\n  --color-fill-1: #f1ecf9;\n  --color-fill-2: #e9eefb;\n  --color-fill-3: #fdf2dc;\n  --color-fill-4: #f9e8f1;\n  --color-button: #5d3a8a;\n  --color-button-text: #ffffff;\n  --color-button-hover-text: #ffe2a8;\n  --color-button-secondary: #e6dff0;\n  --color-button-secondary-text: #3a2358;\n  --color-input: #ffffff;\n  --color-input-text: #1c1a21;\n  --color-input-border: #8d7fa6;\n  --color-disabled: #e5e2ea;\n  --color-disabled-text: #948ea0;\n  --color-danger: #b0201e;\n  --color-danger-surface: #fbe7e4;\n  --color-success: #2e7d32;\n  --color-warning: #c77d00;\n  --color-notice: #fdf2dc;\n  --color-notice-text: #3d2c00;\n  --color-focus: #c45a00;\n  --color-shadow: #2d1b45;\n  --color-overlay: #cfc7dc;\n}\n\n/* @part type */\n:root {\n  --font-body: Verdana, Geneva, \"DejaVu Sans\", sans-serif;\n  --font-heading: \"Trebuchet MS\", Verdana, Geneva, sans-serif;\n  --font-ui: Verdana, Geneva, \"DejaVu Sans\", sans-serif;\n  --font-mono: \"Lucida Console\", Monaco, monospace;\n  --text-base: 11px;\n  --text-small: 10px;\n  --text-ui: 10px;\n  --text-large: 13px;\n  --text-display: 22px;\n  --text-h1: 20px;\n  --text-h2: 15px;\n  --text-h3: 12px;\n  --line-body: 1.45;\n  --line-heading: 1.2;\n  --line-display: 1.1;\n  --weight-body: 400;\n  --weight-bold: 700;\n  --weight-heading: 700;\n  --weight-display: 700;\n  --weight-ui: 700;\n  --heading-transform: none;\n  --heading-tracking: 0;\n  --display-tracking: 1px;\n  --figure-shift: 0em;\n  --ui-transform: none;\n  --link-decoration: none;\n  --link-decoration-hover: underline;\n  --link-decoration-quiet: none;\n}\n\n/* @part surface */\n:root {\n  --border-width: 1px;\n  --border-width-strong: 2px;\n  --border-style: solid;\n  --radius-control: 4px;\n  --radius-panel: 6px;\n  --radius-pill: 999px;\n  --radius-page: 8px;\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: linear-gradient(to bottom, color-mix(in srgb, var(--color-page), black 7%), var(--color-page) 140px);\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-canvas);\n  --fill-button: linear-gradient(to bottom, color-mix(in srgb, var(--color-button), white 18%), var(--color-button));\n  --fill-button-hover: color-mix(in srgb, var(--color-button), black 12%);\n  --fill-button-secondary: linear-gradient(to bottom, color-mix(in srgb, var(--color-button-secondary), white 60%), var(--color-button-secondary));\n  --fill-input: var(--color-input);\n  --focus-ring: 2px solid var(--color-focus);\n  --transition: none;\n  --backdrop-blur: 0px;\n}\n"
  }
}
