{
  "id": "v1-nm-8118",
  "long_id": "v1.neumorphism.shop.s08.p01.t01.u08",
  "name": "Neumorphism shop",
  "era": {
    "slug": "neumorphism",
    "code": "nm",
    "name": "Neumorphism",
    "years": [
      2019,
      2021
    ],
    "description": "Soft UI, 2019 to 2021: controls pressed out of, or into, a single pale surface by a pair of light and dark blurred shadows, with low contrast and very round corners."
  },
  "archetype": "shop",
  "mode": "mix",
  "viewport": {
    "width": 1440,
    "fluid": false,
    "responsive": true
  },
  "summary": "Neumorphism, or soft UI, is the interface style of 2019 to 2021 in which the page and everything on it share one pale colour and shape comes only from a pair of blurred shadows, a light one towards the top left and a dark one towards the bottom right. Besides apps and control panels it was drawn for small shops of objects that suit it, clocks, speakers and lamps: a product standing on a raised plinth, cards with the picture in a well, round add keys. This pack is that shop on a mint surface with forest green keys and one gold accent, in the late, crisper form of the style: a hairline around every raised part, a tight shallow relief, serif headings over a humanist sans.",
  "url": "https://chrono.skin/s/v1-nm-8118",
  "preview_url": "https://chrono.skin/s/v1-nm-8118/specimen.html",
  "files": {
    "STYLE.md": "# Neumorphism shop\n\n## Summary\n\nNeumorphism, or soft UI, is the interface style of 2019 to 2021 in which the page and everything on it share one pale colour and shape comes only from a pair of blurred shadows, a light one towards the top left and a dark one towards the bottom right. Besides apps and control panels it was drawn for small shops of objects that suit it, clocks, speakers and lamps: a product standing on a raised plinth, cards with the picture in a well, round add keys. This pack is that shop on a mint surface with forest green keys and one gold accent, in the late, crisper form of the style: a hairline around every raised part, a tight shallow relief, serif headings over a humanist sans.\n\n## Layout\n\n- Content column: `--size-page` (1160px), centred in `.ds-page__inner`, with `--space-5` (24px) side padding. The page does not stretch beyond it.\n- Navigation: `.ds-nav` stands on the bare page in two tiers as wide as the column. `.ds-nav__top` has the search well at the left, the brand in the exact centre and the round keys (basket with its count, account) at the right. Under it `.ds-nav__list` is a centred row of section links between two 1px rules; the current link is pressed in, and the Clocks item is a `.ds-menu` that drops a list of departments.\n- Home page: `.ds-page__sections`, sections `--space-8` (72px) apart. The first is a `.ds-page__stack` at 32px gaps: the `.ds-hero` in two halves (text on the bare page at the left, the clock of the month on a raised plinth at the right), the `.ds-stat` well across the column and the `.ds-grid` of four departments. The next sections each start with a centred `.ds-page__title`: the `.ds-shelf` of four products, then a `.ds-page__row` (three to two) with the `.ds-list` of reviews beside a `.ds-panel` of rating bars.\n- Inner pages have no hero. `--space-6` (32px) under the navigation come the `.ds-breadcrumb` and, 12px below it, the `.ds-page-header`: title at `--text-h1` with one muted line at the left, one button at the right, on the bare page. The catalogue is `.ds-page__shop`: the `.ds-sidebar` of departments and filters, `--size-side` (248px), at the left, and a stack of `.ds-tabs`, a `.ds-shelf--three` and the pagination at the right. A product page is `.ds-page__row--even`: the `.ds-carousel` of pictures in one half, the buying panel and an accordion in the other. The basket is `.ds-page__row--aside`: the working column (steps, notices, table, buttons, dialog) and a `--size-aside` (368px) column with the order panel and the address form. A text page is `.ds-page__row`: prose in a panel beside an accordion and a small well. Keep the columns of a row about equally long.\n- Views. The specimen is one site with five views, each `<section class=\"ds-view\" id=\"...\">` inside `.ds-page__inner`; the navigation and the footer stand outside them and one view shows at a time. `home` is the shop front: hero, promises, departments, the most wanted clocks, reviews. `shop` is the catalogue: departments and filters, shape tabs, six products, pagination. `clock` is the product page: pictures, price and options, the facts in an accordion. `basket` is the basket: steps, notices, the table of items, its buttons and the dialog that removes an item, beside the order sum and the address form. `care` is the text page: care and returns as prose, questions and the empty state of returns. The navigation presses in the link of the current view, by one `:has()` rule per view next to `.ds-nav__link.is-current`.\n- Spacing scale: `--space-1` 4px (dot to text, menu gaps), `--space-2` 8px (label to control), `--space-3` 12px (icon to text, gaps between tab keys), `--space-4` 16px (card padding, gaps between buttons), `--space-5` 24px (panel padding, form field gap, gap between department wells), `--space-6` 32px (the gap between every pair of raised panels and cards), `--space-7` 48px (between the halves of the hero and of a product page), `--space-8` 72px (between the sections of the home page, above the footer).\n- Raised cards need room for their shadows: never place two closer than `--space-5`, and never put a raised panel inside another. Inside a card use wells, rules and round keys.\n- `--size-rule` (1px) is the weight of the rules between rows and around the navigation row; it is a layout token because the rules stay when a surface part sets `--border-width` to 0.\n- Below 900px the hero, every row and the catalogue stack (the filters come above the shelf, their links in a wrapping row), the shelf and the grid have two columns, and the navigation top wraps: brand at the left, keys at the right, the search well on a line of its own. Below 560px the side padding drops to `--space-4`, the hero title takes `--text-h1`, the stats and the grid stack, product cards tighten, form rows stack and table columns marked `.ds-table__opt` are hidden, so nothing scrolls sideways. On a phone (560px and below) `.ds-nav__list` is not shown; the round menu key `.ds-nav__fold` in `.ds-nav__tools` opens a full-width list of the views as `.ds-menu__link` rows, the open view pressed in.\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 for everything: `--font-body`, `--font-heading` and `--font-ui` are the same rounded humanist sans stack (Nunito Sans first, then Avenir Next and system sans). `--font-mono` is for code only. Some references used commercial geometric sans faces; this stack is the closest open one.\n- Sizes: `--text-base` 16px body, `--text-ui` 15px for buttons, inputs, navigation, table cells and notices, `--text-small` 13px for meta text, labels and badges, `--text-large` 20px for lead text and large buttons, `--text-h3` 18px, `--text-h2` 24px (also stat and tile figures), `--text-h1` 32px, `--text-display` 40px for the hero title only.\n- Weights: 400 body, 600 for headings, controls, labels and links (`--weight-heading`, `--weight-ui`, `--weight-bold`). Line height 1.6 for body, 1.3 for headings and controls.\n- Uppercase appears only on table head cells and `.ds-sidebar__heading`, written in the component; `--heading-transform` and `--ui-transform` are `none`.\n- One surface colour: `--color-page`, `--color-canvas`, `--color-surface`, `--color-bar`, `--color-button-secondary` and `--color-input` are the same grey (224 224 224). `--color-surface-alt` (232) is one step lighter, for grid tiles, hovered rows and the footer; `--color-surface-strong` (216) one step darker, for inline code, quiet and status badges and disabled controls.\n- The relief has two colours: `--color-shadow` (190 190 190) is the dark side and `--color-border-muted` (white) is the light side. Every shadow token is built from these two, so a palette changes the relief by changing them. `--color-border-muted` is not used for anything else.\n- Text is `--color-text` (navy 0 31 63) on the surface, `--color-text-muted` (48 72 96) for meta and lead text, `--color-heading-alt` for panel titles and form labels.\n- Each text token goes with its own fill and no other: `--color-bar-text` on `--fill-bar` (navigation, table head), `--color-bar-alt-text` on `--fill-bar-alt` (footer), `--color-inverse-text` on `--fill-inverse` (code block), `--color-accent-text` on `--fill-accent` (badge, current page), `--color-button-text` on `--fill-button`, `--color-button-secondary-text` on `--fill-button-secondary` (secondary button, pagination keys, current tab), `--color-input-text` on `--fill-input` (controls, tab track, empty state, the hero well), `--color-notice-text` on `--color-notice`, `--color-danger` on `--color-danger-surface`.\n- Links in running text are `--color-link` (dark green) at weight 600 with no underline; underline appears on hover. Navigation, titles and table links are `--color-link-quiet` (navy).\n- `--color-accent` (green 59 132 60) is the one saturated colour: default badge, current page, checked checkbox and switch, slider thumb. `--color-accent-alt` (orange) only marks \"new\" as a dot. `--color-button` is navy, so the primary button is the darkest thing on the page.\n- `--color-fill-1` to `--color-fill-4` colour the round chips of the grid tiles and nothing else; no text is set on them.\n- Status colours appear as an 8px dot on a flat pill (`--color-success`, `--color-warning`, `--color-danger`); `--color-danger` is also the text of errors and of the destructive button.\n- One-off values with no token: circles use `border-radius: 50%`; the tab track takes `--radius-panel` around tabs of `--radius-control`; inline code uses half of `--radius-control`; placeholders are `--color-input-text` at opacity 0.55.\n\n## Components\n\n- `.ds-page`: on `<body>`; paints the surface colour and sets the base type. `.ds-page__inner` is the width container, `.ds-page__sections` the home page's far-apart sections, `.ds-page__stack` a vertical stack, `.ds-page__row` two columns three to two, `.ds-page__row--even` two halves, `.ds-page__row--aside` a working column and a 368px column, `.ds-page__shop` the filter column and the shelf. `.ds-page__title` is a centred section heading on the bare page, with an optional `.ds-page__title-note` line. `.ds-view` is one screen of the specimen (see Layout); an application that gives each page its own document does not need it.\n- `.ds-brand`: the site's mark and name, centred in the top tier of the header, linking to the home page: `.ds-brand__mark` is a small raised key (`--size-brand`, 40px) dressed like the primary button (`--fill-button`, `--color-button-text`, the hairline from `--border-width`, `--radius-control`, `--shadow-control`) holding the mark as inline SVG painted with `currentColor`; `.ds-brand__name` is the name in the heading font at `--text-h3`, in `--color-bar-text`. The name `chronoskin` and its mark are placeholders: replace them with the installing project's own name and logo and keep the key.\n- `.ds-nav`: the two-tier header. `.ds-nav__top` holds `.ds-nav__search` (a sunk well that leads to the catalogue, with `.ds-nav__search-text`), the `.ds-brand` and `.ds-nav__tools` with round `.ds-nav__key` keys (a `.ds-badge` on a key is its count) and a `.ds-avatar`. `.ds-nav__list` is the ruled row of `.ds-nav__link` items; the current one is `is-current` and pressed in; `is-hover` raises a link.\n- `.ds-nav__fold`: below 560px the navigation; a `.ds-menu` whose round key opens a full-width list of the site's views as `.ds-menu__link` rows, the open one pressed in. Hidden above 560px, where `.ds-nav__list` shows the views.\n- `.ds-menu`: a drop-down under a navigation item. The `<li>` carries `.ds-menu`; its `.ds-menu__list` is a raised sheet (208px) shown while the item is hovered or holds the focus, or with `is-open`. `.ds-menu__link` is one entry with an optional `.ds-menu__note` count; `is-hover` lightens it.\n- `.ds-hero`: the page introduction in two halves: `.ds-hero__text` on the bare page with `.ds-hero__eyebrow` (a badge and a muted line), `.ds-hero__title` at the display size, `.ds-hero__lead` and `.ds-hero__actions` (two large buttons); `.ds-hero__art` is a raised plinth with the radius of `--radius-page` holding a `.ds-clock--large` and a sunk `.ds-hero__tag` with the name and the `.ds-hero__price`. Use it once, on the home page.\n- `.ds-clock`: the shop's product picture, drawn without images: a raised case holding a sunk `.ds-clock__face` with the ticks and hands as inline SVG, and a `.ds-clock__cap` over the centre coloured by `.ds-clock--1` to `--4` from `--color-fill-*`. `.ds-clock--square` is the square case, `.ds-clock--large` (264px) the size for the hero and the carousel. An installing project replaces it with its own pictures in the same wells.\n- `.ds-page-header`: head of an inner page, used instead of the hero: `.ds-page-header__text` holds `.ds-page-header__title` and one line of `.ds-page-header__lead`; `.ds-page-header__actions` sits at the right with one button. No fill or shadow of its own. Put the breadcrumb directly above it.\n- `.ds-prose`: running text: h1 to h3, paragraphs, lists, inline `code`. `.ds-prose__lead` for a lead paragraph, `.ds-prose__code` for a dark code block. Put prose inside a `.ds-panel`.\n- `.ds-link`: link in running text; states `is-visited`, `is-hover`, `is-active`, `is-focus`. `.ds-link--quiet` for undecorated links in tables and titles. `.ds-link__sample` lays out a row of links.\n- `.ds-button`: primary, 40px high, raised by `--shadow-control`; `is-hover` lifts it, `is-active` sinks it. `.ds-button--secondary` is the same key in the surface colour. `.ds-button--danger` is the destructive action: a surface-coloured key with `--color-danger` text and hairline; use it once, last in a group or as the confirming button of a dialog. `.ds-button--large` (52px) for the hero and the buying panel, `.ds-button--block` for a full-width button. `disabled` or `is-disabled` is flat, with no shadow. `.ds-button__row` spaces a group; `.ds-button__row--after` sets it one step below what precedes it. One primary button per group.\n- `.ds-form`: vertical form inside a panel. `.ds-form__field` wraps a `.ds-form__label` and a control: `.ds-form__input`, `.ds-form__textarea`, `.ds-form__select` (inside `.ds-form__select-wrap` with a `.ds-form__chevron` icon), `.ds-form__range` (sunk track, raised accent thumb). `.ds-form__check` is a label row holding a `.ds-form__checkbox` (raised square, accent when checked). An invalid input takes `is-error`, which replaces its well with a 2px danger ring, and is followed by `.ds-form__error`; `.ds-form__hint` is help text; `.ds-form__actions` holds the buttons; `.ds-form__row` puts two fields side by side. Text controls are wells: they use `--shadow-control-pressed`.\n- `.ds-switch`: the on/off control, a `<label>` holding `.ds-switch__input` (the checkbox, invisible over the whole label), `.ds-switch__track` (a sunk pill with a raised thumb) and `.ds-switch__label`, which may hold a `.ds-switch__hint` line. When on, the thumb moves right and takes the accent. `.ds-switch--end` puts the track at the right end of a full-width row, for filters and options.\n- `.ds-table`: data table as one raised sheet: small uppercase head, rows divided by a 1px rule, no stripes. `.ds-table__num` right-aligns a numeric column, `.ds-table__meta` is muted text, `.ds-table__wide` gives the name column 38%, `.ds-table__opt` marks a column that is dropped on a phone, `is-hover` on a row lightens it.\n- `.ds-list`: reviews on one raised sheet with rules between rows. `.ds-list__item` holds a `.ds-avatar`, a `.ds-list__body` (`.ds-list__title`, `.ds-list__text`, `.ds-list__meta`) and a sunk `.ds-list__mark` with the rating. `.ds-list__dot` is a status dot; `--new` takes the second accent.\n- `.ds-panel`: the basic raised card. `.ds-panel__title` is the title line (a badge may stand at its right), `.ds-panel__body` the padded content, `.ds-panel__text` a muted paragraph (`--after` sets it one step lower), `.ds-panel__facts` a list of labels and values, `.ds-panel__rows` a stack of `.ds-panel__row` lines or switches with `.ds-panel__note` at the right, `.ds-panel__score` a line led by a large `.ds-panel__figure`, `.ds-panel__meter` a row of label, `.ds-progress` and count, `.ds-panel__total` the ruled sum line of an order.\n- `.ds-shelf`: the grid of products, four across; `.ds-shelf--three` beside the filter column. Each `.ds-product` is a raised card: `.ds-product__art` (a well, linked to the product, holding the picture), `.ds-product__tags` (badges), `.ds-product__name` in the heading font, `.ds-product__meta`, and `.ds-product__foot` with the `.ds-product__price` and the round `.ds-product__add` key in the primary button's dress, which is flat when `disabled`.\n- `.ds-grid`: four department wells in a row, each a `.ds-grid__cell` link pressed into the page with a raised `.ds-grid__chip` disc at its left, coloured by `--1` to `--4` from `--color-fill-*`, then `.ds-grid__title` and `.ds-grid__text`.\n- `.ds-stat`: the row of three summary figures, one long well; each `.ds-stat__item` is a single figure, a `.ds-stat__value` (33px, heading font) over a `.ds-stat__label`, divided from the next by a rule.\n- `.ds-tabs`: a row of separate raised keys, `.ds-tabs__tab`; the one with `is-current` is pressed in. Use it to switch what a shelf or a list shows, left-aligned over it, not for site navigation.\n- `.ds-badge`: a tag for counts and \"new\", filled with the accent. `.ds-badge--quiet` is a flat tag in `--color-surface-strong` with `--color-text`. Status labels are `.ds-badge--success`, `.ds-badge--warning` and `.ds-badge--danger`: the same flat tag with a leading 8px dot in the status colour. Never colour the whole tag.\n- `.ds-sidebar`: the raised panel at the left of the catalogue: `.ds-sidebar__heading` (small uppercase), `.ds-sidebar__list`, `.ds-sidebar__link` with a `.ds-sidebar__count`, pressed in when `is-current`; `.ds-sidebar__group` is a ruled group of filters (switches, a range).\n- `.ds-progress`: how far something is: a pressed track 8px high with a `.ds-progress__bar` in the accent; the level is a class on the track, `.ds-progress--5`, `--25`, `--40`, `--60`, `--75` or `--90`. `.ds-progress__legend` is the line of labels over it, used for the steps of the checkout. `.ds-progress--ring` with a `.ds-progress__face` is the ring form, for a single share.\n- `.ds-tooltip`: a hint for an icon key or a term. Wrap the trigger and a `.ds-tooltip__tip` in it; the tip is a small inverted label above the trigger, shown on hover and keyboard focus, or with `is-open`.\n- `.ds-avatar`: a person. `.ds-avatar__pic` is a raised disc (40px) with initials in the secondary button's dress; `.ds-avatar--accent` fills it with the accent. `.ds-avatar__text` with `.ds-avatar__name` and `.ds-avatar__meta` may stand beside it.\n- `.ds-accordion`: one raised sheet of `<details>` sections, `.ds-accordion__item`, divided by rules: `.ds-accordion__head` is the summary with a round `.ds-accordion__chevron` key that is pressed in and turned while the section is open; `.ds-accordion__body` holds the text. Use it for product facts and for questions.\n- `.ds-carousel`: the pictures of one product in a large well: `.ds-carousel__track` scrolls sideways with scroll-snap and shows one `.ds-carousel__slide` (a picture and a `.ds-carousel__caption`); `.ds-carousel__foot` holds two round `.ds-carousel__arrow` keys and the `.ds-carousel__dots`, whose current `.ds-carousel__dot` is `is-current`.\n- `.ds-notice`: information notice sunk into the surface, with `.ds-notice__icon` and `.ds-notice__title`; `.ds-notice--error` has a pale red well and `--color-danger` text. `.ds-notice__stack` stacks several.\n- `.ds-pagination`: row of raised 40px keys, `.ds-pagination__link`; the current page is `is-current`, flat and filled with the accent.\n- `.ds-breadcrumb`: small muted trail above the page header of an inner page, `.ds-breadcrumb__item` separated by slashes, `.ds-breadcrumb__link` for the linked levels.\n- `.ds-dialog`: a tinted sheet (`--color-overlay`) with a centred `.ds-dialog__box`, 440px wide, raised by the deepest shadow: `.ds-dialog__title`, `.ds-dialog__body`, `.ds-dialog__actions` right-aligned.\n- `.ds-empty`: empty state as a sunk well: a raised `.ds-empty__icon` disc, `.ds-empty__title`, `.ds-empty__text` and one primary button.\n- `.ds-footer`: a full-width band in `--fill-bar-alt`, everything centred: `.ds-footer__inner` holds `.ds-footer__name`, `.ds-footer__links` with `.ds-footer__link` items and a `.ds-footer__note`.\n\n## Never\n\n- `row-gap <= 16px`: rows of a table or list touch and are divided by a rule; option rows inside a panel sit 16px apart.\n- `block-gap <= 72px`: cards sit 32px apart and the sections of the home page 72px.\n- `content-width <= 1160px`: everything stays in the centred column.\n- `font-size <= 40px`: the hero title is the largest text.\n- `font-size >= 13px`: meta text and badges are the smallest text.\n- `font-weight <= 600`: headings are semibold, never heavy.\n- `font-families <= 2`: one sans for everything and one monospace for code.\n- `line-height <= 1.65`: body text is set at 1.6.\n- `letter-spacing = 0`: no tracking on any text.\n- `underlined-links <= 10%`: links are marked by colour and weight; underline is a hover state.\n- `uppercase-text <= 10%`: uppercase is for table heads and sidebar headings only.\n- `border-width <= 2px`: raised parts carry a 1px hairline; the 2px focus or error ring is the heaviest line.\n- `border-radius <= 40px`: tags and controls are 9px, cards 18px, the plinth, the carousel and the dialog 26px, the department wells 40px; only pills, discs and the drawn clock cases go higher.\n- `box-shadow-blur <= 40px`: controls blur 7px, cards 14px, the dialog and the large clock 40px.\n- `text-shadow = none`: text is flat; only boxes have relief.\n- `gradient-fills <= 30%`: keys are gently domed from top to bottom; cards, wells and the page are flat.\n\n## Extending\n\nDerive a new component from the nearest one in the specimen. Decide first whether it is raised or sunk: a container that holds content is raised and starts from `.ds-panel` (fill, hairline, radius and `--shadow-panel` together); something the user fills in, a picture or a state is sunk and starts from `.ds-form__input` (`--fill-input`, `--color-input-text`, `--shadow-control-pressed`); something the user presses starts from `.ds-button--secondary`, round like `.ds-nav__key` when it carries only an icon. Keep the fill equal to the surface behind it, since the shadows only read on the shared colour, and never draw a shadow in a raw colour: use the shadow tokens as they are. Use tokens only; for a size with no token use `calc()` over `--space-*` or `--size-*`. Keep each text token on the fill it belongs to, and keep the accent to one small element per group.\n",
    "components.css": "/* Layout tokens (structure part) */\n:root {\n  --size-page: 1160px;\n  --size-side: 248px;\n  --size-aside: 368px;\n  --size-dialog: 440px;\n  --size-search: 280px;\n  --size-menu: 208px;\n  --size-control: 40px;\n  --size-control-large: 52px;\n  --size-key: 44px;\n  --size-clock: 104px;\n  --size-clock-large: 264px;\n  --size-ring: 112px;\n  --size-avatar: 40px;\n  --size-icon: 16px;\n  --size-glyph: 22px;\n  --size-dot: 8px;\n  --size-chip: 48px;\n  --size-thumb: 20px;\n  --size-track: 8px;\n  --size-check: 20px;\n  --size-rule: 1px;\n  --size-brand: 40px;\n  --space-1: 4px;\n  --space-2: 8px;\n  --space-3: 12px;\n  --space-4: 16px;\n  --space-5: 24px;\n  --space-6: 32px;\n  --space-7: 48px;\n  --space-8: 72px;\n}\n\n/* shell */\n.ds-page {\n  margin: 0;\n  min-height: 100vh;\n  background: var(--fill-page);\n  background-color: var(--color-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 {\n  box-sizing: border-box;\n}\n.ds-page__icon {\n  width: var(--size-icon);\n  height: var(--size-icon);\n  flex: none;\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/* brand: the mark on a small raised key in the primary button's dress, then the name */\n.ds-brand {\n  display: inline-flex;\n  align-items: center;\n  gap: var(--space-3);\n  color: var(--color-bar-text);\n  text-decoration: none;\n}\n.ds-brand__mark {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  flex: none;\n  width: var(--size-brand);\n  height: var(--size-brand);\n  background-color: var(--color-button);\n  background: var(--fill-button);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-text);\n}\n.ds-brand__mark svg {\n  width: var(--size-thumb);\n  height: var(--size-thumb);\n}\n.ds-brand__name {\n  font-family: var(--font-heading);\n  font-size: var(--text-h3);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n  text-shadow: var(--shadow-text);\n}\n\n/* page header (inner pages) */\n.ds-page-header {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: flex-end;\n  justify-content: space-between;\n  gap: var(--space-4) var(--space-6);\n  margin: var(--space-3) 0 var(--space-6);\n}\n.ds-page-header__text {\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  text-shadow: var(--shadow-text);\n}\n.ds-page-header__lead {\n  margin: var(--space-1) 0 0;\n  color: var(--color-text-muted);\n}\n.ds-page-header__actions {\n  display: flex;\n  flex-wrap: wrap;\n  gap: var(--space-4);\n}\n\n/* prose */\n.ds-prose {\n  max-width: 72ch;\n  color: var(--color-text);\n}\n.ds-prose h1,\n.ds-prose h2,\n.ds-prose h3 {\n  margin: var(--space-6) 0 var(--space-2);\n  color: var(--color-heading);\n  font-family: var(--font-heading);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n}\n.ds-prose h1 {\n  margin-top: 0;\n  font-size: var(--text-h1);\n}\n.ds-prose h2 {\n  font-size: var(--text-h2);\n}\n.ds-prose h3 {\n  font-size: var(--text-h3);\n}\n.ds-prose p,\n.ds-prose ul,\n.ds-prose ol {\n  margin: 0 0 var(--space-4);\n}\n.ds-prose ul,\n.ds-prose ol {\n  padding-left: var(--space-5);\n}\n.ds-prose li + li {\n  margin-top: var(--space-1);\n}\n.ds-prose strong {\n  font-weight: var(--weight-bold);\n}\n.ds-prose code {\n  padding: 0 var(--space-1);\n  background: var(--color-surface-strong);\n  border-radius: calc(var(--radius-control) / 3);\n  font-family: var(--font-mono);\n  font-size: var(--text-small);\n}\n.ds-prose__lead {\n  color: var(--color-text-muted);\n  font-size: var(--text-large);\n}\n.ds-prose__code {\n  margin: 0 0 var(--space-4);\n  padding: var(--space-4) var(--space-5);\n  overflow: auto;\n  background-color: var(--color-inverse);\n  background: var(--fill-inverse);\n  border-radius: min(var(--radius-control), var(--space-4));\n  color: var(--color-inverse-text);\n  font-family: var(--font-mono);\n  font-size: var(--text-small);\n  line-height: var(--line-body);\n}\n\n/* links */\n.ds-link {\n  color: var(--color-link);\n  font-weight: var(--weight-bold);\n  text-decoration: var(--link-decoration);\n  transition: var(--transition);\n}\n.ds-link:visited,\n.ds-link.is-visited {\n  color: var(--color-link-visited);\n}\n.ds-link:hover,\n.ds-link.is-hover {\n  color: var(--color-link-hover);\n  text-decoration: var(--link-decoration-hover);\n}\n.ds-link:active,\n.ds-link.is-active {\n  color: var(--color-link-active);\n}\n.ds-link:focus-visible,\n.ds-link.is-focus {\n  outline: var(--focus-ring);\n}\n.ds-link--quiet,\n.ds-link--quiet:visited {\n  color: var(--color-link-quiet);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-link__sample {\n  display: flex;\n  flex-wrap: wrap;\n  gap: var(--space-2) var(--space-5);\n}\n\n/* buttons: raised at rest, lifted on hover, sunk when pressed */\n.ds-button {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: var(--space-2);\n  min-height: var(--size-control);\n  margin: 0;\n  padding: 0 var(--space-5);\n  background-color: var(--color-button);\n  background: var(--fill-button);\n  border: var(--border-width) var(--border-style) transparent;\n  border-radius: var(--radius-control);\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-ui);\n  line-height: var(--line-heading);\n  text-decoration: none;\n  text-transform: var(--ui-transform);\n  text-shadow: var(--shadow-text);\n  white-space: nowrap;\n  cursor: pointer;\n  transition: var(--transition);\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  box-shadow: var(--shadow-control-pressed);\n}\n.ds-button:focus-visible,\n.ds-button.is-focus {\n  outline: var(--focus-ring);\n  outline-offset: var(--space-1);\n}\n.ds-button--secondary,\n.ds-button--secondary:hover,\n.ds-button--secondary.is-hover {\n  background-color: var(--color-button-secondary);\n  background: var(--fill-button-secondary);\n  border-color: var(--color-border);\n  color: var(--color-button-secondary-text);\n  text-shadow: none;\n}\n.ds-button--danger,\n.ds-button--danger:hover,\n.ds-button--danger.is-hover {\n  background-color: var(--color-button-secondary);\n  background: var(--fill-button-secondary);\n  border-color: var(--color-danger);\n  color: var(--color-danger);\n  text-shadow: none;\n}\n.ds-button--large {\n  min-height: var(--size-control-large);\n  padding: 0 var(--space-6);\n  font-size: var(--text-large);\n}\n.ds-button--block {\n  width: 100%;\n}\n.ds-button:disabled,\n.ds-button.is-disabled {\n  background: var(--color-disabled);\n  border-color: transparent;\n  box-shadow: none;\n  color: var(--color-disabled-text);\n  text-shadow: none;\n  cursor: default;\n}\n.ds-button__row {\n  display: flex;\n  flex-wrap: wrap;\n  gap: var(--space-4);\n}\n\n/* form: every control is a well sunk into the surface */\n.ds-form {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-5);\n}\n.ds-form__field {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-2);\n  min-width: 0;\n}\n.ds-form__row {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  gap: var(--space-5);\n  align-items: start;\n}\n.ds-form__label {\n  display: flex;\n  justify-content: space-between;\n  color: var(--color-heading-alt);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n}\n.ds-form__input,\n.ds-form__select,\n.ds-form__textarea {\n  width: 100%;\n  min-height: var(--size-control);\n  margin: 0;\n  padding: 0 var(--space-4);\n  background-color: var(--color-input);\n  background: var(--fill-input);\n  border: var(--border-width) var(--border-style) var(--color-input-border);\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control-pressed);\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-heading);\n  transition: var(--transition);\n}\n.ds-form__textarea {\n  min-height: calc(2 * var(--size-control) + var(--space-4));\n  padding: var(--space-3) var(--space-4);\n  border-radius: min(var(--radius-control), var(--space-4));\n  line-height: var(--line-body);\n  resize: vertical;\n}\n.ds-form__input::placeholder,\n.ds-form__textarea::placeholder {\n  color: var(--color-input-text);\n  opacity: 0.55;\n}\n.ds-form__select {\n  padding-right: var(--space-7);\n  appearance: none;\n  -webkit-appearance: none;\n}\n.ds-form__select-wrap {\n  position: relative;\n  display: block;\n}\n.ds-form__chevron {\n  position: absolute;\n  top: 50%;\n  right: var(--space-4);\n  width: var(--size-icon);\n  height: var(--size-icon);\n  margin-top: calc(var(--size-icon) / -2);\n  color: var(--color-input-text);\n  pointer-events: none;\n}\n.ds-form__input:focus-visible,\n.ds-form__select:focus-visible,\n.ds-form__textarea:focus-visible,\n.ds-form__input.is-focus {\n  outline: var(--focus-ring);\n  outline-offset: var(--space-1);\n}\n.ds-form__input.is-error {\n  box-shadow: 0 0 0 var(--border-width-strong) var(--color-danger);\n}\n.ds-form__error {\n  color: var(--color-danger);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n}\n.ds-form__hint {\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  line-height: var(--line-heading);\n}\n.ds-form__check {\n  display: flex;\n  align-items: center;\n  gap: var(--space-3);\n  color: var(--color-text);\n  font-size: var(--text-ui);\n  line-height: var(--line-heading);\n}\n.ds-form__checkbox {\n  flex: none;\n  width: var(--size-check);\n  height: var(--size-check);\n  margin: 0;\n  padding: var(--space-1);\n  appearance: none;\n  -webkit-appearance: none;\n  background-color: var(--color-input);\n  background: var(--fill-input);\n  border: var(--border-width) var(--border-style) var(--color-input-border);\n  border-radius: min(calc(var(--radius-control) / 2), calc(var(--size-check) / 4));\n  box-shadow: var(--shadow-control);\n  cursor: pointer;\n  transition: var(--transition);\n}\n.ds-form__checkbox:checked,\n.ds-form__checkbox.is-checked {\n  background: var(--fill-accent);\n  background-clip: content-box;\n}\n.ds-form__checkbox:focus-visible {\n  outline: var(--focus-ring);\n  outline-offset: var(--space-1);\n}\n/* the era's slider: a sunk track with a raised round thumb */\n.ds-form__range {\n  width: 100%;\n  height: var(--size-thumb);\n  margin: 0;\n  appearance: none;\n  -webkit-appearance: none;\n  background: transparent;\n}\n.ds-form__range::-webkit-slider-runnable-track {\n  height: var(--size-track);\n  background: var(--fill-input);\n  border-radius: var(--size-track);\n  box-shadow: var(--shadow-control-pressed);\n}\n.ds-form__range::-webkit-slider-thumb {\n  width: var(--size-thumb);\n  height: var(--size-thumb);\n  margin-top: calc((var(--size-track) - var(--size-thumb)) / 2);\n  -webkit-appearance: none;\n  background: var(--fill-accent);\n  border-radius: 50%;\n  box-shadow: var(--shadow-control);\n}\n.ds-form__range::-moz-range-track {\n  height: var(--size-track);\n  background: var(--fill-input);\n  border-radius: var(--size-track);\n  box-shadow: var(--shadow-control-pressed);\n}\n.ds-form__range::-moz-range-thumb {\n  width: var(--size-thumb);\n  height: var(--size-thumb);\n  background: var(--fill-accent);\n  border-radius: 50%;\n  box-shadow: var(--shadow-control);\n}\n.ds-form__actions {\n  display: flex;\n  flex-wrap: wrap;\n  gap: var(--space-4);\n  margin-top: var(--space-2);\n}\n\n/* table: one raised sheet, rows divided by a rule */\n.ds-table {\n  width: 100%;\n  border-collapse: separate;\n  border-spacing: 0;\n  background-color: var(--color-surface);\n  background: var(--fill-panel);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-panel);\n  color: var(--color-text);\n  font-size: var(--text-ui);\n  line-height: var(--line-heading);\n}\n.ds-table th,\n.ds-table td {\n  padding: var(--space-4) var(--space-5);\n  text-align: left;\n  vertical-align: middle;\n}\n.ds-table th {\n  background: var(--fill-bar);\n  color: var(--color-bar-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  text-transform: uppercase;\n  white-space: nowrap;\n}\n.ds-table th:first-child {\n  border-top-left-radius: var(--radius-panel);\n}\n.ds-table th:last-child {\n  border-top-right-radius: var(--radius-panel);\n}\n.ds-table td {\n  border-top: var(--size-rule) var(--border-style) var(--color-border);\n}\n.ds-table tbody tr:hover td,\n.ds-table tbody tr.is-hover td {\n  background: var(--color-surface-alt);\n}\n.ds-table tbody tr:last-child td:first-child {\n  border-bottom-left-radius: var(--radius-panel);\n}\n.ds-table tbody tr:last-child td:last-child {\n  border-bottom-right-radius: var(--radius-panel);\n}\n.ds-table .ds-table__num {\n  text-align: right;\n  font-variant-numeric: tabular-nums;\n  white-space: nowrap;\n}\n.ds-table .ds-table__meta {\n  color: var(--color-text-muted);\n}\n.ds-table .ds-table__wide {\n  width: 38%;\n}\n\n/* panel */\n.ds-panel {\n  background-color: var(--color-surface);\n  background: var(--fill-panel);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-panel);\n  color: var(--color-text);\n}\n.ds-panel__title {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: var(--space-3);\n  margin: 0;\n  padding: var(--space-5) var(--space-5) 0;\n  color: var(--color-heading-alt);\n  font-family: var(--font-heading);\n  font-size: var(--text-h3);\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 {\n  padding: var(--space-5);\n}\n.ds-panel__title + .ds-panel__body {\n  padding-top: var(--space-3);\n}\n.ds-panel__text {\n  margin: 0 0 var(--space-4);\n  color: var(--color-text-muted);\n  font-size: var(--text-ui);\n}\n.ds-panel__text:last-child {\n  margin-bottom: 0;\n}\n.ds-panel__text--after,\n.ds-button__row--after {\n  margin-top: var(--space-5);\n}\n/* rows of a label and a value inside a panel */\n.ds-panel__facts {\n  display: grid;\n  grid-template-columns: auto minmax(0, 1fr);\n  gap: var(--space-3) var(--space-5);\n  margin: 0;\n  font-size: var(--text-ui);\n  line-height: var(--line-heading);\n}\n.ds-panel__facts dt {\n  color: var(--color-text-muted);\n}\n.ds-panel__facts dd {\n  margin: 0;\n  color: var(--color-text);\n  font-weight: var(--weight-bold);\n  text-align: right;\n  font-variant-numeric: tabular-nums;\n}\n/* rows of anything inside a panel: a person and a note, a switch and its hint */\n.ds-panel__rows {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-4);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-panel__row {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: var(--space-3);\n  min-width: 0;\n}\n.ds-panel__note {\n  flex: none;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  line-height: var(--line-heading);\n}\n\n/* badge */\n.ds-badge {\n  display: inline-flex;\n  align-items: center;\n  gap: var(--space-1);\n  padding: 0 var(--space-3);\n  background-color: var(--color-accent);\n  background: var(--fill-accent);\n  border-radius: var(--radius-pill);\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: var(--line-body);\n  white-space: nowrap;\n  vertical-align: middle;\n}\n/* quiet and status badges: a flat pill one step darker than the surface; status adds a dot */\n.ds-badge--quiet,\n.ds-badge--success,\n.ds-badge--warning,\n.ds-badge--danger {\n  background: var(--color-surface-strong);\n  color: var(--color-text);\n}\n.ds-badge--success::before,\n.ds-badge--warning::before,\n.ds-badge--danger::before {\n  content: \"\";\n  width: var(--size-dot);\n  height: var(--size-dot);\n  flex: none;\n  border-radius: 50%;\n}\n.ds-badge--success::before {\n  background: var(--color-success);\n}\n.ds-badge--warning::before {\n  background: var(--color-warning);\n}\n.ds-badge--danger::before {\n  background: var(--color-danger);\n}\n\n/* notice: a message sunk into the surface */\n.ds-notice {\n  display: flex;\n  align-items: flex-start;\n  gap: var(--space-3);\n  padding: var(--space-4) var(--space-5);\n  background: var(--color-notice);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: min(var(--radius-panel), var(--space-5));\n  box-shadow: var(--shadow-control-pressed);\n  color: var(--color-notice-text);\n  font-size: var(--text-ui);\n  line-height: var(--line-body);\n}\n.ds-notice--error {\n  background: var(--color-danger-surface);\n  border-color: var(--color-danger);\n  color: var(--color-danger);\n}\n.ds-notice__icon {\n  width: var(--size-thumb);\n  height: var(--size-thumb);\n  flex: none;\n  margin-top: calc((var(--text-ui) * var(--line-body) - var(--size-thumb)) / 2);\n}\n.ds-notice__title {\n  font-weight: var(--weight-bold);\n}\n.ds-notice__stack {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-4);\n}\n\n/* pagination: raised keys, the current one in the accent */\n.ds-pagination {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: center;\n  gap: var(--space-3);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-pagination__link {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-width: var(--size-control);\n  min-height: var(--size-control);\n  padding: 0 var(--space-3);\n  background-color: var(--color-button-secondary);\n  background: var(--fill-button-secondary);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-control);\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-ui);\n  line-height: var(--line-heading);\n  text-decoration: none;\n  transition: var(--transition);\n}\n.ds-pagination__link:hover,\n.ds-pagination__link.is-hover {\n  box-shadow: var(--shadow-control-hover);\n}\n.ds-pagination__link.is-current {\n  background: var(--fill-accent);\n  border-color: transparent;\n  box-shadow: none;\n  color: var(--color-accent-text);\n}\n\n/* breadcrumb */\n.ds-breadcrumb {\n  display: flex;\n  flex-wrap: wrap;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  line-height: var(--line-body);\n}\n.ds-breadcrumb__item + .ds-breadcrumb__item::before {\n  content: \"/\";\n  margin: 0 var(--space-2);\n}\n.ds-breadcrumb__link {\n  color: var(--color-link-quiet);\n  font-weight: var(--weight-bold);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-breadcrumb__link:hover,\n.ds-breadcrumb__link.is-hover {\n  color: var(--color-link-hover);\n  text-decoration: var(--link-decoration-hover);\n}\n\n/* dialog, shown open in the page flow */\n.ds-dialog {\n  display: flex;\n  justify-content: center;\n  padding: var(--space-7) var(--space-5);\n  background: var(--color-overlay);\n  border-radius: var(--radius-page);\n}\n.ds-dialog__box {\n  width: 100%;\n  max-width: var(--size-dialog);\n  padding: var(--space-6);\n  background-color: var(--color-surface);\n  background: var(--fill-panel);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-page);\n  box-shadow: var(--shadow-dialog);\n  color: var(--color-text);\n}\n.ds-dialog__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  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n}\n.ds-dialog__body {\n  color: var(--color-text-muted);\n}\n.ds-dialog__actions {\n  display: flex;\n  justify-content: flex-end;\n  gap: var(--space-4);\n  margin-top: var(--space-6);\n}\n\n/* empty state: a sunk well with a raised icon disc */\n.ds-empty {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  padding: var(--space-6) var(--space-5);\n  background-color: var(--color-input);\n  background: var(--fill-input);\n  border: var(--border-width) var(--border-style) var(--color-input-border);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-control-pressed);\n  color: var(--color-input-text);\n  text-align: center;\n}\n.ds-empty__icon {\n  width: var(--size-control-large);\n  height: var(--size-control-large);\n  margin-bottom: var(--space-4);\n  padding: var(--space-3);\n  background-color: var(--color-button-secondary);\n  background: var(--fill-button-secondary);\n  border-radius: 50%;\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-secondary-text);\n}\n.ds-empty__title {\n  margin: 0;\n  font-family: var(--font-heading);\n  font-size: var(--text-h3);\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-empty__text {\n  max-width: 40ch;\n  margin: var(--space-2) 0 var(--space-5);\n  font-size: var(--text-ui);\n}\n\n/* switch: a sunk pill over a checkbox, its raised thumb takes the accent when on */\n.ds-switch {\n  position: relative;\n  display: inline-flex;\n  align-items: center;\n  gap: var(--space-3);\n  color: var(--color-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  line-height: var(--line-heading);\n  cursor: pointer;\n}\n.ds-switch__input {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  margin: 0;\n  opacity: 0;\n  cursor: pointer;\n}\n.ds-switch__track {\n  position: relative;\n  flex: none;\n  width: calc(2 * var(--size-thumb) + 2 * var(--space-1) + var(--space-1));\n  height: calc(var(--size-thumb) + 2 * var(--space-1));\n  background-color: var(--color-input);\n  background: var(--fill-input);\n  border: var(--border-width) var(--border-style) var(--color-input-border);\n  border-radius: var(--size-thumb);\n  box-shadow: var(--shadow-control-pressed);\n  transition: var(--transition);\n}\n.ds-switch__track::before {\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  left: var(--space-1);\n  width: var(--size-thumb);\n  height: var(--size-thumb);\n  margin-top: calc(var(--size-thumb) / -2);\n  background-color: var(--color-button-secondary);\n  background: var(--fill-button-secondary);\n  border-radius: 50%;\n  box-shadow: var(--shadow-control);\n  transition: var(--transition);\n}\n.ds-switch__input:checked + .ds-switch__track::before,\n.ds-switch.is-on .ds-switch__track::before {\n  left: auto;\n  right: var(--space-1);\n  background: var(--fill-accent);\n}\n.ds-switch__input:focus-visible + .ds-switch__track {\n  outline: var(--focus-ring);\n  outline-offset: var(--space-1);\n}\n.ds-switch__input:disabled + .ds-switch__track {\n  background: var(--color-disabled);\n  box-shadow: none;\n}\n.ds-switch--end {\n  display: flex;\n  flex-direction: row-reverse;\n  justify-content: space-between;\n}\n.ds-switch__label {\n  min-width: 0;\n}\n.ds-switch__hint {\n  display: block;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n}\n\n/* progress: a pressed track with an accent bar, or a ring around a sunk face */\n.ds-progress {\n  display: block;\n  height: var(--size-track);\n  overflow: hidden;\n  background-color: var(--color-input);\n  background: var(--fill-input);\n  border-radius: var(--size-track);\n  box-shadow: var(--shadow-control-pressed);\n}\n.ds-progress__bar {\n  display: block;\n  width: 50%;\n  height: 100%;\n  background-color: var(--color-accent);\n  background: var(--fill-accent);\n  border-radius: var(--size-track);\n}\n.ds-progress--5 .ds-progress__bar {\n  width: 5%;\n}\n.ds-progress--25 .ds-progress__bar {\n  width: 25%;\n}\n.ds-progress--75 .ds-progress__bar {\n  width: 75%;\n}\n.ds-progress--ring {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  flex: none;\n  width: var(--size-ring);\n  height: var(--size-ring);\n  overflow: visible;\n  background: conic-gradient(var(--color-accent) 50%, var(--color-surface-strong) 0);\n  border-radius: 50%;\n  box-shadow: var(--shadow-control-hover);\n}\n.ds-progress--ring.ds-progress--25 {\n  background: conic-gradient(var(--color-accent) 25%, var(--color-surface-strong) 0);\n}\n.ds-progress--ring.ds-progress--75 {\n  background: conic-gradient(var(--color-accent) 75%, var(--color-surface-strong) 0);\n}\n.ds-progress__face {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  width: 80%;\n  height: 80%;\n  background-color: var(--color-input);\n  background: var(--fill-input);\n  border-radius: 50%;\n  box-shadow: var(--shadow-control-pressed);\n  color: var(--color-input-text);\n}\n.ds-progress__legend {\n  display: flex;\n  justify-content: space-between;\n  gap: var(--space-3);\n  margin-bottom: var(--space-2);\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  line-height: var(--line-heading);\n  font-variant-numeric: tabular-nums;\n}\n\n/* tooltip: a small inverted label over its trigger, on hover or focus */\n.ds-tooltip {\n  position: relative;\n  display: inline-flex;\n}\n.ds-tooltip__tip {\n  display: none;\n  position: absolute;\n  bottom: calc(100% + var(--space-2));\n  left: 50%;\n  z-index: 6;\n  padding: var(--space-1) var(--space-3);\n  transform: translateX(-50%);\n  background-color: var(--color-inverse);\n  background: var(--fill-inverse);\n  border-radius: min(var(--radius-control), var(--space-3));\n  color: var(--color-inverse-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-body);\n  line-height: var(--line-body);\n  text-transform: none;\n  white-space: nowrap;\n  pointer-events: none;\n}\n.ds-tooltip:hover .ds-tooltip__tip,\n.ds-tooltip:focus-within .ds-tooltip__tip,\n.ds-tooltip.is-open .ds-tooltip__tip {\n  display: block;\n}\n\n/* avatar: initials on a raised disc, alone or beside a name */\n.ds-avatar {\n  display: inline-flex;\n  align-items: center;\n  gap: var(--space-3);\n  min-width: 0;\n  color: inherit;\n  text-decoration: none;\n}\n.ds-avatar__pic {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  flex: none;\n  width: var(--size-avatar);\n  height: var(--size-avatar);\n  background-color: var(--color-button-secondary);\n  background: var(--fill-button-secondary);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: 50%;\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-secondary-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-avatar--accent .ds-avatar__pic {\n  background: var(--fill-accent);\n  border-color: transparent;\n  color: var(--color-accent-text);\n}\n.ds-avatar__text {\n  min-width: 0;\n}\n.ds-avatar__name {\n  display: block;\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n}\n.ds-avatar__meta {\n  display: block;\n  font-size: var(--text-small);\n  line-height: var(--line-heading);\n  opacity: 0.75;\n}\n\n/* accordion: one raised sheet of sections that open and close */\n.ds-accordion {\n  background-color: var(--color-surface);\n  background: var(--fill-panel);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-panel);\n  color: var(--color-text);\n}\n.ds-accordion__item + .ds-accordion__item {\n  border-top: var(--size-rule) var(--border-style) var(--color-border);\n}\n.ds-accordion__head {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: var(--space-4);\n  padding: var(--space-4) var(--space-5);\n  color: var(--color-heading-alt);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n  list-style: none;\n  cursor: pointer;\n}\n.ds-accordion__head::-webkit-details-marker {\n  display: none;\n}\n.ds-accordion__head:focus-visible {\n  outline: var(--focus-ring);\n}\n.ds-accordion__chevron {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  flex: none;\n  width: calc(var(--size-icon) + var(--space-3));\n  height: calc(var(--size-icon) + var(--space-3));\n  border-radius: 50%;\n  box-shadow: var(--shadow-control);\n  color: inherit;\n  transition: var(--transition);\n}\n.ds-accordion__item[open] .ds-accordion__chevron {\n  box-shadow: var(--shadow-control-pressed);\n}\n.ds-accordion__chevron svg {\n  width: var(--size-icon);\n  height: var(--size-icon);\n  transition: var(--transition);\n}\n.ds-accordion__item[open] .ds-accordion__chevron svg {\n  transform: rotate(180deg);\n}\n.ds-accordion__body {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-4);\n  padding: 0 var(--space-5) var(--space-5);\n  color: var(--color-text-muted);\n  font-size: var(--text-ui);\n}\n.ds-accordion__body p {\n  margin: 0;\n}\n\n/* width container and the columns of the pages */\n.ds-page__inner {\n  width: 100%;\n  max-width: calc(var(--size-page) + 2 * var(--space-5));\n  margin: 0 auto;\n  padding: 0 var(--space-5);\n}\n/* the home page: sections one below the other, far apart */\n.ds-page__sections {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-8);\n}\n/* a vertical stack of blocks, one step apart */\n.ds-page__stack {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-6);\n  min-width: 0;\n}\n/* two columns, the left one wider */\n.ds-page__row {\n  display: grid;\n  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);\n  gap: var(--space-6);\n  align-items: start;\n}\n.ds-page__row--even {\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  gap: var(--space-7);\n}\n/* the basket: the working column and the order column at the right */\n.ds-page__row--aside {\n  grid-template-columns: minmax(0, 1fr) var(--size-aside);\n}\n/* the catalogue: filters at the left, the shelf at the right */\n.ds-page__shop {\n  display: grid;\n  grid-template-columns: var(--size-side) minmax(0, 1fr);\n  gap: var(--space-6);\n  align-items: start;\n}\n/* a section heading on the bare page, centred over its row */\n.ds-page__title {\n  margin: 0 0 var(--space-6);\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  text-align: center;\n}\n.ds-page__title-note {\n  display: block;\n  margin-top: var(--space-1);\n  color: var(--color-text-muted);\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  letter-spacing: 0;\n  text-transform: none;\n}\n.ds-view:not(.ds-view--home) {\n  padding-top: var(--space-6);\n}\n.ds-view--home {\n  padding-top: var(--space-7);\n}\n\n/* nav: the brand centred between the search well and the round keys, the sections in a ruled row under it */\n.ds-nav {\n  max-width: calc(var(--size-page) + 2 * var(--space-5));\n  margin: 0 auto;\n  padding: var(--space-5) var(--space-5) 0;\n  background: var(--fill-bar);\n  color: var(--color-bar-text);\n}\n.ds-nav__top {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);\n  align-items: center;\n  gap: var(--space-5);\n  padding-bottom: var(--space-5);\n}\n.ds-nav__search {\n  display: flex;\n  align-items: center;\n  gap: var(--space-2);\n  width: 100%;\n  max-width: var(--size-search);\n  min-height: var(--size-control);\n  padding: 0 var(--space-4);\n  background-color: var(--color-input);\n  background: var(--fill-input);\n  border: var(--border-width) var(--border-style) var(--color-input-border);\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control-pressed);\n  color: var(--color-input-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  line-height: var(--line-heading);\n  text-decoration: none;\n}\n.ds-nav__search-text {\n  opacity: 0.6;\n}\n.ds-nav__tools {\n  display: flex;\n  align-items: center;\n  justify-content: flex-end;\n  gap: var(--space-4);\n}\n.ds-nav__key {\n  position: relative;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: var(--size-key);\n  height: var(--size-key);\n  background-color: var(--color-button-secondary);\n  background: var(--fill-button-secondary);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: 50%;\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-secondary-text);\n  text-decoration: none;\n  transition: var(--transition);\n}\n.ds-nav__key svg {\n  width: var(--size-thumb);\n  height: var(--size-thumb);\n}\n.ds-nav__key:hover,\n.ds-nav__key.is-hover {\n  box-shadow: var(--shadow-control-hover);\n}\n.ds-nav__key .ds-badge {\n  position: absolute;\n  top: calc(var(--space-1) * -1);\n  right: calc(var(--space-2) * -1);\n  padding: 0 var(--space-2);\n}\n.ds-nav__list {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  justify-content: center;\n  gap: var(--space-2) var(--space-4);\n  margin: 0;\n  padding: var(--space-3) 0;\n  list-style: none;\n  border-top: var(--size-rule) var(--border-style) var(--color-border-strong);\n  border-bottom: var(--size-rule) var(--border-style) var(--color-border-strong);\n}\n.ds-nav__link {\n  display: flex;\n  align-items: center;\n  gap: var(--space-2);\n  padding: var(--space-2) var(--space-4);\n  border-radius: var(--radius-control);\n  color: var(--color-bar-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-ui);\n  line-height: var(--line-heading);\n  text-decoration: var(--link-decoration-quiet);\n  text-transform: var(--ui-transform);\n  transition: var(--transition);\n}\n.ds-nav__link:hover,\n.ds-nav__link.is-hover {\n  box-shadow: var(--shadow-control);\n}\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(#shop:target) .ds-nav__link[href=\"#shop\"],\n.ds-page:has(#clock:target) .ds-nav__link[href=\"#clock\"],\n.ds-page:has(#basket:target) .ds-nav__link[href=\"#basket\"],\n.ds-page:has(#care:target) .ds-nav__link[href=\"#care\"] {\n  box-shadow: var(--shadow-control-pressed);\n}\n.ds-nav__link:focus-visible,\n.ds-nav__link.is-focus {\n  outline: var(--focus-ring);\n}\n\n/* menu: a raised list that drops under a navigation item on hover or focus */\n.ds-menu {\n  position: relative;\n}\n.ds-menu__list {\n  display: none;\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 5;\n  flex-direction: column;\n  gap: var(--space-1);\n  width: var(--size-menu);\n  margin: var(--space-1) 0 0;\n  padding: var(--space-2);\n  list-style: none;\n  background-color: var(--color-surface);\n  background: var(--fill-panel);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: min(var(--radius-panel), var(--space-5));\n  box-shadow: var(--shadow-dialog);\n}\n.ds-menu:hover .ds-menu__list,\n.ds-menu:focus-within .ds-menu__list,\n.ds-menu.is-open .ds-menu__list {\n  display: flex;\n}\n.ds-menu__link {\n  display: flex;\n  justify-content: space-between;\n  gap: var(--space-3);\n  padding: var(--space-2) var(--space-3);\n  border-radius: min(var(--radius-control), var(--space-4));\n  color: var(--color-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-ui);\n  line-height: var(--line-heading);\n  text-decoration: var(--link-decoration-quiet);\n  transition: var(--transition);\n}\n.ds-menu__link:hover,\n.ds-menu__link.is-hover {\n  background: var(--color-surface-alt);\n}\n.ds-menu__note {\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  font-weight: var(--weight-body);\n}\n\n/* hero: the text on the bare page, the clock of the month on a raised plinth beside it */\n.ds-hero {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n  gap: var(--space-7);\n  align-items: center;\n}\n.ds-hero__text {\n  min-width: 0;\n}\n.ds-hero__eyebrow {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-3);\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  line-height: var(--line-heading);\n}\n.ds-hero__title {\n  margin: var(--space-4) 0 0;\n  color: var(--color-heading);\n  font-family: var(--font-heading);\n  font-size: var(--text-display);\n  font-weight: var(--weight-display);\n  line-height: var(--line-display);\n  letter-spacing: var(--display-tracking);\n  text-transform: var(--heading-transform);\n  text-shadow: var(--shadow-text);\n}\n.ds-hero__lead {\n  max-width: 44ch;\n  margin: var(--space-4) 0 0;\n  color: var(--color-text-muted);\n  font-size: var(--text-large);\n}\n.ds-hero__actions {\n  display: flex;\n  flex-wrap: wrap;\n  gap: var(--space-4);\n  margin-top: var(--space-6);\n}\n.ds-hero__art {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: var(--space-6);\n  padding: var(--space-7) var(--space-6) var(--space-6);\n  background-color: var(--color-surface);\n  background: var(--fill-panel);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-page);\n  box-shadow: var(--shadow-panel);\n  color: var(--color-text);\n  text-decoration: none;\n}\n.ds-hero__tag {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  justify-content: center;\n  gap: var(--space-2) var(--space-4);\n  padding: var(--space-2) var(--space-5);\n  background-color: var(--color-input);\n  background: var(--fill-input);\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control-pressed);\n  color: var(--color-input-text);\n  font-size: var(--text-ui);\n  line-height: var(--line-heading);\n}\n.ds-hero__price {\n  font-family: var(--font-heading);\n  font-size: var(--text-h3);\n  font-weight: var(--weight-heading);\n  font-variant-numeric: tabular-nums;\n}\n\n/* clock: the shop's product picture, a raised case around a sunk face with drawn hands */\n.ds-clock {\n  position: relative;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  flex: none;\n  width: var(--size-clock);\n  max-width: 100%;\n  aspect-ratio: 1;\n  background-color: var(--color-button-secondary);\n  background: var(--fill-button-secondary);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: 50%;\n  box-shadow: var(--shadow-control-hover);\n}\n.ds-clock__face {\n  display: flex;\n  width: 80%;\n  height: 80%;\n  background-color: var(--color-input);\n  background: var(--fill-input);\n  border-radius: 50%;\n  box-shadow: var(--shadow-control-pressed);\n  color: var(--color-input-text);\n}\n.ds-clock__face svg {\n  width: 100%;\n  height: 100%;\n}\n.ds-clock__cap {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  width: 12%;\n  height: 12%;\n  transform: translate(-50%, -50%);\n  background: var(--color-fill-4);\n  border-radius: 50%;\n  box-shadow: var(--shadow-control);\n}\n.ds-clock--1 .ds-clock__cap {\n  background: var(--color-fill-1);\n}\n.ds-clock--2 .ds-clock__cap {\n  background: var(--color-fill-2);\n}\n.ds-clock--3 .ds-clock__cap {\n  background: var(--color-fill-3);\n}\n.ds-clock--4 .ds-clock__cap {\n  background: var(--color-fill-4);\n}\n.ds-clock--square,\n.ds-clock--square .ds-clock__face {\n  border-radius: 22%;\n}\n.ds-clock--large {\n  width: var(--size-clock-large);\n  box-shadow: var(--shadow-dialog);\n}\n\n/* stats: three figures in one long well, divided by rules */\n.ds-stat {\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n  margin: 0;\n  padding: var(--space-5) 0;\n  list-style: none;\n  background-color: var(--color-input);\n  background: var(--fill-input);\n  border: var(--border-width) var(--border-style) var(--color-input-border);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-control-pressed);\n  color: var(--color-input-text);\n  text-align: center;\n}\n.ds-stat__item {\n  padding: 0 var(--space-5);\n}\n.ds-stat__item + .ds-stat__item {\n  border-left: var(--size-rule) var(--border-style) var(--color-border-strong);\n}\n.ds-stat__value {\n  display: block;\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  font-variant-numeric: tabular-nums;\n  text-shadow: var(--shadow-text);\n}\n.ds-stat__label {\n  display: block;\n  font-size: var(--text-small);\n  line-height: var(--line-heading);\n  opacity: 0.8;\n}\n\n/* grid: four departments, each a long well with a coloured raised disc at its left */\n.ds-grid {\n  display: grid;\n  grid-template-columns: repeat(4, minmax(0, 1fr));\n  gap: var(--space-5);\n}\n.ds-grid__cell {\n  display: flex;\n  align-items: center;\n  gap: var(--space-4);\n  padding: var(--space-4);\n  background-color: var(--color-input);\n  background: var(--fill-input);\n  border: var(--border-width) var(--border-style) var(--color-input-border);\n  border-radius: calc(var(--size-chip) / 2 + var(--space-4));\n  box-shadow: var(--shadow-control-pressed);\n  color: var(--color-input-text);\n  text-decoration: none;\n  transition: var(--transition);\n}\n.ds-grid__chip {\n  flex: none;\n  width: var(--size-chip);\n  height: var(--size-chip);\n  border-radius: 50%;\n  box-shadow: var(--shadow-control);\n}\n.ds-grid__cell--1 .ds-grid__chip {\n  background: var(--color-fill-1);\n}\n.ds-grid__cell--2 .ds-grid__chip {\n  background: var(--color-fill-2);\n}\n.ds-grid__cell--3 .ds-grid__chip {\n  background: var(--color-fill-3);\n}\n.ds-grid__cell--4 .ds-grid__chip {\n  background: var(--color-fill-4);\n}\n.ds-grid__title {\n  display: block;\n  font-family: var(--font-ui);\n  font-size: var(--text-base);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n}\n.ds-grid__text {\n  display: block;\n  font-size: var(--text-small);\n  line-height: var(--line-heading);\n  opacity: 0.8;\n}\n\n/* shelf and product: the catalogue, raised cards with the picture in a well */\n.ds-shelf {\n  display: grid;\n  grid-template-columns: repeat(4, minmax(0, 1fr));\n  gap: var(--space-6);\n}\n.ds-shelf--three {\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n.ds-product {\n  display: flex;\n  flex-direction: column;\n  padding: var(--space-4);\n  background-color: var(--color-surface);\n  background: var(--fill-panel);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-panel);\n  color: var(--color-text);\n}\n.ds-product__art {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  padding: var(--space-5) var(--space-4);\n  background-color: var(--color-input);\n  background: var(--fill-input);\n  border-radius: min(calc(var(--radius-panel) - var(--space-2)), var(--space-5));\n  box-shadow: var(--shadow-control-pressed);\n}\n.ds-product__tags {\n  display: flex;\n  flex-wrap: wrap;\n  gap: var(--space-2);\n  min-height: calc(var(--text-small) * var(--line-body));\n  margin: var(--space-4) var(--space-2) var(--space-2);\n}\n.ds-product__name {\n  margin: 0 var(--space-2);\n  color: var(--color-link-quiet);\n  font-family: var(--font-heading);\n  font-size: var(--text-h3);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n  letter-spacing: var(--heading-tracking);\n  text-decoration: var(--link-decoration-quiet);\n  text-transform: var(--heading-transform);\n}\n.ds-product__meta {\n  margin: var(--space-1) var(--space-2) 0;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  line-height: var(--line-heading);\n}\n.ds-product__foot {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: var(--space-3);\n  margin: auto var(--space-2) 0;\n  padding: var(--space-4) 0 var(--space-2);\n}\n.ds-product__price {\n  color: var(--color-heading);\n  font-family: var(--font-ui);\n  font-size: var(--text-large);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n  font-variant-numeric: tabular-nums;\n}\n.ds-product__add {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  flex: none;\n  width: var(--size-control);\n  height: var(--size-control);\n  padding: 0;\n  background-color: var(--color-button);\n  background: var(--fill-button);\n  border: var(--border-width) var(--border-style) transparent;\n  border-radius: 50%;\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-text);\n  cursor: pointer;\n  transition: var(--transition);\n}\n.ds-product__add svg {\n  width: var(--size-icon);\n  height: var(--size-icon);\n}\n.ds-product__add:hover,\n.ds-product__add.is-hover {\n  box-shadow: var(--shadow-control-hover);\n}\n.ds-product__add:active,\n.ds-product__add.is-active {\n  box-shadow: var(--shadow-control-pressed);\n}\n.ds-product__add:disabled {\n  background: var(--color-disabled);\n  box-shadow: none;\n  color: var(--color-disabled-text);\n  cursor: default;\n}\n\n/* list: what buyers wrote, on one raised sheet, the mark in a well at the right */\n.ds-list {\n  margin: 0;\n  padding: var(--space-2) var(--space-5);\n  list-style: none;\n  background-color: var(--color-surface);\n  background: var(--fill-panel);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-panel);\n  color: var(--color-text);\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}\n.ds-list__item + .ds-list__item {\n  border-top: var(--size-rule) var(--border-style) var(--color-border);\n}\n.ds-list__body {\n  flex: 1;\n  min-width: 0;\n}\n.ds-list__title {\n  display: block;\n  color: var(--color-link-quiet);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-list__text {\n  display: block;\n  margin-top: var(--space-1);\n  font-size: var(--text-ui);\n}\n.ds-list__meta {\n  display: block;\n  margin-top: var(--space-1);\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  line-height: var(--line-heading);\n}\n.ds-list__mark {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  flex: none;\n  min-width: var(--size-chip);\n  height: var(--size-control);\n  padding: 0 var(--space-2);\n  background-color: var(--color-input);\n  background: var(--fill-input);\n  border-radius: min(var(--radius-control), var(--space-4));\n  box-shadow: var(--shadow-control-pressed);\n  color: var(--color-input-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  line-height: 1;\n  font-variant-numeric: tabular-nums;\n}\n.ds-list__dot {\n  display: inline-block;\n  width: var(--size-dot);\n  height: var(--size-dot);\n  margin-right: var(--space-1);\n  background: var(--color-success);\n  border-radius: 50%;\n}\n.ds-list__dot--new {\n  background: var(--color-accent-alt);\n}\n\n/* rating rows inside a panel: a label, a bar, a count */\n.ds-panel__meter {\n  display: grid;\n  grid-template-columns: auto minmax(0, 1fr) auto;\n  align-items: center;\n  gap: var(--space-3);\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  line-height: var(--line-heading);\n  font-variant-numeric: tabular-nums;\n}\n.ds-panel__score {\n  display: flex;\n  align-items: baseline;\n  gap: var(--space-2);\n  margin: 0 0 var(--space-4);\n  color: var(--color-text-muted);\n  font-size: var(--text-ui);\n}\n.ds-panel__figure {\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  font-variant-numeric: tabular-nums;\n}\n.ds-panel__total {\n  display: flex;\n  align-items: baseline;\n  justify-content: space-between;\n  gap: var(--space-3);\n  margin: var(--space-4) 0;\n  padding-top: var(--space-4);\n  border-top: var(--size-rule) var(--border-style) var(--color-border);\n  color: var(--color-heading);\n  font-weight: var(--weight-bold);\n}\n.ds-panel__total .ds-panel__figure {\n  font-size: var(--text-h2);\n}\n\n/* tabs: a row of separate raised keys, the current one pressed in */\n.ds-tabs {\n  display: flex;\n  flex-wrap: wrap;\n  gap: var(--space-3);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-tabs__tab {\n  display: block;\n  padding: var(--space-2) var(--space-5);\n  background-color: var(--color-button-secondary);\n  background: var(--fill-button-secondary);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-control);\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-ui);\n  line-height: var(--line-heading);\n  text-decoration: none;\n  text-transform: var(--ui-transform);\n  white-space: nowrap;\n  transition: var(--transition);\n}\n.ds-tabs__tab:hover,\n.ds-tabs__tab.is-hover {\n  box-shadow: var(--shadow-control-hover);\n}\n.ds-tabs__tab.is-current {\n  background: var(--fill-input);\n  border-color: var(--color-input-border);\n  box-shadow: var(--shadow-control-pressed);\n  color: var(--color-input-text);\n}\n\n/* sidebar: the departments and the filters, one raised panel at the left of the catalogue */\n.ds-sidebar {\n  padding: var(--space-5) var(--space-4);\n  background-color: var(--color-surface);\n  background: var(--fill-panel);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-panel);\n}\n.ds-sidebar__heading {\n  margin: 0 var(--space-3) var(--space-3);\n  color: var(--color-heading-alt);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n  text-transform: uppercase;\n}\n.ds-sidebar__list {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-1);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-sidebar__link {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: var(--space-2);\n  padding: var(--space-2) var(--space-3);\n  border-radius: var(--radius-control);\n  color: var(--color-link-quiet);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-ui);\n  line-height: var(--line-body);\n  text-decoration: var(--link-decoration-quiet);\n  transition: var(--transition);\n}\n.ds-sidebar__count {\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  font-weight: var(--weight-body);\n  font-variant-numeric: tabular-nums;\n}\n.ds-sidebar__link:hover,\n.ds-sidebar__link.is-hover {\n  box-shadow: var(--shadow-control);\n}\n.ds-sidebar__link.is-current {\n  box-shadow: var(--shadow-control-pressed);\n}\n.ds-sidebar__group {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-4);\n  margin: var(--space-5) var(--space-3) 0;\n  padding-top: var(--space-5);\n  border-top: var(--size-rule) var(--border-style) var(--color-border);\n}\n.ds-sidebar__group .ds-sidebar__heading {\n  margin: 0;\n}\n\n/* carousel: the pictures of one product in a well, one showing, dots under it */\n.ds-carousel {\n  padding: var(--space-5);\n  background-color: var(--color-input);\n  background: var(--fill-input);\n  border: var(--border-width) var(--border-style) var(--color-input-border);\n  border-radius: var(--radius-page);\n  box-shadow: var(--shadow-control-pressed);\n  color: var(--color-input-text);\n}\n.ds-carousel__track {\n  display: flex;\n  overflow-x: auto;\n  scroll-snap-type: x mandatory;\n  scrollbar-width: none;\n}\n.ds-carousel__slide {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: var(--space-5);\n  flex: 0 0 100%;\n  min-width: 0;\n  padding: var(--space-7) var(--space-5) var(--space-5);\n  scroll-snap-align: start;\n}\n.ds-carousel__caption {\n  font-size: var(--text-small);\n  line-height: var(--line-heading);\n  opacity: 0.8;\n}\n.ds-carousel__foot {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: var(--space-4);\n}\n.ds-carousel__arrow {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: var(--size-control);\n  height: var(--size-control);\n  padding: 0;\n  background-color: var(--color-button-secondary);\n  background: var(--fill-button-secondary);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: 50%;\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-secondary-text);\n  cursor: pointer;\n  transition: var(--transition);\n}\n.ds-carousel__arrow svg {\n  width: var(--size-icon);\n  height: var(--size-icon);\n}\n.ds-carousel__arrow:hover,\n.ds-carousel__arrow.is-hover {\n  box-shadow: var(--shadow-control-hover);\n}\n.ds-carousel__dots {\n  display: flex;\n  justify-content: center;\n  gap: var(--space-2);\n}\n.ds-carousel__dot {\n  width: var(--size-dot);\n  height: var(--size-dot);\n  background: var(--color-surface-strong);\n  border-radius: 50%;\n}\n.ds-carousel__dot.is-current {\n  background: var(--fill-accent);\n}\n\n/* footer: a full-width band, everything centred */\n.ds-footer {\n  margin-top: var(--space-8);\n  background-color: var(--color-bar-alt);\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n  font-size: var(--text-small);\n}\n.ds-footer__inner {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: var(--space-3);\n  max-width: calc(var(--size-page) + 2 * var(--space-5));\n  margin: 0 auto;\n  padding: var(--space-6) var(--space-5);\n  text-align: center;\n}\n.ds-footer__name {\n  font-family: var(--font-heading);\n  font-size: var(--text-h3);\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-footer__links {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: center;\n  gap: var(--space-2) var(--space-5);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-footer__link {\n  color: var(--color-bar-alt-text);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-footer__link:hover,\n.ds-footer__link.is-hover {\n  text-decoration: var(--link-decoration-hover);\n}\n.ds-footer__note {\n  opacity: 0.75;\n}\n\n@media (max-width: 900px) {\n  .ds-hero,\n  .ds-page__row,\n  .ds-page__row--even,\n  .ds-page__row--aside,\n  .ds-page__shop {\n    grid-template-columns: minmax(0, 1fr);\n  }\n  .ds-page__row--even {\n    gap: var(--space-6);\n  }\n  .ds-page__sections {\n    gap: var(--space-7);\n  }\n  .ds-nav__top {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: space-between;\n    gap: var(--space-4);\n    padding-bottom: var(--space-4);\n  }\n  .ds-nav__search {\n    order: 3;\n    max-width: none;\n  }\n  .ds-grid,\n  .ds-shelf,\n  .ds-shelf--three {\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n  }\n  .ds-sidebar__list {\n    flex-direction: row;\n    flex-wrap: wrap;\n  }\n  .ds-footer {\n    margin-top: var(--space-7);\n  }\n}\n@media (max-width: 560px) {\n  .ds-page__inner,\n  .ds-nav {\n    padding-left: var(--space-4);\n    padding-right: var(--space-4);\n  }\n  .ds-nav {\n    padding-top: var(--space-4);\n  }\n  .ds-nav__list {\n    gap: var(--space-1);\n    padding: var(--space-2) 0;\n  }\n  .ds-nav__link {\n    padding: var(--space-2) var(--space-3);\n  }\n  .ds-view--home {\n    padding-top: var(--space-6);\n  }\n  .ds-hero {\n    gap: var(--space-6);\n  }\n  .ds-hero__title {\n    font-size: var(--text-h1);\n  }\n  .ds-hero__lead {\n    font-size: var(--text-base);\n  }\n  .ds-hero__actions .ds-button {\n    flex: 1 1 auto;\n  }\n  .ds-hero__art {\n    padding: var(--space-6) var(--space-4) var(--space-5);\n    border-radius: var(--radius-panel);\n  }\n  .ds-clock--large {\n    width: 72%;\n  }\n  .ds-page__stack,\n  .ds-page__row {\n    gap: var(--space-5);\n  }\n  .ds-page__title {\n    margin-bottom: var(--space-5);\n    font-size: var(--text-h2);\n  }\n  .ds-stat {\n    grid-template-columns: minmax(0, 1fr);\n    padding: var(--space-2) var(--space-5);\n  }\n  .ds-stat__item {\n    padding: var(--space-3) 0;\n  }\n  .ds-stat__item + .ds-stat__item {\n    border-left: 0;\n    border-top: var(--size-rule) var(--border-style) var(--color-border-strong);\n  }\n  .ds-grid {\n    grid-template-columns: minmax(0, 1fr);\n    gap: var(--space-4);\n  }\n  .ds-shelf,\n  .ds-shelf--three {\n    gap: var(--space-4);\n  }\n  .ds-product {\n    padding: var(--space-3);\n  }\n  .ds-product__art {\n    padding: var(--space-4) var(--space-3);\n  }\n  .ds-product__tags,\n  .ds-product__name,\n  .ds-product__meta,\n  .ds-product__foot {\n    margin-left: var(--space-1);\n    margin-right: var(--space-1);\n  }\n  .ds-carousel {\n    padding: var(--space-4);\n    border-radius: var(--radius-panel);\n  }\n  .ds-carousel__slide {\n    padding: var(--space-5) var(--space-3) var(--space-4);\n  }\n  .ds-form__row {\n    grid-template-columns: minmax(0, 1fr);\n  }\n  .ds-tabs {\n    gap: var(--space-2);\n  }\n  .ds-tabs__tab {\n    padding: var(--space-2) var(--space-4);\n  }\n  .ds-table th,\n  .ds-table td {\n    padding: var(--space-3);\n  }\n  .ds-table .ds-table__opt {\n    display: none;\n  }\n  .ds-pagination {\n    gap: var(--space-2);\n  }\n  .ds-dialog {\n    padding: var(--space-5) var(--space-4);\n  }\n  .ds-dialog__box {\n    padding: var(--space-5);\n  }\n  .ds-dialog__actions {\n    flex-wrap: wrap;\n  }\n  .ds-footer__inner {\n    padding: var(--space-5) var(--space-4);\n  }\n}\n\n/* a tip on a key in the bar opens under it: above there is only the edge of the window */\n.ds-nav .ds-tooltip__tip {\n  top: calc(100% + var(--space-2));\n  bottom: auto;\n  left: auto;\n  right: 0;\n  transform: none;\n}\n\n/* phone navigation: a round key in the bar opens the list of views, the current one pressed */\n.ds-nav__fold {\n  display: none;\n}\n.ds-nav__fold-key {\n  list-style: none;\n  cursor: pointer;\n}\n.ds-nav__fold-key::-webkit-details-marker {\n  display: none;\n}\n.ds-nav__fold-key:focus-visible {\n  outline: var(--focus-ring);\n}\n.ds-nav__fold[open] .ds-nav__fold-key {\n  box-shadow: var(--shadow-control-pressed);\n}\n@media (max-width: 560px) {\n  .ds-nav__top {\n    position: relative;\n  }\n  .ds-nav__fold {\n    display: block;\n    position: static;\n  }\n  .ds-nav__fold .ds-menu__list {\n    display: flex;\n    left: 0;\n    right: 0;\n    width: auto;\n    margin-top: 0;\n    padding: var(--space-3);\n  }\n  .ds-nav__fold .ds-menu__link {\n    padding: var(--space-3) var(--space-4);\n  }\n  .ds-page:not(:has(.ds-view:target)) .ds-nav__fold .ds-menu__link[href=\"#home\"],\n  .ds-page:has(#home:target) .ds-nav__fold .ds-menu__link[href=\"#home\"],\n  .ds-page:has(#shop:target) .ds-nav__fold .ds-menu__link[href=\"#shop\"],\n  .ds-page:has(#clock:target) .ds-nav__fold .ds-menu__link[href=\"#clock\"],\n  .ds-page:has(#basket:target) .ds-nav__fold .ds-menu__link[href=\"#basket\"],\n  .ds-page:has(#care:target) .ds-nav__fold .ds-menu__link[href=\"#care\"] {\n    box-shadow: var(--shadow-control-pressed);\n  }\n  .ds-nav__list {\n    display: none;\n  }\n}\n",
    "specimen.html": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>chronoskin: clocks</title>\n<link rel=\"stylesheet\" href=\"tokens.css\">\n<link rel=\"stylesheet\" href=\"components.css\">\n</head>\n<body class=\"ds-page\" data-component=\"shell\">\n\n<header class=\"ds-nav\" data-component=\"nav\">\n  <div class=\"ds-nav__top\">\n    <a class=\"ds-nav__search\" href=\"#shop\"><svg class=\"ds-page__icon\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><circle cx=\"7\" cy=\"7\" r=\"4.5\"/><path d=\"m10.5 10.5 3 3\"/></svg><span class=\"ds-nav__search-text\">Search clocks</span></a>\n    <div>\n      <a class=\"ds-brand\" data-component=\"brand\" href=\"#\">\n        <span class=\"ds-brand__mark\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"5.5\" fill=\"currentColor\" stroke=\"none\"/><path d=\"M3 12a9 9 0 0 1 9-9\" opacity=\"0.45\"/><path d=\"M21 12a9 9 0 0 1-9 9\"/></svg></span>\n        <span class=\"ds-brand__name\">chronoskin</span>\n      </a>\n    </div>\n    <div class=\"ds-nav__tools\">\n      <span class=\"ds-tooltip\"><a class=\"ds-nav__key\" href=\"#basket\" aria-label=\"Basket, 3 items\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 9h14l-1.5 10h-11zM9 9V7a3 3 0 0 1 6 0v2\"/></svg><span class=\"ds-badge\">3</span></a><span class=\"ds-tooltip__tip\" role=\"tooltip\">Basket, 3 items</span></span>\n      <a class=\"ds-avatar\" href=\"#care\" aria-label=\"Account of Lena Brandt\"><span class=\"ds-avatar__pic\">LB</span></a>\n      <details class=\"ds-menu ds-nav__fold\">\n        <summary class=\"ds-nav__key ds-nav__fold-key\" aria-label=\"Menu\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M4 7h16M4 12h16M4 17h16\"/></svg></summary>\n        <ul class=\"ds-menu__list\">\n          <li><a class=\"ds-menu__link\" href=\"#home\">Home</a></li>\n          <li><a class=\"ds-menu__link\" href=\"#shop\">Clocks</a></li>\n          <li><a class=\"ds-menu__link\" href=\"#clock\">Clock of the month</a></li>\n          <li><a class=\"ds-menu__link\" href=\"#basket\">Basket</a></li>\n          <li><a class=\"ds-menu__link\" href=\"#care\">Care and returns</a></li>\n        </ul>\n      </details>\n    </div>\n  </div>\n  <ul class=\"ds-nav__list\">\n    <li><a class=\"ds-nav__link\" href=\"#home\">Home</a></li>\n    <li class=\"ds-menu\">\n      <a class=\"ds-nav__link\" href=\"#shop\">Clocks <svg class=\"ds-page__icon\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m4 6 4 4 4-4\"/></svg></a>\n      <ul class=\"ds-menu__list\">\n        <li><a class=\"ds-menu__link\" href=\"#shop\">Wall clocks <span class=\"ds-menu__note\">24</span></a></li>\n        <li><a class=\"ds-menu__link is-hover\" href=\"#shop\">Table clocks <span class=\"ds-menu__note\">16</span></a></li>\n        <li><a class=\"ds-menu__link\" href=\"#shop\">Alarm clocks <span class=\"ds-menu__note\">9</span></a></li>\n        <li><a class=\"ds-menu__link\" href=\"#shop\">Hands and movements <span class=\"ds-menu__note\">31</span></a></li>\n      </ul>\n    </li>\n    <li><a class=\"ds-nav__link\" href=\"#clock\">Clock of the month</a></li>\n    <li><a class=\"ds-nav__link\" href=\"#basket\">Basket</a></li>\n    <li><a class=\"ds-nav__link\" href=\"#care\">Care and returns</a></li>\n  </ul>\n</header>\n\n<div class=\"ds-page__inner\">\n\n  <section class=\"ds-view ds-view--home\" id=\"home\">\n  <div class=\"ds-page__sections\">\n\n    <div class=\"ds-page__stack\">\n\n      <section class=\"ds-hero\" data-component=\"hero\">\n        <div class=\"ds-hero__text\">\n          <div class=\"ds-hero__eyebrow\"><span class=\"ds-badge\">Clock of the month</span> <span>made in a run of 300</span></div>\n          <h1 class=\"ds-hero__title\">Quiet clocks for rooms that are lived in</h1>\n          <p class=\"ds-hero__lead\">Soft cases, silent movements and hands you can read from the far wall. Sent in two days, kept for decades.</p>\n          <div class=\"ds-hero__actions\">\n            <a class=\"ds-button ds-button--large\" href=\"#shop\">Shop wall clocks</a>\n            <a class=\"ds-button ds-button--secondary ds-button--large\" href=\"#clock\">See Meridian</a>\n          </div>\n        </div>\n        <a class=\"ds-hero__art\" href=\"#clock\" aria-label=\"Meridian wall clock\">\n          <span class=\"ds-clock ds-clock--1 ds-clock--large\"><span class=\"ds-clock__face\"><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M24 5v3M43 24h-3M24 43v-3M5 24h3\"/><path d=\"M24 24V12M24 24l8 5\" stroke-width=\"2.4\"/></svg></span><span class=\"ds-clock__cap\"></span></span>\n          <span class=\"ds-hero__tag\"><span>Meridian, 30 cm, ash rim</span> <span class=\"ds-hero__price\">84.00</span></span>\n        </a>\n      </section>\n\n      <ul class=\"ds-stat\" data-component=\"stats\">\n        <li class=\"ds-stat__item\"><span class=\"ds-stat__value\">2 days</span><span class=\"ds-stat__label\">from order to your door</span></li>\n        <li class=\"ds-stat__item\"><span class=\"ds-stat__value\">5 years</span><span class=\"ds-stat__label\">guarantee on every movement</span></li>\n        <li class=\"ds-stat__item\"><span class=\"ds-stat__value\">30 days</span><span class=\"ds-stat__label\">to send a clock back</span></li>\n      </ul>\n\n      <div class=\"ds-grid\" data-component=\"grid\">\n        <a class=\"ds-grid__cell ds-grid__cell--1\" href=\"#shop\"><span class=\"ds-grid__chip\"></span><span><span class=\"ds-grid__title\">Wall clocks</span><span class=\"ds-grid__text\">24 models</span></span></a>\n        <a class=\"ds-grid__cell ds-grid__cell--2\" href=\"#shop\"><span class=\"ds-grid__chip\"></span><span><span class=\"ds-grid__title\">Table clocks</span><span class=\"ds-grid__text\">16 models</span></span></a>\n        <a class=\"ds-grid__cell ds-grid__cell--3\" href=\"#shop\"><span class=\"ds-grid__chip\"></span><span><span class=\"ds-grid__title\">Alarm clocks</span><span class=\"ds-grid__text\">9 models</span></span></a>\n        <a class=\"ds-grid__cell ds-grid__cell--4\" href=\"#shop\"><span class=\"ds-grid__chip\"></span><span><span class=\"ds-grid__title\">Hands and parts</span><span class=\"ds-grid__text\">31 parts</span></span></a>\n      </div>\n\n    </div>\n\n    <section>\n      <h2 class=\"ds-page__title\">Most wanted this autumn <span class=\"ds-page__title-note\">Four clocks that leave the workshop every day.</span></h2>\n      <div class=\"ds-shelf\">\n          <article class=\"ds-product\">\n            <a class=\"ds-product__art\" href=\"#clock\" aria-label=\"Meridian\"><span class=\"ds-clock ds-clock--1\"><span class=\"ds-clock__face\"><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M24 5v3M43 24h-3M24 43v-3M5 24h3\"/><path d=\"M24 24V12M24 24l8 5\" stroke-width=\"2.4\"/></svg></span><span class=\"ds-clock__cap\"></span></span></a>\n            <div class=\"ds-product__tags\"><span class=\"ds-badge\">New</span></div>\n            <a class=\"ds-product__name\" href=\"#clock\">Meridian</a>\n            <span class=\"ds-product__meta\">Wall clock, 30 cm, ash rim</span>\n            <div class=\"ds-product__foot\"><span class=\"ds-product__price\">84.00</span> <button class=\"ds-product__add\" type=\"button\" aria-label=\"Add Meridian to the basket\"><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M8 3v10M3 8h10\"/></svg></button></div>\n          </article>\n          <article class=\"ds-product\">\n            <a class=\"ds-product__art\" href=\"#clock\" aria-label=\"Quarter\"><span class=\"ds-clock ds-clock--2 ds-clock--square\"><span class=\"ds-clock__face\"><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M24 5v3M43 24h-3M24 43v-3M5 24h3\"/><path d=\"M24 24l-7-8M24 24h10\" stroke-width=\"2.4\"/></svg></span><span class=\"ds-clock__cap\"></span></span></a>\n            <div class=\"ds-product__tags\"><span class=\"ds-badge ds-badge--success\">In stock</span></div>\n            <a class=\"ds-product__name\" href=\"#clock\">Quarter</a>\n            <span class=\"ds-product__meta\">Table clock, 12 cm, square</span>\n            <div class=\"ds-product__foot\"><span class=\"ds-product__price\">46.00</span> <button class=\"ds-product__add\" type=\"button\" aria-label=\"Add Quarter to the basket\"><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M8 3v10M3 8h10\"/></svg></button></div>\n          </article>\n          <article class=\"ds-product\">\n            <a class=\"ds-product__art\" href=\"#clock\" aria-label=\"Tide\"><span class=\"ds-clock ds-clock--3\"><span class=\"ds-clock__face\"><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M24 5v3M43 24h-3M24 43v-3M5 24h3\"/><path d=\"M24 24V13M24 24l-8 6\" stroke-width=\"2.4\"/></svg></span><span class=\"ds-clock__cap\"></span></span></a>\n            <div class=\"ds-product__tags\"><span class=\"ds-badge ds-badge--warning\">Two left</span></div>\n            <a class=\"ds-product__name\" href=\"#clock\">Tide</a>\n            <span class=\"ds-product__meta\">Wall clock, 40 cm, silent</span>\n            <div class=\"ds-product__foot\"><span class=\"ds-product__price\">118.00</span> <button class=\"ds-product__add\" type=\"button\" aria-label=\"Add Tide to the basket\"><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M8 3v10M3 8h10\"/></svg></button></div>\n          </article>\n          <article class=\"ds-product\">\n            <a class=\"ds-product__art\" href=\"#clock\" aria-label=\"Vesper\"><span class=\"ds-clock ds-clock--4 ds-clock--square\"><span class=\"ds-clock__face\"><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M24 5v3M43 24h-3M24 43v-3M5 24h3\"/><path d=\"M24 24l6-9M24 24l-9 2\" stroke-width=\"2.4\"/></svg></span><span class=\"ds-clock__cap\"></span></span></a>\n            <div class=\"ds-product__tags\"><span class=\"ds-badge ds-badge--success\">In stock</span></div>\n            <a class=\"ds-product__name\" href=\"#clock\">Vesper</a>\n            <span class=\"ds-product__meta\">Alarm clock, 9 cm</span>\n            <div class=\"ds-product__foot\"><span class=\"ds-product__price\">38.00</span> <button class=\"ds-product__add\" type=\"button\" aria-label=\"Add Vesper to the basket\"><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M8 3v10M3 8h10\"/></svg></button></div>\n          </article>\n      </div>\n    </section>\n\n    <section>\n      <h2 class=\"ds-page__title\">What buyers say</h2>\n      <div class=\"ds-page__row\">\n\n        <ul class=\"ds-list\" data-component=\"list\">\n          <li class=\"ds-list__item\">\n            <span class=\"ds-avatar\"><span class=\"ds-avatar__pic\">AM</span></span>\n            <div class=\"ds-list__body\">\n              <a class=\"ds-list__title\" href=\"#clock\">You really cannot hear it</a>\n              <span class=\"ds-list__text\">It hangs over the bed and the second hand glides. The ash rim is paler than in the pictures.</span>\n              <span class=\"ds-list__meta\"><span class=\"ds-list__dot\"></span> Anouk Maes · Meridian · bought in September</span>\n            </div>\n            <span class=\"ds-list__mark\">5.0</span>\n          </li>\n          <li class=\"ds-list__item\">\n            <span class=\"ds-avatar\"><span class=\"ds-avatar__pic\">PD</span></span>\n            <div class=\"ds-list__body\">\n              <a class=\"ds-list__title\" href=\"#clock\">Readable from the kitchen door</a>\n              <span class=\"ds-list__text\">Big hands, no numbers, and still nobody in the house is late any more.</span>\n              <span class=\"ds-list__meta\"><span class=\"ds-list__dot\"></span> Piet Dekker · Tide · bought in August</span>\n            </div>\n            <span class=\"ds-list__mark\">4.5</span>\n          </li>\n          <li class=\"ds-list__item\">\n            <span class=\"ds-avatar\"><span class=\"ds-avatar__pic\">SO</span></span>\n            <div class=\"ds-list__body\">\n              <a class=\"ds-list__title\" href=\"#care\">A hand arrived bent, a new one came in two days</a>\n              <span class=\"ds-list__text\">The return was one form and a label. The second clock is perfect.</span>\n              <span class=\"ds-list__meta\"><span class=\"ds-list__dot ds-list__dot--new\"></span> Sanne Okoro · Quarter · bought last week</span>\n            </div>\n            <span class=\"ds-list__mark\">4.0</span>\n          </li>\n        </ul>\n\n        <section class=\"ds-panel\" data-component=\"panel\">\n          <h2 class=\"ds-panel__title\">All reviews <span class=\"ds-badge ds-badge--quiet\">1,284</span></h2>\n          <div class=\"ds-panel__body\">\n            <p class=\"ds-panel__score\"><span class=\"ds-panel__figure\">4.7</span> of 5, across every clock</p>\n            <div class=\"ds-panel__rows\">\n              <div class=\"ds-panel__meter\"><span>5</span><span class=\"ds-progress ds-progress--75\" role=\"progressbar\" aria-valuenow=\"75\" aria-valuemin=\"0\" aria-valuemax=\"100\" aria-label=\"Share of five star reviews\"><span class=\"ds-progress__bar\"></span></span><span>75%</span></div>\n              <div class=\"ds-panel__meter\"><span>4</span><span class=\"ds-progress ds-progress--25\" role=\"progressbar\" aria-valuenow=\"18\" aria-valuemin=\"0\" aria-valuemax=\"100\" aria-label=\"Share of four star reviews\"><span class=\"ds-progress__bar\"></span></span><span>18%</span></div>\n              <div class=\"ds-panel__meter\"><span>3</span><span class=\"ds-progress ds-progress--5\" role=\"progressbar\" aria-valuenow=\"5\" aria-valuemin=\"0\" aria-valuemax=\"100\" aria-label=\"Share of three star reviews\"><span class=\"ds-progress__bar\"></span></span><span>5%</span></div>\n              <div class=\"ds-panel__meter\"><span>2</span><span class=\"ds-progress ds-progress--5\" role=\"progressbar\" aria-valuenow=\"2\" aria-valuemin=\"0\" aria-valuemax=\"100\" aria-label=\"Share of two star reviews\"><span class=\"ds-progress__bar\"></span></span><span>2%</span></div>\n            </div>\n            <p class=\"ds-panel__text ds-panel__text--after\">Only people who bought a clock here can write one.</p>\n            <a class=\"ds-button ds-button--secondary\" href=\"#care\">How reviews work</a>\n          </div>\n        </section>\n\n      </div>\n    </section>\n\n  </div>\n  </section>\n\n  <section class=\"ds-view\" id=\"shop\">\n\n      <ol class=\"ds-breadcrumb\" data-component=\"breadcrumb\">\n        <li class=\"ds-breadcrumb__item\"><a class=\"ds-breadcrumb__link\" href=\"#home\">Home</a></li>\n        <li class=\"ds-breadcrumb__item\"><a class=\"ds-breadcrumb__link\" href=\"#shop\">Clocks</a></li>\n        <li class=\"ds-breadcrumb__item\">Wall and table</li>\n      </ol>\n\n    <header class=\"ds-page-header\" data-component=\"page-header\">\n      <div class=\"ds-page-header__text\">\n        <h1 class=\"ds-page-header__title\">Wall and table clocks</h1>\n        <p class=\"ds-page-header__lead\">40 models, 34 of them in stock today.</p>\n      </div>\n      <div class=\"ds-page-header__actions\">\n        <a class=\"ds-button ds-button--secondary\" href=\"#basket\">Basket, 3 items</a>\n      </div>\n    </header>\n\n    <div class=\"ds-page__shop\">\n\n      <aside class=\"ds-sidebar\" data-component=\"sidebar\">\n        <h2 class=\"ds-sidebar__heading\">Departments</h2>\n        <ul class=\"ds-sidebar__list\">\n          <li><a class=\"ds-sidebar__link is-current\" href=\"#shop\">Wall clocks <span class=\"ds-sidebar__count\">24</span></a></li>\n          <li><a class=\"ds-sidebar__link\" href=\"#shop\">Table clocks <span class=\"ds-sidebar__count\">16</span></a></li>\n          <li><a class=\"ds-sidebar__link is-hover\" href=\"#shop\">Alarm clocks <span class=\"ds-sidebar__count\">9</span></a></li>\n          <li><a class=\"ds-sidebar__link\" href=\"#shop\">Hands and parts <span class=\"ds-sidebar__count\">31</span></a></li>\n        </ul>\n        <div class=\"ds-sidebar__group\">\n          <h2 class=\"ds-sidebar__heading\">Show only</h2>\n          <label class=\"ds-switch ds-switch--end\"><input class=\"ds-switch__input\" type=\"checkbox\" checked><span class=\"ds-switch__track\"></span><span class=\"ds-switch__label\">In stock</span></label>\n          <label class=\"ds-switch ds-switch--end\"><input class=\"ds-switch__input\" type=\"checkbox\" checked><span class=\"ds-switch__track\"></span><span class=\"ds-switch__label\">Silent movement</span></label>\n          <label class=\"ds-switch ds-switch--end\"><input class=\"ds-switch__input\" type=\"checkbox\"><span class=\"ds-switch__track\"></span><span class=\"ds-switch__label\">Under 100.00</span></label>\n        </div>\n        <div class=\"ds-sidebar__group\">\n          <div class=\"ds-form__field\">\n            <label class=\"ds-form__label\" for=\"s-size\">Diameter <span>up to 40 cm</span></label>\n            <input class=\"ds-form__range\" id=\"s-size\" type=\"range\" min=\"9\" max=\"60\" value=\"40\">\n          </div>\n        </div>\n      </aside>\n\n      <div class=\"ds-page__stack\">\n\n        <ul class=\"ds-tabs\" data-component=\"tabs\">\n          <li><a class=\"ds-tabs__tab is-current\" href=\"#shop\" aria-current=\"true\">All shapes</a></li>\n          <li><a class=\"ds-tabs__tab\" href=\"#shop\">Round</a></li>\n          <li><a class=\"ds-tabs__tab is-hover\" href=\"#shop\">Square</a></li>\n          <li><a class=\"ds-tabs__tab\" href=\"#shop\">With date</a></li>\n        </ul>\n\n        <div class=\"ds-shelf ds-shelf--three\">\n            <article class=\"ds-product\">\n              <a class=\"ds-product__art\" href=\"#clock\" aria-label=\"Meridian\"><span class=\"ds-clock ds-clock--1\"><span class=\"ds-clock__face\"><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M24 5v3M43 24h-3M24 43v-3M5 24h3\"/><path d=\"M24 24V12M24 24l8 5\" stroke-width=\"2.4\"/></svg></span><span class=\"ds-clock__cap\"></span></span></a>\n              <div class=\"ds-product__tags\"><span class=\"ds-badge\" data-component=\"badge\">New</span> <span class=\"ds-badge ds-badge--success\">In stock</span></div>\n              <a class=\"ds-product__name\" href=\"#clock\">Meridian</a>\n              <span class=\"ds-product__meta\">Wall clock, 30 cm, ash rim</span>\n              <div class=\"ds-product__foot\"><span class=\"ds-product__price\">84.00</span> <button class=\"ds-product__add\" type=\"button\" aria-label=\"Add Meridian to the basket\"><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M8 3v10M3 8h10\"/></svg></button></div>\n            </article>\n            <article class=\"ds-product\">\n              <a class=\"ds-product__art\" href=\"#clock\" aria-label=\"Tide\"><span class=\"ds-clock ds-clock--3\"><span class=\"ds-clock__face\"><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M24 5v3M43 24h-3M24 43v-3M5 24h3\"/><path d=\"M24 24V13M24 24l-8 6\" stroke-width=\"2.4\"/></svg></span><span class=\"ds-clock__cap\"></span></span></a>\n              <div class=\"ds-product__tags\"><span class=\"ds-badge ds-badge--warning\">Two left</span></div>\n              <a class=\"ds-product__name\" href=\"#clock\">Tide</a>\n              <span class=\"ds-product__meta\">Wall clock, 40 cm, silent</span>\n              <div class=\"ds-product__foot\"><span class=\"ds-product__price\">118.00</span> <button class=\"ds-product__add\" type=\"button\" aria-label=\"Add Tide to the basket\"><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M8 3v10M3 8h10\"/></svg></button></div>\n            </article>\n            <article class=\"ds-product\">\n              <a class=\"ds-product__art\" href=\"#clock\" aria-label=\"Almanac\"><span class=\"ds-clock ds-clock--2\"><span class=\"ds-clock__face\"><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M24 5v3M43 24h-3M24 43v-3M5 24h3\"/><path d=\"M24 24l-7-8M24 24h10\" stroke-width=\"2.4\"/></svg></span><span class=\"ds-clock__cap\"></span></span></a>\n              <div class=\"ds-product__tags\"><span class=\"ds-badge ds-badge--success\">In stock</span></div>\n              <a class=\"ds-product__name\" href=\"#clock\">Almanac</a>\n              <span class=\"ds-product__meta\">Wall clock, 25 cm, date ring</span>\n              <div class=\"ds-product__foot\"><span class=\"ds-product__price\">96.00</span> <button class=\"ds-product__add\" type=\"button\" aria-label=\"Add Almanac to the basket\"><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M8 3v10M3 8h10\"/></svg></button></div>\n            </article>\n            <article class=\"ds-product\">\n              <a class=\"ds-product__art\" href=\"#clock\" aria-label=\"Quarter\"><span class=\"ds-clock ds-clock--2 ds-clock--square\"><span class=\"ds-clock__face\"><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M24 5v3M43 24h-3M24 43v-3M5 24h3\"/><path d=\"M24 24l-7-8M24 24h10\" stroke-width=\"2.4\"/></svg></span><span class=\"ds-clock__cap\"></span></span></a>\n              <div class=\"ds-product__tags\"><span class=\"ds-badge ds-badge--success\">In stock</span></div>\n              <a class=\"ds-product__name\" href=\"#clock\">Quarter</a>\n              <span class=\"ds-product__meta\">Table clock, 12 cm, square</span>\n              <div class=\"ds-product__foot\"><span class=\"ds-product__price\">46.00</span> <button class=\"ds-product__add\" type=\"button\" aria-label=\"Add Quarter to the basket\"><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M8 3v10M3 8h10\"/></svg></button></div>\n            </article>\n            <article class=\"ds-product\">\n              <a class=\"ds-product__art\" href=\"#clock\" aria-label=\"Harbour\"><span class=\"ds-clock ds-clock--4\"><span class=\"ds-clock__face\"><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M24 5v3M43 24h-3M24 43v-3M5 24h3\"/><path d=\"M24 24l6-9M24 24l-9 2\" stroke-width=\"2.4\"/></svg></span><span class=\"ds-clock__cap\"></span></span></a>\n              <div class=\"ds-product__tags\"><span class=\"ds-badge ds-badge--danger\">Sold out</span></div>\n              <a class=\"ds-product__name\" href=\"#clock\">Harbour</a>\n              <span class=\"ds-product__meta\">Wall clock, 35 cm, brass hands</span>\n              <div class=\"ds-product__foot\"><span class=\"ds-product__price\">104.00</span> <button class=\"ds-product__add\" type=\"button\" aria-label=\"Add Harbour to the basket\" disabled><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M8 3v10M3 8h10\"/></svg></button></div>\n            </article>\n            <article class=\"ds-product\">\n              <a class=\"ds-product__art\" href=\"#clock\" aria-label=\"Vesper\"><span class=\"ds-clock ds-clock--4 ds-clock--square\"><span class=\"ds-clock__face\"><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M24 5v3M43 24h-3M24 43v-3M5 24h3\"/><path d=\"M24 24l6-9M24 24l-9 2\" stroke-width=\"2.4\"/></svg></span><span class=\"ds-clock__cap\"></span></span></a>\n              <div class=\"ds-product__tags\"><span class=\"ds-badge\">New</span></div>\n              <a class=\"ds-product__name\" href=\"#clock\">Vesper</a>\n              <span class=\"ds-product__meta\">Alarm clock, 9 cm</span>\n              <div class=\"ds-product__foot\"><span class=\"ds-product__price\">38.00</span> <button class=\"ds-product__add\" type=\"button\" aria-label=\"Add Vesper to the basket\"><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M8 3v10M3 8h10\"/></svg></button></div>\n            </article>\n        </div>\n\n        <ul class=\"ds-pagination\" data-component=\"pagination\">\n          <li><a class=\"ds-pagination__link\" href=\"#shop\" aria-label=\"Previous page\">Prev</a></li>\n          <li><a class=\"ds-pagination__link is-current\" href=\"#shop\" aria-current=\"page\">1</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#shop\">2</a></li>\n          <li><a class=\"ds-pagination__link is-hover\" href=\"#shop\">3</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#shop\">7</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#shop\" aria-label=\"Next page\">Next</a></li>\n        </ul>\n\n      </div>\n\n    </div>\n\n  </section>\n\n  <section class=\"ds-view\" id=\"clock\">\n\n      <ol class=\"ds-breadcrumb\">\n        <li class=\"ds-breadcrumb__item\"><a class=\"ds-breadcrumb__link\" href=\"#home\">Home</a></li>\n        <li class=\"ds-breadcrumb__item\"><a class=\"ds-breadcrumb__link\" href=\"#shop\">Wall clocks</a></li>\n        <li class=\"ds-breadcrumb__item\">Meridian</li>\n      </ol>\n\n    <header class=\"ds-page-header\">\n      <div class=\"ds-page-header__text\">\n        <h1 class=\"ds-page-header__title\">Meridian wall clock</h1>\n        <p class=\"ds-page-header__lead\">30 cm, ash rim, silent sweep movement. <span class=\"ds-badge ds-badge--success\">In stock</span></p>\n      </div>\n      <div class=\"ds-page-header__actions\">\n        <a class=\"ds-button ds-button--secondary\" href=\"#shop\">All wall clocks</a>\n      </div>\n    </header>\n\n    <div class=\"ds-page__row ds-page__row--even\">\n\n      <div class=\"ds-carousel\" aria-roledescription=\"carousel\" aria-label=\"Pictures of Meridian\">\n        <div class=\"ds-carousel__track\">\n          <div class=\"ds-carousel__slide\"><span class=\"ds-clock ds-clock--1 ds-clock--large\"><span class=\"ds-clock__face\"><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M24 5v3M43 24h-3M24 43v-3M5 24h3\"/><path d=\"M24 24V12M24 24l8 5\" stroke-width=\"2.4\"/></svg></span><span class=\"ds-clock__cap\"></span></span><span class=\"ds-carousel__caption\">Front, ash rim with the pale face</span></div>\n          <div class=\"ds-carousel__slide\"><span class=\"ds-clock ds-clock--2 ds-clock--large\"><span class=\"ds-clock__face\"><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M24 5v3M43 24h-3M24 43v-3M5 24h3\"/><path d=\"M24 24l-7-8M24 24h10\" stroke-width=\"2.4\"/></svg></span><span class=\"ds-clock__cap\"></span></span><span class=\"ds-carousel__caption\">Front, with brass hands</span></div>\n          <div class=\"ds-carousel__slide\"><span class=\"ds-clock ds-clock--4 ds-clock--large\"><span class=\"ds-clock__face\"><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M24 5v3M43 24h-3M24 43v-3M5 24h3\"/><path d=\"M24 24V13M24 24l-8 6\" stroke-width=\"2.4\"/></svg></span><span class=\"ds-clock__cap\"></span></span><span class=\"ds-carousel__caption\">Front, with blue hands</span></div>\n        </div>\n        <div class=\"ds-carousel__foot\">\n          <button class=\"ds-carousel__arrow\" type=\"button\" aria-label=\"Previous picture\"><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M10 4 6 8l4 4\"/></svg></button>\n          <div class=\"ds-carousel__dots\" aria-hidden=\"true\"><span class=\"ds-carousel__dot is-current\"></span><span class=\"ds-carousel__dot\"></span><span class=\"ds-carousel__dot\"></span></div>\n          <button class=\"ds-carousel__arrow is-hover\" type=\"button\" aria-label=\"Next picture\"><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 4 4 4-4 4\"/></svg></button>\n        </div>\n      </div>\n\n      <div class=\"ds-page__stack\">\n\n        <section class=\"ds-panel\">\n          <div class=\"ds-panel__body\">\n            <p class=\"ds-panel__score\"><span class=\"ds-panel__figure\">84.00</span> with delivery in two days</p>\n            <div class=\"ds-panel__rows\">\n              <div class=\"ds-panel__row\"><span>Movement <span class=\"ds-tooltip\"><a class=\"ds-link\" href=\"#care\">silent sweep</a><span class=\"ds-tooltip__tip\" role=\"tooltip\">The second hand glides and does not tick</span></span></span> <span class=\"ds-panel__note\">one AA cell</span></div>\n              <label class=\"ds-switch ds-switch--end\"><input class=\"ds-switch__input\" type=\"checkbox\"><span class=\"ds-switch__track\"></span><span class=\"ds-switch__label\">Gift wrap <span class=\"ds-switch__hint\">Grey paper and a card, 4.00</span></span></label>\n              <label class=\"ds-switch ds-switch--end\"><input class=\"ds-switch__input\" type=\"checkbox\" checked><span class=\"ds-switch__track\"></span><span class=\"ds-switch__label\">Fit the battery before sending</span></label>\n            </div>\n            <div class=\"ds-button__row ds-button__row--after\">\n              <a class=\"ds-button ds-button--large\" href=\"#basket\">Add to basket</a>\n              <a class=\"ds-button ds-button--secondary ds-button--large\" href=\"#shop\">Save</a>\n            </div>\n          </div>\n        </section>\n\n        <div class=\"ds-accordion\">\n            <details class=\"ds-accordion__item\" open>\n              <summary class=\"ds-accordion__head\">Size and materials <span class=\"ds-accordion__chevron\"><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m4 6 4 4 4-4\"/></svg></span></summary>\n              <div class=\"ds-accordion__body\"><p>Case 30 cm across and 4 cm deep. Rim of oiled ash, face of pressed card, hands of painted steel.</p></div>\n            </details>\n            <details class=\"ds-accordion__item\">\n              <summary class=\"ds-accordion__head\">Delivery <span class=\"ds-accordion__chevron\"><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m4 6 4 4 4-4\"/></svg></span></summary>\n              <div class=\"ds-accordion__body\"><p>Sent the next working day in a moulded box. Free above 60.00.</p></div>\n            </details>\n            <details class=\"ds-accordion__item\">\n              <summary class=\"ds-accordion__head\">Guarantee <span class=\"ds-accordion__chevron\"><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m4 6 4 4 4-4\"/></svg></span></summary>\n              <div class=\"ds-accordion__body\"><p>Five years on the movement, two on the case.</p></div>\n            </details>\n        </div>\n\n      </div>\n\n    </div>\n\n  </section>\n\n  <section class=\"ds-view\" id=\"basket\">\n\n      <ol class=\"ds-breadcrumb\">\n        <li class=\"ds-breadcrumb__item\"><a class=\"ds-breadcrumb__link\" href=\"#home\">Home</a></li>\n        <li class=\"ds-breadcrumb__item\"><a class=\"ds-breadcrumb__link\" href=\"#shop\">Clocks</a></li>\n        <li class=\"ds-breadcrumb__item\">Basket</li>\n      </ol>\n\n    <header class=\"ds-page-header\">\n      <div class=\"ds-page-header__text\">\n        <h1 class=\"ds-page-header__title\">Your basket</h1>\n        <p class=\"ds-page-header__lead\">Three clocks. Step 1 of 3: check, then delivery, then payment.</p>\n      </div>\n      <div class=\"ds-page-header__actions\">\n        <a class=\"ds-button ds-button--secondary\" href=\"#shop\">Keep shopping</a>\n      </div>\n    </header>\n\n    <div class=\"ds-page__row ds-page__row--aside\">\n\n      <div class=\"ds-page__stack\">\n\n        <div>\n          <div class=\"ds-progress__legend\"><span>Basket</span> <span>Delivery</span> <span>Payment</span></div>\n          <div class=\"ds-progress ds-progress--25\" role=\"progressbar\" aria-valuenow=\"1\" aria-valuemin=\"0\" aria-valuemax=\"3\" aria-label=\"Step 1 of 3\"><span class=\"ds-progress__bar\"></span></div>\n        </div>\n\n        <div class=\"ds-notice__stack\" data-component=\"notice\">\n          <div class=\"ds-notice\" role=\"status\">\n            <svg class=\"ds-notice__icon\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"><circle cx=\"10\" cy=\"10\" r=\"8\"/><path d=\"M10 9v5M10 6v.5\"/></svg>\n            <div><span class=\"ds-notice__title\">Delivery is free.</span> Your order is above 60.00.</div>\n          </div>\n          <div class=\"ds-notice ds-notice--error\" role=\"alert\">\n            <svg class=\"ds-notice__icon\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"><path d=\"M10 2.5 18 17H2z\"/><path d=\"M10 8v4M10 14v.5\"/></svg>\n            <div><span class=\"ds-notice__title\">Harbour sold out while it was in your basket.</span> Remove it or wait: more arrive on the 14th.</div>\n          </div>\n        </div>\n\n        <table class=\"ds-table\" data-component=\"table\">\n          <thead>\n            <tr>\n              <th scope=\"col\" class=\"ds-table__wide\">Clock</th>\n              <th scope=\"col\" class=\"ds-table__opt\">Finish</th>\n              <th scope=\"col\">Stock</th>\n              <th scope=\"col\" class=\"ds-table__num ds-table__opt\">Qty</th>\n              <th scope=\"col\" class=\"ds-table__num\">Price</th>\n            </tr>\n          </thead>\n          <tbody>\n            <tr>\n              <td><a class=\"ds-link ds-link--quiet\" href=\"#clock\">Meridian, 30 cm</a></td>\n              <td class=\"ds-table__meta ds-table__opt\">Ash rim</td>\n              <td><span class=\"ds-badge ds-badge--success\">In stock</span></td>\n              <td class=\"ds-table__num ds-table__opt\">1</td>\n              <td class=\"ds-table__num\">84.00</td>\n            </tr>\n            <tr class=\"is-hover\">\n              <td><a class=\"ds-link ds-link--quiet\" href=\"#clock\">Quarter, 12 cm</a></td>\n              <td class=\"ds-table__meta ds-table__opt\">Brass hands</td>\n              <td><span class=\"ds-badge ds-badge--warning\">Two left</span></td>\n              <td class=\"ds-table__num ds-table__opt\">2</td>\n              <td class=\"ds-table__num\">92.00</td>\n            </tr>\n            <tr>\n              <td><a class=\"ds-link ds-link--quiet\" href=\"#clock\">Harbour, 35 cm</a></td>\n              <td class=\"ds-table__meta ds-table__opt\">Brass hands</td>\n              <td><span class=\"ds-badge ds-badge--danger\">Sold out</span></td>\n              <td class=\"ds-table__num ds-table__opt\">1</td>\n              <td class=\"ds-table__num\">104.00</td>\n            </tr>\n            <tr>\n              <td><a class=\"ds-link ds-link--quiet\" href=\"#care\">Gift wrap</a></td>\n              <td class=\"ds-table__meta ds-table__opt\">Grey paper</td>\n              <td><span class=\"ds-badge ds-badge--quiet\">Service</span></td>\n              <td class=\"ds-table__num ds-table__opt\">1</td>\n              <td class=\"ds-table__num\">4.00</td>\n            </tr>\n          </tbody>\n        </table>\n\n        <div class=\"ds-button__row\" data-component=\"buttons\">\n          <a class=\"ds-button\" href=\"#basket\">Update basket</a>\n          <a class=\"ds-button ds-button--secondary\" href=\"#shop\">Add another clock</a>\n          <button class=\"ds-button ds-button--danger\" type=\"button\">Empty the basket</button>\n          <button class=\"ds-button\" type=\"button\" disabled>Apply a code</button>\n        </div>\n\n        <section class=\"ds-dialog\" data-component=\"dialog\">\n          <div class=\"ds-dialog__box\" role=\"dialog\" aria-labelledby=\"d-title\">\n            <h2 class=\"ds-dialog__title\" id=\"d-title\">Remove Harbour from the basket?</h2>\n            <div class=\"ds-dialog__body\">It is sold out until the 14th. You can save it and we write to you when it is back.</div>\n            <div class=\"ds-dialog__actions\">\n              <button class=\"ds-button ds-button--secondary\" type=\"button\">Save for later</button>\n              <button class=\"ds-button ds-button--danger\" type=\"button\">Remove</button>\n            </div>\n          </div>\n        </section>\n\n      </div>\n\n      <div class=\"ds-page__stack\">\n\n        <section class=\"ds-panel\">\n          <h2 class=\"ds-panel__title\">Order</h2>\n          <div class=\"ds-panel__body\">\n            <dl class=\"ds-panel__facts\">\n              <dt>Three clocks</dt><dd>176.00</dd>\n              <dt>Gift wrap</dt><dd>4.00</dd>\n              <dt>Delivery</dt><dd>0.00</dd>\n            </dl>\n            <p class=\"ds-panel__total\"><span>To pay</span> <span class=\"ds-panel__figure\">180.00</span></p>\n            <a class=\"ds-button ds-button--large ds-button--block\" href=\"#basket\">Go to delivery</a>\n          </div>\n        </section>\n\n        <section class=\"ds-panel\">\n          <h2 class=\"ds-panel__title\">Where to</h2>\n          <div class=\"ds-panel__body\">\n            <form class=\"ds-form\" data-component=\"form\" action=\"#basket\">\n              <div class=\"ds-form__field\">\n                <label class=\"ds-form__label\" for=\"f-name\">Name on the door</label>\n                <input class=\"ds-form__input\" id=\"f-name\" type=\"text\" value=\"Lena Brandt\">\n              </div>\n              <div class=\"ds-form__row\">\n                <div class=\"ds-form__field\">\n                  <label class=\"ds-form__label\" for=\"f-code\">Postcode</label>\n                  <input class=\"ds-form__input is-error\" id=\"f-code\" type=\"text\" value=\"10 4\" aria-invalid=\"true\" aria-describedby=\"f-code-error\">\n                  <span class=\"ds-form__error\" id=\"f-code-error\">Five digits, please.</span>\n                </div>\n                <div class=\"ds-form__field\">\n                  <label class=\"ds-form__label\" for=\"f-land\">Country</label>\n                  <span class=\"ds-form__select-wrap\">\n                    <select class=\"ds-form__select\" id=\"f-land\">\n                      <option>Germany</option>\n                      <option>Austria</option>\n                      <option>Netherlands</option>\n                    </select>\n                    <svg class=\"ds-form__chevron\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m4 6 4 4 4-4\"/></svg>\n                  </span>\n                </div>\n              </div>\n              <div class=\"ds-form__field\">\n                <label class=\"ds-form__label\" for=\"f-note\">Note for the courier</label>\n                <textarea class=\"ds-form__textarea\" id=\"f-note\" placeholder=\"Second floor, ring twice\"></textarea>\n                <span class=\"ds-form__hint\">Printed on the label.</span>\n              </div>\n              <label class=\"ds-form__check\"><input class=\"ds-form__checkbox\" type=\"checkbox\" checked> Leave it with a neighbour if I am out</label>\n              <div class=\"ds-form__actions\">\n                <button class=\"ds-button\" type=\"submit\">Save address</button>\n              </div>\n            </form>\n          </div>\n        </section>\n\n      </div>\n\n    </div>\n\n  </section>\n\n  <section class=\"ds-view\" id=\"care\">\n\n      <ol class=\"ds-breadcrumb\">\n        <li class=\"ds-breadcrumb__item\"><a class=\"ds-breadcrumb__link\" href=\"#home\">Home</a></li>\n        <li class=\"ds-breadcrumb__item\"><a class=\"ds-breadcrumb__link\" href=\"#care\">Help</a></li>\n        <li class=\"ds-breadcrumb__item\">Care and returns</li>\n      </ol>\n\n    <header class=\"ds-page-header\">\n      <div class=\"ds-page-header__text\">\n        <h1 class=\"ds-page-header__title\">Care and returns</h1>\n        <p class=\"ds-page-header__lead\">How to hang, set and clean a clock, and how to send one back.</p>\n      </div>\n      <div class=\"ds-page-header__actions\">\n        <a class=\"ds-button\" href=\"#basket\">Start a return</a>\n      </div>\n    </header>\n\n    <div class=\"ds-page__row\">\n\n      <section class=\"ds-panel\">\n        <div class=\"ds-panel__body\">\n          <div class=\"ds-prose\" data-component=\"typography\">\n            <h1>Looking after a clock</h1>\n            <p class=\"ds-prose__lead\">A quartz movement asks for one battery a year and a dry wall. Everything else is habit.</p>\n            <h2>Hanging and setting</h2>\n            <p>Use the screw in the box and hang the clock <strong>on the keyhole, not on the rim</strong>. Set the time with the wheel at the back; never push the hands.</p>\n            <ul>\n              <li>Wall clocks take one AA cell, alarm clocks one AAA.</li>\n              <li>The movement is marked <code>CS-30 sweep</code> on its back plate.</li>\n              <li>Keep the case out of steam and direct sun.</li>\n            </ul>\n            <h3>Cleaning</h3>\n            <p>Dust the rim with a dry cloth. The face is pressed card and does not like water.</p>\n            <h2>Sending a clock back</h2>\n            <p>You have 30 days. Start the return from your order, print the label and use the box it came in.</p>\n            <p class=\"ds-link__sample\" data-component=\"links\">\n              <a class=\"ds-link\" href=\"#basket\">Your orders</a>\n              <a class=\"ds-link is-visited\" href=\"#clock\">Movements explained</a>\n              <a class=\"ds-link is-hover\" href=\"#shop\">Spare hands</a>\n              <a class=\"ds-link is-active\" href=\"#care\">Guarantee terms</a>\n            </p>\n          </div>\n        </div>\n      </section>\n\n      <div class=\"ds-page__stack\">\n\n        <div class=\"ds-accordion\">\n            <details class=\"ds-accordion__item\" open>\n              <summary class=\"ds-accordion__head\">My clock runs slow. What now? <span class=\"ds-accordion__chevron\"><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m4 6 4 4 4-4\"/></svg></span></summary>\n              <div class=\"ds-accordion__body\"><p>Change the cell first: a weak one slows the hands long before it stops them.</p></div>\n            </details>\n            <details class=\"ds-accordion__item\">\n              <summary class=\"ds-accordion__head\">Can I order other hands? <span class=\"ds-accordion__chevron\"><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m4 6 4 4 4-4\"/></svg></span></summary>\n              <div class=\"ds-accordion__body\"><p>Yes, every model takes the hands sold under Hands and parts.</p></div>\n            </details>\n            <details class=\"ds-accordion__item\">\n              <summary class=\"ds-accordion__head\">Do you repair old clocks? <span class=\"ds-accordion__chevron\"><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m4 6 4 4 4-4\"/></svg></span></summary>\n              <div class=\"ds-accordion__body\"><p>Only our own, at any age. Write to us with the number on the back plate.</p></div>\n            </details>\n        </div>\n\n        <section class=\"ds-empty\" data-component=\"empty\">\n          <svg class=\"ds-empty__icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 8l8-4 8 4v8l-8 4-8-4zM4 8l8 4 8-4M12 12v8\"/></svg>\n          <h2 class=\"ds-empty__title\">No returns open</h2>\n          <p class=\"ds-empty__text\">A return you start shows here with its label and its state.</p>\n          <a class=\"ds-button\" href=\"#basket\">Start a return</a>\n        </section>\n\n      </div>\n\n    </div>\n\n  </section>\n\n</div>\n\n<footer class=\"ds-footer\" data-component=\"footer\">\n  <div class=\"ds-footer__inner\">\n    <span class=\"ds-footer__name\">chronoskin</span>\n    <ul class=\"ds-footer__links\">\n      <li><a class=\"ds-footer__link\" href=\"#shop\">Clocks</a></li>\n      <li><a class=\"ds-footer__link\" href=\"#care\">Care and returns</a></li>\n      <li><a class=\"ds-footer__link is-hover\" href=\"#care\">Guarantee</a></li>\n      <li><a class=\"ds-footer__link\" href=\"#basket\">Your orders</a></li>\n    </ul>\n    <span class=\"ds-footer__note\">Prices include tax. Clocks leave the workshop on working days.</span>\n  </div>\n</footer>\n\n</body>\n</html>\n",
    "style.json": "{\n  \"id\": \"v1.neumorphism.shop.s08.p01.t01.u08\",\n  \"library\": \"2026.10.09-1036\",\n  \"era\": {\n    \"slug\": \"neumorphism\",\n    \"years\": [\n      2019,\n      2021\n    ]\n  },\n  \"archetype\": \"shop\",\n  \"mode\": \"mix\",\n  \"markup\": \"modern\",\n  \"viewport\": {\n    \"width\": 1440,\n    \"fluid\": false,\n    \"responsive\": true\n  },\n  \"source\": \"https://chrono.skin/s/v1-nm-8118\",\n  \"short\": \"v1-nm-8118\"\n}\n",
    "tokens.css": "/* @part palette */\n:root {\n  --color-page: rgb(224 224 224);\n  --color-canvas: rgb(224 224 224);\n  --color-surface: rgb(224 224 224);\n  --color-surface-alt: rgb(232 232 232);\n  --color-surface-strong: rgb(216 216 216);\n  --color-bar: rgb(224 224 224);\n  --color-bar-text: rgb(0 31 63);\n  --color-bar-alt: rgb(232 232 232);\n  --color-bar-alt-text: rgb(48 72 96);\n  --color-inverse: rgb(0 31 63);\n  --color-inverse-text: rgb(224 224 224);\n  --color-text: rgb(0 31 63);\n  --color-text-muted: rgb(48 72 96);\n  --color-heading: rgb(0 31 63);\n  --color-heading-alt: rgb(48 72 96);\n  --color-link: rgb(24 99 75);\n  --color-link-quiet: rgb(0 31 63);\n  --color-link-visited: rgb(48 72 96);\n  --color-link-hover: rgb(0 31 63);\n  --color-link-active: rgb(59 132 60);\n  --color-border: rgb(208 208 208);\n  --color-border-strong: rgb(190 190 190);\n  --color-border-muted: rgb(255 255 255);\n  --color-accent: rgb(59 132 60);\n  --color-accent-text: rgb(255 255 255);\n  --color-accent-alt: rgb(214 84 0);\n  --color-fill-1: rgb(0 31 63);\n  --color-fill-2: rgb(59 132 60);\n  --color-fill-3: rgb(214 84 0);\n  --color-fill-4: rgb(48 72 96);\n  --color-button: rgb(0 31 63);\n  --color-button-text: rgb(224 224 224);\n  --color-button-hover-text: rgb(255 255 255);\n  --color-button-secondary: rgb(224 224 224);\n  --color-button-secondary-text: rgb(0 31 63);\n  --color-input: rgb(224 224 224);\n  --color-input-text: rgb(0 31 63);\n  --color-input-border: rgb(208 208 208);\n  --color-disabled: rgb(216 216 216);\n  --color-disabled-text: rgb(48 72 96 / 0.55);\n  --color-danger: rgb(169 30 44);\n  --color-danger-surface: rgb(255 224 224);\n  --color-success: rgb(59 132 60);\n  --color-warning: rgb(214 84 0);\n  --color-notice: rgb(232 232 232);\n  --color-notice-text: rgb(0 31 63);\n  --color-focus: rgb(0 31 63);\n  --color-shadow: rgb(190 190 190);\n  --color-overlay: rgb(0 31 63 / 0.25);\n}\n\n/* @part type */\n:root {\n  --font-body: \"Nunito Sans\", \"Avenir Next\", \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n  --font-heading: \"Nunito Sans\", \"Avenir Next\", \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n  --font-ui: \"Nunito Sans\", \"Avenir Next\", \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n  --font-mono: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n  --text-base: 16px;\n  --text-small: 13px;\n  --text-ui: 15px;\n  --text-large: 20px;\n  --text-display: 40px;\n  --text-h1: 32px;\n  --text-h2: 24px;\n  --text-h3: 18px;\n  --line-body: 1.6;\n  --line-heading: 1.3;\n  --line-display: 1.2;\n  --weight-body: 400;\n  --weight-bold: 600;\n  --weight-heading: 600;\n  --weight-display: 600;\n  --weight-ui: 600;\n  --heading-transform: none;\n  --heading-tracking: 0;\n  --display-tracking: 0;\n  --figure-shift: 0em;\n  --ui-transform: none;\n  --link-decoration: none;\n  --link-decoration-hover: underline;\n  --link-decoration-quiet: none;\n}\n\n/* @part surface */\n:root {\n  --border-width: 1px;\n  --border-width-strong: 2px;\n  --border-style: solid;\n  --radius-control: 9px;\n  --radius-panel: 18px;\n  --radius-pill: 9px;\n  --radius-page: 26px;\n  --shadow-panel: 5px 5px 14px var(--color-shadow), -5px -5px 14px var(--color-border-muted);\n  --shadow-control: 3px 3px 7px var(--color-shadow), -3px -3px 7px var(--color-border-muted);\n  --shadow-control-hover: 5px 5px 12px var(--color-shadow), -5px -5px 12px var(--color-border-muted);\n  --shadow-control-pressed: inset 2px 2px 6px var(--color-shadow), inset -2px -2px 6px var(--color-border-muted);\n  --shadow-dialog: 14px 14px 40px var(--color-shadow), -8px -8px 24px var(--color-border-muted);\n  --shadow-text: none;\n  --fill-page: var(--color-page);\n  --fill-bar: var(--color-bar);\n  --fill-bar-alt: var(--color-bar-alt);\n  --fill-inverse: var(--color-inverse);\n  --fill-accent: var(--color-accent);\n  --fill-panel: var(--color-surface);\n  --fill-button: linear-gradient(to bottom, color-mix(in srgb, var(--color-button) 86%, white), var(--color-button));\n  --fill-button-hover: linear-gradient(var(--color-button), var(--color-button));\n  --fill-button-secondary: linear-gradient(to bottom, color-mix(in srgb, var(--color-button-secondary) 55%, var(--color-border-muted)), var(--color-button-secondary));\n  --fill-input: var(--color-input);\n  --focus-ring: 2px solid var(--color-focus);\n  --transition: box-shadow 0.15s ease-out, background-color 0.15s ease-out, color 0.15s ease-out;\n  --backdrop-blur: 0px;\n}\n"
  }
}
