{
  "id": "v1-fa-1112",
  "long_id": "v1.frutiger-aero.landing.s01.p01.t01.u02",
  "name": "Frutiger Aero product page",
  "era": {
    "slug": "frutiger-aero",
    "code": "fa",
    "name": "Frutiger Aero",
    "years": [
      2004,
      2010
    ],
    "description": "The glossy optimism of 2004 to 2010: sky blue and grass green, glass panels with a bright top highlight, bubbles and soft glows, rounded corners, humanist sans type and reflections under everything."
  },
  "archetype": "landing",
  "mode": "mix",
  "viewport": {
    "width": 1024,
    "fluid": false
  },
  "summary": "A fixed-width product page in the glossy, optimistic look that desktop operating systems wore in the second half of the 2000s: a sky-blue page with a pale glow at the top, one segmented glass bar for navigation, and a single rounded sheet that opens with a sky band where a glass window floats over its own reflection above green hills. It was common from about 2004 to 2010 on the pages of operating systems, desktop software, phones and gadgets. Gloss is everywhere a finger would go (bars, buttons, orbs, pills, tabs), panels are white glass with a bright upper edge and a soft shadow, corners are rounded by 4 to 10px, and the text is a small humanist sans in deep blue and grass green.",
  "url": "https://chrono.skin/s/v1-fa-1112",
  "preview_url": "https://chrono.skin/s/v1-fa-1112/specimen.html",
  "files": {
    "STYLE.md": "# Frutiger Aero product page\n\n## Summary\n\nA fixed-width product page in the glossy, optimistic look that desktop operating systems wore in the second half of the 2000s: a sky-blue page with a pale glow at the top, one segmented glass bar for navigation, and a single rounded sheet that opens with a sky band where a glass window floats over its own reflection above green hills. It was common from about 2004 to 2010 on the pages of operating systems, desktop software, phones and gadgets. Gloss is everywhere a finger would go (bars, buttons, orbs, pills, tabs), panels are white glass with a bright upper edge and a soft shadow, corners are rounded by 4 to 10px, and the text is a small humanist sans in deep blue and grass green.\n\n## Layout\n\n- Page width is fixed: `--size-page` = 940px, centred in a 1024px window. It does not stretch and does not reflow for phones.\n- Everything sits in `.ds-page__wrap` (940px): the navigation bar (`--size-nav` 38px tall), then `.ds-page__sheet`, the one glass sheet of the page (88% `--color-canvas`, `--radius-page` corners, `--shadow-panel`), then the footer band. `--space-4` (12px) separates bar and sheet, `--space-5` (20px) sheet and footer.\n- The home page fills the sheet edge to edge with the hero and the stats strip under it; all other content sits in `.ds-page__body` (20px padding at the sides and top, 32px at the bottom): the row of four feature cells, then two columns.\n- Two columns in `.ds-page__columns`: main (600px) and a right column of `--size-sidebar` (280px), `--space-5` (20px) apart. The side column is always on the right and holds `.ds-panel` and `.ds-sidebar` blocks.\n- Spacing scale: `--space-1` 2px (hairline gaps, date tile padding), `--space-2` 4px (between a title and its rule, inside controls), `--space-3` 8px (control padding, gaps between buttons, table cell padding), `--space-4` 12px (panel padding, gaps between grid cells, list row padding), `--space-5` 20px (gutter, sheet padding, gap between stacked blocks), `--space-6` 32px (hero padding, gap between sections; the largest gap).\n- Fixed sizes: controls `--size-control` 26px tall, the hero buttons `--size-control-large` 38px, feature orbs `--size-orb` 56px, the hero window `--size-window` 350px with a reflection of `--size-reflection` 46px, date tiles `--size-date` 44px, form labels `--size-label` 150px, the dialog `--size-dialog` 440px.\n- Inner pages drop the hero and the stats strip. In `.ds-page__body`, top to bottom: `.ds-breadcrumb`, then `.ds-page-header` across the full 900px (title and one line on the left, one or two buttons on the right, a hairline under it), then either a full-width block (the comparison table, the `.ds-steps` row, a boxed `.ds-stats--boxed` row) or the same two columns. `.ds-tabs` sit at the top of the main column directly above the text or list they switch; notices sit above the form they report on; a dialog follows the columns across the full width on its dimmed strip. Further blocks are `.ds-section` blocks 32px apart with a `.ds-section__title`.\n- Views: the specimen is one product site of five screens, each a `.ds-view` inside the sheet, with the bar and the footer written once around them. `home` is the product page (hero, stats, feature cells, news list, requirements panel, popular answers). `tour` explains one feature (tabs, long text, onward links, the tour's contents and a call to action in the side column). `editions` compares the editions (table with status badges, the key to the labels, a panel and a link block). `download` is the order form (steps, notices, the form with its buttons, a summary panel, the cancelling dialog). `help` lists help articles (boxed stats, tabs, list, pagination, topics, an empty state for open questions). Links are plain `href=\"#name\"`; the bar segment of the showing view is pressed in by a `.ds-page:has(#name:target)` rule, the Home segment also when no view is named.\n\n## Typography and colour roles\n\nThis style combines the parts of different styles of one era. Where a note below names a value that differs from `tokens.css`, the tokens are right.\n\n- One family: `--font-body`, `--font-heading` and `--font-ui` are \"Segoe UI\", Tahoma, \"Lucida Grande\", sans-serif: system faces only, the humanist sans of the period's desktops, with Tahoma and Lucida Grande where Segoe UI is not installed. `--font-mono` (Consolas) is for inline code.\n- `--text-base` 12px at `--line-body` 1.45. `--text-small` 11px for meta lines, hints, stat labels, footer. `--text-ui` 12px for buttons and fields; buttons are bold, navigation is regular (`--weight-ui` 400).\n- Headings are regular weight (`--weight-heading`, `--weight-display` 400) and get their weight from size and colour: `--text-display` 28px hero title, `--text-h1` 22px page titles and stat figures, `--text-h2` 17px section, panel and cell titles and the brand name, `--text-h3` 13px (bold) list titles, sidebar titles, navigation, tabs. `--text-large` 15px hero lead and the large button. Nothing is uppercased or tracked.\n- Links are not underlined at rest (`--link-decoration` none) and underline on hover; titles are bold (`.ds-link--title`).\n- `--color-page` #3a8ccb with `--fill-page`: a sky that is darker at the top, with a white and a green glow behind the bar, fading to pale blue below.\n- `--color-bar` #2d6fa3 with `--fill-bar` (two-step glass: a light upper half, a hard break at 50%, a darker lower half) and white `--color-bar-text` under `--shadow-text`: the navigation bar, the dialog frame, the blue orb.\n- `--color-bar-alt` #cfe3f3 with `--fill-bar-alt` (pale glass with the same break): the stats strip, table head, sidebar titles, the hero window's caption, date tile heads.\n- `--color-inverse` #256f95 with `--fill-inverse` (deep at the top, lighter towards the horizon, a soft glow at the upper right): the hero sky and the footer band, white text.\n- `--color-heading` #0b4f86 page, section and cell titles and figures; `--color-heading-alt` #549c00 (grass green) panel titles, prose h2, breadcrumb marks. `--color-text` #333333, `--color-text-muted` #636363.\n- `--color-link` #07519a, `--color-link-quiet` #006699, visited #5a4fa3, hover #2198c4, active #549c00.\n- `--color-button` #36b701 with `--fill-button` (green gel: bright top, a break just under the middle, light again at the foot): the primary button, the brand tile, the arrow button, the current step and page number, the first orb. `--color-button-secondary` #d8e0e8 with `--fill-button-secondary` (silver-blue glass): every other button, tabs at rest, pagination keys.\n- `--color-accent` #6eab26 with `--fill-accent`: pill badges, meter bars, list bullets, the edge of the current tab, the hills of the hero. `--color-accent-alt` #ff9c00: the New marker and the fourth orb.\n- `--color-fill-1` to `--color-fill-4` (sky, mist, leaf, sun): the lower end of each feature cell's fade; never text or borders.\n- Borders are 1px solid: `--color-border` #aaccee for boxes, `--color-border-muted` #d6e3e7 for rules inside a box, `--color-border-strong` #3274a4 for the sheet and the dialog, `--color-input-border` #7fb1d8 for fields.\n- `--color-notice` #fff8c9 for notices; `--color-danger` #c3271b on `--color-danger-surface` #fde9e4 for errors; `--color-success` #3f9a0b and `--color-warning` #f0a000 fill the status badges and signs.\n- Surface: `--radius-control` 4px, `--radius-panel` 7px, `--radius-pill` 10px, `--radius-page` 10px. `--shadow-panel` is a white inner top edge plus a soft 6px drop; `--shadow-control` the same on a button; a hovered button gains a halo in `--color-focus`; `--shadow-dialog` is the deep 24px shadow of a floating window. `--fill-panel` is translucent white glass and `--backdrop-blur` 6px blurs what lies behind it. `--transition` none.\n- One-off shades are made with `color-mix()` over tokens: outlines of glossy fills (the fill's colour mixed with `--color-shadow`), dividers on the bar (`--color-bar-text` with transparent), the sheet (88% `--color-canvas`), bubbles (`--color-inverse-text` with transparent), the hills (`--color-accent` with transparent), gloss on danger, success and warning fills (mixed with `--color-button-text`).\n- The era's conventions for which text sits on which fill, kept by every layout and every token set of the era:\n  - `--color-text`, `--color-text-muted`, `--color-heading`, `--color-heading-alt` and the link colours sit on `--color-canvas`, `--color-surface`, `--color-surface-alt`, `--color-surface-strong`, `--fill-panel` and the four `--color-fill-*` tints. A palette keeps page, canvas, surfaces and fills on one side (all light or all dark) so that these stay readable on every one of them.\n  - `--color-bar-text` only on `--fill-bar`; `--color-bar-alt-text` only on `--fill-bar-alt`; `--color-inverse-text` only on `--fill-inverse`. Links on a bar take the bar's text colour, never `--color-link`.\n  - `--color-button-text` on `--fill-button` and on any fill made from `--color-danger`, `--color-success` or `--color-accent-alt`; it is always the light colour and also supplies the gloss on those fills (mixed in with `color-mix()`).\n  - `--color-accent-text` on `--fill-accent` and on `--color-warning`; `--color-button-secondary-text` on `--fill-button-secondary`; `--color-notice-text` on `--color-notice`; `--color-danger` as text on `--color-danger-surface` and on the surfaces.\n  - Nothing but decoration sits on `--fill-page`: no text is set directly on the page.\n  - `--color-focus` is the glow colour: the focus ring, the halo of the search field and of a hovered button. `--color-inverse-text` draws the bubbles on the sky band. `--color-shadow` tints every shadow and darkens the outline of every glossy fill.\n\n## Components\n\n- `.ds-page`: on `<body>`. Sets the page fill, base font and colour. `.ds-page__wrap` is the 940px column; `.ds-page__sheet` the glass sheet; `.ds-page__body` its padded content area; `.ds-page__columns` holds `.ds-page__main` and `.ds-page__aside`. `.ds-section` with a `.ds-section__title` (17px over a hairline) separates blocks by 32px. `.ds-view` is one screen of the example site (`.ds-view--home` the first).\n- `.ds-nav`: the header. `.ds-nav__bar` is one rounded glass bar: the `.ds-brand`, then `.ds-nav__links` of equal `.ds-nav__item` segments, each a centred `.ds-nav__link` divided from the next by a light hairline (current: `is-current`, pressed in and darker; hover: `is-hover`), then `.ds-nav__search` with a pill-shaped `.ds-nav__input`. Five segments at most.\n- `.ds-brand`: the site's mark and name at the left end of the bar, linking home; one per page. `.ds-brand__mark` is a round tile dressed like the primary button (`--fill-button`, a darker outline, `--shadow-control`) with the mark in `--color-button-text`; `.ds-brand__name` is the name at `--text-h2` in `--color-bar-text`. The name `chronoskin` and its mark are placeholders for the installing project's own name and logo: replace both, keep the tile.\n- `.ds-hero`: the product page's opening band, on the home page only: `--fill-inverse` sky with two green hills along the bottom. `.ds-hero__main` holds `.ds-hero__title` (28px), `.ds-hero__lead` (15px), `.ds-hero__action` (a `.ds-button--large` and a secondary one) and a small `.ds-hero__note`. `.ds-hero__product` on the right holds `.ds-hero__window`, a glass panel with a `.ds-hero__window-bar` caption and `.ds-hero__rows` of `.ds-hero__row` (first: `is-first`; `.ds-hero__row-name`, a `.ds-meter`, `.ds-hero__row-state`), and under it `.ds-hero__reflection`, an empty mirrored copy that fades out. Up to four `.ds-hero__bubble` spans (`--1` to `--4`) float in the sky. `.ds-meter` with `.ds-meter__bar` (`--full`, `--most`, `--some`) is a small progress bar.\n- `.ds-page-header`: the head of an inner page instead of the hero: `.ds-page-header__main` with `.ds-page-header__title` (22px, the page's h1) and one grey `.ds-page-header__text` line; `.ds-page-header__actions` at the right with one or two buttons; a hairline under the whole. One per inner page.\n- `.ds-stat`: one figure; three or four sit in a `.ds-stats` row, a pale glass strip across the sheet directly under the hero, figures divided by hairlines (first: `is-first`). Each is a 22px `.ds-stat__number` with an 11px `.ds-stat__label` beside it. On an inner page the row takes `.ds-stats--boxed` (a rounded border, 20px below).\n- `.ds-grid`: a row of four feature cells 12px apart. `.ds-grid__cell` (`--1` to `--4` choose the tint it fades into) holds a `.ds-orb`, a `.ds-grid__title`, a `.ds-grid__text` and a small `.ds-grid__more` link, all centred. `.ds-orb` is a 56px glossy ball with a line icon: green by default, `.ds-orb--bar` blue, `.ds-orb--accent` grass, `.ds-orb--alt` orange.\n- `.ds-prose`: long text: h1, h2 (green over a hairline), h3 (bold 13px), p, ul, ol, code, strong and links inside it are styled. For tour and help pages.\n- `.ds-link`: any link. States `is-visited`, `is-hover`, `is-active`, `is-focus`. `.ds-link--title` is bold, for titles; `.ds-link--quiet` for minor links. `.ds-links` lays several out in a row.\n- `.ds-button`: the primary action: green gel, white bold 12px, 26px tall, 4px corners; may end with a `.ds-button__icon` arrow. Variants: `.ds-button--secondary` (silver-blue glass, the usual button), `.ds-button--danger` (red gel, only for an action that removes or cancels), `.ds-button--large` (38px, the hero), `.ds-button--arrow` (a round button holding only the arrow icon, placed before the link it belongs to). States `is-hover` (a halo), `is-active`, `is-focus`, `is-disabled`. `.ds-buttons` is a row; `.ds-buttons--bar` a toolbar. One primary button per form, panel or dialog.\n- `.ds-form`: label-left form: `.ds-form__row` with a right-aligned bold `.ds-form__label` and a `.ds-form__field` holding `.ds-form__input` (`--short` for half width), `.ds-form__select` or `.ds-form__textarea`; `.ds-form__hint` and `.ds-form__error` under a control; `is-error`, `is-focus` (a glow), `is-disabled` on the control; `.ds-form__check` with `.ds-form__checkbox`; `.ds-form__actions` for the buttons, under a hairline and aligned with the fields. `.ds-steps` above a form shows a wizard's progress: `.ds-steps__step` with a round `.ds-steps__number`, the current one `is-current`.\n- `.ds-table`: data table in a rounded 1px border with the panel shadow: `.ds-table__head` cells form a pale glass strip; `.ds-table__row` with `is-alt` on alternate rows; `.ds-table__cell` with a hairline above; `is-numeric` right-aligns; `.ds-table__note` is a second grey line in a cell.\n- `.ds-list`: news and article list. Each `.ds-list__item` (first: `is-first`) is an optional `.ds-list__date` tile (`.ds-list__month` on pale glass over `.ds-list__day`) beside `.ds-list__body`: a bold `.ds-list__title`, a `.ds-list__text` line and a grey `.ds-list__meta`. Rows are divided by hairlines, never boxed.\n- `.ds-panel`: a white glass box in the side column (`is-last` on the last block of a column): green `.ds-panel__title` over a hairline, `.ds-panel__body` with `.ds-panel__text`, a `.ds-panel__facts` list of `.ds-panel__fact` rows (name in `.ds-panel__fact-name`, value at the right) and `.ds-panel__actions`.\n- `.ds-tabs`: glass tabs with rounded tops on a hairline: `.ds-tabs__tab`, the current one `is-current` (white, joined to the sheet, a green edge on top). Two to five tabs over the text or list they switch.\n- `.ds-badge`: a small gel pill, green by default. `.ds-badge--count` (flat pale, a number), `.ds-badge--new` (orange). Status variants: `.ds-badge--success`, `.ds-badge--warning`, `.ds-badge--danger`, one per table row. `.ds-badges` lays several out in a row.\n- `.ds-sidebar`: a link block in the side column (`is-last` on the last): `.ds-sidebar__title` on a pale glass strip, `.ds-sidebar__list` of `.ds-sidebar__item` rows behind small round green bullets (current: `is-current`), with an optional right-aligned `.ds-sidebar__count`.\n- `.ds-notice`: a rounded one-line message with a round `.ds-notice__sign`, `.ds-notice__text` and a bold `.ds-notice__title`. Variant `.ds-notice--error`.\n- `.ds-pagination`: a row of small glass keys: `.ds-pagination__link`, `is-current` (green gel), `is-disabled`, `.ds-pagination__gap` for an ellipsis.\n- `.ds-breadcrumb`: 11px trail of `.ds-link` items with green `.ds-breadcrumb__sep` guillemets and a bold `.ds-breadcrumb__current`.\n- `.ds-dialog`: a window: a glass frame in `--fill-bar` holding `.ds-dialog__title` (with a red `.ds-dialog__close`), a white `.ds-dialog__body` with `.ds-dialog__text`, and a `.ds-dialog__actions` strip with the buttons at the right. It casts `--shadow-dialog` and sits on `.ds-dialog__backdrop`, a dimmed rounded strip in the page flow.\n- `.ds-empty`: a pale well with a round glass `.ds-empty__orb` icon, `.ds-empty__title`, `.ds-empty__text` and one button.\n- `.ds-footer`: a rounded sky band under the sheet: `.ds-footer__columns` of four link groups (`.ds-footer__heading`, `.ds-footer__list`, `.ds-footer__link`) and a `.ds-footer__legal` line over a light hairline.\n\n## Never\n\n- `row-gap <= 24px`: list rows are divided by a hairline, not by space.\n- `block-gap <= 32px`: sections are at most 32px apart.\n- `content-width <= 940px`: text stays inside the fixed column.\n- `palette-colours <= 44`: sky blues, one grass green, orange, amber, red, four pale tints and greys.\n- `font-size <= 28px`: the hero title is the largest text.\n- `font-size >= 11px`: nothing is smaller than the meta text.\n- `font-weight <= 700`: bold is the heaviest weight; headings are regular.\n- `font-families <= 2`: one humanist sans, a monospace only for inline code.\n- `line-height <= 1.5`: body text is 12px on about 17px.\n- `underlined-links <= 10%`: links underline on hover only.\n- `letter-spacing = 0px`: no tracking.\n- `uppercase-text = 0%`: nothing is uppercased by CSS.\n- `border-radius <= 16px`: corners are 10, 13 or 16px; only orbs, bullets and pills are rounder.\n- `border-width <= 2px`: hairlines everywhere, 2px only around the dialog.\n- `box-shadow-blur <= 40px`: glows and drops are soft, the dialog's 40px is the deepest.\n- `gradient-fills <= 28%`: gloss belongs to bars, gadget heads, buttons, orbs, pills and tiles; text areas stay plain.\n- `transition = none`: states change at once.\n- `animation = none`: nothing moves.\n\n## Extending\n\nDerive a new component from the nearest one in the specimen and use tokens only. A new bar is `--fill-bar`, a pale strip `--fill-bar-alt`, a sky band `--fill-inverse`; a new box is a `.ds-panel` if it explains and a `.ds-sidebar` if it lists links; anything round and pressable is dressed like `.ds-orb` or `.ds-button--arrow`. Keep to the conventions above for which text token sits on which fill, give glossy fills an outline mixed from their colour and `--color-shadow`, take highlights from the surface tokens instead of drawing new ones, and make any extra shade with `color-mix()` over existing tokens.\n",
    "components.css": ":root {\n  --size-page: 940px;\n  --size-sidebar: 280px;\n  --size-nav: 38px;\n  --size-search: 150px;\n  --size-mark: 24px;\n  --size-control: 26px;\n  --size-control-large: 38px;\n  --size-icon: 16px;\n  --size-orb: 56px;\n  --size-bubble: 34px;\n  --size-window: 350px;\n  --size-reflection: 46px;\n  --size-date: 44px;\n  --size-meter: 8px;\n  --size-glow: 8px;\n  --size-label: 150px;\n  --size-textarea: 76px;\n  --size-dialog: 440px;\n  --space-1: 2px;\n  --space-2: 4px;\n  --space-3: 8px;\n  --space-4: 12px;\n  --space-5: 20px;\n  --space-6: 32px;\n}\n\n/* shell: a sky page, a segmented glass bar, one glass sheet, a sky band to close */\n.ds-page {\n  margin: 0;\n  padding: 0;\n  background: var(--fill-page);\n  color: var(--color-text);\n  font-family: var(--font-body);\n  font-size: var(--text-base);\n  font-weight: var(--weight-body);\n  line-height: var(--line-body);\n}\n.ds-page *,\n.ds-page *::before,\n.ds-page *::after { box-sizing: border-box; }\n.ds-page__wrap {\n  width: var(--size-page);\n  margin: 0 auto;\n  padding: var(--space-4) 0 var(--space-6);\n}\n.ds-page__sheet {\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-border-strong) 70%, transparent);\n  border-radius: var(--radius-page);\n  background: color-mix(in srgb, var(--color-canvas) 88%, transparent);\n  -webkit-backdrop-filter: blur(calc(var(--backdrop-blur) * 2));\n  backdrop-filter: blur(calc(var(--backdrop-blur) * 2));\n  box-shadow: var(--shadow-panel);\n  overflow: hidden;\n}\n.ds-page__body { padding: var(--space-5) var(--space-5) var(--space-6); }\n.ds-page__columns {\n  display: flex;\n  align-items: flex-start;\n  gap: var(--space-5);\n}\n.ds-page__main {\n  flex: 1 1 0;\n  min-width: 0;\n}\n.ds-page__aside {\n  flex: 0 0 var(--size-sidebar);\n  width: var(--size-sidebar);\n}\n.ds-section { margin: var(--space-6) 0 0; }\n.ds-section__title {\n  margin: 0 0 var(--space-4);\n  padding: 0 0 var(--space-2);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border-muted);\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\n/* nav: one rounded glass bar cut into equal segments, the search at its right end */\n.ds-nav { margin: 0 0 var(--space-4); }\n.ds-nav__bar {\n  display: flex;\n  align-items: stretch;\n  height: var(--size-nav);\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-bar) 60%, var(--color-shadow));\n  border-radius: var(--radius-panel);\n  background: var(--fill-bar);\n  box-shadow: var(--shadow-panel);\n  color: var(--color-bar-text);\n  overflow: hidden;\n}\n.ds-nav__bar .ds-brand { padding: 0 var(--space-5) 0 var(--space-4); }\n.ds-nav__links {\n  display: flex;\n  flex: 1 1 0;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-nav__item { display: flex; flex: 1 1 0; }\n.ds-nav__link {\n  display: flex;\n  flex: 1 1 0;\n  align-items: center;\n  justify-content: center;\n  border-left: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-bar-text) 28%, transparent);\n  color: var(--color-bar-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-h3);\n  font-weight: var(--weight-ui);\n  text-decoration: var(--link-decoration-quiet);\n  text-shadow: var(--shadow-text);\n  text-transform: var(--ui-transform);\n}\n.ds-nav__link:hover,\n.ds-nav__link.is-hover { background: color-mix(in srgb, var(--color-bar-text) 16%, transparent); }\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(#tour:target) .ds-nav__link[href=\"#tour\"],\n.ds-page:has(#editions:target) .ds-nav__link[href=\"#editions\"],\n.ds-page:has(#download:target) .ds-nav__link[href=\"#download\"],\n.ds-page:has(#help:target) .ds-nav__link[href=\"#help\"] {\n  background: color-mix(in srgb, var(--color-shadow) 38%, transparent);\n  box-shadow: var(--shadow-control-pressed);\n}\n.ds-nav__search {\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center;\n  margin: 0;\n  padding: 0 var(--space-4);\n  border-left: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-bar-text) 28%, transparent);\n}\n.ds-nav__input {\n  width: var(--size-search);\n  height: calc(var(--size-control) - var(--space-2));\n  margin: 0;\n  padding: 0 var(--space-4);\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-bar) 50%, var(--color-shadow));\n  border-radius: var(--radius-pill);\n  background: var(--fill-input);\n  color: var(--color-input-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n}\n.ds-nav__input::placeholder { color: var(--color-text-muted); opacity: 1; }\n.ds-nav__input:focus,\n.ds-nav__input.is-focus {\n  outline: var(--focus-ring);\n  box-shadow: 0 0 var(--size-glow) color-mix(in srgb, var(--color-focus) 80%, transparent);\n}\n\n/* hero: a sky with hills and bubbles, the claim on the left, a glass window and its reflection on the right */\n.ds-hero {\n  position: relative;\n  display: flex;\n  align-items: center;\n  gap: var(--space-6);\n  padding: var(--space-6) var(--space-6) calc(var(--space-6) + var(--space-5));\n  background: radial-gradient(ellipse 60% 34% at 22% 112%, color-mix(in srgb, var(--color-accent) 92%, transparent) 0, color-mix(in srgb, var(--color-accent) 70%, transparent) 96%, transparent 100%), radial-gradient(ellipse 70% 30% at 82% 116%, color-mix(in srgb, var(--color-accent) 70%, transparent) 0, color-mix(in srgb, var(--color-accent) 45%, transparent) 96%, transparent 100%), var(--fill-inverse);\n  color: var(--color-inverse-text);\n  overflow: hidden;\n}\n.ds-hero__main {\n  position: relative;\n  flex: 1 1 0;\n  min-width: 0;\n}\n.ds-hero__title {\n  margin: 0 0 var(--space-3);\n  color: var(--color-inverse-text);\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-shadow: var(--shadow-text);\n}\n.ds-hero__lead {\n  margin: 0 0 var(--space-5);\n  font-size: var(--text-large);\n  line-height: var(--line-body);\n}\n.ds-hero__action {\n  display: flex;\n  align-items: center;\n  gap: var(--space-4);\n  margin: 0;\n}\n.ds-hero__note {\n  margin: var(--space-4) 0 0;\n  font-size: var(--text-small);\n  opacity: 0.85;\n}\n.ds-hero__bubble {\n  position: absolute;\n  width: var(--size-bubble);\n  height: var(--size-bubble);\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-inverse-text) 55%, transparent);\n  border-radius: 50%;\n  background: radial-gradient(circle at 32% 28%, color-mix(in srgb, var(--color-inverse-text) 85%, transparent) 0, color-mix(in srgb, var(--color-inverse-text) 12%, transparent) 24%, transparent 58%, color-mix(in srgb, var(--color-inverse-text) 32%, transparent) 100%);\n}\n.ds-hero__bubble--1 { top: 3%; left: 57%; }\n.ds-hero__bubble--2 {\n  top: 76%;\n  left: 54%;\n  width: calc(var(--size-bubble) * 0.6);\n  height: calc(var(--size-bubble) * 0.6);\n}\n.ds-hero__bubble--3 {\n  top: 6%;\n  left: 92%;\n  width: calc(var(--size-bubble) * 1.6);\n  height: calc(var(--size-bubble) * 1.6);\n}\n.ds-hero__bubble--4 {\n  top: 4%;\n  left: 1%;\n  width: calc(var(--size-bubble) * 0.45);\n  height: calc(var(--size-bubble) * 0.45);\n}\n.ds-hero__product {\n  position: relative;\n  flex: 0 0 var(--size-window);\n  width: var(--size-window);\n}\n.ds-hero__window {\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-inverse-text) 70%, transparent);\n  border-radius: var(--radius-panel);\n  background: var(--fill-panel);\n  -webkit-backdrop-filter: blur(var(--backdrop-blur));\n  backdrop-filter: blur(var(--backdrop-blur));\n  box-shadow: var(--shadow-dialog);\n  color: var(--color-text);\n  overflow: hidden;\n}\n.ds-hero__window-bar {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  margin: 0;\n  padding: var(--space-3) var(--space-4);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n}\n.ds-hero__rows {\n  margin: 0;\n  padding: var(--space-3) var(--space-4) var(--space-4);\n  list-style: none;\n}\n.ds-hero__row {\n  display: flex;\n  align-items: center;\n  gap: var(--space-3);\n  padding: var(--space-3) 0;\n  border-top: var(--border-width) var(--border-style) var(--color-border-muted);\n}\n.ds-hero__row.is-first { border-top: 0; }\n.ds-hero__row-name { flex: 0 0 34%; }\n.ds-hero__row-state {\n  flex: 0 0 22%;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  text-align: right;\n}\n.ds-meter {\n  display: block;\n  flex: 1 1 0;\n  height: var(--size-meter);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-pill);\n  background: var(--color-surface-strong);\n  overflow: hidden;\n}\n.ds-meter__bar {\n  display: block;\n  height: 100%;\n  background: var(--fill-accent);\n}\n.ds-meter__bar--full { width: 100%; }\n.ds-meter__bar--most { width: 72%; }\n.ds-meter__bar--some { width: 38%; }\n.ds-hero__reflection {\n  display: block;\n  height: var(--size-reflection);\n  margin: var(--space-1) 0 0;\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-inverse-text) 70%, transparent);\n  border-radius: var(--radius-panel);\n  background: var(--fill-panel);\n  opacity: 0.4;\n  transform: scaleY(-1);\n  -webkit-mask-image: linear-gradient(to bottom, transparent 0, currentColor 100%);\n  mask-image: linear-gradient(to bottom, transparent 0, currentColor 100%);\n}\n\n/* page header: head of an inner page on the sheet, action on the right */\n.ds-page-header {\n  display: flex;\n  align-items: flex-end;\n  justify-content: space-between;\n  gap: var(--space-5);\n  margin: 0 0 var(--space-5);\n  padding: 0 0 var(--space-4);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n}\n.ds-page-header__main {\n  flex: 1 1 0;\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__text {\n  margin: var(--space-2) 0 0;\n  color: var(--color-text-muted);\n  font-size: var(--text-h3);\n}\n.ds-page-header__actions {\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center;\n  gap: var(--space-3);\n}\n\n/* stats: a pale glass strip under the hero, figures divided by hairlines */\n.ds-stats {\n  display: flex;\n  margin: 0;\n  padding: 0;\n  border-top: var(--border-width) var(--border-style) var(--color-border);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n  list-style: none;\n}\n.ds-stats--boxed {\n  margin: 0 0 var(--space-5);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n  overflow: hidden;\n}\n.ds-stat {\n  display: flex;\n  flex: 1 1 0;\n  flex-wrap: wrap;\n  align-items: baseline;\n  justify-content: center;\n  gap: 0 var(--space-3);\n  min-width: 0;\n  padding: var(--space-4) var(--space-3);\n  border-left: var(--border-width) var(--border-style) var(--color-border);\n}\n.ds-stat.is-first { border-left: 0; }\n.ds-stat__number {\n  white-space: nowrap;\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 { font-size: var(--text-small); }\n\n/* grid: four feature cells, each under a glossy orb */\n.ds-grid {\n  display: grid;\n  grid-template-columns: repeat(4, 1fr);\n  gap: var(--space-4);\n  margin: 0 0 var(--space-6);\n}\n.ds-grid__cell {\n  padding: var(--space-5) var(--space-4) var(--space-4);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-page);\n  background: linear-gradient(to bottom, var(--color-surface) 0, var(--color-surface-alt) 100%);\n  box-shadow: var(--shadow-panel);\n  text-align: center;\n}\n.ds-grid__cell--1 { background: linear-gradient(to bottom, var(--color-surface) 0, var(--color-fill-1) 100%); }\n.ds-grid__cell--2 { background: linear-gradient(to bottom, var(--color-surface) 0, var(--color-fill-2) 100%); }\n.ds-grid__cell--3 { background: linear-gradient(to bottom, var(--color-surface) 0, var(--color-fill-3) 100%); }\n.ds-grid__cell--4 { background: linear-gradient(to bottom, var(--color-surface) 0, var(--color-fill-4) 100%); }\n.ds-orb {\n  position: relative;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: var(--size-orb);\n  height: var(--size-orb);\n  margin: 0 auto var(--space-4);\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-button) 68%, var(--color-shadow));\n  border-radius: 50%;\n  background: var(--fill-button);\n  box-shadow: var(--shadow-control), 0 var(--space-2) var(--space-3) color-mix(in srgb, var(--color-shadow) 30%, transparent);\n  color: var(--color-button-text);\n}\n.ds-orb::before {\n  content: \"\";\n  position: absolute;\n  top: 4%;\n  left: 14%;\n  width: 72%;\n  height: 46%;\n  border-radius: 50%;\n  background: linear-gradient(to bottom, color-mix(in srgb, var(--color-button-text) 75%, transparent) 0, color-mix(in srgb, var(--color-button-text) 8%, transparent) 100%);\n}\n.ds-orb svg {\n  position: relative;\n  display: block;\n  width: 46%;\n  height: 46%;\n}\n.ds-orb--bar {\n  border-color: color-mix(in srgb, var(--color-bar) 68%, var(--color-shadow));\n  background: var(--fill-bar);\n  color: var(--color-bar-text);\n}\n.ds-orb--accent {\n  border-color: color-mix(in srgb, var(--color-accent) 68%, var(--color-shadow));\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n}\n.ds-orb--alt {\n  border-color: color-mix(in srgb, var(--color-accent-alt) 68%, var(--color-shadow));\n  background: linear-gradient(to bottom, color-mix(in srgb, var(--color-accent-alt), var(--color-button-text) 30%) 0, var(--color-accent-alt) 100%);\n}\n.ds-grid__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-grid__text { margin: 0 0 var(--space-3); }\n.ds-grid__more { margin: 0; font-size: var(--text-small); }\n\n/* tabs: glass tabs on a hairline; the current one joins the sheet under a coloured edge */\n.ds-tabs {\n  display: flex;\n  align-items: flex-end;\n  gap: var(--space-2);\n  margin: 0 0 var(--space-5);\n  padding: 0 var(--space-3);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n  list-style: none;\n}\n.ds-tabs__tab {\n  display: block;\n  margin-bottom: calc(0px - var(--border-width));\n  padding: var(--space-3) var(--space-5);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel) var(--radius-panel) 0 0;\n  background: var(--fill-button-secondary);\n  color: var(--color-button-secondary-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-h3);\n  font-weight: var(--weight-ui);\n  line-height: var(--line-heading);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-tabs__tab:hover,\n.ds-tabs__tab.is-hover { box-shadow: var(--shadow-control-hover); }\n.ds-tabs__tab.is-current {\n  border-top-color: var(--color-accent);\n  border-bottom-color: var(--color-surface);\n  background: var(--color-surface);\n  box-shadow: inset 0 var(--space-1) 0 var(--color-accent);\n  color: var(--color-heading);\n  font-weight: var(--weight-bold);\n}\n\n/* list: news items beside a small glass date tile */\n.ds-list {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-list__item {\n  display: flex;\n  align-items: flex-start;\n  gap: var(--space-4);\n  padding: var(--space-4) 0;\n  border-top: var(--border-width) var(--border-style) var(--color-border-muted);\n}\n.ds-list__item.is-first { padding-top: 0; border-top: 0; }\n.ds-list__date {\n  display: flex;\n  flex: 0 0 var(--size-date);\n  flex-direction: column;\n  align-items: center;\n  width: var(--size-date);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-control);\n  background: var(--color-surface);\n  box-shadow: var(--shadow-control);\n  line-height: var(--line-heading);\n  overflow: hidden;\n}\n.ds-list__month {\n  width: 100%;\n  padding: var(--space-1) 0;\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  text-align: center;\n}\n.ds-list__day {\n  padding: var(--space-1) 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}\n.ds-list__body {\n  flex: 1 1 0;\n  min-width: 0;\n}\n.ds-list__title {\n  margin: 0 0 var(--space-1);\n  font-family: var(--font-heading);\n  font-size: var(--text-h3);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n}\n.ds-list__text { margin: 0 0 var(--space-1); }\n.ds-list__meta {\n  margin: 0;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n}\n\n/* panel: a white glass box, green title over a hairline */\n.ds-panel {\n  margin: 0 0 var(--space-5);\n  padding: var(--space-4) var(--space-4) var(--space-4);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n  background: var(--fill-panel);\n  -webkit-backdrop-filter: blur(var(--backdrop-blur));\n  backdrop-filter: blur(var(--backdrop-blur));\n  box-shadow: var(--shadow-panel);\n}\n.ds-panel.is-last { margin-bottom: 0; }\n.ds-panel__title {\n  margin: 0 0 var(--space-3);\n  padding: 0 0 var(--space-2);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border-muted);\n  color: var(--color-heading-alt);\n  font-family: var(--font-heading);\n  font-size: var(--text-h2);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n}\n.ds-panel__body { margin: 0; }\n.ds-panel__text { margin: 0 0 var(--space-3); }\n.ds-panel__text.is-last { margin-bottom: 0; }\n.ds-panel__facts {\n  margin: 0 0 var(--space-3);\n  padding: 0;\n  list-style: none;\n}\n.ds-panel__fact {\n  display: flex;\n  justify-content: space-between;\n  gap: var(--space-3);\n  padding: var(--space-2) 0;\n  border-top: var(--border-width) var(--border-style) var(--color-border-muted);\n}\n.ds-panel__fact.is-first { border-top: 0; }\n.ds-panel__fact-name { color: var(--color-text-muted); }\n.ds-panel__actions {\n  display: flex;\n  align-items: center;\n  gap: var(--space-3);\n}\n\n/* sidebar: a link block under a pale glass strip, round green bullets */\n.ds-sidebar {\n  margin: 0 0 var(--space-5);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n  background: var(--color-surface);\n  box-shadow: var(--shadow-panel);\n  overflow: hidden;\n}\n.ds-sidebar.is-last { margin-bottom: 0; }\n.ds-sidebar__title {\n  margin: 0;\n  padding: var(--space-3) var(--space-4);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n  font-family: var(--font-heading);\n  font-size: var(--text-h3);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n}\n.ds-sidebar__list {\n  margin: 0;\n  padding: var(--space-3) var(--space-4);\n  list-style: none;\n}\n.ds-sidebar__item {\n  display: flex;\n  align-items: center;\n  gap: var(--space-3);\n  padding: var(--space-2) 0;\n}\n.ds-sidebar__item::before {\n  content: \"\";\n  flex: 0 0 auto;\n  width: var(--space-3);\n  height: var(--space-3);\n  border-radius: 50%;\n  background: var(--fill-accent);\n}\n.ds-sidebar__item.is-current { font-weight: var(--weight-bold); }\n.ds-sidebar__count {\n  margin-left: auto;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n}\n\n/* steps: the three numbered orbs of the download page */\n.ds-steps {\n  display: flex;\n  gap: var(--space-5);\n  margin: 0 0 var(--space-5);\n  padding: 0;\n  list-style: none;\n}\n.ds-steps__step {\n  display: flex;\n  flex: 1 1 0;\n  align-items: center;\n  gap: var(--space-3);\n  color: var(--color-text-muted);\n}\n.ds-steps__number {\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center;\n  justify-content: center;\n  width: var(--size-control);\n  height: var(--size-control);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: 50%;\n  background: var(--fill-button-secondary);\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-secondary-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  line-height: 1;\n}\n.ds-steps__step.is-current { color: var(--color-heading); font-weight: var(--weight-bold); }\n.ds-steps__step.is-current .ds-steps__number {\n  border-color: color-mix(in srgb, var(--color-button) 68%, var(--color-shadow));\n  background: var(--fill-button);\n  color: var(--color-button-text);\n}\n\n/* footer: a rounded sky band under the sheet */\n.ds-footer {\n  margin: var(--space-5) 0 0;\n  padding: var(--space-5) var(--space-5) var(--space-4);\n  border-radius: var(--radius-page);\n  background: var(--fill-inverse);\n  box-shadow: var(--shadow-panel);\n  color: var(--color-inverse-text);\n}\n.ds-footer__columns {\n  display: grid;\n  grid-template-columns: repeat(4, 1fr);\n  gap: var(--space-5);\n  margin: 0 0 var(--space-4);\n}\n.ds-footer__heading {\n  margin: 0 0 var(--space-2);\n  font-family: var(--font-heading);\n  font-size: var(--text-h3);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n}\n.ds-footer__list {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  font-size: var(--text-small);\n}\n.ds-footer__link {\n  color: var(--color-inverse-text);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-footer__link:hover,\n.ds-footer__link.is-hover { text-decoration: var(--link-decoration-hover); }\n.ds-footer__legal {\n  margin: 0;\n  padding: var(--space-3) 0 0;\n  border-top: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-inverse-text) 35%, transparent);\n  font-size: var(--text-small);\n}\n\n/* brand: the mark on a glossy tile dressed like the primary button, the name on the glass bar */\n.ds-brand {\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center;\n  gap: var(--space-3);\n  text-decoration: none;\n}\n.ds-brand__mark {\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center;\n  justify-content: center;\n  width: var(--size-mark);\n  height: var(--size-mark);\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-button) 70%, var(--color-shadow));\n  border-radius: 50%;\n  background: var(--fill-button);\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-text);\n}\n.ds-brand__mark svg {\n  display: block;\n  width: 68%;\n  height: 68%;\n}\n.ds-brand__name {\n  color: var(--color-bar-text);\n  font-family: var(--font-heading);\n  font-size: var(--text-h2);\n  font-weight: var(--weight-display);\n  line-height: var(--line-display);\n  letter-spacing: var(--display-tracking);\n  text-shadow: var(--shadow-text);\n}\n\n/* typography */\n.ds-prose { margin: 0; }\n.ds-prose h1,\n.ds-prose h2,\n.ds-prose h3 {\n  margin: var(--space-5) 0 var(--space-3);\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 { margin-top: 0; font-size: var(--text-h1); }\n.ds-prose h2 {\n  padding-bottom: var(--space-2);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border-muted);\n  color: var(--color-heading-alt);\n  font-size: var(--text-h2);\n}\n.ds-prose h3 { font-size: var(--text-h3); font-weight: var(--weight-bold); }\n.ds-prose p { margin: 0 0 var(--space-4); }\n.ds-prose ul,\n.ds-prose ol {\n  margin: 0 0 var(--space-4);\n  padding: 0 0 0 var(--space-6);\n}\n.ds-prose li { margin: 0 0 var(--space-2); }\n.ds-prose li::marker { color: var(--color-heading-alt); }\n.ds-prose strong { font-weight: var(--weight-bold); }\n.ds-prose code {\n  padding: 0 var(--space-2);\n  border: var(--border-width) var(--border-style) var(--color-border-muted);\n  border-radius: var(--radius-control);\n  background: var(--color-surface-alt);\n  font-family: var(--font-mono);\n  font-size: var(--text-small);\n}\n.ds-prose a {\n  color: var(--color-link);\n  text-decoration: var(--link-decoration);\n}\n\n/* links */\n.ds-links {\n  display: flex;\n  flex-wrap: wrap;\n  gap: var(--space-2) var(--space-5);\n  margin: 0;\n}\n.ds-link {\n  color: var(--color-link);\n  text-decoration: var(--link-decoration);\n}\n.ds-link:visited,\n.ds-link.is-visited { color: var(--color-link-visited); }\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 { color: var(--color-link-active); }\n.ds-link:focus-visible,\n.ds-link.is-focus { outline: var(--focus-ring); }\n.ds-link--title {\n  font-weight: var(--weight-bold);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-link--quiet {\n  color: var(--color-link-quiet);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-link--quiet:hover,\n.ds-link--quiet.is-hover { color: var(--color-link-hover); }\n\n/* buttons: gel buttons with a bright upper half; the arrow button is a round one */\n.ds-buttons {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-3);\n  margin: 0;\n}\n.ds-buttons--bar { margin: var(--space-4) 0; }\n.ds-button {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: var(--space-2);\n  height: var(--size-control);\n  margin: 0;\n  padding: 0 var(--space-4);\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-button) 68%, var(--color-shadow));\n  border-radius: var(--radius-control);\n  background: var(--fill-button);\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  line-height: 1;\n  text-decoration: none;\n  text-shadow: var(--shadow-text);\n  text-transform: var(--ui-transform);\n  white-space: nowrap;\n  transition: var(--transition);\n  cursor: pointer;\n}\n.ds-button:hover,\n.ds-button.is-hover {\n  background: var(--fill-button-hover);\n  box-shadow: var(--shadow-control-hover);\n  color: var(--color-button-hover-text);\n}\n.ds-button:active,\n.ds-button.is-active {\n  background: var(--color-button);\n  box-shadow: var(--shadow-control-pressed);\n}\n.ds-button:focus-visible,\n.ds-button.is-focus { outline: var(--focus-ring); }\n.ds-button__icon {\n  display: block;\n  flex: 0 0 auto;\n  width: var(--size-icon);\n  height: var(--size-icon);\n}\n.ds-button--large {\n  height: var(--size-control-large);\n  padding: 0 var(--space-5);\n  font-size: var(--text-large);\n}\n.ds-button--arrow {\n  flex: 0 0 auto;\n  width: var(--size-control);\n  padding: 0;\n  border-radius: 50%;\n}\n.ds-button--secondary {\n  border-color: color-mix(in srgb, var(--color-button-secondary) 60%, var(--color-shadow));\n  background: var(--fill-button-secondary);\n  color: var(--color-button-secondary-text);\n  font-weight: var(--weight-ui);\n  text-shadow: none;\n}\n.ds-button--secondary:hover,\n.ds-button--secondary.is-hover {\n  background: var(--fill-button-secondary);\n  color: var(--color-button-secondary-text);\n}\n.ds-button--secondary:active,\n.ds-button--secondary.is-active { background: var(--color-button-secondary); }\n.ds-button--danger {\n  border-color: color-mix(in srgb, var(--color-danger) 68%, var(--color-shadow));\n  background: linear-gradient(to bottom, color-mix(in srgb, var(--color-danger), var(--color-button-text) 55%) 0, color-mix(in srgb, var(--color-danger), var(--color-button-text) 18%) 48%, var(--color-danger) 52%, color-mix(in srgb, var(--color-danger), var(--color-button-text) 20%) 100%);\n  color: var(--color-button-text);\n}\n.ds-button--danger:hover,\n.ds-button--danger.is-hover {\n  background: linear-gradient(to bottom, color-mix(in srgb, var(--color-danger), var(--color-button-text) 66%) 0, color-mix(in srgb, var(--color-danger), var(--color-button-text) 28%) 48%, color-mix(in srgb, var(--color-danger), var(--color-button-text) 8%) 52%, color-mix(in srgb, var(--color-danger), var(--color-button-text) 32%) 100%);\n  color: var(--color-button-text);\n}\n.ds-button--danger:active,\n.ds-button--danger.is-active { background: var(--color-danger); }\n.ds-button:disabled,\n.ds-button.is-disabled {\n  border-color: var(--color-border);\n  background: var(--color-disabled);\n  box-shadow: none;\n  color: var(--color-disabled-text);\n  text-shadow: none;\n  cursor: default;\n}\n\n/* form */\n.ds-form { margin: 0; }\n.ds-form__row {\n  display: flex;\n  align-items: flex-start;\n  gap: var(--space-4);\n  margin: 0 0 var(--space-3);\n}\n.ds-form__label {\n  flex: 0 0 var(--size-label);\n  padding-top: var(--space-2);\n  color: var(--color-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  text-align: right;\n}\n.ds-form__field {\n  flex: 1 1 0;\n  min-width: 0;\n}\n.ds-form__input,\n.ds-form__select,\n.ds-form__textarea {\n  width: 100%;\n  margin: 0;\n  padding: var(--space-2) var(--space-3);\n  border: var(--border-width) var(--border-style) var(--color-input-border);\n  border-radius: var(--radius-control);\n  background: var(--fill-input);\n  color: var(--color-input-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-body);\n  line-height: var(--line-body);\n}\n.ds-form__input,\n.ds-form__select { height: var(--size-control); }\n.ds-form__select { width: auto; padding: 0 var(--space-2); }\n.ds-form__input--short { width: 50%; }\n.ds-form__textarea {\n  display: block;\n  height: var(--size-textarea);\n  resize: vertical;\n}\n.ds-form__input:focus,\n.ds-form__input.is-focus,\n.ds-form__select:focus,\n.ds-form__select.is-focus,\n.ds-form__textarea:focus,\n.ds-form__textarea.is-focus {\n  outline: var(--focus-ring);\n  border-color: var(--color-focus);\n  box-shadow: 0 0 var(--size-glow) color-mix(in srgb, var(--color-focus) 80%, transparent);\n}\n.ds-form__input:disabled,\n.ds-form__input.is-disabled {\n  border-color: var(--color-border);\n  background: var(--color-disabled);\n  color: var(--color-disabled-text);\n}\n.ds-form__input.is-error {\n  border-color: var(--color-danger);\n  background: var(--color-danger-surface);\n}\n.ds-form__error {\n  margin: var(--space-2) 0 0;\n  color: var(--color-danger);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n}\n.ds-form__hint {\n  margin: var(--space-2) 0 0;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n}\n.ds-form__check {\n  display: flex;\n  align-items: center;\n  gap: var(--space-3);\n  padding-top: var(--space-2);\n  font-size: var(--text-ui);\n}\n.ds-form__checkbox { margin: 0; accent-color: var(--color-button); }\n.ds-form__actions {\n  display: flex;\n  align-items: center;\n  gap: var(--space-3);\n  margin: var(--space-5) 0 0;\n  padding: var(--space-4) 0 0 calc(var(--size-label) + var(--space-4));\n  border-top: var(--border-width) var(--border-style) var(--color-border-muted);\n}\n\n/* table: pale glass head, hairlines between rows */\n.ds-table {\n  width: 100%;\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-collapse: separate;\n  border-spacing: 0;\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-panel);\n  font-size: var(--text-base);\n  line-height: var(--line-body);\n  overflow: hidden;\n}\n.ds-table__head {\n  padding: var(--space-3) var(--space-4);\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  text-align: left;\n  text-transform: var(--ui-transform);\n  white-space: nowrap;\n}\n.ds-table__cell {\n  padding: var(--space-3) var(--space-4);\n  border-top: var(--border-width) var(--border-style) var(--color-border-muted);\n  background: var(--color-surface);\n  color: var(--color-text);\n  vertical-align: middle;\n}\n.ds-table__row.is-alt .ds-table__cell { background: var(--color-surface-alt); }\n.ds-table__head.is-numeric,\n.ds-table__cell.is-numeric { text-align: right; }\n.ds-table__cell.is-numeric { font-variant-numeric: tabular-nums; white-space: nowrap; }\n.ds-table__note {\n  display: block;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n}\n\n/* badge: a small gel pill */\n.ds-badge {\n  display: inline-block;\n  padding: 0 var(--space-3);\n  border-radius: var(--radius-pill);\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  line-height: calc(var(--text-small) + var(--space-3));\n  text-decoration: none;\n  vertical-align: baseline;\n  white-space: nowrap;\n}\n.ds-badge--count {\n  background: var(--color-surface-strong);\n  color: var(--color-heading);\n  font-weight: var(--weight-body);\n}\n.ds-badge--new {\n  background: var(--color-accent-alt);\n  color: var(--color-button-text);\n}\n.ds-badge--success {\n  background: linear-gradient(to bottom, color-mix(in srgb, var(--color-success), var(--color-button-text) 35%) 0, var(--color-success) 55%);\n  color: var(--color-button-text);\n}\n.ds-badge--warning {\n  background: linear-gradient(to bottom, color-mix(in srgb, var(--color-warning), var(--color-button-text) 45%) 0, var(--color-warning) 55%);\n  color: var(--color-accent-text);\n}\n.ds-badge--danger {\n  background: linear-gradient(to bottom, color-mix(in srgb, var(--color-danger), var(--color-button-text) 35%) 0, var(--color-danger) 55%);\n  color: var(--color-button-text);\n}\n.ds-badges {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-3);\n  margin: 0;\n}\n\n/* notice: a rounded bar with a round sign */\n.ds-notice {\n  display: flex;\n  align-items: flex-start;\n  gap: var(--space-3);\n  margin: 0 0 var(--space-4);\n  padding: var(--space-3) var(--space-4);\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-warning) 55%, var(--color-notice));\n  border-radius: var(--radius-panel);\n  background: var(--color-notice);\n  color: var(--color-notice-text);\n}\n.ds-notice__sign {\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center;\n  justify-content: center;\n  width: var(--size-icon);\n  height: var(--size-icon);\n  border-radius: 50%;\n  background: var(--color-warning);\n  color: var(--color-accent-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  line-height: 1;\n}\n.ds-notice__text { margin: 0; }\n.ds-notice__title { font-weight: var(--weight-bold); }\n.ds-notice--error {\n  border-color: var(--color-danger);\n  background: var(--color-danger-surface);\n  color: var(--color-danger);\n}\n.ds-notice--error .ds-notice__sign {\n  background: var(--color-danger);\n  color: var(--color-button-text);\n}\n\n/* pagination: small glass keys */\n.ds-pagination {\n  display: flex;\n  align-items: center;\n  gap: var(--space-2);\n  margin: var(--space-5) 0 0;\n  padding: 0;\n  list-style: none;\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  line-height: 1;\n}\n.ds-pagination__link {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-width: var(--size-control);\n  height: var(--size-control);\n  padding: 0 var(--space-3);\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-button-secondary) 60%, var(--color-shadow));\n  border-radius: var(--radius-control);\n  background: var(--fill-button-secondary);\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-secondary-text);\n  text-decoration: none;\n}\n.ds-pagination__link:hover,\n.ds-pagination__link.is-hover { box-shadow: var(--shadow-control-hover); }\n.ds-pagination__link.is-current {\n  border-color: color-mix(in srgb, var(--color-button) 68%, var(--color-shadow));\n  background: var(--fill-button);\n  color: var(--color-button-text);\n  font-weight: var(--weight-bold);\n  text-shadow: var(--shadow-text);\n}\n.ds-pagination__link.is-disabled {\n  border-color: var(--color-border);\n  background: var(--color-disabled);\n  box-shadow: none;\n  color: var(--color-disabled-text);\n}\n.ds-pagination__gap { padding: 0 var(--space-2); color: var(--color-text-muted); }\n\n/* breadcrumb */\n.ds-breadcrumb {\n  display: flex;\n  align-items: center;\n  gap: var(--space-3);\n  margin: 0 0 var(--space-4);\n  padding: 0;\n  list-style: none;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  line-height: var(--line-body);\n}\n.ds-breadcrumb__sep { color: var(--color-heading-alt); }\n.ds-breadcrumb__current { color: var(--color-text); font-weight: var(--weight-bold); }\n\n/* dialog: a glass window with a title bar, set in the page flow on a dimmed strip */\n.ds-dialog__backdrop {\n  display: flex;\n  justify-content: center;\n  margin: var(--space-5) 0 0;\n  padding: var(--space-6) var(--space-5);\n  border-radius: var(--radius-panel);\n  background: var(--color-overlay);\n}\n.ds-dialog {\n  width: var(--size-dialog);\n  max-width: 100%;\n  padding: var(--space-2);\n  border: var(--border-width-strong) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-panel);\n  background: var(--fill-bar);\n  box-shadow: var(--shadow-dialog);\n}\n.ds-dialog__title {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  margin: 0;\n  padding: var(--space-2) var(--space-3) var(--space-3);\n  color: var(--color-bar-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-h3);\n  font-weight: var(--weight-ui);\n  line-height: var(--line-heading);\n  text-shadow: var(--shadow-text);\n}\n.ds-dialog__close {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: calc(var(--size-icon) * 2);\n  height: var(--size-icon);\n  border-radius: var(--radius-control);\n  background: var(--color-danger);\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-text);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  line-height: 1;\n  text-decoration: none;\n  text-shadow: none;\n}\n.ds-dialog__body {\n  padding: var(--space-5);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-bottom: 0;\n  border-radius: var(--radius-control) var(--radius-control) 0 0;\n  background: var(--color-surface);\n}\n.ds-dialog__text { margin: 0; }\n.ds-dialog__actions {\n  display: flex;\n  justify-content: flex-end;\n  gap: var(--space-3);\n  padding: var(--space-3) var(--space-4);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-top-color: var(--color-border-muted);\n  border-radius: 0 0 var(--radius-control) var(--radius-control);\n  background: var(--color-surface-strong);\n}\n\n/* empty state: a pale well with a glass bubble */\n.ds-empty {\n  padding: var(--space-6) var(--space-5);\n  border: var(--border-width) var(--border-style) var(--color-border-muted);\n  border-radius: var(--radius-panel);\n  background: var(--color-surface-alt);\n  text-align: center;\n}\n.ds-empty__orb {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: var(--size-control-large);\n  height: var(--size-control-large);\n  margin: 0 auto var(--space-3);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: 50%;\n  background: var(--fill-button-secondary);\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-secondary-text);\n}\n.ds-empty__orb svg {\n  display: block;\n  width: 55%;\n  height: 55%;\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",
    "specimen.html": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>chronoskin: Frutiger Aero product page specimen</title>\n<link rel=\"stylesheet\" href=\"tokens.css\">\n<link rel=\"stylesheet\" href=\"components.css\">\n</head>\n<body class=\"ds-page\" data-component=\"shell\">\n<div class=\"ds-page__wrap\">\n\n<header class=\"ds-nav\" data-component=\"nav\">\n  <div class=\"ds-nav__bar\">\n    <a class=\"ds-brand\" data-component=\"brand\" href=\"#home\"><span class=\"ds-brand__mark\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M12 3a9 9 0 1 1-9 9\"/><path d=\"M12 17a5 5 0 1 1 5-5\"/><circle cx=\"12\" cy=\"12\" r=\"1.4\" fill=\"currentColor\" stroke=\"none\"/></svg></span><span class=\"ds-brand__name\">chronoskin</span></a>\n    <ul class=\"ds-nav__links\">\n      <li class=\"ds-nav__item\"><a class=\"ds-nav__link\" href=\"#home\">Home</a></li>\n      <li class=\"ds-nav__item\"><a class=\"ds-nav__link\" href=\"#tour\">Take the tour</a></li>\n      <li class=\"ds-nav__item\"><a class=\"ds-nav__link\" href=\"#editions\">Editions</a></li>\n      <li class=\"ds-nav__item\"><a class=\"ds-nav__link\" href=\"#download\">Download</a></li>\n      <li class=\"ds-nav__item\"><a class=\"ds-nav__link\" href=\"#help\">Help</a></li>\n    </ul>\n    <form class=\"ds-nav__search\" action=\"#\">\n      <input class=\"ds-nav__input\" type=\"text\" placeholder=\"Search\" aria-label=\"Search\">\n    </form>\n  </div>\n</header>\n\n<div class=\"ds-page__sheet\">\n\n  <section class=\"ds-view ds-view--home\" id=\"home\">\n\n    <div class=\"ds-hero\" data-component=\"hero\">\n      <span class=\"ds-hero__bubble ds-hero__bubble--1\" aria-hidden=\"true\"></span>\n      <span class=\"ds-hero__bubble ds-hero__bubble--2\" aria-hidden=\"true\"></span>\n      <span class=\"ds-hero__bubble ds-hero__bubble--3\" aria-hidden=\"true\"></span>\n      <span class=\"ds-hero__bubble ds-hero__bubble--4\" aria-hidden=\"true\"></span>\n      <div class=\"ds-hero__main\">\n        <h1 class=\"ds-hero__title\">Everything you own, in step everywhere</h1>\n        <p class=\"ds-hero__lead\">chronoskin Sync 3 keeps your photos, music and calendar the same on every computer and phone in the house, quietly, while you get on with the day.</p>\n        <p class=\"ds-hero__action\">\n          <a class=\"ds-button ds-button--large\" href=\"#download\">Download free <svg class=\"ds-button__icon\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 8h9M8.5 4l4 4-4 4\"/></svg></a>\n          <a class=\"ds-button ds-button--secondary ds-button--large\" href=\"#tour\">Take the tour</a>\n        </p>\n        <p class=\"ds-hero__note\">Version 3.2, 14 MB. Free for two devices, no account needed to try it.</p>\n      </div>\n      <div class=\"ds-hero__product\">\n        <div class=\"ds-hero__window\">\n          <p class=\"ds-hero__window-bar\"><span>Sync status</span><span class=\"ds-badge\">All in step</span></p>\n          <ul class=\"ds-hero__rows\">\n            <li class=\"ds-hero__row is-first\"><span class=\"ds-hero__row-name\">Summer photos</span><span class=\"ds-meter\"><span class=\"ds-meter__bar ds-meter__bar--full\"></span></span><span class=\"ds-hero__row-state\">1,204 items</span></li>\n            <li class=\"ds-hero__row\"><span class=\"ds-hero__row-name\">Music library</span><span class=\"ds-meter\"><span class=\"ds-meter__bar ds-meter__bar--most\"></span></span><span class=\"ds-hero__row-state\">72%</span></li>\n            <li class=\"ds-hero__row\"><span class=\"ds-hero__row-name\">Family calendar</span><span class=\"ds-meter\"><span class=\"ds-meter__bar ds-meter__bar--full\"></span></span><span class=\"ds-hero__row-state\">Up to date</span></li>\n            <li class=\"ds-hero__row\"><span class=\"ds-hero__row-name\">Kitchen laptop</span><span class=\"ds-meter\"><span class=\"ds-meter__bar ds-meter__bar--some\"></span></span><span class=\"ds-hero__row-state\">38%</span></li>\n          </ul>\n        </div>\n        <span class=\"ds-hero__reflection\" aria-hidden=\"true\"></span>\n      </div>\n    </div>\n\n    <ul class=\"ds-stats\" data-component=\"stats\">\n      <li class=\"ds-stat is-first\"><span class=\"ds-stat__number\">2.4 million</span><span class=\"ds-stat__label\">downloads this year</span></li>\n      <li class=\"ds-stat\"><span class=\"ds-stat__number\">31</span><span class=\"ds-stat__label\">languages</span></li>\n      <li class=\"ds-stat\"><span class=\"ds-stat__number\">14 MB</span><span class=\"ds-stat__label\">to download</span></li>\n      <li class=\"ds-stat\"><span class=\"ds-stat__number\">4.5 / 5</span><span class=\"ds-stat__label\">from 8,120 reviews</span></li>\n    </ul>\n\n    <div class=\"ds-page__body\">\n\n      <div class=\"ds-grid\" data-component=\"grid\">\n        <div class=\"ds-grid__cell ds-grid__cell--1\">\n          <span class=\"ds-orb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 11a8 8 0 0 1 14-4l2 2M20 4v5h-5M20 13a8 8 0 0 1-14 4l-2-2M4 20v-5h5\"/></svg></span>\n          <h2 class=\"ds-grid__title\">Sync</h2>\n          <p class=\"ds-grid__text\">Change a file on one machine and it is there on the others in under a minute.</p>\n          <p class=\"ds-grid__more\"><a class=\"ds-link\" href=\"#tour\">See how it works</a></p>\n        </div>\n        <div class=\"ds-grid__cell ds-grid__cell--2\">\n          <span class=\"ds-orb ds-orb--bar\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"/><path d=\"M3 16l5-5 4 4 3-3 6 6\"/></svg></span>\n          <h2 class=\"ds-grid__title\">Share</h2>\n          <p class=\"ds-grid__text\">Send an album to the family with one click. They need nothing installed.</p>\n          <p class=\"ds-grid__more\"><a class=\"ds-link\" href=\"#tour\">Sharing albums</a></p>\n        </div>\n        <div class=\"ds-grid__cell ds-grid__cell--3\">\n          <span class=\"ds-orb ds-orb--accent\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z\"/><path d=\"M8.5 12l2.5 2.5 4.5-5\"/></svg></span>\n          <h2 class=\"ds-grid__title\">Protect</h2>\n          <p class=\"ds-grid__text\">Every version of every file is kept for thirty days, so nothing is lost for good.</p>\n          <p class=\"ds-grid__more\"><a class=\"ds-link\" href=\"#tour\">About backups</a></p>\n        </div>\n        <div class=\"ds-grid__cell ds-grid__cell--4\">\n          <span class=\"ds-orb ds-orb--alt\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"7\" y=\"2.5\" width=\"10\" height=\"19\" rx=\"2\"/><path d=\"M11 18h2\"/></svg></span>\n          <h2 class=\"ds-grid__title\">Take it along</h2>\n          <p class=\"ds-grid__text\">Your phone carries the same library, sized down to fit its memory card.</p>\n          <p class=\"ds-grid__more\"><a class=\"ds-link\" href=\"#editions\">Supported phones</a></p>\n        </div>\n      </div>\n\n      <div class=\"ds-page__columns\">\n        <main class=\"ds-page__main\">\n          <h2 class=\"ds-section__title\">What is new</h2>\n          <ul class=\"ds-list\" data-component=\"list\">\n            <li class=\"ds-list__item is-first\">\n              <div class=\"ds-list__date\"><span class=\"ds-list__month\">Mar</span><span class=\"ds-list__day\">18</span></div>\n              <div class=\"ds-list__body\">\n                <h3 class=\"ds-list__title\"><a class=\"ds-link ds-link--title\" href=\"#download\">Version 3.2 is ready to download</a> <span class=\"ds-badge ds-badge--new\">New</span></h3>\n                <p class=\"ds-list__text\">Faster first sync, a calmer status window and support for memory cards up to 32 GB.</p>\n                <p class=\"ds-list__meta\">Release notes, 4 minutes to read</p>\n              </div>\n            </li>\n            <li class=\"ds-list__item\">\n              <div class=\"ds-list__date\"><span class=\"ds-list__month\">Mar</span><span class=\"ds-list__day\">02</span></div>\n              <div class=\"ds-list__body\">\n                <h3 class=\"ds-list__title\"><a class=\"ds-link ds-link--title\" href=\"#tour\">Shared albums now play as a slideshow</a></h3>\n                <p class=\"ds-list__text\">Anyone you invite can watch an album full screen, with or without your captions.</p>\n                <p class=\"ds-list__meta\">Feature tour, 2 minutes to read</p>\n              </div>\n            </li>\n            <li class=\"ds-list__item\">\n              <div class=\"ds-list__date\"><span class=\"ds-list__month\">Feb</span><span class=\"ds-list__day\">11</span></div>\n              <div class=\"ds-list__body\">\n                <h3 class=\"ds-list__title\"><a class=\"ds-link ds-link--title is-visited\" href=\"#editions\">A Family edition for up to eight devices</a></h3>\n                <p class=\"ds-list__text\">One licence for the whole household, with a shared calendar everyone can edit.</p>\n                <p class=\"ds-list__meta\">Editions, 3 minutes to read</p>\n              </div>\n            </li>\n            <li class=\"ds-list__item\">\n              <div class=\"ds-list__date\"><span class=\"ds-list__month\">Jan</span><span class=\"ds-list__day\">27</span></div>\n              <div class=\"ds-list__body\">\n                <h3 class=\"ds-list__title\"><a class=\"ds-link ds-link--title\" href=\"#help\">Moving to a new computer in four steps</a></h3>\n                <p class=\"ds-list__text\">A short guide for the week after you unpack the box.</p>\n                <p class=\"ds-list__meta\">Help article, 5 minutes to read</p>\n              </div>\n            </li>\n          </ul>\n        </main>\n        <aside class=\"ds-page__aside\">\n          <div class=\"ds-panel\" data-component=\"panel\">\n            <h2 class=\"ds-panel__title\">What you need</h2>\n            <div class=\"ds-panel__body\">\n              <ul class=\"ds-panel__facts\">\n                <li class=\"ds-panel__fact is-first\"><span class=\"ds-panel__fact-name\">Memory</span><span>512 MB or more</span></li>\n                <li class=\"ds-panel__fact\"><span class=\"ds-panel__fact-name\">Disk space</span><span>40 MB free</span></li>\n                <li class=\"ds-panel__fact\"><span class=\"ds-panel__fact-name\">Connection</span><span>Broadband</span></li>\n                <li class=\"ds-panel__fact\"><span class=\"ds-panel__fact-name\">Screen</span><span>1024 by 768</span></li>\n              </ul>\n              <p class=\"ds-panel__actions\"><a class=\"ds-button ds-button--arrow\" href=\"#download\" aria-label=\"Go to the download\"><svg class=\"ds-button__icon\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 8h9M8.5 4l4 4-4 4\"/></svg></a><a class=\"ds-link\" href=\"#download\">Check your computer and download</a></p>\n            </div>\n          </div>\n          <div class=\"ds-sidebar is-last\">\n            <h2 class=\"ds-sidebar__title\">Popular answers</h2>\n            <ul class=\"ds-sidebar__list\">\n              <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#help\">Add a second computer</a></li>\n              <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#help\">Bring back a deleted photo</a></li>\n              <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#help\">Sync over a slow connection</a></li>\n              <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#editions\">Compare the editions</a></li>\n            </ul>\n          </div>\n        </aside>\n      </div>\n\n    </div>\n  </section>\n\n  <section class=\"ds-view\" id=\"tour\">\n    <div class=\"ds-page__body\">\n      <ol class=\"ds-breadcrumb\" data-component=\"breadcrumb\">\n        <li><a class=\"ds-link\" href=\"#home\">Home</a></li>\n        <li class=\"ds-breadcrumb__sep\" aria-hidden=\"true\">&raquo;</li>\n        <li><a class=\"ds-link\" href=\"#tour\">Tour</a></li>\n        <li class=\"ds-breadcrumb__sep\" aria-hidden=\"true\">&raquo;</li>\n        <li class=\"ds-breadcrumb__current\">Sync</li>\n      </ol>\n      <div class=\"ds-page-header\" data-component=\"page-header\">\n        <div class=\"ds-page-header__main\">\n          <h1 class=\"ds-page-header__title\">Take the tour</h1>\n          <p class=\"ds-page-header__text\">Three things chronoskin Sync does, and how each one works.</p>\n        </div>\n        <div class=\"ds-page-header__actions\"><a class=\"ds-button\" href=\"#download\">Download free</a></div>\n      </div>\n      <div class=\"ds-page__columns\">\n        <main class=\"ds-page__main\">\n          <ul class=\"ds-tabs\" data-component=\"tabs\">\n            <li><a class=\"ds-tabs__tab is-current\" href=\"#tour\">Sync</a></li>\n            <li><a class=\"ds-tabs__tab\" href=\"#tour\">Share</a></li>\n            <li><a class=\"ds-tabs__tab\" href=\"#tour\">Protect</a></li>\n            <li><a class=\"ds-tabs__tab\" href=\"#tour\">On your phone</a></li>\n          </ul>\n          <article class=\"ds-prose\" data-component=\"typography\">\n            <h1>One library on every screen</h1>\n            <p>Pick the folders that matter and chronoskin Sync watches them. When a file changes on one computer, only the part that changed travels to the others, so a long video you trimmed by ten seconds does not upload again from the start.</p>\n            <h2>How a sync happens</h2>\n            <p>The program sits beside the clock and wakes when a watched folder changes. It compares what is there with what the other devices hold, then sends the difference.</p>\n            <ol>\n              <li>Choose the folders in <strong>Settings</strong>, or drag one onto the status window.</li>\n              <li>Sign in on the second computer with the same name.</li>\n              <li>Leave both switched on for the first pass. After that it takes seconds.</li>\n            </ol>\n            <h3>When two people change the same file</h3>\n            <p>Both versions are kept. The later one takes the name and the earlier one is saved beside it with the date added, for example <code>budget (kitchen laptop, 18 March).xls</code>. Nothing is merged or thrown away without asking.</p>\n            <h3>What is never synced</h3>\n            <ul>\n              <li>Temporary files and anything larger than the free space on the other device</li>\n              <li>Folders you marked as <code>local only</code></li>\n            </ul>\n          </article>\n          <div class=\"ds-section\">\n            <h2 class=\"ds-section__title\">Read next</h2>\n            <p class=\"ds-links\" data-component=\"links\">\n              <a class=\"ds-link\" href=\"#tour\">Sharing an album</a>\n              <a class=\"ds-link is-visited\" href=\"#tour\">How backups are kept</a>\n              <a class=\"ds-link is-hover\" href=\"#editions\">Which edition fits</a>\n              <a class=\"ds-link is-active\" href=\"#download\">Download and install</a>\n            </p>\n          </div>\n        </main>\n        <aside class=\"ds-page__aside\">\n          <div class=\"ds-sidebar\" data-component=\"sidebar\">\n            <h2 class=\"ds-sidebar__title\">In this tour</h2>\n            <ul class=\"ds-sidebar__list\">\n              <li class=\"ds-sidebar__item is-current\"><a class=\"ds-link\" href=\"#tour\">One library on every screen</a></li>\n              <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#tour\">Albums for the family</a></li>\n              <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#tour\">Thirty days of versions</a></li>\n              <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#tour\">Music on the move</a></li>\n              <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#tour\">A calendar everyone edits</a></li>\n            </ul>\n          </div>\n          <div class=\"ds-panel is-last\">\n            <h2 class=\"ds-panel__title\">Try it this afternoon</h2>\n            <div class=\"ds-panel__body\">\n              <p class=\"ds-panel__text\">The free edition covers two devices and 2 GB, with nothing to pay and no end date.</p>\n              <p class=\"ds-panel__actions\"><a class=\"ds-button\" href=\"#download\">Download free</a><a class=\"ds-link\" href=\"#editions\">Compare editions</a></p>\n            </div>\n          </div>\n        </aside>\n      </div>\n    </div>\n  </section>\n\n  <section class=\"ds-view\" id=\"editions\">\n    <div class=\"ds-page__body\">\n      <ol class=\"ds-breadcrumb\">\n        <li><a class=\"ds-link\" href=\"#home\">Home</a></li>\n        <li class=\"ds-breadcrumb__sep\" aria-hidden=\"true\">&raquo;</li>\n        <li class=\"ds-breadcrumb__current\">Editions</li>\n      </ol>\n      <div class=\"ds-page-header\">\n        <div class=\"ds-page-header__main\">\n          <h1 class=\"ds-page-header__title\">Choose an edition</h1>\n          <p class=\"ds-page-header__text\">The same program in four sizes. You can move up at any time and keep your library.</p>\n        </div>\n        <div class=\"ds-page-header__actions\"><a class=\"ds-button ds-button--secondary\" href=\"#help\">Ask before you buy</a></div>\n      </div>\n      <table class=\"ds-table\" data-component=\"table\">\n        <thead>\n          <tr><th class=\"ds-table__head\">Edition</th><th class=\"ds-table__head\">Made for</th><th class=\"ds-table__head is-numeric\">Devices</th><th class=\"ds-table__head is-numeric\">Storage</th><th class=\"ds-table__head is-numeric\">Price a year</th><th class=\"ds-table__head\">Availability</th><th class=\"ds-table__head\"></th></tr>\n        </thead>\n        <tbody>\n          <tr class=\"ds-table__row\"><td class=\"ds-table__cell\"><a class=\"ds-link ds-link--title\" href=\"#download\">Free</a></td><td class=\"ds-table__cell\">Trying it out on a desktop and a laptop</td><td class=\"ds-table__cell is-numeric\">2</td><td class=\"ds-table__cell is-numeric\">2 GB</td><td class=\"ds-table__cell is-numeric\">0.00</td><td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--success\">Available</span></td><td class=\"ds-table__cell\"><a class=\"ds-button ds-button--secondary\" href=\"#download\">Download</a></td></tr>\n          <tr class=\"ds-table__row is-alt\"><td class=\"ds-table__cell\"><a class=\"ds-link ds-link--title\" href=\"#download\">Home</a></td><td class=\"ds-table__cell\">One person with a phone and two computers</td><td class=\"ds-table__cell is-numeric\">3</td><td class=\"ds-table__cell is-numeric\">25 GB</td><td class=\"ds-table__cell is-numeric\">29.00</td><td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--success\">Available</span></td><td class=\"ds-table__cell\"><a class=\"ds-button\" href=\"#download\">Choose</a></td></tr>\n          <tr class=\"ds-table__row\"><td class=\"ds-table__cell\"><a class=\"ds-link ds-link--title\" href=\"#download\">Family</a> <span class=\"ds-badge ds-badge--new\">New</span></td><td class=\"ds-table__cell\">A household with a shared calendar</td><td class=\"ds-table__cell is-numeric\">8</td><td class=\"ds-table__cell is-numeric\">100 GB</td><td class=\"ds-table__cell is-numeric\">59.00</td><td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--warning\">From 1 April</span></td><td class=\"ds-table__cell\"><a class=\"ds-button\" href=\"#download\">Choose</a></td></tr>\n          <tr class=\"ds-table__row is-alt\"><td class=\"ds-table__cell\"><a class=\"ds-link ds-link--title\" href=\"#download\">Studio</a></td><td class=\"ds-table__cell\">Photographers and small offices</td><td class=\"ds-table__cell is-numeric\">20</td><td class=\"ds-table__cell is-numeric\">500 GB</td><td class=\"ds-table__cell is-numeric\">149.00</td><td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--success\">Available</span></td><td class=\"ds-table__cell\"><a class=\"ds-button\" href=\"#download\">Choose</a></td></tr>\n          <tr class=\"ds-table__row\"><td class=\"ds-table__cell\">Classic 2</td><td class=\"ds-table__cell\">The earlier version, for older computers</td><td class=\"ds-table__cell is-numeric\">2</td><td class=\"ds-table__cell is-numeric\">1 GB</td><td class=\"ds-table__cell is-numeric\">19.00</td><td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--danger\">Withdrawn</span></td><td class=\"ds-table__cell\"><button class=\"ds-button is-disabled\" type=\"button\" disabled>Choose</button></td></tr>\n        </tbody>\n      </table>\n      <div class=\"ds-section\">\n        <h2 class=\"ds-section__title\">What the labels mean</h2>\n        <p class=\"ds-badges\" data-component=\"badge\">\n          <span class=\"ds-badge\">Included</span>\n          <span class=\"ds-badge ds-badge--count\">3 devices</span>\n          <span class=\"ds-badge ds-badge--new\">New</span>\n          <span class=\"ds-badge ds-badge--success\">Available</span>\n          <span class=\"ds-badge ds-badge--warning\">From 1 April</span>\n          <span class=\"ds-badge ds-badge--danger\">Withdrawn</span>\n        </p>\n      </div>\n      <div class=\"ds-section\">\n        <div class=\"ds-page__columns\">\n          <div class=\"ds-page__main\">\n            <div class=\"ds-panel is-last\">\n              <h2 class=\"ds-panel__title\">Every paid edition includes</h2>\n              <div class=\"ds-panel__body\">\n                <p class=\"ds-panel__text is-last\">Thirty days of file versions, shared albums without limits, help by mail within one working day, and every update to version 3 as it appears. Prices are for one year and include tax.</p>\n              </div>\n            </div>\n          </div>\n          <div class=\"ds-page__aside\">\n            <div class=\"ds-sidebar is-last\">\n              <h2 class=\"ds-sidebar__title\">Before you choose</h2>\n              <ul class=\"ds-sidebar__list\">\n                <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#help\">Can I change edition later?</a></li>\n                <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#help\">How devices are counted</a></li>\n                <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#help\">Schools and charities</a></li>\n              </ul>\n            </div>\n          </div>\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><a class=\"ds-link\" href=\"#home\">Home</a></li>\n        <li class=\"ds-breadcrumb__sep\" aria-hidden=\"true\">&raquo;</li>\n        <li class=\"ds-breadcrumb__current\">Download</li>\n      </ol>\n      <div class=\"ds-page-header\">\n        <div class=\"ds-page-header__main\">\n          <h1 class=\"ds-page-header__title\">Download chronoskin Sync 3.2</h1>\n          <p class=\"ds-page-header__text\">Tell us where to send the licence, then save the installer.</p>\n        </div>\n        <div class=\"ds-page-header__actions\"><a class=\"ds-button ds-button--secondary\" href=\"#editions\">Compare editions</a></div>\n      </div>\n      <ol class=\"ds-steps\">\n        <li class=\"ds-steps__step\"><span class=\"ds-steps__number\">1</span>Choose an edition</li>\n        <li class=\"ds-steps__step is-current\"><span class=\"ds-steps__number\">2</span>Your details</li>\n        <li class=\"ds-steps__step\"><span class=\"ds-steps__number\">3</span>Save and install</li>\n      </ol>\n      <div class=\"ds-page__columns\">\n        <main class=\"ds-page__main\">\n          <div data-component=\"notice\">\n            <div class=\"ds-notice\"><span class=\"ds-notice__sign\" aria-hidden=\"true\">i</span><p class=\"ds-notice__text\"><span class=\"ds-notice__title\">The Family edition opens on 1 April.</span> Order it today and the licence arrives that morning.</p></div>\n            <div class=\"ds-notice ds-notice--error\"><span class=\"ds-notice__sign\" aria-hidden=\"true\">!</span><p class=\"ds-notice__text\"><span class=\"ds-notice__title\">One field needs another look.</span> The mail address is missing its ending.</p></div>\n          </div>\n          <form class=\"ds-form\" data-component=\"form\" action=\"#\">\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"dl-name\">Your name</label>\n              <div class=\"ds-form__field\"><input class=\"ds-form__input\" id=\"dl-name\" type=\"text\" value=\"Imre Valdane\"></div>\n            </div>\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"dl-mail\">Mail address</label>\n              <div class=\"ds-form__field\">\n                <input class=\"ds-form__input is-error\" id=\"dl-mail\" type=\"text\" value=\"imre.valdane@harbourpost\">\n                <p class=\"ds-form__error\">This address has no ending such as .example. Please check it.</p>\n              </div>\n            </div>\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"dl-edition\">Edition</label>\n              <div class=\"ds-form__field\">\n                <select class=\"ds-form__select\" id=\"dl-edition\"><option>Home, 29.00 a year</option><option>Free</option><option>Family, 59.00 a year</option><option>Studio, 149.00 a year</option></select>\n                <p class=\"ds-form__hint\">You can move to a larger edition later and keep your library.</p>\n              </div>\n            </div>\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"dl-first\">First device</label>\n              <div class=\"ds-form__field\"><input class=\"ds-form__input ds-form__input--short is-focus\" id=\"dl-first\" type=\"text\" value=\"Study desktop\"></div>\n            </div>\n            <div class=\"ds-form__row\">\n              <label class=\"ds-form__label\" for=\"dl-note\">Anything we should know</label>\n              <div class=\"ds-form__field\"><textarea class=\"ds-form__textarea\" id=\"dl-note\">We are moving from the earlier version and have about 9,000 photos.</textarea></div>\n            </div>\n            <div class=\"ds-form__row\">\n              <span class=\"ds-form__label\">News</span>\n              <div class=\"ds-form__field\"><label class=\"ds-form__check\"><input class=\"ds-form__checkbox\" type=\"checkbox\" checked> Send me a short note when a new version is ready</label></div>\n            </div>\n            <div class=\"ds-form__actions\" data-component=\"buttons\">\n              <button class=\"ds-button\" type=\"button\">Continue to download</button>\n              <a class=\"ds-button ds-button--secondary\" href=\"#editions\">Back</a>\n              <button class=\"ds-button ds-button--danger\" type=\"button\">Cancel the order</button>\n              <button class=\"ds-button is-disabled\" type=\"button\" disabled>Pay by invoice</button>\n            </div>\n          </form>\n        </main>\n        <aside class=\"ds-page__aside\">\n          <div class=\"ds-panel\">\n            <h2 class=\"ds-panel__title\">Your download</h2>\n            <div class=\"ds-panel__body\">\n              <ul class=\"ds-panel__facts\">\n                <li class=\"ds-panel__fact is-first\"><span class=\"ds-panel__fact-name\">Edition</span><span>Home</span></li>\n                <li class=\"ds-panel__fact\"><span class=\"ds-panel__fact-name\">Version</span><span>3.2</span></li>\n                <li class=\"ds-panel__fact\"><span class=\"ds-panel__fact-name\">File size</span><span>14 MB</span></li>\n                <li class=\"ds-panel__fact\"><span class=\"ds-panel__fact-name\">Time on broadband</span><span>About 1 minute</span></li>\n              </ul>\n              <p class=\"ds-panel__text is-last\">The installer asks before it changes anything and removes cleanly.</p>\n            </div>\n          </div>\n          <div class=\"ds-sidebar is-last\">\n            <h2 class=\"ds-sidebar__title\">While you wait</h2>\n            <ul class=\"ds-sidebar__list\">\n              <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#tour\">Take the tour</a></li>\n              <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#help\">Install on a second computer</a></li>\n              <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#help\">Move from version 2</a></li>\n            </ul>\n          </div>\n        </aside>\n      </div>\n      <div class=\"ds-dialog__backdrop\">\n        <div class=\"ds-dialog\" data-component=\"dialog\" role=\"dialog\" aria-labelledby=\"dl-dialog-title\">\n          <h2 class=\"ds-dialog__title\" id=\"dl-dialog-title\"><span>Cancel this order?</span><a class=\"ds-dialog__close\" href=\"#download\" aria-label=\"Close\">x</a></h2>\n          <div class=\"ds-dialog__body\">\n            <p class=\"ds-dialog__text\">Your details will be cleared and no licence will be sent. The free edition stays available whenever you want it.</p>\n          </div>\n          <div class=\"ds-dialog__actions\">\n            <a class=\"ds-button ds-button--danger\" href=\"#editions\">Cancel the order</a>\n            <a class=\"ds-button ds-button--secondary\" href=\"#download\">Keep going</a>\n          </div>\n        </div>\n      </div>\n    </div>\n  </section>\n\n  <section class=\"ds-view\" id=\"help\">\n    <div class=\"ds-page__body\">\n      <ol class=\"ds-breadcrumb\">\n        <li><a class=\"ds-link\" href=\"#home\">Home</a></li>\n        <li class=\"ds-breadcrumb__sep\" aria-hidden=\"true\">&raquo;</li>\n        <li class=\"ds-breadcrumb__current\">Help</li>\n      </ol>\n      <div class=\"ds-page-header\">\n        <div class=\"ds-page-header__main\">\n          <h1 class=\"ds-page-header__title\">Help and how-to</h1>\n          <p class=\"ds-page-header__text\">Answers written by the people who make chronoskin Sync.</p>\n        </div>\n        <div class=\"ds-page-header__actions\"><a class=\"ds-button\" href=\"#help\">Ask a question</a></div>\n      </div>\n      <ul class=\"ds-stats ds-stats--boxed\">\n        <li class=\"ds-stat is-first\"><span class=\"ds-stat__number\">214</span><span class=\"ds-stat__label\">articles</span></li>\n        <li class=\"ds-stat\"><span class=\"ds-stat__number\">1 day</span><span class=\"ds-stat__label\">usual reply by mail</span></li>\n        <li class=\"ds-stat\"><span class=\"ds-stat__number\">96%</span><span class=\"ds-stat__label\">answered first time</span></li>\n      </ul>\n      <div class=\"ds-page__columns\">\n        <main class=\"ds-page__main\">\n          <ul class=\"ds-tabs\">\n            <li><a class=\"ds-tabs__tab is-current\" href=\"#help\">Getting started</a></li>\n            <li><a class=\"ds-tabs__tab\" href=\"#help\">Sync</a></li>\n            <li><a class=\"ds-tabs__tab\" href=\"#help\">Sharing</a></li>\n            <li><a class=\"ds-tabs__tab\" href=\"#help\">Billing</a></li>\n          </ul>\n          <ul class=\"ds-list\">\n            <li class=\"ds-list__item is-first\">\n              <div class=\"ds-list__body\">\n                <h3 class=\"ds-list__title\"><a class=\"ds-link ds-link--title\" href=\"#tour\">Install on your first computer</a></h3>\n                <p class=\"ds-list__text\">From the download to the first finished sync, with pictures of every window.</p>\n                <p class=\"ds-list__meta\">Updated 18 March, read 41,200 times</p>\n              </div>\n            </li>\n            <li class=\"ds-list__item\">\n              <div class=\"ds-list__body\">\n                <h3 class=\"ds-list__title\"><a class=\"ds-link ds-link--title\" href=\"#tour\">Add a second computer</a></h3>\n                <p class=\"ds-list__text\">Sign in with the same name and choose which folders this machine should hold.</p>\n                <p class=\"ds-list__meta\">Updated 2 March, read 28,950 times</p>\n              </div>\n            </li>\n            <li class=\"ds-list__item\">\n              <div class=\"ds-list__body\">\n                <h3 class=\"ds-list__title\"><a class=\"ds-link ds-link--title is-visited\" href=\"#tour\">Moving to a new computer in four steps</a></h3>\n                <p class=\"ds-list__text\">What to do before the old machine is switched off for the last time.</p>\n                <p class=\"ds-list__meta\">Updated 27 January, read 19,400 times</p>\n              </div>\n            </li>\n            <li class=\"ds-list__item\">\n              <div class=\"ds-list__body\">\n                <h3 class=\"ds-list__title\"><a class=\"ds-link ds-link--title\" href=\"#tour\">Bring back a deleted photo</a></h3>\n                <p class=\"ds-list__text\">Deleted files wait thirty days in the versions drawer before they go.</p>\n                <p class=\"ds-list__meta\">Updated 9 January, read 15,070 times</p>\n              </div>\n            </li>\n          </ul>\n          <ul class=\"ds-pagination\" data-component=\"pagination\">\n            <li><span class=\"ds-pagination__link is-disabled\">Previous</span></li>\n            <li><a class=\"ds-pagination__link is-current\" href=\"#help\">1</a></li>\n            <li><a class=\"ds-pagination__link\" href=\"#help\">2</a></li>\n            <li><a class=\"ds-pagination__link\" href=\"#help\">3</a></li>\n            <li class=\"ds-pagination__gap\">...</li>\n            <li><a class=\"ds-pagination__link\" href=\"#help\">9</a></li>\n            <li><a class=\"ds-pagination__link\" href=\"#help\">Next</a></li>\n          </ul>\n        </main>\n        <aside class=\"ds-page__aside\">\n          <div class=\"ds-sidebar\">\n            <h2 class=\"ds-sidebar__title\">Topics</h2>\n            <ul class=\"ds-sidebar__list\">\n              <li class=\"ds-sidebar__item is-current\"><a class=\"ds-link\" href=\"#help\">Getting started</a><span class=\"ds-sidebar__count\">36</span></li>\n              <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#help\">Sync and conflicts</a><span class=\"ds-sidebar__count\">58</span></li>\n              <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#help\">Albums and sharing</a><span class=\"ds-sidebar__count\">44</span></li>\n              <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#help\">Phones and cards</a><span class=\"ds-sidebar__count\">31</span></li>\n              <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#help\">Orders and licences</a><span class=\"ds-sidebar__count\">45</span></li>\n            </ul>\n          </div>\n          <div class=\"ds-empty\" data-component=\"empty\">\n            <span class=\"ds-empty__orb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 5h16v11H10l-4 4v-4H4z\"/></svg></span>\n            <h2 class=\"ds-empty__title\">No open questions</h2>\n            <p class=\"ds-empty__text\">Questions you send us are listed here until they are answered.</p>\n            <a class=\"ds-button ds-button--secondary\" href=\"#help\">Ask a question</a>\n          </div>\n        </aside>\n      </div>\n    </div>\n  </section>\n\n</div>\n\n<footer class=\"ds-footer\" data-component=\"footer\">\n  <div class=\"ds-footer__columns\">\n    <div>\n      <h2 class=\"ds-footer__heading\">chronoskin Sync</h2>\n      <ul class=\"ds-footer__list\">\n        <li><a class=\"ds-footer__link\" href=\"#tour\">Take the tour</a></li>\n        <li><a class=\"ds-footer__link\" href=\"#editions\">Editions and prices</a></li>\n        <li><a class=\"ds-footer__link\" href=\"#download\">Download</a></li>\n      </ul>\n    </div>\n    <div>\n      <h2 class=\"ds-footer__heading\">Help</h2>\n      <ul class=\"ds-footer__list\">\n        <li><a class=\"ds-footer__link\" href=\"#help\">Getting started</a></li>\n        <li><a class=\"ds-footer__link\" href=\"#help\">Ask a question</a></li>\n        <li><a class=\"ds-footer__link\" href=\"#help\">Release notes</a></li>\n      </ul>\n    </div>\n    <div>\n      <h2 class=\"ds-footer__heading\">Information for</h2>\n      <ul class=\"ds-footer__list\">\n        <li><a class=\"ds-footer__link\" href=\"#editions\">Families</a></li>\n        <li><a class=\"ds-footer__link\" href=\"#editions\">Small offices</a></li>\n        <li><a class=\"ds-footer__link\" href=\"#editions\">Schools</a></li>\n      </ul>\n    </div>\n    <div>\n      <h2 class=\"ds-footer__heading\">About</h2>\n      <ul class=\"ds-footer__list\">\n        <li><a class=\"ds-footer__link\" href=\"#home\">Who makes chronoskin</a></li>\n        <li><a class=\"ds-footer__link\" href=\"#home\">Privacy</a></li>\n        <li><a class=\"ds-footer__link\" href=\"#home\">Terms of use</a></li>\n      </ul>\n    </div>\n  </div>\n  <p class=\"ds-footer__legal\">chronoskin Sync is a placeholder product in a design specimen. All names, prices and figures are invented.</p>\n</footer>\n\n</div>\n</body>\n</html>\n",
    "style.json": "{\n  \"id\": \"v1.frutiger-aero.landing.s01.p01.t01.u02\",\n  \"library\": \"2026.10.07-2111\",\n  \"era\": {\n    \"slug\": \"frutiger-aero\",\n    \"years\": [\n      2004,\n      2010\n    ]\n  },\n  \"archetype\": \"landing\",\n  \"mode\": \"mix\",\n  \"markup\": \"modern\",\n  \"viewport\": {\n    \"width\": 1024,\n    \"fluid\": false\n  },\n  \"source\": \"https://chrono.skin/s/v1-fa-1112\",\n  \"short\": \"v1-fa-1112\"\n}\n",
    "tokens.css": "/* @part palette */\n:root {\n  --color-page: #3a8ccb;\n  --color-canvas: #ffffff;\n  --color-surface: #ffffff;\n  --color-surface-alt: #ebf3fb;\n  --color-surface-strong: #d3e2e9;\n  --color-bar: #2d6fa3;\n  --color-bar-text: #ffffff;\n  --color-bar-alt: #cfe3f3;\n  --color-bar-alt-text: #0b4a7a;\n  --color-inverse: #256f95;\n  --color-inverse-text: #ffffff;\n  --color-text: #333333;\n  --color-text-muted: #636363;\n  --color-heading: #0b4f86;\n  --color-heading-alt: #549c00;\n  --color-link: #07519a;\n  --color-link-quiet: #006699;\n  --color-link-visited: #5a4fa3;\n  --color-link-hover: #2198c4;\n  --color-link-active: #549c00;\n  --color-border: #aaccee;\n  --color-border-strong: #3274a4;\n  --color-border-muted: #d6e3e7;\n  --color-accent: #6eab26;\n  --color-accent-text: #ffffff;\n  --color-accent-alt: #ff9c00;\n  --color-fill-1: #d0e8f8;\n  --color-fill-2: #e8f0f0;\n  --color-fill-3: #dff1c8;\n  --color-fill-4: #fff6c4;\n  --color-button: #36b701;\n  --color-button-text: #ffffff;\n  --color-button-hover-text: #ffffff;\n  --color-button-secondary: #d8e0e8;\n  --color-button-secondary-text: #0b4a7a;\n  --color-input: #ffffff;\n  --color-input-text: #222222;\n  --color-input-border: #7fb1d8;\n  --color-disabled: #e8e8e8;\n  --color-disabled-text: #989898;\n  --color-danger: #c3271b;\n  --color-danger-surface: #fde9e4;\n  --color-success: #3f9a0b;\n  --color-warning: #f0a000;\n  --color-notice: #fff8c9;\n  --color-notice-text: #5a4a00;\n  --color-focus: #7fd4ff;\n  --color-shadow: #0d3f66;\n  --color-overlay: rgba(13, 63, 102, 0.45);\n}\n\n/* @part type */\n:root {\n  --font-body: \"Segoe UI\", Tahoma, \"Lucida Grande\", sans-serif;\n  --font-heading: \"Segoe UI\", Tahoma, \"Lucida Grande\", sans-serif;\n  --font-ui: \"Segoe UI\", Tahoma, \"Lucida Grande\", sans-serif;\n  --font-mono: Consolas, \"Lucida Console\", monospace;\n  --text-base: 12px;\n  --text-small: 11px;\n  --text-ui: 12px;\n  --text-large: 15px;\n  --text-display: 28px;\n  --text-h1: 22px;\n  --text-h2: 17px;\n  --text-h3: 13px;\n  --line-body: 1.45;\n  --line-heading: 1.2;\n  --line-display: 1.15;\n  --weight-body: 400;\n  --weight-bold: 700;\n  --weight-heading: 400;\n  --weight-display: 400;\n  --weight-ui: 400;\n  --heading-transform: none;\n  --heading-tracking: 0;\n  --display-tracking: 0;\n  --ui-transform: none;\n  --link-decoration: none;\n  --link-decoration-hover: underline;\n  --link-decoration-quiet: none;\n}\n\n/* @part surface */\n:root {\n  --border-width: 1px;\n  --border-width-strong: 2px;\n  --border-style: solid;\n  --radius-control: 13px;\n  --radius-panel: 10px;\n  --radius-pill: 20px;\n  --radius-page: 16px;\n  --shadow-panel: inset 0 1px 0 color-mix(in srgb, white 24%, transparent), inset 0 0 0 1px color-mix(in srgb, white 6%, transparent), 0 6px 18px color-mix(in srgb, var(--color-shadow) 55%, transparent);\n  --shadow-control: inset 0 1px 0 color-mix(in srgb, white 45%, transparent), 0 0 8px color-mix(in srgb, var(--color-focus) 40%, transparent), 0 2px 4px color-mix(in srgb, var(--color-shadow) 60%, transparent);\n  --shadow-control-hover: inset 0 1px 0 color-mix(in srgb, white 60%, transparent), 0 0 14px color-mix(in srgb, var(--color-focus) 85%, transparent), 0 2px 4px color-mix(in srgb, var(--color-shadow) 60%, transparent);\n  --shadow-control-pressed: inset 0 2px 6px color-mix(in srgb, var(--color-shadow) 70%, transparent);\n  --shadow-dialog: 0 0 0 1px color-mix(in srgb, white 12%, transparent), 0 0 30px color-mix(in srgb, var(--color-focus) 35%, transparent), 0 16px 40px color-mix(in srgb, var(--color-shadow) 80%, transparent);\n  --shadow-text: 0 0 6px color-mix(in srgb, var(--color-focus) 55%, transparent), 0 -1px 0 color-mix(in srgb, var(--color-shadow) 50%, transparent);\n  --fill-page: radial-gradient(ellipse 70% 420px at 18% 0, color-mix(in srgb, var(--color-accent) 42%, transparent) 0, transparent 100%) 0 0 / 100% 420px no-repeat, radial-gradient(ellipse 55% 380px at 86% 40px, color-mix(in srgb, var(--color-accent-alt) 40%, transparent) 0, transparent 100%) 0 0 / 100% 420px no-repeat, linear-gradient(to bottom, color-mix(in srgb, var(--color-page), black 35%) 0, var(--color-page) 640px) 0 0 / 100% 640px no-repeat, var(--color-page);\n  --fill-bar: linear-gradient(to bottom, color-mix(in srgb, white 30%, transparent) 0, color-mix(in srgb, white 8%, transparent) 50%, transparent 50%), linear-gradient(to bottom, color-mix(in srgb, var(--color-bar), white 14%) 0, color-mix(in srgb, var(--color-bar), black 35%) 100%);\n  --fill-bar-alt: linear-gradient(to bottom, color-mix(in srgb, white 20%, transparent) 0, transparent 60%), linear-gradient(to bottom, color-mix(in srgb, var(--color-bar-alt), white 10%) 0, color-mix(in srgb, var(--color-bar-alt), black 25%) 100%);\n  --fill-inverse: radial-gradient(ellipse 50% 110% at 22% 100%, color-mix(in srgb, var(--color-accent) 55%, transparent) 0, transparent 100%), radial-gradient(ellipse 45% 120% at 80% 0, color-mix(in srgb, var(--color-accent-alt) 50%, transparent) 0, transparent 100%), linear-gradient(to bottom, color-mix(in srgb, var(--color-inverse), black 55%) 0, var(--color-inverse) 100%);\n  --fill-accent: linear-gradient(to bottom, color-mix(in srgb, white 55%, transparent) 0, transparent 55%), linear-gradient(to bottom, var(--color-accent) 0, color-mix(in srgb, var(--color-accent), black 22%) 100%);\n  --fill-panel: linear-gradient(to bottom, color-mix(in srgb, white 10%, transparent) 0, transparent 34px), linear-gradient(to bottom, color-mix(in srgb, var(--color-surface-alt) 78%, transparent) 0, color-mix(in srgb, var(--color-surface) 72%, transparent) 100%);\n  --fill-button: linear-gradient(to bottom, color-mix(in srgb, white 60%, transparent) 0, color-mix(in srgb, white 14%, transparent) 46%, transparent 50%, color-mix(in srgb, white 22%, transparent) 100%), var(--color-button);\n  --fill-button-hover: linear-gradient(to bottom, color-mix(in srgb, white 72%, transparent) 0, color-mix(in srgb, white 24%, transparent) 46%, color-mix(in srgb, white 8%, transparent) 50%, color-mix(in srgb, white 34%, transparent) 100%), var(--color-button);\n  --fill-button-secondary: linear-gradient(to bottom, color-mix(in srgb, white 34%, transparent) 0, color-mix(in srgb, white 8%, transparent) 46%, transparent 50%, color-mix(in srgb, white 10%, transparent) 100%), var(--color-button-secondary);\n  --fill-input: linear-gradient(to bottom, color-mix(in srgb, var(--color-input), black 40%) 0, var(--color-input) 8px);\n  --focus-ring: 2px solid var(--color-focus);\n  --transition: none;\n  --backdrop-blur: 10px;\n}\n"
  }
}
