{
  "id": "v1-te-29a3",
  "long_id": "v1.table-era-90s.portal.s02.p09.t10.u03",
  "name": "Table-era news front, 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": "mix",
  "viewport": {
    "width": 800,
    "fluid": false
  },
  "summary": "A news and services front page as built between 1996 and 2000: one fixed 770px table centred in an 800px window, with a flat coloured navigation rail running down the left side and the stories in ruled cells to its right. Nearly all text is an underlined blue link in the browser's default 16px serif, with 13px sans-serif only in the rail, the controls and the small print, on white with one lavender rail, grey title strips and grey slabs. It was the standard skeleton of newspaper, broadcaster and magazine sites until stylesheet layouts replaced the rail-and-table page after 2000.",
  "url": "https://chrono.skin/s/v1-te-29a3",
  "preview_url": "https://chrono.skin/s/v1-te-29a3/specimen.html",
  "files": {
    "STYLE.md": "# Table-era news front, 1999\n\n## Summary\n\nA news and services front page as built between 1996 and 2000: one fixed 770px table centred in an 800px window, with a flat coloured navigation rail running down the left side and the stories in ruled cells to its right. Nearly all text is an underlined blue link in the browser's default 16px serif, with 13px sans-serif only in the rail, the controls and the small print, on white with one lavender rail, grey title strips and grey slabs. It was the standard skeleton of newspaper, broadcaster and magazine sites until stylesheet layouts replaced the rail-and-table page after 2000.\n\n## Layout\n\n- The page is fixed, not fluid, and centred: `--size-page` is 770px, and `.ds-page__frame` sits in the middle of the window with the spare width split on both sides. Nothing stretches with the window.\n- Order from the top: `.ds-masthead` (wordmark at the left, a small tagline, the search form at the right, all on one line), then `.ds-page__columns`, then the `.ds-footer` opened by a 2px `.ds-rule`.\n- The specimen is one example site, a news front with a reader reviews section, of five views. The `.ds-masthead`, the rail with the `.ds-nav` and the `.ds-footer` are written once, outside the views; each view is a `.ds-view` section inside `.ds-page__content`, the content column, and one shows at a time.\n- `.ds-page__columns` is two columns: the `--size-rail` (130px) `.ds-page__rail` on the left, filled with `--fill-bar` for the whole height of the page, and the content column `.ds-page__content` to its right after a `--space-4` (12px) gutter. The rail holds the `.ds-nav` (a vertical list of section links, one per line, then a second group under a grey label) and under it `.ds-sidebar` blocks. There is no horizontal navigation bar and no right-hand sidebar.\n- The home page content column, `.ds-page__main`, runs: the `.ds-tabs` line of service links, the `.ds-dateline`, a `.ds-notice` for breaking news, then `.ds-page__lead`, which sets the `.ds-hero` lead story beside a `--size-side` (220px) column of modules (`.ds-page__side`: a `.ds-panel` and a short list). Under the lead comes the `.ds-grid`, one outlined band of four ruled cells, then `.ds-sections`, two equal columns of headline groups, each a linked section name over a `.ds-list`.\n- Inner pages (a story, a section list, a form) keep the masthead, the rail and the footer unchanged. The lead story, the module column and the cell band go. The content column, `.ds-page__inner`, is a single 628px column and opens with the `.ds-breadcrumb`, then 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), then the `.ds-tabs` line when the page has views of its own. Below come `.ds-stat` when the page has figures, the `.ds-table` or `.ds-list`, the `.ds-pagination`, or the running text of a story, or the `.ds-notices` and the `.ds-form`.\n- Views: `front` is the front page (service links, dateline, breaking news, lead story and modules, the cell band, two columns of headlines). `story` is one story as running text, closed by a line of related links and more headlines of its section. `reviews` is the list of a section: figures, the table of reader reviews with its status key, and the page links. `send` is the form for a new review, with its notices and the message box that discarding a draft opens. `mine` is the reader's own list while it is empty: the empty state, a list of products readers ask about and a panel of advice. The rail marks the view that is showing with the strip in `--fill-bar-alt`; the front page link is marked when the address names no view.\n- Blocks are separated by rules, title strips and outlines, never by cards with shadows or wide gutters. Everything in the content column is left-aligned; nothing is centred.\n- Spacing scale: `--space-1` 2px is the padding of strips, table cells and controls; `--space-2` 4px is the side padding of cells and strips and the gap between a title and its body; `--space-3` 8px is the page margin, paragraph spacing and the gap between buttons and form rows; `--space-4` 12px is the gutter between columns and the gap between neighbouring blocks of the content column; `--space-5` 20px is the indent of short bullet lists and the foot of the page; `--space-6` 40px is the indent of headline lists and lists in running text.\n- Fixed sizes: `--size-search` 130px masthead search field, `--size-field` 220px text input, `--size-area` 320px textarea, `--size-check` 13px checkbox, `--size-dialog` 360px message box.\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- One serif throughout, the browser default nobody changed: `--font-body`, `--font-heading` and `--font-ui` are Times New Roman, Times. `--font-mono` is Courier New.\n- `--text-base` 16px; `--text-small` and `--text-ui` 13px, the smaller step of the film site, also used for controls and navigation.\n- Headings are large and bold as on the community page: `--text-h3` 16px, `--text-h2` and `--text-large` 19px, `--text-h1` 24px, `--text-display` 32px for the brand name only. All bold is 700.\n- Line height `normal`; no transform, no tracking. All three link decorations are `underline`.\n\n- Family: the 1999 guide page (olive `#cccc66`, khaki `#cccc99`, pale yellow, light grey, on white), with the red, black, link blue and navy of the 1998 community page and the dark green of the 1998 personal start page.\n- `--color-page`, `--color-canvas`, `--color-surface` are white `#ffffff`; `--color-surface-alt` `#eeeeee` is the tab strip, alternate rows and the empty state; `--color-surface-strong` `#cccc99`.\n- `--color-bar` `#cccc66` (olive, black text) is the search band, the table head and the header and footer rules. `--color-bar-alt` `#cccc99` (khaki, black text) is every title strip and the notice border.\n- `--color-inverse` `#000000` with white text is the dialog title bar only.\n- Links are `--color-link` `#0000cc`, visited `#6060a0`, active `#cc0000`; hover equals the link colour.\n- `--color-heading-alt` `#003060` (navy) is the wordmark, tagline, h3 and positive figures. `--color-accent` and `--color-accent-alt` `#cc0000` are the mark, the solid badge, the \"New!\" word and negative figures.\n- `--color-fill-1` to `--color-fill-4` are `#ffffcc`, `#eeeeee`, `#cccc99`, `#ffcc00`; `--color-fill-3` is also the khaki underline of section headings.\n- `--color-warning` `#ffcc00` is a fill only and carries black text; `--color-success` `#006600` and `--color-danger` `#cc0000` carry white. Notices sit on pale yellow `#ffffcc`; the error notice is red on white. The secondary button is khaki `#cccc99`.\n- Borders: `--color-border` `#a0a0a0`, `--color-border-strong` `#666633` (dark olive, for boxed outlines), `--color-border-muted` `#cccccc` and `--color-input-border` `#c0c0c0` for bevels. `--color-focus` is the navy `#003060`.\n\n## Components\n\n- `.ds-menu`: a jump menu in the sidebar, a `<select>` \"Go to a section...\" with a `.ds-menu__go` button beside it; use it where a page offers a quick way to a section.\n- `.ds-page`: on `<body>`; page fill and body type. `.ds-page__frame` is the centred 770px table; `.ds-page__columns` the rail-plus-content grid; `.ds-page__rail` the coloured left column; `.ds-page__content` the content column that holds the views; `.ds-page__main` the home content column and `.ds-page__inner` the inner-page content column, both with `--space-4` between blocks; `.ds-page__lead` sets the lead story beside `.ds-page__side`. 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-masthead`: the line above the columns: the `.ds-brand`, `.ds-masthead__tagline`, and `.ds-masthead__search` with `.ds-masthead__field`.\n- `.ds-brand`: the site's mark and name, at the left of the `.ds-masthead`. `.ds-brand__mark` is a small square tile dressed like the button (`--fill-button` over `--color-button`, `--color-button-text` for the drawing, the 2px `outset` bevel in `--color-border-muted`, `--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-heading-alt`. The name `chronoskin` and its mark are placeholders for the installing project's own name and logo.\n- `.ds-nav`: the site navigation, a vertical list at the top of the rail. `.ds-nav__links` holds `.ds-nav__item` / `.ds-nav__link`, one per line, section names typed in capitals; the link of the view that is showing is a bold strip in `--fill-bar-alt` without underline (`components.css` has one selector per view for this, and `is-current` does the same by hand). `.ds-nav__label` is a grey strip that opens a second group of links. A link to a section that has no view of its own carries `.ds-nav__link--elsewhere`: it opens the nearest fitting view and is never marked as the view that is showing.\n- `.ds-hero`: the lead story, the era's page introduction: `.ds-hero__title` (19px bold, itself a link), one or two `.ds-hero__lead` paragraphs, `.ds-hero__action` (the bold \"FULL STORY\" link, the main action) and `.ds-hero__related`, a short bullet list. Never a band, a banner or a large heading.\n- `.ds-page-header`: the head of an inner page, used instead of `.ds-hero`: `.ds-page-header__text` with `.ds-page-header__title` 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 bold opening line.\n- `.ds-link`: every link. States `is-visited`, `is-hover`, `is-active`, `is-focus`. `.ds-link--quiet` for secondary links in the sans face, `.ds-link--strong` for bold links. `.ds-links` wraps a line of links.\n- `.ds-button`: grey bevelled button with a 13px sans 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 stacked form: each `.ds-form__row` puts a bold `.ds-form__label` on its own line above its `.ds-form__field`. Controls: `.ds-form__input`, `.ds-form__select`, `.ds-form__textarea`, `.ds-form__check` inside a `.ds-form__option` line. `.ds-form__hint` for help, `.ds-form__error` for a bold red message under the field, `.ds-form__actions` for the button row. 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`: one ruled grid with no space between cells. `.ds-table__head` (bar colour, bold sans, left-aligned; `--num` right-aligned), `.ds-table__cell` with `--num`, `--up`, `--down` and `--group` (a full-width summary row on `--color-fill-1`), `.ds-table__row--alt` for grey rows, `.ds-table__caption` for the line beneath.\n- `.ds-stat`: the row. One outlined line divided by 1px rules; each `.ds-stat__item` has its `.ds-stat__label` (13px sans) at the left and its `.ds-stat__value` (16px bold) at the right, on one baseline. Never stacked numerals or separate cards.\n- `.ds-list`: bulleted headline list with a 40px indent; `.ds-list__item`, `.ds-list__meta` (grey time in brackets), `.ds-list__more` (right-aligned link), `.ds-list--sub` for the indented list under an \"In depth:\" line.\n- `.ds-sections`: two columns of headline groups: `.ds-sections__title` (a linked section name in typed capitals) over a `.ds-list`, with `.ds-sections__sub` for the \"In depth:\" line.\n- `.ds-panel`: an outlined module: `.ds-panel__title` grey strip with an optional `.ds-panel__tool` link at the right, `.ds-panel__body`, `.ds-panel__list` for a short bullet list.\n- `.ds-grid`: one outlined band of four cells in a row, divided by 1px rules with no gap: `.ds-grid__cell` and `--2`, `--3`, `--4` for the four fills, `.ds-grid__title`, `.ds-grid__text`.\n- `.ds-tabs`: the era's tabs, one line of 16px links separated by bars over a 1px rule, used for the services line at the top of the home page and for the views 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`: a block of the rail under the navigation: `.ds-sidebar__title` grey strip, `.ds-sidebar__list` / `.ds-sidebar__item` (links, one per line, no bullets), `.ds-sidebar__text`, `.ds-sidebar__lookup` with `.ds-sidebar__field` for a one-field form.\n- `.ds-notice`: a flag and a line: `.ds-notice__label` is a solid red block with white capitals, `.ds-notice__text` the message on grey. `.ds-notice--error` is red text on white with a red border. `.ds-notices` stacks several.\n- `.ds-pagination`: one left-aligned line: `.ds-pagination__label`, then `.ds-pagination__item` entries separated by bars holding `.ds-pagination__link`; current `is-current`, `is-disabled`.\n- `.ds-breadcrumb`: a 13px sans path separated by colons; `.ds-breadcrumb__item`, last one `is-current` (bold).\n- `.ds-dialog`: a 360px box in the page flow, left-aligned, with a 1px black border, `.ds-dialog__title` bar in `--fill-inverse`, `.ds-dialog__body` and right-aligned `.ds-dialog__actions`. No backdrop, no shadow.\n- `.ds-empty`: outlined grey block with `.ds-empty__title`, `.ds-empty__text` and a button, left-aligned.\n- `.ds-footer`: a `.ds-rule`, then `.ds-footer__links`, a grey strip of `.ds-footer__item` links separated by bars after a bold `.ds-footer__label`, then `.ds-footer__legal`. Left-aligned.\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` 1px grey. `.ds-heading`: a section title on a grey strip. `.ds-dateline`: the date and update line.\n\n## Never\n\n- `row-gap <= 2px`: headlines and table rows follow each other with no space between them.\n- `block-gap <= 12px`: neighbouring blocks are at most one 12px gutter apart.\n- `content-width <= 770px`: the page is a fixed 770px table and never grows with the window.\n- `content-width >= 700px`: the table fills an 800px window; the page is never a narrow centred column.\n- `font-size >= 13px`: the smallest text measured on the two dark pages is 13px.\n- `font-size <= 32px`: the brand name is the largest text; headings stop at 24px.\n- `font-families <= 2`: Times and Courier.\n- `font-weight >= 400`: only regular and bold were measured.\n- `underlined-links >= 95%`: both references underline 100% of their 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 module is a `.ds-panel` in the column beside the lead or a cell of the `.ds-grid` band; a new group of headlines is one more entry in `.ds-sections`; a new group of navigation or service links is a `.ds-sidebar` block in the rail under a grey strip; anything tabular is a `.ds-table` with ruled cells. Keep the rail on the left on every page, keep the content column left-aligned, keep text at 16px serif and controls at 13px sans, keep links underlined and blue, separate with 1px outlines, 2px rules and grey strips, and never add radius, shadow, gradient, hover effects, centred blocks or more whitespace than `--space-4` between blocks.\n",
    "components.css": "/* Layout tokens (structure part). Read from the 1999 news front page and the\n   1998 personal start page: a 770px table set against the left edge of an\n   800px window, a 130px coloured navigation rail down the left side, a 220px\n   module column beside the lead story, 2px and 4px cell padding, 12px\n   gutters and a 40px list indent. */\n:root {\n  --size-page: 770px;\n  --size-rail: 130px;\n  --size-side: 220px;\n  --size-search: 130px;\n  --size-field: 220px;\n  --size-area: 320px;\n  --size-check: 13px;\n  --size-dialog: 360px;\n  --space-1: 2px;\n  --space-2: 4px;\n  --space-3: 8px;\n  --space-4: 12px;\n  --space-5: 20px;\n  --space-6: 40px;\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 page is a fixed table against the left edge, not centred. */\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);\n  background: var(--color-canvas);\n  border-radius: var(--radius-page);\n  box-shadow: var(--shadow-panel);\n}\n/* Coloured rail on the left, everything else to its right. */\n.ds-page__columns {\n  display: grid;\n  grid-template-columns: var(--size-rail) minmax(0, 1fr);\n  column-gap: var(--space-4);\n  align-items: stretch;\n}\n.ds-page__rail {\n  display: flex;\n  flex-direction: column;\n  background: var(--fill-bar);\n  color: var(--color-bar-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  text-shadow: var(--shadow-text);\n}\n.ds-page__main,\n.ds-page__inner {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-4);\n  min-width: 0;\n  padding: 0 0 var(--space-4);\n}\n/* The content column: holds the views, one of which shows. */\n.ds-page__content {\n  min-width: 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/* Lead story beside a narrow module column. */\n.ds-page__lead {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr) var(--size-side);\n  column-gap: var(--space-4);\n  align-items: start;\n}\n.ds-page__side {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-3);\n  min-width: 0;\n}\n\n/* ---------- masthead: wordmark left, search right ---------- */\n.ds-masthead {\n  display: flex;\n  align-items: flex-end;\n  justify-content: space-between;\n  gap: var(--space-4);\n  padding: var(--space-2) 0 var(--space-3);\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-heading-alt);\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-border-muted);\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-masthead__tagline {\n  flex: 1;\n  color: var(--color-heading-alt);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n}\n.ds-masthead__search {\n  display: flex;\n  align-items: center;\n  gap: var(--space-2);\n  margin: 0;\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n.ds-form__input.ds-masthead__field {\n  width: var(--size-search);\n}\n\n/* ---------- rules and section headings ---------- */\n.ds-rule {\n  height: 0;\n  margin: var(--space-3) 0;\n  border: 0;\n  border-top: var(--border-width-strong) var(--border-style) var(--color-bar);\n}\n.ds-rule--thin {\n  margin: 0;\n  border-top: var(--border-width) var(--border-style) var(--color-border);\n}\n/* Section title: a flat strip across the column. */\n.ds-heading {\n  margin: 0 0 var(--space-2);\n  padding: 0 var(--space-2);\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\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/* Date and update line above the lead story. */\n.ds-dateline {\n  margin: 0;\n  font-size: var(--text-base);\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 vertical list at the top of the rail ---------- */\n.ds-nav {\n  padding: 0 0 var(--space-3);\n}\n.ds-nav__links {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  text-transform: var(--ui-transform);\n}\n.ds-nav__item {\n  padding: 0;\n}\n.ds-nav__link {\n  display: block;\n  padding: 0 var(--space-2);\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 page you are on: a strip in the secondary bar colour. One selector per\n   view, and the front page link when the address names no view; the two\n   review screens are entered from the rail and marked there. */\n.ds-nav__link.is-current,\n.ds-page:not(:has(.ds-view:target)) .ds-nav__link[href=\"#front\"]:not(.ds-nav__link--elsewhere),\n.ds-page:has(#front:target) .ds-nav__link[href=\"#front\"]:not(.ds-nav__link--elsewhere),\n.ds-page:has(#story:target) .ds-nav__link[href=\"#story\"]:not(.ds-nav__link--elsewhere),\n.ds-page:has(#reviews:target) .ds-nav__link[href=\"#reviews\"]:not(.ds-nav__link--elsewhere),\n.ds-page:has(#send:target) .ds-nav__link[href=\"#send\"]:not(.ds-nav__link--elsewhere),\n.ds-page:has(#mine:target) .ds-nav__link[href=\"#mine\"]:not(.ds-nav__link--elsewhere) {\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n  font-weight: var(--weight-bold);\n  text-decoration: none;\n}\n.ds-nav__label {\n  margin: var(--space-3) 0 var(--space-1);\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-ui);\n  font-weight: var(--weight-body);\n  line-height: var(--line-heading);\n}\n\n/* ---------- sidebar: further blocks of the rail ---------- */\n.ds-sidebar {\n  display: flex;\n  flex-direction: column;\n  padding: 0 0 var(--space-3);\n}\n.ds-sidebar__title {\n  margin: 0 0 var(--space-1);\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-ui);\n  font-weight: var(--weight-body);\n  line-height: var(--line-heading);\n}\n.ds-sidebar__list {\n  margin: 0 0 var(--space-3);\n  padding: 0 var(--space-2);\n  list-style: none;\n}\n.ds-sidebar__item {\n  padding: 0;\n}\n.ds-sidebar__text {\n  margin: 0;\n  padding: 0 var(--space-2);\n}\n.ds-sidebar__lookup {\n  display: flex;\n  align-items: center;\n  gap: var(--space-1);\n  margin: var(--space-2) 0 var(--space-3);\n  padding: 0 var(--space-2);\n}\n.ds-sidebar__field {\n  width: 100%;\n  min-width: 0;\n}\n\n/* ---------- hero: the lead story ---------- */\n.ds-hero {\n  min-width: 0;\n}\n.ds-hero__title {\n  margin: 0 0 var(--space-3);\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-hero__lead {\n  margin: 0 0 var(--space-3);\n  font-size: var(--text-base);\n}\n.ds-hero__action {\n  margin: 0 0 var(--space-3);\n}\n.ds-hero__related {\n  margin: 0;\n  padding: 0 0 0 var(--space-5);\n  list-style: disc;\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  font-weight: var(--weight-bold);\n}\n\n/* ---------- page header: title and one 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: each label on its own line above its control ---------- */\n.ds-form {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-3);\n  margin: 0;\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n.ds-form__row {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: var(--space-1);\n}\n.ds-form__label {\n  font-weight: var(--weight-bold);\n}\n.ds-form__field {\n  min-width: 0;\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__option {\n  display: block;\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  display: flex;\n  gap: var(--space-3);\n  padding: var(--space-2) 0 0;\n}\n\n/* ---------- table: one ruled grid, no spacing between cells ---------- */\n.ds-table {\n  width: 100%;\n  border-collapse: collapse;\n  background: var(--fill-panel);\n  border: var(--border-width) var(--border-style) var(--color-border);\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);\n  color: var(--color-bar-text);\n  border: 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  text-align: left;\n}\n.ds-table__cell {\n  padding: var(--space-1) var(--space-2);\n  background: var(--color-surface);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  text-align: left;\n}\n.ds-table__head--num,\n.ds-table__cell--num {\n  text-align: right;\n}\n.ds-table__cell--group {\n  background: var(--color-fill-1);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n.ds-table__row--alt .ds-table__cell {\n  background: var(--color-surface-alt);\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: left;\n}\n\n/* ---------- stats: one ruled line, label left and figure right ---------- */\n.ds-stat {\n  display: flex;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  background: var(--fill-panel);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n}\n.ds-stat__item {\n  flex: 1;\n  display: flex;\n  align-items: baseline;\n  justify-content: space-between;\n  gap: var(--space-2);\n  padding: var(--space-1) var(--space-2);\n}\n.ds-stat__item + .ds-stat__item {\n  border-left: var(--border-width) var(--border-style) var(--color-border);\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-h2);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n}\n\n/* ---------- sections: two columns of headline groups ---------- */\n.ds-sections {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  column-gap: var(--space-4);\n  row-gap: var(--space-4);\n}\n.ds-sections__title {\n  margin: 0;\n  font-family: var(--font-body);\n  font-size: var(--text-base);\n  font-weight: var(--weight-body);\n}\n.ds-sections__sub {\n  margin: var(--space-3) 0 0;\n  padding: 0 0 0 var(--space-5);\n}\n\n/* ---------- list: bulleted headlines ---------- */\n.ds-list {\n  margin: 0;\n  padding: 0 0 0 var(--space-6);\n  list-style: disc;\n  font-size: var(--text-base);\n}\n.ds-list--sub {\n  padding: 0 0 0 calc(var(--space-5) + var(--space-5));\n}\n.ds-list__item {\n  padding: 0;\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: var(--space-2) 0 0;\n  text-align: right;\n  font-size: var(--text-base);\n}\n\n/* ---------- panel: outlined module with a title strip ---------- */\n.ds-panel {\n  background: var(--fill-panel);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-panel);\n}\n.ds-panel__title {\n  display: flex;\n  align-items: baseline;\n  justify-content: space-between;\n  gap: var(--space-2);\n  margin: 0;\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-ui);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n}\n.ds-panel__tool {\n  font-weight: var(--weight-body);\n}\n.ds-panel__body {\n  padding: var(--space-2);\n}\n.ds-panel__list {\n  margin: 0;\n  padding: 0 0 0 var(--space-5);\n  list-style: disc;\n}\n\n/* ---------- grid: one outlined band of ruled cells ---------- */\n.ds-grid {\n  display: grid;\n  grid-template-columns: 1fr 1fr 1fr 1fr;\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-page);\n}\n.ds-grid__cell {\n  min-width: 0;\n  padding: var(--space-2) var(--space-3);\n  background: var(--color-fill-1);\n}\n.ds-grid__cell + .ds-grid__cell {\n  border-left: var(--border-width) var(--border-style) var(--color-border);\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 0 var(--space-2);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\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: one line of links between bars ---------- */\n.ds-tabs {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: baseline;\n  margin: 0;\n  padding: 0 0 var(--space-1);\n  list-style: none;\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n  font-family: var(--font-body);\n  font-size: var(--text-base);\n  text-transform: var(--ui-transform);\n}\n.ds-tabs__item + .ds-tabs__item::before {\n  content: \"|\";\n  padding: 0 var(--space-2);\n  color: var(--color-text);\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/* ---------- notice: a flag and a line of text ---------- */\n.ds-notices {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-3);\n}\n.ds-notice {\n  display: flex;\n  align-items: stretch;\n  margin: 0;\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-ui);\n}\n.ds-notice__label {\n  flex: none;\n  display: flex;\n  align-items: center;\n  padding: var(--space-1) var(--space-3);\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n  font-weight: var(--weight-bold);\n}\n.ds-notice__text {\n  padding: var(--space-1) var(--space-3);\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--error .ds-notice__label {\n  background: var(--color-danger);\n  color: var(--color-accent-text);\n}\n\n/* ---------- pagination: one line against the left edge ---------- */\n.ds-pagination {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: baseline;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  font-family: var(--font-body);\n  font-size: var(--text-base);\n}\n.ds-pagination__label {\n  padding: 0 var(--space-3) 0 0;\n  font-weight: var(--weight-bold);\n}\n.ds-pagination__item + .ds-pagination__item::before {\n  content: \"|\";\n  padding: 0 var(--space-2);\n  color: var(--color-text);\n}\n.ds-pagination__link {\n  color: var(--color-link);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-pagination__link:hover,\n.ds-pagination__link.is-hover {\n  color: var(--color-link-hover);\n}\n.ds-pagination__link.is-current {\n  color: var(--color-text);\n  font-weight: var(--weight-bold);\n  text-decoration: none;\n}\n.ds-pagination__link.is-disabled {\n  color: var(--color-disabled-text);\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-ui);\n}\n.ds-breadcrumb__item + .ds-breadcrumb__item::before {\n  content: \":\";\n  padding: 0 var(--space-2) 0 var(--space-1);\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;\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-ui);\n}\n.ds-dialog__title {\n  margin: 0;\n  padding: var(--space-1) var(--space-2);\n  background: var(--fill-inverse);\n  color: var(--color-inverse-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-heading);\n}\n.ds-dialog__body {\n  margin: 0;\n  padding: var(--space-3);\n}\n.ds-dialog__actions {\n  display: flex;\n  justify-content: flex-end;\n  gap: var(--space-3);\n  padding: 0 var(--space-3) var(--space-3);\n}\n\n/* ---------- empty state ---------- */\n.ds-empty {\n  padding: var(--space-3) var(--space-4);\n  background: var(--color-surface-alt);\n  border: var(--border-width) var(--border-style) var(--color-border);\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-large);\n  font-weight: var(--weight-heading);\n}\n.ds-empty__text {\n  margin: 0 0 var(--space-3);\n}\n\n/* ---------- footer: a strip of links, then small print, left-aligned ---------- */\n.ds-footer {\n  padding: 0 0 var(--space-5);\n  font-size: var(--text-base);\n}\n.ds-footer__links {\n  display: flex;\n  flex-wrap: wrap;\n  margin: 0;\n  padding: var(--space-1) var(--space-2);\n  list-style: none;\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n.ds-footer__item + .ds-footer__item::before {\n  content: \"|\";\n  padding: 0 var(--space-2);\n}\n.ds-footer__label {\n  padding: 0 var(--space-3) 0 0;\n  font-weight: var(--weight-bold);\n}\n.ds-footer__legal {\n  margin: var(--space-3) 0 0;\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n}\n\n/* ---------- menu (jump menu: a drop-down list with a Go button) ---------- */\n.ds-menu {\n  display: flex;\n  align-items: center;\n  gap: var(--space-1);\n  margin: var(--space-2) 0 var(--space-3);\n}\n.ds-menu__select {\n  flex: 1 1 auto;\n  min-width: 0;\n  width: 100%;\n}\n.ds-menu__go {\n  flex: none;\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 news front, 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-masthead\">\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=\"1.8\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"9.2\"/><ellipse cx=\"12\" cy=\"12\" rx=\"4\" ry=\"9.2\"/><line x1=\"2.8\" y1=\"12\" x2=\"21.2\" y2=\"12\"/></svg></span>\n      <span class=\"ds-brand__name\">chronoskin</span>\n    </a>\n    <span class=\"ds-masthead__tagline\">News from the coast, around the clock</span>\n    <form class=\"ds-masthead__search\" action=\"#\">\n      <label for=\"m-q\">Search</label>\n      <select class=\"ds-form__select\" aria-label=\"Where to search\">\n        <option>chronoskin</option>\n        <option>Archive</option>\n        <option>The Web</option>\n      </select>\n      <input class=\"ds-form__input ds-masthead__field\" id=\"m-q\" type=\"text\">\n      <button class=\"ds-button\" type=\"button\">Find</button>\n    </form>\n  </header>\n\n  <div class=\"ds-page__columns\">\n\n    <div class=\"ds-page__rail\">\n      <nav class=\"ds-nav\" data-component=\"nav\">\n        <ul class=\"ds-nav__links\">\n          <li class=\"ds-nav__item\"><a class=\"ds-nav__link\" href=\"#front\">FRONT PAGE</a></li>\n          <li class=\"ds-nav__item\"><a class=\"ds-nav__link\" href=\"#story\">REGION</a></li>\n          <li class=\"ds-nav__item\"><a class=\"ds-nav__link ds-nav__link--elsewhere\" href=\"#story\">NATION</a></li>\n          <li class=\"ds-nav__item\"><a class=\"ds-nav__link ds-nav__link--elsewhere\" href=\"#mine\">WEATHER</a></li>\n          <li class=\"ds-nav__item\"><a class=\"ds-nav__link ds-nav__link--elsewhere\" href=\"#story\">MONEY</a></li>\n          <li class=\"ds-nav__item\"><a class=\"ds-nav__link ds-nav__link--elsewhere\" href=\"#story\">SPORT</a></li>\n          <li class=\"ds-nav__item\"><a class=\"ds-nav__link\" href=\"#reviews\">COMPUTING</a></li>\n          <li class=\"ds-nav__item\"><a class=\"ds-nav__link ds-nav__link--elsewhere\" href=\"#story\">SCIENCE</a></li>\n          <li class=\"ds-nav__item\"><a class=\"ds-nav__link ds-nav__link--elsewhere\" href=\"#reviews\">THE ARTS</a></li>\n          <li class=\"ds-nav__item\"><a class=\"ds-nav__link ds-nav__link--elsewhere\" href=\"#send\">OPINION</a></li>\n        </ul>\n        <h2 class=\"ds-nav__label\">YOUR REVIEWS:</h2>\n        <ul class=\"ds-nav__links\">\n          <li class=\"ds-nav__item\"><a class=\"ds-nav__link\" href=\"#send\">send a review</a></li>\n          <li class=\"ds-nav__item\"><a class=\"ds-nav__link\" href=\"#mine\">my reviews</a></li>\n        </ul>\n      </nav>\n      <aside class=\"ds-sidebar\" data-component=\"sidebar\">\n        <section>\n          <h2 class=\"ds-sidebar__title\">Jump To</h2>\n          <form class=\"ds-menu\" action=\"#\">\n            <select class=\"ds-form__select ds-menu__select\" aria-label=\"Go to a section\">\n              <option>Go to a section...</option>\n              <option>Region</option><option>Money</option><option>Sport</option><option>Science</option><option>Computing</option>\n            </select>\n            <a class=\"ds-button ds-menu__go\" href=\"#reviews\">Go</a>\n          </form>\n        </section>\n\n        <h2 class=\"ds-sidebar__title\">SERVICES:</h2>\n        <ul class=\"ds-sidebar__list\">\n          <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#reviews\">tide tables</a></li>\n          <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#reviews\">ferry times</a></li>\n          <li class=\"ds-sidebar__item\"><a class=\"ds-link is-visited\" href=\"#reviews\">news quiz</a></li>\n          <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#reviews\">daily almanac</a></li>\n        </ul>\n        <h2 class=\"ds-sidebar__title\">E-MAIL:</h2>\n        <p class=\"ds-sidebar__text\">Get the morning headlines by e-mail. Enter your address:</p>\n        <form class=\"ds-sidebar__lookup\" action=\"#\">\n          <input class=\"ds-form__input ds-sidebar__field\" type=\"text\" aria-label=\"E-mail address\">\n          <button class=\"ds-button\" type=\"button\">go</button>\n        </form>\n      </aside>\n    </div>\n\n    <main class=\"ds-page__content\">\n\n      <section class=\"ds-view ds-view--home\" id=\"front\">\n      <div class=\"ds-page__main\">\n\n        <ul class=\"ds-tabs\">\n          <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab is-current\" href=\"#front\">Today</a></li>\n          <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#mine\">My chronoskin</a></li>\n          <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#reviews\">Pictures</a></li>\n          <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#reviews\">Sound</a></li>\n          <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#reviews\">Morning Brief</a></li>\n          <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#reviews\">Reader Reviews</a></li>\n        </ul>\n\n        <p class=\"ds-dateline\"><a class=\"ds-link\" href=\"#reviews\">March 9, 1999</a> -- Updated 6:40 a.m. local time</p>\n\n        <p class=\"ds-notice\">\n          <span class=\"ds-notice__label\">JUST IN</span>\n          <span class=\"ds-notice__text\">The coast road is closed between Saltmarsh and Port Ellery after a landslip overnight. Buses are running by the inland route.</span>\n        </p>\n\n        <div class=\"ds-page__lead\">\n\n          <section class=\"ds-hero\" data-component=\"hero\">\n            <h1 class=\"ds-hero__title\"><a class=\"ds-link\" href=\"#story\">Lighthouse keepers hand over to the machines</a></h1>\n            <p class=\"ds-hero__lead\">The last staffed light on the northern coast was switched to automatic working at midnight, ending 160 years of watches kept by hand.</p>\n            <p class=\"ds-hero__lead\">\"The lamp will not notice the difference,\" said the departing keeper. \"The village might.\"</p>\n            <p class=\"ds-hero__action\"><a class=\"ds-link ds-link--strong\" href=\"#story\">FULL STORY</a></p>\n            <ul class=\"ds-hero__related\">\n              <li><a class=\"ds-link\" href=\"#story\">How an automatic light works</a></li>\n              <li><a class=\"ds-link\" href=\"#story\">A keeper's log, page by page</a></li>\n              <li><a class=\"ds-link is-visited\" href=\"#story\">Map of the northern lights</a></li>\n              <li>Message board: <a class=\"ds-link\" href=\"#reviews\">Your memories</a> <span class=\"ds-badge ds-badge--count\">(48)</span></li>\n            </ul>\n          </section>\n\n          <div class=\"ds-page__side\">\n            <section class=\"ds-panel\" data-component=\"panel\">\n              <h2 class=\"ds-panel__title\">On the radio today <a class=\"ds-link ds-panel__tool\" href=\"#reviews\">all</a></h2>\n              <div class=\"ds-panel__body\">\n                <ul class=\"ds-panel__list\">\n                  <li>7 a.m.: Harbour report</li>\n                  <li>1 p.m.: The council debate, live</li>\n                  <li>6 p.m.: <a class=\"ds-link\" href=\"#reviews\">Listeners' letters</a></li>\n                </ul>\n              </div>\n            </section>\n            <section>\n              <p class=\"ds-links\">In other news:</p>\n              <ul class=\"ds-hero__related\">\n                <li><a class=\"ds-link\" href=\"#story\">Fishing fleet stays in port for a third day</a></li>\n                <li><a class=\"ds-link\" href=\"#story\">School wins funds for a telescope</a> <span class=\"ds-badge ds-badge--text\">New!</span></li>\n                <li><a class=\"ds-link\" href=\"#story\">Mill chimney to come down in May</a></li>\n              </ul>\n            </section>\n          </div>\n\n        </div>\n\n        <div class=\"ds-grid\" data-component=\"grid\">\n          <div class=\"ds-grid__cell\">\n            <p class=\"ds-grid__title\">Weather</p>\n            <p class=\"ds-grid__text\">Showers, clearing by noon. High 11. <a class=\"ds-link\" href=\"#reviews\">Five-day outlook</a></p>\n          </div>\n          <div class=\"ds-grid__cell ds-grid__cell--2\">\n            <p class=\"ds-grid__title\">Tides</p>\n            <p class=\"ds-grid__text\">High 4:12 a.m. and 4:40 p.m. <a class=\"ds-link\" href=\"#story\">Full table</a></p>\n          </div>\n          <div class=\"ds-grid__cell ds-grid__cell--3\">\n            <p class=\"ds-grid__title\">Results</p>\n            <p class=\"ds-grid__text\">Rovers 2, Saltmarsh 2. <a class=\"ds-link\" href=\"#reviews\">All scores</a></p>\n          </div>\n          <div class=\"ds-grid__cell ds-grid__cell--4\">\n            <p class=\"ds-grid__title\">Quick vote</p>\n            <p class=\"ds-grid__text\">Should the pier stay open in winter? <a class=\"ds-link\" href=\"#send\">Vote</a></p>\n          </div>\n        </div>\n\n        <div class=\"ds-sections\">\n          <section>\n            <h2 class=\"ds-sections__title\"><a class=\"ds-link\" href=\"#story\">REGION</a></h2>\n            <ul class=\"ds-list\" data-component=\"list\">\n              <li class=\"ds-list__item\"><a class=\"ds-link\" href=\"#story\">Council agrees a later last bus on Saturdays</a> <span class=\"ds-list__meta\">(6:10 a.m.)</span></li>\n              <li class=\"ds-list__item\"><a class=\"ds-link\" href=\"#story\">Market hall roof to be repaired by summer</a> <span class=\"ds-list__meta\">(5:45 a.m.)</span></li>\n              <li class=\"ds-list__item\"><a class=\"ds-link\" href=\"#story\">Lost seal pup returned to the estuary</a> <span class=\"ds-list__meta\">(Mon 9:20 p.m.)</span></li>\n            </ul>\n            <p class=\"ds-sections__sub\">In depth:</p>\n            <ul class=\"ds-list ds-list--sub\">\n              <li class=\"ds-list__item\"><a class=\"ds-link\" href=\"#story\">The harbour at 200</a></li>\n            </ul>\n          </section>\n          <section>\n            <h2 class=\"ds-sections__title\"><a class=\"ds-link\" href=\"#reviews\">MONEY</a></h2>\n            <ul class=\"ds-list\">\n              <li class=\"ds-list__item\"><a class=\"ds-link\" href=\"#story\">Boatyard takes on forty apprentices</a> <span class=\"ds-list__meta\">(6:25 a.m.)</span></li>\n              <li class=\"ds-list__item\"><a class=\"ds-link\" href=\"#story\">Paper mill reports a steady quarter</a> <span class=\"ds-list__meta\">(Mon 4:02 p.m.)</span></li>\n              <li class=\"ds-list__item\"><a class=\"ds-link is-visited\" href=\"#story\">What the new postage rates will cost you</a> <span class=\"ds-list__meta\">(Mon 1:30 p.m.)</span></li>\n            </ul>\n            <p class=\"ds-list__more\"><a class=\"ds-link\" href=\"#reviews\">More money news</a></p>\n          </section>\n        </div>\n\n      </div>\n      </section>\n\n      <section class=\"ds-view\" id=\"story\">\n        <div class=\"ds-page__inner\">\n\n          <nav aria-label=\"Path\">\n            <ol class=\"ds-breadcrumb\" data-component=\"breadcrumb\">\n              <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#front\">Front Page</a></li>\n              <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#story\">Region</a></li>\n              <li class=\"ds-breadcrumb__item is-current\">Northern Coast</li>\n            </ol>\n          </nav>\n\n          <header class=\"ds-page-header\">\n            <div class=\"ds-page-header__text\">\n              <h1 class=\"ds-page-header__title\">Region</h1>\n              <p class=\"ds-page-header__lead\">March 9, 1999. Filed from the northern coast at 6:10 a.m.</p>\n            </div>\n            <div class=\"ds-page-header__action\">\n              <a class=\"ds-button\" href=\"#front\">Front Page</a>\n            </div>\n          </header>\n\n          <article class=\"ds-prose\" data-component=\"typography\">\n            <h1>Lighthouse keepers hand over to the machines</h1>\n            <p class=\"ds-prose__lead\">The last staffed light on the northern coast went automatic at midnight.</p>\n            <p>For 160 years somebody climbed the stairs at dusk. Last night nobody did. The lamp at Gull Point lit itself, turned itself and, at 6:02 this morning, <strong>put itself out again</strong> without a hand on the switch.</p>\n            <p>\"The lamp will not notice the difference,\" said the departing keeper, who leaves the service after 31 years. \"The village might.\"</p>\n            <h2>How the new light works</h2>\n            <p>A sensor on the gallery measures daylight. The station reports to the harbour office by telephone line every hour, and an engineer can ask for its state by sending the word <code>STATUS</code>.</p>\n            <ul>\n              <li>The lamp changes its own bulb from a rack of six.</li>\n              <li>A battery room keeps it lit for nine days without mains power.</li>\n              <li>The fog signal sounds when visibility falls below two miles.</li>\n            </ul>\n            <h3>Open day</h3>\n            <p>The keeper's cottage opens to visitors on the first Sunday of May. Entry is free; the stairs are not for the faint of heart.</p>\n          </article>\n\n          <p class=\"ds-links\" data-component=\"links\">\n            Related:\n            <a class=\"ds-link\" href=\"#story\">How an automatic light works</a> |\n            <a class=\"ds-link is-visited\" href=\"#story\">Map of the northern lights</a> |\n            <a class=\"ds-link is-hover\" href=\"#story\">A keeper's log, page by page</a> |\n            <a class=\"ds-link is-active\" href=\"#story\">Your memories</a> |\n            <a class=\"ds-link ds-link--quiet\" href=\"#story\">printer version</a> |\n            <a class=\"ds-link ds-link--strong\" href=\"#front\">MORE NEWS</a>\n          </p>\n\n          <section>\n            <h2 class=\"ds-heading\">More from the region</h2>\n            <ul class=\"ds-list\">\n              <li class=\"ds-list__item\"><a class=\"ds-link\" href=\"#story\">Council agrees a later last bus on Saturdays</a> <span class=\"ds-list__meta\">(6:10 a.m.)</span></li>\n              <li class=\"ds-list__item\"><a class=\"ds-link\" href=\"#story\">Market hall roof to be repaired by summer</a> <span class=\"ds-list__meta\">(5:45 a.m.)</span></li>\n              <li class=\"ds-list__item\"><a class=\"ds-link\" href=\"#story\">Lost seal pup returned to the estuary</a> <span class=\"ds-list__meta\">(Mon 9:20 p.m.)</span></li>\n            </ul>\n          </section>\n\n        </div>\n      </section>\n\n      <section class=\"ds-view\" id=\"reviews\">\n        <div class=\"ds-page__inner\">\n\n          <nav aria-label=\"Path\">\n            <ol class=\"ds-breadcrumb\">\n              <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#front\">Front Page</a></li>\n              <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#reviews\">Computing</a></li>\n              <li class=\"ds-breadcrumb__item is-current\">Reader Reviews</li>\n            </ol>\n          </nav>\n\n          <header class=\"ds-page-header\" data-component=\"page-header\">\n            <div class=\"ds-page-header__text\">\n              <h1 class=\"ds-page-header__title\">Reader Reviews</h1>\n              <p class=\"ds-page-header__lead\">Modems, printers and programs, tested by the people who bought them.</p>\n            </div>\n            <div class=\"ds-page-header__action\">\n              <a class=\"ds-button\" href=\"#send\">Send a Review</a>\n            </div>\n          </header>\n\n          <ul class=\"ds-tabs\" data-component=\"tabs\">\n            <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab is-current\" href=\"#reviews\">Latest</a></li>\n            <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#reviews\">By Product</a></li>\n            <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#reviews\">By Reader</a></li>\n            <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#reviews\">Editors' Picks</a></li>\n            <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#mine\">My Reviews</a></li>\n          </ul>\n\n          <ul class=\"ds-stat\" data-component=\"stats\">\n            <li class=\"ds-stat__item\"><span class=\"ds-stat__label\">Reviews</span> <span class=\"ds-stat__value\">1,306</span></li>\n            <li class=\"ds-stat__item\"><span class=\"ds-stat__label\">This week</span> <span class=\"ds-stat__value\">27</span></li>\n            <li class=\"ds-stat__item\"><span class=\"ds-stat__label\">In the queue</span> <span class=\"ds-stat__value\">9</span></li>\n            <li class=\"ds-stat__item\"><span class=\"ds-stat__label\">Readers</span> <span class=\"ds-stat__value\">412</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\">PRINTED</span> on the site <span class=\"ds-badge ds-badge--warning\">HELD</span> waiting for the desk <span class=\"ds-badge ds-badge--danger\">RETURNED</span> sent back to its writer <span class=\"ds-badge\">NEW</span> in the last day</span>\n              Reviews are read by the desk before they appear. <a class=\"ds-link\" href=\"#send\">House rules</a> | <a class=\"ds-link\" href=\"#reviews\">Sort by date</a>\n            </caption>\n            <thead>\n              <tr>\n                <th class=\"ds-table__head\" scope=\"col\">Product</th>\n                <th class=\"ds-table__head\" scope=\"col\">Status</th>\n                <th class=\"ds-table__head\" scope=\"col\">Sent</th>\n                <th class=\"ds-table__head ds-table__head--num\" scope=\"col\">Marks</th>\n                <th class=\"ds-table__head ds-table__head--num\" scope=\"col\">Readers</th>\n              </tr>\n            </thead>\n            <tbody>\n              <tr>\n                <td class=\"ds-table__cell\"><a class=\"ds-link\" href=\"#reviews\">Pelican 56K external modem</a> <span class=\"ds-badge\">NEW</span></td>\n                <td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--success\">PRINTED</span></td>\n                <td class=\"ds-table__cell\">Mar 8</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">8 / 10</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">2,140</td>\n              </tr>\n              <tr class=\"ds-table__row--alt\">\n                <td class=\"ds-table__cell\"><a class=\"ds-link\" href=\"#reviews\">Inkwell 300 colour printer</a></td>\n                <td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--success\">PRINTED</span></td>\n                <td class=\"ds-table__cell\">Mar 5</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">6 / 10</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">1,877</td>\n              </tr>\n              <tr>\n                <td class=\"ds-table__cell\"><a class=\"ds-link\" href=\"#reviews\">Ledgerbook home accounts 2.0</a></td>\n                <td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--warning\">HELD</span></td>\n                <td class=\"ds-table__cell\">Mar 8</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">9 / 10</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">0</td>\n              </tr>\n              <tr class=\"ds-table__row--alt\">\n                <td class=\"ds-table__cell\"><a class=\"ds-link is-visited\" href=\"#reviews\">Scanmate flatbed scanner</a></td>\n                <td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--danger\">RETURNED</span></td>\n                <td class=\"ds-table__cell\">Feb 26</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">3 / 10</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">0</td>\n              </tr>\n              <tr>\n                <td class=\"ds-table__cell\"><a class=\"ds-link\" href=\"#reviews\">Tutor Type keyboard course</a></td>\n                <td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--success\">PRINTED</span></td>\n                <td class=\"ds-table__cell\">Feb 24</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">7 / 10</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">964</td>\n              </tr>\n              <tr class=\"ds-table__row--alt\">\n                <td class=\"ds-table__cell\"><a class=\"ds-link\" href=\"#reviews\">Harbourlight 15 inch monitor</a></td>\n                <td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--success\">PRINTED</span></td>\n                <td class=\"ds-table__cell\">Feb 19</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">5 / 10</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">1,312</td>\n              </tr>\n              <tr>\n                <td class=\"ds-table__cell ds-table__cell--group\" colspan=\"5\">Average mark this month: 6.8. <a class=\"ds-link\" href=\"#reviews\">See every product</a></td>\n              </tr>\n            </tbody>\n          </table>\n\n          <ol class=\"ds-pagination\" data-component=\"pagination\">\n            <li class=\"ds-pagination__label\">More reviews:</li>\n            <li class=\"ds-pagination__item\"><a class=\"ds-pagination__link\" href=\"#reviews\">Previous</a></li>\n            <li class=\"ds-pagination__item\"><a class=\"ds-pagination__link\" href=\"#reviews\">1</a></li>\n            <li class=\"ds-pagination__item\"><a class=\"ds-pagination__link is-current\" href=\"#reviews\">2</a></li>\n            <li class=\"ds-pagination__item\"><a class=\"ds-pagination__link\" href=\"#reviews\">3</a></li>\n            <li class=\"ds-pagination__item\"><a class=\"ds-pagination__link\" href=\"#reviews\">4</a></li>\n            <li class=\"ds-pagination__item\"><a class=\"ds-pagination__link\" href=\"#reviews\">Next</a></li>\n          </ol>\n\n        </div>\n      </section>\n\n      <section class=\"ds-view\" id=\"send\">\n        <div class=\"ds-page__inner\">\n\n          <nav aria-label=\"Path\">\n            <ol class=\"ds-breadcrumb\">\n              <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#front\">Front Page</a></li>\n              <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#reviews\">Reader Reviews</a></li>\n              <li class=\"ds-breadcrumb__item is-current\">Send a Review</li>\n            </ol>\n          </nav>\n\n          <header class=\"ds-page-header\">\n            <div class=\"ds-page-header__text\">\n              <h1 class=\"ds-page-header__title\">Send a Review</h1>\n              <p class=\"ds-page-header__lead\">Say what you bought, what it cost and how it behaved after a month.</p>\n            </div>\n            <div class=\"ds-page-header__action\">\n              <a class=\"ds-button\" href=\"#mine\">My Reviews</a>\n            </div>\n          </header>\n\n          <div class=\"ds-notices\" data-component=\"notice\">\n            <p class=\"ds-notice\"><span class=\"ds-notice__label\">NOTE</span> <span class=\"ds-notice__text\">Reviews sent before noon are usually read the same day.</span></p>\n            <p class=\"ds-notice ds-notice--error\"><span class=\"ds-notice__label\">ERROR</span> <span class=\"ds-notice__text\">Your review was not sent. Please correct the marked field and try again.</span></p>\n          </div>\n\n          <form class=\"ds-form\" data-component=\"form\" action=\"#send\">\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"f-name\">Your name:</label>\n              <div class=\"ds-form__field\">\n                <input class=\"ds-form__input\" id=\"f-name\" type=\"text\" value=\"R. Okafor\">\n              </div>\n            </div>\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"f-mail\">E-mail address:</label>\n              <div class=\"ds-form__field\">\n                <input class=\"ds-form__input\" id=\"f-mail\" type=\"text\" value=\"okafor@example\">\n                <span class=\"ds-form__error\">That address is not complete.</span>\n              </div>\n            </div>\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"f-kind\">Kind of product:</label>\n              <div class=\"ds-form__field\">\n                <select class=\"ds-form__select\" id=\"f-kind\">\n                  <option>Modem</option>\n                  <option>Printer</option>\n                  <option>Program</option>\n                </select>\n                <span class=\"ds-form__hint\">Choose the nearest.</span>\n              </div>\n            </div>\n            <div class=\"ds-form__row\">\n              <span class=\"ds-form__label\">You may:</span>\n              <div class=\"ds-form__field\">\n                <label class=\"ds-form__option\"><input class=\"ds-form__check\" type=\"checkbox\" checked>print my name</label>\n                <label class=\"ds-form__option\"><input class=\"ds-form__check\" type=\"checkbox\">send me replies</label>\n              </div>\n            </div>\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"f-text\">Your review:</label>\n              <div class=\"ds-form__field\">\n                <textarea class=\"ds-form__textarea\" id=\"f-text\" rows=\"4\"></textarea>\n                <span class=\"ds-form__hint\">Keep to 300 words and give a mark out of ten.</span>\n              </div>\n            </div>\n            <div class=\"ds-form__actions\" data-component=\"buttons\">\n              <button class=\"ds-button\" type=\"button\">Send Review</button>\n              <button class=\"ds-button ds-button--secondary\" type=\"button\">Clear</button>\n              <button class=\"ds-button\" type=\"button\" disabled>Preview</button>\n              <button class=\"ds-button ds-button--danger\" type=\"button\">Discard Draft</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 draft?</h2>\n            <p class=\"ds-dialog__body\">What you have typed will be lost. The <a class=\"ds-link\" href=\"#reviews\">reviews already printed</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 Writing</button>\n            </div>\n          </section>\n\n        </div>\n      </section>\n\n      <section class=\"ds-view\" id=\"mine\">\n        <div class=\"ds-page__inner\">\n\n          <nav aria-label=\"Path\">\n            <ol class=\"ds-breadcrumb\">\n              <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#front\">Front Page</a></li>\n              <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#reviews\">Reader Reviews</a></li>\n              <li class=\"ds-breadcrumb__item is-current\">My Reviews</li>\n            </ol>\n          </nav>\n\n          <header class=\"ds-page-header\">\n            <div class=\"ds-page-header__text\">\n              <h1 class=\"ds-page-header__title\">My Reviews</h1>\n              <p class=\"ds-page-header__lead\">Everything you have sent to the desk, and where each one stands.</p>\n            </div>\n            <div class=\"ds-page-header__action\">\n              <a class=\"ds-button\" href=\"#reviews\">All Reviews</a>\n            </div>\n          </header>\n\n          <ul class=\"ds-tabs\">\n            <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#reviews\">Latest</a></li>\n            <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#reviews\">By Product</a></li>\n            <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#reviews\">By Reader</a></li>\n            <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#reviews\">Editors' Picks</a></li>\n            <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab is-current\" href=\"#mine\">My Reviews</a></li>\n          </ul>\n\n          <section class=\"ds-empty\" data-component=\"empty\">\n            <h2 class=\"ds-empty__title\">You have not sent any reviews.</h2>\n            <p class=\"ds-empty__text\">Reviews you send will be listed here with their status. Anyone may send one; the desk reads them all.</p>\n            <a class=\"ds-button\" href=\"#send\">Write a Review</a>\n          </section>\n\n          <section>\n            <h2 class=\"ds-heading\">Readers are asking about</h2>\n            <ul class=\"ds-list\">\n              <li class=\"ds-list__item\"><a class=\"ds-link\" href=\"#send\">Ledgerbook home accounts 2.0</a> <span class=\"ds-list__meta\">(14 requests)</span></li>\n              <li class=\"ds-list__item\"><a class=\"ds-link\" href=\"#send\">Any 56K modem that works on a rural line</a> <span class=\"ds-list__meta\">(11 requests)</span></li>\n              <li class=\"ds-list__item\"><a class=\"ds-link\" href=\"#send\">Colour printers under 200 dollars</a> <span class=\"ds-list__meta\">(8 requests)</span></li>\n            </ul>\n            <p class=\"ds-list__more\"><a class=\"ds-link\" href=\"#reviews\">See what has been reviewed</a></p>\n          </section>\n\n          <section class=\"ds-panel\">\n            <h2 class=\"ds-panel__title\">Before you write <a class=\"ds-link ds-panel__tool\" href=\"#send\">start now</a></h2>\n            <div class=\"ds-panel__body\">\n              <ul class=\"ds-panel__list\">\n                <li>Give the exact model name as it appears on the box.</li>\n                <li>Say which computer you used and what the product cost.</li>\n                <li>Keep to 300 words and give a mark out of ten.</li>\n              </ul>\n            </div>\n          </section>\n\n        </div>\n      </section>\n\n    </main>\n  </div>\n\n  <footer class=\"ds-footer\" data-component=\"footer\">\n    <hr class=\"ds-rule\">\n    <ul class=\"ds-footer__links\">\n      <li class=\"ds-footer__label\">chronoskin:</li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#front\">Front Page</a></li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#send\">Help</a></li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#reviews\">Contents</a></li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#send\">Search</a></li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#send\">Advertise</a></li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#reviews\">Jobs</a></li>\n      <li class=\"ds-footer__item\"><a class=\"ds-link\" href=\"#send\">Send a Review</a></li>\n    </ul>\n    <p class=\"ds-footer__legal\">Copyright 1999 chronoskin. All rights reserved. <a class=\"ds-link\" href=\"#send\">Terms</a> under which this service is provided to you.</p>\n  </footer>\n\n</div>\n</body>\n</html>\n",
    "style.json": "{\n  \"id\": \"v1.table-era-90s.portal.s02.p09.t10.u03\",\n  \"library\": \"2026.10.09-1346\",\n  \"era\": {\n    \"slug\": \"table-era-90s\",\n    \"years\": [\n      1996,\n      2000\n    ]\n  },\n  \"archetype\": \"portal\",\n  \"mode\": \"mix\",\n  \"markup\": \"modern\",\n  \"viewport\": {\n    \"width\": 800,\n    \"fluid\": false\n  },\n  \"source\": \"https://chrono.skin/s/v1-te-29a3\",\n  \"short\": \"v1-te-29a3\"\n}\n",
    "tokens.css": "/* @part palette */\n:root {\n  --color-page: #ffffff;\n  --color-canvas: #ffffff;\n  --color-surface: #ffffff;\n  --color-surface-alt: #eeeeee;\n  --color-surface-strong: #cccc99;\n  --color-bar: #cccc66;\n  --color-bar-text: #000000;\n  --color-bar-alt: #cccc99;\n  --color-bar-alt-text: #000000;\n  --color-inverse: #000000;\n  --color-inverse-text: #ffffff;\n  --color-text: #000000;\n  --color-text-muted: #666666;\n  --color-heading: #000000;\n  --color-heading-alt: #003060;\n  --color-link: #0000cc;\n  --color-link-quiet: #0000cc;\n  --color-link-visited: #6060a0;\n  --color-link-hover: #0000cc;\n  --color-link-active: #cc0000;\n  --color-border: #a0a0a0;\n  --color-border-strong: #666633;\n  --color-border-muted: #cccccc;\n  --color-accent: #cc0000;\n  --color-accent-text: #ffffff;\n  --color-accent-alt: #cc0000;\n  --color-fill-1: #ffffcc;\n  --color-fill-2: #eeeeee;\n  --color-fill-3: #cccc99;\n  --color-fill-4: #ffcc00;\n  --color-button: #efefef;\n  --color-button-text: #000000;\n  --color-button-hover-text: #000000;\n  --color-button-secondary: #cccc99;\n  --color-button-secondary-text: #000000;\n  --color-input: #ffffff;\n  --color-input-text: #000000;\n  --color-input-border: #c0c0c0;\n  --color-disabled: #efefef;\n  --color-disabled-text: #989898;\n  --color-danger: #cc0000;\n  --color-danger-surface: #ffffff;\n  --color-success: #006600;\n  --color-warning: #ffcc00;\n  --color-notice: #ffffcc;\n  --color-notice-text: #000000;\n  --color-focus: #003060;\n  --color-shadow: #000000;\n  --color-overlay: #ffffff;\n}\n\n/* @part type */\n:root {\n  --font-body: \"Times New Roman\", Times, serif;\n  --font-heading: \"Times New Roman\", Times, serif;\n  --font-ui: \"Times New Roman\", Times, serif;\n  --font-mono: \"Courier New\", Courier, monospace;\n  --text-base: 16px;\n  --text-small: 13px;\n  --text-ui: 13px;\n  --text-large: 19px;\n  --text-display: 32px;\n  --text-h1: 24px;\n  --text-h2: 19px;\n  --text-h3: 16px;\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: 400;\n  --heading-transform: none;\n  --heading-tracking: 0;\n  --display-tracking: 0;\n  --figure-shift: 0em;\n  --ui-transform: none;\n  --link-decoration: underline;\n  --link-decoration-hover: underline;\n  --link-decoration-quiet: underline;\n}\n\n/* @part surface */\n:root {\n  --border-width: 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"
  }
}
