{
  "id": "v1-w9-5446-dr",
  "long_id": "v1.windows-9x.landing.s05.p04.t04.u06.dr",
  "name": "Desktop grey setup wizard, desert, 1998",
  "era": {
    "slug": "windows-9x",
    "code": "w9",
    "name": "Desktop grey",
    "years": [
      1995,
      2001
    ],
    "description": "Web pages dressed as the desktop of 1995 to 2001: silver-grey windows with a navy title bar, raised and sunken bevels on every button and field, a small pixel-sized sans, and dialogs, tabs and tree lists borrowed from the operating system."
  },
  "archetype": "landing",
  "mode": "mix",
  "viewport": {
    "width": 800,
    "fluid": false
  },
  "density": "roomy",
  "summary": "A download and setup site built as the installation wizard of a late 1990s desktop: one small window with a picture band at the left that lists the steps, one page of the wizard at the right under a white header band, and the row of Back, Next and Cancel keys along the foot. This pack shows it in a desert scheme: sand windows with a dark brown pinstriped title bar on a banded terracotta desktop, teal selection, every edge a double-line rim three pixels deep, etched grooves for the thin lines and a larger 13px humanist sans. Shareware authors, hardware makers and service providers walked visitors through downloads, licences and registration this way from 1995 to 2001, because everybody already knew how to use a wizard.",
  "url": "https://chrono.skin/s/v1-w9-5446-dr",
  "preview_url": "https://chrono.skin/s/v1-w9-5446-dr/specimen.html",
  "files": {
    "STYLE.md": "# Desktop grey setup wizard, desert, 1998\n\n## Summary\n\nA download and setup site built as the installation wizard of a late 1990s desktop: one small window with a picture band at the left that lists the steps, one page of the wizard at the right under a white header band, and the row of Back, Next and Cancel keys along the foot. This pack shows it in a desert scheme: sand windows with a dark brown pinstriped title bar on a banded terracotta desktop, teal selection, every edge a double-line rim three pixels deep, etched grooves for the thin lines and a larger 13px humanist sans. Shareware authors, hardware makers and service providers walked visitors through downloads, licences and registration this way from 1995 to 2001, because everybody already knew how to use a wizard.\n\n## Layout\n\n- Fixed, not fluid: `--size-page` is 716px, one window (`.ds-page__window`, also a `.ds-window`) centred on the desktop of an 800px screen with twice `--space-6` above and below. The window is narrower than the screen on purpose: a wizard is a dialog, not a full window.\n- The window is a grid of two columns: the title bar across both, the picture band (`.ds-nav__band`, `--size-band`, 172px) at the left of the open view, and the `.ds-footer` brand line across the foot. `.ds-nav` (title bar and band) and the footer are written once, outside the views; each view is a `.ds-view` in the right column and one shows at a time. The band is as tall as the open page.\n- Every view is a `.ds-page__body`: a column of blocks `--space-4` apart, at least `--size-wizard` (440px) tall, that ends with `.ds-page__keys`, an etched rule over the right-aligned row of keys, pushed to the foot of the page.\n- Home view: the `.ds-hero` (the welcome title, a lead line, a paragraph and the large download key) written straight on the window face, the `.ds-stat` row of four read-outs, a `.ds-heading` and the `.ds-grid` of four picture cards, then the keys.\n- Inner pages keep the title bar, the band and the brand line and drop the welcome text, the read-outs and the cards. Each opens with the `.ds-breadcrumb`, one small line of path, then the `.ds-page-header`, a white sunken band with the page title, one line, an optional key and the page's large icon at the right. The working components follow, and where a page has tabs they sit directly under the page header with their `.ds-sheet`.\n- Views, in the order of the steps: `home` is the welcome page. `licence` is the licence in a `.ds-scroll` well with its scroll bar, and two radio buttons. `components` has three tabs over a sheet (a check tree in a well beside a description group box and property rows) and a list view of drives. `register` has two notices and the form. `download` has a progress bar across the page, a group box listing the files, a list view of mirror sites with status labels and pagination keys, and the Exit Setup dialog. `finish` has a notice, a group box of what was installed beside the empty state of the skipped files, and two check boxes. The step of the view that is showing is a raised key in the band; the first step is marked when the address names no view.\n- Fixed sizes: `--size-picture` 104px least height of the picture; `--size-scroll` 190px height of a scrolling well; `--size-ctl` 16px caption button, scroll key and scroll bar width, `--size-glyph` 8px glyph; `--size-icon` 32px and `--size-icon-small` 16px icons; `--size-check` 13px check box and radio button; `--size-label` 112px form label column; `--size-field` 210px text field; `--size-dialog` 330px; `--size-button` 75px least key width; `--size-block` 8px progress block.\n- Spacing scale: `--space-0` 1px is the hairline step (tick inset, row padding in trees); `--space-1` 2px the gap between keys and the padding of bars; `--space-2` 4px the padding of keys, the gap between an icon and its word and between panes; `--space-3` 6px cell and field padding and the gap between keys in a row; `--space-4` 8px the gap between blocks inside a window and the padding of group boxes; `--space-5` 12px the padding of sheets and dialogs; `--space-6` 16px the margin of the desktop round the window and the gutter of two-column sheets.\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- Two families and a monospace: `--font-body` and `--font-ui` are a wide humanist sans (Lucida Sans Unicode, then Lucida Grande, Geneva); `--font-heading` is Arial Black at weight 900 for the folder banner, page titles, the brand and the read-outs; `--font-mono` is Lucida Console. The references set their text in Arial and Verdana at 10px to 13px with titles in a black weight; the stacks here are the nearest faces that shipped with the desktops of the time.\n- Sizes: `--text-base` and `--text-ui` 11px for everything; `--text-small` 10px for counts and dates; `--text-large` 12px for a lead line; `--text-h2` 12px and `--text-h3` 11px for headings; `--text-h1` 15px for a page title and a read-out; `--text-display` 20px for the folder banner only. Line height 1.45 in text, 1.25 in keys and bars. Bold is 700, headings 900; keys are regular weight. No transform and no tracking. Links in text are underlined; quiet links are not.\n- Colour: blue-grey `--color-canvas` windows on a dark storm blue `--color-page`, white wells, a slate title bar and slate selection, a mid grey-blue `--color-inverse` for the banner and the rail, ink blue links with violet visited and brick active, near-black blue text. Block colours are pale blue, sea green, lavender and straw. Status colours are deep green, ochre and dark red, all legible on white.\n- Surface: nothing is bevelled. A raised part is one hairline of `--color-border` with a 2px pale edge inside its top and left; a sunken part is the same hairline with a 2px grey shade inside its top and left; a window is a hairline of `--color-border-strong`, and a dialog adds a hard 2px shadow. `--border-width-strong` is 2px. Thin lines (`--border-style`) are dotted: group boxes, rules, the frame of notices and badges, the extra line of the default button. The desktop and the inverse fill carry thin slanting rain lines; the title bar runs from a near-black mix of `--color-bar` at the left to `--color-bar` at the right. A key under the pointer turns paler (`--fill-button-hover`) and its label takes `--color-button-hover-text`.\n- The era's rule for which text sits on which fill, the same in every layout of the era and to be kept by every token set:\n  - The desktop (`--fill-page` over `--color-page`) is always dark enough to carry `--color-bar-text`. Text written straight on the desktop (icon labels, small print) uses `--color-bar-text`.\n  - The window face is `--color-canvas`; raised parts inside a window (sheets, notes, dialogs) are `--fill-panel`. Both carry `--color-text`, `--color-text-muted`, `--color-heading`, `--color-heading-alt` and the link colours.\n  - A sunken well (list view, tree, document, read-out, empty list) is `--color-surface` and carries the same text and link tokens as the window face, so every palette keeps text and links legible on both. `--color-surface-alt` is the alternate row and the fill of inline code and of a pressed toolbar key; `--color-surface-strong` is a group or total row. They carry `--color-text`.\n  - A title bar is `--fill-bar` with `--color-bar-text`; the title bar of a window without the focus is `--fill-inverse` with `--color-inverse-text`.\n  - Menu bar, toolbar and column heads are `--fill-bar-alt` with `--color-bar-alt-text`.\n  - The selection (current tree row, selected table row, open menu, selected list-box row, progress blocks, the plain badge) is `--fill-accent` with `--color-accent-text`. Links and icons inside a selection inherit that colour.\n  - Keys are `--fill-button` with `--color-button-text` (`--color-button-hover-text` under the pointer); the lesser key is `--fill-button-secondary` with `--color-button-secondary-text`; a disabled key is `--color-disabled` with `--color-disabled-text`. The destructive key is `--fill-button` with a bold label in `--color-danger`.\n  - Fields and the path field are `--fill-input` with `--color-input-text`; links inside the path field use the link tokens, so a palette keeps `--color-input` close to `--color-surface`. `--color-input-border` outlines the check box.\n  - `--color-fill-1` to `--color-fill-4` carry `--color-text` (icons drawn on them) and, in the help layout, `--color-link`.\n  - Notices are `--color-notice` with `--color-notice-text` inside a line of `--color-border-strong`; the error notice is `--color-danger` on `--color-danger-surface`.\n  - Status labels print `--color-success`, `--color-warning` and `--color-danger` as text and frame on `--color-surface`, so each status colour must read on the well colour; none of them is used as a fill under text.\n  - Icons are inline SVG painted with `currentColor`: `--color-heading-alt` by default, the surrounding text colour on keys, title bars, block colours and selections.\n- Edges, the same in every layout of the era. Nothing has a border of its own except thin lines; every raised or sunken edge is a `box-shadow` token drawn inside the box:\n  - `--shadow-panel`: the raised frame of a window. `--shadow-dialog`: the frame of a dialog.\n  - `--shadow-control`: every raised key: buttons, toolbar keys, caption buttons, column heads, tabs and their sheet, pagination keys, the brand tile.\n  - `--shadow-control-pressed`: everything sunken: fields, the path field, wells, read-outs, status cells, the check box, the progress bar, a pressed key, the current pagination key. Note that fields take the pressed token, not `--shadow-control`.\n  - `--border-width-strong` is the thickness of those edges: padding that must clear an edge is written `calc(var(--border-width-strong) + var(--space-N))`.\n  - `--border-width`, `--border-style` and `--color-border` draw the thin lines: group boxes, the etched rule (`--color-border` over `--color-border-muted`), toolbar separators, table row lines (`--color-surface-alt`), the frame of notices, badges and the default button (`--color-border-strong`).\n  - `--color-border`, `--color-border-strong` and `--color-border-muted` are the three shades the edge tokens are built from: the mid shadow, the darkest outer line and the light edge. A palette sets them as a bevel set for its window face.\n- Not expressible by a token and written literally in `components.css`: the `dotted` guide lines of the tree (and of topic lists), the `solid` strokes of the caption-button glyphs, and `clip-path` on the current tab, which cuts off its lower edge so that it joins the sheet; and the `dotted` guide lines are written literally whatever `--border-style` is.\n- All radii are 0 and are still applied through `--radius-control`, `--radius-panel`, `--radius-pill` and `--radius-page`. `--shadow-text` is applied to title bars and buttons. `--transition` is `none`; `--backdrop-blur` is `0px`: no surface blurs what lies behind it.\n\nSpacing is roomy: every `--space-*` token of the layout was multiplied by 1.25. Where the Layout section names a spacing in pixels, the tokens are right.\n\n## Components\n\n- `.ds-page`: on `<body>`; the desktop. `.ds-page__window` is the wizard window at `--size-page`, a two-column grid; `.ds-page__body` is one page of the wizard; `.ds-page__keys` is its foot: an etched rule and the row of keys.\n- `.ds-nav`: the chrome of the wizard, written once: the title bar (`.ds-nav__title` on a `.ds-window__title`, holding the `.ds-brand`, the caption and the caption buttons) and `.ds-nav__band`, a sunken column in `--color-bar` with `--color-bar-text`. The band holds `.ds-nav__picture` (a framed tile in `--fill-inverse` with a 64px drawing over `.ds-nav__disks`, a row of small ones, all inline SVG in `--color-inverse-text`), the numbered steps `.ds-nav__links` of `.ds-nav__link` entries, and the sidebar. The step of the current view (`is-current`, or one selector per view) is a raised key: `--fill-button`, `--color-button-text`, `--shadow-control`, bold.\n- `.ds-brand`: the site's mark and name at the left of the title bar. `.ds-brand__mark` is the window's icon: a small tile dressed like the default button (`--fill-button`, `--color-button-text`, a line of `--color-border-strong`, `--radius-control`, `--shadow-control`) holding the mark as inline SVG with a 3 unit stroke and square caps. `.ds-brand__name` is the name in `--font-heading` at `--text-ui`, in the bar's text colour. The name `chronoskin` and its mark are placeholders for the installing project's own name and logo.\n- `.ds-sidebar`: a block of links at the foot of the band, above a thin line: `.ds-sidebar__title` in bold and a `.ds-sidebar__list` of `.ds-sidebar__link`s, underlined, all in `--color-bar-text`.\n- `.ds-hero`: the welcome page, the era's page introduction, written on the window face: `.ds-hero__title` at `--text-display` in `--color-heading-alt`, `.ds-hero__lead` at `--text-large`, a `.ds-hero__text` paragraph and `.ds-hero__action`, the large default key beside one line with a link. No box and no picture of its own: the band is the picture.\n- `.ds-breadcrumb`: the path, one line at `--text-small` in `--color-text-muted` above the page header, with a `>` between the `.ds-breadcrumb__item`s; the last is `is-current`, bold and in `--color-text`.\n- `.ds-page-header`: the head of an inner page: a white sunken band with `.ds-page-header__text` (`.ds-page-header__title` at `--text-h1` and `.ds-page-header__lead`), an optional `.ds-page-header__action` key and a large icon at the right.\n- `.ds-grid`: four picture cards in a row. Each `.ds-grid__cell` is a link in a sunken well: `.ds-grid__icon`, a large icon in `--color-text` centred on one of the four block colours (`--2`, `--3`, `--4` on the cell), a bold `.ds-grid__title` in `--color-link` and a small muted `.ds-grid__text`.\n- `.ds-list`: rows on the window face: a small icon, `.ds-list__text` (a link and one line) and a right-aligned `.ds-list__meta`. `.ds-list__item` is the row.\n- `.ds-panel`: a group box, the same thing as `.ds-group`: a `<fieldset>` with its `.ds-panel__title` legend cut into the frame and a `.ds-panel__body`.\n- `.ds-scroll`: a document in a sunken well beside its scroll bar: `.ds-scroll__view` is `--size-scroll` tall and cuts off what does not fit; `.ds-scroll__bar` holds two `.ds-scroll__key`s (raised, an arrow icon), the raised `.ds-scroll__thumb` and the `.ds-scroll__track` on `--color-surface-alt`.\n- `.ds-footer`: the brand line at the foot of the window: `.ds-footer__legal` in small muted text, `.ds-footer__rule`, an etched line that takes the free width, and `.ds-footer__links`, quiet links.\n- `.ds-window`: the raised frame of a window (`--fill-panel`, `--shadow-panel`). `.ds-window__title` is the title bar (`--fill-bar`, bold `--font-ui` in `--color-bar-text`), `.ds-window__title--inactive` the bar of a window without the focus, `.ds-window__caption` the title text, `.ds-window__controls` the group of caption buttons. `.ds-window__ctl` is one caption button, a small raised square with its glyph drawn in CSS: `--min`, `--max`, `--close`. `.ds-window__body` pads plain content.\n- `.ds-view`: one screen of the example site; only the one named in the address shows, and `.ds-view--home` when none is named. No box of its own.\n- `.ds-prose`: running text: styles `h1`, `h2`, `h3`, `p`, `ul`, `ol`, `li`, `strong` and `code`; `.ds-prose__lead` is the lead line at `--text-large`. Used inside a well.\n- `.ds-link`: every link in text, underlined. States `is-visited`, `is-hover`, `is-active`, `is-focus`. `.ds-link--quiet` (`--color-link-quiet`, `--link-decoration-quiet`) for tool and footer links, `.ds-link--strong` for a bold link. `.ds-links` wraps a line of links.\n- `.ds-button`: a raised key at least `--size-button` wide, on a `<button>` or on a link that leads to another view. The plain class is the default button of its window: one more line of `--color-border-strong` round the key. `.ds-button--secondary` is every other key, `.ds-button--danger` the destructive one (bold `--color-danger` label, never a red key), `.ds-button--large` a bigger one. States `is-hover`, `is-pressed` (the edge turns inward), `is-focus` (ring inside the key), `is-disabled` or `disabled`. `.ds-buttons` lays out a row; a `.ds-find__fill` spacer pushes the confirming keys to the right.\n- `.ds-form`: two columns, `.ds-form__label` at the left (`--size-label`) and `.ds-form__field` at the right. Controls: `.ds-form__input` (`--short`, `--wide`), `.ds-form__select`, `.ds-form__textarea`, `.ds-form__check` inside a `.ds-form__option` label, `.ds-form__radio` (the round field with a dot) the same way. All are sunken fields. `.ds-form__hint` is a small muted line under a field, `.ds-form__error` a bold line in `--color-danger` under it (the field itself does not change), `.ds-form__actions` a right-aligned row of keys.\n- `.ds-table`: a list view: a sunken well of `--color-surface` whose column heads (`.ds-table__head`, `--num` for a right-aligned one) are raised keys. Rows are `.ds-table__row`; `.ds-table__row--alt` tints a row, `is-selected` puts it in the selection colours. `.ds-table__cell`, with `--num` for figures and `--group` for a total or group row. `.ds-table__caption` is the small line under the well.\n- `.ds-stat`: the row of summary figures; each `.ds-stat__item` is a sunken read-out with a `.ds-stat__value` (`--text-h1`, `--color-heading-alt`) over a `.ds-stat__label` (`--text-small`, muted). Three or four in a row, never large numerals or cards.\n- `.ds-tabs`: a property sheet. `.ds-tabs__item` holds a `.ds-tabs__tab`, a raised key whose lower edge slides under the sheet; the current tab (`is-current`) is taller, bold and joined to the sheet. `.ds-sheet` is the raised sheet under the tabs and always follows them.\n- `.ds-badge`: a small bold label in the selection colours with a dark line round it. `.ds-badge--count` is a plain muted count. Status: `.ds-badge--success`, `.ds-badge--warning`, `.ds-badge--danger`, the status colour as text and frame on the well colour. `.ds-badges` lays out a row of them.\n- `.ds-notice`: the pale tip box inside a dark line; `.ds-notice__label` is the bold lead word. `.ds-notice--error` is the error form. `.ds-notices` stacks several.\n- `.ds-pagination`: a row of small raised keys: `.ds-pagination__label`, then `.ds-pagination__link` for previous, the page numbers and next; `is-current` is pressed and bold, `is-disabled` greyed.\n- `.ds-dialog`: a small window `--size-dialog` wide, shown in the page flow where it would open. `.ds-dialog__title` is its title bar (with a `.ds-window__ctl--close`), `.ds-dialog__content` holds a large icon and the `.ds-dialog__body` message, `.ds-dialog__actions` centres the keys. No backdrop.\n- `.ds-empty`: an empty well with `.ds-empty__title`, `.ds-empty__text` and one secondary key.\n- `.ds-icon`: a 16px inline SVG pixel icon; `.ds-icon--large` is 32px, `.ds-icon--plain` takes the surrounding text colour.\n- `.ds-well`: a sunken field of `--color-surface` for a document or a list. `.ds-rule`: the etched line. `.ds-group` with `.ds-group__title`: a group box, a `<fieldset>` whose `<legend>` is cut into the thin frame. `.ds-props` with `.ds-props__label` and `.ds-props__value`: rows of a property page. `.ds-progress` with `.ds-progress__block` (`--empty` for the rest): a progress bar made of blocks. `.ds-progress--wide` stretches the bar across the page.\n- `.ds-tree`: the tree list: `.ds-tree__item` rows, `.ds-tree__link` (icon and name, not underlined, `is-current` in the selection colours), nested `.ds-tree__list` joined by a dotted guide line. `.ds-tree--check` is the check tree: each row is a `<label>` with a `.ds-form__check` and a right-aligned `.ds-tree__size`.\n- `.ds-heading`: a section title at `--text-h2`. `.ds-split`: two equal columns. `.ds-stack`: a column of blocks `--space-4` apart (`.ds-stack--tight` `--space-2` apart, for radio buttons and check boxes). `.ds-find`: a row of labels, fields and a key.\n\n## Never\n\n- `row-gap <= 10px`: rows of lists, trees and list views touch or sit 1px to 4px apart.\n- `block-gap <= 25px`: blocks of a wizard page are 8px apart; only the dialog stands 12px to 20px clear.\n- `content-width <= 716px`: everything is inside the one 716px window.\n- `font-size >= 10px`: counts and dates are 10px, nothing smaller.\n- `font-size <= 20px`: the folder banner is the largest text; page titles stop at 15px.\n- `font-weight >= 400`: regular, bold and the black weight of headings; nothing light.\n- `font-families <= 3`: the text sans, the black heading face and a monospace.\n- `letter-spacing = 0`: no tracking.\n- `uppercase-text <= 0%`: no text-transform.\n- `border-radius <= 0px`: the desktop had no rounded corner; the radio button is a circle.\n- `box-shadow-blur <= 0px`: the shade of an edge is stepped in hard 1px lines and the shadow of a window is hard; nothing is blurred.\n- `text-shadow = none`: no text shadow anywhere.\n- `gradient-fills <= 8%`: keys, column heads, the link bar and the title bars are shaded; wells, sheets and the window face are flat.\n- `border-width <= 3px`: thin lines are 1px; the one thick stroke is the 3px rule under the title in the information pane.\n- `transition = none`: nothing eases on hover.\n- `animation = none`: no CSS animation.\n\n## Extending\n\nDerive a new component from the nearest one in the specimen and use tokens only. Anything that holds content is a `.ds-window` with a title bar or a `.ds-group` with its caption; anything that lists is a `.ds-table`, a `.ds-tree` or a list in a `.ds-well`; anything pressed or typed into takes `--shadow-control-pressed`, anything pushed takes `--shadow-control`. Clear every edge with `calc(var(--border-width-strong) + ...)` padding, keep text at `--text-base` or `--text-ui`, and never add a radius, a blurred shadow, a gradient outside `--fill-*` tokens, a hover animation or a colour of your own.\n",
    "components.css": "/* Layout tokens (structure part). A setup wizard 716px wide, centred on an\n   800px screen: a picture band with the steps at the left, one page of the\n   wizard at the right, the row of keys along its foot. */\n:root {\n  --size-page: 716px;\n  --size-band: 172px;\n  --size-wizard: 440px;\n  --size-picture: 104px;\n  --size-scroll: 190px;\n  --size-ctl: 16px;\n  --size-glyph: 8px;\n  --size-icon: 32px;\n  --size-icon-small: 16px;\n  --size-check: 13px;\n  --size-label: 112px;\n  --size-field: 210px;\n  --size-dialog: 330px;\n  --size-button: 75px;\n  --size-block: 8px;\n  --space-0: 1px;\n  --space-1: 3px;\n  --space-2: 5px;\n  --space-3: 8px;\n  --space-4: 10px;\n  --space-5: 15px;\n  --space-6: 20px;\n}\n\n/* ---------- shell: the desktop and the wizard window ---------- */\n.ds-page {\n  margin: 0;\n  padding: calc(var(--space-6) * 2) 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 window is a grid: title bar across, the band beside the open page,\n   the brand line across the foot. */\n.ds-page__window {\n  display: grid;\n  grid-template-columns: var(--size-band) minmax(0, 1fr);\n  width: var(--size-page);\n  margin: 0 auto;\n  background: var(--color-canvas);\n  border-radius: var(--radius-page);\n}\n/* One page of the wizard: its blocks, then the keys pushed to the foot. */\n.ds-page__body {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-4);\n  box-sizing: border-box;\n  height: 100%;\n  min-height: var(--size-wizard);\n  padding: var(--space-5) var(--space-4) var(--space-2) var(--space-6);\n}\n.ds-page__keys {\n  margin: auto 0 0;\n  padding: var(--space-2) 0 0;\n}\n.ds-split {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n  gap: var(--space-5);\n  align-items: start;\n}\n.ds-stack {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-4);\n  min-width: 0;\n}\n.ds-stack--tight {\n  gap: var(--space-2);\n}\n.ds-heading {\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\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/* ---------- window: a raised frame with a title bar ---------- */\n.ds-window {\n  box-sizing: border-box;\n  min-width: 0;\n  padding: calc(var(--border-width-strong) + var(--space-1));\n  background: var(--fill-panel);\n  color: var(--color-text);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-panel);\n}\n.ds-window__title {\n  display: flex;\n  align-items: center;\n  gap: var(--space-2);\n  margin: 0;\n  padding: var(--space-1) var(--space-1) var(--space-1) var(--space-2);\n  background: var(--fill-bar);\n  color: var(--color-bar-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n  text-shadow: var(--shadow-text);\n}\n/* A window that does not have the focus. */\n.ds-window__title--inactive {\n  background: var(--fill-inverse);\n  color: var(--color-inverse-text);\n}\n.ds-window__caption {\n  flex: 1;\n  min-width: 0;\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n.ds-window__controls {\n  display: flex;\n  flex: none;\n  gap: var(--space-1);\n}\n/* Caption buttons: small raised squares, the glyph drawn in CSS. */\n.ds-window__ctl {\n  position: relative;\n  box-sizing: border-box;\n  width: var(--size-ctl);\n  height: calc(var(--size-ctl) - var(--space-1));\n  background: var(--fill-button);\n  color: var(--color-button-text);\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control);\n}\n.ds-window__ctl::before,\n.ds-window__ctl::after {\n  content: \"\";\n  position: absolute;\n  box-sizing: border-box;\n}\n.ds-window__ctl--min::before {\n  left: var(--space-2);\n  bottom: calc(var(--space-1) + var(--space-0));\n  width: calc(var(--size-glyph) - var(--space-1));\n  height: var(--space-1);\n  background: currentColor;\n}\n.ds-window__ctl--close::before,\n.ds-window__ctl--close::after {\n  left: calc(50% - var(--size-glyph) / 2 - var(--space-0));\n  top: calc(50% - var(--space-0));\n  width: calc(var(--size-glyph) + var(--space-1));\n  height: var(--space-1);\n  background: currentColor;\n  transform: rotate(45deg);\n}\n.ds-window__ctl--close::after {\n  transform: rotate(-45deg);\n}\n.ds-window__body {\n  padding: var(--space-4);\n}\n/* ---------- small things used everywhere ---------- */\n/* Etched line: a dark rule over a light one. */\n.ds-rule {\n  height: 0;\n  margin: var(--space-4) 0;\n  border: 0;\n  border-top: var(--border-width) var(--border-style) var(--color-border);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border-muted);\n}\n/* Pixel icon: inline SVG painted with the text colour of its place. */\n.ds-icon {\n  display: inline-block;\n  flex: none;\n  width: var(--size-icon-small);\n  height: var(--size-icon-small);\n  vertical-align: text-bottom;\n  color: var(--color-heading-alt);\n}\n.ds-icon svg {\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n.ds-icon--large {\n  width: var(--size-icon);\n  height: var(--size-icon);\n}\n.ds-icon--plain {\n  color: inherit;\n}\n/* Sunken well: the white field that holds lists, trees and documents. */\n.ds-well {\n  box-sizing: border-box;\n  min-width: 0;\n  padding: calc(var(--border-width-strong) + var(--space-3));\n  background: var(--color-surface);\n  color: var(--color-text);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-control-pressed);\n}\n/* Progress bar made of blocks. */\n.ds-progress {\n  display: inline-flex;\n  gap: var(--space-1);\n  box-sizing: border-box;\n  padding: calc(var(--border-width-strong) + var(--space-0));\n  background: var(--color-surface);\n  box-shadow: var(--shadow-control-pressed);\n  vertical-align: middle;\n}\n.ds-progress__block {\n  width: var(--size-block);\n  height: calc(var(--size-block) + var(--space-2));\n  background: var(--fill-accent);\n}\n.ds-progress__block--empty {\n  background: transparent;\n}\n/* Group box: a thin frame with its caption cut into the top edge. */\n.ds-group {\n  box-sizing: border-box;\n  min-width: 0;\n  margin: 0;\n  padding: var(--space-2) var(--space-4) var(--space-4);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n}\n.ds-group__title {\n  padding: 0 var(--space-2);\n  color: var(--color-heading-alt);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n}\n/* Property rows: a label column and a value column. */\n.ds-props {\n  display: grid;\n  grid-template-columns: max-content minmax(0, 1fr);\n  column-gap: var(--space-5);\n  row-gap: var(--space-2);\n  align-items: center;\n  margin: 0;\n}\n.ds-props__label {\n  color: var(--color-text-muted);\n}\n.ds-props__value {\n  margin: 0;\n}\n/* Tree list: nested rows joined by dotted guide lines. */\n.ds-tree {\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-tree__list {\n  margin: 0 0 0 calc(var(--size-icon-small) / 2);\n  padding: 0 0 0 var(--space-4);\n  list-style: none;\n  border-left: var(--border-width) dotted var(--color-border);\n}\n.ds-tree__item {\n  padding: var(--space-0) 0;\n}\n.ds-tree__link {\n  display: inline-flex;\n  align-items: center;\n  gap: var(--space-2);\n  padding: 0 var(--space-1);\n  color: var(--color-text);\n  text-decoration: none;\n}\n.ds-tree__link:hover,\n.ds-tree__link.is-hover {\n  color: var(--color-link-hover);\n}\n.ds-tree__link.is-current {\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n}\n.ds-tree__link.is-current .ds-icon {\n  color: inherit;\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  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/* ---------- 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-5) 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-4);\n}\n.ds-prose ul,\n.ds-prose ol {\n  margin: 0 0 var(--space-4);\n  padding: 0 0 0 calc(var(--space-6) + var(--space-4));\n}\n.ds-prose li {\n  padding: 0 0 var(--space-1);\n}\n.ds-prose strong {\n  font-weight: var(--weight-bold);\n}\n.ds-prose code {\n  padding: 0 var(--space-1);\n  background: var(--color-surface-alt);\n  font-family: var(--font-mono);\n  font-size: var(--text-base);\n}\n.ds-prose__lead {\n  font-size: var(--text-large);\n}\n/* ---------- buttons ---------- */\n.ds-buttons {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-3);\n}\n/* The primary button is the default button of a dialog: the same raised key\n   as every other, inside one more dark line. */\n.ds-button {\n  display: inline-block;\n  box-sizing: border-box;\n  min-width: var(--size-button);\n  margin: 0;\n  padding: var(--space-2) var(--space-5);\n  background: var(--fill-button);\n  color: var(--color-button-text);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-ui);\n  line-height: var(--line-heading);\n  text-align: center;\n  text-transform: var(--ui-transform);\n  text-decoration: none;\n  text-shadow: var(--shadow-text);\n  white-space: nowrap;\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  box-shadow: var(--shadow-control-pressed);\n}\n.ds-button:focus-visible,\n.ds-button.is-focus {\n  outline: var(--focus-ring);\n  outline-offset: calc(var(--space-2) * -1);\n}\n.ds-button--secondary,\n.ds-button--secondary:hover,\n.ds-button--secondary.is-hover {\n  background: var(--fill-button-secondary);\n  background-clip: padding-box;\n  color: var(--color-button-secondary-text);\n  border-color: transparent;\n}\n.ds-button--large {\n  padding: var(--space-3) var(--space-6);\n  font-size: var(--text-large);\n}\n/* Destructive action: the same key, the label in the bold danger colour. */\n.ds-button--danger,\n.ds-button--danger:hover,\n.ds-button--danger.is-hover {\n  background: var(--fill-button);\n  background-clip: padding-box;\n  color: var(--color-danger);\n  border-color: transparent;\n  font-weight: var(--weight-bold);\n}\n.ds-button:disabled,\n.ds-button.is-disabled {\n  background: var(--color-disabled);\n  background-clip: padding-box;\n  color: var(--color-disabled-text);\n  border-color: transparent;\n}\n/* ---------- form ---------- */\n.ds-form {\n  display: grid;\n  grid-template-columns: var(--size-label) minmax(0, 1fr);\n  column-gap: var(--space-4);\n  row-gap: var(--space-3);\n  align-items: baseline;\n  margin: 0;\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n.ds-form__label {\n  color: var(--color-text);\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  max-width: 100%;\n  margin: 0;\n  padding: calc(var(--border-width-strong) + var(--space-1)) calc(var(--border-width-strong) + var(--space-2));\n  background: var(--fill-input);\n  color: var(--color-input-text);\n  border: 0;\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control-pressed);\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  transition: var(--transition);\n}\n.ds-form__input {\n  width: var(--size-field);\n}\n.ds-form__textarea {\n  display: block;\n  width: 100%;\n  resize: none;\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  outline-offset: calc(var(--border-width-strong) * -1 - var(--space-0));\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__option {\n  display: inline-flex;\n  align-items: center;\n  margin: 0 var(--space-5) 0 0;\n}\n.ds-form__check {\n  appearance: none;\n  box-sizing: border-box;\n  flex: none;\n  width: var(--size-check);\n  height: var(--size-check);\n  margin: 0 var(--space-3) 0 0;\n  padding: calc(var(--border-width-strong) + var(--space-0));\n  background: var(--fill-input);\n  border: 0;\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control-pressed);\n  outline: var(--border-width) var(--border-style) var(--color-input-border);\n  outline-offset: calc(var(--border-width) * -1);\n}\n/* The tick is a block of the field's text colour inside the field's fill. */\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: var(--color-input-text);\n}\n.ds-form__hint {\n  display: block;\n  padding: var(--space-1) 0 0;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n}\n.ds-form__error {\n  display: block;\n  padding: var(--space-1) 0 0;\n  color: var(--color-danger);\n  font-weight: var(--weight-bold);\n}\n.ds-form__actions {\n  grid-column: 1 / -1;\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: flex-end;\n  gap: var(--space-3);\n  padding: var(--space-2) 0 0;\n}\n/* ---------- table: a list view in a sunken well, raised column heads ---------- */\n.ds-table {\n  box-sizing: border-box;\n  width: 100%;\n  padding: var(--border-width-strong);\n  border-collapse: separate;\n  border-spacing: 0;\n  background: var(--color-surface);\n  color: var(--color-text);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-control-pressed);\n  font-family: var(--font-body);\n  font-size: var(--text-base);\n}\n.ds-table__head {\n  padding: calc(var(--border-width-strong) + var(--space-0)) var(--space-3);\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\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  text-align: left;\n  white-space: nowrap;\n}\n.ds-table__head--num {\n  text-align: right;\n}\n.ds-table__cell {\n  padding: var(--space-1) var(--space-3);\n  border-bottom: var(--border-width) var(--border-style) var(--color-surface-alt);\n  text-align: left;\n  vertical-align: baseline;\n}\n.ds-table__cell--num {\n  text-align: right;\n  white-space: nowrap;\n}\n.ds-table__row--alt .ds-table__cell {\n  background: var(--color-surface-alt);\n}\n/* The selected row of a list view. */\n.ds-table__row.is-selected .ds-table__cell {\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n}\n.ds-table__row.is-selected .ds-link,\n.ds-table__row.is-selected .ds-icon {\n  color: inherit;\n}\n.ds-table__caption {\n  caption-side: bottom;\n  padding: var(--space-2) 0 0;\n  color: var(--color-text);\n  font-size: var(--text-small);\n  text-align: left;\n}\n/* ---------- stats: sunken read-outs ---------- */\n.ds-stat {\n  display: flex;\n  gap: var(--space-2);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-stat__item {\n  flex: 1;\n  min-width: 0;\n  padding: calc(var(--border-width-strong) + var(--space-1)) calc(var(--border-width-strong) + var(--space-3));\n  background: var(--color-surface);\n  box-shadow: var(--shadow-control-pressed);\n}\n.ds-stat__value {\n  display: block;\n  color: var(--color-heading-alt);\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}\n.ds-stat__label {\n  display: block;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n}\n/* ---------- tabs: a property sheet ---------- */\n.ds-tabs {\n  display: flex;\n  align-items: flex-end;\n  margin: 0;\n  padding: 0 var(--space-1);\n  list-style: none;\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  text-transform: var(--ui-transform);\n}\n.ds-tabs__item {\n  display: flex;\n  align-items: flex-end;\n}\n/* A tab is a raised key whose lower edge slides under the sheet. */\n.ds-tabs__tab {\n  display: block;\n  margin: 0 0 calc(var(--border-width-strong) * -1);\n  padding: var(--space-2) var(--space-4) calc(var(--space-2) + var(--border-width-strong));\n  background: var(--fill-panel);\n  color: var(--color-text);\n  box-shadow: var(--shadow-control);\n  line-height: var(--line-heading);\n  text-decoration: none;\n  white-space: nowrap;\n}\n.ds-tabs__tab:hover,\n.ds-tabs__tab.is-hover {\n  color: var(--color-link-hover);\n}\n/* The current tab is taller, stands in front of the sheet and loses its own\n   lower edge, so it reads as one piece with the sheet. */\n.ds-tabs__tab.is-current {\n  position: relative;\n  z-index: 1;\n  margin: 0 0 calc(var(--border-width-strong) * -2);\n  padding: var(--space-3) var(--space-4) calc(var(--space-2) + var(--border-width-strong) * 2);\n  color: var(--color-text);\n  font-weight: var(--weight-bold);\n  clip-path: inset(0 0 var(--border-width-strong) 0);\n}\n.ds-sheet {\n  box-sizing: border-box;\n  min-width: 0;\n  padding: calc(var(--border-width-strong) + var(--space-5));\n  background: var(--fill-panel);\n  color: var(--color-text);\n  box-shadow: var(--shadow-control);\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: var(--border-width) var(--border-style) var(--color-border-strong);\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  white-space: nowrap;\n}\n.ds-badge--count {\n  padding: 0;\n  background: transparent;\n  color: var(--color-text-muted);\n  border-color: transparent;\n  font-weight: var(--weight-body);\n}\n/* Status labels: the status colour as text and frame on the well colour. */\n.ds-badge--success,\n.ds-badge--warning,\n.ds-badge--danger {\n  background: var(--color-surface);\n  border-color: currentColor;\n}\n.ds-badge--success {\n  color: var(--color-success);\n}\n.ds-badge--warning {\n  color: var(--color-warning);\n}\n.ds-badge--danger {\n  color: var(--color-danger);\n}\n.ds-badges {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-2);\n}\n/* ---------- notice: the pale tip box with a dark line round it ---------- */\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-4);\n  background: var(--color-notice);\n  color: var(--color-notice-text);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-panel);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\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/* ---------- pagination: a row of small keys ---------- */\n.ds-pagination {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-1);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n.ds-pagination__label {\n  padding: 0 var(--space-3) 0 0;\n}\n.ds-pagination__link {\n  display: block;\n  padding: calc(var(--border-width-strong) + var(--space-0)) calc(var(--border-width-strong) + var(--space-3));\n  background: var(--fill-button);\n  color: var(--color-button-text);\n  box-shadow: var(--shadow-control);\n  line-height: var(--line-heading);\n  text-decoration: none;\n  cursor: default;\n}\n.ds-pagination__link:hover,\n.ds-pagination__link.is-hover {\n  color: var(--color-button-hover-text);\n}\n.ds-pagination__link.is-current {\n  box-shadow: var(--shadow-control-pressed);\n  font-weight: var(--weight-bold);\n}\n.ds-pagination__link.is-disabled {\n  color: var(--color-disabled-text);\n}\n/* ---------- dialog: a small window with an icon, a message and keys ---------- */\n.ds-dialog {\n  position: static;\n  box-sizing: border-box;\n  width: var(--size-dialog);\n  max-width: 100%;\n  margin: var(--space-5) auto var(--space-2);\n  padding: calc(var(--border-width-strong) + var(--space-1));\n  background: var(--fill-panel);\n  color: var(--color-text);\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  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: var(--space-2);\n  margin: 0;\n  padding: var(--space-1) var(--space-1) var(--space-1) var(--space-2);\n  background: var(--fill-bar);\n  color: var(--color-bar-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n  text-shadow: var(--shadow-text);\n}\n.ds-dialog__content {\n  display: flex;\n  align-items: flex-start;\n  gap: var(--space-5);\n  padding: var(--space-5);\n}\n.ds-dialog__body {\n  flex: 1;\n  min-width: 0;\n  margin: 0;\n}\n.ds-dialog__actions {\n  display: flex;\n  justify-content: center;\n  gap: var(--space-3);\n  padding: 0 var(--space-5) var(--space-5);\n}\n/* ---------- empty state: a message in an empty well ---------- */\n.ds-empty {\n  padding: var(--space-6) var(--space-5);\n  background: var(--color-surface);\n  color: var(--color-text);\n  box-shadow: var(--shadow-control-pressed);\n  text-align: center;\n  font-size: var(--text-base);\n}\n.ds-empty__title {\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}\n.ds-empty__text {\n  margin: 0 0 var(--space-4);\n  color: var(--color-text-muted);\n}\n\n/* ---------- nav: the title bar and the picture band with the steps ---------- */\n.ds-nav {\n  display: contents;\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n.ds-nav__title {\n  grid-column: 1 / -1;\n}\n.ds-view {\n  grid-column: 2;\n  grid-row: 2;\n  min-width: 0;\n}\n.ds-brand {\n  display: inline-flex;\n  align-items: center;\n  gap: var(--space-2);\n  color: inherit;\n  text-decoration: none;\n}\n/* The mark is the window's icon: a small key dressed like the default button. */\n.ds-brand__mark {\n  display: flex;\n  flex: none;\n  box-sizing: border-box;\n  width: calc(var(--size-ctl) + var(--space-2));\n  height: calc(var(--size-ctl) + var(--space-2));\n  padding: var(--border-width-strong);\n  background: var(--fill-button);\n  color: var(--color-button-text);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control);\n}\n.ds-brand__mark svg {\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n.ds-brand__name {\n  font-family: var(--font-heading);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-heading);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n}\n/* The band: a sunken column in the bar colour, as tall as the open page. */\n.ds-nav__band {\n  grid-column: 1;\n  grid-row: 2;\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-5);\n  box-sizing: border-box;\n  margin: var(--space-1) 0 0;\n  padding: calc(var(--border-width-strong) + var(--space-3));\n  background: var(--color-bar);\n  color: var(--color-bar-text);\n  box-shadow: var(--shadow-control-pressed);\n  line-height: var(--line-heading);\n}\n/* The picture: a large drawing over a row of small ones, on the title bar's fill. */\n.ds-nav__picture {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  gap: var(--space-3);\n  box-sizing: border-box;\n  min-height: var(--size-picture);\n  padding: var(--space-4);\n  background: var(--fill-inverse);\n  color: var(--color-inverse-text);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n}\n.ds-nav__picture .ds-icon {\n  color: inherit;\n}\n.ds-nav__picture .ds-icon--large {\n  width: calc(var(--size-icon) * 2);\n  height: calc(var(--size-icon) * 2);\n}\n.ds-nav__disks {\n  display: flex;\n  gap: var(--space-3);\n}\n.ds-nav__links {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-1);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-nav__link {\n  display: flex;\n  gap: var(--space-3);\n  padding: calc(var(--border-width-strong) + var(--space-0)) calc(var(--border-width-strong) + var(--space-2));\n  color: inherit;\n  text-decoration: none;\n  text-transform: var(--ui-transform);\n}\n.ds-nav__link:hover,\n.ds-nav__link.is-hover {\n  text-decoration: underline;\n}\n/* The step that is showing is a raised key. */\n.ds-nav__link.is-current,\n.ds-page:not(:has(.ds-view:target)) .ds-nav__link[href=\"#home\"],\n.ds-page:has(#home:target) .ds-nav__link[href=\"#home\"],\n.ds-page:has(#licence:target) .ds-nav__link[href=\"#licence\"],\n.ds-page:has(#components:target) .ds-nav__link[href=\"#components\"],\n.ds-page:has(#register:target) .ds-nav__link[href=\"#register\"],\n.ds-page:has(#download:target) .ds-nav__link[href=\"#download\"],\n.ds-page:has(#finish:target) .ds-nav__link[href=\"#finish\"] {\n  background: var(--fill-button);\n  color: var(--color-button-text);\n  box-shadow: var(--shadow-control);\n  font-weight: var(--weight-bold);\n  text-decoration: none;\n}\n\n/* ---------- sidebar: a block of links at the foot of the band ---------- */\n.ds-sidebar {\n  margin: auto 0 0;\n  padding: var(--space-4) calc(var(--border-width-strong) + var(--space-2)) var(--space-2);\n  border-top: var(--border-width) var(--border-style) var(--color-border-muted);\n}\n.ds-sidebar__title {\n  margin: 0 0 var(--space-2);\n  color: inherit;\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n}\n.ds-sidebar__list {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-2);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-sidebar__link {\n  color: inherit;\n  text-decoration: var(--link-decoration);\n}\n\n/* ---------- hero: the welcome page of the wizard, written on the window face ---------- */\n.ds-hero {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-3);\n}\n.ds-hero__title {\n  margin: 0;\n  color: var(--color-heading-alt);\n  font-family: var(--font-heading);\n  font-size: var(--text-display);\n  font-weight: var(--weight-display);\n  line-height: var(--line-display);\n  letter-spacing: var(--display-tracking);\n  text-transform: var(--heading-transform);\n}\n.ds-hero__lead {\n  margin: 0;\n  font-size: var(--text-large);\n}\n.ds-hero__text {\n  margin: 0;\n}\n.ds-hero__action {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-4);\n  padding: var(--space-1) 0 0;\n}\n\n/* ---------- breadcrumb: the path, one small line above the page header ---------- */\n.ds-breadcrumb {\n  display: flex;\n  flex-wrap: wrap;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  color: var(--color-text-muted);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  line-height: var(--line-heading);\n}\n.ds-breadcrumb__item + .ds-breadcrumb__item::before {\n  content: \"\\003E\";\n  padding: 0 var(--space-2);\n}\n.ds-breadcrumb__item.is-current {\n  color: var(--color-text);\n  font-weight: var(--weight-bold);\n}\n\n/* ---------- page header: a white band with the title, one line and the page's icon ---------- */\n.ds-page-header {\n  display: flex;\n  align-items: center;\n  gap: var(--space-5);\n  padding: calc(var(--border-width-strong) + var(--space-3)) calc(var(--border-width-strong) + var(--space-4));\n  background: var(--color-surface);\n  color: var(--color-text);\n  box-shadow: var(--shadow-control-pressed);\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}\n.ds-page-header__action {\n  display: flex;\n  flex: none;\n  gap: var(--space-3);\n}\n\n/* ---------- grid: four picture cards in a row ---------- */\n.ds-grid {\n  display: grid;\n  grid-template-columns: repeat(4, minmax(0, 1fr));\n  gap: var(--space-3);\n}\n.ds-grid__cell {\n  display: flex;\n  flex-direction: column;\n  min-width: 0;\n  padding: var(--border-width-strong);\n  background: var(--color-surface);\n  color: var(--color-text);\n  border-radius: var(--radius-page);\n  box-shadow: var(--shadow-control-pressed);\n  text-decoration: none;\n}\n/* The picture of a card: a large icon on one of the four block colours. */\n.ds-grid__icon {\n  display: flex;\n  justify-content: center;\n  padding: var(--space-4) 0;\n  background: var(--color-fill-1);\n  color: var(--color-text);\n}\n.ds-grid__cell--2 .ds-grid__icon {\n  background: var(--color-fill-2);\n}\n.ds-grid__cell--3 .ds-grid__icon {\n  background: var(--color-fill-3);\n}\n.ds-grid__cell--4 .ds-grid__icon {\n  background: var(--color-fill-4);\n}\n.ds-grid__title {\n  padding: var(--space-2) var(--space-3) 0;\n  color: var(--color-link);\n  font-weight: var(--weight-bold);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-grid__text {\n  padding: 0 var(--space-3) var(--space-2);\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n}\n\n/* ---------- list: rows with a small icon, a line of text and a size ---------- */\n.ds-list {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-list__item {\n  display: flex;\n  align-items: baseline;\n  gap: var(--space-3);\n  padding: var(--space-1) 0;\n}\n.ds-list__item .ds-icon {\n  align-self: center;\n}\n.ds-list__text {\n  flex: 1;\n  min-width: 0;\n}\n.ds-list__meta {\n  flex: none;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  white-space: nowrap;\n}\n\n/* ---------- panel: a group box ---------- */\n.ds-panel {\n  box-sizing: border-box;\n  min-width: 0;\n  margin: 0;\n  padding: var(--space-2) var(--space-4) var(--space-4);\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-panel__title {\n  padding: 0 var(--space-2);\n  color: var(--color-heading-alt);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n}\n.ds-panel__body {\n  margin: 0;\n}\n\n/* ---------- radio button: the round sunken field ---------- */\n.ds-form__radio {\n  appearance: none;\n  box-sizing: border-box;\n  flex: none;\n  width: var(--size-check);\n  height: var(--size-check);\n  margin: 0 var(--space-3) 0 0;\n  padding: calc(var(--border-width-strong) + var(--space-0));\n  background: var(--fill-input);\n  border: 0;\n  border-radius: 50%;\n  box-shadow: var(--shadow-control-pressed);\n  outline: var(--border-width) var(--border-style) var(--color-input-border);\n  outline-offset: calc(var(--border-width) * -1);\n}\n.ds-form__radio:checked::before,\n.ds-form__radio.is-checked::before {\n  content: \"\";\n  display: block;\n  width: 100%;\n  height: 100%;\n  background: var(--color-input-text);\n  border-radius: 50%;\n}\n\n/* ---------- scrolling well: a document beside its scroll bar ---------- */\n.ds-scroll {\n  display: flex;\n  box-sizing: border-box;\n  padding: var(--border-width-strong);\n  background: var(--color-surface);\n  color: var(--color-text);\n  box-shadow: var(--shadow-control-pressed);\n}\n.ds-scroll__view {\n  flex: 1;\n  box-sizing: border-box;\n  min-width: 0;\n  height: var(--size-scroll);\n  padding: var(--space-3) var(--space-4);\n  overflow: hidden;\n}\n.ds-scroll__bar {\n  display: flex;\n  flex: none;\n  flex-direction: column;\n  width: var(--size-ctl);\n  background: var(--color-surface-alt);\n}\n.ds-scroll__key,\n.ds-scroll__thumb {\n  box-sizing: border-box;\n  height: var(--size-ctl);\n  background: var(--fill-button);\n  color: var(--color-button-text);\n  box-shadow: var(--shadow-control);\n}\n.ds-scroll__key .ds-icon {\n  display: block;\n  width: 100%;\n  height: 100%;\n  color: inherit;\n}\n.ds-scroll__thumb {\n  height: calc(var(--size-ctl) * 3);\n}\n.ds-scroll__track {\n  flex: 1;\n}\n\n/* ---------- check tree: a tree whose rows carry a check box and a size ---------- */\n.ds-tree--check .ds-tree__link {\n  display: flex;\n}\n.ds-tree__link.is-current .ds-tree__size {\n  color: inherit;\n}\n.ds-tree__size {\n  margin: 0 0 0 auto;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  white-space: nowrap;\n}\n\n/* ---------- progress across the page ---------- */\n.ds-progress--wide {\n  display: flex;\n}\n.ds-progress--wide .ds-progress__block {\n  flex: 1;\n}\n\n/* ---------- search row ---------- */\n.ds-find {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-3);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n.ds-find__fill {\n  flex: 1;\n}\n\n/* ---------- footer: the brand line, an etched rule and small links ---------- */\n.ds-footer {\n  grid-column: 1 / -1;\n  display: flex;\n  align-items: center;\n  gap: var(--space-4);\n  padding: var(--space-3) var(--space-2) var(--space-1);\n  color: var(--color-text-muted);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n}\n.ds-footer__legal {\n  flex: none;\n  margin: 0;\n}\n.ds-footer__rule {\n  flex: 1;\n  height: 0;\n  border-top: var(--border-width) var(--border-style) var(--color-border);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border-muted);\n}\n.ds-footer__links {\n  display: flex;\n  flex: none;\n  gap: var(--space-4);\n  margin: 0;\n  padding: 0;\n  list-style: 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>chronoskin Atlas Setup: desktop grey setup wizard, 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__window ds-window\">\n\n  <header class=\"ds-nav\" data-component=\"nav\">\n    <div class=\"ds-window__title ds-nav__title\">\n      <a class=\"ds-brand\" data-component=\"brand\" href=\"#home\">\n        <span class=\"ds-brand__mark\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><rect x=\"4\" y=\"3\" width=\"16\" height=\"2\"/><rect x=\"6\" y=\"5\" width=\"12\" height=\"2\"/><rect x=\"8\" y=\"7\" width=\"8\" height=\"2\"/><rect x=\"10\" y=\"9\" width=\"4\" height=\"2\"/><rect x=\"11\" y=\"11\" width=\"2\" height=\"2\"/><rect x=\"10\" y=\"13\" width=\"4\" height=\"2\"/><rect x=\"8\" y=\"15\" width=\"8\" height=\"2\"/><rect x=\"6\" y=\"17\" width=\"12\" height=\"2\"/><rect x=\"4\" y=\"19\" width=\"16\" height=\"2\"/></svg></span>\n        <span class=\"ds-brand__name\">chronoskin</span>\n      </a>\n      <span class=\"ds-window__caption\">Atlas 98 Setup</span>\n      <span class=\"ds-window__controls\" aria-hidden=\"true\">\n        <span class=\"ds-window__ctl ds-window__ctl--min\"></span>\n        <span class=\"ds-window__ctl ds-window__ctl--close\"></span>\n      </span>\n    </div>\n    <div class=\"ds-nav__band\">\n      <div class=\"ds-nav__picture\" aria-hidden=\"true\">\n        <span class=\"ds-icon ds-icon--large ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1z M8 2.2a5.8 5.8 0 0 1 2 .4L9 5H6L5 3.2A5.8 5.8 0 0 1 8 2.2z M2.3 7l2.2-.6L7 8l-1 3 1.5 2.7A5.8 5.8 0 0 1 2.3 7z M13.7 7.5a5.8 5.8 0 0 1-3 5.5L10 10l1.2-2.5z\"/></svg></span>\n        <span class=\"ds-nav__disks\"><span class=\"ds-icon ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M2 2h10l2 2v10H2z M4 3v4h7V3z M9 4h1v2H9z M4 9v4h8V9z M5 10h6v1H5z\"/></svg></span><span class=\"ds-icon ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M2 2h10l2 2v10H2z M4 3v4h7V3z M9 4h1v2H9z M4 9v4h8V9z M5 10h6v1H5z\"/></svg></span><span class=\"ds-icon ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M2 2h10l2 2v10H2z M4 3v4h7V3z M9 4h1v2H9z M4 9v4h8V9z M5 10h6v1H5z\"/></svg></span><span class=\"ds-icon ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1z M8 6a2 2 0 1 1 0 4a2 2 0 0 1 0-4z\"/></svg></span></span>\n      </div>\n      <ol class=\"ds-nav__links\">\n        <li><a class=\"ds-nav__link\" href=\"#home\"><span>1.</span>Welcome</a></li>\n        <li><a class=\"ds-nav__link\" href=\"#licence\"><span>2.</span>Licence</a></li>\n        <li><a class=\"ds-nav__link\" href=\"#components\"><span>3.</span>Components</a></li>\n        <li><a class=\"ds-nav__link\" href=\"#register\"><span>4.</span>Registration</a></li>\n        <li><a class=\"ds-nav__link\" href=\"#download\"><span>5.</span>Download</a></li>\n        <li><a class=\"ds-nav__link\" href=\"#finish\"><span>6.</span>Finish</a></li>\n      </ol>\n      <aside class=\"ds-sidebar\" data-component=\"sidebar\">\n        <h2 class=\"ds-sidebar__title\">Before you begin</h2>\n        <ul class=\"ds-sidebar__list\">\n          <li><a class=\"ds-sidebar__link\" href=\"#licence\">Read Me First</a></li>\n          <li><a class=\"ds-sidebar__link\" href=\"#components\">What you will need</a></li>\n          <li><a class=\"ds-sidebar__link\" href=\"#download\">Mirror sites</a></li>\n          <li><a class=\"ds-sidebar__link\" href=\"#register\">Order the CD by post</a></li>\n        </ul>\n      </aside>\n    </div>\n  </header>\n\n  <section class=\"ds-view ds-view--home\" id=\"home\">\n    <div class=\"ds-page__body\">\n\n      <section class=\"ds-hero\" data-component=\"hero\">\n        <h1 class=\"ds-hero__title\">Welcome to the chronoskin Atlas 98 Setup Wizard</h1>\n        <p class=\"ds-hero__lead\">This wizard fetches the atlas over your telephone line and installs it on your computer.</p>\n        <p class=\"ds-hero__text\">It is a good idea to close your other programs before you go on. You can stop at any step and pick up later: parts already fetched are kept.</p>\n        <div class=\"ds-hero__action\">\n          <a class=\"ds-button ds-button--large\" href=\"#licence\">Download Now</a>\n          <span>5.2 MB, or <a class=\"ds-link\" href=\"#register\">order the CD by post</a>.</span>\n        </div>\n      </section>\n\n      <ul class=\"ds-stat\" data-component=\"stats\">\n        <li class=\"ds-stat__item\"><span class=\"ds-stat__value\">5.2 MB</span> <span class=\"ds-stat__label\">typical download</span></li>\n        <li class=\"ds-stat__item\"><span class=\"ds-stat__value\">26 min</span> <span class=\"ds-stat__label\">at 28.8 kbps</span></li>\n        <li class=\"ds-stat__item\"><span class=\"ds-stat__value\">14 MB</span> <span class=\"ds-stat__label\">of disk space</span></li>\n        <li class=\"ds-stat__item\"><span class=\"ds-stat__value\">4</span> <span class=\"ds-stat__label\">floppy disks, if you prefer</span></li>\n      </ul>\n\n      <h2 class=\"ds-heading\">What is in the box</h2>\n      <div class=\"ds-grid\" data-component=\"grid\">\n        <a class=\"ds-grid__cell\" href=\"#components\"><span class=\"ds-grid__icon\"><span class=\"ds-icon ds-icon--large ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M1 3l4-1 6 2 4-1v10l-4 1-6-2-4 1z M5 3.2v8.6l6 2V5.2z\"/></svg></span></span><span class=\"ds-grid__title\">Maps</span><span class=\"ds-grid__text\">192 countries in six sets, each with relief and roads</span></a>\n        <a class=\"ds-grid__cell ds-grid__cell--2\" href=\"#components\"><span class=\"ds-grid__icon\"><span class=\"ds-icon ds-icon--large ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M6 1a5 5 0 1 0 0 10a5 5 0 0 0 0-10z M6 3a3 3 0 1 1 0 6a3 3 0 0 1 0-6z M9.6 8.2l5 5-1.4 1.4-5-5z\"/></svg></span></span><span class=\"ds-grid__title\">Gazetteer</span><span class=\"ds-grid__text\">84,000 place names, found as you type</span></a>\n        <a class=\"ds-grid__cell ds-grid__cell--3\" href=\"#components\"><span class=\"ds-grid__icon\"><span class=\"ds-icon ds-icon--large ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M3 1h1v14H3z M5 2h8l-2 3 2 3H5z\"/></svg></span></span><span class=\"ds-grid__title\">Flags and Facts</span><span class=\"ds-grid__text\">A page of figures for every country</span></a>\n        <a class=\"ds-grid__cell ds-grid__cell--4\" href=\"#components\"><span class=\"ds-grid__icon\"><span class=\"ds-icon ds-icon--large ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M4 1h8v4H4z M1 6h14v6h-3v3H4v-3H1z M5 10v4h6v-4z M12 7h1v1h-1z\"/></svg></span></span><span class=\"ds-grid__title\">Print Shop</span><span class=\"ds-grid__text\">Wall maps on up to nine sheets of paper</span></a>\n      </div>\n\n      <div class=\"ds-page__keys\">\n        <hr class=\"ds-rule\">\n        <div class=\"ds-buttons\">\n          <span class=\"ds-find__fill\"></span>\n          <button class=\"ds-button ds-button--secondary\" type=\"button\" disabled>&lt; Back</button>\n          <a class=\"ds-button\" href=\"#licence\">Next &gt;</a>\n          <a class=\"ds-button ds-button--secondary\" href=\"#download\">Cancel</a>\n        </div>\n      </div>\n    </div>\n  </section>\n\n  <section class=\"ds-view\" id=\"licence\">\n    <div class=\"ds-page__body\">\n      <ol class=\"ds-breadcrumb\" data-component=\"breadcrumb\">\n        <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#home\">Atlas 98 Setup</a></li>\n        <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#licence\">Step 2 of 6</a></li>\n        <li class=\"ds-breadcrumb__item is-current\">Licence Agreement</li>\n      </ol>\n      <header class=\"ds-page-header\" data-component=\"page-header\">\n        <div class=\"ds-page-header__text\">\n          <h1 class=\"ds-page-header__title\">Licence Agreement</h1>\n          <p class=\"ds-page-header__lead\">Please read the whole text. Use the scroll bar to see the rest.</p>\n        </div>\n        <div class=\"ds-page-header__action\">\n          <a class=\"ds-button ds-button--secondary\" href=\"#licence\">Print...</a>\n        </div>\n        <span class=\"ds-icon ds-icon--large\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M3 1h7l3 3v11H3z M4 2v12h8V5H9V2z M5 7h6v1H5z M5 9h6v1H5z M5 11h4v1H5z\"/></svg></span>\n      </header>\n\n      <div class=\"ds-scroll\">\n        <article class=\"ds-scroll__view ds-prose\" data-component=\"typography\">\n          <h1>chronoskin Atlas 98</h1>\n          <p class=\"ds-prose__lead\">Licence for one person on one computer.</p>\n          <p>This is an agreement between you and <strong>chronoskin</strong>. By choosing \"I accept\" below you agree to it. If you do not agree, choose Cancel and nothing is installed.</p>\n          <h2>1. What you may do</h2>\n          <ul>\n            <li>Install the atlas on one computer and make one spare copy.</li>\n            <li>Print maps for your own use, at home or in a classroom.</li>\n          </ul>\n          <h3>2. What you may not do</h3>\n          <p>You may not sell printed maps or rename the file <code>atlas98.exe</code> to pass it on as your own work.</p>\n          <p class=\"ds-links\" data-component=\"links\">\n            See also <a class=\"ds-link\" href=\"#register\">the school licence</a>,\n            <a class=\"ds-link is-visited\" href=\"#home\">the page you came from</a>,\n            <a class=\"ds-link is-hover\" href=\"#licence\">a link under the pointer</a>,\n            <a class=\"ds-link is-active\" href=\"#licence\">a link as you click it</a> and\n            <a class=\"ds-link ds-link--quiet\" href=\"#finish\">where to send questions</a>.\n          </p>\n        </article>\n        <div class=\"ds-scroll__bar\" aria-hidden=\"true\">\n          <span class=\"ds-scroll__key\"><span class=\"ds-icon ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M8 3l5 5h-3v5H6V8H3z\"/></svg></span></span>\n          <span class=\"ds-scroll__thumb\"></span>\n          <span class=\"ds-scroll__track\"></span>\n          <span class=\"ds-scroll__key\"><span class=\"ds-icon ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M8 13L3 8h3V3h4v5h3z\"/></svg></span></span>\n        </div>\n      </div>\n\n      <div class=\"ds-stack ds-stack--tight\">\n        <label class=\"ds-form__option\"><input class=\"ds-form__radio\" type=\"radio\" name=\"accept\" checked>I accept the terms of the licence agreement</label>\n        <label class=\"ds-form__option\"><input class=\"ds-form__radio\" type=\"radio\" name=\"accept\">I do not accept the terms</label>\n      </div>\n\n      <div class=\"ds-page__keys\">\n        <hr class=\"ds-rule\">\n        <div class=\"ds-buttons\">\n          <span class=\"ds-find__fill\"></span>\n          <a class=\"ds-button ds-button--secondary\" href=\"#home\">&lt; Back</a>\n          <a class=\"ds-button\" href=\"#components\">Next &gt;</a>\n          <a class=\"ds-button ds-button--secondary\" href=\"#download\">Cancel</a>\n        </div>\n      </div>\n    </div>\n  </section>\n\n  <section class=\"ds-view\" id=\"components\">\n    <div class=\"ds-page__body\">\n      <ol class=\"ds-breadcrumb\">\n        <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#home\">Atlas 98 Setup</a></li>\n        <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#components\">Step 3 of 6</a></li>\n        <li class=\"ds-breadcrumb__item is-current\">Choose Components</li>\n      </ol>\n      <header class=\"ds-page-header\">\n        <div class=\"ds-page-header__text\">\n          <h1 class=\"ds-page-header__title\">Choose Components</h1>\n          <p class=\"ds-page-header__lead\">Tick the parts you want. Parts you leave out can be added later.</p>\n        </div>\n        <span class=\"ds-icon ds-icon--large\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M2 4h12v10H2z M3 5v8h10V5z M6 4h4v4H6z M1 2h14v2H1z\"/></svg></span>\n      </header>\n\n      <div>\n        <ul class=\"ds-tabs\" data-component=\"tabs\">\n          <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#components\">Typical</a></li>\n          <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#components\">Compact</a></li>\n          <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab is-current\" href=\"#components\">Custom</a></li>\n        </ul>\n        <div class=\"ds-sheet\">\n          <div class=\"ds-split\">\n            <div class=\"ds-well\">\n              <ul class=\"ds-tree ds-tree--check\">\n                <li class=\"ds-tree__item\"><label class=\"ds-tree__link\"><input class=\"ds-form__check\" type=\"checkbox\" checked><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M1 2h14v12H1z M2 5v8h12V5z M3 6h5v3H3z M9 6h4v1H9z M9 8h4v1H9z M3 10h10v2H3z\"/></svg></span>Atlas program <span class=\"ds-tree__size\">1.9 MB</span></label></li>\n                <li class=\"ds-tree__item\"><label class=\"ds-tree__link\"><input class=\"ds-form__check\" type=\"checkbox\" checked><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M1 3l4-1 6 2 4-1v10l-4 1-6-2-4 1z M5 3.2v8.6l6 2V5.2z\"/></svg></span>Maps <span class=\"ds-tree__size\">2.6 MB</span></label>\n                  <ul class=\"ds-tree__list\">\n                    <li class=\"ds-tree__item\"><label class=\"ds-tree__link is-current\"><input class=\"ds-form__check\" type=\"checkbox\" checked>Europe <span class=\"ds-tree__size\">0.9 MB</span></label></li>\n                    <li class=\"ds-tree__item\"><label class=\"ds-tree__link\"><input class=\"ds-form__check\" type=\"checkbox\" checked>Africa <span class=\"ds-tree__size\">0.8 MB</span></label></li>\n                    <li class=\"ds-tree__item\"><label class=\"ds-tree__link\"><input class=\"ds-form__check\" type=\"checkbox\" checked>The Americas <span class=\"ds-tree__size\">0.9 MB</span></label></li>\n                    <li class=\"ds-tree__item\"><label class=\"ds-tree__link\"><input class=\"ds-form__check\" type=\"checkbox\">Asia <span class=\"ds-tree__size\">1.1 MB</span></label></li>\n                    <li class=\"ds-tree__item\"><label class=\"ds-tree__link\"><input class=\"ds-form__check\" type=\"checkbox\">Oceania <span class=\"ds-tree__size\">0.5 MB</span></label></li>\n                  </ul>\n                </li>\n                <li class=\"ds-tree__item\"><label class=\"ds-tree__link\"><input class=\"ds-form__check\" type=\"checkbox\" checked><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M6 1a5 5 0 1 0 0 10a5 5 0 0 0 0-10z M6 3a3 3 0 1 1 0 6a3 3 0 0 1 0-6z M9.6 8.2l5 5-1.4 1.4-5-5z\"/></svg></span>Gazetteer <span class=\"ds-tree__size\">0.7 MB</span></label></li>\n                <li class=\"ds-tree__item\"><label class=\"ds-tree__link\"><input class=\"ds-form__check\" type=\"checkbox\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M3 1h1v14H3z M5 2h8l-2 3 2 3H5z\"/></svg></span>Flags and Facts <span class=\"ds-tree__size\">0.6 MB</span></label></li>\n                <li class=\"ds-tree__item\"><label class=\"ds-tree__link\"><input class=\"ds-form__check\" type=\"checkbox\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M4 1h8v4H4z M1 6h14v6h-3v3H4v-3H1z M5 10v4h6v-4z M12 7h1v1h-1z\"/></svg></span>Print Shop <span class=\"ds-tree__size\">0.4 MB</span></label></li>\n              </ul>\n            </div>\n            <div class=\"ds-stack\">\n              <fieldset class=\"ds-panel\" data-component=\"panel\">\n                <legend class=\"ds-panel__title\">Description</legend>\n                <p class=\"ds-panel__body\">Europe: 44 countries with relief, rivers, railways and roads, and street plans of 30 cities.</p>\n              </fieldset>\n              <dl class=\"ds-props\">\n                <dt class=\"ds-props__label\">Space needed:</dt>\n                <dd class=\"ds-props__value\">5.2 MB to fetch, 14 MB on disk</dd>\n                <dt class=\"ds-props__label\">Install to:</dt>\n                <dd class=\"ds-props__value\"><code>C:\\ATLAS98</code></dd>\n                <dt class=\"ds-props__label\">Drive C:</dt>\n                <dd class=\"ds-props__value\">212 MB free of 540 MB</dd>\n                <dt class=\"ds-props__label\">In use:</dt>\n                <dd class=\"ds-props__value\"><span class=\"ds-progress\"><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span></span></dd>\n              </dl>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <table class=\"ds-table\" data-component=\"table\">\n        <thead>\n          <tr>\n            <th class=\"ds-table__head\" scope=\"col\">Drive</th>\n            <th class=\"ds-table__head\" scope=\"col\">Label</th>\n            <th class=\"ds-table__head ds-table__head--num\" scope=\"col\">Free</th>\n            <th class=\"ds-table__head ds-table__head--num\" scope=\"col\">Needed</th>\n            <th class=\"ds-table__head ds-table__head--num\" scope=\"col\">Left over</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr class=\"ds-table__row is-selected\">\n            <td class=\"ds-table__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M2 2h10l2 2v10H2z M4 3v4h7V3z M9 4h1v2H9z M4 9v4h8V9z M5 10h6v1H5z\"/></svg></span> C:</td>\n            <td class=\"ds-table__cell\">Hard disk</td>\n            <td class=\"ds-table__cell ds-table__cell--num\">212.0 MB</td>\n            <td class=\"ds-table__cell ds-table__cell--num\">14.0 MB</td>\n            <td class=\"ds-table__cell ds-table__cell--num\">198.0 MB</td>\n          </tr>\n          <tr class=\"ds-table__row\">\n            <td class=\"ds-table__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M2 2h10l2 2v10H2z M4 3v4h7V3z M9 4h1v2H9z M4 9v4h8V9z M5 10h6v1H5z\"/></svg></span> D:</td>\n            <td class=\"ds-table__cell\">Second disk</td>\n            <td class=\"ds-table__cell ds-table__cell--num\">61.4 MB</td>\n            <td class=\"ds-table__cell ds-table__cell--num\">0.0 MB</td>\n            <td class=\"ds-table__cell ds-table__cell--num\">61.4 MB</td>\n          </tr>\n          <tr class=\"ds-table__row\">\n            <td class=\"ds-table__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1z M8 6a2 2 0 1 1 0 4a2 2 0 0 1 0-4z\"/></svg></span> E:</td>\n            <td class=\"ds-table__cell\">CD-ROM, read only</td>\n            <td class=\"ds-table__cell ds-table__cell--num\">0.0 MB</td>\n            <td class=\"ds-table__cell ds-table__cell--num\">0.0 MB</td>\n            <td class=\"ds-table__cell ds-table__cell--num\">0.0 MB</td>\n          </tr>\n          <tr class=\"ds-table__row\">\n            <td class=\"ds-table__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M2 2h12v9H2z M3 3v7h10V3z M5 12h6v1h2v1H3v-1h2z\"/></svg></span> F:</td>\n            <td class=\"ds-table__cell\">Network, school server</td>\n            <td class=\"ds-table__cell ds-table__cell--num\">1,240.5 MB</td>\n            <td class=\"ds-table__cell ds-table__cell--num\">0.0 MB</td>\n            <td class=\"ds-table__cell ds-table__cell--num\">1,240.5 MB</td>\n          </tr>\n        </tbody>\n      </table>\n\n      <div class=\"ds-page__keys\">\n        <hr class=\"ds-rule\">\n        <div class=\"ds-buttons\" data-component=\"buttons\">\n          <button class=\"ds-button ds-button--danger\" type=\"button\">Clear All</button>\n          <span class=\"ds-find__fill\"></span>\n          <a class=\"ds-button ds-button--secondary\" href=\"#licence\">&lt; Back</a>\n          <a class=\"ds-button\" href=\"#register\">Next &gt;</a>\n          <button class=\"ds-button\" type=\"button\" disabled>Finish</button>\n          <a class=\"ds-button ds-button--secondary\" href=\"#download\">Cancel</a>\n        </div>\n      </div>\n    </div>\n  </section>\n\n  <section class=\"ds-view\" id=\"register\">\n    <div class=\"ds-page__body\">\n      <ol class=\"ds-breadcrumb\">\n        <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#home\">Atlas 98 Setup</a></li>\n        <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#register\">Step 4 of 6</a></li>\n        <li class=\"ds-breadcrumb__item is-current\">Registration</li>\n      </ol>\n      <header class=\"ds-page-header\">\n        <div class=\"ds-page-header__text\">\n          <h1 class=\"ds-page-header__title\">Registration</h1>\n          <p class=\"ds-page-header__lead\">Your name is shown on the opening screen and printed on your maps.</p>\n        </div>\n        <span class=\"ds-icon ds-icon--large\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 2a3 3 0 1 0 0 6a3 3 0 0 0 0-6z M3 14c0-3 2-5 5-5s5 2 5 5z\"/></svg></span>\n      </header>\n\n      <div class=\"ds-notices\" data-component=\"notice\">\n        <p class=\"ds-notice\"><span class=\"ds-notice__label\">Note:</span> the serial number is on the card in the box, or in the letter that confirmed your order.</p>\n        <p class=\"ds-notice ds-notice--error\"><span class=\"ds-notice__label\">Cannot continue.</span> The serial number is one group short. Type all four groups and choose Next again.</p>\n      </div>\n\n      <form class=\"ds-form\" data-component=\"form\" action=\"#register\">\n        <label class=\"ds-form__label\" for=\"r-name\">Your name:</label>\n        <div class=\"ds-form__field\">\n          <input class=\"ds-form__input\" id=\"r-name\" type=\"text\" value=\"Lena Quartey\">\n        </div>\n        <label class=\"ds-form__label\" for=\"r-org\">School or company:</label>\n        <div class=\"ds-form__field\">\n          <input class=\"ds-form__input\" id=\"r-org\" type=\"text\" value=\"Harbour Road School\">\n          <span class=\"ds-form__hint\">leave empty for a copy used at home</span>\n        </div>\n        <label class=\"ds-form__label\" for=\"r-serial\">Serial number:</label>\n        <div class=\"ds-form__field\">\n          <input class=\"ds-form__input\" id=\"r-serial\" type=\"text\" value=\"AT98-4471-0932\">\n          <span class=\"ds-form__error\">A serial number has four groups, for example AT98-0000-0000-0000.</span>\n        </div>\n        <label class=\"ds-form__label\" for=\"r-country\">Country:</label>\n        <div class=\"ds-form__field\">\n          <select class=\"ds-form__select\" id=\"r-country\">\n            <option>Ireland</option>\n            <option>Norway</option>\n            <option>Ghana</option>\n          </select>\n        </div>\n        <span class=\"ds-form__label\">Send me:</span>\n        <div class=\"ds-form__field\">\n          <label class=\"ds-form__option\"><input class=\"ds-form__check\" type=\"checkbox\" checked>News of map updates</label>\n          <label class=\"ds-form__option\"><input class=\"ds-form__check\" type=\"checkbox\">The printed catalogue</label>\n        </div>\n        <label class=\"ds-form__label\" for=\"r-note\">Note to us:</label>\n        <div class=\"ds-form__field\">\n          <textarea class=\"ds-form__textarea\" id=\"r-note\" rows=\"3\">We would like the school licence for 12 computers.</textarea>\n        </div>\n      </form>\n\n      <div class=\"ds-page__keys\">\n        <hr class=\"ds-rule\">\n        <div class=\"ds-buttons\">\n          <span class=\"ds-find__fill\"></span>\n          <a class=\"ds-button ds-button--secondary\" href=\"#components\">&lt; Back</a>\n          <a class=\"ds-button\" href=\"#download\">Next &gt;</a>\n          <a class=\"ds-button ds-button--secondary\" href=\"#download\">Cancel</a>\n        </div>\n      </div>\n    </div>\n  </section>\n\n  <section class=\"ds-view\" id=\"download\">\n    <div class=\"ds-page__body\">\n      <ol class=\"ds-breadcrumb\">\n        <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#home\">Atlas 98 Setup</a></li>\n        <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#download\">Step 5 of 6</a></li>\n        <li class=\"ds-breadcrumb__item is-current\">Download</li>\n      </ol>\n      <header class=\"ds-page-header\">\n        <div class=\"ds-page-header__text\">\n          <h1 class=\"ds-page-header__title\">Fetching the Files</h1>\n          <p class=\"ds-page-header__lead\">3 of 5 files fetched. About 9 minutes remain at 28.8 kbps.</p>\n        </div>\n        <div class=\"ds-page-header__action\">\n          <a class=\"ds-button ds-button--secondary\" href=\"#download\">Pause</a>\n        </div>\n        <span class=\"ds-icon ds-icon--large\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M2 6h12v6H2z M3 7v4h10V7z M4 8h1v1H4z M6 8h1v1H6z M8 8h1v1H8z M11 8h1v2h-1z M5 3h1v3H5z\"/></svg></span>\n      </header>\n\n      <div class=\"ds-stack ds-stack--tight\">\n        <span>Fetching <strong>maps-am.cab</strong> from the mirror \"north\":</span>\n        <span class=\"ds-progress ds-progress--wide\"><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span></span>\n      </div>\n\n      <fieldset class=\"ds-group\">\n        <legend class=\"ds-group__title\">Files</legend>\n        <ul class=\"ds-list\" data-component=\"list\">\n          <li class=\"ds-list__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M2 8l2-2 3 3 5-6 2 2-7 8z\"/></svg></span><span class=\"ds-list__text\">atlas98.cab, the atlas program</span> <span class=\"ds-list__meta\">1.9 MB, fetched</span></li>\n          <li class=\"ds-list__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M2 8l2-2 3 3 5-6 2 2-7 8z\"/></svg></span><span class=\"ds-list__text\">maps-eu.cab, maps of Europe</span> <span class=\"ds-list__meta\">0.9 MB, fetched</span></li>\n          <li class=\"ds-list__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M2 8l2-2 3 3 5-6 2 2-7 8z\"/></svg></span><span class=\"ds-list__text\">maps-af.cab, maps of Africa</span> <span class=\"ds-list__meta\">0.8 MB, fetched</span></li>\n          <li class=\"ds-list__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M8 13L3 8h3V3h4v5h3z\"/></svg></span><span class=\"ds-list__text\"><strong>maps-am.cab, maps of the Americas</strong></span> <span class=\"ds-list__meta\">0.9 MB, 40%</span></li>\n          <li class=\"ds-list__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1z M8 3a5 5 0 1 1 0 10A5 5 0 0 1 8 3z M7.3 4.5h1.4v3.2l2.3 1.4-.7 1.2-3-1.8z\"/></svg></span><span class=\"ds-list__text\">gazette.cab, the gazetteer</span> <span class=\"ds-list__meta\">0.7 MB, waiting</span></li>\n        </ul>\n      </fieldset>\n\n      <table class=\"ds-table\">\n        <thead>\n          <tr>\n            <th class=\"ds-table__head\" scope=\"col\">Mirror site</th>\n            <th class=\"ds-table__head\" scope=\"col\">Where</th>\n            <th class=\"ds-table__head ds-table__head--num\" scope=\"col\">Speed</th>\n            <th class=\"ds-table__head\" scope=\"col\">State</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr class=\"ds-table__row is-selected\">\n            <td class=\"ds-table__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1z M8 2.2a5.8 5.8 0 0 1 2 .4L9 5H6L5 3.2A5.8 5.8 0 0 1 8 2.2z M2.3 7l2.2-.6L7 8l-1 3 1.5 2.7A5.8 5.8 0 0 1 2.3 7z M13.7 7.5a5.8 5.8 0 0 1-3 5.5L10 10l1.2-2.5z\"/></svg></span> north</td>\n            <td class=\"ds-table__cell\">Dublin</td>\n            <td class=\"ds-table__cell ds-table__cell--num\">3.1 KB/s</td>\n            <td class=\"ds-table__cell\">In use</td>\n          </tr>\n          <tr class=\"ds-table__row\">\n            <td class=\"ds-table__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1z M8 2.2a5.8 5.8 0 0 1 2 .4L9 5H6L5 3.2A5.8 5.8 0 0 1 8 2.2z M2.3 7l2.2-.6L7 8l-1 3 1.5 2.7A5.8 5.8 0 0 1 2.3 7z M13.7 7.5a5.8 5.8 0 0 1-3 5.5L10 10l1.2-2.5z\"/></svg></span> <a class=\"ds-link\" href=\"#download\">fjord</a></td>\n            <td class=\"ds-table__cell\">Bergen</td>\n            <td class=\"ds-table__cell ds-table__cell--num\">2.8 KB/s</td>\n            <td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--success\">Ready</span></td>\n          </tr>\n          <tr class=\"ds-table__row\">\n            <td class=\"ds-table__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1z M8 2.2a5.8 5.8 0 0 1 2 .4L9 5H6L5 3.2A5.8 5.8 0 0 1 8 2.2z M2.3 7l2.2-.6L7 8l-1 3 1.5 2.7A5.8 5.8 0 0 1 2.3 7z M13.7 7.5a5.8 5.8 0 0 1-3 5.5L10 10l1.2-2.5z\"/></svg></span> <a class=\"ds-link\" href=\"#download\">coast</a></td>\n            <td class=\"ds-table__cell\">Accra</td>\n            <td class=\"ds-table__cell ds-table__cell--num\">1.2 KB/s</td>\n            <td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--warning\">Busy</span></td>\n          </tr>\n          <tr class=\"ds-table__row\">\n            <td class=\"ds-table__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1z M8 2.2a5.8 5.8 0 0 1 2 .4L9 5H6L5 3.2A5.8 5.8 0 0 1 8 2.2z M2.3 7l2.2-.6L7 8l-1 3 1.5 2.7A5.8 5.8 0 0 1 2.3 7z M13.7 7.5a5.8 5.8 0 0 1-3 5.5L10 10l1.2-2.5z\"/></svg></span> <a class=\"ds-link is-visited\" href=\"#download\">prairie</a></td>\n            <td class=\"ds-table__cell\">Winnipeg</td>\n            <td class=\"ds-table__cell ds-table__cell--num\">0.0 KB/s</td>\n            <td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--danger\">No answer</span></td>\n          </tr>\n        </tbody>\n      </table>\n      <div class=\"ds-find\">\n        <ol class=\"ds-pagination\" data-component=\"pagination\">\n          <li class=\"ds-pagination__label\">Mirrors 1 to 4 of 11:</li>\n          <li><a class=\"ds-pagination__link is-disabled\" href=\"#download\">&lt; Previous</a></li>\n          <li><a class=\"ds-pagination__link is-current\" href=\"#download\">1</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#download\">2</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#download\">3</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#download\">Next &gt;</a></li>\n        </ol>\n        <span class=\"ds-find__fill\"></span>\n        <span class=\"ds-badges\" data-component=\"badge\"><span class=\"ds-badge\">In use</span> <span class=\"ds-badge ds-badge--success\">Ready</span> <span class=\"ds-badge ds-badge--warning\">Busy</span> <span class=\"ds-badge ds-badge--danger\">No answer</span></span>\n      </div>\n\n      <section class=\"ds-dialog\" data-component=\"dialog\" role=\"dialog\" aria-labelledby=\"d-title\">\n        <h2 class=\"ds-dialog__title\" id=\"d-title\">Exit Setup <span class=\"ds-window__ctl ds-window__ctl--close\" aria-hidden=\"true\"></span></h2>\n        <div class=\"ds-dialog__content\">\n          <span class=\"ds-icon ds-icon--large\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1z M7 10h2v2H7z M5.4 6a2.6 2.6 0 1 1 4.2 2c-.5.5-.6.7-.6 1.4H7c0-1.2.3-1.7 1-2.3a.8.8 0 1 0-1.3-.6z\"/></svg></span>\n          <p class=\"ds-dialog__body\">Setup is not complete. If you exit now the atlas is not installed, but the 3 files already fetched are kept. Exit Setup?</p>\n        </div>\n        <div class=\"ds-dialog__actions\">\n          <a class=\"ds-button\" href=\"#download\">Resume</a>\n          <a class=\"ds-button ds-button--danger\" href=\"#home\">Exit Setup</a>\n        </div>\n      </section>\n\n      <div class=\"ds-page__keys\">\n        <hr class=\"ds-rule\">\n        <div class=\"ds-buttons\">\n          <span class=\"ds-find__fill\"></span>\n          <a class=\"ds-button ds-button--secondary\" href=\"#register\">&lt; Back</a>\n          <a class=\"ds-button\" href=\"#finish\">Next &gt;</a>\n          <a class=\"ds-button ds-button--secondary\" href=\"#download\">Cancel</a>\n        </div>\n      </div>\n    </div>\n  </section>\n\n  <section class=\"ds-view\" id=\"finish\">\n    <div class=\"ds-page__body\">\n      <ol class=\"ds-breadcrumb\">\n        <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#home\">Atlas 98 Setup</a></li>\n        <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#finish\">Step 6 of 6</a></li>\n        <li class=\"ds-breadcrumb__item is-current\">Finish</li>\n      </ol>\n      <header class=\"ds-page-header\">\n        <div class=\"ds-page-header__text\">\n          <h1 class=\"ds-page-header__title\">Setup Has Finished</h1>\n          <p class=\"ds-page-header__lead\">chronoskin Atlas 98 is installed in C:\\ATLAS98 and is on the Programs menu.</p>\n        </div>\n        <span class=\"ds-icon ds-icon--large\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M2 8l2-2 3 3 5-6 2 2-7 8z\"/></svg></span>\n      </header>\n\n      <p class=\"ds-notice\"><span class=\"ds-notice__label\">Thank you.</span> Your registration was sent. A card with the school licence follows by post.</p>\n\n      <div class=\"ds-split\">\n        <fieldset class=\"ds-group\">\n          <legend class=\"ds-group__title\">What was installed</legend>\n          <ul class=\"ds-list\">\n            <li class=\"ds-list__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M1 2h14v12H1z M2 5v8h12V5z M3 6h5v3H3z M9 6h4v1H9z M9 8h4v1H9z M3 10h10v2H3z\"/></svg></span><span class=\"ds-list__text\">Atlas program</span> <span class=\"ds-badge ds-badge--success\">Installed</span></li>\n            <li class=\"ds-list__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M1 3l4-1 6 2 4-1v10l-4 1-6-2-4 1z M5 3.2v8.6l6 2V5.2z\"/></svg></span><span class=\"ds-list__text\">Maps, 3 of 5 sets</span> <span class=\"ds-badge ds-badge--success\">Installed</span></li>\n            <li class=\"ds-list__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M6 1a5 5 0 1 0 0 10a5 5 0 0 0 0-10z M6 3a3 3 0 1 1 0 6a3 3 0 0 1 0-6z M9.6 8.2l5 5-1.4 1.4-5-5z\"/></svg></span><span class=\"ds-list__text\">Gazetteer</span> <span class=\"ds-badge ds-badge--success\">Installed</span></li>\n            <li class=\"ds-list__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M3 1h1v14H3z M5 2h8l-2 3 2 3H5z\"/></svg></span><span class=\"ds-list__text\">Flags and Facts</span> <span class=\"ds-badge ds-badge--warning\">Left out</span></li>\n          </ul>\n        </fieldset>\n        <section class=\"ds-stack ds-stack--tight\">\n          <h2 class=\"ds-heading\">Files that could not be copied</h2>\n          <div class=\"ds-empty\" data-component=\"empty\">\n            <h3 class=\"ds-empty__title\">Nothing was skipped.</h3>\n            <p class=\"ds-empty__text\">Every file was copied and checked. The list of what went where is in the log.</p>\n            <a class=\"ds-button ds-button--secondary\" href=\"#finish\">View the Log</a>\n          </div>\n        </section>\n      </div>\n\n      <div class=\"ds-stack ds-stack--tight\">\n        <label class=\"ds-form__option\"><input class=\"ds-form__check\" type=\"checkbox\" checked>Start chronoskin Atlas 98 now</label>\n        <label class=\"ds-form__option\"><input class=\"ds-form__check\" type=\"checkbox\">Show me the Read Me file</label>\n      </div>\n\n      <div class=\"ds-page__keys\">\n        <hr class=\"ds-rule\">\n        <div class=\"ds-buttons\">\n          <span class=\"ds-find__fill\"></span>\n          <a class=\"ds-button ds-button--secondary\" href=\"#download\">&lt; Back</a>\n          <a class=\"ds-button\" href=\"#home\">Finish</a>\n          <button class=\"ds-button ds-button--secondary\" type=\"button\" disabled>Cancel</button>\n        </div>\n      </div>\n    </div>\n  </section>\n\n  <footer class=\"ds-footer\" data-component=\"footer\">\n    <p class=\"ds-footer__legal\">chronoskin Setup, 1998</p>\n    <span class=\"ds-footer__rule\"></span>\n    <ul class=\"ds-footer__links\">\n      <li><a class=\"ds-link ds-link--quiet\" href=\"#licence\">Licence</a></li>\n      <li><a class=\"ds-link ds-link--quiet\" href=\"#download\">Mirror sites</a></li>\n      <li><a class=\"ds-link ds-link--quiet\" href=\"#register\">Order the CD</a></li>\n    </ul>\n  </footer>\n\n</div>\n</body>\n</html>\n",
    "style.json": "{\n  \"id\": \"v1.windows-9x.landing.s05.p04.t04.u06.dr\",\n  \"library\": \"2026.10.09-1346\",\n  \"era\": {\n    \"slug\": \"windows-9x\",\n    \"years\": [\n      1995,\n      2001\n    ]\n  },\n  \"archetype\": \"landing\",\n  \"mode\": \"mix\",\n  \"markup\": \"modern\",\n  \"viewport\": {\n    \"width\": 800,\n    \"fluid\": false\n  },\n  \"source\": \"https://chrono.skin/s/v1-w9-5446-dr\",\n  \"short\": \"v1-w9-5446-dr\",\n  \"density\": \"roomy\"\n}\n",
    "tokens.css": "/* @part palette */\n:root {\n  --color-page: #2f3e4e;\n  --color-canvas: #bcc6d0;\n  --color-surface: #ffffff;\n  --color-surface-alt: #e6ebf0;\n  --color-surface-strong: #cdd5dd;\n  --color-bar: #3f5b78;\n  --color-bar-text: #ffffff;\n  --color-bar-alt: #bcc6d0;\n  --color-bar-alt-text: #10181f;\n  --color-inverse: #6f7d8a;\n  --color-inverse-text: #ffffff;\n  --color-text: #10181f;\n  --color-text-muted: #45525e;\n  --color-heading: #1f3347;\n  --color-heading-alt: #2f5078;\n  --color-link: #0a3a8c;\n  --color-link-quiet: #10181f;\n  --color-link-visited: #5a3a7a;\n  --color-link-hover: #0060d0;\n  --color-link-active: #b02020;\n  --color-border: #7b8894;\n  --color-border-strong: #18222c;\n  --color-border-muted: #dfe6ec;\n  --color-accent: #3f5b78;\n  --color-accent-text: #ffffff;\n  --color-accent-alt: #b03a20;\n  --color-fill-1: #dfe8f0;\n  --color-fill-2: #c8dcd8;\n  --color-fill-3: #d8d4e8;\n  --color-fill-4: #f0e8c8;\n  --color-button: #bcc6d0;\n  --color-button-text: #10181f;\n  --color-button-hover-text: #0a3a8c;\n  --color-button-secondary: #cdd5dd;\n  --color-button-secondary-text: #10181f;\n  --color-input: #ffffff;\n  --color-input-text: #10181f;\n  --color-input-border: #7b8894;\n  --color-disabled: #bcc6d0;\n  --color-disabled-text: #7b8894;\n  --color-danger: #9a1c1c;\n  --color-danger-surface: #f6e6e2;\n  --color-success: #1f6a4a;\n  --color-warning: #8a5c00;\n  --color-notice: #f4f0cc;\n  --color-notice-text: #10181f;\n  --color-focus: #18222c;\n  --color-shadow: #18222c;\n  --color-overlay: rgba(16, 24, 31, 0.4);\n}\n\n/* @part type */\n:root {\n  --font-body: \"Lucida Sans Unicode\", \"Lucida Grande\", \"Lucida Sans\", Geneva, sans-serif;\n  --font-heading: \"Arial Black\", \"Arial Bold\", Arial, Helvetica, sans-serif;\n  --font-ui: \"Lucida Sans Unicode\", \"Lucida Grande\", \"Lucida Sans\", Geneva, sans-serif;\n  --font-mono: \"Lucida Console\", \"Courier New\", monospace;\n  --text-base: 11px;\n  --text-small: 10px;\n  --text-ui: 11px;\n  --text-large: 12px;\n  --text-display: 20px;\n  --text-h1: 15px;\n  --text-h2: 12px;\n  --text-h3: 11px;\n  --line-body: 1.45;\n  --line-heading: 1.25;\n  --line-display: 1.15;\n  --weight-body: 400;\n  --weight-bold: 700;\n  --weight-heading: 900;\n  --weight-display: 900;\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: none;\n}\n\n/* @part surface */\n:root {\n  --border-width: 1px;\n  --border-width-strong: 3px;\n  --border-style: solid;\n  --radius-control: 0;\n  --radius-panel: 0;\n  --radius-pill: 0;\n  --radius-page: 0;\n  --shadow-panel: inset 0 0 0 1px var(--color-border), inset 2px 2px color-mix(in srgb, var(--color-border-muted) 25%, white), inset -2px -2px color-mix(in srgb, var(--color-border) 60%, transparent), inset -3px -3px color-mix(in srgb, var(--color-border) 28%, transparent), 2px 2px 0 0 color-mix(in srgb, var(--color-shadow) 45%, transparent);\n  --shadow-control: inset 1px 1px color-mix(in srgb, var(--color-border-muted) 25%, white), inset -1px -1px var(--color-border), inset -2px -2px color-mix(in srgb, var(--color-border) 60%, transparent), inset 2px 2px color-mix(in srgb, var(--color-border-muted) 60%, transparent), inset -3px -3px color-mix(in srgb, var(--color-border) 28%, transparent);\n  --shadow-control-hover: inset 1px 1px color-mix(in srgb, var(--color-border-muted) 25%, white), inset -1px -1px var(--color-border-strong), inset -2px -2px color-mix(in srgb, var(--color-border) 60%, transparent), inset 2px 2px color-mix(in srgb, var(--color-border-muted) 60%, transparent), inset -3px -3px color-mix(in srgb, var(--color-border) 28%, transparent);\n  --shadow-control-pressed: inset 1px 1px var(--color-border), inset -1px -1px color-mix(in srgb, var(--color-border-muted) 25%, white), inset 2px 2px color-mix(in srgb, var(--color-border) 60%, transparent), inset 3px 3px color-mix(in srgb, var(--color-border) 28%, transparent);\n  --shadow-dialog: inset 0 0 0 1px var(--color-border), inset 2px 2px color-mix(in srgb, var(--color-border-muted) 25%, white), inset -2px -2px color-mix(in srgb, var(--color-border) 60%, transparent), inset -3px -3px color-mix(in srgb, var(--color-border) 28%, transparent), 4px 4px 0 0 color-mix(in srgb, var(--color-shadow) 45%, transparent);\n  --shadow-text: none;\n  --fill-page: radial-gradient(color-mix(in srgb, var(--color-page), white 16%) 1px, transparent 1.5px) 0 0 / 8px 8px, var(--color-page);\n  --fill-bar: linear-gradient(90deg, var(--color-bar), color-mix(in srgb, var(--color-bar), var(--color-accent-alt)));\n  --fill-bar-alt: linear-gradient(180deg, color-mix(in srgb, var(--color-bar-alt), white 40%), var(--color-bar-alt) 60%, color-mix(in srgb, var(--color-bar-alt), black 12%));\n  --fill-inverse: var(--color-inverse);\n  --fill-accent: var(--color-accent);\n  --fill-panel: var(--color-canvas);\n  --fill-button: linear-gradient(180deg, color-mix(in srgb, var(--color-button), white 40%), var(--color-button) 60%, color-mix(in srgb, var(--color-button), black 12%));\n  --fill-button-hover: linear-gradient(180deg, color-mix(in srgb, var(--color-button), white 65%), color-mix(in srgb, var(--color-button), white 20%) 60%, var(--color-button));\n  --fill-button-secondary: linear-gradient(180deg, color-mix(in srgb, var(--color-button-secondary), white 40%), var(--color-button-secondary) 60%, color-mix(in srgb, var(--color-button-secondary), black 12%));\n  --fill-input: var(--color-input);\n  --focus-ring: 1px solid var(--color-accent);\n  --transition: none;\n  --backdrop-blur: 0px;\n}\n"
  }
}
