/* =========================================== LANDING PAGE =========================================== */ .landing-hero { max-width: 720px; width: 100%; text-align: center; } .landing-headline { font-family: var(--font-display); font-size: var(--text-head); margin-bottom: var(--gap-peer); } .landing-sub { font-size: var(--text-body); line-height: 1.6; opacity: 0.75; margin-bottom: 0; } .fork-revenue-line { font-size: var(--text-note); opacity: 0.8; margin: var(--gap-section) 0 var(--gap-peer); line-height: 1.5; } .fork-revenue-line a { border-bottom: 1px solid transparent; transition: border-color 0.2s ease; } .fork-revenue-line a:hover { border-bottom-color: currentColor; } .landing-fork { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap-section); margin-top: var(--gap-page); text-align: left; } .fork-heading { font-family: var(--font-mono); font-size: var(--text-note); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: var(--gap-section); } .fork-list { list-style: none; margin: 0; padding: 0; flex: 1; } .fork-list li { margin-bottom: var(--gap-group); font-size: var(--text-note); line-height: 1.5; } .fork-list strong { font-family: var(--font-mono); font-size: var(--text-fine); } .fork-actions { margin-top: auto; padding-top: var(--gap-section); display: flex; flex-direction: column; align-items: center; gap: var(--gap-peer); } .fork-actions .big-button { width: 100%; } .fork-secondary-link { font-family: var(--font-mono); font-size: var(--text-fine); opacity: 0.6; transition: opacity 0.2s ease; } .fork-secondary-link:hover { opacity: 1; } .fork-lede { font-size: var(--text-body); line-height: 1.55; margin: 0 0 var(--gap-section); } .landing-browse-cta { text-align: center; margin: var(--gap-section) 0 0; } .landing-mobile-note { text-align: center; margin: var(--gap-peer) 0 0; font-size: var(--text-fine); color: var(--content-muted); } .founder-tagline { font-family: var(--font-sans); font-size: var(--text-body); line-height: 1.55; margin: var(--gap-section) auto 0; max-width: 560px; color: var(--content); display: flex; flex-direction: column; align-items: center; gap: var(--gap-peer); } .landing-velocity { font-family: var(--font-mono); font-size: var(--text-fine); text-align: center; margin: var(--gap-section) auto 0; color: var(--content-muted); } .landing-velocity a { color: var(--content); text-decoration: none; border-bottom: 1px solid var(--border); } .landing-velocity a:hover { border-bottom-color: var(--content); } .founder-tagline-detail { display: block; } .founder-tagline-mark { font-family: var(--font-mono); font-size: var(--text-fine); font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--action); padding: var(--gap-bound) var(--gap-peer); border: 1px solid var(--action); border-radius: var(--radius-control); white-space: nowrap; } .fork-card--founder { border-color: var(--action); box-shadow: 0 0 0 1px var(--highlight-faint); } .founder-tier-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap-peer) var(--gap-section); margin-bottom: var(--gap-section); padding-bottom: var(--gap-section); border-bottom: 1px dashed var(--border); } .founder-tier { display: flex; flex-direction: column; gap: var(--gap-bound); } .founder-tier-name { font-family: var(--font-mono); font-size: var(--text-fine); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; opacity: 0.7; } .founder-tier-price { font-family: var(--font-display); font-size: var(--text-body); line-height: 1.1; } .founder-tier-price del { opacity: 0.4; margin-right: var(--gap-bound); font-weight: 400; } .founder-tier-price strong { color: var(--action); font-weight: 700; } .founder-tier-unit { font-family: var(--font-mono); font-size: var(--text-fine); opacity: 0.6; margin-left: var(--gap-bound); } .founder-slots { font-family: var(--font-mono); font-size: var(--text-fine); margin: 0 0 var(--gap-section); line-height: 1.3; } .founder-slots-number { font-family: var(--font-display); font-size: var(--text-head); color: var(--action); font-weight: 700; margin-right: var(--gap-bound); } .founder-slots-cap { opacity: 0.55; margin-left: var(--gap-bound); } .founder-slots--cap { opacity: 0.7; font-size: var(--text-fine); } .landing-stats-line { font-family: var(--font-mono); font-size: var(--text-note); opacity: 0.6; margin-top: var(--gap-page); } .landing-stats-line a { opacity: 0.8; transition: opacity 0.2s ease; } .landing-stats-line a:hover { opacity: 1; } .landing-principles { margin-top: var(--gap-page); width: 100%; } .landing-use-cases { margin-top: var(--gap-page); width: 100%; } .use-case-line { font-family: var(--font-mono); font-size: var(--text-note); opacity: 0.7; letter-spacing: 0.02em; } .landing-prose { font-size: var(--text-body); line-height: 1.7; margin-bottom: var(--gap-peer); } .notify-form { display: flex; gap: var(--gap-peer); max-width: 400px; margin: 0 auto; } .notify-input { flex: 1; padding: var(--gap-peer) var(--gap-section); border: 1px solid var(--border); border-radius: var(--radius-control); font-family: var(--font-sans); font-size: var(--text-note); background: var(--surface-page); color: var(--content); } .notify-status { font-family: var(--font-mono); font-size: var(--text-fine); text-align: center; margin-top: var(--gap-peer); min-height: 1.2em; } .notify-status.success { color: var(--content); } .notify-status.error { color: var(--danger); } .section-label { font-family: var(--font-mono); font-size: var(--text-note); letter-spacing: 0.05em; text-transform: uppercase; opacity: 0.6; margin-bottom: var(--gap-section); } .tier-section { margin: var(--gap-page) 0; width: 100%; } /* Marketing pricing variant of .card--bordered. */ .tier-name { font-family: var(--font-mono); font-size: var(--text-note); font-weight: 600; margin-bottom: var(--gap-bound); } .tier-price { font-family: var(--font-display); font-size: var(--text-lead); margin-bottom: var(--gap-bound); } .tier-desc { font-size: var(--text-note); opacity: 0.7; } .tier-card.planned { opacity: 0.5; border-style: dashed; position: relative; } .secondary-links { display: flex; gap: var(--gap-pane); justify-content: center; margin-top: var(--gap-section); } .secondary-links a { font-size: var(--text-note); opacity: 0.6; transition: opacity 0.2s ease; } .secondary-links a:hover { opacity: 1; } .section-link { display: block; margin-top: var(--gap-section); font-family: var(--font-mono); font-size: var(--text-fine); opacity: 0.55; transition: opacity 0.2s ease; } .section-link:hover { opacity: 1; } .how-list { list-style: none; margin: 0; padding: 0; text-align: left; } .how-list li { margin-bottom: var(--gap-group); font-size: var(--text-body); } .how-list strong { font-family: var(--font-mono); font-size: var(--text-note); } .do-rail { list-style: none; margin: var(--gap-page) 0 var(--gap-pane); padding: 0; display: grid; /* A do-card stops being readable under about 200px, which is a fact about the card. Three across is what that yields at full width. */ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--gap-section); width: 100%; } .do-card { background: transparent; border: 1px solid var(--border); padding: var(--gap-section); text-align: left; display: flex; flex-direction: column; } .do-card-title { font-family: var(--font-mono); font-size: var(--text-note); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; margin: 0 0 var(--gap-peer); } .do-card-lede { font-size: var(--text-note); line-height: 1.5; opacity: 0.78; margin: 0 0 var(--gap-section); } .do-card-links { list-style: none; margin: auto 0 0; padding: var(--gap-section) 0 0; border-top: 1px solid var(--border); display: flex; flex-wrap: wrap; gap: var(--gap-peer) var(--gap-section); } .do-card-links a { font-size: var(--text-note); border-bottom: 1px solid transparent; transition: border-color 0.2s ease; } .do-card-links a:hover { border-bottom-color: currentColor; } .do-card--wide { margin-top: var(--gap-page); width: 100%; } .contrast-rail { list-style: none; margin: var(--gap-section) 0 0; padding: 0; display: grid; /* Title plus a short link list, so it holds up narrower than a do-card. Four across at full width. */ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--gap-section); width: 100%; } .contrast-card { border-top: 1px solid var(--border); padding: var(--gap-section) var(--gap-bound) 0; text-align: left; } .contrast-card-title { font-family: var(--font-mono); font-size: var(--text-fine); letter-spacing: 0.04em; text-transform: uppercase; opacity: 0.5; text-decoration: line-through; text-decoration-thickness: 1px; margin: 0 0 var(--gap-peer); font-weight: 600; } .contrast-card-links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--gap-peer) var(--gap-section); } .contrast-card-links a { font-size: var(--text-note); border-bottom: 1px solid transparent; transition: border-color 0.2s ease; } .contrast-card-links a:hover { border-bottom-color: currentColor; } /* =========================================== PRICING CALCULATOR =========================================== */ /* The calculator itself is a described screen since `1e35bc8a` (`crate::quasi::pricing`), so it is drawn in makeover's own classes and every rule this section held for it went with `pages/pricing.html`: the dials, the tier cards, the list/founder toggle, the verdict, the results table and the hand-drawn crossover bar. What is left is the one rule another template still matches. */ .pricing-currency { font-family: var(--font-display); font-size: var(--text-display); opacity: 0.5; } /* =========================================== DOCUMENTATION PAGES =========================================== */ /* .doc-container takes the shared reading column near the top of this file. */ .doc-breadcrumb { font-family: var(--font-mono); font-size: var(--text-note); margin-bottom: var(--gap-page); } .doc-breadcrumb a { color: var(--content); text-decoration: none; } .doc-breadcrumb a:hover { text-decoration: underline; } .doc-title { font-family: var(--font-display); font-size: var(--text-display); font-weight: normal; line-height: 1.2; margin-bottom: var(--gap-pane); color: var(--content); text-align: left; } .doc-body { font-family: var(--font-sans); font-size: var(--text-lead); line-height: 1.9; } .doc-body p { margin-bottom: var(--gap-pane); } .doc-body h1 { font-family: var(--font-display); font-size: var(--text-title); font-weight: normal; margin-top: var(--gap-page); margin-bottom: var(--gap-section); color: var(--content); text-align: left; } .doc-body h2 { font-family: var(--font-mono); font-size: var(--text-head); font-weight: normal; margin-top: var(--gap-page); margin-bottom: var(--gap-section); color: var(--content); } .doc-body h3 { font-family: var(--font-mono); font-size: var(--text-subhead); font-weight: normal; margin-top: var(--gap-page); margin-bottom: var(--gap-section); color: var(--content); } .doc-body blockquote { border-left: 3px solid var(--action); padding-left: var(--gap-pane); margin: var(--gap-page) 0; font-style: italic; color: var(--content-muted); } .doc-body ul, .doc-body ol { margin-bottom: var(--gap-pane); padding-left: var(--gap-pane); } .doc-body li { margin-bottom: var(--gap-peer); } .doc-body a { color: var(--action); text-decoration: underline; text-decoration-color: color-mix(in oklch, var(--action) 40%, transparent); text-underline-offset: 2px; } .doc-body a:hover { text-decoration-color: var(--action); } .doc-body strong { font-weight: bold; } .doc-body em { font-style: italic; } .doc-body code { font-family: var(--font-mono); background: var(--surface-sunken); padding: var(--gap-bound) var(--gap-peer); font-size: var(--text-body); } .doc-body pre { background: var(--surface-sunken); padding: var(--gap-section); overflow-x: auto; margin-bottom: var(--gap-pane); } .doc-body pre code { background: none; padding: 0; } .doc-body hr { border: none; text-align: center; margin: var(--gap-page) 0; } .doc-body hr::before { content: "* * *"; color: var(--content-muted); letter-spacing: 1rem; } .doc-body table { width: 100%; border-collapse: collapse; margin-bottom: var(--gap-pane); } .doc-body th, .doc-body td { padding: var(--gap-section); text-align: left; border-bottom: 1px solid var(--border); } .doc-body th { font-family: var(--font-mono); font-weight: 600; } .doc-backlinks { margin-top: var(--gap-page); padding-top: var(--gap-pane); border-top: 1px solid var(--border); } .doc-backlinks-title { font-family: var(--font-mono); font-size: var(--text-note); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--content-muted); margin-bottom: var(--gap-section); } .doc-backlinks-list { list-style: none; margin: 0; padding: 0; } .doc-backlinks-list li { margin-bottom: var(--gap-peer); } .doc-backlinks-list a { color: var(--content); text-decoration: none; } .doc-backlinks-list a:hover { text-decoration: underline; } /* Docs index page */ /* .docs-index takes the shared reading column near the top of this file. */ .docs-index-title { font-family: var(--font-display); font-size: var(--text-display); font-weight: normal; line-height: 1.2; margin-bottom: var(--gap-page); color: var(--content); } .docs-section { margin-bottom: var(--gap-page); } .docs-section h2 { font-family: var(--font-mono); font-size: var(--text-subhead); font-weight: normal; color: var(--content-muted); margin-bottom: var(--gap-section); } .docs-section ul { list-style: none; padding: 0; margin: 0; } .docs-section li { margin-bottom: var(--gap-peer); } .docs-section a { font-family: var(--font-sans); font-size: var(--text-lead); color: var(--content); text-decoration: none; } .docs-section a:hover { color: var(--action); text-decoration: underline; } .docs-section details { margin-bottom: var(--gap-section); } .docs-section summary { font-family: var(--font-mono); font-size: var(--text-body); color: var(--content-muted); cursor: pointer; padding: var(--gap-bound) 0; list-style: disclosure-closed; } .docs-section details[open] > summary { list-style: disclosure-open; margin-bottom: var(--gap-bound); } .docs-section summary:hover { color: var(--content); } .docs-section details ul { padding-left: var(--gap-section); } /* Docs search */ .docs-search-container { position: relative; margin-bottom: var(--gap-page); } .docs-search-inline { display: inline-block; margin-bottom: 0; margin-left: auto; float: right; } .docs-search-input { width: 100%; max-width: 320px; padding: var(--gap-peer) var(--gap-section); font-family: var(--font-sans); font-size: var(--text-body); background: var(--surface-sunken); border: 1px solid var(--border); color: var(--content); } .docs-search-input:focus { outline: 2px solid var(--action); border-color: var(--action); } .docs-search-input::placeholder { opacity: 0.5; } .docs-search-results { position: absolute; top: 100%; left: 0; right: 0; max-width: 320px; background: var(--surface-page); border: 1px solid var(--border); border-top: none; max-height: 300px; overflow-y: auto; z-index: var(--z-dropdown); box-shadow: var(--elevation-overlay); } .docs-search-result { display: flex; justify-content: space-between; align-items: baseline; padding: var(--gap-peer) var(--gap-section); text-decoration: none; color: var(--content); font-size: var(--text-note); border-bottom: 1px solid var(--border); } .docs-search-result:last-child { border-bottom: none; } .docs-search-result:hover { background: var(--surface-sunken); } .docs-search-result-title { font-family: var(--font-sans); } .docs-search-result-section { font-family: var(--font-mono); font-size: var(--text-fine); opacity: 0.5; }.alert .alert-title { font-family: var(--font-mono); font-size: var(--text-note); font-weight: bold; text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: var(--gap-bound); } .alert p:last-child { margin-bottom: 0; } .alert-note { border-left-color: var(--focus-ring); } .alert-note .alert-title { color: var(--focus-ring); } .alert-tip { border-left-color: var(--success); } .alert-tip .alert-title { color: var(--success); } .alert-important { border-left-color: var(--action); } .alert-important .alert-title { color: var(--action); } .alert-warning { border-left-color: var(--warning); } .alert-warning .alert-title { color: var(--warning); } .alert-caution { border-left-color: var(--danger); } .alert-caution .alert-title { color: var(--danger); } /* =========================================== USE CASES PAGE =========================================== */ /* The use-cases page moved to the description layer; what the template's own classes said is drawn by the design system now. What is left is the measure, which a described document carries on
rather than on a container div, the same shape as `.team-page main` and `.feed-page main`. The grid went with it deliberately: nine equal cards are nine sibling groups in the description, and how they sit is the design system's answer for every consumer rather than a `grid-template-columns` here. */ .use-cases-page main { max-width: 900px; margin: 0 auto; }