/* Design record: theme custom, inherited from the October 29 draft deck. Idea: every piece of AI work is a tile; blue tiles are nouns (reusable things), rust tiles are verbs (work), and the page lays them into a path. Paper #F5F2EA and ink #11161F with the deck's blue and rust; Space Grotesk display, IBM Plex Sans body, JetBrains Mono for commands only. Modes: light and dark from one token set. October 30: a home page that opens on the draft video, three decks and use cases, in a quieter frame: a slim header with four links, an agent banner under it on every current page, wide cards with live cover thumbnails, and generous space. Nav: wordmark, Home, Decks, Use cases, Learning, Library and a mode switch; on a phone the five links share one row at 390px, with fallback fonts too. Footer: one row of links and the date of the snapshot. Later on October 30: the statement under the film reads in two labelled parts, the use case and then the architecture underneath. */ :root { color-scheme: light dark; --color-paper: #F5F2EA; --color-paper-2: #FFFDF8; --color-paper-3: #EDE8DC; --color-stage: #E3DDCF; --color-rule: #E4DED1; --color-rule-strong: #C9C1B1; --color-ink: #11161F; --color-ink-2: #3B4252; --color-muted: #5E6472; --color-muted-on-stage: #555B68; --color-noun: #2A5DB0; --color-noun-ink: #2A5DB0; --color-noun-wash: #E5ECF7; --color-verb: #B8541F; --color-verb-ink: #9C4416; --color-verb-wash: #F6E7DD; --color-band: #11161F; --color-band-ink: #F5F2EA; --color-band-ink-2: #C8D0DC; --color-band-noun: #6FA3F0; --color-band-verb: #F0884F; --color-code: #11161F; --color-code-ink: #EDEAE1; --color-film: #0B0F16; --color-film-ink: #A3ABB9; --color-button: #11161F; --color-button-ink: #F5F2EA; --color-button-hover: #2B3442; --color-focus: #B8541F; --color-real: #1F6B43; --color-real-wash: #E1F0E6; --color-building: #8A5A00; --color-building-wash: #FBEFD2; --color-needed: #5E6472; --color-needed-wash: #E9E6DF; --shadow-lift: 0 12px 32px rgb(17 22 31 / 0.09), 0 2px 6px rgb(17 22 31 / 0.05); --font-display: "Space Grotesk", "Segoe UI", system-ui, sans-serif; --font-body: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif; --font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem; --space-4: 1rem; --space-5: 1.5rem; --space-6: 2rem; --space-7: 3rem; --space-8: 4rem; --space-9: 6rem; --space-10: 8rem; --text-micro: 0.8125rem; --text-small: 0.9375rem; --text-body: 1.0625rem; --text-lead: clamp(1.125rem, 1rem + 0.5vw, 1.375rem); --text-title: clamp(1.25rem, 1.1rem + 0.6vw, 1.625rem); --text-section: clamp(2rem, 1.35rem + 2.2vw, 3rem); --text-display: clamp(2.375rem, 1.3rem + 4.2vw, 4.75rem); --radius-1: 6px; --radius-2: 14px; --radius-3: 22px; --container: 75rem; --measure: 68ch; --gutter: clamp(1rem, 4vw, 3rem); --header-height: 3.75rem; } [data-mode="dark"] { --color-paper: #11161F; --color-paper-2: #1B2230; --color-paper-3: #171D29; --color-stage: #0C1017; --color-rule: #2C3443; --color-rule-strong: #3E4759; --color-ink: #F5F2EA; --color-ink-2: #C8D0DC; --color-muted: #9AA3B2; --color-muted-on-stage: #9AA3B2; --color-noun: #6FA3F0; --color-noun-ink: #8DB7F4; --color-noun-wash: #1A2741; --color-verb: #F0884F; --color-verb-ink: #F39A68; --color-verb-wash: #35231A; --color-band: #1B2230; --color-band-ink: #F5F2EA; --color-band-ink-2: #C8D0DC; --color-band-noun: #8DB7F4; --color-band-verb: #F39A68; --color-code: #0C1017; --color-code-ink: #E7E2D6; --color-film: #070A0F; --color-film-ink: #9AA3B2; --color-button: #F5F2EA; --color-button-ink: #11161F; --color-button-hover: #DCD6C8; --color-focus: #F0884F; --color-real: #7FD3A0; --color-real-wash: #15281D; --color-building: #F2C66B; --color-building-wash: #2B2210; --color-needed: #B4BCC8; --color-needed-wash: #222A37; --shadow-lift: 0 12px 32px rgb(0 0 0 / 0.35), 0 2px 6px rgb(0 0 0 / 0.25); } @media (prefers-color-scheme: dark) { :root:not([data-mode]) { --color-paper: #11161F; --color-paper-2: #1B2230; --color-paper-3: #171D29; --color-stage: #0C1017; --color-rule: #2C3443; --color-rule-strong: #3E4759; --color-ink: #F5F2EA; --color-ink-2: #C8D0DC; --color-muted: #9AA3B2; --color-muted-on-stage: #9AA3B2; --color-noun: #6FA3F0; --color-noun-ink: #8DB7F4; --color-noun-wash: #1A2741; --color-verb: #F0884F; --color-verb-ink: #F39A68; --color-verb-wash: #35231A; --color-band: #1B2230; --color-band-ink: #F5F2EA; --color-band-ink-2: #C8D0DC; --color-band-noun: #8DB7F4; --color-band-verb: #F39A68; --color-code: #0C1017; --color-code-ink: #E7E2D6; --color-film: #070A0F; --color-film-ink: #9AA3B2; --color-button: #F5F2EA; --color-button-ink: #11161F; --color-button-hover: #DCD6C8; --color-focus: #F0884F; --color-real: #7FD3A0; --color-real-wash: #15281D; --color-building: #F2C66B; --color-building-wash: #2B2210; --color-needed: #B4BCC8; --color-needed-wash: #222A37; --shadow-lift: 0 12px 32px rgb(0 0 0 / 0.35), 0 2px 6px rgb(0 0 0 / 0.25); } } /* Base */ *, *::before, *::after { box-sizing: border-box; } html, body { overflow-x: clip; } html { background: var(--color-paper); -webkit-text-size-adjust: 100%; text-size-adjust: 100%; } body { margin: 0; background: var(--color-paper); color: var(--color-ink); font-family: var(--font-body); font-size: var(--text-body); line-height: 1.6; font-synthesis: none; } [data-mode="dark"] body { font-weight: 350; } @media (prefers-color-scheme: dark) { :root:not([data-mode]) body { font-weight: 350; } } img, svg, video { max-width: 100%; } h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 700; color: var(--color-ink); line-height: 1.1; margin: 0; overflow-wrap: break-word; min-width: 0; letter-spacing: -0.01em; text-wrap: balance; } p, ul, ol, dl, dd, figure, blockquote { margin: 0; } a { color: var(--color-noun-ink); text-decoration-thickness: 1px; text-underline-offset: 0.2em; } a:hover { text-decoration-thickness: 2px; } a:focus-visible, button:focus-visible, summary:focus-visible, video:focus-visible, [tabindex]:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; border-radius: 2px; } code, kbd, pre { font-family: var(--font-mono); font-size: 0.92em; } code { background: var(--color-paper-3); border-radius: 4px; padding: 0 var(--space-1); overflow-wrap: anywhere; } kbd { border: 1px solid var(--color-rule-strong); border-bottom-width: 2px; border-radius: 4px; padding: 0 var(--space-1); background: var(--color-paper-2); } .skip-link { position: absolute; left: var(--space-4); top: var(--space-2); transform: translateY(-200%); background: var(--color-button); color: var(--color-button-ink); padding: var(--space-2) var(--space-4); border-radius: var(--radius-1); z-index: 10; } .skip-link:focus-visible { transform: none; } .visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; } .wrap { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); } /* Agent banner: one thin line above the header on every page (the AgentBanner and BannerSpec boards). The shared element draws it in its own shadow root; these rules hold its place, give it the page's theme and style the line readers without scripts see. It scrolls away with the page, never sticky. */ ta-agent-banner { display: block; min-height: 37px; background: var(--agent-banner-bg); color: var(--agent-banner-ink); border-bottom: 1px solid var(--agent-banner-line); --agent-banner-bg: #11161F; --agent-banner-ink: #F5F2EA; --agent-banner-muted: #C8D0DC; --agent-banner-raised: #222732; --agent-banner-line: #2B313D; --agent-banner-edge: #3B4252; --agent-banner-link: #9DBBF0; --agent-banner-focus: #F0884F; } [data-mode="dark"] ta-agent-banner { --agent-banner-bg: #0B0F16; --agent-banner-raised: #1B2230; } @media (prefers-color-scheme: dark) { :root:not([data-mode]) ta-agent-banner { --agent-banner-bg: #0B0F16; --agent-banner-raised: #1B2230; } } .agent-fallback { max-width: 78rem; margin: 0 auto; padding: 0 var(--space-5); min-height: 36px; display: flex; align-items: center; gap: var(--space-3); font-size: 0.875rem; line-height: 1.25rem; white-space: nowrap; overflow: hidden; } .agent-fallback-icon { flex: none; } .agent-fallback-lead { overflow: hidden; text-overflow: ellipsis; } .agent-fallback b { font-weight: 600; } .agent-fallback a { color: var(--agent-banner-muted); background: var(--agent-banner-raised); font-family: var(--font-mono); font-size: 0.8125rem; padding: 3px 8px; border-radius: 6px; text-decoration: none; } .agent-fallback a:focus-visible { outline: 3px solid var(--agent-banner-focus); outline-offset: 2px; } ta-agent-banner[data-ready] .agent-fallback { display: none; } @media (max-width: 44.99rem) { ta-agent-banner { min-height: 41px; } .agent-fallback { min-height: 40px; padding: 0 var(--space-4); } .agent-fallback-lead { display: none; } } /* Header: the mark and name, five links, and Eranos in the first screen (the SiteHeader board) */ .site-header { border-bottom: 1px solid var(--color-rule); background: var(--color-paper); } .site-header .wrap { max-width: 78rem; padding-inline: var(--space-5); min-height: 4rem; display: flex; align-items: center; gap: var(--space-2) 1.75rem; } .wordmark { display: inline-flex; align-items: center; gap: 0.625rem; flex: none; color: var(--color-ink); text-decoration: none; font-family: var(--font-display); font-weight: 700; font-size: 1.3125rem; letter-spacing: -0.01em; min-height: 44px; } .wordmark:hover { text-decoration: none; } .wordmark svg { flex: none; width: 26px; height: 26px; } .site-nav { flex: 1 1 auto; min-width: 0; } .site-nav ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; } .site-nav a { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 12px; border-radius: 10px; color: var(--color-ink-2); text-decoration: none; font-size: var(--text-small); font-weight: 500; white-space: nowrap; } .site-nav a:hover { color: var(--color-ink); background: var(--color-paper-3); text-decoration: none; } .site-nav a[aria-current="page"], .site-nav a[aria-current="true"] { color: var(--color-ink); background: var(--color-paper-3); box-shadow: inset 0 -2px 0 var(--color-ink); } .eranos-link { flex: none; display: inline-flex; align-items: center; min-height: 40px; padding: 8px 14px; border-radius: 10px; border: 1.5px solid var(--color-rule-strong); color: var(--color-ink); font-size: var(--text-small); font-weight: 600; white-space: nowrap; text-decoration: none; } .eranos-link:hover { border-color: var(--color-ink); text-decoration: none; } .menu-toggle { font: inherit; font-size: 1rem; font-weight: 600; display: none; align-items: center; gap: var(--space-2); min-height: 40px; padding: 8px 12px; border-radius: 10px; border: 1.5px solid var(--color-rule-strong); background: transparent; color: var(--color-ink); cursor: pointer; } .mode-toggle { font: inherit; font-size: var(--text-small); display: inline-flex; align-items: center; justify-content: center; flex: none; min-width: 40px; min-height: 40px; padding: 0 var(--space-2); border: 1px solid var(--color-rule-strong); border-radius: 999px; background: var(--color-paper-2); color: var(--color-ink); cursor: pointer; white-space: nowrap; } .mode-toggle[hidden] { display: none; } .mode-toggle:hover { border-color: var(--color-ink-2); } .mode-toggle:active { background: var(--color-paper-3); } .mode-toggle[aria-pressed="true"] svg { transform: rotate(180deg); } .mode-toggle:disabled, .button[aria-disabled="true"] { opacity: 0.5; cursor: not-allowed; } .eranos-link .short { display: none; } /* Narrow screens: the header keeps the mark, Eranos and a Menu button on one row (the SiteHeader board's compact form, 56 px); the links and the mode switch fold behind Menu. Without scripts the Menu button stays hidden and the links wrap onto a second row instead. */ @media (max-width: 56rem) { .site-header .wrap { flex-wrap: wrap; min-height: 3.5rem; gap: 0 var(--space-2); padding-inline: var(--space-4); } .wordmark { margin-inline-end: auto; } .eranos-link { order: 2; min-height: 40px; padding: 6px 10px; } .eranos-link .long { display: none; } .eranos-link .short { display: inline; } .js .menu-toggle:not([hidden]) { display: inline-flex; order: 3; } .mode-toggle { order: 6; } .js .site-header:not(.menu-open) .mode-toggle { display: none; } .site-nav { order: 5; flex-basis: 100%; } .js .site-nav[data-menu]:not(.is-open) { display: none; } .site-nav ul { flex-direction: column; align-items: stretch; gap: 2px; padding-block: var(--space-2) var(--space-3); } .site-nav a { width: 100%; } .js .site-header.menu-open .mode-toggle { margin-block: 0 var(--space-3); } } @media (max-width: 22rem) { .menu-toggle span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } } /* Buttons and action links */ .actions { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-4); align-items: center; } .button { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-height: 48px; padding: 0 var(--space-5); border-radius: var(--radius-1); border: 2px solid var(--color-button); background: var(--color-button); color: var(--color-button-ink); font: inherit; font-weight: 600; text-decoration: none; white-space: nowrap; cursor: pointer; transition: background-color 120ms ease-out, border-color 120ms ease-out; } .button:hover { background: var(--color-button-hover); border-color: var(--color-button-hover); text-decoration: none; } .button:active { transform: translateY(1px); } .button[data-state="copied"] { background: var(--color-real); border-color: var(--color-real); color: var(--color-paper-2); } .button.secondary { background: transparent; color: var(--color-ink); border-color: var(--color-rule-strong); } .button.secondary:hover { border-color: var(--color-ink); background: var(--color-paper-2); } .copy-status { color: var(--color-muted); font-size: var(--text-small); } @media (prefers-reduced-motion: reduce) { .button { transition: none; } .button:active { transform: none; } } /* Page frame */ main { display: block; } .page-head { padding-block: var(--space-8) var(--space-7); } .page-head h1 { font-size: var(--text-display); line-height: 1.04; letter-spacing: -0.025em; max-width: 18ch; } .page-head .lead { margin-top: var(--space-4); } .lead { font-size: var(--text-lead); line-height: 1.45; color: var(--color-ink-2); max-width: 60ch; } .dateline { margin-top: var(--space-4); font-size: var(--text-small); color: var(--color-muted); max-width: 70ch; text-wrap: pretty; } .crumbs { font-size: var(--text-small); margin-bottom: var(--space-3); } .item-meta { margin-top: var(--space-2); font-size: var(--text-small); color: var(--color-muted); } section[id], h2[id], h3[id] { scroll-margin-top: var(--space-6); } /* Home: the film, one sentence and the decks */ .film { background: var(--color-film); padding-bottom: var(--space-4); } .film-stage { position: relative; width: min(100%, max(20rem, calc((100vh - 8rem) * 16 / 9))); width: min(100%, max(20rem, calc((100svh - 8rem) * 16 / 9))); margin-inline: auto; border-radius: var(--radius-2); overflow: hidden; box-shadow: 0 20px 48px rgb(0 0 0 / 0.42); } .film.has-cuts .film-stage { width: min(100%, max(20rem, calc((100vh - 13rem) * 16 / 9))); width: min(100%, max(20rem, calc((100svh - 13rem) * 16 / 9))); } .film-video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; background: #222732; } /* Suppress ugly native square WebVTT cue boxes inline (including Chromium shadow DOM) while keeping textTracks active in mode="hidden" so the custom widescreen bottom-border .film-caption-pill renders cleanly inside the #222732 grayish-black letterbox band. */ html.js .film-video:not(:fullscreen)::cue, .film-video:not(:fullscreen)::cue { opacity: 0 !important; color: transparent !important; background: transparent !important; text-shadow: none !important; } html.js .film-video:not(:fullscreen)::-webkit-media-text-track-container, html.js .film-video:not(:fullscreen)::-webkit-media-text-track-display, html.js .film-video:not(:fullscreen)::-webkit-media-text-track-display-backdrop { display: none !important; opacity: 0 !important; background: transparent !important; } .film-video:fullscreen::cue { background: rgba(24, 28, 37, 0.86); color: #F5F2EA; font-family: var(--font-body); font-size: 1.05em; border-radius: 12px; } .film-caption-bar { position: absolute; inset-inline: clamp(0.75rem, 3.5%, 3rem); bottom: clamp(0.65rem, 2.1%, 1.4rem); max-height: 11.8%; display: flex; justify-content: center; align-items: center; pointer-events: none; z-index: 4; transition: bottom 150ms ease-out; } .film-stage:hover .film-caption-bar, .film-stage[data-paused="true"] .film-caption-bar { bottom: clamp(2.15rem, 4.9%, 3.1rem); } .film-caption-bar[hidden] { display: none; } .film-caption-pill { display: inline-block; max-width: min(94%, 62ch); padding: 0.34rem 0.96rem; border-radius: 14px; background: rgba(24, 28, 37, 0.84); -webkit-backdrop-filter: blur(14px) saturate(140%); backdrop-filter: blur(14px) saturate(140%); border: 1px solid rgba(245, 242, 234, 0.16); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.34); color: #F5F2EA; font-family: var(--font-body); font-size: clamp(0.78rem, 0.54rem + 0.72vw, 1.06rem); font-weight: 500; line-height: 1.32; letter-spacing: 0.005em; text-align: center; text-wrap: balance; white-space: pre-line; } .film-cuts { display: flex; justify-content: center; flex-wrap: wrap; gap: var(--space-2); padding: var(--space-3) var(--gutter) 0; } .film-cuts[hidden] { display: none; } .film-cut, .film-cc { font: inherit; font-size: var(--text-small); font-weight: 600; line-height: 1.2; color: var(--color-film-ink); background: transparent; border: 1px solid currentColor; border-radius: 999px; padding: var(--space-2) var(--space-4); cursor: pointer; } .film-cc { border-style: dashed; } .film-cut[aria-pressed="true"], .film-cc[aria-pressed="true"] { background: var(--color-film-ink); color: var(--color-film); border-color: var(--color-film-ink); border-style: solid; } .film-cut:focus-visible, .film-cc:focus-visible { outline: 2px solid var(--color-film-ink); outline-offset: 3px; } .film-label { padding: var(--space-3) var(--gutter) 0; text-align: center; font-size: var(--text-micro); letter-spacing: 0.02em; color: var(--color-film-ink); } .statement { padding-block: var(--space-9) var(--space-8); text-align: center; } /* The statement in two labelled parts: the use case, then the architecture underneath. */ .statement-parts { display: grid; justify-items: center; gap: var(--space-6); } .statement-part { max-width: 46rem; } .statement-part + .statement-part::before { content: ""; display: block; width: 3rem; height: 2px; margin: 0 auto var(--space-6); background: var(--color-rule-strong); } .statement-label { margin-bottom: var(--space-3); font-family: var(--font-mono); font-size: var(--text-micro); font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted); } .statement h1 { max-width: 30ch; margin-inline: auto; font-size: clamp(1.625rem, 1.05rem + 2.1vw, 2.75rem); line-height: 1.12; letter-spacing: -0.02em; } .statement p.statement-line { max-width: 40ch; margin-inline: auto; font-family: var(--font-display); font-size: clamp(1.25rem, 1rem + 1.1vw, 1.875rem); font-weight: 700; line-height: 1.25; letter-spacing: -0.01em; color: var(--color-ink); text-wrap: balance; } .statement-rest { color: var(--color-muted); } .nowrap { white-space: nowrap; } /* Home 1x3 Product Hub */ .hub { padding-bottom: var(--space-8); } .hub-head { display: grid; gap: var(--space-2); max-width: 52rem; margin-bottom: var(--space-5); } .hub-head .statement-label { margin-bottom: 0; } .hub-head .band-title { margin-bottom: 0; font-size: var(--text-section); line-height: 1.08; letter-spacing: -0.02em; } .hub-lead { color: var(--color-ink-2); font-size: var(--text-lead); line-height: 1.45; max-width: 60ch; } .hub-grid { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); } .hub-card { display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; padding: var(--space-6); border: 1px solid var(--color-rule); border-top: 5px solid var(--color-noun); border-radius: var(--radius-3); background: var(--color-paper-2); } .hub-card.hub-verb { border-top-color: var(--color-verb); } .hub-card.hub-cascade { border-top-color: var(--color-ink); } .hub-step { font-family: var(--font-mono); font-size: var(--text-micro); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-noun-ink); } .hub-card.hub-verb .hub-step { color: var(--color-verb-ink); } .hub-card.hub-cascade .hub-step { color: var(--color-muted); } .hub-card-title { font-size: 1.3125rem; line-height: 1.2; } .hub-card-summary { color: var(--color-ink-2); font-size: var(--text-small); line-height: 1.55; text-wrap: pretty; } .hub-links { margin-top: auto; padding-top: var(--space-2); } @media (max-width: 64rem) { .hub-grid { grid-template-columns: minmax(0, 1fr); } } @media (max-width: 40rem) { .hub-card { padding: var(--space-5); } } .deck-band { padding-bottom: var(--space-9); } .band-title { font-size: var(--text-title); margin-bottom: var(--space-5); } /* Deck cards, with each deck's cover as a live thumbnail */ .deck-cards { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); } .deck-card { position: relative; display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--color-rule); border-radius: var(--radius-3); background: var(--color-paper-2); transition: border-color 160ms ease-out, box-shadow 160ms ease-out, transform 160ms ease-out; } .deck-card:hover { border-color: var(--color-rule-strong); box-shadow: var(--shadow-lift); transform: translateY(-2px); } .deck-card:has(.deck-card-link:focus-visible) { outline: 3px solid var(--color-focus); outline-offset: 3px; } .deck-thumb { --thumb-scale: 0.19; position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-bottom: 1px solid var(--color-rule); background: var(--color-paper-3); } .thumb-canvas { position: absolute; top: 0; left: 0; width: 1920px; height: 1080px; overflow: hidden; transform: scale(var(--thumb-scale)); transform-origin: 0 0; font-size: 16px; font-weight: 400; line-height: normal; letter-spacing: normal; text-align: start; pointer-events: none; } .thumb-canvas :is(h1, h2, h3, h4) { letter-spacing: normal; line-height: normal; overflow-wrap: normal; } .thumb-canvas :is(h1, h2, h3, h4, p, ul, ol, pre) { margin: 0; } .thumb-canvas svg { max-width: none; } .thumb-canvas code { background: none; border-radius: 0; padding: 0; overflow-wrap: normal; } .deck-card-body { display: flex; flex-direction: column; gap: var(--space-2); flex: 1; padding: var(--space-5) var(--space-5) var(--space-5); } .deck-card-meta { font-size: var(--text-micro); color: var(--color-muted); font-variant-numeric: tabular-nums; } .deck-card-title { font-size: var(--text-title); line-height: 1.2; } .deck-card-link { color: var(--color-ink); text-decoration: none; } .deck-card-link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; } .deck-card-link:focus-visible { outline: none; } .deck-card-summary { color: var(--color-ink-2); font-size: var(--text-small); line-height: 1.5; } .deck-card-foot { margin-top: auto; padding-top: var(--space-3); display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); font-size: var(--text-small); } .deck-card-cta { display: inline-flex; align-items: center; gap: var(--space-1); font-weight: 600; color: var(--color-noun-ink); } .deck-card-cta .chevron { transform: rotate(-90deg); } .deck-card-pdf { position: relative; z-index: 1; color: var(--color-muted); font-weight: 600; } .deck-card-pdf:hover { color: var(--color-ink); } @media (max-width: 40rem) { .deck-cards { grid-template-columns: minmax(0, 1fr); max-width: 34rem; } } @media (prefers-reduced-motion: reduce) { .deck-card { transition: none; } .deck-card:hover { transform: none; } } .deck-index { padding-bottom: var(--space-9); } .deck-index .deck-cards { margin-top: 0; } .earlier-link { margin-top: var(--space-8); padding-top: var(--space-5); border-top: 1px solid var(--color-rule); font-size: var(--text-small); color: var(--color-muted); } .earlier-link a { font-weight: 600; margin-inline-end: var(--space-2); } /* Use cases: seven flagship ideas, Tokens for Good leading, then the fields the same pieces fit */ .use-wrap { padding-bottom: var(--space-9); display: grid; gap: var(--space-5); } .use-grid { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); } /* A flagship spans five rows of the grid and shares them with its neighbour, so the heads, the nouns, the verbs, the packs and the links line up across a row and the cards in a row end level. */ .use-card { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: var(--space-5); min-width: 0; padding: var(--space-6); border: 1px solid var(--color-rule); border-radius: var(--radius-3); background: var(--color-paper-2); } .use-head { display: grid; gap: var(--space-3); align-content: start; } .use-card h2 { font-size: var(--text-title); line-height: 1.15; } .use-name-rest { display: block; margin-top: var(--space-1); font-size: var(--text-body); font-weight: 500; line-height: 1.35; letter-spacing: 0; color: var(--color-muted); } .use-line, .use-detail { color: var(--color-ink-2); line-height: 1.55; max-width: 62ch; text-wrap: pretty; } .use-terms { grid-row: span 3; display: grid; grid-template-rows: subgrid; row-gap: var(--space-3); } .use-terms dt { font-size: var(--text-micro); } .use-terms dt.pack-word { font-weight: 600; color: var(--color-ink); } .use-terms dd { margin-top: var(--space-1); } .chips { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-2); } .chips li { font-size: var(--text-micro); line-height: 1.4; padding: 0.125rem var(--space-2); border-radius: 999px; } .chips.noun li { background: var(--color-noun-wash); color: var(--color-noun-ink); } .chips.verb li { background: var(--color-verb-wash); color: var(--color-verb-ink); } /* A use case's packs: links to their cards on the library page, outlined so they read as links, not terms */ .chips.pack li { padding: 0; } .chips.pack a { display: inline-flex; align-items: center; min-height: 1.75rem; padding: 0 var(--space-3); border: 1px solid var(--color-rule-strong); border-radius: 999px; color: var(--color-ink); font-weight: 500; text-decoration: none; } .chips.pack a:hover { border-color: var(--color-ink-2); background: var(--color-paper-3); } .use-links { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-5); } .use-link { display: inline-flex; align-items: center; gap: var(--space-1); padding-block: var(--space-1); font-size: var(--text-small); font-weight: 600; color: var(--color-noun-ink); } .use-link .chevron { flex: none; transform: rotate(-90deg); } /* The lead, Tokens for Good: across the grid, its name over its text, and its nouns and verbs on a panel beside the text and buttons */ .use-card.use-lead { grid-column: 1 / -1; grid-row: auto; grid-template-rows: none; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-areas: "title title" "text terms" "links terms"; gap: var(--space-5) var(--space-8); padding: var(--space-7); border-color: var(--color-rule-strong); border-top: 6px solid var(--color-noun); } .use-card.use-lead .use-head { display: contents; } .use-card.use-lead h2 { grid-area: title; font-size: var(--text-section); line-height: 1.05; letter-spacing: -0.02em; } .use-card.use-lead .use-text { grid-area: text; display: grid; gap: var(--space-4); align-content: start; } .use-card.use-lead .use-line { font-size: var(--text-lead); line-height: 1.45; color: var(--color-ink); max-width: 40ch; } .use-card.use-lead .use-links { grid-area: links; align-self: end; gap: var(--space-3); } .use-card.use-lead .use-terms { grid-area: terms; grid-template-rows: none; align-content: center; gap: var(--space-5); padding: var(--space-6); border-radius: var(--radius-2); background: var(--color-paper-3); } .use-card.use-lead .chips li { font-size: var(--text-small); } /* The fields band: the same pieces fit almost any field */ .use-fields { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-areas: "head chips" "links chips"; align-items: center; gap: var(--space-3) var(--space-8); padding: var(--space-6) var(--space-7); border-radius: var(--radius-3); background: var(--color-band); } .use-fields .use-head { grid-area: head; gap: var(--space-2); align-self: end; } .use-fields h2 { font-size: var(--text-title); color: var(--color-band-ink); } .use-fields .use-line { color: var(--color-band-ink-2); } .use-fields .chips { grid-area: chips; gap: var(--space-2); } .use-fields .chips li { font-size: var(--text-small); padding: var(--space-1) var(--space-3); border: 1px solid var(--color-band-ink-2); border-color: color-mix(in srgb, var(--color-band-ink) 30%, transparent); color: var(--color-band-ink); } .use-fields .use-links { grid-area: links; align-self: start; } .use-fields .use-link { color: var(--color-band-noun); } @media (max-width: 64rem) { .use-card.use-lead { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-template-areas: "title" "text" "terms" "links"; padding: var(--space-6); } .use-fields { grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "chips" "links"; } .use-fields .use-head, .use-fields .use-links { align-self: auto; } } @media (max-width: 56rem) { .use-grid { grid-template-columns: minmax(0, 1fr); } } @media (max-width: 40rem) { .use-card, .use-card.use-lead { padding: var(--space-5); } .use-card.use-lead .use-terms { padding: var(--space-5); } .use-card.use-lead .use-links .button { flex: 1 1 auto; } .use-fields { padding: var(--space-6) var(--space-5); } } /* Earlier drafts and storyboards */ .drafts { padding-bottom: var(--space-9); display: grid; gap: var(--space-8); } .draft-group h2 { font-size: var(--text-title); } .draft-list { list-style: none; padding: 0; margin-top: var(--space-4); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); } .draft { min-width: 0; padding: var(--space-5); border: 1px solid var(--color-rule); border-radius: var(--radius-2); background: var(--color-paper-2); } .draft-title { font-size: 1.1875rem; line-height: 1.25; } .draft-title a { color: var(--color-ink); } .draft p { margin-top: var(--space-2); color: var(--color-ink-2); font-size: var(--text-small); } .draft .item-meta { color: var(--color-muted); } .draft-links { font-weight: 600; } .drafts-notes { display: grid; gap: var(--space-2); font-size: var(--text-small); color: var(--color-muted); max-width: 70ch; } @media (max-width: 48rem) { .draft-list { grid-template-columns: minmax(0, 1fr); } } /* Plain pages: the draft animatic and the feedback design */ .page-body { padding-block: var(--space-7) var(--space-9); } .doc-title { font-size: var(--text-section); } .section { padding-block: var(--space-9); } @media (max-width: 40rem) { .section { padding-block: var(--space-8); } } .section + .section { border-top: 1px solid var(--color-rule); } .section-head { max-width: 46rem; margin-bottom: var(--space-7); } .section-head h2 { font-size: var(--text-section); } .section-head p { margin-top: var(--space-4); font-size: var(--text-lead); color: var(--color-ink-2); line-height: 1.45; } .prose { max-width: var(--measure); } .prose > * + * { margin-top: var(--space-4); } .prose h2 { font-size: clamp(1.625rem, 1.3rem + 1.2vw, 2.25rem); margin-top: var(--space-8); } .prose h3 { font-size: var(--text-title); margin-top: var(--space-6); } .prose h2 + *, .prose h3 + * { margin-top: var(--space-3); } .prose ul, .prose ol { padding-inline-start: var(--space-5); } .prose li + li { margin-top: var(--space-2); } .prose .lead { margin-top: 0; } .prose > h2:first-child { margin-top: 0; } .prose video, .prose img { display: block; width: 100%; height: auto; border-radius: var(--radius-2); } .table-wrap { overflow-x: auto; border: 1px solid var(--color-rule); border-radius: var(--radius-2); background: var(--color-paper-2); } .table-wrap:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; } table { width: 100%; border-collapse: collapse; font-size: var(--text-small); line-height: 1.5; } caption { text-align: start; padding: var(--space-3) var(--space-4); font-weight: 600; color: var(--color-ink); caption-side: top; } th, td { text-align: start; vertical-align: top; padding: var(--space-3) var(--space-4); border-top: 1px solid var(--color-rule); } thead th { background: var(--color-paper-3); font-weight: 600; border-top: 0; } tbody th { font-weight: 600; } .term-list { display: grid; gap: var(--space-4); } .term-list dt { font-weight: 600; color: var(--color-ink); } .term-list dd { margin: var(--space-1) 0 0; color: var(--color-ink-2); } .noun-word { color: var(--color-noun-ink); font-weight: 600; } .verb-word { color: var(--color-verb-ink); font-weight: 600; } .statement .noun-word, .statement .verb-word { font-weight: inherit; } /* Status words: Real, Building, Needed */ .badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 0 var(--space-3); min-height: 1.75rem; font-size: var(--text-small); font-weight: 600; line-height: 1.2; white-space: nowrap; border: 1px solid currentColor; } .badge.real { color: var(--color-real); background: var(--color-real-wash); } .badge.building { color: var(--color-building); background: var(--color-building-wash); } .badge.needed { color: var(--color-needed); background: var(--color-needed-wash); } .legend { list-style: none; padding: 0; display: grid; gap: var(--space-3); } .legend li { display: flex; gap: var(--space-3); align-items: baseline; flex-wrap: wrap; } /* Storyboard shots */ .shots { list-style: none; padding: 0; margin-top: var(--space-5); } .shot { display: grid; grid-template-columns: minmax(0, 7rem) minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 0.9fr); gap: var(--space-3) var(--space-5); padding-block: var(--space-5); border-top: 1px solid var(--color-rule-strong); } .shot-head { display: contents; } .shot-time { font-family: var(--font-display); font-weight: 700; font-size: 1.125rem; line-height: 1.3; color: var(--color-ink); } .shot dl { display: contents; } .shot dt { font-size: var(--text-small); font-weight: 600; color: var(--color-muted); } .shot dd { margin: var(--space-1) 0 0; color: var(--color-ink-2); } .shot .cell { min-width: 0; } .shot .narration dd { color: var(--color-ink); } .shot .status dd { display: flex; flex-direction: column; gap: var(--space-2); align-items: flex-start; } .shots-head { display: grid; grid-template-columns: minmax(0, 7rem) minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 0.9fr); gap: var(--space-5); font-size: var(--text-small); font-weight: 600; color: var(--color-muted); padding-bottom: var(--space-2); } @media (min-width: 60.01rem) { .shot dt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; } } @media (max-width: 60rem) { .shots-head { display: none; } .shot { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); } } /* Not found */ .not-found { max-width: 46rem; padding-block: var(--space-8) var(--space-9); } .nf-code { font-family: var(--font-mono); font-size: var(--text-small); color: var(--color-muted); } .nf-code span:not(:empty)::before { content: " · "; } .not-found h1 { margin-top: var(--space-3); font-size: var(--text-section); } .not-found .lead { margin-top: var(--space-4); } .nf-list { list-style: none; padding: 0; margin-top: var(--space-6); display: grid; gap: var(--space-3); } .nf-list a { display: grid; gap: var(--space-1); padding: var(--space-4) var(--space-5); border: 1px solid var(--color-rule-strong); border-radius: 14px; background: var(--color-paper-2); color: var(--color-ink); text-decoration: none; } .nf-list a:hover { border-color: var(--color-ink); text-decoration: none; } .nf-list b { font-size: 1.0625rem; font-weight: 600; } .nf-list span { color: var(--color-muted); font-size: var(--text-small); } .nf-note { margin-top: var(--space-6); font-size: var(--text-small); color: var(--color-muted); } /* Footer */ .site-footer { border-top: 1px solid var(--color-rule); padding-block: var(--space-6) var(--space-7); font-size: var(--text-micro); color: var(--color-muted); } .site-footer .wrap { display: grid; gap: var(--space-3); } .site-footer ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); } .site-footer a { color: var(--color-ink-2); text-decoration: none; } .site-footer a:hover { color: var(--color-ink); text-decoration: underline; } .site-footer p { max-width: none; } @media print { .site-header nav, .mode-toggle, .agent-banner, .skip-link { display: none; } } /* The full film's outline */ .film-outline { display: grid; gap: var(--space-8); padding-block: var(--space-6) var(--space-9); } .film-act h2 { font-size: var(--text-title); display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2) var(--space-4); } .film-act-time { font-family: var(--font-mono); font-size: var(--text-small); font-weight: 500; color: var(--color-muted); } .film-lines { list-style: none; padding: 0; margin-top: var(--space-4); display: grid; } .film-line { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: var(--space-4); padding-block: var(--space-4); border-top: 1px solid var(--color-rule-strong); } .film-at { font-family: var(--font-mono); font-size: var(--text-small); color: var(--color-verb-ink); padding-top: 0.2em; } .film-words { font-size: var(--text-lead); line-height: 1.45; color: var(--color-ink); max-width: 62ch; } .film-picture { margin-top: var(--space-2); font-size: var(--text-small); color: var(--color-ink-2); max-width: 72ch; } .film-picture-label { font-weight: 600; color: var(--color-noun-ink); } .film-note { font-size: var(--text-small); color: var(--color-muted); max-width: 72ch; } .film-label a { color: inherit; } @media (max-width: 40rem) { .film-line { grid-template-columns: minmax(0, 1fr); gap: var(--space-1); } } .film-board img { display: block; width: 100%; height: auto; border: 1px solid var(--color-rule-strong); border-radius: var(--radius-2); background: var(--color-paper); } .film-board figcaption { margin-top: var(--space-3); font-size: var(--text-small); color: var(--color-ink-2); max-width: 78ch; } /* Learning: what continuous learning means here, the loop, measured results, safety rules, limits and how to run it. The loop is a ring of verb tiles: four across and four back on wide screens, one column on narrow ones. */ .learn { display: grid; gap: var(--space-9); padding-bottom: var(--space-9); } .learn-actions { margin-top: var(--space-5); } .learn-part { display: grid; gap: var(--space-6); } .learn-head { display: grid; gap: var(--space-3); max-width: 46rem; } .learn-head h2 { font-size: var(--text-section); line-height: 1.05; letter-spacing: -0.02em; } .learn-head p { font-size: var(--text-lead); line-height: 1.45; color: var(--color-ink-2); } .learn-means { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); } .learn-mean { display: grid; gap: var(--space-2); align-content: start; min-width: 0; padding: var(--space-6); border: 1px solid var(--color-rule); border-top: 6px solid var(--color-verb); border-radius: var(--radius-3); background: var(--color-paper-2); } .learn-mean.noun { border-top-color: var(--color-noun); } .learn-kind { font-size: var(--text-micro); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-verb-ink); } .learn-mean.noun .learn-kind { color: var(--color-noun-ink); } .learn-mean h3 { font-size: var(--text-title); line-height: 1.2; } .learn-text { color: var(--color-ink-2); line-height: 1.55; text-wrap: pretty; } .learn-note { max-width: 62ch; color: var(--color-ink-2); } .loop { --loop-gap-x: var(--space-7); --loop-gap-y: var(--space-8); list-style: none; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--loop-gap-y); max-width: 34rem; counter-reset: loop-step; } .loop-step { position: relative; counter-increment: loop-step; display: grid; gap: var(--space-2); align-content: start; min-width: 0; padding: var(--space-5); border: 1px solid var(--color-rule); border-top: 4px solid var(--color-verb); border-radius: var(--radius-2); background: var(--color-paper-2); } .loop-step::before { content: counter(loop-step, decimal-leading-zero); font-family: var(--font-mono); font-size: var(--text-micro); letter-spacing: 0.04em; color: var(--color-verb-ink); } .loop-verb { font-size: 1.25rem; line-height: 1.2; } .loop-noun { justify-self: start; font-size: var(--text-micro); font-weight: 600; line-height: 1.4; padding: 0.125rem var(--space-2); border-radius: 999px; background: var(--color-noun-wash); color: var(--color-noun-ink); } .loop-text { font-size: var(--text-small); line-height: 1.5; color: var(--color-ink-2); text-wrap: pretty; } /* Each tile's arrow sits in the gap after it: down in one column; on wide screens right, down, left, then up. */ .loop-arrow { position: absolute; left: 50%; bottom: calc(var(--loop-gap-y) / -2); width: 1.75rem; height: auto; transform: translate(-50%, 50%) rotate(90deg); color: var(--color-muted); } .loop-step:last-child .loop-arrow { display: none; } .loop-back { max-width: 62ch; padding-inline-start: var(--space-4); border-inline-start: 3px solid var(--color-verb); color: var(--color-ink-2); } @media (min-width: 64.01rem) { .loop { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: var(--loop-gap-x); max-width: none; } .loop-step:nth-child(1) { grid-area: 1 / 1; } .loop-step:nth-child(2) { grid-area: 1 / 2; } .loop-step:nth-child(3) { grid-area: 1 / 3; } .loop-step:nth-child(4) { grid-area: 1 / 4; } .loop-step:nth-child(5) { grid-area: 2 / 4; } .loop-step:nth-child(6) { grid-area: 2 / 3; } .loop-step:nth-child(7) { grid-area: 2 / 2; } .loop-step:nth-child(8) { grid-area: 2 / 1; } .loop-step:nth-child(-n+3) .loop-arrow { left: auto; right: calc(var(--loop-gap-x) / -2); top: 50%; bottom: auto; transform: translate(50%, -50%); } .loop-step:nth-child(n+5):nth-child(-n+7) .loop-arrow { left: calc(var(--loop-gap-x) / -2); top: 50%; bottom: auto; transform: translate(-50%, -50%) rotate(180deg); } .loop-step:nth-child(8) .loop-arrow { display: block; top: calc(var(--loop-gap-y) / -2); bottom: auto; transform: translate(-50%, -50%) rotate(-90deg); } } .results { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); } .result { display: grid; grid-template-rows: auto auto 1fr auto; gap: var(--space-3); min-width: 0; padding: var(--space-6); border-radius: var(--radius-3); background: var(--color-band); color: var(--color-band-ink); } .result-model { font-family: var(--font-mono); font-size: var(--text-micro); letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-band-verb); } .result-figure { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-3); font-family: var(--font-display); font-size: clamp(1.75rem, 1.35rem + 0.8vw, 2.25rem); font-weight: 700; line-height: 1.05; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; } .result-before { color: var(--color-band-ink-2); opacity: 0.72; } .result-after { color: var(--color-band-noun); } .result-arrow { width: 1.5rem; height: auto; color: var(--color-band-ink-2); } .result-line { color: var(--color-band-ink-2); line-height: 1.55; text-wrap: pretty; } .result-evidence { font-size: var(--text-small); color: var(--color-band-ink-2); } .result-evidence span { margin-inline-end: var(--space-2); } .result-evidence a { color: var(--color-band-noun); font-weight: 600; } .safety { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); } .safety li { display: grid; gap: var(--space-2); align-content: start; min-width: 0; padding: var(--space-5); border: 1px solid var(--color-rule); border-radius: var(--radius-2); background: var(--color-paper-2); } .safety li:last-child { background: var(--color-band); border-color: var(--color-band); } .safety h3 { font-size: 1.1875rem; line-height: 1.25; } .safety p { font-size: var(--text-small); line-height: 1.55; color: var(--color-ink-2); text-wrap: pretty; } .safety li:last-child h3 { color: var(--color-band-ink); } .safety li:last-child p { color: var(--color-band-ink-2); } .learn-limits { list-style: none; padding: 0; display: grid; max-width: 52rem; } .learn-limits li { padding-block: var(--space-3); border-top: 1px solid var(--color-rule); color: var(--color-ink-2); } .learn-limits li:last-child { border-bottom: 1px solid var(--color-rule); } .learn-run { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center; gap: var(--space-5) var(--space-8); padding: var(--space-7); border-radius: var(--radius-3); background: var(--color-band); } .learn-run-text { display: grid; gap: var(--space-3); } .learn-run h2 { font-size: var(--text-title); color: var(--color-band-ink); } .learn-run-text p { color: var(--color-band-ink-2); line-height: 1.55; max-width: 60ch; } .learn-run .use-links { flex-direction: column; align-items: flex-start; } .learn-run .use-link { color: var(--color-band-noun); } @media (max-width: 64rem) { .learn-means, .results { grid-template-columns: minmax(0, 1fr); max-width: 40rem; } .safety { grid-template-columns: repeat(2, minmax(0, 1fr)); } .learn-run { grid-template-columns: minmax(0, 1fr); } } @media (max-width: 40rem) { .learn { gap: var(--space-8); } .safety { grid-template-columns: minmax(0, 1fr); } .learn-mean, .result { padding: var(--space-5); } .learn-run { padding: var(--space-6) var(--space-5); } } /* Library: every seed pack at one pinned commit, under the totals measured there, grouped by category. A category link shows only that category through :target, so the filter needs no script. The category on show spans the filter's grid row as well as its own, so the browser scrolls to the filter and the filter stays above it; its content sits in the second row. The page's one style rule sets --on for the link of the category on show, and "All" is on while no category is. */ .library { display: grid; gap: var(--space-7); padding-bottom: var(--space-9); } .lib-summary { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); padding: var(--space-6); border: 1px solid var(--color-rule); border-radius: var(--radius-3); background: var(--color-paper-2); } .lib-stats { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-5); } .lib-stat { display: grid; gap: var(--space-2); align-content: start; min-width: 0; padding-inline-start: var(--space-4); border-inline-start: 3px solid var(--color-rule-strong); } .lib-stat.noun { border-inline-start-color: var(--color-noun); } .lib-stat.verb { border-inline-start-color: var(--color-verb); } .lib-stat-n { font-family: var(--font-display); font-size: clamp(2rem, 1.5rem + 1.3vw, 2.75rem); font-weight: 700; line-height: 1; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; color: var(--color-ink); } .lib-stat.noun .lib-stat-n { color: var(--color-noun-ink); } .lib-stat.verb .lib-stat-n { color: var(--color-verb-ink); } .lib-stat-label { font-size: var(--text-small); line-height: 1.35; color: var(--color-ink-2); text-wrap: balance; } .lib-about { display: grid; gap: var(--space-2); padding-top: var(--space-5); border-top: 1px solid var(--color-rule); } .lib-source { font-size: var(--text-small); color: var(--color-ink-2); max-width: 78ch; } .lib-source a { font-weight: 600; } .lib-source code { font-size: 0.9em; } .lib-legend { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); font-size: var(--text-small); color: var(--color-ink-2); } /* The category filter: pills that read as links; the one on show is filled */ .lib-filter { position: relative; z-index: 1; grid-row: 1; grid-column: 1; scroll-margin-top: var(--space-6); } .lib-filter ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-2); } .lib-filter a { --on: 0; display: inline-flex; align-items: center; gap: var(--space-2); min-height: 40px; padding: 0 var(--space-3); border: 1px solid color-mix(in srgb, var(--color-button) calc(var(--on) * 100%), var(--color-rule-strong)); border-radius: 999px; background: color-mix(in srgb, var(--color-button) calc(var(--on) * 100%), var(--color-paper-2)); color: color-mix(in srgb, var(--color-button-ink) calc(var(--on) * 100%), var(--color-ink)); font-size: var(--text-small); font-weight: 600; text-decoration: none; white-space: nowrap; } .lib-filter a:hover { border-color: var(--color-ink-2); } .lib-filter-n { font-weight: 500; font-variant-numeric: tabular-nums; color: color-mix(in srgb, var(--color-button-ink) calc(var(--on) * 100%), var(--color-muted)); } .library:not(:has(.lib-group:target)) .lib-filter a[href="#categories"] { --on: 1; } /* Categories and their cards */ .lib-groups { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-8); } .library:has(.lib-group:target) .lib-group:not(:target) { display: none; } .lib-group:target { grid-row: 1 / span 2; grid-column: 1; display: grid; grid-template-rows: subgrid; } .lib-group:target > .lib-group-body { grid-row: 2; } /* F31-005: the whole list runs past 10,000 px, more than Chrome paints in one go at device scale 1.5. Until a category or a pack is chosen, each category shows its first three packs, one row (LIBRARY_FIRST in build_site.py) and a "See all" link, which is the category filter. A link to one pack shows every card. */ .library:not(:has(.lib-group:target, .lib-card:target)) .lib-cards > li:nth-child(n+4) { display: none; } .lib-see-all { display: none; justify-self: start; font-weight: 600; } .library:not(:has(.lib-group:target, .lib-card:target)) .lib-see-all { display: inline-flex; gap: 0.35em; } .lib-group-body { display: grid; gap: var(--space-5); } .lib-group-head { display: grid; gap: var(--space-3); max-width: 52rem; } .lib-group-head h2 { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-1) var(--space-3); font-size: clamp(1.5rem, 1.15rem + 1.2vw, 2.25rem); line-height: 1.08; letter-spacing: -0.02em; } .lib-group-count { font-family: var(--font-body); font-size: var(--text-small); font-weight: 500; letter-spacing: 0; color: var(--color-muted); font-variant-numeric: tabular-nums; } .lib-group-intro { color: var(--color-ink-2); line-height: 1.55; max-width: 70ch; text-wrap: pretty; } .lib-show-all { display: none; justify-self: start; font-size: var(--text-small); font-weight: 600; } .lib-group:target .lib-show-all { display: inline-flex; } .lib-cards { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); gap: var(--space-4); } .lib-card { position: relative; display: flex; flex-direction: column; gap: var(--space-2); min-width: 0; padding: var(--space-4) var(--space-5) var(--space-5); border: 1px solid var(--color-rule); border-radius: var(--radius-2); background: var(--color-paper-2); scroll-margin-top: var(--space-6); transition: border-color 160ms ease-out, box-shadow 160ms ease-out; } .lib-card:hover { border-color: var(--color-rule-strong); box-shadow: var(--shadow-lift); } .lib-card:has(.lib-card-link:focus-visible) { outline: 3px solid var(--color-focus); outline-offset: 3px; } .lib-card:target { border-color: var(--color-verb); box-shadow: 0 0 0 3px var(--color-verb-wash); } .lib-card-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2); min-height: 1.625rem; } .lib-card-kind { display: inline-flex; flex-wrap: wrap; gap: 0 var(--space-2); font-size: var(--text-micro); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-muted); } .lib-card-kind span + span::before { content: "·"; margin-inline-end: var(--space-2); } .lib-badge { display: inline-flex; align-items: center; gap: var(--space-1); padding: 0.0625rem var(--space-2); border: 1px solid var(--color-rule-strong); border-radius: 999px; background: var(--color-paper-3); color: var(--color-ink); font-size: var(--text-micro); font-weight: 600; line-height: 1.5; white-space: nowrap; } .lib-badge svg { flex: none; } .lib-card-title { font-size: 1.1875rem; line-height: 1.25; } .lib-card-link { color: var(--color-ink); text-decoration: none; } .lib-card-link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; } .lib-card-link:focus-visible { outline: none; } .lib-card-purpose { font-size: var(--text-small); line-height: 1.5; color: var(--color-ink-2); text-wrap: pretty; } .lib-card-foot { margin-top: auto; padding-top: var(--space-2); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2) var(--space-4); font-size: var(--text-micro); } .lib-card-counts { display: inline-flex; flex-wrap: wrap; gap: var(--space-1) var(--space-3); font-variant-numeric: tabular-nums; } .lib-card-cta { display: inline-flex; align-items: center; gap: var(--space-1); font-weight: 600; color: var(--color-noun-ink); } .lib-card-cta .chevron { transform: rotate(-90deg); } @media (max-width: 64rem) { .lib-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } } @media (max-width: 40rem) { .library { gap: var(--space-6); } .lib-summary { padding: var(--space-5); } .lib-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); } .lib-groups { gap: var(--space-7); } .lib-card { padding: var(--space-4); } } @media (prefers-reduced-motion: reduce) { .lib-card { transition: none; } } /* Interactive Task & task-object Explorer, Agent Harness Research Feeds, and Ecosystem Explorer */ .exp-shell, .harness-panel { display: grid; gap: var(--space-5); padding: var(--space-6); border: 1px solid var(--color-rule-strong); border-radius: var(--radius-3); background: var(--color-paper-2); } .exp-head, .harness-head { display: grid; gap: var(--space-3); max-width: 62rem; } .exp-kicker { font-family: var(--font-mono); font-size: var(--text-micro); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-verb-ink); } .exp-shell h2, .harness-panel h2 { font-size: clamp(1.5rem, 1.15rem + 1.2vw, 2.25rem); line-height: 1.08; letter-spacing: -0.02em; } .exp-lead { font-size: var(--text-lead); line-height: 1.45; color: var(--color-ink-2); max-width: 64ch; } .exp-note { font-size: var(--text-small); line-height: 1.5; color: var(--color-muted); padding-inline-start: var(--space-3); border-inline-start: 3px solid var(--color-rule-strong); max-width: 72ch; } .exp-tabs { display: flex; flex-wrap: wrap; gap: var(--space-2); border-bottom: 1px solid var(--color-rule); padding-bottom: var(--space-3); } .exp-tab { font: inherit; font-size: var(--text-small); font-weight: 600; display: inline-flex; align-items: center; gap: var(--space-2); min-height: 42px; padding: 0 var(--space-4); border: 1px solid var(--color-rule-strong); border-radius: 999px; background: var(--color-paper); color: var(--color-ink); cursor: pointer; } .exp-tab[aria-selected="true"] { background: var(--color-button); border-color: var(--color-button); color: var(--color-button-ink); } .exp-tab-n { font-family: var(--font-mono); font-size: var(--text-micro); font-variant-numeric: tabular-nums; opacity: 0.85; } .exp-controls { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-3) var(--space-4); align-items: end; } .exp-controls[hidden] { display: none; } .exp-field { display: grid; gap: var(--space-1); min-width: 0; font-size: var(--text-micro); font-weight: 600; color: var(--color-ink-2); } .exp-field-wide { grid-column: 1 / span 3; } .exp-field input, .exp-field select { width: 100%; min-width: 0; min-height: 42px; padding: 0 var(--space-3); border: 1px solid var(--color-rule-strong); border-radius: var(--radius-1); background: var(--color-paper); color: var(--color-ink); font: inherit; font-size: var(--text-small); font-weight: 400; } .exp-field input:focus-visible, .exp-field select:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; } .exp-reset { min-height: 42px; padding-inline: var(--space-4); font-size: var(--text-small); } .exp-status { font-size: var(--text-small); font-weight: 500; color: var(--color-muted); font-variant-numeric: tabular-nums; } .exp-status:empty { display: none; } .exp-noscript { font-size: var(--text-small); color: var(--color-ink-2); } .exp-noscript[hidden] { display: none; } .exp-results { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); gap: var(--space-4); } .exp-results:empty { display: none; } .exp-card { display: flex; flex-direction: column; gap: var(--space-2); min-width: 0; padding: var(--space-4) var(--space-5); border: 1px solid var(--color-rule); border-top: 4px solid var(--color-rule-strong); border-radius: var(--radius-2); background: var(--color-paper); } .exp-card.exp-kind-noun { border-top-color: var(--color-noun); } .exp-card.exp-kind-verb { border-top-color: var(--color-verb); } .exp-card.exp-kind-pack { border-top-color: var(--color-ink); } .exp-card.exp-kind-project { border-top-color: var(--color-noun); } .exp-card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-2); font-size: var(--text-micro); color: var(--color-muted); } .exp-pill { display: inline-flex; align-items: center; padding: 0.0625rem var(--space-2); border-radius: 999px; font-weight: 600; font-size: var(--text-micro); background: var(--color-paper-3); color: var(--color-ink); } .exp-pill.noun { background: var(--color-noun-wash); color: var(--color-noun-ink); } .exp-pill.verb { background: var(--color-verb-wash); color: var(--color-verb-ink); } .exp-card-title { font-size: 1.125rem; line-height: 1.25; } .exp-card-title a { color: var(--color-ink); text-decoration: none; } .exp-card-title a:hover { text-decoration: underline; } .exp-card-sub { font-size: var(--text-micro); color: var(--color-muted); } .exp-card-summary { font-size: var(--text-small); line-height: 1.5; color: var(--color-ink-2); text-wrap: pretty; } .exp-card-group { display: grid; gap: var(--space-1); margin-top: var(--space-1); } .exp-card-label { font-size: var(--text-micro); font-weight: 600; color: var(--color-muted); } .exp-card-foot { margin-top: auto; padding-top: var(--space-2); border-top: 1px solid var(--color-rule); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2) var(--space-3); font-size: var(--text-micro); color: var(--color-muted); } .exp-card-foot a { font-weight: 600; } .exp-empty { grid-column: 1 / -1; padding: var(--space-5); border-radius: var(--radius-2); background: var(--color-paper); color: var(--color-ink-2); font-size: var(--text-small); } .exp-more-wrap { display: flex; justify-content: center; } .exp-more-wrap button[hidden] { display: none; } /* Agent Harness Research Feeds panel */ .harness-grid { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); } .harness-card { display: grid; gap: var(--space-2); align-content: start; min-width: 0; padding: var(--space-4) var(--space-5); border: 1px solid var(--color-rule); border-top: 4px solid var(--color-noun); border-radius: var(--radius-2); background: var(--color-paper); } .harness-card h3 { font-size: 1.125rem; line-height: 1.2; } .harness-role { font-family: var(--font-mono); font-size: var(--text-micro); color: var(--color-noun-ink); font-weight: 600; } .harness-detail { font-size: var(--text-small); line-height: 1.5; color: var(--color-ink-2); } .harness-routing { display: grid; gap: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--color-rule); } .harness-routing h3 { font-size: var(--text-title); } .harness-routing-lead { font-size: var(--text-small); line-height: 1.55; color: var(--color-ink-2); max-width: 74ch; } .routing-list { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); } .routing-item { display: grid; gap: var(--space-1); align-content: start; min-width: 0; padding: var(--space-4) var(--space-5); border: 1px solid var(--color-rule); border-inline-start: 4px solid var(--color-verb); border-radius: var(--radius-2); background: var(--color-paper); } .routing-mode { font-family: var(--font-display); font-weight: 700; color: var(--color-ink); font-size: 1.0625rem; } .routing-when { font-family: var(--font-mono); font-size: var(--text-micro); color: var(--color-verb-ink); font-weight: 600; } .routing-outcome { font-size: var(--text-small); line-height: 1.5; color: var(--color-ink-2); } /* Ecosystem callout banner */ .eco-banner { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center; gap: var(--space-5) var(--space-7); padding: var(--space-6); border-radius: var(--radius-3); background: var(--color-band); color: var(--color-band-ink); } .eco-banner-text { display: grid; gap: var(--space-3); } .eco-banner .exp-kicker { color: var(--color-band-verb); } .eco-banner h2 { font-size: var(--text-title); color: var(--color-band-ink); } .eco-banner-text p { color: var(--color-band-ink-2); line-height: 1.55; max-width: 64ch; } .eco-honesty { font-size: var(--text-micro); } .eco-banner-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-4); justify-self: start; } .eco-banner-actions .button { background: var(--color-band-ink); color: var(--color-band); border-color: var(--color-band-ink); } .eco-banner-actions .button[hidden] { display: none; } .eco-banner-actions .use-link { color: var(--color-band-noun); } @media (max-width: 64rem) { .exp-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); } .exp-field-wide { grid-column: 1 / -1; } .harness-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .routing-list { grid-template-columns: minmax(0, 1fr); } .eco-banner { grid-template-columns: minmax(0, 1fr); } } @media (max-width: 40rem) { .exp-shell, .harness-panel, .eco-banner { padding: var(--space-5); } .exp-controls, .harness-grid { grid-template-columns: minmax(0, 1fr); } .exp-card, .harness-card, .routing-item { padding: var(--space-4); } } /* Deploy and self-hosting guide */ .deploy-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); list-style: none; padding: 0; margin: 0; } .deploy-card { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; align-content: start; gap: var(--space-3); padding: var(--space-6); border: 1px solid var(--color-rule-strong); border-radius: var(--radius-3); background: var(--color-paper-2); } .deploy-badge { display: inline-flex; justify-self: start; padding: 0.2rem 0.65rem; border-radius: 999px; background: var(--color-paper-3); border: 1px solid var(--color-rule-strong); font-family: var(--font-mono); font-size: var(--text-micro); font-weight: 600; color: var(--color-verb-ink); } .deploy-card h3 { font-family: var(--font-display); font-size: 1.2rem; line-height: 1.25; color: var(--color-ink); } .deploy-summary { font-size: var(--text-small); line-height: 1.55; color: var(--color-ink); } .deploy-when { font-size: var(--text-micro); line-height: 1.5; color: var(--color-ink-2); } .deploy-code-wrap { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; gap: var(--space-2); margin-top: var(--space-2); } .deploy-code-bar { display: flex; justify-content: flex-end; } .deploy-copy { font-size: var(--text-micro); padding: 0.25rem 0.65rem; } .deploy-pre { margin: 0; padding: var(--space-4); border-radius: var(--radius-2); background: var(--color-band); color: var(--color-band-ink); font-family: var(--font-mono); font-size: 0.8125rem; line-height: 1.55; max-width: 100%; min-width: 0; overflow-x: auto; } .deploy-pre code, pre code { background: none; color: inherit; border-radius: 0; padding: 0; overflow-wrap: normal; } @media (max-width: 64rem) { .deploy-grid { grid-template-columns: minmax(0, 1fr); } } /* Contribute: the ways in that work today, each door with its live check */ .contribute-page .learn-part { scroll-margin-top: var(--space-5); } .contribute-steps { margin-top: var(--space-4); padding-inline-start: 1.25rem; display: grid; gap: var(--space-2); max-width: var(--measure); } .doors { list-style: none; padding: 0; margin-top: var(--space-5); display: grid; gap: var(--space-3); } .door { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: var(--space-1) var(--space-4); padding: var(--space-4) var(--space-5); border: 1px solid var(--color-rule-strong); border-radius: 14px; background: var(--color-paper-2); } .door-name { grid-row: span 3; font-weight: 600; color: var(--color-ink); } .door-endpoint { font-family: var(--font-mono); font-size: var(--text-small); overflow-wrap: anywhere; color: var(--color-ink); background: none; padding: 0; } .door-what { color: var(--color-ink-2); } .door-check { font-size: var(--text-micro); color: var(--color-muted); } .contribute-note, .contribute-source { margin-top: var(--space-4); color: var(--color-muted); font-size: var(--text-small); max-width: var(--measure); } @media (max-width: 40rem) { .door { grid-template-columns: minmax(0, 1fr); } .door-name { grid-row: auto; } } /* Home, after the film (the Agora-Home board): Start here with the two public sites, the decks, the use cases */ .start { padding-block: var(--space-9); } .start-wrap { display: flex; flex-direction: column; align-items: center; gap: 1.75rem; max-width: 75rem; } .start h1 { margin: 0; text-align: center; font-family: var(--font-display); font-weight: 700; font-size: clamp(2.5rem, 1.6rem + 3.6vw, 4.25rem); line-height: 1.02; letter-spacing: -0.025em; } .start-cards { list-style: none; padding: 0; margin: 0; width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); } .start-card { height: 100%; display: flex; flex-direction: column; gap: var(--space-2); padding: 1.75rem 2rem; border-radius: 24px; border: 1px solid var(--color-rule); background: var(--color-paper-2); color: var(--color-ink); text-decoration: none; } .start-card:hover { border-color: var(--color-ink); text-decoration: none; box-shadow: var(--shadow-lift); } .start-name { display: flex; align-items: center; gap: var(--space-3); font-family: var(--font-display); font-weight: 600; font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.25rem); } .start-name svg { width: 30px; height: 30px; flex: none; } .start-host { font-family: var(--font-mono); font-size: 1.125rem; color: var(--color-noun-ink); overflow-wrap: anywhere; } .start-line { font-size: 1.25rem; color: var(--color-ink-2); } .start-made { font-family: var(--font-mono); font-size: var(--text-small); color: var(--color-ink-2); text-align: center; } .band-head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-2) var(--space-5); flex-wrap: wrap; } .band-head p { color: var(--color-muted); font-size: var(--text-small); max-width: 46rem; } .home-uses { padding-block: var(--space-8) var(--space-9); } .home-use-cards { list-style: none; padding: 0; margin-top: var(--space-5); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; } .home-use { height: 100%; display: flex; flex-direction: column; gap: var(--space-2); padding: 1.375rem; border-radius: 18px; border: 1px solid var(--color-rule); background: var(--color-paper-2); color: var(--color-ink); text-decoration: none; } .home-use:hover { border-color: var(--color-ink); text-decoration: none; } .home-use b { font-size: 1.1875rem; font-weight: 600; } .home-use span { font-size: var(--text-small); color: var(--color-ink-2); } .home-use .home-use-live { align-self: flex-start; font-size: 0.8125rem; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: var(--color-real-wash); color: var(--color-real); } .home-uses-all { margin-top: var(--space-5); font-weight: 600; } @media (max-width: 56rem) { .start { padding-block: var(--space-7); } .start-cards, .home-use-cards { grid-template-columns: minmax(0, 1fr); } .start-card { padding: var(--space-5); } } @media (min-width: 56.01rem) and (max-width: 72rem) { .home-use-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (min-width: 64rem) { .home .deck-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: var(--space-5); } } /* The memory-systems feed page */ .feed-facts { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-6); margin: 0 0 var(--space-6); padding: var(--space-4) var(--space-5); border: 1px solid var(--color-rule-strong); border-radius: 14px; background: var(--color-paper-2); } .feed-facts dt { font-size: var(--text-micro); color: var(--color-muted); } .feed-facts dd { margin: 0; font-weight: 600; } .feed-count { font-size: var(--text-lead); } .feed-count b { font-family: var(--font-display); font-size: 2.5rem; } .feed-query code, .feed-facts code { font-family: var(--font-mono); font-size: var(--text-small); overflow-wrap: anywhere; } .feed-small { color: var(--color-muted); font-size: var(--text-small); max-width: var(--measure); margin-top: var(--space-2); } .feed-setups { display: grid; gap: var(--space-3); margin-top: var(--space-4); } .feed-setup { border: 1px solid var(--color-rule-strong); border-radius: 14px; background: var(--color-paper-2); padding: var(--space-3) var(--space-5); } .feed-setup summary { cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; gap: var(--space-3); } .feed-fit { font-weight: 500; color: var(--color-muted); font-size: var(--text-small); } .feed-picks { display: grid; gap: var(--space-3); padding-inline-start: 1.25rem; margin: var(--space-2) 0 var(--space-3); } .feed-pick a { font-weight: 600; } .feed-meta { color: var(--color-ink-2); font-size: var(--text-small); } .feed-claims { list-style: none; padding: 0; display: grid; gap: var(--space-1); font-size: var(--text-small); } .feed-metric { font-family: var(--font-mono); font-size: var(--text-micro); color: var(--color-noun-ink); } .feed-none { font-size: var(--text-small); color: var(--color-muted); } .feed-question { font-size: var(--text-lead); max-width: var(--measure); } .feed-answer { white-space: pre-wrap; overflow-wrap: anywhere; font-family: var(--font-mono); font-size: var(--text-small); line-height: 1.6; background: var(--color-code); color: var(--color-code-ink); padding: var(--space-4) var(--space-5); border-radius: 12px; margin-top: var(--space-3); } .feed-table { overflow-x: auto; margin-top: var(--space-4); border: 1px solid var(--color-rule); border-radius: 12px; } .feed-table table { width: 100%; border-collapse: collapse; font-size: var(--text-small); } .feed-table th, .feed-table td { text-align: start; padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--color-rule); vertical-align: top; } .feed-table th { background: var(--color-paper-3); font-weight: 600; } .feed-papers { display: grid; gap: var(--space-2); padding-inline-start: 1.25rem; margin-top: var(--space-3); } .feed-papers span { color: var(--color-muted); font-size: var(--text-micro); } /* Home subline & tour link */ .start-subline { margin: 0; text-align: center; font-size: var(--text-body); line-height: 1.55; color: var(--color-ink-2); max-width: 64ch; } .film-tour-link { font-weight: 600; } /* Shared page kicker, pill row, and table shell for October 31 pages */ .page-kicker { font-family: var(--font-mono); font-size: var(--text-micro); font-weight: 600; color: var(--color-muted); letter-spacing: 0.04em; text-transform: uppercase; margin: 0 0 var(--space-2); } .pill-row { list-style: none; padding: 0; margin: var(--space-3) 0 0; display: flex; flex-wrap: wrap; gap: var(--space-2); } .pill-row li { font-family: var(--font-mono); font-size: var(--text-micro); padding: 0.2rem 0.65rem; border-radius: 999px; border: 1px solid var(--color-rule-strong); background: var(--color-paper-2); color: var(--color-ink-2); } .data-table-wrap { overflow-x: auto; max-width: 100%; border: 1px solid var(--color-rule-strong); border-radius: var(--radius-2); background: var(--color-paper-2); } .data-table { width: 100%; border-collapse: collapse; font-size: var(--text-small); } .data-table th, .data-table td { text-align: start; padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--color-rule); vertical-align: top; } .data-table tr:last-child td { border-bottom: 0; } .data-table th { background: var(--color-paper-3); font-weight: 600; color: var(--color-ink); font-size: var(--text-micro); white-space: nowrap; } /* Partner compute telemetry cards (/deploy/#partners) */ .partner-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); } .partner-card { display: grid; grid-template-columns: minmax(0, 1fr); align-content: start; gap: var(--space-3); min-width: 0; padding: var(--space-5); border: 1px solid var(--color-rule-strong); border-top: 4px solid var(--color-noun); border-radius: var(--radius-3); background: var(--color-paper-2); } .partner-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--space-2); } .partner-head h3 { font-size: 1.25rem; } .partner-kind { font-family: var(--font-mono); font-size: var(--text-micro); color: var(--color-muted); } .partner-role { font-size: var(--text-small); line-height: 1.5; color: var(--color-ink-2); margin: 0; } .partner-status { padding: var(--space-3) var(--space-4); border-radius: var(--radius-2); background: var(--color-paper-3); border: 1px solid var(--color-rule-strong); display: grid; gap: var(--space-1); } .partner-status strong { font-size: var(--text-micro); font-family: var(--font-mono); color: var(--color-ink); } .partner-status p { margin: 0; font-size: var(--text-micro); line-height: 1.5; color: var(--color-ink-2); } .partner-checked-title, .partner-try-title { margin: 0; font-size: var(--text-micro); font-weight: 600; color: var(--color-ink); } .partner-checked { margin: 0; padding-inline-start: 1.15rem; display: grid; gap: var(--space-1); font-size: var(--text-micro); color: var(--color-ink-2); } .partner-foot { margin: auto 0 0; padding-top: var(--space-2); border-top: 1px solid var(--color-rule); font-family: var(--font-mono); font-size: var(--text-micro); } .partner-notes { list-style: none; padding: 0; margin: var(--space-5) 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); } .partner-notes li { padding: var(--space-4) var(--space-5); border: 1px solid var(--color-rule); border-radius: var(--radius-2); background: var(--color-paper-2); } .partner-notes h3 { font-size: 1rem; margin-bottom: var(--space-1); } .partner-notes p { margin: 0; font-size: var(--text-small); color: var(--color-ink-2); } @media (max-width: 72rem) { .partner-grid { grid-template-columns: minmax(0, 1fr); } } @media (max-width: 48rem) { .partner-notes { grid-template-columns: minmax(0, 1fr); } } /* Judges guide (/judges/) */ .judges-page { display: grid; gap: var(--space-7); padding-bottom: var(--space-9); } .jg-ctas { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-4); } .jg-steps { list-style: none; padding: 0; margin: var(--space-4) 0 0; counter-reset: jgstep; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-4); } .jg-step { counter-increment: jgstep; display: flex; flex-direction: column; gap: var(--space-2); min-width: 0; padding: var(--space-4); border: 1px solid var(--color-rule-strong); border-radius: var(--radius-2); background: var(--color-paper-2); } .jg-step::before { content: counter(jgstep); width: 1.75rem; height: 1.75rem; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: var(--color-verb-wash); color: var(--color-verb-ink); font-family: var(--font-mono); font-size: var(--text-micro); font-weight: 700; } .jg-step h3 { font-size: 1.0625rem; } .jg-step p { margin: 0; font-size: var(--text-micro); line-height: 1.5; color: var(--color-ink-2); } .jg-step a { margin-top: auto; font-size: var(--text-micro); font-weight: 600; } .jg-doors { list-style: none; padding: 0; margin: var(--space-4) 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); } .jg-door { display: grid; gap: var(--space-2); align-content: start; min-width: 0; padding: var(--space-4) var(--space-5); border: 1px solid var(--color-rule-strong); border-inline-start: 4px solid var(--color-verb); border-radius: var(--radius-2); background: var(--color-paper-2); } .jg-door h3 { font-size: 1.0625rem; } .jg-door code { font-family: var(--font-mono); font-size: var(--text-micro); color: var(--color-noun-ink); background: none; padding: 0; overflow-wrap: anywhere; } .jg-door p { margin: 0; font-size: var(--text-small); color: var(--color-ink-2); } .jg-repos { list-style: none; padding: 0; margin: var(--space-4) 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); } .jg-repo { display: grid; gap: var(--space-2); min-width: 0; padding: var(--space-4) var(--space-5); border: 1px solid var(--color-rule-strong); border-radius: var(--radius-2); background: var(--color-paper-2); } .jg-repo-slug { font-family: var(--font-mono); font-size: var(--text-small); font-weight: 600; color: var(--color-ink); overflow-wrap: anywhere; } .jg-repo-role { margin: 0; font-size: var(--text-micro); color: var(--color-ink-2); } .jg-repo-links { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); font-size: var(--text-micro); font-weight: 600; } .jg-looks { list-style: none; padding: 0; margin: var(--space-4) 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); } .jg-look { display: grid; gap: var(--space-1); min-width: 0; padding: var(--space-4); border: 1px solid var(--color-rule); border-radius: var(--radius-2); background: var(--color-paper-2); color: var(--color-ink); text-decoration: none; } .jg-look:hover { border-color: var(--color-ink); text-decoration: none; } .jg-look strong { font-family: var(--font-display); font-size: 1.0625rem; } .jg-look span { font-size: var(--text-micro); color: var(--color-ink-2); } .jg-foot { margin: 0; font-size: var(--text-small); color: var(--color-muted); } @media (max-width: 72rem) { .jg-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } .jg-doors { grid-template-columns: minmax(0, 1fr); } .jg-looks { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 44rem) { .jg-steps, .jg-repos, .jg-looks { grid-template-columns: minmax(0, 1fr); } } /* Scoped blocked/alert tokens for status & scenarios (WCAG AA >= 5.5:1 light & dark) */ .status-page, .scenarios-page { --sc-blocked: #9E2A2B; --sc-blocked-wash: #F8E5E5; } [data-mode="dark"] .status-page, [data-mode="dark"] .scenarios-page { --sc-blocked: #F49797; --sc-blocked-wash: #34191B; } @media (prefers-color-scheme: dark) { :root:not([data-mode]) .status-page, :root:not([data-mode]) .scenarios-page { --sc-blocked: #F49797; --sc-blocked-wash: #34191B; } } /* Status page (/status/) */ .status-page { display: grid; gap: var(--space-6); padding-bottom: var(--space-9); } .st-banner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-5); border-radius: var(--radius-3); border: 1px solid var(--color-rule-strong); border-inline-start: 6px solid var(--color-real); background: var(--color-paper-2); } .st-banner-body { display: grid; gap: var(--space-1); min-width: 0; max-width: 58ch; } .st-banner-body h2 { font-size: var(--text-title); } .st-banner-body p { margin: 0; font-size: var(--text-small); color: var(--color-ink-2); } .st-host { display: block; font-family: var(--font-mono); font-size: var(--text-micro); color: var(--color-muted); overflow-wrap: anywhere; } .st-badge { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.2rem 0.65rem; border-radius: 999px; font-size: var(--text-micro); font-weight: 600; white-space: nowrap; background: var(--color-real-wash); color: var(--color-real); } .st-badge[data-kind="slow"] { background: var(--color-building-wash); color: var(--color-building); } .st-badge[data-kind="recorded"] { background: var(--color-needed-wash); color: var(--color-needed); } .st-badge[data-kind="down"] { background: var(--sc-blocked-wash); color: var(--sc-blocked); } .st-since { font-family: var(--font-mono); font-size: var(--text-micro); color: var(--color-muted); } .st-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); } .st-card { display: grid; gap: var(--space-3); align-content: start; min-width: 0; padding: var(--space-5); border: 1px solid var(--color-rule-strong); border-radius: var(--radius-2); background: var(--color-paper-2); } .st-card h2 { font-size: var(--text-title); } .st-card-lead { margin: 0; font-size: var(--text-small); color: var(--color-ink-2); } .st-dl { margin: 0; display: grid; gap: var(--space-2); font-size: var(--text-small); } .st-dl dt { font-size: var(--text-micro); color: var(--color-muted); } .st-dl dd { margin: 0; font-weight: 500; color: var(--color-ink); } .st-notes { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-3); } .st-notes li { padding-top: var(--space-2); border-top: 1px solid var(--color-rule); font-size: var(--text-small); color: var(--color-ink-2); } .st-notes li:first-child { border-top: 0; padding-top: 0; } .st-note-meta { font-family: var(--font-mono); font-size: var(--text-micro); font-weight: 600; color: var(--color-ink); margin-bottom: 0.2rem; } .st-foot { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--color-rule); } .st-foot h2 { font-size: 1rem; margin-bottom: var(--space-2); } .st-foot p { margin: 0; font-size: var(--text-micro); line-height: 1.55; color: var(--color-ink-2); } .st-legend { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: var(--space-2); } @media (max-width: 56rem) { .st-cards, .st-foot { grid-template-columns: minmax(0, 1fr); } } /* Feeds index (/feeds/) */ .feeds-hub { display: grid; gap: var(--space-6); padding-bottom: var(--space-9); } .fd-meta-bar { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); padding: var(--space-3) var(--space-4); border-radius: var(--radius-2); border: 1px solid var(--color-rule); background: var(--color-paper-2); font-size: var(--text-micro); color: var(--color-ink-2); } .fd-cats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-3); } .fd-cat { font: inherit; text-align: start; display: grid; gap: 0.2rem; align-content: start; min-width: 0; min-height: 44px; padding: var(--space-3) var(--space-4); border-radius: var(--radius-2); border: 1px solid var(--color-rule-strong); background: var(--color-paper-2); color: var(--color-ink); cursor: pointer; } .fd-cat[aria-pressed="true"] { border-color: var(--color-noun); background: var(--color-noun-wash); } .fd-cat-group { font-family: var(--font-mono); font-size: 0.75rem; color: var(--color-muted); } .fd-cat[aria-pressed="true"] .fd-cat-group { color: var(--color-noun-ink); } .fd-cat-name { font-family: var(--font-display); font-weight: 600; font-size: var(--text-small); line-height: 1.25; } .fd-split { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: var(--space-5); align-items: start; } .fd-main-card, .fd-aside { display: grid; gap: var(--space-3); min-width: 0; padding: var(--space-5); border: 1px solid var(--color-rule-strong); border-radius: var(--radius-3); background: var(--color-paper-2); } .fd-schedule { margin: 0; font-family: var(--font-mono); font-size: var(--text-micro); color: var(--color-muted); overflow-wrap: anywhere; } .fd-rank { margin: 0; font-size: var(--text-small); color: var(--color-ink-2); } .fd-num, .fd-mono { font-family: var(--font-mono); font-size: var(--text-micro); color: var(--color-ink-2); } .fd-tool a { font-weight: 600; overflow-wrap: anywhere; } .fd-signal-wrap { display: grid; gap: 0.25rem; min-width: 8rem; } .fd-bar { display: block; height: 6px; border-radius: 999px; background: var(--color-paper-3); overflow: hidden; } .fd-bar-fill { display: block; height: 100%; border-radius: 999px; background: var(--color-noun); } .fd-signal { font-family: var(--font-mono); font-size: var(--text-micro); color: var(--color-ink-2); } .fd-q { display: grid; gap: var(--space-2); } .fd-q-label { margin: 0; font-size: var(--text-micro); font-weight: 600; color: var(--color-ink); } .fd-opts { display: flex; flex-wrap: wrap; gap: var(--space-2); } .fd-opt, .sc-filter { font: inherit; font-size: var(--text-micro); font-weight: 600; min-height: 38px; padding: 0.25rem 0.75rem; border-radius: 999px; border: 1px solid var(--color-rule-strong); background: var(--color-paper); color: var(--color-ink); cursor: pointer; } .fd-opt[aria-pressed="true"], .sc-filter[aria-pressed="true"] { background: var(--color-button); border-color: var(--color-button); color: var(--color-button-ink); } .fd-fit { padding: var(--space-3) var(--space-4); border-radius: var(--radius-2); background: var(--color-real-wash); color: var(--color-ink); display: grid; gap: var(--space-1); } .fd-fit-kicker { margin: 0; font-family: var(--font-mono); font-size: var(--text-micro); font-weight: 600; color: var(--color-real); } .fd-fit-name { margin: 0; font-weight: 700; font-size: var(--text-small); color: var(--color-ink); overflow-wrap: anywhere; } .fd-fit-why { margin: 0; font-size: var(--text-micro); color: var(--color-ink-2); } .fd-snippet { margin: 0; padding: var(--space-3); border-radius: var(--radius-1); background: var(--color-code); color: var(--color-code-ink); font-family: var(--font-mono); font-size: 0.75rem; overflow-x: auto; } .fd-foot-cards { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); } .fd-foot-cards li { padding: var(--space-4) var(--space-5); border: 1px solid var(--color-rule); border-radius: var(--radius-2); background: var(--color-paper-2); } .fd-foot-cards h2 { font-size: 1rem; margin-bottom: var(--space-1); } .fd-foot-cards p { margin: 0; font-size: var(--text-small); color: var(--color-ink-2); } @media (max-width: 68rem) { .fd-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fd-split { grid-template-columns: minmax(0, 1fr); } .fd-foot-cards { grid-template-columns: minmax(0, 1fr); } } @media (max-width: 36rem) { .fd-cats { grid-template-columns: minmax(0, 1fr); } } /* Scenarios matrix (/scenarios/) */ .scenarios-page { display: grid; gap: var(--space-6); padding-bottom: var(--space-9); } .sc-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); } .sc-tile { font: inherit; text-align: start; display: grid; gap: var(--space-1); align-content: start; min-width: 0; padding: var(--space-5); border-radius: var(--radius-3); border: 1px solid var(--color-rule-strong); border-top: 5px solid var(--color-real); background: var(--color-paper-2); color: var(--color-ink); cursor: pointer; } .sc-tile[data-kind="split"] { border-top-color: var(--color-noun); } .sc-tile[data-kind="blocked"] { border-top-color: var(--sc-blocked); } .sc-tile[aria-pressed="true"] { box-shadow: 0 0 0 2px var(--color-ink); } .sc-tile-top { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-2); } .sc-tile-n { font-family: var(--font-display); font-size: clamp(2rem, 1.5rem + 1.8vw, 2.75rem); font-weight: 700; line-height: 1; } .sc-tile-pct { font-family: var(--font-mono); font-size: var(--text-small); font-weight: 600; color: var(--color-muted); } .sc-tile-label { font-family: var(--font-display); font-size: 1.125rem; font-weight: 600; } .sc-tile-sub { font-size: var(--text-micro); color: var(--color-ink-2); } .sc-why-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-5); } .sc-card { display: grid; gap: var(--space-3); align-content: start; min-width: 0; padding: var(--space-5); border: 1px solid var(--color-rule-strong); border-radius: var(--radius-3); background: var(--color-paper-2); } .sc-card h2 { font-size: var(--text-title); } .sc-card-lead { margin: 0; font-size: var(--text-small); color: var(--color-ink-2); } .sc-bars { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-3); } .sc-bar-row { display: grid; gap: 0.25rem; } .sc-bar-head { display: flex; justify-content: space-between; gap: var(--space-3); font-size: var(--text-small); } .sc-bar-count { font-family: var(--font-mono); font-weight: 600; color: var(--color-ink); white-space: nowrap; } .sc-bar-track { height: 8px; border-radius: 999px; background: var(--color-paper-3); overflow: hidden; } .sc-bar-fill { height: 100%; border-radius: 999px; background: var(--sc-blocked); } .sc-stake .sc-bar-fill { background: var(--color-verb); } .sc-bar-code { font-family: var(--font-mono); font-size: 0.75rem; color: var(--color-muted); overflow-wrap: anywhere; } .sc-dom-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-3); } .sc-filters { display: flex; flex-wrap: wrap; gap: var(--space-2); } .sc-legend { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-5); font-size: var(--text-micro); color: var(--color-ink-2); } .sc-dot { display: inline-block; width: 0.65rem; height: 0.65rem; border-radius: 999px; margin-inline-end: 0.35rem; background: var(--color-real); } .sc-dot[data-kind="split"] { background: var(--color-noun); } .sc-dot[data-kind="blocked"] { background: var(--sc-blocked); } .sc-status { margin: 0; font-size: var(--text-micro); color: var(--color-muted); } .sc-stack { display: flex; height: 10px; min-width: 7rem; border-radius: 999px; overflow: hidden; background: var(--color-paper-3); } .sc-seg-direct { background: var(--color-real); } .sc-seg-split { background: var(--color-noun); } .sc-seg-blocked { background: var(--sc-blocked); } .sc-samples { list-style: none; padding: 0; margin: var(--space-3) 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); } .sc-sample { display: grid; gap: var(--space-2); align-content: start; min-width: 0; padding: var(--space-4) var(--space-5); border: 1px solid var(--color-rule-strong); border-radius: var(--radius-2); background: var(--color-paper-2); } .sc-verdict { display: inline-flex; justify-self: start; padding: 0.15rem 0.6rem; border-radius: 999px; font-size: var(--text-micro); font-weight: 600; background: var(--color-real-wash); color: var(--color-real); } .sc-verdict[data-kind="split"] { background: var(--color-noun-wash); color: var(--color-noun-ink); } .sc-verdict[data-kind="blocked"] { background: var(--sc-blocked-wash); color: var(--sc-blocked); } .sc-tuple { margin: 0; font-family: var(--font-mono); font-size: 0.75rem; color: var(--color-muted); overflow-wrap: anywhere; } .sc-sample p { margin: 0; font-size: var(--text-small); color: var(--color-ink-2); } .sc-foot { padding: var(--space-4) var(--space-5); border-radius: var(--radius-2); border: 1px solid var(--color-rule); background: var(--color-paper-2); display: grid; gap: var(--space-2); font-size: var(--text-small); color: var(--color-ink-2); } .sc-foot code { font-family: var(--font-mono); font-size: var(--text-micro); overflow-wrap: anywhere; } @media (max-width: 64rem) { .sc-tiles, .sc-why-grid, .sc-samples { grid-template-columns: minmax(0, 1fr); } } /* Trust pages (/security/ and /accessibility/) */ .trust-page { display: grid; gap: var(--space-5); padding-bottom: var(--space-9); max-width: 54rem; } .tp-blocks { display: grid; gap: var(--space-5); } .tp-block { padding: var(--space-5); border: 1px solid var(--color-rule-strong); border-radius: var(--radius-2); background: var(--color-paper-2); display: grid; gap: var(--space-3); } .tp-block h2 { font-size: var(--text-title); } .tp-block ul { margin: 0; padding-inline-start: 1.25rem; display: grid; gap: var(--space-2); font-size: var(--text-small); color: var(--color-ink-2); } .tp-block li { overflow-wrap: break-word; } .tp-foot { margin: 0; font-size: var(--text-micro); color: var(--color-muted); }