{
  "id": "v1-fa-2183",
  "long_id": "v1.frutiger-aero.portal.s02.p01.t08.u03",
  "name": "Frutiger Aero start page",
  "era": {
    "slug": "frutiger-aero",
    "code": "fa",
    "name": "Frutiger Aero",
    "years": [
      2004,
      2010
    ],
    "description": "The glossy optimism of 2004 to 2010: sky blue and grass green, glass panels with a bright top highlight, bubbles and soft glows, rounded corners, humanist sans type and reflections under everything."
  },
  "archetype": "portal",
  "mode": "mix",
  "viewport": {
    "width": 1024,
    "fluid": false
  },
  "summary": "A fixed-width personal start page in the dark-glass variety of the Frutiger Aero look: a night-blue page lit by cyan and violet aurora glows, a black glass bar, a search band with one glowing field, and three columns of glass gadgets for news, mail, weather and markets. Portals and start pages of this kind were common from about 2005 to 2010, when every provider let visitors arrange small windows of content. The gadgets are translucent panels with a lit top edge and a deep soft shadow, buttons are capsule-shaped gels with a halo, and the type pairs a small Lucida body with heavier Gill Sans headings.",
  "url": "https://chrono.skin/s/v1-fa-2183",
  "preview_url": "https://chrono.skin/s/v1-fa-2183/specimen.html",
  "files": {
    "STYLE.md": "# Frutiger Aero start page\n\n## Summary\n\nA fixed-width personal start page in the dark-glass variety of the Frutiger Aero look: a night-blue page lit by cyan and violet aurora glows, a black glass bar, a search band with one glowing field, and three columns of glass gadgets for news, mail, weather and markets. Portals and start pages of this kind were common from about 2005 to 2010, when every provider let visitors arrange small windows of content. The gadgets are translucent panels with a lit top edge and a deep soft shadow, buttons are capsule-shaped gels with a halo, and the type pairs a small Lucida body with heavier Gill Sans headings.\n\n## Layout\n\n- Page width is fixed: `--size-page` = 980px, centred in a 1024px window. It does not stretch and does not reflow for phones.\n- The header and the footer span the window; their content sits in a centred `--size-page` box (`.ds-nav__inner`, `.ds-footer__legal-text`). The header is two strips: a small-print strip of `--size-top` (24px) and the glass bar of `--size-nav` (36px).\n- Everything else sits in `.ds-page__wrap`, one translucent sheet (90% `--color-canvas`) that hangs from the bar: no top border, `--radius-page` on the two lower corners, 14px padding. Inside it the content is 950px wide.\n- The home page is the search band (`.ds-hero`) and under it `.ds-page__gadgets`, three columns in the proportion 1.3 to 1 to 1 with `--space-5` (14px) between columns and between the gadgets of a column. Each `.ds-page__column` is a stack of `.ds-panel` gadgets; the last block of a column may be a `.ds-sidebar`.\n- Spacing scale (dense): `--space-1` 2px (hairline gaps), `--space-2` 4px (list row padding, gadget head padding), `--space-3` 6px (gaps between buttons, between grid tiles and forecast tiles), `--space-4` 10px (gadget body padding, control padding, cell padding), `--space-5` 14px (gutter, sheet padding, gap between stacked blocks), `--space-6` 20px (hero padding, gap between main and side column, gap between sections; the largest gap).\n- Fixed sizes: controls `--size-control` 22px tall, the search field and its button `--size-control-large` 32px, the search form `--size-search` 420px, channel orbs `--size-orb` 26px, rank chips `--size-rank` 18px, form labels `--size-label` 140px, the dialog `--size-dialog` 400px.\n- Inner pages drop the search band and the three columns. In the sheet, top to bottom: `.ds-breadcrumb`, then `.ds-page-header` as a glass strip across the full width (title and one line on the left, buttons on the right), then `.ds-page__columns`: a main column (630px) and a right column of `--size-sidebar` (300px), 20px apart. `.ds-tabs` sit at the top of the main column above the list or table they switch; notices sit above the form; a dialog follows its table on a dimmed strip; the side column holds `.ds-sidebar` blocks, gadgets and at most one empty state.\n- Views: the specimen is one start page of five screens, each a `.ds-view` inside the sheet, with header and footer written once around them. `home` is the start page (search band, the News, Channels, Mail, Today, Weather and Markets gadgets, a block of gadgets to add). `news` is the news front (tabs, a roomy list, pagination, most read). `story` is one story (long text, onward links, a traffic gadget with status badges). `mail` is the inbox (the button row in the page header, folder tabs, the table, the deleting dialog, folders, the key to the states, an empty state for drafts). `settings` changes the start page (notices, the form, gadgets to add). Links are plain `href=\"#name\"`; the bar link of the showing view is lit by a `.ds-page:has(#name:target)` rule, the Start link also when no view is named, and the News link also on a story.\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- Three families and a monospace: `--font-body` is Arial, `--font-heading` Georgia, `--font-ui` Verdana, all system faces of the period; `--font-mono` (Courier New) only for a file name in running text.\n- `--text-base` 13px at `--line-body` 1.5. `--text-small` 11px for meta lines, hints, captions and the footer. `--text-ui` 11px bold Verdana (`--weight-ui` 700) for keys, buttons, tabs and form labels.\n- Headings are regular-weight Georgia: `--text-display` 38px hero title, tightened by `--display-tracking` -0.5px; `--text-h1` 27px page titles, figures and the brand name; `--text-h2` 20px card titles and entry titles; `--text-h3` 15px panel, album, dialog and empty-state titles. `--text-large` 15px hero lead and the large button. Nothing is uppercased.\n- Links in running text and plain lists are underlined (`--link-decoration` underline); titles (`.ds-link--title`, bold), quiet links, keys and tabs are not.\n- `--color-page` #5aa51c with `--fill-page`: grass green, lit from the top, with two slanted sunbeams, paler at the foot.\n- `--color-bar` #3f7d12 with `--fill-bar` (satin: a bright line at the top, light to dark without a break) and white `--color-bar-text` under `--shadow-text`: the name plate.\n- `--color-bar-alt` #d6e9a6 with `--fill-bar-alt`: the figures card, table heads, the dialog's title strip.\n- `--color-inverse` #1c6fb0 with `--fill-inverse` (sky blue, darker at the foot, the same sunbeams): the hero and the footer card, white text.\n- `--color-heading` #2f6b0a card and page titles; `--color-heading-alt` #1d74b8 (sky) panel and link-card titles, prose h2, breadcrumb marks. `--color-text` #33382b, `--color-text-muted` #687058.\n- `--color-link` #1b6fb5, `--color-link-quiet` #55703a, visited #7a5a9a, hover #e0561a, active #2f6b0a.\n- `--color-button` #1e88d2 with `--fill-button` (sky glass): the primary button, the brand gel, the current key and page number. `--color-button-secondary` #e3ead3 with `--fill-button-secondary`: every other key and button, comment tiles.\n- `--color-accent` #f26a2e (poppy) with `--fill-accent`: labels and the stroke under the current tab. `--color-accent-alt` #9a52c4: the New marker and the dusk sky of the town picture.\n- `--color-fill-1` to `--color-fill-4` (lime, sky, sun, petal): the lower end of each album cell's fade and the skies and sands of the pictures; never text or borders.\n- Pictures are drawn from the palette: `--color-inverse` sky and sea, `--color-success` hills, `--color-warning` sun, `--color-text-muted` rock, `--color-shadow` roofs. They stand in for the project's own photographs.\n- Borders are 1px solid, 3px (`--border-width-strong`) for the dialog's rim, the stroke at the left of a notice and under the current tab. `--color-border` #c4dc9a, `--color-border-muted` #e2edc9 inside a card, `--color-border-strong` #5c9a2a for the dialog and (at 60%) the cards.\n- `--color-notice` #e3f1fb for notices; `--color-danger` #b81d2a on `--color-danger-surface` #fbe7e6 for errors; `--color-success` #2e8b3d and `--color-warning` #e8a200 fill the status labels.\n- Surface: `--radius-control` 2px, `--radius-panel` 3px, `--radius-pill` 2px, `--radius-page` 4px. `--shadow-panel` is a white inner rim and a short contact shadow under the card; `--shadow-dialog` the deeper one under prints and the dialog; a hovered key gains a rim and glow in `--color-focus`. `--fill-panel` is opaque and `--backdrop-blur` 0px: nothing is frosted. `--transition` none.\n- One-off shades are made with `color-mix()` over tokens: outlines of glass fills (the fill's colour mixed with `--color-shadow`), the cards (92% `--color-canvas`), the notice border, roofs and rock in the pictures, gloss on danger, success and warning fills (mixed with `--color-button-text`). Prints and the blank print of the empty state are turned by a few degrees with `transform`.\n- The era's conventions for which text sits on which fill are kept: body, heading and link colours on canvas, surfaces, `--fill-panel` and the four tints; `--color-bar-text` only on `--fill-bar`, `--color-bar-alt-text` only on `--fill-bar-alt`, `--color-inverse-text` only on `--fill-inverse`; `--color-button-text` on `--fill-button` and on fills made from `--color-danger`, `--color-success` or `--color-accent-alt`; `--color-accent-text` on `--fill-accent` and on `--color-warning`; `--color-button-secondary-text` on `--fill-button-secondary`; `--color-notice-text` on `--color-notice`. No text is set directly on the page.\n\n## Components\n\n- `.ds-page`: on `<body>`. Sets the page fill, base font and colour. `.ds-page__wrap` is the sheet; `.ds-page__gadgets` the three-column grid of the start page with `.ds-page__column` stacks; `.ds-page__columns` holds `.ds-page__main` and `.ds-page__aside` on inner pages. `.ds-section` with a cyan `.ds-section__title` separates blocks by 20px. `.ds-view` is one screen of the example site (`.ds-view--home` the first).\n- `.ds-nav`: the header, full window width. `.ds-nav__top` is the small-print strip (`.ds-nav__date`, right-aligned `.ds-nav__tools` of bold `.ds-nav__tool` links); `.ds-nav__bar` the glass bar; each wraps a `.ds-nav__inner`. The bar holds the `.ds-brand`, `.ds-nav__links` of bold `.ds-nav__link` pills (current: `is-current`, a lit translucent pill; hover: `is-hover`) and a right-aligned `.ds-nav__more` line with a `.ds-nav__more-link`.\n- `.ds-brand`: the site's mark and name at the left end of the bar, linking home; one per page. `.ds-brand__mark` is a round tile dressed like the primary button (`--fill-button`, a darker outline, `--shadow-control`) with the mark in `--color-button-text`; `.ds-brand__name` is the name at `--text-h2` in `--color-bar-text`. The name `chronoskin` and its mark are placeholders for the installing project's own name and logo: replace both, keep the tile.\n- `.ds-hero`: the search band at the top of the start page: a rounded block in `--fill-inverse`. `.ds-hero__main` holds the greeting as `.ds-hero__title` (40px) and one `.ds-hero__lead` line; `.ds-hero__search` on the right holds `.ds-hero__scopes` (links `.ds-hero__scope`, current `is-current`), `.ds-hero__action` (the glowing `.ds-hero__field` and a `.ds-button--large`), and a `.ds-hero__note` of suggestions (`.ds-hero__note-link`). One per site, on the start page only.\n- `.ds-page-header`: the head of an inner page instead of the hero: a glass strip with `.ds-page-header__main` (`.ds-page-header__title`, 26px, the page's h1, and a grey `.ds-page-header__text` line) and `.ds-page-header__actions` at the right. One per inner page.\n- `.ds-panel`: the gadget (`is-last` on the last of a column): `.ds-panel__head` is a glass strip with `.ds-panel__title`, an optional badge and right-aligned `.ds-panel__tools` (small `.ds-panel__tool` links such as Edit and x); `.ds-panel__body` holds the content, `.ds-panel__text`, a `.ds-panel__actions` row of buttons, a `.ds-panel__go` row (a field and its button) or a `.ds-panel__more` link.\n- `.ds-stat`: one forecast tile; four sit in a `.ds-stats` row inside the Weather gadget. Each has a small `.ds-stat__label` (the day) over a 26px `.ds-stat__number` and a `.ds-stat__note`. `.ds-stats__place` above the row names the place, with `.ds-stats__now` for the current reading. Use the row for any three to five figures of one kind inside a gadget.\n- `.ds-grid`: channel tiles, four to a row (`.ds-grid--wide` for a single row in a side column). Each `.ds-grid__cell` is a link (`--1` to `--4` choose the tint it fades into; hover: `is-hover`) with a `.ds-orb` over its name. `.ds-orb` is a 26px glossy ball with a line icon: `--fill-bar` by default, `.ds-orb--accent`, `.ds-orb--button`.\n- `.ds-tabs`: a row of small pills over a hairline: `.ds-tabs__tab`, the current one `is-current` (a piece of the glass bar), `.ds-tabs__count` for a number. Inside a gadget or at the top of the main column.\n- `.ds-list`: tight headline list. Each `.ds-list__item` (first: `is-first`) starts with a round bullet, then `.ds-list__body` with `.ds-list__title` and an optional `.ds-list__text`, then a right-aligned `.ds-list__meta` (a time or a badge). `is-lead` makes the first headline a heading; `.ds-list--roomy` is the full-page form with heading-size titles and 10px rows.\n- `.ds-button`: the primary action: a blue gel capsule with a halo, white bold 12px, 22px tall. Variants: `.ds-button--secondary` (dark glass, the usual button), `.ds-button--danger` (red gel, only for deleting), `.ds-button--large` (32px, the search button), `.ds-button--arrow` (a round button holding only a `.ds-button__icon` arrow, before the link or after the field it belongs to). States `is-hover`, `is-active`, `is-focus`, `is-disabled`. `.ds-buttons` is a row; `.ds-buttons--bar` a toolbar. One primary button per gadget, form or dialog.\n- `.ds-sidebar`: a link block (`is-last` on the last of a column): `.ds-sidebar__title` on a glass strip, `.ds-sidebar__list` of `.ds-sidebar__item` rows (first: `is-first`) divided by hairlines, each with an optional `.ds-sidebar__rank` chip before the link and a right-aligned `.ds-sidebar__count`.\n- `.ds-prose`: long text: h1, h2 (in `--color-heading-alt` over a hairline), h3 (bold), p, ul, ol, code, strong and links inside it are styled. For articles and guides.\n- `.ds-link`: any link. States `is-visited`, `is-hover`, `is-active`, `is-focus`. `.ds-link--title` is bold, for titles; `.ds-link--quiet` for minor links. `.ds-links` lays several out in a row.\n- `.ds-form`: label-left form: `.ds-form__row` with a right-aligned bold `.ds-form__label` and a `.ds-form__field` holding `.ds-form__input` (`--short` for half width), `.ds-form__select` or `.ds-form__textarea`; `.ds-form__hint` and `.ds-form__error` under a control; `is-error`, `is-focus` (a glow in `--color-focus`), `is-disabled` on the control; `.ds-form__check` with `.ds-form__checkbox`; `.ds-form__actions` for the buttons, under a hairline and aligned with the fields.\n- `.ds-table`: data table in a rounded 1px border with the panel shadow: `.ds-table__head` cells form a strip in `--fill-bar-alt`; `.ds-table__row` with `is-alt` on alternate rows; `.ds-table__cell` with a hairline above; `is-numeric` right-aligns; `.ds-table__note` is a second grey line in a cell.\n- `.ds-badge`: a small gel pill in `--fill-accent`. `.ds-badge--count` (flat, a number), `.ds-badge--new` (`--color-accent-alt`). Status variants: `.ds-badge--success`, `.ds-badge--warning`, `.ds-badge--danger`, one per row. `.ds-badges` lays several out in a row.\n- `.ds-notice`: a rounded one-line message with a round `.ds-notice__sign`, `.ds-notice__text` and a bold `.ds-notice__title`. Variant `.ds-notice--error`. Notices sit above the form or list they report on.\n- `.ds-pagination`: a row of small glass keys: `.ds-pagination__link`, `is-current` (the primary button's gel), `is-disabled`, `.ds-pagination__gap` for an ellipsis.\n- `.ds-breadcrumb`: a small trail of `.ds-link` items with `.ds-breadcrumb__sep` guillemets in `--color-heading-alt` and a bold `.ds-breadcrumb__current`.\n- `.ds-dialog`: a window: a glass frame in `--fill-bar` holding `.ds-dialog__title` (with a red `.ds-dialog__close`), a `.ds-dialog__body` in `--color-surface` with `.ds-dialog__text`, and a `.ds-dialog__actions` strip with the buttons at the right. It casts `--shadow-dialog` and sits on `.ds-dialog__backdrop`, a dimmed rounded strip in the page flow, directly under the table or form that opened it.\n- `.ds-empty`: a pale well with a round glass `.ds-empty__orb` icon, `.ds-empty__title`, `.ds-empty__text` and one button.\n- `.ds-footer`: full window width: `.ds-footer__links`, a glass strip of centred small links (`.ds-footer__item`, first `is-first`, hairlines between, `.ds-footer__link`), then `.ds-footer__legal`, an aurora strip holding `.ds-footer__legal-text`, one centred page-width line of small print.\n- `.ds-menu`: a glass drop-down under a navigation item (`.ds-menu__list` of `.ds-menu__link`), opened on hover or focus, never forced open.\n- `.ds-progress`: the glossy accent progress bar, a native `<progress>` in a `.ds-progress__row` with label and value; for downloads, installs and storage.\n- `.ds-carousel`: a picture viewer with previous and next orbs and dots (`.ds-carousel__stage`, `__track`, `__slide`, `__dots`); static, dots are not links.\n- `.ds-avatar`: the framed account picture drawn as initials, beside a name in `.ds-person`; `--small` for tight places.\n\n## Never\n\n- `row-gap <= 20px`: list rows are divided by a hairline, not by space.\n- `block-gap <= 20px`: gadgets are 14px apart, sections at most 20px.\n- `content-width <= 980px`: text stays inside the fixed column.\n- `palette-colours <= 44`: sky blues, one grass green, orange, amber, red, four pale tints and greys.\n- `font-size <= 38px`: the hero title is the largest text.\n- `font-size >= 11px`: nothing is smaller than the meta text.\n- `font-weight <= 700`: bold is the heaviest weight; headings are regular.\n- `font-families <= 4`: body, heading and control faces, a monospace only for a file name.\n- `line-height <= 1.5`: body text is 13px on about 20px.\n- `underlined-links <= 45%`: only links in running text, plain lists and the footer are underlined; titles, keys and tabs are not.\n- `letter-spacing <= 0.5px`: only the hero title is tightened, by half a pixel; nothing is spaced out.\n- `uppercase-text = 0%`: nothing is uppercased by CSS.\n- `border-radius <= 9px`: corners are 3, 5 or 6px; only dots, round buttons and pills are rounder.\n- `border-width <= 1px`: every border and rule is a hairline.\n- `box-shadow-blur <= 12px`: shadows are short; the dialog's 12px is the deepest.\n- `gradient-fills <= 26%`: gloss belongs to the strips, tabs, buttons, pills and tiles; text areas stay plain.\n- `transition = none`: states change at once.\n- `animation = none`: nothing moves.\n\n## Extending\n\nDerive a new component from the nearest one in the specimen and use tokens only. Anything that shows live content is a gadget: a `.ds-panel` with a head strip, tools and a body, placed in a column. A new bar is `--fill-bar`, a strip `--fill-bar-alt`, a band `--fill-inverse`; anything round and pressable is dressed like `.ds-orb` or `.ds-button--arrow`. Keep to the conventions above for which text token sits on which fill, give glossy fills an outline mixed from their colour and `--color-shadow`, take glows from `--color-focus`, and make any extra shade with `color-mix()` over existing tokens.\n",
    "components.css": ":root {\n  --size-page: 980px;\n  --size-sidebar: 300px;\n  --size-top: 24px;\n  --size-nav: 36px;\n  --size-search: 420px;\n  --size-mark: 22px;\n  --size-control: 22px;\n  --size-control-large: 32px;\n  --size-icon: 14px;\n  --size-orb: 26px;\n  --size-rank: 18px;\n  --size-glow: 10px;\n  --size-label: 140px;\n  --size-textarea: 64px;\n  --size-dialog: 400px;\n  --space-1: 2px;\n  --space-2: 4px;\n  --space-3: 6px;\n  --space-4: 10px;\n  --space-5: 14px;\n  --space-6: 20px;\n}\n\n/* shell: two full-width strips, then one sheet hanging from them, three columns of gadgets */\n.ds-page {\n  margin: 0;\n  padding: 0;\n  background: var(--fill-page);\n  color: var(--color-text);\n  font-family: var(--font-body);\n  font-size: var(--text-base);\n  font-weight: var(--weight-body);\n  line-height: var(--line-body);\n}\n.ds-page *,\n.ds-page *::before,\n.ds-page *::after { box-sizing: border-box; }\n.ds-page__wrap {\n  width: var(--size-page);\n  margin: 0 auto var(--space-6);\n  padding: var(--space-5) var(--space-5) var(--space-6);\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-border-strong) 70%, transparent);\n  border-top: 0;\n  border-radius: 0 0 var(--radius-page) var(--radius-page);\n  background: color-mix(in srgb, var(--color-canvas) 90%, transparent);\n  -webkit-backdrop-filter: blur(calc(var(--backdrop-blur) * 2));\n  backdrop-filter: blur(calc(var(--backdrop-blur) * 2));\n  box-shadow: var(--shadow-panel);\n}\n.ds-page__gadgets {\n  display: grid;\n  grid-template-columns: 1.3fr 1fr 1fr;\n  align-items: start;\n  gap: var(--space-5);\n}\n.ds-page__column { min-width: 0; }\n.ds-page__columns {\n  display: flex;\n  align-items: flex-start;\n  gap: var(--space-6);\n}\n.ds-page__main {\n  flex: 1 1 0;\n  min-width: 0;\n}\n.ds-page__aside {\n  flex: 0 0 var(--size-sidebar);\n  width: var(--size-sidebar);\n}\n.ds-section { margin: var(--space-6) 0 0; }\n.ds-section__title {\n  margin: 0 0 var(--space-4);\n  color: var(--color-heading-alt);\n  font-family: var(--font-heading);\n  font-size: var(--text-h3);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n}\n\n/* views: one screen of the example site shows at a time */\n.ds-view { display: none; }\n.ds-view:target, .ds-page:not(:has(.ds-view:target)) .ds-view--home { display: block; }\n.ds-view:target { scroll-margin-top: 100vh; }\n\n/* nav: a pale strip of small print, then the glass bar with the brand and the channels */\n.ds-nav { margin: 0; }\n.ds-nav__top {\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n  font-size: var(--text-small);\n}\n.ds-nav__bar {\n  border-bottom: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-bar) 60%, var(--color-shadow));\n  background: var(--fill-bar);\n  box-shadow: var(--shadow-panel);\n  color: var(--color-bar-text);\n}\n.ds-nav__inner {\n  display: flex;\n  align-items: center;\n  gap: var(--space-5);\n  width: var(--size-page);\n  margin: 0 auto;\n  padding: 0 var(--space-5);\n}\n.ds-nav__top .ds-nav__inner { height: var(--size-top); }\n.ds-nav__bar .ds-nav__inner { height: var(--size-nav); }\n.ds-nav__date { margin: 0; }\n.ds-nav__tools {\n  display: flex;\n  align-items: center;\n  gap: var(--space-4);\n  margin: 0 0 0 auto;\n  padding: 0;\n  list-style: none;\n}\n.ds-nav__tool {\n  color: var(--color-bar-alt-text);\n  font-weight: var(--weight-bold);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-nav__tool:hover,\n.ds-nav__tool.is-hover { text-decoration: var(--link-decoration-hover); }\n.ds-nav__links {\n  display: flex;\n  align-items: center;\n  gap: var(--space-2);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-nav__link {\n  display: block;\n  padding: var(--space-2) var(--space-4);\n  border: var(--border-width) var(--border-style) transparent;\n  border-radius: var(--radius-pill);\n  color: var(--color-bar-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n  text-decoration: var(--link-decoration-quiet);\n  text-shadow: var(--shadow-text);\n  text-transform: var(--ui-transform);\n}\n.ds-nav__link:hover,\n.ds-nav__link.is-hover { border-color: color-mix(in srgb, var(--color-bar-text) 45%, transparent); }\n.ds-nav__link.is-current,\n.ds-page:not(:has(.ds-view:target)) .ds-nav__link[href=\"#home\"],\n.ds-page:has(#home:target) .ds-nav__link[href=\"#home\"],\n.ds-page:has(#news:target) .ds-nav__link[href=\"#news\"],\n.ds-page:has(#story:target) .ds-nav__link[href=\"#news\"],\n.ds-page:has(#mail:target) .ds-nav__link[href=\"#mail\"],\n.ds-page:has(#settings:target) .ds-nav__link[href=\"#settings\"] {\n  border-color: color-mix(in srgb, var(--color-bar-text) 45%, transparent);\n  background: color-mix(in srgb, var(--color-bar-text) 22%, transparent);\n  box-shadow: var(--shadow-control);\n}\n.ds-nav__more {\n  margin: 0 0 0 auto;\n  color: var(--color-bar-text);\n  font-size: var(--text-small);\n  text-shadow: var(--shadow-text);\n}\n.ds-nav__more-link {\n  color: var(--color-bar-text);\n  font-weight: var(--weight-bold);\n  text-decoration: var(--link-decoration-quiet);\n}\n\n/* hero: the search band; a greeting on the left, scopes and one glowing field on the right */\n.ds-hero {\n  display: flex;\n  align-items: center;\n  gap: var(--space-6);\n  margin: 0 0 var(--space-5);\n  padding: var(--space-5) var(--space-6);\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-inverse) 60%, var(--color-shadow));\n  border-radius: var(--radius-page);\n  background: var(--fill-inverse);\n  box-shadow: var(--shadow-panel);\n  color: var(--color-inverse-text);\n}\n.ds-hero__main {\n  flex: 1 1 0;\n  min-width: 0;\n}\n.ds-hero__title {\n  margin: 0 0 var(--space-2);\n  color: var(--color-inverse-text);\n  font-family: var(--font-heading);\n  font-size: var(--text-display);\n  font-weight: var(--weight-display);\n  line-height: var(--line-display);\n  letter-spacing: var(--display-tracking);\n  text-shadow: var(--shadow-text);\n}\n.ds-hero__lead {\n  margin: 0;\n  font-size: var(--text-large);\n  line-height: var(--line-body);\n}\n.ds-hero__search {\n  flex: 0 0 var(--size-search);\n  width: var(--size-search);\n  margin: 0;\n}\n.ds-hero__scopes {\n  display: flex;\n  gap: var(--space-4);\n  margin: 0 0 var(--space-3);\n  padding: 0 var(--space-4);\n  list-style: none;\n  font-size: var(--text-ui);\n}\n.ds-hero__scope {\n  color: var(--color-inverse-text);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-hero__scope:hover,\n.ds-hero__scope.is-hover { text-decoration: var(--link-decoration-hover); }\n.ds-hero__scope.is-current { font-weight: var(--weight-bold); text-decoration: underline; }\n.ds-hero__action {\n  display: flex;\n  align-items: center;\n  gap: var(--space-3);\n  margin: 0;\n}\n.ds-hero__field {\n  flex: 1 1 0;\n  min-width: 0;\n  height: var(--size-control-large);\n  margin: 0;\n  padding: 0 var(--space-5);\n  border: var(--border-width) var(--border-style) var(--color-focus);\n  border-radius: var(--radius-pill);\n  background: var(--fill-input);\n  box-shadow: 0 0 var(--size-glow) color-mix(in srgb, var(--color-focus) 90%, transparent), 0 0 calc(var(--size-glow) * 3) color-mix(in srgb, var(--color-focus) 45%, transparent);\n  color: var(--color-input-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-large);\n}\n.ds-hero__field:focus,\n.ds-hero__field.is-focus { outline: var(--focus-ring); }\n.ds-hero__note {\n  margin: var(--space-3) 0 0;\n  padding: 0 var(--space-4);\n  font-size: var(--text-small);\n  opacity: 0.9;\n}\n.ds-hero__note-link {\n  color: var(--color-inverse-text);\n  text-decoration: underline;\n}\n\n/* page header: head of an inner page, a glass strip across the sheet */\n.ds-page-header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: var(--space-5);\n  margin: 0 0 var(--space-5);\n  padding: var(--space-4) var(--space-5);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n  background: var(--fill-panel);\n  box-shadow: var(--shadow-panel);\n}\n.ds-page-header__main {\n  flex: 1 1 0;\n  min-width: 0;\n}\n.ds-page-header__title {\n  margin: 0;\n  color: var(--color-heading);\n  font-family: var(--font-heading);\n  font-size: var(--text-h1);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n}\n.ds-page-header__text {\n  margin: var(--space-1) 0 0;\n  color: var(--color-text-muted);\n}\n.ds-page-header__actions {\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center;\n  gap: var(--space-3);\n}\n\n/* panel: the gadget; a glass title strip with small tools, then the body */\n.ds-panel {\n  margin: 0 0 var(--space-5);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n  background: var(--fill-panel);\n  -webkit-backdrop-filter: blur(var(--backdrop-blur));\n  backdrop-filter: blur(var(--backdrop-blur));\n  box-shadow: var(--shadow-panel);\n  overflow: hidden;\n}\n.ds-panel.is-last { margin-bottom: 0; }\n.ds-panel__head {\n  display: flex;\n  align-items: center;\n  gap: var(--space-3);\n  padding: var(--space-2) var(--space-4);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n}\n.ds-panel__title {\n  margin: 0;\n  color: var(--color-bar-alt-text);\n  font-family: var(--font-heading);\n  font-size: var(--text-h3);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n}\n.ds-panel__tools {\n  display: flex;\n  gap: var(--space-3);\n  margin: 0 0 0 auto;\n  font-size: var(--text-small);\n}\n.ds-panel__tool {\n  color: var(--color-bar-alt-text);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-panel__tool:hover,\n.ds-panel__tool.is-hover { text-decoration: var(--link-decoration-hover); }\n.ds-panel__body { padding: var(--space-4); }\n.ds-panel__text { margin: 0 0 var(--space-3); }\n.ds-panel__text.is-last { margin-bottom: 0; }\n.ds-panel__actions {\n  display: flex;\n  align-items: center;\n  gap: var(--space-3);\n  margin: var(--space-4) 0 0;\n}\n.ds-panel__go {\n  display: flex;\n  align-items: center;\n  gap: var(--space-2);\n  margin: var(--space-4) 0 0;\n}\n.ds-panel__go .ds-form__input { flex: 1 1 0; min-width: 0; }\n.ds-panel__more { margin-left: auto; font-size: var(--text-small); }\n\n/* stats: the forecast; a row of small glass tiles, the day over a large figure */\n.ds-stats {\n  display: flex;\n  gap: var(--space-3);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-stat {\n  flex: 1 1 0;\n  min-width: 0;\n  padding: var(--space-3) var(--space-2);\n  border: var(--border-width) var(--border-style) var(--color-border-muted);\n  border-radius: var(--radius-control);\n  background: linear-gradient(to bottom, var(--color-fill-1) 0, var(--color-surface) 100%);\n  text-align: center;\n}\n.ds-stat__label {\n  display: block;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n}\n.ds-stat__number {\n  display: block;\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}\n.ds-stat__note {\n  display: block;\n  font-size: var(--text-small);\n}\n.ds-stats__place {\n  margin: 0 0 var(--space-3);\n  color: var(--color-heading);\n  font-weight: var(--weight-bold);\n}\n.ds-stats__now { font-weight: var(--weight-body); color: var(--color-text); }\n\n/* grid: channel tiles, two rows of four, a small orb beside each name */\n.ds-grid {\n  display: grid;\n  grid-template-columns: repeat(4, 1fr);\n  gap: var(--space-3);\n  margin: 0;\n}\n.ds-grid--wide { gap: var(--space-4); }\n.ds-grid__cell {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: var(--space-2);\n  padding: var(--space-4) var(--space-2) var(--space-3);\n  border: var(--border-width) var(--border-style) var(--color-border-muted);\n  border-radius: var(--radius-control);\n  background: var(--color-surface-alt);\n  color: var(--color-link);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n  text-align: center;\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-grid__cell:hover,\n.ds-grid__cell.is-hover { border-color: var(--color-focus); text-decoration: var(--link-decoration-hover); }\n.ds-grid__cell--1 { background: linear-gradient(to bottom, var(--color-surface) 0, var(--color-fill-1) 100%); }\n.ds-grid__cell--2 { background: linear-gradient(to bottom, var(--color-surface) 0, var(--color-fill-2) 100%); }\n.ds-grid__cell--3 { background: linear-gradient(to bottom, var(--color-surface) 0, var(--color-fill-3) 100%); }\n.ds-grid__cell--4 { background: linear-gradient(to bottom, var(--color-surface) 0, var(--color-fill-4) 100%); }\n.ds-orb {\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center;\n  justify-content: center;\n  width: var(--size-orb);\n  height: var(--size-orb);\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-bar) 68%, var(--color-shadow));\n  border-radius: 50%;\n  background: var(--fill-bar);\n  box-shadow: var(--shadow-control);\n  color: var(--color-bar-text);\n}\n.ds-orb svg {\n  display: block;\n  width: 54%;\n  height: 54%;\n}\n.ds-orb--accent {\n  border-color: color-mix(in srgb, var(--color-accent) 68%, var(--color-shadow));\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n}\n.ds-orb--button {\n  border-color: color-mix(in srgb, var(--color-button) 68%, var(--color-shadow));\n  background: var(--fill-button);\n  color: var(--color-button-text);\n}\n\n/* tabs: a row of small pills; the current one is a piece of the glass bar */\n.ds-tabs {\n  display: flex;\n  align-items: center;\n  gap: var(--space-2);\n  margin: 0 0 var(--space-4);\n  padding: 0 0 var(--space-3);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border-muted);\n  list-style: none;\n}\n.ds-tabs__tab {\n  display: block;\n  padding: var(--space-1) var(--space-4);\n  border: var(--border-width) var(--border-style) transparent;\n  border-radius: var(--radius-pill);\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}\n.ds-tabs__tab:hover,\n.ds-tabs__tab.is-hover { border-color: var(--color-border); color: var(--color-link-hover); }\n.ds-tabs__tab.is-current {\n  border-color: color-mix(in srgb, var(--color-bar) 60%, var(--color-shadow));\n  background: var(--fill-bar);\n  box-shadow: var(--shadow-control);\n  color: var(--color-bar-text);\n  font-weight: var(--weight-bold);\n  text-shadow: var(--shadow-text);\n}\n.ds-tabs__count { font-weight: var(--weight-body); }\n\n/* list: tight headlines after a small round bullet; the first may carry a line of text */\n.ds-list {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-list__item {\n  display: flex;\n  align-items: baseline;\n  gap: var(--space-3);\n  padding: var(--space-2) 0;\n  border-top: var(--border-width) var(--border-style) var(--color-border-muted);\n}\n.ds-list__item.is-first { border-top: 0; padding-top: 0; }\n.ds-list__item::before {\n  content: \"\";\n  flex: 0 0 auto;\n  width: var(--space-3);\n  height: var(--space-3);\n  border-radius: 50%;\n  background: var(--fill-accent);\n}\n.ds-list__body {\n  flex: 1 1 0;\n  min-width: 0;\n}\n.ds-list__title {\n  margin: 0;\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-list__item.is-lead .ds-list__title {\n  font-family: var(--font-heading);\n  font-size: var(--text-h3);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n}\n.ds-list__text { margin: var(--space-1) 0 0; }\n.ds-list__meta {\n  flex: 0 0 auto;\n  margin: 0;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  white-space: nowrap;\n}\n.ds-list--roomy .ds-list__item { padding: var(--space-4) 0; }\n.ds-list--roomy .ds-list__title {\n  font-family: var(--font-heading);\n  font-size: var(--text-h3);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n}\n\n/* sidebar: a ranked link block; a number chip, the link, a count */\n.ds-sidebar {\n  margin: 0 0 var(--space-5);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n  background: var(--color-surface);\n  box-shadow: var(--shadow-panel);\n  overflow: hidden;\n}\n.ds-sidebar.is-last { margin-bottom: 0; }\n.ds-sidebar__title {\n  margin: 0;\n  padding: var(--space-2) var(--space-4);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n  font-family: var(--font-heading);\n  font-size: var(--text-h3);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n}\n.ds-sidebar__list {\n  margin: 0;\n  padding: var(--space-2) var(--space-4);\n  list-style: none;\n}\n.ds-sidebar__item {\n  display: flex;\n  align-items: baseline;\n  gap: var(--space-3);\n  padding: var(--space-2) 0;\n  border-top: var(--border-width) var(--border-style) var(--color-border-muted);\n}\n.ds-sidebar__item.is-first { border-top: 0; }\n.ds-sidebar__rank {\n  flex: 0 0 var(--size-rank);\n  width: var(--size-rank);\n  border-radius: var(--radius-control);\n  background: var(--color-surface-strong);\n  color: var(--color-heading);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  text-align: center;\n}\n.ds-sidebar__count {\n  margin-left: auto;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  white-space: nowrap;\n}\n\n/* footer: a pale strip of links across the window, then the sky band of small print */\n.ds-footer { margin: 0; }\n.ds-footer__links {\n  display: flex;\n  justify-content: center;\n  margin: 0;\n  padding: var(--space-4) 0;\n  border-top: var(--border-width) var(--border-style) var(--color-border);\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n  font-size: var(--text-small);\n  list-style: none;\n}\n.ds-footer__item {\n  padding: 0 var(--space-4);\n  border-left: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-bar-alt-text) 40%, transparent);\n  line-height: 1;\n}\n.ds-footer__item.is-first { border-left: 0; }\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 { text-decoration: var(--link-decoration-hover); }\n.ds-footer__legal {\n  margin: 0;\n  padding: var(--space-5) 0;\n  background: var(--fill-inverse);\n  color: var(--color-inverse-text);\n}\n.ds-footer__legal-text {\n  width: var(--size-page);\n  margin: 0 auto;\n  font-size: var(--text-small);\n  text-align: center;\n}\n\n/* brand: the mark on a glossy tile dressed like the primary button, the name on the glass bar */\n.ds-brand {\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center;\n  gap: var(--space-3);\n  text-decoration: none;\n}\n.ds-brand__mark {\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center;\n  justify-content: center;\n  width: var(--size-mark);\n  height: var(--size-mark);\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-button) 70%, var(--color-shadow));\n  border-radius: 50%;\n  background: var(--fill-button);\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-text);\n}\n.ds-brand__mark svg {\n  display: block;\n  width: 68%;\n  height: 68%;\n}\n.ds-brand__name {\n  color: var(--color-bar-text);\n  font-family: var(--font-heading);\n  font-size: var(--text-h2);\n  font-weight: var(--weight-display);\n  line-height: var(--line-display);\n  letter-spacing: var(--display-tracking);\n  text-shadow: var(--shadow-text);\n}\n\n/* typography */\n.ds-prose { margin: 0; }\n.ds-prose h1,\n.ds-prose h2,\n.ds-prose h3 {\n  margin: var(--space-5) 0 var(--space-3);\n  color: var(--color-heading);\n  font-family: var(--font-heading);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n}\n.ds-prose h1 { margin-top: 0; font-size: var(--text-h1); }\n.ds-prose h2 {\n  padding-bottom: var(--space-2);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border-muted);\n  color: var(--color-heading-alt);\n  font-size: var(--text-h2);\n}\n.ds-prose h3 { font-size: var(--text-h3); font-weight: var(--weight-bold); }\n.ds-prose p { margin: 0 0 var(--space-4); }\n.ds-prose ul,\n.ds-prose ol {\n  margin: 0 0 var(--space-4);\n  padding: 0 0 0 var(--space-6);\n}\n.ds-prose li { margin: 0 0 var(--space-2); }\n.ds-prose li::marker { color: var(--color-heading-alt); }\n.ds-prose strong { font-weight: var(--weight-bold); }\n.ds-prose code {\n  padding: 0 var(--space-2);\n  border: var(--border-width) var(--border-style) var(--color-border-muted);\n  border-radius: var(--radius-control);\n  background: var(--color-surface-alt);\n  font-family: var(--font-mono);\n  font-size: var(--text-small);\n}\n.ds-prose a {\n  color: var(--color-link);\n  text-decoration: var(--link-decoration);\n}\n\n/* links */\n.ds-links {\n  display: flex;\n  flex-wrap: wrap;\n  gap: var(--space-2) var(--space-5);\n  margin: 0;\n}\n.ds-link {\n  color: var(--color-link);\n  text-decoration: var(--link-decoration);\n}\n.ds-link:visited,\n.ds-link.is-visited { color: var(--color-link-visited); }\n.ds-link:hover,\n.ds-link.is-hover {\n  color: var(--color-link-hover);\n  text-decoration: var(--link-decoration-hover);\n}\n.ds-link:active,\n.ds-link.is-active { color: var(--color-link-active); }\n.ds-link:focus-visible,\n.ds-link.is-focus { outline: var(--focus-ring); }\n.ds-link--title {\n  font-weight: var(--weight-bold);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-link--quiet {\n  color: var(--color-link-quiet);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-link--quiet:hover,\n.ds-link--quiet.is-hover { color: var(--color-link-hover); }\n\n/* buttons: gel buttons with a bright upper half; the arrow button is a round one */\n.ds-buttons {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-3);\n  margin: 0;\n}\n.ds-buttons--bar { margin: var(--space-4) 0; }\n.ds-button {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: var(--space-2);\n  height: var(--size-control);\n  margin: 0;\n  padding: 0 var(--space-4);\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-button) 68%, var(--color-shadow));\n  border-radius: var(--radius-control);\n  background: var(--fill-button);\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  line-height: 1;\n  text-decoration: none;\n  text-shadow: var(--shadow-text);\n  text-transform: var(--ui-transform);\n  white-space: nowrap;\n  transition: var(--transition);\n  cursor: pointer;\n}\n.ds-button:hover,\n.ds-button.is-hover {\n  background: var(--fill-button-hover);\n  box-shadow: var(--shadow-control-hover);\n  color: var(--color-button-hover-text);\n}\n.ds-button:active,\n.ds-button.is-active {\n  background: var(--color-button);\n  box-shadow: var(--shadow-control-pressed);\n}\n.ds-button:focus-visible,\n.ds-button.is-focus { outline: var(--focus-ring); }\n.ds-button__icon {\n  display: block;\n  flex: 0 0 auto;\n  width: var(--size-icon);\n  height: var(--size-icon);\n}\n.ds-button--large {\n  height: var(--size-control-large);\n  padding: 0 var(--space-5);\n  font-size: var(--text-large);\n}\n.ds-button--arrow {\n  flex: 0 0 auto;\n  width: var(--size-control);\n  padding: 0;\n  border-radius: 50%;\n}\n.ds-button--secondary {\n  border-color: color-mix(in srgb, var(--color-button-secondary) 60%, var(--color-shadow));\n  background: var(--fill-button-secondary);\n  color: var(--color-button-secondary-text);\n  font-weight: var(--weight-ui);\n  text-shadow: none;\n}\n.ds-button--secondary:hover,\n.ds-button--secondary.is-hover {\n  background: var(--fill-button-secondary);\n  color: var(--color-button-secondary-text);\n}\n.ds-button--secondary:active,\n.ds-button--secondary.is-active { background: var(--color-button-secondary); }\n.ds-button--danger {\n  border-color: color-mix(in srgb, var(--color-danger) 68%, var(--color-shadow));\n  background: linear-gradient(to bottom, color-mix(in srgb, var(--color-danger), var(--color-button-text) 55%) 0, color-mix(in srgb, var(--color-danger), var(--color-button-text) 18%) 48%, var(--color-danger) 52%, color-mix(in srgb, var(--color-danger), var(--color-button-text) 20%) 100%);\n  color: var(--color-button-text);\n}\n.ds-button--danger:hover,\n.ds-button--danger.is-hover {\n  background: linear-gradient(to bottom, color-mix(in srgb, var(--color-danger), var(--color-button-text) 66%) 0, color-mix(in srgb, var(--color-danger), var(--color-button-text) 28%) 48%, color-mix(in srgb, var(--color-danger), var(--color-button-text) 8%) 52%, color-mix(in srgb, var(--color-danger), var(--color-button-text) 32%) 100%);\n  color: var(--color-button-text);\n}\n.ds-button--danger:active,\n.ds-button--danger.is-active { background: var(--color-danger); }\n.ds-button:disabled,\n.ds-button.is-disabled {\n  border-color: var(--color-border);\n  background: var(--color-disabled);\n  box-shadow: none;\n  color: var(--color-disabled-text);\n  text-shadow: none;\n  cursor: default;\n}\n\n/* form */\n.ds-form { margin: 0; }\n.ds-form__row {\n  display: flex;\n  align-items: flex-start;\n  gap: var(--space-4);\n  margin: 0 0 var(--space-3);\n}\n.ds-form__label {\n  flex: 0 0 var(--size-label);\n  padding-top: var(--space-2);\n  color: var(--color-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  text-align: right;\n}\n.ds-form__field {\n  flex: 1 1 0;\n  min-width: 0;\n}\n.ds-form__input,\n.ds-form__select,\n.ds-form__textarea {\n  width: 100%;\n  margin: 0;\n  padding: var(--space-2) var(--space-3);\n  border: var(--border-width) var(--border-style) var(--color-input-border);\n  border-radius: var(--radius-control);\n  background: var(--fill-input);\n  color: var(--color-input-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-body);\n  line-height: var(--line-body);\n}\n.ds-form__input,\n.ds-form__select { height: var(--size-control); }\n.ds-form__select { width: auto; padding: 0 var(--space-2); }\n.ds-form__input--short { width: 50%; }\n.ds-form__textarea {\n  display: block;\n  height: var(--size-textarea);\n  resize: vertical;\n}\n.ds-form__input:focus,\n.ds-form__input.is-focus,\n.ds-form__select:focus,\n.ds-form__select.is-focus,\n.ds-form__textarea:focus,\n.ds-form__textarea.is-focus {\n  outline: var(--focus-ring);\n  border-color: var(--color-focus);\n  box-shadow: 0 0 var(--size-glow) color-mix(in srgb, var(--color-focus) 80%, transparent);\n}\n.ds-form__input:disabled,\n.ds-form__input.is-disabled {\n  border-color: var(--color-border);\n  background: var(--color-disabled);\n  color: var(--color-disabled-text);\n}\n.ds-form__input.is-error {\n  border-color: var(--color-danger);\n  background: var(--color-danger-surface);\n}\n.ds-form__error {\n  margin: var(--space-2) 0 0;\n  color: var(--color-danger);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n}\n.ds-form__hint {\n  margin: var(--space-2) 0 0;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n}\n.ds-form__check {\n  display: flex;\n  align-items: center;\n  gap: var(--space-3);\n  padding-top: var(--space-2);\n  font-size: var(--text-ui);\n}\n.ds-form__checkbox { margin: 0; accent-color: var(--color-button); }\n.ds-form__actions {\n  display: flex;\n  align-items: center;\n  gap: var(--space-3);\n  margin: var(--space-5) 0 0;\n  padding: var(--space-4) 0 0 calc(var(--size-label) + var(--space-4));\n  border-top: var(--border-width) var(--border-style) var(--color-border-muted);\n}\n\n/* table: pale glass head, hairlines between rows */\n.ds-table {\n  width: 100%;\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-collapse: separate;\n  border-spacing: 0;\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-panel);\n  font-size: var(--text-base);\n  line-height: var(--line-body);\n  overflow: hidden;\n}\n.ds-table__head {\n  padding: var(--space-3) var(--space-4);\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  text-align: left;\n  text-transform: var(--ui-transform);\n  white-space: nowrap;\n}\n.ds-table__cell {\n  padding: var(--space-3) var(--space-4);\n  border-top: var(--border-width) var(--border-style) var(--color-border-muted);\n  background: var(--color-surface);\n  color: var(--color-text);\n  vertical-align: middle;\n}\n.ds-table__row.is-alt .ds-table__cell { background: var(--color-surface-alt); }\n.ds-table__head.is-numeric,\n.ds-table__cell.is-numeric { text-align: right; }\n.ds-table__cell.is-numeric { font-variant-numeric: tabular-nums; white-space: nowrap; }\n.ds-table__note {\n  display: block;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n}\n\n/* badge: a small gel pill */\n.ds-badge {\n  display: inline-block;\n  padding: 0 var(--space-3);\n  border-radius: var(--radius-pill);\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  line-height: calc(var(--text-small) + var(--space-3));\n  text-decoration: none;\n  vertical-align: baseline;\n  white-space: nowrap;\n}\n.ds-badge--count {\n  background: var(--color-surface-strong);\n  color: var(--color-heading);\n  font-weight: var(--weight-body);\n}\n.ds-badge--new {\n  background: var(--color-accent-alt);\n  color: var(--color-button-text);\n}\n.ds-badge--success {\n  background: linear-gradient(to bottom, color-mix(in srgb, var(--color-success), var(--color-button-text) 35%) 0, var(--color-success) 55%);\n  color: var(--color-button-text);\n}\n.ds-badge--warning {\n  background: linear-gradient(to bottom, color-mix(in srgb, var(--color-warning), var(--color-button-text) 45%) 0, var(--color-warning) 55%);\n  color: var(--color-accent-text);\n}\n.ds-badge--danger {\n  background: linear-gradient(to bottom, color-mix(in srgb, var(--color-danger), var(--color-button-text) 35%) 0, var(--color-danger) 55%);\n  color: var(--color-button-text);\n}\n.ds-badges {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-3);\n  margin: 0;\n}\n\n/* notice: a rounded bar with a round sign */\n.ds-notice {\n  display: flex;\n  align-items: flex-start;\n  gap: var(--space-3);\n  margin: 0 0 var(--space-4);\n  padding: var(--space-3) var(--space-4);\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-warning) 55%, var(--color-notice));\n  border-radius: var(--radius-panel);\n  background: var(--color-notice);\n  color: var(--color-notice-text);\n}\n.ds-notice__sign {\n  display: block;\n  flex: 0 0 auto;\n  width: var(--size-icon);\n  height: var(--size-icon);\n  border-radius: 50%;\n  background: var(--color-warning);\n  color: var(--color-accent-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  line-height: 1;\n  align-content: center;\n  text-align: center;\n  text-box: trim-both cap alphabetic;\n}\n.ds-notice__text { margin: 0; }\n.ds-notice__title { font-weight: var(--weight-bold); }\n.ds-notice--error {\n  border-color: var(--color-danger);\n  background: var(--color-danger-surface);\n  color: var(--color-danger);\n}\n.ds-notice--error .ds-notice__sign {\n  background: var(--color-danger);\n  color: var(--color-button-text);\n}\n\n/* pagination: small glass keys */\n.ds-pagination {\n  display: flex;\n  align-items: center;\n  gap: var(--space-2);\n  margin: var(--space-5) 0 0;\n  padding: 0;\n  list-style: none;\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  line-height: 1;\n}\n.ds-pagination__link {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-width: var(--size-control);\n  height: var(--size-control);\n  padding: 0 var(--space-3);\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-button-secondary) 60%, var(--color-shadow));\n  border-radius: var(--radius-control);\n  background: var(--fill-button-secondary);\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-secondary-text);\n  text-decoration: none;\n}\n.ds-pagination__link:hover,\n.ds-pagination__link.is-hover { box-shadow: var(--shadow-control-hover); }\n.ds-pagination__link.is-current {\n  border-color: color-mix(in srgb, var(--color-button) 68%, var(--color-shadow));\n  background: var(--fill-button);\n  color: var(--color-button-text);\n  font-weight: var(--weight-bold);\n  text-shadow: var(--shadow-text);\n}\n.ds-pagination__link.is-disabled {\n  border-color: var(--color-border);\n  background: var(--color-disabled);\n  box-shadow: none;\n  color: var(--color-disabled-text);\n}\n.ds-pagination__gap { padding: 0 var(--space-2); color: var(--color-text-muted); }\n\n/* breadcrumb */\n.ds-breadcrumb {\n  display: flex;\n  align-items: center;\n  gap: var(--space-3);\n  margin: 0 0 var(--space-4);\n  padding: 0;\n  list-style: none;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  line-height: var(--line-body);\n}\n.ds-breadcrumb__sep { color: var(--color-heading-alt); }\n.ds-breadcrumb__current { color: var(--color-text); font-weight: var(--weight-bold); }\n\n/* dialog: a glass window with a title bar, set in the page flow on a dimmed strip */\n.ds-dialog__backdrop {\n  display: flex;\n  justify-content: center;\n  margin: var(--space-5) 0 0;\n  padding: var(--space-6) var(--space-5);\n  border-radius: var(--radius-panel);\n  background: var(--color-overlay);\n}\n.ds-dialog {\n  width: var(--size-dialog);\n  max-width: 100%;\n  padding: var(--space-2);\n  border: var(--border-width-strong) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-panel);\n  background: var(--fill-bar);\n  box-shadow: var(--shadow-dialog);\n}\n.ds-dialog__title {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  margin: 0;\n  padding: var(--space-2) var(--space-3) var(--space-3);\n  color: var(--color-bar-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-h3);\n  font-weight: var(--weight-ui);\n  line-height: var(--line-heading);\n  text-shadow: var(--shadow-text);\n}\n.ds-dialog__close {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: calc(var(--size-icon) * 2);\n  height: var(--size-icon);\n  border-radius: var(--radius-control);\n  background: var(--color-danger);\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-text);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  line-height: 1;\n  text-decoration: none;\n  text-shadow: none;\n}\n.ds-dialog__close::before {\n  content: \"\";\n  display: inline-block;\n  width: calc(var(--text-small) * 0.9);\n  height: calc(var(--text-small) * 0.9);\n  background: currentColor;\n  clip-path: polygon(calc(50% - var(--space-3) / 8) 0, calc(50% + var(--space-3) / 8) 0, calc(50% + var(--space-3) / 8) calc(50% - var(--space-3) / 8), 100% calc(50% - var(--space-3) / 8), 100% calc(50% + var(--space-3) / 8), calc(50% + var(--space-3) / 8) calc(50% + var(--space-3) / 8), calc(50% + var(--space-3) / 8) 100%, calc(50% - var(--space-3) / 8) 100%, calc(50% - var(--space-3) / 8) calc(50% + var(--space-3) / 8), 0 calc(50% + var(--space-3) / 8), 0 calc(50% - var(--space-3) / 8), calc(50% - var(--space-3) / 8) calc(50% - var(--space-3) / 8));\n  rotate: 45deg;\n  vertical-align: middle;\n}\n.ds-dialog__body {\n  padding: var(--space-5);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-bottom: 0;\n  border-radius: var(--radius-control) var(--radius-control) 0 0;\n  background: var(--color-surface);\n}\n.ds-dialog__text { margin: 0; }\n.ds-dialog__actions {\n  display: flex;\n  justify-content: flex-end;\n  gap: var(--space-3);\n  padding: var(--space-3) var(--space-4);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-top-color: var(--color-border-muted);\n  border-radius: 0 0 var(--radius-control) var(--radius-control);\n  background: var(--color-surface-strong);\n}\n\n/* empty state: a pale well with a glass bubble */\n.ds-empty {\n  padding: var(--space-6) var(--space-5);\n  border: var(--border-width) var(--border-style) var(--color-border-muted);\n  border-radius: var(--radius-panel);\n  background: var(--color-surface-alt);\n  text-align: center;\n}\n.ds-empty__orb {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: var(--size-control-large);\n  height: var(--size-control-large);\n  margin: 0 auto var(--space-3);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: 50%;\n  background: var(--fill-button-secondary);\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-secondary-text);\n}\n.ds-empty__orb svg {\n  display: block;\n  width: 55%;\n  height: 55%;\n}\n.ds-empty__title {\n  margin: 0 0 var(--space-2);\n  color: var(--color-heading);\n  font-family: var(--font-heading);\n  font-size: var(--text-h2);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n}\n.ds-empty__text {\n  margin: 0 0 var(--space-4);\n  color: var(--color-text-muted);\n}\n\n/* Components of the period: menu, progress, carousel, accordion, tooltip, avatar */\n:root {\n  --size-progress: 14px;\n  --size-orb: 24px;\n  --size-slide: 96px;\n  --size-avatar: 44px;\n  --size-avatar-small: 28px;\n  --size-menu: 200px;\n  --size-tip: 220px;\n  --size-dot: 8px;\n}\n.ds-nav:has(.ds-menu),\n.ds-nav:has(.ds-menu) .ds-nav__bar { overflow: visible; }\n.ds-menu { position: relative; }\n.ds-menu > .ds-nav__link::after {\n  content: \"\";\n  display: inline-block;\n  flex: none;\n  width: 0;\n  height: 0;\n  border-left: var(--space-2) solid transparent;\n  border-right: var(--space-2) solid transparent;\n  border-top: var(--space-2) solid currentColor;\n  vertical-align: calc(var(--space-2) / 2);\n  margin-left: var(--space-2);\n}\n.ds-menu__list {\n  display: none;\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 20;\n  min-width: var(--size-menu);\n  margin: 0;\n  padding: var(--space-1);\n  list-style: none;\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-panel);\n  background: var(--color-surface);\n  box-shadow: var(--shadow-dialog);\n  text-align: left;\n}\n.ds-menu:hover > .ds-menu__list,\n.ds-menu:focus-within > .ds-menu__list { display: block; }\n.ds-menu__link {\n  display: block;\n  padding: var(--space-2) var(--space-3);\n  border-radius: var(--radius-control);\n  color: var(--color-link);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-ui);\n  text-decoration: var(--link-decoration-quiet);\n  text-shadow: none;\n  text-transform: none;\n}\n.ds-menu__link:hover,\n.ds-menu__link:focus {\n  background: color-mix(in srgb, var(--color-accent) 22%, var(--color-surface));\n  color: var(--color-link-hover);\n  text-decoration: var(--link-decoration-hover);\n}\n\n.ds-progress__row {\n  display: flex;\n  align-items: center;\n  gap: var(--space-2);\n  margin: 0 0 var(--space-2);\n  font-size: var(--text-small);\n}\n.ds-progress__label { flex: 0 0 auto; color: var(--color-text); }\n.ds-progress__value { flex: 0 0 auto; color: var(--color-text-muted); }\n.ds-progress {\n  -webkit-appearance: none;\n  appearance: none;\n  display: block;\n  flex: 1 1 0;\n  width: 100%;\n  height: var(--size-progress);\n  margin: 0;\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-pill);\n  background: var(--color-surface-strong);\n  overflow: hidden;\n}\n.ds-progress::-webkit-progress-bar { background: var(--color-surface-strong); }\n.ds-progress::-webkit-progress-value { background: var(--fill-accent); border-radius: var(--radius-pill); }\n.ds-progress::-moz-progress-bar { background: var(--fill-accent); border-radius: var(--radius-pill); }\n\n.ds-carousel { margin: 0 0 var(--space-3); }\n.ds-carousel__stage { display: flex; align-items: center; gap: var(--space-2); }\n.ds-carousel__orb {\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center;\n  justify-content: center;\n  width: var(--size-orb);\n  height: var(--size-orb);\n  border: var(--border-width) var(--border-style) color-mix(in srgb, var(--color-button) 68%, var(--color-shadow));\n  border-radius: var(--radius-pill);\n  background: var(--fill-button);\n  box-shadow: var(--shadow-control);\n  color: var(--color-button-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-large);\n  line-height: 1;\n}\n.ds-carousel__orb::before {\n  content: \"\";\n  flex: none;\n  width: calc(var(--text-large) * 0.4);\n  height: calc(var(--text-large) * 0.4);\n  border-left: calc(var(--space-3) / 4) solid currentColor;\n  border-bottom: calc(var(--space-3) / 4) solid currentColor;\n  rotate: 45deg;\n  translate: 25% 0;\n}\n.ds-carousel__orb ~ .ds-carousel__orb::before {\n  rotate: -135deg;\n  translate: -25% 0;\n}\n.ds-carousel__track {\n  display: flex;\n  flex: 1 1 0;\n  min-width: 0;\n  overflow-x: auto;\n  scroll-snap-type: x mandatory;\n}\n.ds-carousel__slide {\n  display: flex;\n  flex: 0 0 100%;\n  flex-direction: column;\n  justify-content: flex-end;\n  box-sizing: border-box;\n  min-height: var(--size-slide);\n  margin: 0;\n  padding: var(--space-3);\n  scroll-snap-align: start;\n  border: var(--border-width) var(--border-style) var(--color-border-muted);\n  border-radius: var(--radius-control);\n  background: linear-gradient(to bottom, var(--color-surface) 0, var(--color-fill-1) 100%);\n  color: var(--color-text);\n  font-size: var(--text-small);\n}\n.ds-carousel__slide--2 { background: linear-gradient(to bottom, var(--color-surface) 0, var(--color-fill-2) 100%); }\n.ds-carousel__slide--3 { background: linear-gradient(to bottom, var(--color-surface) 0, var(--color-fill-3) 100%); }\n.ds-carousel__title { margin: 0; color: var(--color-heading); font-family: var(--font-heading); font-size: var(--text-base); font-weight: var(--weight-bold); }\n.ds-carousel__dots { display: flex; justify-content: center; gap: var(--space-2); margin: var(--space-2) 0 0; padding: 0; list-style: none; }\n.ds-carousel__dot {\n  display: block;\n  width: var(--size-dot);\n  height: var(--size-dot);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-pill);\n  background: var(--color-surface);\n}\n.ds-carousel__dot.is-current { background: var(--color-accent); }\n\n.ds-avatar {\n  display: inline-flex;\n  flex: 0 0 auto;\n  align-items: center;\n  justify-content: center;\n  box-sizing: border-box;\n  width: var(--size-avatar);\n  height: var(--size-avatar);\n  border: var(--border-width-strong) var(--border-style) var(--color-surface);\n  border-radius: var(--radius-control);\n  background: var(--fill-button);\n  box-shadow: var(--shadow-control), 0 0 0 var(--border-width) var(--color-border-strong);\n  color: var(--color-button-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  text-shadow: var(--shadow-text);\n  text-transform: uppercase;\n}\n.ds-person { display: flex; align-items: center; gap: var(--space-3); margin: 0 0 var(--space-3); }\n.ds-person__name { margin: 0; color: var(--color-heading); font-weight: var(--weight-bold); }\n.ds-person__meta { margin: 0; color: var(--color-text-muted); font-size: var(--text-small); }\n",
    "specimen.html": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>chronoskin: Frutiger Aero start page specimen</title>\n<link rel=\"stylesheet\" href=\"tokens.css\">\n<link rel=\"stylesheet\" href=\"components.css\">\n</head>\n<body class=\"ds-page\" data-component=\"shell\">\n<header class=\"ds-nav\" data-component=\"nav\">\n  <div class=\"ds-nav__top\">\n    <div class=\"ds-nav__inner\">\n      <p class=\"ds-nav__date\">Tuesday, 18 March</p>\n      <ul class=\"ds-nav__tools\">\n        <li><a class=\"ds-nav__tool\" href=\"#settings\">Make this my start page</a></li>\n        <li><a class=\"ds-nav__tool\" href=\"#settings\">Change this page</a></li>\n        <li><a class=\"ds-nav__tool\" href=\"#mail\">Sign out</a></li>\n      </ul>\n    </div>\n  </div>\n  <div class=\"ds-nav__bar\">\n    <div class=\"ds-nav__inner\">\n      <a class=\"ds-brand\" data-component=\"brand\" href=\"#home\"><span class=\"ds-brand__mark\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M12 2.5a9.5 9.5 0 1 0 0 19a9.5 9.5 0 1 0 0-19zM12 4.6a5.6 3 0 1 0 0 6a5.6 3 0 1 0 0-6z\"/></svg></span><span class=\"ds-brand__name\">chronoskin</span></a>\n      <ul class=\"ds-nav__links\">\n        <li><a class=\"ds-nav__link\" href=\"#home\">Start</a></li>\n        <li class=\"ds-menu\"><a class=\"ds-nav__link\" href=\"#news\">News</a><ul class=\"ds-menu__list\"><li><a class=\"ds-menu__link\" href=\"#news\">Top stories</a></li><li><a class=\"ds-menu__link\" href=\"#story\">Local news</a></li><li><a class=\"ds-menu__link\" href=\"#news\">Sport</a></li><li><a class=\"ds-menu__link\" href=\"#news\">Money</a></li></ul></li>\n        <li><a class=\"ds-nav__link\" href=\"#mail\">Mail</a></li>\n        <li><a class=\"ds-nav__link\" href=\"#settings\">My page</a></li>\n      </ul>\n      <p class=\"ds-nav__more\">Signed in as <a class=\"ds-nav__more-link\" href=\"#settings\">odalys.brandt</a></p>\n    </div>\n  </div>\n</header>\n\n<div class=\"ds-page__wrap\">\n\n  <section class=\"ds-view ds-view--home\" id=\"home\">\n\n    <div class=\"ds-hero\" data-component=\"hero\">\n      <div class=\"ds-hero__main\">\n        <h1 class=\"ds-hero__title\">Good morning, Odalys</h1>\n        <p class=\"ds-hero__lead\">Two new messages, light rain until noon, and the headlines you follow.</p>\n      </div>\n      <form class=\"ds-hero__search\" action=\"#\">\n        <ul class=\"ds-hero__scopes\">\n          <li><a class=\"ds-hero__scope is-current\" href=\"#home\">Web</a></li>\n          <li><a class=\"ds-hero__scope\" href=\"#home\">Pictures</a></li>\n          <li><a class=\"ds-hero__scope\" href=\"#news\">News</a></li>\n          <li><a class=\"ds-hero__scope\" href=\"#home\">Maps</a></li>\n          <li><a class=\"ds-hero__scope\" href=\"#home\">Shopping</a></li>\n        </ul>\n        <p class=\"ds-hero__action\">\n          <input class=\"ds-hero__field\" type=\"text\" value=\"ferry times to the islands\" aria-label=\"Search the web\">\n          <button class=\"ds-button ds-button--large\" type=\"button\">Search</button>\n        </p>\n        <p class=\"ds-hero__note\">Popular now: <a class=\"ds-hero__note-link\" href=\"#news\">harbour bridge</a>, <a class=\"ds-hero__note-link\" href=\"#news\">spring timetable</a>, <a class=\"ds-hero__note-link\" href=\"#news\">cup draw</a></p>\n      </form>\n    </div>\n\n    <div class=\"ds-page__gadgets\">\n      <div class=\"ds-page__column\">\n        <div class=\"ds-panel\" data-component=\"panel\">\n          <div class=\"ds-panel__head\"><h2 class=\"ds-panel__title\">News</h2><p class=\"ds-panel__tools\"><a class=\"ds-panel__tool\" href=\"#settings\">Edit</a><a class=\"ds-panel__tool\" href=\"#home\" aria-label=\"Close\">x</a></p></div>\n          <div class=\"ds-panel__body\">\n            <ul class=\"ds-tabs\" data-component=\"tabs\">\n              <li><a class=\"ds-tabs__tab is-current\" href=\"#home\">Top stories</a></li>\n              <li><a class=\"ds-tabs__tab\" href=\"#home\">Local</a></li>\n              <li><a class=\"ds-tabs__tab\" href=\"#home\">Sport</a></li>\n              <li><a class=\"ds-tabs__tab\" href=\"#home\">Money</a></li>\n            </ul>\n            <ul class=\"ds-list\" data-component=\"list\">\n              <li class=\"ds-list__item is-first is-lead\"><div class=\"ds-list__body\"><h3 class=\"ds-list__title\"><a class=\"ds-link ds-link--title\" href=\"#story\">Harbour bridge to reopen a month early</a></h3><p class=\"ds-list__text\">Engineers finished the deck ahead of plan; the first buses cross on Monday.</p></div><p class=\"ds-list__meta\">9:40</p></li>\n              <li class=\"ds-list__item\"><div class=\"ds-list__body\"><h3 class=\"ds-list__title\"><a class=\"ds-link\" href=\"#story\">Spring ferry timetable adds two late sailings</a></h3></div><p class=\"ds-list__meta\">9:12</p></li>\n              <li class=\"ds-list__item\"><div class=\"ds-list__body\"><h3 class=\"ds-list__title\"><a class=\"ds-link is-visited\" href=\"#story\">Town library puts its map room online</a></h3></div><p class=\"ds-list__meta\">8:55</p></li>\n              <li class=\"ds-list__item\"><div class=\"ds-list__body\"><h3 class=\"ds-list__title\"><a class=\"ds-link\" href=\"#story\">Cup draw sends the Rovers north again</a></h3></div><p class=\"ds-list__meta\">8:31</p></li>\n              <li class=\"ds-list__item\"><div class=\"ds-list__body\"><h3 class=\"ds-list__title\"><a class=\"ds-link\" href=\"#story\">Broadband reaches the last two valleys</a> <span class=\"ds-badge ds-badge--new\">New</span></h3></div><p class=\"ds-list__meta\">8:02</p></li>\n            </ul>\n            <p class=\"ds-panel__actions\"><a class=\"ds-button ds-button--arrow\" href=\"#news\" aria-label=\"All news\"><svg class=\"ds-button__icon\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 8h9M8.5 4l4 4-4 4\"/></svg></a><a class=\"ds-link\" href=\"#news\">All of today's news</a></p>\n          </div>\n        </div>\n        <div class=\"ds-panel is-last\">\n          <div class=\"ds-panel__head\"><h2 class=\"ds-panel__title\">Channels</h2><p class=\"ds-panel__tools\"><a class=\"ds-panel__tool\" href=\"#settings\">Edit</a></p></div>\n          <div class=\"ds-panel__body\">\n            <div class=\"ds-grid\" data-component=\"grid\">\n              <a class=\"ds-grid__cell ds-grid__cell--1\" href=\"#news\"><span class=\"ds-orb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 5h13v14H6a2 2 0 0 1-2-2zM17 9h3v8a2 2 0 0 1-2 2M8 9h5M8 13h5\"/></svg></span>News</a>\n              <a class=\"ds-grid__cell ds-grid__cell--2\" href=\"#home\"><span class=\"ds-orb ds-orb--accent\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"8\"/><path d=\"M12 4l2.5 5 5 .5-4 3.5 1.5 5-5-3-5 3 1.5-5\"/></svg></span>Sport</a>\n              <a class=\"ds-grid__cell ds-grid__cell--3\" href=\"#home\"><span class=\"ds-orb ds-orb--button\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 19V9M10 19V5M16 19v-7M21 19H3\"/></svg></span>Money</a>\n              <a class=\"ds-grid__cell ds-grid__cell--4\" href=\"#home\"><span class=\"ds-orb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 17l5-8 4 6 3-4 6 6z\"/></svg></span>Travel</a>\n              <a class=\"ds-grid__cell ds-grid__cell--3\" href=\"#home\"><span class=\"ds-orb ds-orb--accent\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M9 18V6l10-2v12\"/><circle cx=\"6.5\" cy=\"18\" r=\"2.5\"/><circle cx=\"16.5\" cy=\"16\" r=\"2.5\"/></svg></span>Music</a>\n              <a class=\"ds-grid__cell ds-grid__cell--4\" href=\"#home\"><span class=\"ds-orb ds-orb--button\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"13\" rx=\"2\"/><path d=\"M10 9l5 2.5-5 2.5z\"/></svg></span>Video</a>\n              <a class=\"ds-grid__cell ds-grid__cell--1\" href=\"#home\"><span class=\"ds-orb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 7h16l-1.5 9h-13zM9 20h.01M16 20h.01\"/></svg></span>Shopping</a>\n              <a class=\"ds-grid__cell ds-grid__cell--2\" href=\"#home\"><span class=\"ds-orb ds-orb--accent\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 21s-7-6-7-11a7 7 0 0 1 14 0c0 5-7 11-7 11z\"/><circle cx=\"12\" cy=\"10\" r=\"2.5\"/></svg></span>Maps</a>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div class=\"ds-page__column\">\n        <div class=\"ds-panel\">\n          <div class=\"ds-panel__head\"><h2 class=\"ds-panel__title\">Mail</h2><span class=\"ds-badge\">2 new</span><p class=\"ds-panel__tools\"><a class=\"ds-panel__tool\" href=\"#settings\">Edit</a><a class=\"ds-panel__tool\" href=\"#home\" aria-label=\"Close\">x</a></p></div>\n          <div class=\"ds-panel__body\">\n            <ul class=\"ds-list\">\n              <li class=\"ds-list__item is-first\"><div class=\"ds-list__body\"><h3 class=\"ds-list__title\"><a class=\"ds-link ds-link--title\" href=\"#mail\">Tilde Marchetti: Saturday at the allotment</a></h3></div><p class=\"ds-list__meta\">9:02</p></li>\n              <li class=\"ds-list__item\"><div class=\"ds-list__body\"><h3 class=\"ds-list__title\"><a class=\"ds-link ds-link--title\" href=\"#mail\">Rowing club: spring fixtures</a></h3></div><p class=\"ds-list__meta\">8:47</p></li>\n              <li class=\"ds-list__item\"><div class=\"ds-list__body\"><h3 class=\"ds-list__title\"><a class=\"ds-link is-visited\" href=\"#mail\">Your parcel is at the depot</a></h3></div><p class=\"ds-list__meta\">Mon</p></li>\n              <li class=\"ds-list__item\"><div class=\"ds-list__body\"><h3 class=\"ds-list__title\"><a class=\"ds-link is-visited\" href=\"#mail\">Bram Oyelaran: photos from the coast</a></h3></div><p class=\"ds-list__meta\">Sun</p></li>\n            </ul>\n            <p class=\"ds-panel__actions\"><a class=\"ds-button\" href=\"#mail\">Open the inbox</a><a class=\"ds-button ds-button--secondary\" href=\"#mail\">Write</a></p>\n          </div>\n        </div>\n        <div class=\"ds-panel is-last\">\n          <div class=\"ds-panel__head\"><h2 class=\"ds-panel__title\">Today</h2><p class=\"ds-panel__tools\"><a class=\"ds-panel__tool\" href=\"#settings\">Edit</a></p></div>\n          <div class=\"ds-panel__body\">\n            <ul class=\"ds-list\">\n              <li class=\"ds-list__item is-first\"><div class=\"ds-list__body\"><p class=\"ds-list__title\">Dentist, Quay Street</p></div><p class=\"ds-list__meta\">11:30</p></li>\n              <li class=\"ds-list__item\"><div class=\"ds-list__body\"><p class=\"ds-list__title\">Lunch with Tilde</p></div><p class=\"ds-list__meta\">13:00</p></li>\n              <li class=\"ds-list__item\"><div class=\"ds-list__body\"><p class=\"ds-list__title\">Return library books</p></div><p class=\"ds-list__meta\"><span class=\"ds-badge ds-badge--warning\">Due today</span></p></li>\n              <li class=\"ds-list__item\"><div class=\"ds-list__body\"><p class=\"ds-list__title\">Rowing club committee</p></div><p class=\"ds-list__meta\">19:00</p></li>\n            </ul>\n            <p class=\"ds-panel__go\"><input class=\"ds-form__input\" type=\"text\" value=\"Add something for today\" aria-label=\"New entry\"><button class=\"ds-button ds-button--secondary\" type=\"button\">Add</button></p>\n          </div>\n        </div>\n      </div>\n\n      <div class=\"ds-page__column\">\n<div class=\"ds-panel\">\n<div class=\"ds-panel__head\"><h2 class=\"ds-panel__title\">Photo of the day</h2></div>\n<div class=\"ds-panel__body\">\n<div class=\"ds-carousel\">\n<div class=\"ds-carousel__stage\"><span class=\"ds-carousel__orb\" aria-hidden=\"true\"></span><div class=\"ds-carousel__track\"><figure class=\"ds-carousel__slide\"><figcaption class=\"ds-carousel__title\">Harbour at dawn</figcaption></figure><figure class=\"ds-carousel__slide ds-carousel__slide--2\"><figcaption class=\"ds-carousel__title\">Quay Street market</figcaption></figure><figure class=\"ds-carousel__slide ds-carousel__slide--3\"><figcaption class=\"ds-carousel__title\">The north ferry</figcaption></figure></div><span class=\"ds-carousel__orb\" aria-hidden=\"true\"></span></div>\n<ul class=\"ds-carousel__dots\" aria-hidden=\"true\"><li class=\"ds-carousel__dot is-current\"></li><li class=\"ds-carousel__dot\"></li><li class=\"ds-carousel__dot\"></li></ul>\n</div>\n</div>\n</div>\n\n        <div class=\"ds-panel\">\n          <div class=\"ds-panel__head\"><h2 class=\"ds-panel__title\">Weather</h2><p class=\"ds-panel__tools\"><a class=\"ds-panel__tool\" href=\"#settings\">Edit</a><a class=\"ds-panel__tool\" href=\"#home\" aria-label=\"Close\">x</a></p></div>\n          <div class=\"ds-panel__body\">\n            <p class=\"ds-stats__place\">Port Ansel <span class=\"ds-stats__now\">light rain, 9 degrees</span></p>\n            <ul class=\"ds-stats\" data-component=\"stats\">\n              <li class=\"ds-stat\"><span class=\"ds-stat__label\">Today</span><span class=\"ds-stat__number\">11&deg;</span><span class=\"ds-stat__note\">Rain</span></li>\n              <li class=\"ds-stat\"><span class=\"ds-stat__label\">Wed</span><span class=\"ds-stat__number\">14&deg;</span><span class=\"ds-stat__note\">Cloud</span></li>\n              <li class=\"ds-stat\"><span class=\"ds-stat__label\">Thu</span><span class=\"ds-stat__number\">16&deg;</span><span class=\"ds-stat__note\">Sun</span></li>\n              <li class=\"ds-stat\"><span class=\"ds-stat__label\">Fri</span><span class=\"ds-stat__number\">15&deg;</span><span class=\"ds-stat__note\">Sun</span></li>\n            </ul>\n            <p class=\"ds-panel__go\"><input class=\"ds-form__input\" type=\"text\" value=\"Town or postcode\" aria-label=\"Town or postcode\"><button class=\"ds-button ds-button--arrow\" type=\"button\" aria-label=\"Show the forecast\"><svg class=\"ds-button__icon\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 8h9M8.5 4l4 4-4 4\"/></svg></button></p>\n          </div>\n        </div>\n        <div class=\"ds-panel\">\n          <div class=\"ds-panel__head\"><h2 class=\"ds-panel__title\">Markets</h2><p class=\"ds-panel__tools\"><a class=\"ds-panel__tool\" href=\"#settings\">Edit</a></p></div>\n          <div class=\"ds-panel__body\">\n            <ul class=\"ds-list\">\n              <li class=\"ds-list__item is-first\"><div class=\"ds-list__body\"><p class=\"ds-list__title\">Harbour 100</p></div><p class=\"ds-list__meta\">5,412.30 <span class=\"ds-badge ds-badge--success\">+0.8%</span></p></li>\n              <li class=\"ds-list__item\"><div class=\"ds-list__body\"><p class=\"ds-list__title\">Northern Tech</p></div><p class=\"ds-list__meta\">2,315.63 <span class=\"ds-badge ds-badge--danger\">-1.2%</span></p></li>\n              <li class=\"ds-list__item\"><div class=\"ds-list__body\"><p class=\"ds-list__title\">Small Caps</p></div><p class=\"ds-list__meta\">1,278.38 <span class=\"ds-badge ds-badge--success\">+0.1%</span></p></li>\n            </ul>\n          </div>\n        </div>\n        <div class=\"ds-sidebar is-last\">\n          <h2 class=\"ds-sidebar__title\">Add to this page</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item is-first\"><a class=\"ds-link\" href=\"#settings\">Tide tables</a><span class=\"ds-sidebar__count\">gadget</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#settings\">Train departures</a><span class=\"ds-sidebar__count\">gadget</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#settings\">Word of the day</a><span class=\"ds-sidebar__count\">gadget</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#settings\">See all 140</a></li>\n          </ul>\n        </div>\n      </div>\n    </div>\n  </section>\n\n  <section class=\"ds-view\" id=\"news\">\n    <ol class=\"ds-breadcrumb\" data-component=\"breadcrumb\">\n      <li><a class=\"ds-link\" href=\"#home\">Start</a></li>\n      <li class=\"ds-breadcrumb__sep\" aria-hidden=\"true\">&raquo;</li>\n      <li><a class=\"ds-link\" href=\"#news\">News</a></li>\n      <li class=\"ds-breadcrumb__sep\" aria-hidden=\"true\">&raquo;</li>\n      <li class=\"ds-breadcrumb__current\">Top stories</li>\n    </ol>\n    <div class=\"ds-page-header\" data-component=\"page-header\">\n      <div class=\"ds-page-header__main\">\n        <h1 class=\"ds-page-header__title\">News</h1>\n        <p class=\"ds-page-header__text\">Top stories this morning, chosen by chronoskin editors and updated through the day.</p>\n      </div>\n      <div class=\"ds-page-header__actions\"><a class=\"ds-button ds-button--secondary\" href=\"#settings\">Choose my topics</a></div>\n    </div>\n    <div class=\"ds-page__columns\">\n      <main class=\"ds-page__main\">\n        <ul class=\"ds-tabs\">\n          <li><a class=\"ds-tabs__tab is-current\" href=\"#news\">Top stories</a></li>\n          <li><a class=\"ds-tabs__tab\" href=\"#news\">Local <span class=\"ds-tabs__count\">(12)</span></a></li>\n          <li><a class=\"ds-tabs__tab\" href=\"#news\">Sport</a></li>\n          <li><a class=\"ds-tabs__tab\" href=\"#news\">Money</a></li>\n          <li><a class=\"ds-tabs__tab\" href=\"#news\">Science</a></li>\n        </ul>\n        <ul class=\"ds-list ds-list--roomy\">\n          <li class=\"ds-list__item is-first\"><div class=\"ds-list__body\"><h2 class=\"ds-list__title\"><a class=\"ds-link ds-link--title\" href=\"#story\">Harbour bridge to reopen a month early</a></h2><p class=\"ds-list__text\">Engineers finished the deck ahead of plan; the first buses cross on Monday and cars follow a week later.</p></div><p class=\"ds-list__meta\">9:40, Local</p></li>\n          <li class=\"ds-list__item\"><div class=\"ds-list__body\"><h2 class=\"ds-list__title\"><a class=\"ds-link ds-link--title\" href=\"#story\">Spring ferry timetable adds two late sailings</a></h2><p class=\"ds-list__text\">The last boat from the islands now leaves at a quarter past eleven on Fridays and Saturdays.</p></div><p class=\"ds-list__meta\">9:12, Travel</p></li>\n          <li class=\"ds-list__item\"><div class=\"ds-list__body\"><h2 class=\"ds-list__title\"><a class=\"ds-link ds-link--title is-visited\" href=\"#story\">Town library puts its map room online</a></h2><p class=\"ds-list__text\">Four thousand survey sheets, some more than a century old, can be browsed as one atlas.</p></div><p class=\"ds-list__meta\">8:55, Culture</p></li>\n          <li class=\"ds-list__item\"><div class=\"ds-list__body\"><h2 class=\"ds-list__title\"><a class=\"ds-link ds-link--title\" href=\"#story\">Cup draw sends the Rovers north again</a></h2><p class=\"ds-list__text\">A third away tie in a row, and the longest trip of the season.</p></div><p class=\"ds-list__meta\">8:31, Sport</p></li>\n          <li class=\"ds-list__item\"><div class=\"ds-list__body\"><h2 class=\"ds-list__title\"><a class=\"ds-link ds-link--title\" href=\"#story\">Broadband reaches the last two valleys</a></h2><p class=\"ds-list__text\">The final exchanges were switched over at the weekend, a year behind the first promise.</p></div><p class=\"ds-list__meta\">8:02, Technology</p></li>\n        </ul>\n        <ul class=\"ds-pagination\" data-component=\"pagination\">\n          <li><span class=\"ds-pagination__link is-disabled\">Previous</span></li>\n          <li><a class=\"ds-pagination__link is-current\" href=\"#news\">1</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#news\">2</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#news\">3</a></li>\n          <li class=\"ds-pagination__gap\">...</li>\n          <li><a class=\"ds-pagination__link\" href=\"#news\">12</a></li>\n          <li><a class=\"ds-pagination__link\" href=\"#news\">Next</a></li>\n        </ul>\n      </main>\n      <aside class=\"ds-page__aside\">\n        <div class=\"ds-sidebar\" data-component=\"sidebar\">\n          <h2 class=\"ds-sidebar__title\">Most read</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item is-first\"><span class=\"ds-sidebar__rank\">1</span><a class=\"ds-link\" href=\"#story\">Harbour bridge to reopen early</a></li>\n            <li class=\"ds-sidebar__item\"><span class=\"ds-sidebar__rank\">2</span><a class=\"ds-link\" href=\"#story\">The quietest decks on every ferry</a></li>\n            <li class=\"ds-sidebar__item\"><span class=\"ds-sidebar__rank\">3</span><a class=\"ds-link\" href=\"#story\">Cup draw in full</a></li>\n            <li class=\"ds-sidebar__item\"><span class=\"ds-sidebar__rank\">4</span><a class=\"ds-link\" href=\"#story\">Where the new buses will stop</a></li>\n            <li class=\"ds-sidebar__item\"><span class=\"ds-sidebar__rank\">5</span><a class=\"ds-link\" href=\"#story\">Ten walks for a dry weekend</a></li>\n          </ul>\n        </div>\n        <div class=\"ds-panel is-last\">\n          <div class=\"ds-panel__head\"><h2 class=\"ds-panel__title\">News on your start page</h2></div>\n          <div class=\"ds-panel__body\">\n            <p class=\"ds-panel__text is-last\">Pick the topics you follow and the News gadget shows those first.</p>\n            <p class=\"ds-panel__actions\"><a class=\"ds-button\" href=\"#settings\">Choose topics</a></p>\n          </div>\n        </div>\n      </aside>\n    </div>\n  </section>\n\n  <section class=\"ds-view\" id=\"story\">\n    <ol class=\"ds-breadcrumb\">\n      <li><a class=\"ds-link\" href=\"#home\">Start</a></li>\n      <li class=\"ds-breadcrumb__sep\" aria-hidden=\"true\">&raquo;</li>\n      <li><a class=\"ds-link\" href=\"#news\">News</a></li>\n      <li class=\"ds-breadcrumb__sep\" aria-hidden=\"true\">&raquo;</li>\n      <li class=\"ds-breadcrumb__current\">Local</li>\n    </ol>\n    <div class=\"ds-page-header\">\n      <div class=\"ds-page-header__main\">\n        <h1 class=\"ds-page-header__title\">Local news</h1>\n        <p class=\"ds-page-header__text\">Tuesday, 18 March, 9:40. By the chronoskin news desk.</p>\n      </div>\n      <div class=\"ds-page-header__actions\"><a class=\"ds-button ds-button--secondary\" href=\"#mail\">Mail this story</a><a class=\"ds-button ds-button--secondary\" href=\"#story\">Print</a></div>\n    </div>\n    <div class=\"ds-page__columns\">\n      <main class=\"ds-page__main\">\n        <article class=\"ds-prose\" data-component=\"typography\">\n          <h1>Harbour bridge to reopen a month early</h1>\n          <p>The harbour bridge will carry traffic again from Monday, four weeks sooner than planned, after engineers finished replacing the deck during a run of dry weather. Buses cross first; cars and lorries follow on 31 March.</p>\n          <h2>What changes on Monday</h2>\n          <p>Routes 4, 11 and 19 return to their usual stops on both banks. The temporary shuttle from Quay Street ends on Sunday night, and the footbridge stays open as before.</p>\n          <ul>\n            <li>Buses only from Monday 24 March</li>\n            <li>All traffic from Monday 31 March</li>\n            <li>A limit of 20 miles an hour until the summer</li>\n          </ul>\n          <h3>Why it took less time</h3>\n          <p>The old deck came away in larger sections than expected, the council said, which saved <strong>nineteen working days</strong>. Readers can follow the remaining work under the tag <code>harbour-bridge</code>.</p>\n          <h3>What is still to do</h3>\n          <ol>\n            <li>Lighting on the north approach</li>\n            <li>Repainting the railings, one side at a time</li>\n          </ol>\n        </article>\n        <div class=\"ds-section\">\n          <h2 class=\"ds-section__title\">More on this story</h2>\n          <p class=\"ds-links\" data-component=\"links\">\n            <a class=\"ds-link\" href=\"#story\">Where the new buses will stop</a>\n            <a class=\"ds-link is-visited\" href=\"#story\">A year of the closure in pictures</a>\n            <a class=\"ds-link is-hover\" href=\"#story\">What the shops on Quay Street say</a>\n            <a class=\"ds-link is-active\" href=\"#news\">All local news</a>\n          </p>\n        </div>\n      </main>\n      <aside class=\"ds-page__aside\">\n        <div class=\"ds-panel\">\n          <div class=\"ds-panel__head\"><h2 class=\"ds-panel__title\">On the roads now</h2></div>\n          <div class=\"ds-panel__body\">\n            <ul class=\"ds-list\">\n              <li class=\"ds-list__item is-first\"><div class=\"ds-list__body\"><p class=\"ds-list__title\">Harbour bridge</p></div><p class=\"ds-list__meta\"><span class=\"ds-badge ds-badge--danger\">Closed</span></p></li>\n              <li class=\"ds-list__item\"><div class=\"ds-list__body\"><p class=\"ds-list__title\">Quay Street shuttle</p></div><p class=\"ds-list__meta\"><span class=\"ds-badge ds-badge--success\">Running</span></p></li>\n              <li class=\"ds-list__item\"><div class=\"ds-list__body\"><p class=\"ds-list__title\">North ring road</p></div><p class=\"ds-list__meta\"><span class=\"ds-badge ds-badge--warning\">Slow</span></p></li>\n              <li class=\"ds-list__item\"><div class=\"ds-list__body\"><p class=\"ds-list__title\">Island ferry</p></div><p class=\"ds-list__meta\"><span class=\"ds-badge ds-badge--success\">On time</span></p></li>\n            </ul>\n          </div>\n        </div>\n        <div class=\"ds-sidebar is-last\">\n          <h2 class=\"ds-sidebar__title\">Most read</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item is-first\"><span class=\"ds-sidebar__rank\">1</span><a class=\"ds-link\" href=\"#story\">The quietest decks on every ferry</a></li>\n            <li class=\"ds-sidebar__item\"><span class=\"ds-sidebar__rank\">2</span><a class=\"ds-link\" href=\"#story\">Cup draw in full</a></li>\n            <li class=\"ds-sidebar__item\"><span class=\"ds-sidebar__rank\">3</span><a class=\"ds-link\" href=\"#story\">Ten walks for a dry weekend</a></li>\n          </ul>\n        </div>\n      </aside>\n    </div>\n  </section>\n\n  <section class=\"ds-view\" id=\"mail\">\n    <div class=\"ds-page-header\">\n      <div class=\"ds-page-header__main\">\n        <h1 class=\"ds-page-header__title\">Mail</h1>\n        <p class=\"ds-page-header__text\">odalys.brandt, 2 unread of 148 messages, 12% of your space used.</p>\n      </div>\n      <div class=\"ds-page-header__actions\" data-component=\"buttons\">\n        <a class=\"ds-button\" href=\"#mail\">Write a message</a>\n        <a class=\"ds-button ds-button--secondary\" href=\"#mail\">Reply</a>\n        <a class=\"ds-button ds-button--danger\" href=\"#mail\">Delete</a>\n        <button class=\"ds-button is-disabled\" type=\"button\" disabled>Move to</button>\n      </div>\n    </div>\n    <div class=\"ds-page__columns\">\n      <main class=\"ds-page__main\">\n        <ul class=\"ds-tabs\">\n          <li><a class=\"ds-tabs__tab is-current\" href=\"#mail\">Inbox <span class=\"ds-tabs__count\">(2)</span></a></li>\n          <li><a class=\"ds-tabs__tab\" href=\"#mail\">Sent</a></li>\n          <li><a class=\"ds-tabs__tab\" href=\"#mail\">Drafts</a></li>\n          <li><a class=\"ds-tabs__tab\" href=\"#mail\">Junk</a></li>\n        </ul>\n        <table class=\"ds-table\" data-component=\"table\">\n          <thead>\n            <tr><th class=\"ds-table__head\"></th><th class=\"ds-table__head\">From</th><th class=\"ds-table__head\">Subject</th><th class=\"ds-table__head\">State</th><th class=\"ds-table__head is-numeric\">Size</th><th class=\"ds-table__head is-numeric\">Received</th></tr>\n          </thead>\n          <tbody>\n            <tr class=\"ds-table__row\"><td class=\"ds-table__cell\"><input class=\"ds-form__checkbox\" type=\"checkbox\" checked aria-label=\"Select\"></td><td class=\"ds-table__cell\"><a class=\"ds-link ds-link--title\" href=\"#mail\">Tilde Marchetti</a></td><td class=\"ds-table__cell\"><a class=\"ds-link ds-link--title\" href=\"#mail\">Saturday at the allotment</a></td><td class=\"ds-table__cell\"><span class=\"ds-badge\">New</span></td><td class=\"ds-table__cell is-numeric\">4 KB</td><td class=\"ds-table__cell is-numeric\">9:02</td></tr>\n            <tr class=\"ds-table__row is-alt\"><td class=\"ds-table__cell\"><input class=\"ds-form__checkbox\" type=\"checkbox\" aria-label=\"Select\"></td><td class=\"ds-table__cell\"><a class=\"ds-link ds-link--title\" href=\"#mail\">Rowing club</a></td><td class=\"ds-table__cell\"><a class=\"ds-link ds-link--title\" href=\"#mail\">Spring fixtures and the boat rota</a></td><td class=\"ds-table__cell\"><span class=\"ds-badge\">New</span></td><td class=\"ds-table__cell is-numeric\">212 KB</td><td class=\"ds-table__cell is-numeric\">8:47</td></tr>\n            <tr class=\"ds-table__row\"><td class=\"ds-table__cell\"><input class=\"ds-form__checkbox\" type=\"checkbox\" aria-label=\"Select\"></td><td class=\"ds-table__cell\">Parcel depot</td><td class=\"ds-table__cell\"><a class=\"ds-link is-visited\" href=\"#mail\">Your parcel is at the depot</a></td><td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--warning\">Reply by Friday</span></td><td class=\"ds-table__cell is-numeric\">9 KB</td><td class=\"ds-table__cell is-numeric\">Mon</td></tr>\n            <tr class=\"ds-table__row is-alt\"><td class=\"ds-table__cell\"><input class=\"ds-form__checkbox\" type=\"checkbox\" aria-label=\"Select\"></td><td class=\"ds-table__cell\">Bram Oyelaran</td><td class=\"ds-table__cell\"><a class=\"ds-link is-visited\" href=\"#mail\">Photos from the coast</a></td><td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--success\">Answered</span></td><td class=\"ds-table__cell is-numeric\">1,840 KB</td><td class=\"ds-table__cell is-numeric\">Sun</td></tr>\n            <tr class=\"ds-table__row\"><td class=\"ds-table__cell\"><input class=\"ds-form__checkbox\" type=\"checkbox\" aria-label=\"Select\"></td><td class=\"ds-table__cell\">Mail system</td><td class=\"ds-table__cell\"><a class=\"ds-link is-visited\" href=\"#mail\">Not delivered: allotment rota</a></td><td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--danger\">Returned</span></td><td class=\"ds-table__cell is-numeric\">3 KB</td><td class=\"ds-table__cell is-numeric\">Sat</td></tr>\n          </tbody>\n        </table>\n        <div class=\"ds-dialog__backdrop\">\n          <div class=\"ds-dialog\" data-component=\"dialog\" role=\"dialog\" aria-labelledby=\"mail-dialog-title\">\n            <h2 class=\"ds-dialog__title\" id=\"mail-dialog-title\"><span>Delete 1 message?</span><a class=\"ds-dialog__close\" href=\"#mail\" aria-label=\"Close\"></a></h2>\n            <div class=\"ds-dialog__body\">\n              <p class=\"ds-dialog__text\">\"Saturday at the allotment\" will move to Deleted and be removed for good after 30 days.</p>\n            </div>\n            <div class=\"ds-dialog__actions\">\n              <a class=\"ds-button ds-button--danger\" href=\"#mail\">Delete</a>\n              <a class=\"ds-button ds-button--secondary\" href=\"#mail\">Keep it</a>\n            </div>\n          </div>\n        </div>\n      </main>\n      <aside class=\"ds-page__aside\">\n        <div class=\"ds-sidebar\">\n<div class=\"ds-panel\">\n<h2 class=\"ds-panel__title\">Your account</h2>\n<div class=\"ds-panel__body\">\n<p class=\"ds-person\"><span class=\"ds-avatar\" aria-hidden=\"true\">OB</span><span><span class=\"ds-person__name\">odalys.brandt</span><br><span class=\"ds-person__meta\">Signed in on this computer</span></span></p>\n<div class=\"ds-progress__row\"><span class=\"ds-progress__label\">Mailbox</span><progress class=\"ds-progress\" value=\"12\" max=\"100\">12%</progress><span class=\"ds-progress__value\">12% of 1 GB</span></div>\n</div>\n</div>\n\n\n          <h2 class=\"ds-sidebar__title\">Folders</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item is-first\"><a class=\"ds-link ds-link--title\" href=\"#mail\">Inbox</a><span class=\"ds-sidebar__count\">2 new</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#mail\">Sent</a><span class=\"ds-sidebar__count\">61</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#mail\">Drafts</a><span class=\"ds-sidebar__count\">0</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#mail\">Rowing club</a><span class=\"ds-sidebar__count\">34</span></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#mail\">Deleted</a><span class=\"ds-sidebar__count\">5</span></li>\n          </ul>\n        </div>\n        <div class=\"ds-section__title\">What the states mean</div>\n        <p class=\"ds-badges\" data-component=\"badge\">\n          <span class=\"ds-badge\">New</span>\n          <span class=\"ds-badge ds-badge--count\">148</span>\n          <span class=\"ds-badge ds-badge--success\">Answered</span>\n          <span class=\"ds-badge ds-badge--warning\">Reply by</span>\n          <span class=\"ds-badge ds-badge--danger\">Returned</span>\n        </p>\n        <div class=\"ds-section\">\n          <div class=\"ds-empty\" data-component=\"empty\">\n            <span class=\"ds-empty__orb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 6h16v12H4zM4 7l8 6 8-6\"/></svg></span>\n            <h2 class=\"ds-empty__title\">No drafts</h2>\n            <p class=\"ds-empty__text\">Messages you start and do not send are kept here.</p>\n            <a class=\"ds-button ds-button--secondary\" href=\"#mail\">Write a message</a>\n          </div>\n        </div>\n      </aside>\n    </div>\n  </section>\n\n  <section class=\"ds-view\" id=\"settings\">\n    <ol class=\"ds-breadcrumb\">\n      <li><a class=\"ds-link\" href=\"#home\">Start</a></li>\n      <li class=\"ds-breadcrumb__sep\" aria-hidden=\"true\">&raquo;</li>\n      <li class=\"ds-breadcrumb__current\">My page</li>\n    </ol>\n    <div class=\"ds-page-header\">\n      <div class=\"ds-page-header__main\">\n        <h1 class=\"ds-page-header__title\">Change this page</h1>\n        <p class=\"ds-page-header__text\">Choose what your start page shows and where it thinks you are.</p>\n      </div>\n      <div class=\"ds-page-header__actions\"><a class=\"ds-button ds-button--secondary\" href=\"#home\">Back to the start page</a></div>\n    </div>\n    <div class=\"ds-page__columns\">\n      <main class=\"ds-page__main\">\n        <div data-component=\"notice\">\n          <div class=\"ds-notice\"><span class=\"ds-notice__sign\" aria-hidden=\"true\">i</span><p class=\"ds-notice__text\"><span class=\"ds-notice__title\">Changes show at once.</span> Other people who use this computer keep their own page.</p></div>\n          <div class=\"ds-notice ds-notice--error\"><span class=\"ds-notice__sign\" aria-hidden=\"true\">!</span><p class=\"ds-notice__text\"><span class=\"ds-notice__title\">The page was not saved.</span> We could not find the town you typed.</p></div>\n        </div>\n        <form class=\"ds-form\" data-component=\"form\" action=\"#\">\n          <div class=\"ds-form__row\">\n            <label class=\"ds-form__label\" for=\"set-name\">Greet me as</label>\n            <div class=\"ds-form__field\"><input class=\"ds-form__input ds-form__input--short\" id=\"set-name\" type=\"text\" value=\"Odalys\"></div>\n          </div>\n          <div class=\"ds-form__row\">\n            <label class=\"ds-form__label\" for=\"set-town\">Town for weather</label>\n            <div class=\"ds-form__field\">\n              <input class=\"ds-form__input ds-form__input--short is-error\" id=\"set-town\" type=\"text\" value=\"Port Ansle\">\n              <p class=\"ds-form__error\">No town of that name. Did you mean Port Ansel?</p>\n            </div>\n          </div>\n          <div class=\"ds-form__row\">\n            <label class=\"ds-form__label\" for=\"set-news\">News edition</label>\n            <div class=\"ds-form__field\">\n              <select class=\"ds-form__select\" id=\"set-news\"><option>Coast and islands</option><option>The north</option><option>National only</option></select>\n              <p class=\"ds-form__hint\">Decides which local stories the News gadget shows first.</p>\n            </div>\n          </div>\n          <div class=\"ds-form__row\">\n            <label class=\"ds-form__label\" for=\"set-search\">Search opens in</label>\n            <div class=\"ds-form__field\"><input class=\"ds-form__input ds-form__input--short is-focus\" id=\"set-search\" type=\"text\" value=\"The same window\"></div>\n          </div>\n          <div class=\"ds-form__row\">\n            <span class=\"ds-form__label\">Gadgets</span>\n            <div class=\"ds-form__field\">\n              <label class=\"ds-form__check\"><input class=\"ds-form__checkbox\" type=\"checkbox\" checked> News</label>\n              <label class=\"ds-form__check\"><input class=\"ds-form__checkbox\" type=\"checkbox\" checked> Mail and Today</label>\n              <label class=\"ds-form__check\"><input class=\"ds-form__checkbox\" type=\"checkbox\"> Tide tables</label>\n            </div>\n          </div>\n          <div class=\"ds-form__row\">\n            <label class=\"ds-form__label\" for=\"set-note\">Note on the page</label>\n            <div class=\"ds-form__field\"><textarea class=\"ds-form__textarea\" id=\"set-note\">Bins go out on Wednesday night.</textarea></div>\n          </div>\n          <div class=\"ds-form__actions\">\n            <button class=\"ds-button\" type=\"button\">Save my page</button>\n            <a class=\"ds-button ds-button--secondary\" href=\"#home\">Cancel</a>\n          </div>\n        </form>\n      </main>\n      <aside class=\"ds-page__aside\">\n        <div class=\"ds-panel\">\n          <div class=\"ds-panel__head\"><h2 class=\"ds-panel__title\">Gadgets you could add</h2></div>\n          <div class=\"ds-panel__body\">\n            <div class=\"ds-grid ds-grid--wide\">\n              <a class=\"ds-grid__cell ds-grid__cell--1\" href=\"#settings\"><span class=\"ds-orb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 15c3-4 6 4 9 0s6 4 9 0\"/></svg></span>Tides</a>\n              <a class=\"ds-grid__cell ds-grid__cell--2\" href=\"#settings\"><span class=\"ds-orb ds-orb--accent\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"6\" y=\"3\" width=\"12\" height=\"14\" rx=\"2\"/><path d=\"M8 21l2-4M16 21l-2-4M9 12h6\"/></svg></span>Trains</a>\n              <a class=\"ds-grid__cell ds-grid__cell--3\" href=\"#settings\"><span class=\"ds-orb ds-orb--button\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 4h14v16H5zM9 9h6M9 13h6\"/></svg></span>Words</a>\n              <a class=\"ds-grid__cell ds-grid__cell--4\" href=\"#settings\"><span class=\"ds-orb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"8\"/><path d=\"M12 7v5l3 2\"/></svg></span>Clocks</a>\n            </div>\n          </div>\n        </div>\n        <div class=\"ds-sidebar is-last\">\n          <h2 class=\"ds-sidebar__title\">Help with this page</h2>\n          <ul class=\"ds-sidebar__list\">\n            <li class=\"ds-sidebar__item is-first\"><a class=\"ds-link\" href=\"#settings\">Move a gadget</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#settings\">Use it as my start page</a></li>\n            <li class=\"ds-sidebar__item\"><a class=\"ds-link\" href=\"#settings\">Put everything back</a></li>\n          </ul>\n        </div>\n      </aside>\n    </div>\n  </section>\n\n</div>\n\n<footer class=\"ds-footer\" data-component=\"footer\">\n  <ul class=\"ds-footer__links\">\n    <li class=\"ds-footer__item is-first\"><a class=\"ds-footer__link\" href=\"#home\">Start</a></li>\n    <li class=\"ds-footer__item\"><a class=\"ds-footer__link\" href=\"#news\">News</a></li>\n    <li class=\"ds-footer__item\"><a class=\"ds-footer__link\" href=\"#mail\">Mail</a></li>\n    <li class=\"ds-footer__item\"><a class=\"ds-footer__link\" href=\"#settings\">Change this page</a></li>\n    <li class=\"ds-footer__item\"><a class=\"ds-footer__link\" href=\"#home\">Privacy</a></li>\n    <li class=\"ds-footer__item\"><a class=\"ds-footer__link\" href=\"#home\">Terms of use</a></li>\n    <li class=\"ds-footer__item\"><a class=\"ds-footer__link\" href=\"#home\">Help</a></li>\n  </ul>\n  <div class=\"ds-footer__legal\">\n    <p class=\"ds-footer__legal-text\">chronoskin is a placeholder start page in a design specimen. Headlines, names and figures are invented.</p>\n  </div>\n</footer>\n</body>\n</html>\n",
    "style.json": "{\n  \"id\": \"v1.frutiger-aero.portal.s02.p01.t08.u03\",\n  \"library\": \"2026.10.09-1346\",\n  \"era\": {\n    \"slug\": \"frutiger-aero\",\n    \"years\": [\n      2004,\n      2010\n    ]\n  },\n  \"archetype\": \"portal\",\n  \"mode\": \"mix\",\n  \"markup\": \"modern\",\n  \"viewport\": {\n    \"width\": 1024,\n    \"fluid\": false\n  },\n  \"source\": \"https://chrono.skin/s/v1-fa-2183\",\n  \"short\": \"v1-fa-2183\"\n}\n",
    "tokens.css": "/* @part palette */\n:root {\n  --color-page: #3a8ccb;\n  --color-canvas: #ffffff;\n  --color-surface: #ffffff;\n  --color-surface-alt: #ebf3fb;\n  --color-surface-strong: #d3e2e9;\n  --color-bar: #2d6fa3;\n  --color-bar-text: #ffffff;\n  --color-bar-alt: #cfe3f3;\n  --color-bar-alt-text: #0b4a7a;\n  --color-inverse: #256f95;\n  --color-inverse-text: #ffffff;\n  --color-text: #333333;\n  --color-text-muted: #636363;\n  --color-heading: #0b4f86;\n  --color-heading-alt: #549c00;\n  --color-link: #07519a;\n  --color-link-quiet: #006699;\n  --color-link-visited: #5a4fa3;\n  --color-link-hover: #2198c4;\n  --color-link-active: #549c00;\n  --color-border: #aaccee;\n  --color-border-strong: #3274a4;\n  --color-border-muted: #d6e3e7;\n  --color-accent: #6eab26;\n  --color-accent-text: #ffffff;\n  --color-accent-alt: #ff9c00;\n  --color-fill-1: #d0e8f8;\n  --color-fill-2: #e8f0f0;\n  --color-fill-3: #dff1c8;\n  --color-fill-4: #fff6c4;\n  --color-button: #36b701;\n  --color-button-text: #ffffff;\n  --color-button-hover-text: #ffffff;\n  --color-button-secondary: #d8e0e8;\n  --color-button-secondary-text: #0b4a7a;\n  --color-input: #ffffff;\n  --color-input-text: #222222;\n  --color-input-border: #7fb1d8;\n  --color-disabled: #e8e8e8;\n  --color-disabled-text: #989898;\n  --color-danger: #c3271b;\n  --color-danger-surface: #fde9e4;\n  --color-success: #3f9a0b;\n  --color-warning: #f0a000;\n  --color-notice: #fff8c9;\n  --color-notice-text: #5a4a00;\n  --color-focus: #7fd4ff;\n  --color-shadow: #0d3f66;\n  --color-overlay: rgba(13, 63, 102, 0.45);\n}\n\n/* @part type */\n:root {\n  --font-body: Arial, Helvetica, \"Liberation Sans\", sans-serif;\n  --font-heading: Georgia, Constantia, \"Times New Roman\", serif;\n  --font-ui: Verdana, Geneva, \"DejaVu Sans\", sans-serif;\n  --font-mono: \"Courier New\", Courier, \"Liberation Mono\", monospace;\n  --text-base: 13px;\n  --text-small: 11px;\n  --text-ui: 11px;\n  --text-large: 15px;\n  --text-display: 38px;\n  --text-h1: 27px;\n  --text-h2: 20px;\n  --text-h3: 15px;\n  --line-body: 1.5;\n  --line-heading: 1.22;\n  --line-display: 1.12;\n  --weight-body: 400;\n  --weight-bold: 700;\n  --weight-heading: 400;\n  --weight-display: 400;\n  --weight-ui: 700;\n  --heading-transform: none;\n  --heading-tracking: 0;\n  --display-tracking: -0.5px;\n  --figure-shift: 0.1em;\n  --ui-transform: none;\n  --link-decoration: underline;\n  --link-decoration-hover: underline;\n  --link-decoration-quiet: none;\n}\n\n/* @part surface */\n:root {\n  --border-width: 1px;\n  --border-width-strong: 1px;\n  --border-style: solid;\n  --radius-control: 3px;\n  --radius-panel: 5px;\n  --radius-pill: 9px;\n  --radius-page: 6px;\n  --shadow-panel: 0 1px 3px color-mix(in srgb, var(--color-shadow) 20%, transparent);\n  --shadow-control: inset 0 1px 0 color-mix(in srgb, white 70%, transparent), 0 1px 1px color-mix(in srgb, var(--color-shadow) 25%, transparent);\n  --shadow-control-hover: inset 0 1px 0 color-mix(in srgb, white 90%, transparent), 0 1px 3px color-mix(in srgb, var(--color-shadow) 45%, transparent);\n  --shadow-control-pressed: inset 0 1px 3px color-mix(in srgb, var(--color-shadow) 40%, transparent);\n  --shadow-dialog: 0 3px 12px color-mix(in srgb, var(--color-shadow) 40%, transparent);\n  --shadow-text: 0 1px 0 color-mix(in srgb, white 35%, transparent);\n  --fill-page: repeating-linear-gradient(90deg, color-mix(in srgb, white 20%, transparent) 0, color-mix(in srgb, white 20%, transparent) 1px, transparent 1px, transparent 2px, color-mix(in srgb, black 3%, transparent) 2px, color-mix(in srgb, black 3%, transparent) 3px), linear-gradient(to bottom, color-mix(in srgb, var(--color-page), white 75%) 0, var(--color-page) 280px) 0 0 / 100% 280px no-repeat, var(--color-page);\n  --fill-bar: repeating-linear-gradient(90deg, color-mix(in srgb, white 22%, transparent) 0, color-mix(in srgb, white 22%, transparent) 1px, transparent 1px, transparent 2px, color-mix(in srgb, black 4%, transparent) 2px, color-mix(in srgb, black 4%, transparent) 3px), linear-gradient(to bottom, color-mix(in srgb, var(--color-bar), white 75%) 0, color-mix(in srgb, var(--color-bar), white 18%) 45%, var(--color-bar) 55%, color-mix(in srgb, var(--color-bar), white 42%) 100%);\n  --fill-bar-alt: linear-gradient(to bottom, color-mix(in srgb, var(--color-bar-alt), white 65%) 0, var(--color-bar-alt) 100%);\n  --fill-inverse: radial-gradient(circle at 12% 130%, color-mix(in srgb, white 32%, transparent) 0, transparent 46%), linear-gradient(to bottom, color-mix(in srgb, var(--color-inverse), white 30%) 0, var(--color-inverse) 60%, color-mix(in srgb, var(--color-inverse), black 16%) 100%);\n  --fill-accent: linear-gradient(to bottom, color-mix(in srgb, var(--color-accent), white 40%) 0, var(--color-accent) 100%);\n  --fill-panel: linear-gradient(to bottom, var(--color-surface) 0, var(--color-surface) 70%, var(--color-surface-alt) 100%);\n  --fill-button: linear-gradient(to bottom, color-mix(in srgb, var(--color-button), white 42%) 0, color-mix(in srgb, var(--color-button), white 12%) 50%, var(--color-button) 50%, color-mix(in srgb, var(--color-button), black 12%) 100%);\n  --fill-button-hover: linear-gradient(to bottom, color-mix(in srgb, var(--color-button), white 54%) 0, color-mix(in srgb, var(--color-button), white 24%) 50%, color-mix(in srgb, var(--color-button), white 10%) 50%, var(--color-button) 100%);\n  --fill-button-secondary: linear-gradient(to bottom, color-mix(in srgb, var(--color-button-secondary), white 85%) 0, color-mix(in srgb, var(--color-button-secondary), white 20%) 50%, color-mix(in srgb, var(--color-button-secondary), black 6%) 50%, color-mix(in srgb, var(--color-button-secondary), white 35%) 100%);\n  --fill-input: var(--color-input);\n  --focus-ring: 2px solid var(--color-focus);\n  --transition: none;\n  --backdrop-blur: 0px;\n}\n"
  }
}
