{
  "id": "v1-te-3333",
  "long_id": "v1.table-era-90s.portal.s03.p03.t03.u03",
  "name": "Table-era guide page, 1999",
  "era": {
    "slug": "table-era-90s",
    "code": "te",
    "name": "Table-era web",
    "years": [
      1996,
      2000
    ],
    "description": "The first commercial web, 1996 to 2000: narrow fixed pages built from tables, blue underlined links on white or grey, Times and Arial at their default sizes, bevelled form buttons, and flat colour strips where a designer wanted emphasis."
  },
  "archetype": "portal",
  "mode": "pure",
  "viewport": {
    "width": 800,
    "fluid": false
  },
  "summary": "A guide-and-community home page as built between 1996 and 2000: a fixed 600px column centred in an 800px window, opened by one solid dark bar that carries the name in white, with a centred search on the bare page beneath it and a filled column of headline boxes down the left side. Everything is set in one 13px sans-serif with 10px small print, nearly all of it underlined dark blue links, on white with flat orange title bands, sky-blue strips and pale blue blocks, and every line that is drawn is 2px thick. It was the look of web guides, home-page communities and search sites until wider, stylesheet-driven layouts replaced it after 2000.",
  "url": "https://chrono.skin/s/v1-te-3333",
  "preview_url": "https://chrono.skin/s/v1-te-3333/specimen.html",
  "files": {
    "STYLE.md": "# Table-era guide page, 1999\n\n## Summary\n\nA guide-and-community home page as built between 1996 and 2000: a fixed 600px column centred in an 800px window, opened by one solid dark bar that carries the name in white, with a centred search on the bare page beneath it and a filled column of headline boxes down the left side. Everything is set in one 13px sans-serif with 10px small print, nearly all of it underlined dark blue links, on white with flat orange title bands, sky-blue strips and pale blue blocks, and every line that is drawn is 2px thick. It was the look of web guides, home-page communities and search sites until wider, stylesheet-driven layouts replaced it after 2000.\n\n## Layout\n\n- The page is fixed, not fluid: `--size-page` is 600px, centred by `.ds-page__frame` with a `--space-3` (6px) margin above. Nothing is wider than 600px and nothing stretches with the window.\n- The specimen is one example site, a members' guide, of five views. `.ds-nav` and `.ds-footer` are written once, outside the views; each view is a `.ds-view` section and one shows at a time.\n- Order from the top on the home view: `.ds-nav` (a solid `--fill-inverse` bar with the wordmark, tagline and three tool links in the bar's text colour, then a grey strip of 10px service links separated by bars), the `.ds-hero` (title, one line, the search field and button, two lines of small tool links, all centred on the bare page with no fill), the `.ds-grid` (a grey strip across the full column holding four outlined boxes in a row), then `.ds-page__columns`, then the `.ds-footer` opened by a thin `.ds-rule`.\n- `.ds-page__columns` is two columns: the `--size-sidebar` (170px) `.ds-sidebar` on the left, a grey filled column of boxes that runs the whole height of the row, and the 420px main column on the right after a `--space-4` (10px) gutter. There is no right-hand column.\n- Every block of the main column opens with a `.ds-band`, a full-width title band in `--fill-bar` with the title at the left and an optional small line at the right. The home page main column runs: band and `.ds-directory` (two columns of categories on a tinted block), band and `.ds-list` (features, each a bold linked title running into its description), then a `.ds-panel`.\n- Inner pages (a category, one entry, a form, a member's own list) keep the `.ds-nav`, the left `.ds-sidebar` and the `.ds-footer`; the centred search and the strip of four boxes go. In their place `.ds-page__head` spans the full 600px: the 10px `.ds-breadcrumb`, the `.ds-page-header` (title and one line at the left, one button at the right, closed by its own 2px rule in the bar colour), and under the rule the `.ds-tabs`, a centred line of bracketed links, when the page has views of its own. Below it `.ds-page__columns` again: the sidebar now holds what belongs to that page (neighbouring categories, the facts of an entry, advice beside a form), and the main column, `.ds-page__inner`, holds `.ds-stat` first when the page has figures, then the `.ds-table` or `.ds-list` with its `.ds-pagination`, or running text, or a `.ds-band` over the `.ds-notices` and the `.ds-form`.\n- Views: `guide` is the home page (search, the strip of four boxes, sidebar, directory, features, a panel of guides). `rambling` is one category: figures, the table of walks with its status key, and the page links. `walk` is one entry as running text, with its facts in the sidebar and a line of related links. `add` is the form for a new walk, with its notices and the message box that discarding it opens. `mine` is the member's own list while it is empty: the empty state over a list of walks other members like. The current view's link in the grey strip of `.ds-nav` is bold, in the text colour and not underlined; the guide link is marked when the address names no view.\n- Blocks are separated by title bands, flat fills and 2px rules, never by cards with shadows or wide gutters. Headers, the search, notices, the figure line, the dialog, the empty state and the footer are centred; lists, tables and forms are left-aligned.\n- Spacing scale: `--space-1` 2px is the padding of bands, strips and controls and the gap between form cells; `--space-2` 4px is cell padding and the gap between the lines of the inner-page head; `--space-3` 6px is the page margin, the side padding of bands and boxes, the gap between buttons and the space after a list item; `--space-4` 10px is the gutter between columns, the gap between sidebar boxes and the padding of tinted blocks; `--space-5` 16px is the gap between neighbouring blocks and above the columns; `--space-6` 24px is the list indent (and the width of a short input).\n- Fixed sizes: `--size-search` 220px search field, `--size-label` 120px form label column, `--size-field` 180px text input, `--size-area` 240px textarea, `--size-check` 13px checkbox, `--size-dialog` 300px message box.\n\n## Typography and colour roles\n\n- Family: a warm orange band, navy and sky blues on white, with dark green for positive status and slate for visited links.\n- `--color-page`, `--color-canvas`, `--color-surface` are white `#ffffff`; `--color-surface-alt` `#efefef` is the service strip under the top bar, the sidebar column, the strip behind the four boxes, form label cells and the dialog's button row; `--color-surface-strong` `#cccccc` carries no text.\n- `--color-bar` `#ffcc66` (orange, black text) is every title band of the main column and the 2px rule under a page header. `--color-bar-alt` `#a0d0ff` (sky blue, black text) is every sidebar title strip, the table head and the outline of notices and the figure line.\n- `--color-inverse` `#003399` (navy, white text) is the top bar, panel titles and the dialog title bar; links on it are white and underlined. The same navy is `--color-border-strong` (panel, box and dialog outlines), `--color-heading-alt` (h3, positive figures), `--color-link-quiet` and `--color-focus`.\n- Links are dark blue `--color-link` `#000099`, visited `#666699`, active `#cc0000`; hover equals the link colour.\n- `--color-accent` and `--color-accent-alt` `#cc0000` are the solid badge, the \"New!\" word and negative figures.\n- `--color-fill-1` to `--color-fill-4` are `#d8e8ff`, `#efefef`, `#ffcc66`, `#a0d0ff` and colour the four boxes of the strip; `--color-fill-1` is also the directory block, the figure line, the summary row of a table and the empty state. They carry black text and blue links.\n- `--color-warning` `#ffcc66` is a fill only and carries black text; `--color-success` `#006600` and `--color-danger` `#cc0000` carry white. Notices are pale blue `#d8e8ff`; the error notice is red text on white.\n- Borders: `--color-border` `#808080`, `--color-border-muted` `#cccccc` for the rules between table rows, the footer rule and bevels, `--color-input-border` `#cccccc` for input bevels.\n- One sans-serif throughout: `--font-body`, `--font-heading` and `--font-ui` are Arial, Helvetica. `--font-mono` is Courier New.\n- `--text-base` and `--text-ui` 12px, the size the first stylesheets of 1999 gave a sans-serif page; `--text-small` 10px for the service strip, tool links, sidebar titles, sub-categories, table head, captions, meta and legal text.\n- `--text-h3` 12px bold, `--text-h2` and `--text-large` 14px (the hero title, figures), `--text-h1` 18px for a page title, `--text-display` 22px bold (`--weight-display` 700) for the wordmark only. `--weight-ui` is 700: button labels are bold.\n- Line height `normal`; no transform, no tracking; capitals in sidebar titles are typed. All three link decorations are `underline`.\n- `--border-width` and `--border-width-strong` are both 2px, `--border-style` `solid`: every rule, row line and outline has the weight of a 2px coloured rule. There are no hairlines.\n- Boxes stand on hard black edges: `--shadow-panel` is a 1px outline in `--color-border-strong` with a 4px offset edge in `--color-shadow` behind it, neither blurred, and it frames the sheet as well as the panels; `--shadow-dialog` is a 4px offset, `--shadow-control` and `--shadow-control-hover` 1px; `--shadow-control-pressed` and `--shadow-text` are `none`. Bars are pinstriped: `--fill-bar`, `--fill-bar-alt` and `--fill-inverse` repeat two rows of the palette colour and one row of a much lighter mix of it. Every other fill is the flat palette colour (`--fill-panel` is `--color-surface`). Radius 0; `--focus-ring` is `2px solid` in `--color-focus`; `--transition` is `none`.\n- Not expressible by a token, written literally in `components.css`: the bevel of buttons and selects is `border-style: outset` and of inputs, checkboxes and pressed buttons `inset`, drawn in `--color-border-muted` and `--color-input-border`.\n\n## Components\n\n- `.ds-page`: on `<body>`; page fill and body type. `.ds-page__frame` is the centred 600px column; `.ds-page__columns` the sidebar-plus-main grid; `.ds-page__main` the home main column and `.ds-page__inner` the inner-page main column, both with `--space-5` between blocks; `.ds-page__head` stacks path, page header and view links across the full width of an inner page. The page margin is padding inside `.ds-page__frame`, not on `<body>`: when a palette gives `--color-canvas` a colour of its own the frame shows as a sheet on the page and its content keeps that margin from the sheet edge. `.ds-page__frame` takes `--shadow-panel` as well, so a surface set that outlines its boxes also outlines the sheet.\n- `.ds-nav`: header. `.ds-nav__bar` is the solid bar holding the `.ds-brand`, `.ds-nav__tagline` and `.ds-nav__tools` (`.ds-nav__tools-item`, `.ds-nav__tool`, hyphen separated, in the bar's text colour). `.ds-nav__links` is the grey strip: a bold `.ds-nav__label`, then `.ds-nav__item` / `.ds-nav__link` separated by bars, the link of the view that is showing is bold, black and not underlined (`components.css` has one selector per view for this, and `is-current` does the same by hand); `.ds-nav__item--end` pushes a last link to the right edge.\n- `.ds-brand`: the site's mark and name, at the left of the solid bar `.ds-nav__bar`. `.ds-brand__mark` is a small square tile dressed like the button (`--fill-button` over `--color-button`, `--color-button-text` for the drawing, a 2px `outset` bevel drawn in `--color-inverse-text`, the text colour of the bar it sits on, so the tile stands off the bar even when the button fill is close to the bar fill, `--radius-control`, `--shadow-control`), so every palette and surface reskins it; it holds the mark as inline SVG painted with `currentColor`, drawn with square line caps, a 3 unit stroke and crisp edges. `.ds-brand__name` is the name in the heading family at `--text-display`, with the heading weight, tracking and transform, in `--color-inverse-text`. The name `chronoskin` and its mark are placeholders for the installing project's own name and logo.\n- `.ds-hero`: the centred search, the era's page introduction: `.ds-hero__title` (14px bold), `.ds-hero__lead`, `.ds-hero__action` (`.ds-hero__label`, `.ds-hero__field`, button), `.ds-hero__more` (10px links) and `.ds-hero__tools` lines with bold `.ds-hero__tools-label` words. No fill, no border, never a tall banner.\n- `.ds-page-header`: the head of an inner page, used instead of `.ds-hero`: `.ds-page-header__text` with `.ds-page-header__title` (18px bold) and `.ds-page-header__lead`, `.ds-page-header__action` with one button at the right, and a 2px bottom rule in `--color-bar`.\n- `.ds-prose`: running text; styles `h1`, `h2`, `h3`, `p`, `ul`, `ol`, `strong`, `code`; `.ds-prose__lead` for a 14px lead line.\n- `.ds-link`: every link. States `is-visited`, `is-hover`, `is-active`, `is-focus`. `.ds-link--quiet` for secondary links, `.ds-link--strong` for bold links. `.ds-links` wraps a line of links.\n- `.ds-button`: grey bevelled button with a bold 12px label, on a `<button>` or, when it leads to another page, on a link. `.ds-button--secondary` is a darker grey, `.ds-button--danger` the destructive action (the same bevel on `--color-surface` with a bold label in `--color-danger`, never a red button). States `is-hover`, `is-pressed`, `is-focus`, `is-disabled`. `.ds-buttons` lays out a row.\n- `.ds-form`: a two-column form built like a table with 2px spacing: a grey `.ds-form__label` cell at the left, the `.ds-form__field` cell at the right. Controls: `.ds-form__input` (`--short` for 24px fields), `.ds-form__select`, `.ds-form__textarea`, `.ds-form__check` inside a `.ds-form__option`. `.ds-form__hint` for 10px help, `.ds-form__error` for a bold red message under the field, `.ds-form__actions` for the button row under the field column. A select is a bevelled key in `--fill-button` with `--color-button-text`; a checkbox is a small inset field in `--color-input` whose tick is a block of `--color-input-text`.\n- `.ds-table`: rows on rules, no cell boxes and no outline. `.ds-table__head` (sky-blue strip, bold 10px, left-aligned; `--num` right-aligned), `.ds-table__cell` with a 2px bottom rule and `--num`, `--up`, `--down`, `--group` (a centred full-width row on `--color-fill-1`); `.ds-table__desc` is a 10px line under a linked name; `.ds-table__caption` the centred 10px line beneath.\n- `.ds-stat`: the row. One centred line in a tinted outlined box; each `.ds-stat__item` is a `.ds-stat__value` (14px bold) followed by its `.ds-stat__label` (10px), items separated by hyphens. Never stacked cells or separate cards.\n- `.ds-list`: feature list without bullets; each `.ds-list__item` starts with a bold linked `.ds-list__title` and runs on into a sentence, with `.ds-list__meta` (grey 10px, in brackets); `.ds-list__more` is the right-aligned bold 10px link.\n- `.ds-directory`: two-column category index on a `--color-fill-1` block outlined with a `--border-width` line in `--color-bar-alt`, like the figure line: `.ds-directory__title` (12px bold link) over `.ds-directory__subs` (10px links, comma separated).\n- `.ds-band`: the title band that opens every block of the main column; `.ds-band__meta` is its small right-hand line.\n- `.ds-panel`: an outlined box: `.ds-panel__title`, a centred title in `--fill-inverse`, then `.ds-panel__body`; `.ds-panel__cols` sets links in three columns, `.ds-panel__more` is the right-aligned 10px link.\n- `.ds-grid`: a grey strip across the page, itself outlined with a `--border-width` line in `--color-border-muted`, holding four outlined boxes in one row: `.ds-grid__cell` and `--2`, `--3`, `--4` for the four fills, each with a centred `.ds-grid__title` link and a 10px `.ds-grid__text`.\n- `.ds-tabs`: the era's tabs, a centred line of 10px links each in square brackets, under the page header of an inner page; `.ds-tabs__item`, `.ds-tabs__tab`, current `is-current` (bold, black, not underlined).\n- `.ds-badge`: small solid red label. `.ds-badge--text` is a bold red word beside a link; `.ds-badge--count` is a grey count in brackets. Status labels, typed in capitals: `.ds-badge--success` (green, white text), `.ds-badge--warning` (orange, black text), `.ds-badge--danger` (red, white text). `.ds-badges` is a key line under a table.\n- `.ds-sidebar`: the grey left column, filled for the whole height of the row beside it and outlined with a `--border-width` line in `--color-border-muted`, so the border style of a surface set shows on the column as it does on the boxes. Each section has a `.ds-sidebar__title` strip (10px bold capitals on sky blue), an optional `.ds-sidebar__date`, a bulleted `.ds-sidebar__list` of `.ds-sidebar__item`, and `.ds-sidebar__more`; `.ds-sidebar__lookup` with `.ds-sidebar__field` for a one-field form.\n- `.ds-notice`: a centred line in a tinted box with a 2px outline; `.ds-notice__label` bold lead word, `.ds-notice--error` red on white. `.ds-notices` stacks several.\n- `.ds-pagination`: one line with the count (`.ds-pagination__label`, 10px) at the left and bold `.ds-pagination__link` entries at the right; current `is-current`, `is-disabled`.\n- `.ds-breadcrumb`: a 10px path separated by slashes; `.ds-breadcrumb__item`, last one `is-current` (bold).\n- `.ds-dialog`: a centred 300px box in the page flow with a 2px navy outline, centred `.ds-dialog__title` bar in `--fill-inverse`, `.ds-dialog__body`, and `.ds-dialog__actions` on a grey strip. No backdrop, no shadow.\n- `.ds-empty`: centred tinted block with `.ds-empty__title`, `.ds-empty__text` and a button.\n- `.ds-footer`: centred 10px rows under a thin rule: `.ds-footer__links` of comma-separated `.ds-footer__item` after a bold `.ds-footer__label`; `.ds-footer__links--bracket` puts each link in square brackets; `.ds-footer__legal`.\n- `.ds-view`: one screen of the example site; only the one named in the address shows, and `.ds-view--home` shows when none is named. It has no box of its own.\n- `.ds-rule`: 2px rule in the bar colour; `.ds-rule--thin` a grey rule. `.ds-heading`: a plain bold section title where a band would be too heavy.\n\n## Never\n\n- `row-gap <= 6px`: list items and table rows sit close, at most 6px apart.\n- `block-gap <= 16px`: neighbouring blocks are at most 16px apart.\n- `content-width <= 600px`: the page is a fixed 600px column.\n- `font-size >= 10px`: small print is 10px, nothing smaller.\n- `font-size <= 22px`: the wordmark is the largest text; headings stop at 18px.\n- `font-families <= 2`: Arial and Courier.\n- `font-weight >= 400`: only regular, bold and black weights were measured.\n- `underlined-links >= 95%`: every reference underlines 100% of its link text.\n- `letter-spacing = 0`: no reference tracks its text.\n- `uppercase-text <= 0%`: no reference uses text-transform; capitals are typed.\n- `border-radius <= 0px`: no reference has a rounded corner.\n- `box-shadow-blur <= 0px`: shadows are hard offset edges; nothing is blurred.\n- `text-shadow = none`: no reference has a text shadow.\n- `gradient-fills <= 8%`: only the pinstriped bars and title strips carry a pattern; every other fill is flat.\n- `border-width <= 2px`: the widest border measured in any reference is the 2px bevel of a form control.\n- `transition = none`: nothing in the references changes on hover.\n- `animation = none`: no reference has a CSS animation.\n- `border-width >= 2px`: this surface has no 1px lines; every border is 2px.\n\n## Extending\n\nDerive a new component from the nearest one in the specimen and use tokens only. A new block of the main column is a `.ds-band` over a `.ds-list`, a `.ds-directory` or a `.ds-table`; a new box of headlines or links is one more section of the `.ds-sidebar` under a strip; a promotion is one of the four boxes of the `.ds-grid` or a `.ds-panel`; a one-line message is a `.ds-notice`. Keep the solid bar at the top and the filled column on the left of every page, keep text at 13px or 10px in the one sans-serif, keep links underlined and blue, draw every line 2px thick, and never add radius, shadow, gradient, hover effects, a right-hand column or more whitespace than `--space-5`.\n",
    "components.css": "/* Layout tokens (structure part). Read from the 1999 guide page and the 1998\n   community page: a 600px column centred in an 800px window, a solid bar\n   across the top, a 170px filled column of headline boxes on the left, full\n   width title bands over each block of the main column, 2px and 4px cell\n   padding, a 10px gutter and a 16px gap between blocks. */\n:root {\n  --size-page: 600px;\n  --size-sidebar: 170px;\n  --size-search: 220px;\n  --size-label: 120px;\n  --size-field: 180px;\n  --size-area: 240px;\n  --size-check: 13px;\n  --size-dialog: 300px;\n  --space-1: 2px;\n  --space-2: 4px;\n  --space-3: 6px;\n  --space-4: 10px;\n  --space-5: 16px;\n  --space-6: 24px;\n}\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/* The margin is inside the sheet, so a canvas that differs from the page\n   keeps its text off the sheet edge. */\n.ds-page__frame {\n  width: var(--size-page);\n  margin: 0 auto;\n  padding: var(--space-3) var(--space-3) var(--space-5);\n  background: var(--color-canvas);\n  border-radius: var(--radius-page);\n  box-shadow: var(--shadow-panel);\n}\n/* A filled column of boxes on the left, the main column on the right. */\n.ds-page__columns {\n  display: grid;\n  grid-template-columns: var(--size-sidebar) minmax(0, 1fr);\n  column-gap: var(--space-4);\n  align-items: start;\n  padding: var(--space-5) 0 0;\n}\n.ds-page__main,\n.ds-page__inner {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-5);\n  min-width: 0;\n}\n/* Inner page head: path, title line and view links, stacked. */\n.ds-page__head {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-2);\n  padding: var(--space-3) 0 0;\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/* ---------- rules, bands and section headings ---------- */\n.ds-rule {\n  height: 0;\n  margin: var(--space-4) 0 var(--space-2);\n  border: 0;\n  border-top: var(--border-width-strong) var(--border-style) var(--color-bar);\n}\n.ds-rule--thin {\n  border-top: var(--border-width) var(--border-style) var(--color-border-muted);\n}\n/* Title band across the main column: title left, a small line right. */\n.ds-band {\n  display: flex;\n  align-items: baseline;\n  justify-content: space-between;\n  gap: var(--space-3);\n  margin: 0;\n  padding: var(--space-1) var(--space-3);\n  background: var(--fill-bar);\n  color: var(--color-bar-text);\n  font-family: var(--font-heading);\n  font-size: var(--text-base);\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  text-shadow: var(--shadow-text);\n}\n.ds-band__meta {\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-body);\n}\n.ds-heading {\n  margin: 0 0 var(--space-2);\n  color: var(--color-heading);\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/* ---------- 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.ds-link--quiet,\n.ds-link--quiet:visited,\n.ds-link--quiet.is-visited {\n  color: var(--color-link-quiet);\n  font-family: var(--font-ui);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-link--strong {\n  font-weight: var(--weight-bold);\n}\n.ds-links {\n  margin: 0;\n}\n\n/* ---------- nav: a solid bar, then a strip of links ---------- */\n.ds-nav {\n  padding: 0;\n}\n.ds-nav__bar {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: var(--space-4);\n  padding: var(--space-2) var(--space-3);\n  background: var(--fill-inverse);\n  color: var(--color-inverse-text);\n}\n/* brand: the mark on a small bevelled tile dressed like the button, then the name */\n.ds-brand {\n  display: flex;\n  align-items: center;\n  gap: var(--space-2);\n  color: var(--color-inverse-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  box-sizing: border-box;\n  width: calc(var(--text-display) + var(--space-2));\n  height: calc(var(--text-display) + var(--space-2));\n  background: var(--color-button);\n  background: var(--fill-button);\n  color: var(--color-button-text);\n  border: var(--border-width-strong) outset var(--color-inverse-text);\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control);\n}\n.ds-brand__mark svg {\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n.ds-brand__name {\n  font-family: var(--font-heading);\n  font-size: var(--text-display);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-display);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n}\n.ds-nav__tagline {\n  flex: 1;\n  font-family: var(--font-heading);\n  font-size: var(--text-base);\n  font-weight: var(--weight-bold);\n}\n.ds-nav__tools {\n  display: flex;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  font-family: var(--font-ui);\n  font-size: var(--text-base);\n  text-transform: var(--ui-transform);\n}\n.ds-nav__tools-item + .ds-nav__tools-item::before {\n  content: \"-\";\n  padding: 0 var(--space-2);\n}\n.ds-nav__tool,\n.ds-nav__tool:visited {\n  color: var(--color-inverse-text);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-nav__links {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: baseline;\n  margin: 0;\n  padding: var(--space-1) var(--space-3);\n  list-style: none;\n  background: var(--color-surface-alt);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  text-transform: var(--ui-transform);\n}\n.ds-nav__label {\n  padding: 0 var(--space-2) 0 0;\n  font-weight: var(--weight-bold);\n}\n.ds-nav__item + .ds-nav__item::before {\n  content: \"|\";\n  padding: 0 var(--space-2);\n  color: var(--color-text);\n}\n.ds-nav__item--end {\n  margin: 0 0 0 auto;\n}\n.ds-nav__item--end::before {\n  display: none;\n}\n.ds-nav__link {\n  color: var(--color-link);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-nav__link:visited,\n.ds-nav__link.is-visited {\n  color: var(--color-link-visited);\n}\n.ds-nav__link:hover,\n.ds-nav__link.is-hover {\n  color: var(--color-link-hover);\n}\n/* The current page: its own link, bold, in the text colour, not underlined.\n   One selector per view, and the guide link when the address names no view. */\n.ds-nav__link.is-current,\n.ds-page:not(:has(.ds-view:target)) .ds-nav__link[href=\"#guide\"],\n.ds-page:has(#guide:target) .ds-nav__link[href=\"#guide\"],\n.ds-page:has(#rambling:target) .ds-nav__link[href=\"#rambling\"],\n.ds-page:has(#walk:target) .ds-nav__link[href=\"#walk\"],\n.ds-page:has(#add:target) .ds-nav__link[href=\"#add\"],\n.ds-page:has(#mine:target) .ds-nav__link[href=\"#mine\"] {\n  color: var(--color-text);\n  font-weight: var(--weight-bold);\n  text-decoration: none;\n}\n\n/* ---------- hero: a centred search on the bare page ---------- */\n.ds-hero {\n  padding: var(--space-5) 0 var(--space-4);\n  text-align: center;\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n.ds-hero__title {\n  margin: 0;\n  color: var(--color-heading);\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.ds-hero__lead {\n  margin: 0;\n  font-family: var(--font-body);\n  font-size: var(--text-base);\n}\n.ds-hero__action {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: var(--space-3);\n  margin: 0;\n  padding: var(--space-4) 0 var(--space-3);\n}\n.ds-hero__label {\n  font-family: var(--font-heading);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-heading);\n}\n.ds-form__input.ds-hero__field {\n  width: var(--size-search);\n}\n.ds-hero__more {\n  margin: 0 0 var(--space-4);\n  font-size: var(--text-small);\n}\n.ds-hero__tools {\n  margin: 0;\n  font-size: var(--text-small);\n}\n.ds-hero__tools-label {\n  font-weight: var(--weight-bold);\n}\n\n/* ---------- prose ---------- */\n.ds-prose {\n  color: var(--color-text);\n  font-family: var(--font-body);\n  font-size: var(--text-base);\n  line-height: var(--line-body);\n}\n.ds-prose h1,\n.ds-prose h2,\n.ds-prose h3 {\n  margin: var(--space-3) 0 var(--space-2);\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-top: 0;\n  font-size: var(--text-h1);\n}\n.ds-prose h2 {\n  font-size: var(--text-h2);\n}\n.ds-prose h3 {\n  font-size: var(--text-h3);\n  color: var(--color-heading-alt);\n}\n.ds-prose p {\n  margin: 0 0 var(--space-3);\n}\n.ds-prose ul,\n.ds-prose ol {\n  margin: 0 0 var(--space-3);\n  padding: 0 0 0 var(--space-6);\n}\n.ds-prose strong {\n  font-weight: var(--weight-bold);\n}\n.ds-prose code {\n  font-family: var(--font-mono);\n  font-size: var(--text-ui);\n}\n.ds-prose__lead {\n  font-size: var(--text-large);\n}\n\n/* ---------- page header: title line closed by a thick rule ---------- */\n.ds-page-header {\n  display: flex;\n  align-items: flex-end;\n  justify-content: space-between;\n  gap: var(--space-4);\n  padding: 0 0 var(--space-2);\n  border-bottom: var(--border-width-strong) var(--border-style) var(--color-bar);\n}\n.ds-page-header__text {\n  flex: 1;\n  min-width: 0;\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__lead {\n  margin: 0;\n  font-family: var(--font-body);\n  font-size: var(--text-base);\n}\n.ds-page-header__action {\n  flex: none;\n}\n\n/* ---------- buttons ---------- */\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  margin: 0;\n  padding: var(--space-1) var(--space-3);\n  background: var(--fill-button);\n  color: var(--color-button-text);\n  border: var(--border-width-strong) outset var(--color-border-muted);\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-ui);\n  line-height: var(--line-heading);\n  text-transform: var(--ui-transform);\n  text-decoration: none;\n  text-shadow: var(--shadow-text);\n  transition: var(--transition);\n  cursor: default;\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-pressed {\n  border-style: inset;\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}\n/* Destructive action: the same bevel on the surface colour, the label in the\n   bold danger colour, which every palette keeps legible on its surface. */\n.ds-button--danger,\n.ds-button--danger:hover,\n.ds-button--danger.is-hover {\n  background: var(--color-surface);\n  color: var(--color-danger);\n  font-weight: var(--weight-bold);\n}\n.ds-button:disabled,\n.ds-button.is-disabled {\n  background: var(--color-disabled);\n  color: var(--color-disabled-text);\n  box-shadow: none;\n}\n\n/* ---------- form: a label cell and a field cell per row ---------- */\n.ds-form {\n  display: grid;\n  grid-template-columns: var(--size-label) minmax(0, 1fr);\n  gap: var(--space-1);\n  margin: 0;\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n.ds-form__label {\n  padding: var(--space-2) var(--space-3);\n  background: var(--color-surface-alt);\n}\n.ds-form__field {\n  min-width: 0;\n  padding: var(--space-1) var(--space-2);\n}\n.ds-form__input,\n.ds-form__select,\n.ds-form__textarea {\n  box-sizing: border-box;\n  margin: 0;\n  padding: var(--space-1);\n  background: var(--fill-input);\n  color: var(--color-input-text);\n  border: var(--border-width-strong) inset 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  transition: var(--transition);\n}\n.ds-form__input {\n  width: var(--size-field);\n}\n.ds-form__select {\n  border-style: outset;\n  background: var(--fill-button);\n  color: var(--color-button-text);\n}\n.ds-form__textarea {\n  display: block;\n  width: var(--size-area);\n  font-family: var(--font-mono);\n}\n.ds-form__input:focus-visible,\n.ds-form__select:focus-visible,\n.ds-form__textarea: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__check {\n  appearance: none;\n  box-sizing: border-box;\n  width: var(--size-check);\n  height: var(--size-check);\n  margin: 0 var(--space-2) 0 0;\n  padding: var(--space-1);\n  vertical-align: middle;\n  background-color: var(--color-input);\n  border: var(--border-width-strong) inset var(--color-input-border);\n  border-radius: var(--radius-control);\n}\n/* The tick is a block of the field's text colour inside the field's own\n   fill, so it reads the same on a light and on a dark page. */\n.ds-form__check:checked::before,\n.ds-form__check.is-checked::before {\n  content: \"\";\n  display: block;\n  width: 100%;\n  height: 100%;\n  background-color: var(--color-input-text);\n}\n.ds-form__input--short {\n  width: var(--space-6);\n}\n.ds-form__option {\n  padding: 0 var(--space-3) 0 0;\n}\n.ds-form__hint {\n  font-size: var(--text-small);\n  color: var(--color-text-muted);\n}\n.ds-form__error {\n  display: block;\n  color: var(--color-danger);\n  font-weight: var(--weight-bold);\n}\n.ds-form__actions {\n  grid-column: 2;\n  display: flex;\n  flex-wrap: wrap;\n  gap: var(--space-3);\n  padding: var(--space-2);\n}\n\n/* ---------- table: rows on rules, no cell boxes ---------- */\n.ds-table {\n  width: 100%;\n  border-collapse: collapse;\n  background: var(--fill-panel);\n  border-radius: var(--radius-panel);\n  font-family: var(--font-body);\n  font-size: var(--text-base);\n}\n.ds-table__head {\n  padding: var(--space-1) var(--space-2);\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  text-align: left;\n}\n.ds-table__cell {\n  padding: var(--space-2);\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__head--num,\n.ds-table__cell--num {\n  text-align: right;\n}\n.ds-table__cell--up {\n  color: var(--color-heading-alt);\n}\n.ds-table__cell--down {\n  color: var(--color-accent-alt);\n}\n.ds-table__cell--group {\n  background: var(--color-fill-1);\n  text-align: center;\n}\n.ds-table__desc {\n  display: block;\n  font-size: var(--text-small);\n}\n.ds-table__caption {\n  caption-side: bottom;\n  padding: var(--space-2) 0 0;\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  text-align: center;\n}\n\n/* ---------- stats: one centred line of figures in a tinted box ---------- */\n.ds-stat {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: center;\n  align-items: baseline;\n  margin: 0;\n  padding: var(--space-2) var(--space-3);\n  list-style: none;\n  background: var(--color-fill-1);\n  border: var(--border-width) var(--border-style) var(--color-bar-alt);\n  border-radius: var(--radius-panel);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n}\n.ds-stat__item + .ds-stat__item::before {\n  content: \"-\";\n  padding: 0 var(--space-3);\n}\n.ds-stat__label {\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n}\n.ds-stat__value {\n  color: var(--color-heading);\n  font-family: var(--font-heading);\n  font-size: var(--text-large);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n}\n\n/* ---------- directory: two columns of categories on a tinted block ---------- */\n.ds-directory {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  column-gap: var(--space-4);\n  row-gap: var(--space-3);\n  margin: 0;\n  padding: var(--space-3) var(--space-4);\n  list-style: none;\n  background: var(--color-fill-1);\n  border: var(--border-width) var(--border-style) var(--color-bar-alt);\n}\n.ds-directory__title {\n  display: block;\n  color: var(--color-link);\n  font-family: var(--font-heading);\n  font-size: var(--text-base);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-directory__title:visited,\n.ds-directory__title.is-visited {\n  color: var(--color-link-visited);\n}\n.ds-directory__title:hover,\n.ds-directory__title.is-hover {\n  color: var(--color-link-hover);\n}\n.ds-directory__subs {\n  display: block;\n  font-size: var(--text-small);\n}\n\n/* ---------- list: a bold linked title that runs into its description ---------- */\n.ds-list {\n  margin: 0;\n  padding: var(--space-3) var(--space-3) 0;\n  list-style: none;\n  font-size: var(--text-base);\n}\n.ds-list__item {\n  padding: 0 0 var(--space-3);\n}\n.ds-list__title {\n  padding: 0 var(--space-3) 0 0;\n  font-family: var(--font-heading);\n  font-weight: var(--weight-heading);\n}\n.ds-list__meta {\n  color: var(--color-text-muted);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n}\n.ds-list__more {\n  margin: 0;\n  padding: 0 var(--space-3);\n  text-align: right;\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n}\n\n/* ---------- panel: outlined box under a centred solid title ---------- */\n.ds-panel {\n  background: var(--fill-panel);\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}\n.ds-panel__title {\n  margin: 0;\n  padding: var(--space-1) var(--space-3);\n  background: var(--fill-inverse);\n  color: var(--color-inverse-text);\n  font-family: var(--font-heading);\n  font-size: var(--text-base);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n  text-align: center;\n}\n.ds-panel__body {\n  padding: var(--space-3) var(--space-4);\n}\n.ds-panel__cols {\n  display: grid;\n  grid-template-columns: 1fr 1fr 1fr;\n  column-gap: var(--space-4);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-panel__more {\n  margin: var(--space-2) 0 0;\n  text-align: right;\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n}\n\n/* ---------- grid: a strip of four outlined boxes across the page ---------- */\n.ds-grid {\n  display: grid;\n  grid-template-columns: 1fr 1fr 1fr 1fr;\n  gap: var(--space-4);\n  padding: var(--space-2) var(--space-4);\n  background: var(--color-surface-alt);\n  border: var(--border-width) var(--border-style) var(--color-border-muted);\n}\n.ds-grid__cell {\n  min-width: 0;\n  padding: var(--space-1) var(--space-2);\n  background: var(--color-fill-1);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-page);\n  text-align: center;\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__title {\n  margin: 0;\n  font-family: var(--font-heading);\n  font-size: var(--text-base);\n  font-weight: var(--weight-heading);\n}\n.ds-grid__text {\n  margin: 0;\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n}\n\n/* ---------- tabs: a centred line of bracketed links ---------- */\n.ds-tabs {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: center;\n  align-items: baseline;\n  column-gap: var(--space-2);\n  margin: 0;\n  padding: var(--space-1) 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-tabs__item::before {\n  content: \"[\";\n}\n.ds-tabs__item::after {\n  content: \"]\";\n}\n.ds-tabs__tab {\n  color: var(--color-link);\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}\n.ds-tabs__tab.is-current {\n  color: var(--color-text);\n  font-weight: var(--weight-bold);\n  text-decoration: none;\n}\n\n/* ---------- badge ---------- */\n.ds-badge {\n  display: inline-block;\n  padding: 0 var(--space-2);\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-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n}\n.ds-badge--text {\n  padding: 0;\n  background: transparent;\n  color: var(--color-accent-alt);\n}\n.ds-badge--count {\n  padding: 0;\n  background: transparent;\n  color: var(--color-text-muted);\n  font-weight: var(--weight-body);\n}\n.ds-badge--success {\n  background: var(--color-success);\n  color: var(--color-accent-text);\n}\n.ds-badge--warning {\n  background: var(--color-warning);\n  color: var(--color-bar-alt-text);\n}\n.ds-badge--danger {\n  background: var(--color-danger);\n  color: var(--color-accent-text);\n}\n.ds-badges {\n  display: block;\n  padding: 0 0 var(--space-1);\n}\n\n/* ---------- sidebar: a filled column of headline boxes ---------- */\n/* The fill runs the whole height of the row, as a filled table cell did. */\n.ds-sidebar {\n  display: flex;\n  flex-direction: column;\n  align-self: stretch;\n  gap: var(--space-4);\n  padding: 0 0 var(--space-3);\n  background: var(--color-surface-alt);\n  border: var(--border-width) var(--border-style) var(--color-border-muted);\n}\n.ds-sidebar__title {\n  margin: 0;\n  padding: var(--space-1) var(--space-3);\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n  font-family: var(--font-heading);\n  font-size: var(--text-small);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n}\n.ds-sidebar__date {\n  margin: 0;\n  padding: var(--space-1) var(--space-3) 0;\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n}\n.ds-sidebar__list {\n  margin: var(--space-2) 0 0;\n  padding: 0 var(--space-2) 0 var(--space-6);\n  list-style: disc;\n  font-size: var(--text-base);\n}\n.ds-sidebar__item {\n  padding: 0 0 var(--space-3);\n}\n.ds-sidebar__more {\n  margin: 0;\n  padding: 0 var(--space-2);\n  text-align: right;\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n}\n.ds-sidebar__lookup {\n  display: flex;\n  align-items: center;\n  gap: var(--space-1);\n  margin: var(--space-2) 0 0;\n  padding: 0 var(--space-3);\n}\n.ds-form__input.ds-sidebar__field {\n  width: 100%;\n  min-width: 0;\n}\n\n/* ---------- notice: a centred tinted line with an outline ---------- */\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-2) var(--space-3);\n  background: var(--color-notice);\n  color: var(--color-notice-text);\n  border: var(--border-width) var(--border-style) var(--color-bar-alt);\n  border-radius: var(--radius-panel);\n  font-family: var(--font-ui);\n  font-size: var(--text-base);\n  text-align: center;\n}\n.ds-notice--error {\n  background: var(--color-danger-surface);\n  color: var(--color-danger);\n  border-color: var(--color-danger);\n}\n.ds-notice__label {\n  font-weight: var(--weight-bold);\n}\n\n/* ---------- pagination: count at the left, pages at the right ---------- */\n.ds-pagination {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: baseline;\n  gap: var(--space-3);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  font-family: var(--font-ui);\n  font-size: var(--text-base);\n}\n.ds-pagination__label {\n  margin: 0 auto 0 0;\n  font-size: var(--text-small);\n}\n.ds-pagination__link {\n  color: var(--color-link);\n  font-weight: var(--weight-bold);\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}\n.ds-pagination__link.is-current {\n  color: var(--color-text);\n  text-decoration: none;\n}\n.ds-pagination__link.is-disabled {\n  color: var(--color-disabled-text);\n  font-weight: var(--weight-body);\n  text-decoration: none;\n}\n\n/* ---------- breadcrumb ---------- */\n.ds-breadcrumb {\n  display: flex;\n  flex-wrap: wrap;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n}\n.ds-breadcrumb__item + .ds-breadcrumb__item::before {\n  content: \"/\";\n  padding: 0 var(--space-2);\n  color: var(--color-text);\n}\n.ds-breadcrumb__item.is-current {\n  color: var(--color-text);\n  font-weight: var(--weight-bold);\n}\n\n/* ---------- dialog: an outlined box in the page flow ---------- */\n.ds-dialog {\n  position: static;\n  box-sizing: border-box;\n  width: var(--size-dialog);\n  margin: 0 auto;\n  padding: 0;\n  background: var(--fill-panel);\n  color: var(--color-text);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-dialog);\n  font-family: var(--font-ui);\n  font-size: var(--text-base);\n}\n.ds-dialog__title {\n  margin: 0;\n  padding: var(--space-1) var(--space-3);\n  background: var(--fill-inverse);\n  color: var(--color-inverse-text);\n  font-family: var(--font-heading);\n  font-size: var(--text-base);\n  font-weight: var(--weight-heading);\n  text-align: center;\n}\n.ds-dialog__body {\n  margin: 0;\n  padding: var(--space-3) var(--space-4);\n}\n.ds-dialog__actions {\n  display: flex;\n  justify-content: center;\n  gap: var(--space-3);\n  padding: var(--space-2) var(--space-3);\n  background: var(--color-surface-alt);\n}\n\n/* ---------- empty state ---------- */\n.ds-empty {\n  padding: var(--space-4);\n  background: var(--color-fill-1);\n  text-align: center;\n  font-size: var(--text-base);\n}\n.ds-empty__title {\n  margin: 0 0 var(--space-2);\n  font-family: var(--font-heading);\n  font-size: var(--text-base);\n  font-weight: var(--weight-heading);\n}\n.ds-empty__text {\n  margin: 0 0 var(--space-3);\n}\n\n/* ---------- footer ---------- */\n.ds-footer {\n  text-align: center;\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n}\n.ds-footer__links {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: center;\n  margin: 0;\n  padding: var(--space-2) var(--space-5);\n  list-style: none;\n}\n.ds-footer__item + .ds-footer__item::before {\n  content: \",\";\n  padding: 0 var(--space-2) 0 0;\n}\n.ds-footer__links--bracket {\n  column-gap: var(--space-2);\n}\n.ds-footer__links--bracket .ds-footer__item::before {\n  content: \"[\";\n  padding: 0;\n}\n.ds-footer__links--bracket .ds-footer__item::after {\n  content: \"]\";\n}\n.ds-footer__label {\n  padding: 0 var(--space-2) 0 0;\n  font-weight: var(--weight-bold);\n}\n.ds-footer__legal {\n  margin: var(--space-2) 0 0;\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>Table-era guide page, 1996 to 2000: 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\n  <header class=\"ds-nav\" data-component=\"nav\">\n    <div class=\"ds-nav__bar\">\n      <a class=\"ds-brand\" data-component=\"brand\" href=\"#\">\n        <span class=\"ds-brand__mark\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"square\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M12 3a9 9 0 1 1-9 9\"/><path d=\"M12 17a5 5 0 1 1 5-5\"/><circle cx=\"12\" cy=\"12\" r=\"1.4\" fill=\"currentColor\" stroke=\"none\"/></svg></span>\n        <span class=\"ds-brand__name\">chronoskin</span>\n      </a>\n      <span class=\"ds-nav__tagline\">Your Guide to the Net</span>\n      <ul class=\"ds-nav__tools\">\n        <li class=\"ds-nav__tools-item\"><a class=\"ds-nav__tool\" href=\"#\">Get Online</a></li>\n        <li class=\"ds-nav__tools-item\"><a class=\"ds-nav__tool\" href=\"#\">Check Mail</a></li>\n        <li class=\"ds-nav__tools-item\"><a class=\"ds-nav__tool\" href=\"#mine\">My chronoskin</a></li>\n      </ul>\n    </div>\n    <ul class=\"ds-nav__links\">\n      <li class=\"ds-nav__label\">chronoskin:</li>\n      <li class=\"ds-nav__item\"><a class=\"ds-nav__link\" href=\"#guide\">Guide</a></li>\n      <li class=\"ds-nav__item\"><a class=\"ds-nav__link\" href=\"#rambling\">Outdoors</a></li>\n      <li class=\"ds-nav__item\"><a class=\"ds-nav__link\" href=\"#walk\">Walk of the Month</a></li>\n      <li class=\"ds-nav__item\"><a class=\"ds-nav__link\" href=\"#add\">Add a Walk</a></li>\n      <li class=\"ds-nav__item\"><a class=\"ds-nav__link\" href=\"#mine\">My Walks</a></li>\n      <li class=\"ds-nav__item\"><a class=\"ds-nav__link is-visited\" href=\"#\">Clubs</a></li>\n      <li class=\"ds-nav__item ds-nav__item--end\"><a class=\"ds-nav__link\" href=\"#\">All Services...</a></li>\n    </ul>\n  </header>\n\n  <main>\n\n  <section class=\"ds-view ds-view--home\" id=\"guide\">\n\n    <section class=\"ds-hero\" data-component=\"hero\">\n      <h1 class=\"ds-hero__title\">Find it on chronoskin</h1>\n      <p class=\"ds-hero__lead\">Half a million pages sorted by people, not machines.</p>\n      <form class=\"ds-hero__action\" action=\"#\">\n        <label class=\"ds-hero__label\" for=\"h-q\">Search for</label>\n        <input class=\"ds-form__input ds-hero__field\" id=\"h-q\" type=\"text\">\n        <button class=\"ds-button\" type=\"button\">Go Fetch</button>\n      </form>\n      <p class=\"ds-hero__more\"><a class=\"ds-link\" href=\"#\">Advanced Search</a> | <a class=\"ds-link\" href=\"#\">Family Filter</a></p>\n      <p class=\"ds-hero__tools\"><span class=\"ds-hero__tools-label\">Tools</span> <a class=\"ds-link\" href=\"#\">Help</a> &nbsp;<a class=\"ds-link\" href=\"#\">Chat</a> &nbsp;<a class=\"ds-link\" href=\"#\">E-mail</a> &nbsp;<a class=\"ds-link\" href=\"#\">Shareware</a> &nbsp;<span class=\"ds-hero__tools-label\">Build</span> <a class=\"ds-link\" href=\"#\">Home Pages</a> &nbsp;<a class=\"ds-link\" href=\"#\">Clubs</a></p>\n      <p class=\"ds-hero__tools\"><span class=\"ds-hero__tools-label\">Find</span> <a class=\"ds-link\" href=\"#\">Sounds</a> &nbsp;<a class=\"ds-link\" href=\"#\">News</a> &nbsp;<a class=\"ds-link\" href=\"#\">Weather</a> &nbsp;<a class=\"ds-link\" href=\"#\">Road Maps</a> &nbsp;<a class=\"ds-link\" href=\"#\">People</a> &nbsp;<span class=\"ds-hero__tools-label\">Buy</span> <a class=\"ds-link\" href=\"#\">Books</a> &nbsp;<a class=\"ds-link\" href=\"#\">Records</a></p>\n    </section>\n\n    <div class=\"ds-grid\" data-component=\"grid\">\n      <div class=\"ds-grid__cell\">\n        <p class=\"ds-grid__title\"><a class=\"ds-link\" href=\"#\">Seed Swap</a></p>\n        <p class=\"ds-grid__text\">Gardeners trade by post</p>\n      </div>\n      <div class=\"ds-grid__cell ds-grid__cell--2\">\n        <p class=\"ds-grid__title\"><a class=\"ds-link\" href=\"#\">Kite Club</a></p>\n        <p class=\"ds-grid__text\">Plans and meeting dates</p>\n      </div>\n      <div class=\"ds-grid__cell ds-grid__cell--3\">\n        <p class=\"ds-grid__title\"><a class=\"ds-link\" href=\"#\">Radio Shack</a></p>\n        <p class=\"ds-grid__text\">Short-wave listeners' log</p>\n      </div>\n      <div class=\"ds-grid__cell ds-grid__cell--4\">\n        <p class=\"ds-grid__title\"><a class=\"ds-link\" href=\"#\">Page Kit</a></p>\n        <p class=\"ds-grid__text\">Make a home page today</p>\n      </div>\n    </div>\n\n    <div class=\"ds-page__columns\">\n\n      <aside class=\"ds-sidebar\" data-component=\"sidebar\">\n        <section>\n          <h2 class=\"ds-sidebar__title\">HEADLINES</h2>\n          <p class=\"ds-sidebar__date\">June 14, 1999</p>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#\">Canal reopens to narrowboats</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#\">Eclipse glasses sell out early</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link is-visited\" href=\"#\">Village team wins the county cup</a></li>\n          </ul>\n          <p class=\"ds-sidebar__more\"><a class=\"ds-link\" href=\"#\">More News...</a></p>\n        </section>\n        <section>\n          <h2 class=\"ds-sidebar__title\">MARKETPLACE</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#\">Second-hand books by the box</a> <span class=\"ds-badge\">NEW</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#\">Bicycle parts, posted free</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#\">Send a paper postcard</a></li>\n          </ul>\n          <p class=\"ds-sidebar__more\"><a class=\"ds-link\" href=\"#\">More Shopping...</a></p>\n        </section>\n        <section>\n          <h2 class=\"ds-sidebar__title\">FIND A MEMBER</h2>\n          <form class=\"ds-sidebar__lookup\" action=\"#\">\n            <input class=\"ds-form__input ds-sidebar__field\" type=\"text\" aria-label=\"Member name\">\n            <button class=\"ds-button\" type=\"button\">Go</button>\n          </form>\n        </section>\n      </aside>\n\n      <div class=\"ds-page__main\">\n\n        <section>\n          <h2 class=\"ds-band\">Explore the Guide <span class=\"ds-band__meta\">Monday, 14-Jun-99 08:12</span></h2>\n          <ul class=\"ds-directory\">\n            <li><a class=\"ds-directory__title\" href=\"#\">Arts &amp; Crafts</a><span class=\"ds-directory__subs\"><a class=\"ds-link\" href=\"#\">Pottery</a>, <a class=\"ds-link\" href=\"#\">Quilting</a>, <a class=\"ds-link\" href=\"#\">Theatre</a></span></li>\n            <li><a class=\"ds-directory__title\" href=\"#\">Home &amp; Garden</a><span class=\"ds-directory__subs\"><a class=\"ds-link\" href=\"#\">Allotments</a>, <a class=\"ds-link\" href=\"#\">Baking</a>, <a class=\"ds-link\" href=\"#\">Repairs</a></span></li>\n            <li><a class=\"ds-directory__title\" href=\"#\">Computers</a><span class=\"ds-directory__subs\"><a class=\"ds-link\" href=\"#\">Hardware</a>, <a class=\"ds-link is-visited\" href=\"#\">Page Making</a>, <a class=\"ds-link\" href=\"#\">Games</a></span></li>\n            <li><a class=\"ds-directory__title\" href=\"#\">People &amp; Clubs</a><span class=\"ds-directory__subs\"><a class=\"ds-link\" href=\"#\">Pen Pals</a>, <a class=\"ds-link\" href=\"#\">Societies</a>, <a class=\"ds-link\" href=\"#\">Reunions</a></span></li>\n            <li><a class=\"ds-directory__title\" href=\"#\">Learning</a><span class=\"ds-directory__subs\"><a class=\"ds-link\" href=\"#\">Schools</a>, <a class=\"ds-link\" href=\"#\">Languages</a>, <a class=\"ds-link\" href=\"#\">Night Classes</a></span></li>\n            <li><a class=\"ds-directory__title\" href=\"#rambling\">Outdoors</a><span class=\"ds-directory__subs\"><a class=\"ds-link\" href=\"#\">Angling</a>, <a class=\"ds-link\" href=\"#rambling\">Rambling</a>, <a class=\"ds-link\" href=\"#\">Sailing</a></span></li>\n            <li><a class=\"ds-directory__title\" href=\"#\">Music</a><span class=\"ds-directory__subs\"><a class=\"ds-link\" href=\"#\">Brass Bands</a>, <a class=\"ds-link\" href=\"#\">Folk</a>, <a class=\"ds-link\" href=\"#\">Sheet Music</a> <span class=\"ds-badge ds-badge--text\">New!</span></span></li>\n            <li><a class=\"ds-directory__title\" href=\"#\">Travel</a><span class=\"ds-directory__subs\"><a class=\"ds-link\" href=\"#\">Railways</a>, <a class=\"ds-link\" href=\"#\">Ferries</a>, <a class=\"ds-link\" href=\"#\">Hostels</a></span></li>\n          </ul>\n        </section>\n\n        <section>\n          <h2 class=\"ds-band\">Getting the Most Out of chronoskin</h2>\n          <ul class=\"ds-list\" data-component=\"list\">\n            <li class=\"ds-list__item\"><a class=\"ds-link ds-list__title\" href=\"#rambling\">Take the Tour</a>Ten minutes, six pages, and you will know where everything is kept. <span class=\"ds-list__meta\">(updated Jun 11)</span></li>\n            <li class=\"ds-list__item\"><a class=\"ds-link ds-list__title\" href=\"#\">Start a Club</a>Any three members can open a club with its own board and calendar. <span class=\"ds-list__meta\">(214 clubs so far)</span></li>\n            <li class=\"ds-list__item\"><a class=\"ds-link ds-list__title\" href=\"#walk\">Walk of the Month</a>Heron Weir and back: a flat towpath, a weir and a place for tea, chosen by the editors. <span class=\"ds-list__meta\">(June)</span></li>\n          </ul>\n          <p class=\"ds-list__more\"><a class=\"ds-link\" href=\"#\">What's New...</a></p>\n        </section>\n\n        <section class=\"ds-panel\" data-component=\"panel\">\n          <h2 class=\"ds-panel__title\">Featured Guides</h2>\n          <div class=\"ds-panel__body\">\n            <ul class=\"ds-panel__cols\">\n              <li><a class=\"ds-link\" href=\"#\">Bee Keeping</a></li>\n              <li><a class=\"ds-link\" href=\"#\">Canals</a></li>\n              <li><a class=\"ds-link\" href=\"#\">Chess</a></li>\n              <li><a class=\"ds-link\" href=\"#\">Family Trees</a></li>\n              <li><a class=\"ds-link\" href=\"#\">Model Railways</a></li>\n              <li><a class=\"ds-link\" href=\"#\">Old Maps</a></li>\n              <li><a class=\"ds-link\" href=\"#rambling\">Rambling</a></li>\n              <li><a class=\"ds-link\" href=\"#\">Stargazing</a></li>\n              <li><a class=\"ds-link\" href=\"#\">Wood Turning</a></li>\n            </ul>\n            <p class=\"ds-panel__more\"><a class=\"ds-link\" href=\"#\">More...</a></p>\n          </div>\n        </section>\n\n      </div>\n    </div>\n\n  </section>\n\n  <section class=\"ds-view\" id=\"rambling\">\n\n    <div class=\"ds-page__head\">\n      <nav aria-label=\"Path\">\n        <ol class=\"ds-breadcrumb\" data-component=\"breadcrumb\">\n          <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#guide\">Guide</a></li>\n          <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#rambling\">Outdoors</a></li>\n          <li class=\"ds-breadcrumb__item is-current\">Rambling</li>\n        </ol>\n      </nav>\n      <header class=\"ds-page-header\" data-component=\"page-header\">\n        <div class=\"ds-page-header__text\">\n          <h1 class=\"ds-page-header__title\">Rambling</h1>\n          <p class=\"ds-page-header__lead\">Walks, maps and clubs, kept by members who walk them.</p>\n        </div>\n        <div class=\"ds-page-header__action\">\n          <a class=\"ds-button\" href=\"#add\">Add a Walk</a>\n        </div>\n      </header>\n      <ul class=\"ds-tabs\" data-component=\"tabs\">\n        <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab is-current\" href=\"#rambling\">Walks</a></li>\n        <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#rambling\">Clubs</a></li>\n        <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#rambling\">Message Board</a></li>\n        <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#rambling\">Members' Pages</a></li>\n        <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#mine\">My Walks</a></li>\n      </ul>\n    </div>\n\n    <div class=\"ds-page__columns\">\n\n      <aside class=\"ds-sidebar\">\n        <section>\n          <h2 class=\"ds-sidebar__title\">IN OUTDOORS</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#rambling\">Angling</a> <span class=\"ds-badge ds-badge--count\">(88)</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#rambling\">Bird Watching</a> <span class=\"ds-badge ds-badge--count\">(131)</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#rambling\">Camping</a> <span class=\"ds-badge ds-badge--count\">(64)</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#rambling\">Sailing</a> <span class=\"ds-badge ds-badge--count\">(52)</span></li>\n          </ul>\n        </section>\n        <section>\n          <h2 class=\"ds-sidebar__title\">ON THE BOARD NOW</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#rambling\">Which boots for wet moors?</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#rambling\">Stiles that need mending</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link is-visited\" href=\"#rambling\">Lifts wanted from the station</a></li>\n          </ul>\n          <p class=\"ds-sidebar__more\"><a class=\"ds-link\" href=\"#rambling\">All Messages...</a></p>\n        </section>\n        <section>\n          <h2 class=\"ds-sidebar__title\">WALK OF THE MONTH</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#walk\">Heron Weir and back</a> <span class=\"ds-badge\">NEW</span></li>\n          </ul>\n        </section>\n      </aside>\n\n      <div class=\"ds-page__inner\">\n\n        <ul class=\"ds-stat\" data-component=\"stats\">\n          <li class=\"ds-stat__item\"><span class=\"ds-stat__value\">342</span> <span class=\"ds-stat__label\">walks</span></li>\n          <li class=\"ds-stat__item\"><span class=\"ds-stat__value\">18</span> <span class=\"ds-stat__label\">new this month</span></li>\n          <li class=\"ds-stat__item\"><span class=\"ds-stat__value\">57</span> <span class=\"ds-stat__label\">clubs</span></li>\n          <li class=\"ds-stat__item\"><span class=\"ds-stat__value\">1,204</span> <span class=\"ds-stat__label\">members</span></li>\n        </ul>\n\n        <table class=\"ds-table\" data-component=\"table\">\n          <caption class=\"ds-table__caption\">\n            <span class=\"ds-badges\" data-component=\"badge\">Key: <span class=\"ds-badge ds-badge--success\">OPEN</span> walked this season <span class=\"ds-badge ds-badge--warning\">CHECK</span> not walked lately <span class=\"ds-badge ds-badge--danger\">CLOSED</span> path shut <span class=\"ds-badge\">NEW</span> added this month</span>\n            Distances are in miles. <a class=\"ds-link\" href=\"#rambling\">Report a closed path</a>\n          </caption>\n          <thead>\n            <tr>\n              <th class=\"ds-table__head\" scope=\"col\">Walk</th>\n              <th class=\"ds-table__head\" scope=\"col\">Path</th>\n              <th class=\"ds-table__head ds-table__head--num\" scope=\"col\">Miles</th>\n              <th class=\"ds-table__head ds-table__head--num\" scope=\"col\">Walked</th>\n            </tr>\n          </thead>\n          <tbody>\n            <tr>\n              <td class=\"ds-table__cell\"><a class=\"ds-link\" href=\"#walk\">Heron Weir and back</a> <span class=\"ds-badge\">NEW</span><span class=\"ds-table__desc\">Flat towpath, good for prams.</span></td>\n              <td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--success\">OPEN</span></td>\n              <td class=\"ds-table__cell ds-table__cell--num\">3.5</td>\n              <td class=\"ds-table__cell ds-table__cell--num\">412</td>\n            </tr>\n            <tr>\n              <td class=\"ds-table__cell\"><a class=\"ds-link\" href=\"#walk\">The Three Beacons</a><span class=\"ds-table__desc\">A long ridge day with two steep climbs.</span></td>\n              <td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--success\">OPEN</span></td>\n              <td class=\"ds-table__cell ds-table__cell--num\">11.0</td>\n              <td class=\"ds-table__cell ds-table__cell--num\">268</td>\n            </tr>\n            <tr>\n              <td class=\"ds-table__cell\"><a class=\"ds-link\" href=\"#walk\">Old Drovers' Lane</a><span class=\"ds-table__desc\">Green lane between two market towns.</span></td>\n              <td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--warning\">CHECK</span></td>\n              <td class=\"ds-table__cell ds-table__cell--num\">6.2</td>\n              <td class=\"ds-table__cell ds-table__cell--num\">75</td>\n            </tr>\n            <tr>\n              <td class=\"ds-table__cell\"><a class=\"ds-link is-visited\" href=\"#walk\">Quarry Edge circuit</a><span class=\"ds-table__desc\">Shut while the fence is rebuilt.</span></td>\n              <td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--danger\">CLOSED</span></td>\n              <td class=\"ds-table__cell ds-table__cell--num\">4.8</td>\n              <td class=\"ds-table__cell ds-table__cell--num\">139</td>\n            </tr>\n            <tr>\n              <td class=\"ds-table__cell ds-table__cell--group\" colspan=\"4\"><a class=\"ds-link\" href=\"#rambling\">Print this list for your rucksack</a></td>\n            </tr>\n          </tbody>\n        </table>\n\n        <ol class=\"ds-pagination\" data-component=\"pagination\">\n          <li class=\"ds-pagination__label\">Walks 5 to 8 of 342</li>\n          <li><a class=\"ds-pagination__link\" href=\"#rambling\">&lt;&lt; Previous</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#rambling\">1</a></li>\n          <li><a class=\"ds-pagination__link is-current\" href=\"#rambling\">2</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#rambling\">3</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#rambling\">4</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#rambling\">Next &gt;&gt;</a></li>\n        </ol>\n\n      </div>\n    </div>\n\n  </section>\n\n  <section class=\"ds-view\" id=\"walk\">\n\n    <div class=\"ds-page__head\">\n      <nav aria-label=\"Path\">\n        <ol class=\"ds-breadcrumb\">\n          <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#guide\">Guide</a></li>\n          <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#rambling\">Outdoors</a></li>\n          <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#rambling\">Rambling</a></li>\n          <li class=\"ds-breadcrumb__item is-current\">Heron Weir and back</li>\n        </ol>\n      </nav>\n      <header class=\"ds-page-header\">\n        <div class=\"ds-page-header__text\">\n          <h1 class=\"ds-page-header__title\">Heron Weir and back</h1>\n          <p class=\"ds-page-header__lead\">Walk of the month for June. Written up by a member in May 1999.</p>\n        </div>\n        <div class=\"ds-page-header__action\">\n          <a class=\"ds-button\" href=\"#rambling\">All Walks</a>\n        </div>\n      </header>\n      <ul class=\"ds-tabs\">\n        <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab is-current\" href=\"#walk\">The Walk</a></li>\n        <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#walk\">Sketch Map</a></li>\n        <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#walk\">Messages (9)</a></li>\n        <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#walk\">Printer Version</a></li>\n      </ul>\n    </div>\n\n    <div class=\"ds-page__columns\">\n\n      <aside class=\"ds-sidebar\">\n        <section>\n          <h2 class=\"ds-sidebar__title\">THIS WALK</h2>\n          <p class=\"ds-sidebar__date\">3.5 miles, about 2 hours</p>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\">Going: easy, flat</li>\n            <li class=\"ds-sidebar__item\">Good for dogs and prams</li>\n            <li class=\"ds-sidebar__item\">Path: <span class=\"ds-badge ds-badge--success\">OPEN</span></li>\n            <li class=\"ds-sidebar__item\">Walked 412 times</li>\n          </ul>\n        </section>\n        <section>\n          <h2 class=\"ds-sidebar__title\">WALKS NEARBY</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#walk\">The Three Beacons</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#walk\">Old Drovers' Lane</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link is-visited\" href=\"#walk\">Quarry Edge circuit</a></li>\n          </ul>\n          <p class=\"ds-sidebar__more\"><a class=\"ds-link\" href=\"#rambling\">All 342 Walks...</a></p>\n        </section>\n      </aside>\n\n      <div class=\"ds-page__inner\">\n\n        <article class=\"ds-prose\" data-component=\"typography\">\n          <h1>Along the towpath to the weir</h1>\n          <p class=\"ds-prose__lead\">A level walk beside the canal, out by the water and back the same way.</p>\n          <p>This is the walk to take <strong>with a pram or a slow dog</strong>. The towpath was resurfaced last spring and there is not a stile on it.</p>\n          <h2>Directions</h2>\n          <p>Start from the Mill Lane bus stop, grid reference <code>SK 123 456</code>. Go down the steps beside the bridge and turn left along the water.</p>\n          <ul>\n            <li>After a mile, pass the lock keeper's cottage.</li>\n            <li>Keep to the towpath where the farm track leaves it.</li>\n            <li>The weir is ten minutes beyond the second bridge.</li>\n          </ul>\n          <h3>Tea</h3>\n          <p>The lock cottage sells tea and cake at weekends from Easter to October.</p>\n        </article>\n\n        <p class=\"ds-links\" data-component=\"links\">\n          See also:\n          <a class=\"ds-link\" href=\"#walk\">sketch map</a>,\n          <a class=\"ds-link is-visited\" href=\"#rambling\">other towpath walks</a>,\n          <a class=\"ds-link is-hover\" href=\"#walk\">bus times to Mill Lane</a>,\n          <a class=\"ds-link is-active\" href=\"#walk\">messages about this walk</a>,\n          <a class=\"ds-link ds-link--quiet\" href=\"#walk\">the keeper's home page</a>,\n          <a class=\"ds-link ds-link--strong\" href=\"#add\">write up your own</a>\n        </p>\n\n      </div>\n    </div>\n\n  </section>\n\n  <section class=\"ds-view\" id=\"add\">\n\n    <div class=\"ds-page__head\">\n      <nav aria-label=\"Path\">\n        <ol class=\"ds-breadcrumb\">\n          <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#guide\">Guide</a></li>\n          <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#rambling\">Rambling</a></li>\n          <li class=\"ds-breadcrumb__item is-current\">Add a Walk</li>\n        </ol>\n      </nav>\n      <header class=\"ds-page-header\">\n        <div class=\"ds-page-header__text\">\n          <h1 class=\"ds-page-header__title\">Add a Walk</h1>\n          <p class=\"ds-page-header__lead\">Write up a walk you have done yourself, so that others can follow it.</p>\n        </div>\n        <div class=\"ds-page-header__action\">\n          <a class=\"ds-button\" href=\"#mine\">My Walks</a>\n        </div>\n      </header>\n    </div>\n\n    <div class=\"ds-page__columns\">\n\n      <aside class=\"ds-sidebar\">\n        <section>\n          <h2 class=\"ds-sidebar__title\">WRITING IT UP</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\">Start from somewhere a bus stops.</li>\n            <li class=\"ds-sidebar__item\">Say how long it took you.</li>\n            <li class=\"ds-sidebar__item\">Mention mud, stiles and bulls.</li>\n            <li class=\"ds-sidebar__item\">Name a place for tea.</li>\n          </ul>\n          <p class=\"ds-sidebar__more\"><a class=\"ds-link\" href=\"#walk\">See an Example...</a></p>\n        </section>\n        <section>\n          <h2 class=\"ds-sidebar__title\">KEEPERS WANTED</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\">Three guides in Outdoors have no keeper. <a class=\"ds-link\" href=\"#rambling\">Ask on the board</a> if you would like one.</li>\n          </ul>\n        </section>\n        <section>\n          <h2 class=\"ds-sidebar__title\">NEED A MAP?</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#add\">How to read a grid reference</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#add\">Rights of way, county by county</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link is-visited\" href=\"#add\">Bus and train times</a></li>\n          </ul>\n          <p class=\"ds-sidebar__more\"><a class=\"ds-link\" href=\"#rambling\">More Help...</a></p>\n        </section>\n      </aside>\n\n      <div class=\"ds-page__inner\">\n\n        <section>\n          <h2 class=\"ds-band\">Your Walk <span class=\"ds-band__meta\">Members only</span></h2>\n        </section>\n\n        <div class=\"ds-notices\" data-component=\"notice\">\n          <p class=\"ds-notice\"><span class=\"ds-notice__label\">Tip:</span> walks with a map reference are found twice as often.</p>\n          <p class=\"ds-notice ds-notice--error\"><span class=\"ds-notice__label\">Sorry!</span> We could not save your walk. Please give it a name.</p>\n        </div>\n\n        <form class=\"ds-form\" data-component=\"form\" action=\"#add\">\n          <label class=\"ds-form__label\" for=\"f-name\">Name of walk</label>\n          <div class=\"ds-form__field\">\n            <input class=\"ds-form__input\" id=\"f-name\" type=\"text\">\n            <span class=\"ds-form__error\">Every walk needs a name.</span>\n          </div>\n          <label class=\"ds-form__label\" for=\"f-start\">Starts at</label>\n          <div class=\"ds-form__field\">\n            <input class=\"ds-form__input\" id=\"f-start\" type=\"text\" value=\"Mill Lane bus stop\">\n          </div>\n          <label class=\"ds-form__label\" for=\"f-miles\">Miles</label>\n          <div class=\"ds-form__field\">\n            <input class=\"ds-form__input ds-form__input--short\" id=\"f-miles\" type=\"text\" value=\"5\">\n            <span class=\"ds-form__hint\">(to the nearest half)</span>\n          </div>\n          <label class=\"ds-form__label\" for=\"f-grade\">Going</label>\n          <div class=\"ds-form__field\">\n            <select class=\"ds-form__select\" id=\"f-grade\">\n              <option>Easy</option>\n              <option>Moderate</option>\n              <option>Hard</option>\n            </select>\n          </div>\n          <span class=\"ds-form__label\">Good for</span>\n          <div class=\"ds-form__field\">\n            <label class=\"ds-form__option\"><input class=\"ds-form__check\" type=\"checkbox\" checked>Dogs</label>\n            <label class=\"ds-form__option\"><input class=\"ds-form__check\" type=\"checkbox\">Prams</label>\n          </div>\n          <label class=\"ds-form__label\" for=\"f-note\">Directions</label>\n          <div class=\"ds-form__field\">\n            <textarea class=\"ds-form__textarea\" id=\"f-note\" rows=\"3\"></textarea>\n          </div>\n          <div class=\"ds-form__actions\" data-component=\"buttons\">\n            <button class=\"ds-button\" type=\"button\">Save Walk</button>\n            <button class=\"ds-button ds-button--secondary\" type=\"button\">Start Over</button>\n            <button class=\"ds-button\" type=\"button\" disabled>Preview</button>\n            <button class=\"ds-button ds-button--danger\" type=\"button\">Discard Walk</button>\n          </div>\n        </form>\n\n        <section class=\"ds-dialog\" data-component=\"dialog\" role=\"dialog\" aria-labelledby=\"d-title\">\n          <h2 class=\"ds-dialog__title\" id=\"d-title\">Discard this walk?</h2>\n          <p class=\"ds-dialog__body\">What you have typed so far will be thrown away. Walks already <a class=\"ds-link\" href=\"#rambling\">in the guide</a> are not changed.</p>\n          <div class=\"ds-dialog__actions\">\n            <button class=\"ds-button ds-button--danger\" type=\"button\">Discard</button>\n            <button class=\"ds-button ds-button--secondary\" type=\"button\">Keep It</button>\n          </div>\n        </section>\n\n      </div>\n    </div>\n\n  </section>\n\n  <section class=\"ds-view\" id=\"mine\">\n\n    <div class=\"ds-page__head\">\n      <nav aria-label=\"Path\">\n        <ol class=\"ds-breadcrumb\">\n          <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#guide\">Guide</a></li>\n          <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#rambling\">Rambling</a></li>\n          <li class=\"ds-breadcrumb__item is-current\">My Walks</li>\n        </ol>\n      </nav>\n      <header class=\"ds-page-header\">\n        <div class=\"ds-page-header__text\">\n          <h1 class=\"ds-page-header__title\">My Walks</h1>\n          <p class=\"ds-page-header__lead\">The walks you have written up and the ones you are keeping for later.</p>\n        </div>\n        <div class=\"ds-page-header__action\">\n          <a class=\"ds-button\" href=\"#rambling\">Browse Walks</a>\n        </div>\n      </header>\n      <ul class=\"ds-tabs\">\n        <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#rambling\">Walks</a></li>\n        <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#rambling\">Clubs</a></li>\n        <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#rambling\">Message Board</a></li>\n        <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#rambling\">Members' Pages</a></li>\n        <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab is-current\" href=\"#mine\">My Walks</a></li>\n      </ul>\n    </div>\n\n    <div class=\"ds-page__columns\">\n\n      <aside class=\"ds-sidebar\">\n        <section>\n          <h2 class=\"ds-sidebar__title\">MY CHRONOSKIN</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#mine\">My walks</a> <span class=\"ds-badge ds-badge--count\">(0)</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#mine\">My clubs</a> <span class=\"ds-badge ds-badge--count\">(2)</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#mine\">My messages</a> <span class=\"ds-badge ds-badge--count\">(5)</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#mine\">My home page</a></li>\n          </ul>\n        </section>\n        <section>\n          <h2 class=\"ds-sidebar__title\">FIND A MEMBER</h2>\n          <form class=\"ds-sidebar__lookup\" action=\"#mine\">\n            <input class=\"ds-form__input ds-sidebar__field\" type=\"text\" aria-label=\"Member name\">\n            <button class=\"ds-button\" type=\"button\">Go</button>\n          </form>\n        </section>\n      </aside>\n\n      <div class=\"ds-page__inner\">\n\n        <section class=\"ds-empty\" data-component=\"empty\">\n          <h2 class=\"ds-empty__title\">You have not added any walks yet.</h2>\n          <p class=\"ds-empty__text\">Walks you write up are listed here. <a class=\"ds-link\" href=\"#walk\">See how others do it</a>.</p>\n          <a class=\"ds-button\" href=\"#add\">Add Your First Walk</a>\n        </section>\n\n        <section>\n          <h2 class=\"ds-band\">Walks Members Like <span class=\"ds-band__meta\">this month</span></h2>\n          <ul class=\"ds-list\">\n            <li class=\"ds-list__item\"><a class=\"ds-link ds-list__title\" href=\"#walk\">Heron Weir and back</a>Flat towpath, good for prams, with tea at the lock. <span class=\"ds-list__meta\">(3.5 miles)</span></li>\n            <li class=\"ds-list__item\"><a class=\"ds-link ds-list__title\" href=\"#walk\">The Three Beacons</a>A long ridge day with two steep climbs and a view of the sea. <span class=\"ds-list__meta\">(11 miles)</span></li>\n            <li class=\"ds-list__item\"><a class=\"ds-link ds-list__title\" href=\"#walk\">Old Drovers' Lane</a>A green lane between two market towns. <span class=\"ds-list__meta\">(6.2 miles)</span></li>\n          </ul>\n          <p class=\"ds-list__more\"><a class=\"ds-link\" href=\"#rambling\">All 342 Walks...</a></p>\n        </section>\n\n      </div>\n    </div>\n\n  </section>\n\n  </main>\n\n  <footer class=\"ds-footer\" data-component=\"footer\">\n    <hr class=\"ds-rule ds-rule--thin\">\n    <ul class=\"ds-footer__links\">\n      <li class=\"ds-footer__label\">Get chronoskin in:</li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#\">Denmark</a></li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#\">Ireland</a></li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#\">Norway</a></li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#\">Portugal</a></li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#\">Spain</a></li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#\">Switzerland</a></li>\n    </ul>\n    <ul class=\"ds-footer__links ds-footer__links--bracket\">\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#mine\">Join</a></li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#guide\">Guides</a></li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#\">Members</a></li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#\">Search</a></li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#\">Help</a></li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#\">Advertise</a></li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#\">Privacy Statement</a></li>\n    </ul>\n    <p class=\"ds-footer__legal\">Copyright 1999 chronoskin. All rights reserved.</p>\n  </footer>\n\n</div>\n</body>\n</html>\n",
    "style.json": "{\n  \"id\": \"v1.table-era-90s.portal.s03.p03.t03.u03\",\n  \"library\": \"2026.10.07-2111\",\n  \"era\": {\n    \"slug\": \"table-era-90s\",\n    \"years\": [\n      1996,\n      2000\n    ]\n  },\n  \"archetype\": \"portal\",\n  \"mode\": \"pure\",\n  \"markup\": \"modern\",\n  \"viewport\": {\n    \"width\": 800,\n    \"fluid\": false\n  },\n  \"source\": \"https://chrono.skin/s/v1-te-3333\",\n  \"short\": \"v1-te-3333\"\n}\n",
    "tokens.css": "/* @part palette */\n:root {\n  --color-page: #ffffff;\n  --color-canvas: #ffffff;\n  --color-surface: #ffffff;\n  --color-surface-alt: #efefef;\n  --color-surface-strong: #cccccc;\n  --color-bar: #ffcc66;\n  --color-bar-text: #000000;\n  --color-bar-alt: #a0d0ff;\n  --color-bar-alt-text: #000000;\n  --color-inverse: #003399;\n  --color-inverse-text: #ffffff;\n  --color-text: #000000;\n  --color-text-muted: #808080;\n  --color-heading: #000000;\n  --color-heading-alt: #003399;\n  --color-link: #000099;\n  --color-link-quiet: #003399;\n  --color-link-visited: #666699;\n  --color-link-hover: #000099;\n  --color-link-active: #cc0000;\n  --color-border: #808080;\n  --color-border-strong: #003399;\n  --color-border-muted: #cccccc;\n  --color-accent: #cc0000;\n  --color-accent-text: #ffffff;\n  --color-accent-alt: #cc0000;\n  --color-fill-1: #d8e8ff;\n  --color-fill-2: #efefef;\n  --color-fill-3: #ffcc66;\n  --color-fill-4: #a0d0ff;\n  --color-button: #efefef;\n  --color-button-text: #000000;\n  --color-button-hover-text: #000000;\n  --color-button-secondary: #cccccc;\n  --color-button-secondary-text: #000000;\n  --color-input: #ffffff;\n  --color-input-text: #000000;\n  --color-input-border: #cccccc;\n  --color-disabled: #efefef;\n  --color-disabled-text: #808080;\n  --color-danger: #cc0000;\n  --color-danger-surface: #ffffff;\n  --color-success: #006600;\n  --color-warning: #ffcc66;\n  --color-notice: #d8e8ff;\n  --color-notice-text: #000000;\n  --color-focus: #003399;\n  --color-shadow: #000000;\n  --color-overlay: #ffffff;\n}\n\n/* @part type */\n:root {\n  --font-body: Arial, Helvetica, sans-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: 12px;\n  --text-small: 10px;\n  --text-ui: 12px;\n  --text-large: 14px;\n  --text-display: 22px;\n  --text-h1: 18px;\n  --text-h2: 14px;\n  --text-h3: 12px;\n  --line-body: normal;\n  --line-heading: normal;\n  --line-display: 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: 0;\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: 2px;\n  --border-width-strong: 2px;\n  --border-style: solid;\n  --radius-control: 0;\n  --radius-panel: 0;\n  --radius-pill: 0;\n  --radius-page: 0;\n  --shadow-panel: 0 0 0 1px var(--color-border-strong), 4px 4px 0 1px var(--color-shadow);\n  --shadow-control: 1px 1px 0 var(--color-shadow);\n  --shadow-control-hover: 1px 1px 0 var(--color-shadow);\n  --shadow-control-pressed: none;\n  --shadow-dialog: 4px 4px 0 var(--color-shadow);\n  --shadow-text: none;\n  --fill-page: var(--color-page);\n  --fill-bar: repeating-linear-gradient(0deg, var(--color-bar) 0 2px, color-mix(in srgb, var(--color-bar) 55%, white) 2px 3px);\n  --fill-bar-alt: repeating-linear-gradient(0deg, var(--color-bar-alt) 0 2px, color-mix(in srgb, var(--color-bar-alt) 55%, white) 2px 3px);\n  --fill-inverse: repeating-linear-gradient(0deg, var(--color-inverse) 0 2px, color-mix(in srgb, var(--color-inverse) 55%, white) 2px 3px);\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: 2px solid var(--color-focus);\n  --transition: none;\n  --backdrop-blur: 0px;\n}\n"
  }
}
