Files
voice-duplex/styles.css
T

1629 lines
27 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
:root {
color-scheme: light;
--paper: #f7f6f2;
--surface: #fffefa;
--ink: #202922;
--muted: #72766d;
--line: #d9ddd2;
--blue: #3167c6;
--blue-soft: #e5edf9;
--green: #287557;
--green-soft: #e3eee5;
--amber: #b97625;
--amber-soft: #f8ead3;
--code: #eff0e9;
--header: rgba(247, 246, 242, 0.94);
}
html[data-theme="dark"] {
color-scheme: dark;
--paper: #171c19;
--surface: #202722;
--ink: #e1e7dd;
--muted: #a5afa1;
--line: #3c483d;
--blue: #8bb2f5;
--blue-soft: #263b55;
--green: #8bc5a0;
--green-soft: #294235;
--amber: #e4b16c;
--amber-soft: #493a25;
--code: #2a322b;
--header: rgba(23, 28, 25, 0.94);
}
* {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
scroll-padding-top: 104px;
}
body {
margin: 0;
background: var(--paper);
color: var(--ink);
font-family:
-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
"Microsoft YaHei", sans-serif;
font-size: 16px;
line-height: 1.85;
-webkit-font-smoothing: antialiased;
}
a {
color: inherit;
text-decoration: none;
}
a:hover {
color: var(--green);
}
button,
input {
font: inherit;
}
button {
cursor: pointer;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
summary:focus-visible {
outline: 3px solid var(--blue);
outline-offset: 4px;
}
button {
color: var(--ink);
}
h1,
h2,
h3,
p {
margin: 0;
}
h1,
h2,
h3 {
font-weight: 600;
}
p + p {
margin-top: 17px;
}
strong {
font-weight: 600;
}
::selection {
background: var(--green-soft);
}
.skip-link {
position: absolute;
top: -90px;
left: 20px;
padding: 8px 16px;
background: var(--ink);
color: var(--paper);
z-index: 10;
}
.skip-link:focus {
top: 12px;
}
.site-header {
height: 85px;
position: sticky;
top: 0;
z-index: 5;
background: var(--header);
backdrop-filter: blur(14px);
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid var(--line);
padding: 0 5vw;
}
.brand {
display: flex;
align-items: center;
gap: 14px;
font-size: 12px;
letter-spacing: 1.8px;
}
.brand-mark {
font-family: Georgia, serif;
font-size: 37px;
line-height: 1;
letter-spacing: -4px;
margin-right: 3px;
}
.brand b {
font-weight: 500;
color: var(--muted);
margin-left: 8px;
}
.site-header nav {
display: flex;
align-items: center;
gap: 27px;
font-size: 13px;
}
.icon-button {
background: none;
border: 1px solid var(--line);
border-radius: 50%;
width: 36px;
height: 36px;
padding: 0;
font-size: 20px;
line-height: 1;
}
.page-layout {
max-width: 1370px;
margin: 0 auto;
display: grid;
grid-template-columns: 190px minmax(0, 1fr);
gap: 70px;
padding: 0 48px;
}
.contents {
padding-top: 66px;
position: sticky;
top: 85px;
align-self: start;
height: calc(100vh - 85px);
max-height: 790px;
}
.eyebrow {
font-size: 10px;
letter-spacing: 1.7px;
font-weight: 600;
color: var(--muted);
}
.contents nav {
display: flex;
flex-direction: column;
margin-top: 30px;
gap: 13px;
font-size: 12px;
}
.contents nav a {
color: var(--muted);
position: relative;
padding-left: 11px;
border-left: 2px solid transparent;
transition: color 0.15s;
}
.contents nav a.active {
color: var(--ink);
border-color: var(--green);
}
.contents-note {
border-top: 1px solid var(--line);
margin-top: 32px;
padding: 22px 0 0 13px;
font-size: 11px;
color: var(--muted);
line-height: 1.8;
}
.contents-note strong {
font-size: 12px;
letter-spacing: 1px;
color: var(--ink);
}
.contents-note span:last-child {
display: block;
margin-top: 10px;
}
.status-dot {
display: inline-block;
width: 5px;
height: 5px;
border-radius: 50%;
background: var(--green);
margin-right: 6px;
}
.hero {
padding-top: 60px;
}
.hero h1 {
font-size: clamp(38px, 4.1vw, 59px);
line-height: 1.25;
letter-spacing: -1.8px;
margin: 19px 0 21px;
font-weight: 600;
}
.hero-deck {
font-size: 17px;
line-height: 1.85;
color: var(--muted);
}
.hero-meta {
display: flex;
flex-wrap: wrap;
gap: 8px 20px;
margin: 25px 0 36px;
font-size: 11px;
color: var(--muted);
}
.hero-meta > a {
color: var(--green);
}
.hero-visual {
border-top: 1px solid var(--line);
border-bottom: 1px solid var(--line);
padding: 19px 0 14px;
margin-bottom: 35px;
}
.hero-axis {
display: flex;
justify-content: space-between;
margin: 0 100px 19px 70px;
font-size: 10px;
color: var(--muted);
}
.signal-row {
display: grid;
grid-template-columns: 54px 1fr 66px;
gap: 14px;
align-items: center;
font-size: 11px;
margin: 10px 0;
}
.signal-label {
font-size: 10px;
color: var(--muted);
}
.signal {
height: 28px;
background-size: 8px 100%;
border-radius: 3px;
position: relative;
}
.input-signal {
background-color: var(--blue-soft);
background-image: repeating-linear-gradient(
90deg,
transparent 0 2px,
var(--blue) 2px 4px,
transparent 4px 8px
);
clip-path: polygon(
0 25%,
2% 15%,
4% 40%,
6% 8%,
8% 38%,
10% 23%,
12% 43%,
14% 16%,
16% 40%,
18% 5%,
20% 28%,
22% 10%,
24% 42%,
26% 20%,
28% 43%,
30% 18%,
32% 31%,
34% 10%,
36% 43%,
38% 18%,
40% 42%,
42% 3%,
44% 27%,
46% 7%,
48% 41%,
50% 17%,
52% 32%,
54% 7%,
56% 40%,
58% 20%,
60% 40%,
62% 8%,
64% 35%,
66% 18%,
68% 40%,
70% 9%,
72% 35%,
74% 18%,
76% 34%,
78% 9%,
80% 43%,
82% 22%,
84% 44%,
86% 8%,
88% 33%,
90% 18%,
92% 41%,
94% 5%,
96% 35%,
98% 21%,
100% 38%,
100% 65%,
98% 78%,
96% 65%,
94% 95%,
92% 59%,
90% 82%,
88% 67%,
86% 92%,
84% 56%,
82% 78%,
80% 57%,
78% 91%,
76% 66%,
74% 82%,
72% 65%,
70% 91%,
68% 60%,
66% 82%,
64% 65%,
62% 92%,
60% 60%,
58% 80%,
56% 60%,
54% 93%,
52% 68%,
50% 83%,
48% 59%,
46% 93%,
44% 73%,
42% 97%,
40% 58%,
38% 82%,
36% 57%,
34% 90%,
32% 69%,
30% 82%,
28% 57%,
26% 80%,
24% 58%,
22% 90%,
20% 72%,
18% 95%,
16% 60%,
14% 84%,
12% 57%,
10% 77%,
8% 62%,
6% 92%,
4% 60%,
2% 85%,
0 75%
);
}
.output-signal {
background-image: repeating-linear-gradient(
90deg,
var(--green) 0 3px,
transparent 3px 7px
);
height: 23px;
opacity: 0.88;
mask-image: linear-gradient(
90deg,
transparent 0 14%,
black 14% 25%,
transparent 25% 50%,
black 50% 80%,
transparent 80% 85%,
black 85%
);
}
.task-signal {
display: flex;
margin-left: 30%;
gap: 0;
font-size: 10px;
height: 26px;
}
.task-signal i {
font-style: normal;
background: var(--code);
border: 1px dashed var(--muted);
padding: 0 35px;
white-space: nowrap;
}
.task-signal b {
font-weight: 500;
background: var(--green-soft);
padding: 0 12px;
white-space: nowrap;
}
.visual-caption {
font-size: 10px;
color: var(--muted);
margin: 18px 0 0 68px;
}
.lead {
font-size: 19px;
line-height: 1.9;
margin-bottom: 18px;
}
.article-section {
border-top: 1px solid var(--line);
margin-top: 62px;
padding-top: 38px;
scroll-margin-top: 108px;
}
.section-number {
color: var(--green);
font-size: 10px;
letter-spacing: 1.8px;
margin-bottom: 12px;
font-weight: 600;
}
h2 {
font-size: 28px;
line-height: 1.5;
letter-spacing: -0.4px;
margin-bottom: 23px;
}
h3 {
font-size: 18px;
line-height: 1.6;
margin: 29px 0 12px;
}
main p {
font-size: 15px;
line-height: 1.95;
}
.citation {
font-size: 11px;
color: var(--green);
white-space: nowrap;
margin-left: 5px;
}
.terminology {
color: var(--muted);
}
main .terminology {
font-size: 12px;
}
.interactive-figure {
margin: 27px 0 25px;
background: var(--surface);
border: 1px solid var(--line);
padding: 25px 28px;
border-radius: 6px;
}
.figure-heading {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 15px;
}
.figure-label {
font-size: 10px;
letter-spacing: 1px;
color: var(--muted);
}
.figure-heading h3 {
font-size: 20px;
margin: 4px 0 20px;
}
.evidence-tag {
border: 1px solid var(--line);
font-size: 10px;
line-height: 1.5;
padding: 4px 7px;
white-space: nowrap;
border-radius: 3px;
}
.simulated {
background: var(--amber-soft);
color: var(--amber);
border-color: transparent;
}
.reported {
background: var(--blue-soft);
color: var(--blue);
border-color: transparent;
}
.inference {
background: var(--code);
color: var(--muted);
border-color: transparent;
}
.segmented {
display: inline-flex;
flex-wrap: wrap;
border: 1px solid var(--line);
border-radius: 4px;
overflow: hidden;
margin-bottom: 28px;
}
.segmented button {
border: 0;
background: transparent;
padding: 7px 20px;
font-size: 12px;
}
.segmented button[aria-pressed="true"] {
background: var(--ink);
color: var(--paper);
}
.architecture-flow {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
min-height: 88px;
}
.flow-node {
padding: 11px 9px;
border: 1px solid var(--line);
border-radius: 4px;
text-align: center;
flex: 1;
min-width: 0;
}
.flow-node strong {
display: block;
font-size: 12px;
}
.flow-node small {
font-size: 10px;
color: var(--muted);
display: block;
margin-top: 3px;
}
.flow-node.input {
background: var(--blue-soft);
border-color: transparent;
}
.flow-node.output {
background: var(--green-soft);
border-color: transparent;
}
.flow-arrow {
font-size: 17px;
color: var(--muted);
}
.architecture-detail {
border-top: 1px solid var(--line);
margin-top: 24px;
padding-top: 18px;
min-height: 105px;
}
.architecture-detail p {
font-size: 13px;
}
.architecture-detail strong {
color: var(--green);
}
.three-concepts {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
margin: 30px 0;
}
.three-concepts h3 {
margin: 0 0 8px;
font-size: 15px;
}
.three-concepts p {
font-size: 12px;
line-height: 1.8;
color: var(--muted);
}
.table-wrap {
overflow-x: auto;
margin: 24px 0 22px;
border-top: 1px solid var(--line);
border-bottom: 1px solid var(--line);
-webkit-overflow-scrolling: touch;
}
.table-wrap table {
border-collapse: collapse;
width: 100%;
font-size: 12px;
line-height: 1.85;
min-width: 580px;
}
.table-wrap th,
.table-wrap td {
text-align: left;
vertical-align: top;
padding: 13px 12px;
border-bottom: 1px solid var(--line);
}
.table-wrap th:first-child,
.table-wrap td:first-child {
padding-left: 0;
}
.table-wrap th:last-child,
.table-wrap td:last-child {
padding-right: 0;
}
.table-wrap th {
font-weight: 600;
}
.table-wrap thead th {
color: var(--muted);
font-size: 11px;
white-space: nowrap;
}
.table-wrap tbody tr:last-child > * {
border-bottom: 0;
}
.table-wrap tbody th {
width: 18%;
min-width: 85px;
}
.table-wrap a {
color: var(--green);
white-space: nowrap;
font-size: 11px;
}
.table-wrap caption {
text-align: left;
color: var(--muted);
font-size: 11px;
padding: 12px 0;
}
.reading-note {
border-left: 2px solid var(--green);
padding: 10px 0 10px 18px;
color: var(--muted);
}
main .reading-note {
font-size: 13px;
}
.time-vocabulary {
display: grid;
grid-template-columns: repeat(4, 1fr);
margin: 28px 0;
gap: 18px;
}
.time-vocabulary > div {
border-top: 2px solid var(--line);
padding-top: 12px;
}
.time-vocabulary span {
font-size: 13px;
font-weight: 600;
}
.time-vocabulary p {
font-size: 11px;
color: var(--muted);
line-height: 1.8;
margin-top: 7px;
}
.figure-intro {
color: var(--muted);
}
main .figure-intro {
font-size: 11px;
line-height: 1.85;
}
.lab-controls {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 30px;
margin: 23px 0 13px;
}
.lab-controls label {
font-size: 12px;
font-weight: 500;
}
.lab-controls output {
float: right;
font-variant-numeric: tabular-nums;
font-weight: 600;
color: var(--green);
}
input[type="range"] {
display: block;
width: 100%;
margin: 13px 0;
accent-color: var(--green);
}
.lab-presets {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.lab-presets button {
background: transparent;
border: 1px solid var(--line);
font-size: 10px;
padding: 4px 10px;
border-radius: 3px;
}
.lab-presets button:hover {
background: var(--code);
}
.lab-stats {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 12px;
margin: 25px 0;
}
.lab-stats > div {
border-top: 1px solid var(--line);
padding-top: 11px;
}
.lab-stats span {
display: block;
font-size: 10px;
color: var(--muted);
}
.lab-stats strong {
display: block;
font-size: 23px;
font-weight: 500;
font-variant-numeric: tabular-nums;
line-height: 1.6;
margin-top: 3px;
}
.lab-stats .overloaded {
color: var(--amber);
}
.queue-chart {
height: 246px;
width: 100%;
position: relative;
padding: 25px 0 10px;
}
.queue-row {
position: relative;
height: 24px;
margin-left: 45px;
border-bottom: 1px solid var(--line);
}
.queue-label {
position: absolute;
right: calc(100% + 10px);
font-size: 9px;
color: var(--muted);
top: 1px;
white-space: nowrap;
}
.queue-arrival {
position: absolute;
width: 5px;
height: 13px;
top: 4px;
background: var(--blue);
transform: translateX(-2px);
z-index: 2;
}
.queue-compute,
.queue-wait {
height: 10px;
top: 5px;
position: absolute;
border-radius: 2px;
}
.queue-compute {
background: var(--green);
opacity: 0.82;
}
.queue-wait {
background: var(--amber);
opacity: 0.5;
}
.queue-ticks {
position: absolute;
left: 45px;
right: 0;
top: 0;
display: flex;
justify-content: space-between;
font-size: 9px;
color: var(--muted);
font-variant-numeric: tabular-nums;
}
.chart-legend {
display: flex;
flex-wrap: wrap;
gap: 18px;
color: var(--muted);
font-size: 10px;
margin: 10px 0 17px;
}
.chart-legend span {
display: flex;
align-items: center;
gap: 6px;
}
.chart-legend i {
width: 14px;
height: 6px;
display: inline-block;
border-radius: 1px;
}
.legend-input {
background: var(--blue);
}
.legend-compute {
background: var(--green);
}
.legend-wait {
background: var(--amber);
opacity: 0.55;
}
main .selected-detail {
font-size: 12px;
min-height: 46px;
}
main .formula {
font-family: Georgia, serif;
font-size: 16px;
line-height: 1.7;
color: var(--muted);
margin-top: 10px;
}
.source-line {
color: var(--muted);
}
main .source-line {
font-size: 11px;
}
.source-line a {
color: var(--green);
}
.latency-path {
display: flex;
align-items: center;
gap: 9px;
margin: 23px 0 20px;
}
.latency-path span {
background: var(--code);
padding: 10px 12px;
font-size: 11px;
flex: 1;
text-align: center;
min-height: 60px;
display: flex;
align-items: center;
justify-content: center;
}
.latency-path b {
font-weight: 400;
color: var(--muted);
}
.benchmark-chart {
margin: 9px 0 22px;
}
.benchmark-row {
display: grid;
grid-template-columns: 120px 1fr;
gap: 15px;
align-items: center;
margin: 15px 0;
}
.benchmark-label {
font-size: 11px;
}
.benchmark-tracks {
position: relative;
height: 48px;
padding-right: 45px;
}
.benchmark-bar {
height: 11px;
position: relative;
min-width: 2px;
border-radius: 2px;
margin: 7px 0;
}
.benchmark-bar.first {
background: var(--blue);
}
.benchmark-bar.answer {
background: var(--green);
}
.benchmark-value {
position: absolute;
left: calc(100% + 7px);
font-size: 9px;
white-space: nowrap;
line-height: 1;
top: 1px;
font-variant-numeric: tabular-nums;
}
.benchmark-axis {
display: flex;
margin-left: 135px;
margin-right: 45px;
justify-content: space-between;
font-size: 9px;
color: var(--muted);
}
.benchmark-table td {
white-space: nowrap;
font-variant-numeric: tabular-nums;
}
.argument-chain {
display: flex;
gap: 20px;
margin: 28px 0;
}
.argument-chain > div {
flex: 1;
padding: 12px 0;
border-top: 1px solid var(--green);
}
.argument-chain span {
font-size: 10px;
color: var(--green);
display: block;
}
.argument-chain strong {
font-size: 12px;
font-weight: 500;
line-height: 1.8;
display: block;
margin-top: 8px;
}
.design-routes {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 26px 30px;
margin: 27px 0;
}
.design-routes > div {
border-top: 1px solid var(--line);
padding-top: 13px;
}
.design-routes span {
font-size: 10px;
color: var(--green);
}
.design-routes h3 {
font-size: 17px;
margin: 7px 0 10px;
}
.design-routes p {
font-size: 12px;
color: var(--muted);
}
.training-steps {
list-style: none;
padding: 0;
margin: 30px 0;
}
.training-steps li {
display: flex;
gap: 23px;
padding: 19px 0;
border-top: 1px solid var(--line);
}
.training-steps li > span {
font-family: Georgia, serif;
color: var(--green);
font-size: 22px;
min-width: 32px;
}
.training-steps h3 {
font-size: 16px;
margin: 0 0 8px;
}
.training-steps p {
font-size: 13px;
}
.evaluation-equation {
margin: 25px 0;
padding: 21px 0;
border-top: 1px solid var(--green);
border-bottom: 1px solid var(--line);
}
.evaluation-equation span {
display: block;
color: var(--muted);
font-size: 11px;
margin: 0 0 6px;
}
.evaluation-equation strong {
font-size: 16px;
font-weight: 500;
display: block;
}
.evaluation-equation strong + span {
margin-top: 18px;
}
.checklist {
padding-left: 20px;
margin: 20px 0;
font-size: 14px;
}
.checklist li {
padding: 5px 0 5px 6px;
}
.checklist li::marker {
color: var(--green);
}
.scenario-list {
margin: 23px 0;
}
.scenario-list details {
border-top: 1px solid var(--line);
padding: 15px 0;
}
.scenario-list details:last-child {
border-bottom: 1px solid var(--line);
}
.scenario-list summary {
cursor: pointer;
font-size: 14px;
font-weight: 500;
list-style: none;
position: relative;
padding-right: 25px;
}
.scenario-list summary::-webkit-details-marker {
display: none;
}
.scenario-list summary::after {
content: "+";
position: absolute;
right: 3px;
color: var(--muted);
}
.scenario-list details[open] summary::after {
content: "−";
}
.scenario-list summary span {
font-size: 10px;
color: var(--green);
margin-right: 20px;
font-variant-numeric: tabular-nums;
}
.scenario-list p {
margin: 10px 30px 0 36px;
font-size: 13px;
color: var(--muted);
}
.claim-template {
background: var(--green-soft);
margin-top: 25px;
padding: 20px 23px;
}
.claim-template p {
font-size: 14px;
margin-top: 10px;
}
.source-list {
padding-left: 25px;
margin: 28px 0 0;
}
.source-list li {
padding: 12px 0 12px 7px;
border-top: 1px solid var(--line);
scroll-margin-top: 110px;
}
.source-list li::marker {
font-size: 10px;
color: var(--green);
}
.source-list a {
font-size: 13px;
font-weight: 500;
}
.source-list span {
display: block;
color: var(--muted);
font-size: 11px;
margin-top: 4px;
line-height: 1.8;
}
.article-footer {
margin: 60px 0 0;
padding: 26px 0 34px;
border-top: 1px solid var(--line);
font-size: 10px;
color: var(--muted);
display: flex;
gap: 15px;
justify-content: space-between;
flex-wrap: wrap;
}
.article-footer > div {
display: flex;
gap: 20px;
}
.article-footer small {
font-size: 9px;
flex-basis: 100%;
letter-spacing: 0.4px;
}
@media (min-width: 1400px) {
.page-layout {
gap: 85px;
grid-template-columns: 190px minmax(0, 910px);
}
}
@media (max-width: 1050px) {
.page-layout {
grid-template-columns: 155px minmax(0, 1fr);
gap: 32px;
padding: 0 30px;
}
.contents nav {
font-size: 11px;
}
.interactive-figure {
padding: 22px;
}
.flow-node small {
font-size: 9px;
}
.flow-node strong {
font-size: 11px;
}
.hero h1 {
font-size: 46px;
}
.time-vocabulary {
gap: 12px;
}
.figure-heading h3 {
font-size: 18px;
}
}
@media (max-width: 780px) {
.site-header {
height: 68px;
padding: 0 23px;
}
.site-header nav {
gap: 18px;
}
.site-header nav > a:first-child {
display: none;
}
.brand {
font-size: 10px;
gap: 9px;
}
.brand b {
margin-left: 3px;
}
.brand-mark {
font-size: 32px;
}
.page-layout {
display: block;
padding: 0 24px;
}
.contents {
position: static;
height: auto;
max-height: none;
padding-top: 22px;
}
.contents > .eyebrow,
.contents-note {
display: none;
}
.contents nav {
margin: 0;
flex-direction: row;
flex-wrap: wrap;
gap: 4px 16px;
padding-bottom: 16px;
border-bottom: 1px solid var(--line);
}
.contents nav a {
border-left: 0;
padding: 3px 0;
font-size: 10px;
}
.contents nav a:nth-child(n + 5) {
display: none;
}
.hero {
padding-top: 35px;
}
.hero h1 {
font-size: 42px;
letter-spacing: -1.3px;
}
.hero-deck {
font-size: 15px;
}
.hero-meta {
margin-top: 21px;
font-size: 10px;
}
.article-section {
margin-top: 48px;
padding-top: 29px;
scroll-margin-top: 90px;
}
h2 {
font-size: 25px;
}
.interactive-figure {
padding: 21px;
}
.hero-axis {
margin-right: 70px;
}
.signal-row {
grid-template-columns: 35px 1fr 52px;
gap: 8px;
}
.signal-label {
font-size: 9px;
}
.visual-caption {
margin-left: 43px;
}
.task-signal {
margin-left: 20%;
}
.task-signal i {
padding: 0 18px;
}
.architecture-flow {
gap: 5px;
}
.flow-node {
padding: 10px 5px;
}
.flow-node strong {
font-size: 10px;
}
.flow-node small {
font-size: 9px;
}
.flow-arrow {
font-size: 13px;
}
.argument-chain {
gap: 14px;
}
.design-routes {
gap: 23px;
}
.benchmark-row {
grid-template-columns: 105px 1fr;
gap: 10px;
}
.benchmark-label {
font-size: 10px;
}
.benchmark-axis {
margin-left: 115px;
}
.article-footer {
font-size: 9px;
}
.table-wrap table {
font-size: 11px;
}
.table-wrap th,
.table-wrap td {
padding: 12px 9px;
}
main p {
font-size: 14px;
}
}
@media (max-width: 480px) {
body {
line-height: 1.8;
}
.site-header {
padding: 0 18px;
}
.brand b {
display: none;
}
.site-header nav {
font-size: 11px;
gap: 15px;
}
.page-layout {
padding: 0 19px;
}
.hero {
padding-top: 29px;
}
.hero > .eyebrow {
font-size: 8px;
letter-spacing: 1px;
}
.hero h1 {
font-size: 35px;
line-height: 1.3;
margin-top: 15px;
}
.hero-deck {
font-size: 14px;
}
.hero-meta {
gap: 4px 13px;
margin-bottom: 25px;
}
.hero-visual {
margin-bottom: 25px;
}
.hero-axis {
margin: 0 50px 14px 42px;
font-size: 9px;
}
.lead {
font-size: 17px;
}
.three-concepts {
grid-template-columns: 1fr;
gap: 18px;
margin: 25px 0;
}
.three-concepts > div {
display: grid;
grid-template-columns: 95px 1fr;
gap: 10px;
}
.three-concepts h3 {
font-size: 13px;
margin: 0;
}
.three-concepts p {
font-size: 11px;
}
.interactive-figure {
padding: 17px 14px;
margin: 23px -3px;
}
.figure-heading {
gap: 8px;
}
.figure-heading h3 {
font-size: 17px;
margin-bottom: 18px;
}
.figure-label {
font-size: 9px;
}
.evidence-tag {
font-size: 8px;
padding: 4px 5px;
}
.segmented {
margin-bottom: 20px;
width: 100%;
}
.segmented button {
padding: 7px 8px;
flex: 1;
font-size: 11px;
}
.architecture-flow {
flex-direction: column;
justify-content: center;
gap: 7px;
}
.flow-node {
flex: none;
width: 100%;
padding: 8px 10px;
}
.flow-node strong {
font-size: 12px;
}
.flow-node small {
font-size: 10px;
}
.architecture-flow .flow-arrow {
font-size: 15px;
line-height: 1;
transform: rotate(90deg);
}
.architecture-detail {
margin-top: 20px;
min-height: 150px;
}
.architecture-detail p {
font-size: 12px;
}
.time-vocabulary {
grid-template-columns: 1fr 1fr;
gap: 16px 20px;
}
.time-vocabulary span {
font-size: 12px;
}
.time-vocabulary p {
font-size: 11px;
}
.lab-controls {
grid-template-columns: 1fr;
gap: 12px;
margin-top: 20px;
}
.lab-controls label {
font-size: 11px;
}
.lab-stats {
gap: 7px;
}
.lab-stats span {
font-size: 9px;
min-height: 30px;
}
.lab-stats strong {
font-size: 20px;
}
.queue-chart {
height: 242px;
}
.queue-row {
margin-left: 32px;
}
.queue-ticks {
left: 32px;
font-size: 8px;
}
.queue-label {
font-size: 8px;
right: calc(100% + 8px);
}
.chart-legend {
gap: 10px;
font-size: 9px;
}
.latency-path {
flex-wrap: wrap;
gap: 6px;
}
.latency-path span {
flex: 0 0 calc(50% - 13px);
font-size: 10px;
min-height: 58px;
}
.latency-path b:nth-child(4) {
visibility: hidden;
width: 0;
}
.latency-path b {
font-size: 12px;
}
.benchmark-row {
grid-template-columns: 81px 1fr;
gap: 8px;
}
.benchmark-label {
font-size: 9px;
}
.benchmark-value {
font-size: 8px;
left: calc(100% + 5px);
}
.benchmark-tracks {
padding-right: 36px;
}
.benchmark-axis {
margin-left: 89px;
margin-right: 36px;
font-size: 8px;
}
.argument-chain {
flex-direction: column;
gap: 8px;
}
.argument-chain > div {
display: grid;
grid-template-columns: 40px 1fr;
gap: 12px;
align-items: center;
padding: 10px 0;
}
.argument-chain strong {
margin: 0;
font-size: 11px;
}
.design-routes {
grid-template-columns: 1fr;
gap: 17px;
}
.design-routes h3 {
font-size: 16px;
}
.design-routes p {
font-size: 12px;
}
.training-steps li {
gap: 16px;
}
.training-steps li > span {
font-size: 20px;
min-width: 25px;
}
.training-steps h3 {
font-size: 15px;
}
.training-steps p {
font-size: 12px;
}
.evaluation-equation strong {
font-size: 14px;
}
.checklist {
font-size: 13px;
padding-left: 16px;
}
.scenario-list summary {
font-size: 13px;
}
.scenario-list p {
margin-left: 28px;
font-size: 12px;
}
.scenario-list summary span {
margin-right: 13px;
}
.claim-template {
padding: 17px;
}
.claim-template p {
font-size: 13px;
}
h2 {
font-size: 23px;
}
h3 {
font-size: 17px;
}
.source-list a {
font-size: 12px;
}
.source-list span {
font-size: 10px;
}
.article-footer {
display: block;
}
.article-footer > div {
margin: 15px 0;
gap: 18px;
}
.article-footer small {
display: block;
}
}
@media (prefers-reduced-motion: reduce) {
html {
scroll-behavior: auto;
}
*,
*::before,
*::after {
transition: none !important;
animation: none !important;
}
}
@media print {
.site-header,
.contents,
.lab-controls,
.lab-presets,
#theme-toggle {
display: none;
}
.page-layout {
display: block;
padding: 0;
}
.article-section {
break-inside: auto;
}
.interactive-figure,
.training-steps li {
break-inside: avoid;
}
body {
background: #fff;
color: #111;
}
.table-wrap {
overflow: visible;
}
.table-wrap table {
min-width: 0;
}
a {
text-decoration: underline;
}
}