Spaces:
Running
Running
| *, *::before, *::after { box-sizing: border-box; } | |
| html, body { margin: 0; padding: 0; } | |
| body { | |
| background: var(--bg-canvas); | |
| color: var(--text-primary); | |
| font-family: var(--font-sans); | |
| font-size: var(--text-md); | |
| line-height: var(--leading-normal); | |
| -webkit-font-smoothing: antialiased; | |
| } | |
| ::selection { background: var(--selection-bg); color: var(--selection-fg); } | |
| a { color: var(--text-accent); text-decoration: none; } | |
| a:hover { text-decoration: underline; text-underline-offset: 3px; } | |
| :focus-visible { outline: none; box-shadow: var(--ring-focus); border-radius: var(--radius-sm); } | |
| .page { | |
| max-width: var(--container-xl); | |
| margin: 0 auto; | |
| padding: clamp(1.25rem, 4vw, 4rem); | |
| } | |
| .card { | |
| padding: clamp(2.5rem, 5vw, 4.5rem) 0; | |
| border-bottom: var(--border-hair) solid var(--border-subtle); | |
| } | |
| .card:last-of-type { border-bottom: 0; } | |
| .eyebrow { | |
| display: flex; | |
| align-items: baseline; | |
| gap: var(--space-3); | |
| font-family: var(--font-mono); | |
| font-size: var(--text-2xs); | |
| font-weight: var(--weight-medium); | |
| letter-spacing: var(--tracking-wider); | |
| text-transform: uppercase; | |
| color: var(--text-muted); | |
| margin-bottom: var(--space-6); | |
| } | |
| .eyebrow .tick { color: var(--accent); } | |
| .display { | |
| font-family: var(--font-display); | |
| font-weight: var(--weight-regular); | |
| font-size: clamp(3.5rem, 9vw, var(--text-7xl)); | |
| line-height: var(--leading-tight); | |
| letter-spacing: var(--tracking-tighter); | |
| margin: 0 0 var(--space-5); | |
| } | |
| .display-md { | |
| font-family: var(--font-display); | |
| font-weight: var(--weight-regular); | |
| font-size: clamp(2rem, 4.5vw, var(--text-5xl)); | |
| line-height: var(--leading-tight); | |
| letter-spacing: var(--tracking-tight); | |
| margin: 0 0 var(--space-5); | |
| } | |
| .display .dot { color: var(--accent); } | |
| .lead { | |
| font-size: clamp(var(--text-lg), 2vw, var(--text-xl)); | |
| line-height: var(--leading-relaxed); | |
| color: var(--text-secondary); | |
| max-width: 46em; | |
| margin: 0; | |
| } | |
| .lead .accent { color: var(--text-accent); } | |
| /* Research preview banner */ | |
| .preview-banner { | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: baseline; | |
| gap: var(--space-2) var(--space-4); | |
| margin: 0 0 var(--space-8); | |
| padding: var(--space-3) var(--space-4); | |
| border: var(--border-hair) solid var(--border-subtle); | |
| border-left: 3px solid var(--warning); | |
| border-radius: var(--radius-md); | |
| background: var(--bg-surface); | |
| font-size: var(--text-sm); | |
| color: var(--text-secondary); | |
| } | |
| .preview-banner strong { | |
| font-family: var(--font-mono); | |
| font-size: var(--text-2xs); | |
| font-weight: var(--weight-medium); | |
| letter-spacing: var(--tracking-wider); | |
| text-transform: uppercase; | |
| color: var(--warning); | |
| } | |
| /* Demo panes */ | |
| .demo-grid { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: var(--space-8); | |
| align-items: stretch; | |
| } | |
| @media (max-width: 880px) { | |
| .demo-grid { grid-template-columns: 1fr; } | |
| } | |
| .pane { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-3); | |
| min-width: 0; | |
| } | |
| .pane-label { | |
| display: flex; | |
| align-items: baseline; | |
| justify-content: space-between; | |
| gap: var(--space-3); | |
| font-family: var(--font-mono); | |
| font-size: var(--text-2xs); | |
| font-weight: var(--weight-medium); | |
| letter-spacing: var(--tracking-wider); | |
| text-transform: uppercase; | |
| color: var(--text-muted); | |
| } | |
| textarea { | |
| width: 100%; | |
| min-height: 280px; | |
| flex: 1; | |
| resize: vertical; | |
| padding: var(--space-4); | |
| border: var(--border-hair) solid var(--border-default); | |
| border-radius: var(--radius-lg); | |
| background: var(--bg-surface); | |
| box-shadow: var(--shadow-inset); | |
| color: var(--text-primary); | |
| font-family: var(--font-mono); | |
| font-size: var(--text-sm); | |
| line-height: var(--leading-relaxed); | |
| } | |
| textarea:focus-visible { box-shadow: var(--shadow-inset), var(--ring-focus); } | |
| .out { | |
| min-height: 280px; | |
| flex: 1; | |
| padding: var(--space-4); | |
| border: var(--border-hair) solid var(--border-subtle); | |
| border-radius: var(--radius-lg); | |
| background: var(--bg-raised); | |
| font-size: var(--text-md); | |
| line-height: var(--leading-relaxed); | |
| white-space: pre-wrap; | |
| overflow-wrap: break-word; | |
| overflow-x: auto; | |
| } | |
| .out:empty::before { | |
| content: attr(data-placeholder); | |
| font-family: var(--font-mono); | |
| font-size: var(--text-sm); | |
| color: var(--text-faint); | |
| } | |
| .controls { | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| gap: var(--space-3); | |
| } | |
| .chips { | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| gap: var(--space-2); | |
| } | |
| .chips-label { | |
| font-family: var(--font-mono); | |
| font-size: var(--text-2xs); | |
| letter-spacing: var(--tracking-wider); | |
| text-transform: uppercase; | |
| color: var(--text-muted); | |
| } | |
| .chip { | |
| padding: 0.4rem 0.85rem; | |
| border: var(--border-hair) solid var(--border-default); | |
| border-radius: var(--radius-full); | |
| background: var(--bg-surface); | |
| color: var(--text-secondary); | |
| font-family: var(--font-mono); | |
| font-size: var(--text-xs); | |
| letter-spacing: var(--tracking-wide); | |
| cursor: pointer; | |
| transition: var(--transition-colors); | |
| } | |
| .chip:hover { background: var(--bg-sunken); color: var(--text-primary); } | |
| .chip[aria-pressed="true"] { | |
| border-color: var(--accent); | |
| color: var(--text-accent); | |
| background: var(--bg-accent-soft); | |
| } | |
| .run-btn { | |
| height: var(--control-lg); | |
| padding: 0 var(--space-8); | |
| border: 0; | |
| border-radius: var(--radius-md); | |
| background: var(--accent); | |
| color: var(--accent-contrast); | |
| font-family: var(--font-sans); | |
| font-size: var(--text-base); | |
| font-weight: var(--weight-semibold); | |
| letter-spacing: var(--tracking-wide); | |
| cursor: pointer; | |
| transition: var(--transition-colors); | |
| } | |
| .run-btn:hover { background: var(--accent-hover); } | |
| .run-btn:disabled { opacity: 0.55; cursor: wait; } | |
| .ghost-btn { | |
| height: 1.75rem; | |
| padding: 0 var(--space-3); | |
| border: var(--border-hair) solid var(--border-default); | |
| border-radius: var(--radius-full); | |
| background: transparent; | |
| color: var(--text-muted); | |
| font-family: var(--font-mono); | |
| font-size: var(--text-2xs); | |
| letter-spacing: var(--tracking-wider); | |
| text-transform: uppercase; | |
| cursor: pointer; | |
| transition: var(--transition-colors); | |
| } | |
| .ghost-btn:hover { color: var(--text-accent); border-color: var(--accent); } | |
| .switch { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| font-family: var(--font-mono); | |
| font-size: var(--text-2xs); | |
| letter-spacing: var(--tracking-wider); | |
| text-transform: uppercase; | |
| color: var(--text-muted); | |
| cursor: pointer; | |
| user-select: none; | |
| } | |
| .switch input { | |
| appearance: none; | |
| width: 2.1rem; | |
| height: 1.15rem; | |
| margin: 0; | |
| border-radius: var(--radius-full); | |
| border: var(--border-hair) solid var(--border-default); | |
| background: var(--bg-sunken); | |
| position: relative; | |
| cursor: pointer; | |
| transition: var(--transition-colors); | |
| } | |
| .switch input::after { | |
| content: ""; | |
| position: absolute; | |
| top: 1px; | |
| left: 1px; | |
| width: 0.95rem; | |
| height: 0.95rem; | |
| border-radius: var(--radius-full); | |
| background: var(--text-muted); | |
| transition: transform var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-standard); | |
| } | |
| .switch input:checked { background: var(--accent); border-color: var(--accent); } | |
| .switch input:checked::after { transform: translateX(0.95rem); background: var(--accent-contrast); } | |
| .status { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| min-height: 1.5rem; | |
| font-family: var(--font-mono); | |
| font-size: var(--text-xs); | |
| letter-spacing: var(--tracking-wide); | |
| color: var(--text-muted); | |
| } | |
| .stats { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); | |
| gap: var(--space-5); | |
| margin-top: var(--space-8); | |
| border-top: var(--border-hair) solid var(--border-subtle); | |
| padding-top: var(--space-5); | |
| } | |
| .stats[hidden] { display: none; } | |
| .stat { display: flex; flex-direction: column; gap: var(--space-1); } | |
| .stat .num { | |
| font-family: var(--font-display); | |
| font-size: var(--text-2xl); | |
| line-height: var(--leading-none); | |
| font-variant-numeric: tabular-nums; | |
| } | |
| .stat .label { | |
| font-family: var(--font-mono); | |
| font-size: var(--text-2xs); | |
| letter-spacing: var(--tracking-wide); | |
| text-transform: uppercase; | |
| color: var(--text-muted); | |
| } | |
| .table-scroll { overflow-x: auto; } | |
| /* Swarm loader (design-system tokens/swarm.css) */ | |
| .swarm { display: none; align-items: center; justify-content: center; } | |
| .swarm.visible { display: inline-flex; } | |
| .swarm svg { display: block; overflow: visible; width: 16px; height: 16px; } | |
| .swarm .dot { fill: var(--text-primary); transform-box: fill-box; transform-origin: center; } | |
| .swarm .core { | |
| fill: var(--accent); | |
| transform-box: fill-box; | |
| transform-origin: center; | |
| animation: swarm-core 1.6s ease-in-out infinite; | |
| } | |
| @keyframes swarm-core { | |
| 0%, 100% { transform: scale(0.82); opacity: 0.5; } | |
| 50% { transform: scale(1.16); opacity: 1; } | |
| } | |
| @media (prefers-reduced-motion: reduce) { | |
| .swarm .dot, .swarm .core { | |
| animation: none ; | |
| opacity: 0.7 ; | |
| transform: none ; | |
| } | |
| } | |
| .brand-footer { | |
| display: flex; | |
| justify-content: space-between; | |
| gap: var(--space-4); | |
| padding: var(--space-4) 0; | |
| border-top: var(--border-hair) solid var(--border-subtle); | |
| font-family: var(--font-mono); | |
| font-size: var(--text-2xs); | |
| letter-spacing: var(--tracking-wider); | |
| text-transform: uppercase; | |
| color: var(--text-muted); | |
| } | |