mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-11 21:57:14 +03:00
Field report: impeccable SaaS-ified a developer docs page; the Opus galleries showed the same on an album page. Root cause: two registers force every surface into persuade-or-operate grammar. The register section now names the visitor's mode first (Persuade / Operate / Read / Experience) with mode-borrowing called out as the canonical failure, and PRODUCT.md's register field maps as family (brand = Persuade + Experience, product = Operate + Read) for compatibility. Read mode: comprehension deliverable, navigable structure, chrome out of the way. Experience mode: the artifact leads at every screen size. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
649 lines
13 KiB
CSS
649 lines
13 KiB
CSS
.live-performance-page {
|
|
background: var(--ks-lacquer);
|
|
color: var(--ks-text);
|
|
}
|
|
|
|
.live-performance-main {
|
|
overflow: clip;
|
|
}
|
|
|
|
.live-lab-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: var(--spacing-md);
|
|
align-items: center;
|
|
min-height: 68px;
|
|
padding: 12px max(24px, calc((100vw - 1320px) / 2));
|
|
border-bottom: 1px solid var(--ks-rule);
|
|
background: var(--ks-lacquer-deep);
|
|
}
|
|
|
|
.live-lab-brand {
|
|
color: var(--ks-kinpaku);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.live-lab-brand .ks-mark {
|
|
width: 30px;
|
|
height: 30px;
|
|
}
|
|
|
|
.live-lab-brand .ks-mark svg {
|
|
width: 26px;
|
|
height: 26px;
|
|
}
|
|
|
|
.live-lab-brand .ks-wordmark {
|
|
font-size: var(--ks-type-wordmark-size);
|
|
letter-spacing: var(--ks-type-wordmark-track);
|
|
}
|
|
|
|
.live-lab-header > div {
|
|
display: grid;
|
|
gap: 2px;
|
|
text-align: right;
|
|
}
|
|
|
|
.live-lab-header strong {
|
|
color: var(--ks-champagne);
|
|
font-size: var(--ks-type-body-size);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.live-lab-header > div span {
|
|
color: var(--ks-text-faint);
|
|
font-family: var(--ks-mono);
|
|
font-size: var(--ks-type-eyebrow-size);
|
|
letter-spacing: var(--ks-type-eyebrow-track);
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.live-performance {
|
|
padding-bottom: clamp(80px, 10vw, 144px);
|
|
}
|
|
|
|
.live-performance-hero {
|
|
position: relative;
|
|
padding-top: clamp(96px, 13vw, 176px);
|
|
padding-bottom: clamp(72px, 10vw, 136px);
|
|
}
|
|
|
|
.live-performance-hero::after {
|
|
position: absolute;
|
|
right: max(24px, calc((100vw - 1320px) / 2));
|
|
bottom: 0;
|
|
left: max(24px, calc((100vw - 1320px) / 2));
|
|
height: 1px;
|
|
background: var(--ks-rule);
|
|
content: '';
|
|
}
|
|
|
|
.live-performance-kicker,
|
|
.live-performance-label {
|
|
margin: 0;
|
|
color: var(--ks-patina);
|
|
font-family: var(--ks-mono);
|
|
font-size: var(--ks-type-eyebrow-size);
|
|
font-weight: 500;
|
|
letter-spacing: var(--ks-type-eyebrow-track);
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.live-performance-hero h1 {
|
|
max-width: 1050px;
|
|
margin: 24px 0 0;
|
|
color: var(--ks-champagne);
|
|
font-family: var(--ks-font-display);
|
|
font-size: var(--ks-type-display-size);
|
|
font-weight: 100;
|
|
letter-spacing: -0.01em;
|
|
line-height: 0.88;
|
|
text-wrap: balance;
|
|
}
|
|
|
|
.live-performance-hero h1 span {
|
|
color: var(--ks-kinpaku);
|
|
}
|
|
|
|
.live-performance-lede {
|
|
max-width: 64ch;
|
|
margin: 38px 0 0;
|
|
color: var(--ks-text-muted);
|
|
font-size: clamp(1.05rem, 1.6vw, 1.35rem);
|
|
line-height: 1.65;
|
|
}
|
|
|
|
.live-performance-meta {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 10px 24px;
|
|
margin-top: 42px;
|
|
color: var(--ks-text-faint);
|
|
font-family: var(--ks-mono);
|
|
font-size: 0.75rem;
|
|
}
|
|
|
|
.live-performance-meta span:not(:last-child)::after {
|
|
margin-left: 24px;
|
|
color: var(--ks-kinpaku-deep);
|
|
content: '—';
|
|
}
|
|
|
|
.live-performance-section {
|
|
padding-top: clamp(72px, 9vw, 120px);
|
|
padding-bottom: clamp(72px, 9vw, 120px);
|
|
border-bottom: 1px solid var(--ks-rule);
|
|
}
|
|
|
|
.live-performance-section-head {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) minmax(240px, 440px);
|
|
gap: clamp(32px, 8vw, 120px);
|
|
align-items: end;
|
|
}
|
|
|
|
.live-performance-section-head h2,
|
|
.live-performance-method h2 {
|
|
max-width: 760px;
|
|
margin: 12px 0 0;
|
|
color: var(--ks-champagne);
|
|
font-family: var(--ks-font-display);
|
|
font-size: var(--ks-type-headline-size);
|
|
font-weight: var(--ks-type-headline-weight);
|
|
line-height: var(--ks-type-headline-line);
|
|
text-wrap: balance;
|
|
}
|
|
|
|
.live-performance-section-head > p {
|
|
margin: 0;
|
|
color: var(--ks-text-muted);
|
|
line-height: 1.65;
|
|
}
|
|
|
|
.latency-tape {
|
|
margin-top: clamp(48px, 7vw, 88px);
|
|
border-bottom: 1px solid var(--ks-rule);
|
|
}
|
|
|
|
.latency-tape svg {
|
|
display: block;
|
|
width: 100%;
|
|
height: auto;
|
|
overflow: visible;
|
|
}
|
|
|
|
.latency-axis,
|
|
.latency-ticks line {
|
|
stroke: var(--ks-rule);
|
|
stroke-width: 1;
|
|
}
|
|
|
|
.latency-segment.is-capture { fill: var(--ks-kinpaku); }
|
|
.latency-segment.is-pickup { fill: var(--ks-vermilion); }
|
|
.latency-segment.is-scaffold { fill: var(--ks-patina); }
|
|
.latency-segment.is-render { fill: var(--ks-graphite-2); }
|
|
|
|
.latency-major-label,
|
|
.latency-remainder-label,
|
|
.latency-axis-label {
|
|
fill: var(--ks-text-muted);
|
|
font-family: var(--ks-mono);
|
|
font-size: var(--ks-type-mono-size);
|
|
}
|
|
|
|
.latency-major-value {
|
|
fill: var(--ks-lacquer-deep);
|
|
font-family: var(--ks-font);
|
|
font-size: var(--ks-type-title-size);
|
|
font-weight: 700;
|
|
}
|
|
|
|
.latency-bracket {
|
|
fill: none;
|
|
stroke: var(--ks-patina);
|
|
stroke-width: 1;
|
|
}
|
|
|
|
.latency-stage-list {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
margin: 0;
|
|
padding: 0;
|
|
list-style: none;
|
|
}
|
|
|
|
.latency-stage-list li {
|
|
display: grid;
|
|
grid-template-columns: auto minmax(0, 1fr);
|
|
gap: 6px 12px;
|
|
min-width: 0;
|
|
padding: 20px 18px 22px 0;
|
|
border-right: 1px solid var(--ks-rule);
|
|
}
|
|
|
|
.latency-stage-list li:not(:first-child) { padding-left: 18px; }
|
|
.latency-stage-list li:last-child { border-right: 0; }
|
|
|
|
.latency-stage-list li > span {
|
|
grid-row: 1 / span 2;
|
|
color: var(--ks-code-cmd);
|
|
font-family: var(--ks-mono);
|
|
font-size: var(--ks-type-eyebrow-size);
|
|
}
|
|
|
|
.latency-stage-list strong {
|
|
color: var(--ks-champagne);
|
|
font-size: var(--ks-type-body-size);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.latency-stage-list em {
|
|
color: var(--ks-text-muted);
|
|
font-family: var(--ks-mono);
|
|
font-size: var(--ks-type-mono-size);
|
|
font-style: normal;
|
|
}
|
|
|
|
.live-performance-finding {
|
|
display: grid;
|
|
grid-template-columns: 140px minmax(0, 1fr);
|
|
gap: 24px;
|
|
margin-top: 48px;
|
|
padding: 22px 0;
|
|
border-top: 1px solid var(--ks-kinpaku-deep);
|
|
border-bottom: 1px solid var(--ks-kinpaku-deep);
|
|
}
|
|
|
|
.live-performance-finding strong {
|
|
color: var(--ks-code-cmd);
|
|
font-family: var(--ks-mono);
|
|
font-size: var(--ks-type-mono-size);
|
|
font-weight: 500;
|
|
letter-spacing: 0.12em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.live-performance-finding p {
|
|
max-width: 74ch;
|
|
margin: 0;
|
|
color: var(--ks-text);
|
|
line-height: 1.65;
|
|
}
|
|
|
|
.live-performance-finding.is-probe {
|
|
border-color: var(--ks-patina-deep);
|
|
}
|
|
|
|
.live-performance-finding.is-probe strong { color: var(--ks-patina); }
|
|
|
|
.scenario-comparison {
|
|
display: grid;
|
|
gap: 24px;
|
|
margin-top: clamp(48px, 7vw, 80px);
|
|
}
|
|
|
|
.scenario-row {
|
|
display: grid;
|
|
grid-template-columns: minmax(160px, 220px) minmax(0, 1fr) 86px;
|
|
gap: 24px;
|
|
align-items: center;
|
|
}
|
|
|
|
.scenario-label {
|
|
display: grid;
|
|
gap: 4px;
|
|
}
|
|
|
|
.scenario-label strong {
|
|
color: var(--ks-champagne);
|
|
font-size: var(--ks-type-body-size);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.scenario-label span,
|
|
.live-performance-caption {
|
|
color: var(--ks-text-faint);
|
|
font-size: var(--ks-type-mono-size);
|
|
}
|
|
|
|
.scenario-track {
|
|
height: 18px;
|
|
background: var(--ks-graphite);
|
|
}
|
|
|
|
.scenario-track span {
|
|
display: block;
|
|
width: var(--scenario-width);
|
|
height: 100%;
|
|
}
|
|
|
|
.scenario-track .is-plain { background: var(--ks-kinpaku); }
|
|
.scenario-track .is-annotated { background: var(--ks-patina); }
|
|
|
|
.scenario-row output {
|
|
color: var(--ks-champagne);
|
|
font-family: var(--ks-mono);
|
|
font-size: var(--ks-type-mono-size);
|
|
text-align: right;
|
|
}
|
|
|
|
.live-performance-caption {
|
|
margin: 24px 0 0;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.live-simulator {
|
|
margin-top: clamp(48px, 7vw, 80px);
|
|
padding: clamp(24px, 4vw, 48px);
|
|
background: var(--ks-lacquer-deep);
|
|
border: 1px solid var(--ks-rule);
|
|
}
|
|
|
|
.live-simulator > label {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 24px;
|
|
color: var(--ks-champagne);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.live-simulator > label output {
|
|
color: var(--ks-kinpaku);
|
|
font-family: var(--ks-mono);
|
|
}
|
|
|
|
.live-simulator input[type='range'] {
|
|
width: 100%;
|
|
margin: 30px 0 0;
|
|
accent-color: var(--ks-kinpaku);
|
|
}
|
|
|
|
.simulator-results {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
margin-top: 34px;
|
|
border-top: 1px solid var(--ks-rule);
|
|
}
|
|
|
|
.simulator-results > div {
|
|
display: grid;
|
|
gap: 8px;
|
|
padding: 28px 28px 0 0;
|
|
}
|
|
|
|
.simulator-results > div + div {
|
|
padding-left: 28px;
|
|
border-left: 1px solid var(--ks-rule);
|
|
}
|
|
|
|
.simulator-results span {
|
|
color: var(--ks-text-muted);
|
|
font-size: var(--ks-type-body-size);
|
|
}
|
|
|
|
.simulator-results strong {
|
|
color: var(--ks-champagne);
|
|
font-family: var(--ks-font-display);
|
|
font-size: var(--ks-type-display-size);
|
|
font-weight: 300;
|
|
line-height: 0.9;
|
|
}
|
|
|
|
.simulator-results small {
|
|
color: var(--ks-text-faint);
|
|
font-size: var(--ks-type-mono-size);
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.harness-table-wrap {
|
|
margin-top: clamp(48px, 7vw, 80px);
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.harness-table {
|
|
width: 100%;
|
|
min-width: 840px;
|
|
border-collapse: collapse;
|
|
}
|
|
|
|
.harness-table th {
|
|
padding: 0 18px 14px 0;
|
|
border-bottom: 1px solid var(--ks-kinpaku-deep);
|
|
color: var(--ks-text-faint);
|
|
font-family: var(--ks-mono);
|
|
font-size: var(--ks-type-eyebrow-size);
|
|
font-weight: 500;
|
|
letter-spacing: 0.12em;
|
|
text-align: left;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.harness-table td {
|
|
padding: 22px 18px 22px 0;
|
|
border-bottom: 1px solid var(--ks-rule);
|
|
color: var(--ks-text-muted);
|
|
font-size: var(--ks-type-body-size);
|
|
line-height: 1.55;
|
|
vertical-align: top;
|
|
}
|
|
|
|
.harness-table td:first-child {
|
|
width: 23%;
|
|
}
|
|
|
|
.harness-table td:nth-child(2) {
|
|
width: 20%;
|
|
color: var(--ks-text);
|
|
}
|
|
|
|
.harness-table td:last-child {
|
|
width: 150px;
|
|
}
|
|
|
|
.harness-table td strong,
|
|
.harness-table td span {
|
|
display: block;
|
|
}
|
|
|
|
.harness-table td strong {
|
|
color: var(--ks-champagne);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.harness-table td:first-child span {
|
|
margin-top: 5px;
|
|
color: var(--ks-text-faint);
|
|
font-size: var(--ks-type-mono-size);
|
|
}
|
|
|
|
.harness-table a {
|
|
color: var(--ks-patina);
|
|
}
|
|
|
|
.harness-table .ks-tag {
|
|
display: inline-flex;
|
|
width: fit-content;
|
|
color: var(--ks-text);
|
|
}
|
|
|
|
.experiment-list {
|
|
margin: clamp(48px, 7vw, 80px) 0 0;
|
|
padding: 0;
|
|
border-top: 1px solid var(--ks-kinpaku-deep);
|
|
list-style: none;
|
|
}
|
|
|
|
.experiment-list > li {
|
|
display: grid;
|
|
grid-template-columns: 72px minmax(0, 1fr);
|
|
border-bottom: 1px solid var(--ks-rule);
|
|
}
|
|
|
|
.experiment-rank {
|
|
padding-top: 27px;
|
|
color: var(--ks-code-cmd);
|
|
font-family: var(--ks-mono);
|
|
font-size: var(--ks-type-mono-size);
|
|
}
|
|
|
|
.experiment-body {
|
|
padding: 24px 0 28px;
|
|
}
|
|
|
|
.experiment-body header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 24px;
|
|
align-items: baseline;
|
|
}
|
|
|
|
.experiment-body h3 {
|
|
margin: 0;
|
|
color: var(--ks-champagne);
|
|
font-size: var(--ks-type-title-size);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.experiment-body header span {
|
|
color: var(--ks-patina);
|
|
font-family: var(--ks-mono);
|
|
font-size: var(--ks-type-eyebrow-size);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.experiment-body > p {
|
|
max-width: 80ch;
|
|
margin: 12px 0 0;
|
|
color: var(--ks-text);
|
|
line-height: 1.65;
|
|
}
|
|
|
|
.experiment-body dl {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 24px;
|
|
margin: 20px 0 0;
|
|
}
|
|
|
|
.experiment-body dl div {
|
|
display: grid;
|
|
grid-template-columns: 72px minmax(0, 1fr);
|
|
gap: 12px;
|
|
}
|
|
|
|
.experiment-body dt {
|
|
color: var(--ks-text-faint);
|
|
font-family: var(--ks-mono);
|
|
font-size: var(--ks-type-eyebrow-size);
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.experiment-body dd {
|
|
margin: 0;
|
|
color: var(--ks-text-muted);
|
|
font-size: var(--ks-type-body-size);
|
|
line-height: 1.55;
|
|
}
|
|
|
|
.live-performance-method {
|
|
display: grid;
|
|
grid-template-columns: minmax(220px, 0.7fr) minmax(0, 1.3fr);
|
|
gap: clamp(32px, 8vw, 120px);
|
|
padding-top: clamp(72px, 9vw, 120px);
|
|
}
|
|
|
|
.live-performance-method h2 {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.live-performance-method p {
|
|
max-width: 72ch;
|
|
margin: 0;
|
|
color: var(--ks-text-muted);
|
|
line-height: 1.75;
|
|
}
|
|
|
|
@media (max-width: 800px) {
|
|
.live-performance-section-head,
|
|
.live-performance-method {
|
|
grid-template-columns: 1fr;
|
|
gap: 24px;
|
|
}
|
|
|
|
.latency-stage-list {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.latency-stage-list li:nth-child(2) { border-right: 0; }
|
|
.latency-stage-list li:nth-child(n + 3) { border-top: 1px solid var(--ks-rule); }
|
|
.latency-stage-list li:nth-child(3) { padding-left: 0; }
|
|
|
|
.scenario-row {
|
|
grid-template-columns: minmax(130px, 180px) minmax(0, 1fr) 76px;
|
|
gap: 14px;
|
|
}
|
|
|
|
.experiment-body dl {
|
|
grid-template-columns: 1fr;
|
|
gap: 10px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 560px) {
|
|
.live-performance-hero h1 {
|
|
font-size: var(--ks-type-display-size);
|
|
}
|
|
|
|
.live-performance-meta span:not(:last-child)::after { display: none; }
|
|
|
|
.latency-tape {
|
|
margin-right: -12px;
|
|
margin-left: -12px;
|
|
}
|
|
|
|
.latency-stage-list {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.latency-stage-list li,
|
|
.latency-stage-list li:not(:first-child),
|
|
.latency-stage-list li:nth-child(3) {
|
|
padding: 16px 0;
|
|
border-top: 1px solid var(--ks-rule);
|
|
border-right: 0;
|
|
}
|
|
|
|
.scenario-row {
|
|
grid-template-columns: minmax(0, 1fr) 70px;
|
|
}
|
|
|
|
.scenario-label { grid-column: 1 / -1; }
|
|
|
|
.simulator-results {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.simulator-results > div + div {
|
|
margin-top: 24px;
|
|
padding: 24px 0 0;
|
|
border-top: 1px solid var(--ks-rule);
|
|
border-left: 0;
|
|
}
|
|
|
|
.experiment-list > li {
|
|
grid-template-columns: 46px minmax(0, 1fr);
|
|
}
|
|
|
|
.experiment-body header {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.live-performance-page * {
|
|
scroll-behavior: auto !important;
|
|
}
|
|
}
|