:root {
color-scheme: dark;
--bg: #020617;
--bg-2: #040b18;
--panel: #07111f;
--panel-2: #0b1626;
--line: #1b2942;
--line-strong: #2c3e5e;
--text: #f4f7fb;
--muted: #9fb0c8;
--subtle: #67768f;
--cyan: #22d3ee;
--green: #a3e635;
--up: #4ade80;
--pink: #f472b6;
--purple: #a78bfa;
--amber: #fbbf24;
--prism: linear-gradient(90deg, var(--cyan), var(--green) 32%, var(--amber) 56%, var(--pink) 78%, var(--purple));
--mono: "Berkeley Mono", "JetBrains Mono", "Cascadia Code", "SF Mono", ui-monospace,
"IBM Plex Mono", Menlo, Consolas, "Liberation Mono", monospace;
--sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
Helvetica, Arial, sans-serif;
--max: 1180px;
--radius: 14px;
--radius-sm: 9px;
--ease: cubic-bezier(0.22, 1, 0.36, 1);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
margin: 0;
background:
radial-gradient(120% 80% at 82% -8%, rgba(34, 211, 238, 0.10), transparent 56%),
radial-gradient(100% 60% at 0% 4%, rgba(167, 139, 250, 0.08), transparent 60%),
linear-gradient(180deg, var(--bg-2), var(--bg) 38rem);
color: var(--text);
font-family: var(--sans);
font-size: 16px;
line-height: 1.6;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
body::before {
content: "";
position: fixed;
inset: 0;
z-index: 0;
pointer-events: none;
background-image:
linear-gradient(rgba(148, 163, 184, 0.04) 1px, transparent 1px),
linear-gradient(90deg, rgba(148, 163, 184, 0.04) 1px, transparent 1px);
background-size: 46px 46px;
mask-image: linear-gradient(180deg, black, transparent 92%);
}
.grain {
position: fixed;
inset: 0;
z-index: 1;
pointer-events: none;
opacity: 0.4;
mix-blend-mode: overlay;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");
}
main { position: relative; z-index: 2; }
a { color: inherit; text-decoration: none; }
code, pre, .mono { font-family: var(--mono); }
code { color: #d9f99d; font-size: 0.92em; }
img { display: block; max-width: 100%; }
:focus-visible {
outline: 2px solid var(--cyan);
outline-offset: 3px;
border-radius: 4px;
}
.sr-only {
position: absolute;
width: 1px; height: 1px;
padding: 0; margin: -1px;
overflow: hidden;
clip: rect(0 0 0 0);
white-space: nowrap; border: 0;
}
.site-header {
position: sticky;
top: 0;
z-index: 20;
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
min-height: 64px;
padding: 12px max(20px, calc((100vw - var(--max)) / 2));
border-bottom: 1px solid rgba(148, 163, 184, 0.12);
background: rgba(2, 6, 23, 0.7);
backdrop-filter: blur(14px) saturate(140%);
}
.brand {
display: flex;
align-items: center;
gap: 11px;
font-family: var(--mono);
font-weight: 700;
letter-spacing: -0.01em;
}
.brand-name { font-size: 18px; }
.tty { color: var(--cyan); }
.brand-logo {
height: 30px;
width: auto;
filter: drop-shadow(0 0 12px rgba(34, 211, 238, 0.28));
}
.footer-brand .brand-logo { height: 24px; width: auto; filter: none; }
.site-nav {
display: flex;
align-items: center;
gap: 2px;
padding: 4px;
border: 1px solid rgba(148, 163, 184, 0.14);
border-radius: 10px;
background: rgba(11, 22, 38, 0.6);
}
.site-nav a {
padding: 8px 12px;
border-radius: 7px;
color: var(--muted);
font-family: var(--mono);
font-size: 13px;
font-weight: 500;
transition: color 0.18s, background 0.18s;
}
.site-nav a:hover { color: var(--text); }
.site-nav a.is-active {
color: var(--cyan);
background: rgba(34, 211, 238, 0.1);
}
.nav-external { color: var(--subtle) !important; }
.nav-external:hover { color: var(--text) !important; }
.hero {
position: relative;
isolation: isolate;
overflow: hidden;
display: grid;
grid-template-columns: 1fr 1fr;
align-items: center;
gap: 48px;
max-width: var(--max);
margin: 0 auto;
padding: 84px 20px 72px;
}
.hero-bg {
position: absolute;
inset: -10% -20% auto -20%;
height: 120%;
z-index: -1;
overflow: hidden;
}
.beam {
position: absolute;
right: -20%;
width: 90%;
height: 64px;
transform: skewX(-18deg);
filter: blur(2px);
opacity: 0.22;
animation: drift 14s var(--ease) infinite alternate;
}
.beam-cyan { top: 12%; background: linear-gradient(90deg, transparent, var(--cyan)); }
.beam-green { top: 38%; background: linear-gradient(90deg, transparent, var(--green)); animation-delay: -4s; }
.beam-pink { top: 64%; background: linear-gradient(90deg, transparent, var(--pink)); animation-delay: -8s; }
@keyframes drift {
from { transform: skewX(-18deg) translateX(-4%); opacity: 0.14; }
to { transform: skewX(-18deg) translateX(6%); opacity: 0.3; }
}
.hero-copy { max-width: 540px; }
.eyebrow {
margin: 0 0 18px;
color: var(--cyan);
font-family: var(--mono);
font-size: 13px;
font-weight: 500;
letter-spacing: 0.02em;
}
h1 {
margin: 0;
font-family: var(--mono);
font-weight: 700;
font-size: clamp(38px, 5.4vw, 62px);
line-height: 1.02;
letter-spacing: -0.03em;
}
.spectrum-text {
background: var(--prism);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.hero-lede {
margin: 24px 0 0;
max-width: 480px;
color: var(--muted);
font-size: 18px;
line-height: 1.66;
}
.hero-actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 32px;
}
.button {
display: inline-flex;
align-items: center;
gap: 8px;
min-height: 46px;
padding: 0 20px;
border: 1px solid transparent;
border-radius: 10px;
font-family: var(--mono);
font-size: 14px;
font-weight: 600;
transition: transform 0.18s var(--ease), box-shadow 0.18s, background 0.18s, border-color 0.18s;
}
.button.primary {
color: #021318;
background: var(--cyan);
box-shadow: 0 0 0 1px rgba(34, 211, 238, 0.3), 0 14px 36px rgba(34, 211, 238, 0.22);
}
.button.primary:hover { transform: translateY(-2px); box-shadow: 0 0 0 1px rgba(34, 211, 238, 0.5), 0 18px 46px rgba(34, 211, 238, 0.32); }
.button.ghost {
color: var(--text);
border-color: var(--line-strong);
background: rgba(11, 22, 38, 0.55);
}
.button.ghost:hover { transform: translateY(-2px); border-color: var(--cyan); }
.hero-facts {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 8px;
margin: 38px 0 0;
}
.hero-facts div {
padding: 13px 14px;
border: 1px solid rgba(148, 163, 184, 0.16);
border-radius: var(--radius-sm);
background: rgba(7, 17, 31, 0.7);
}
.hero-facts dt {
color: var(--subtle);
font-family: var(--mono);
font-size: 11px;
text-transform: uppercase;
letter-spacing: 0.08em;
}
.hero-facts dd {
margin: 6px 0 0;
font-family: var(--mono);
font-size: 20px;
font-weight: 700;
}
.hero-facts dd span { font-size: 12px; font-weight: 500; color: var(--muted); }
.terminal {
margin: 0;
border: 1px solid var(--line);
border-radius: var(--radius);
background: linear-gradient(180deg, #061021, #03091a);
box-shadow: 0 40px 90px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.03);
overflow: hidden;
}
.terminal-bar {
display: flex;
align-items: center;
gap: 12px;
padding: 11px 14px;
border-bottom: 1px solid var(--line);
background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), transparent);
}
.dots { display: inline-flex; gap: 7px; }
.dots i {
width: 11px; height: 11px;
border-radius: 50%;
background: #2a3550;
}
.dots i:nth-child(1) { background: #ff5f57; }
.dots i:nth-child(2) { background: #febc2e; }
.dots i:nth-child(3) { background: #28c840; }
.terminal-title {
flex: 1;
font-family: var(--mono);
font-size: 12.5px;
color: var(--muted);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.terminal-badge {
font-family: var(--mono);
font-size: 11px;
color: var(--up);
letter-spacing: 0.04em;
}
.terminal-body {
padding: 18px 18px 20px;
font-family: var(--mono);
font-size: 13.5px;
line-height: 1.72;
white-space: pre-wrap;
word-break: break-word;
tab-size: 2;
}
.hero-terminal { z-index: 2; }
.hero-terminal .terminal-body { min-height: 326px; }
.tline { display: block; }
.t-cmd { color: #eef2f7; }
.cursor {
display: inline-block;
width: 8px;
margin-left: 1px;
background: var(--cyan);
color: transparent;
animation: blink 1.05s steps(1) infinite;
}
@keyframes blink { 50% { opacity: 0; } }
.hl-host { color: var(--green); font-weight: 600; }
.hl-iface { color: var(--amber); }
.hl-ip { color: var(--cyan); }
.hl-up { color: var(--up); font-weight: 600; }
.hl-down { color: var(--pink); font-weight: 600; }
.hl-sev { color: var(--purple); font-weight: 600; }
.command-band {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1px;
max-width: var(--max);
margin: 0 auto;
padding: 0 20px;
}
.command-line {
min-width: 0;
padding: 16px 18px;
border: 1px solid var(--line);
background: rgba(3, 10, 22, 0.8);
font-family: var(--mono);
font-size: 13px;
color: #dbe4f0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.command-line:not(:first-child) { border-left: none; }
.prompt { margin-right: 9px; color: var(--green); font-weight: 700; }
.section {
max-width: var(--max);
margin: 0 auto;
padding: 96px 20px;
}
.section-heading { max-width: 880px; margin-bottom: 8px; }
.section-heading.compact { max-width: 760px; }
.section-heading h2,
h2 {
margin: 0;
font-family: var(--mono);
font-weight: 700;
font-size: clamp(28px, 3.6vw, 40px);
line-height: 1.12;
letter-spacing: -0.025em;
}
.section-sub {
margin: 18px 0 0;
max-width: 620px;
color: var(--muted);
font-size: 17px;
}
.reveal {
opacity: 0;
transform: translateY(22px);
transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}
.reveal.is-in { opacity: 1; transform: none; }
.compare {
position: relative;
margin-top: 34px;
border: 1px solid var(--line);
border-radius: var(--radius);
background: #03091a;
box-shadow: 0 30px 70px rgba(0, 0, 0, 0.45);
overflow: hidden;
user-select: none;
}
.compare-pane {
margin: 0;
padding: 26px 28px;
font-family: var(--mono);
font-size: 13px;
line-height: 1.78;
white-space: pre;
overflow-x: auto;
}
.compare-raw { color: #5d6b82; }
.compare-hl {
position: absolute;
inset: 0;
border-right: 2px solid var(--cyan);
clip-path: inset(0 calc(100% - var(--pos, 58%)) 0 0);
box-shadow: 14px 0 40px -10px rgba(34, 211, 238, 0.4);
background: #03091a;
}
.compare-divider {
position: absolute;
top: 0; bottom: 0;
left: var(--pos, 58%);
width: 2px;
margin-left: -1px;
background: var(--cyan);
pointer-events: none;
}
.compare-knob {
position: absolute;
top: 50%; left: 50%;
transform: translate(-50%, -50%);
display: grid;
place-items: center;
width: 38px; height: 38px;
border-radius: 50%;
background: var(--cyan);
color: #021318;
font-size: 16px;
font-weight: 700;
box-shadow: 0 6px 22px rgba(34, 211, 238, 0.5);
}
.compare-range {
position: absolute;
inset: 0;
width: 100%; height: 100%;
margin: 0;
opacity: 0;
cursor: ew-resize;
}
.compare-tag {
position: absolute;
bottom: 12px;
padding: 4px 9px;
border-radius: 6px;
font-family: var(--mono);
font-size: 11px;
font-weight: 600;
letter-spacing: 0.06em;
text-transform: uppercase;
pointer-events: none;
}
.compare-tag-left { left: 14px; color: var(--subtle); background: rgba(11, 22, 38, 0.8); }
.compare-tag-right { right: 14px; color: #021318; background: var(--cyan); }
.scope-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 14px;
margin-top: 32px;
}
.scope-panel { padding: 26px 28px; border: 1px solid rgba(148, 163, 184, 0.16); border-radius: var(--radius); background: rgba(7, 17, 31, 0.66); }
.scope-panel h3 {
display: flex;
align-items: center;
gap: 11px;
margin: 0;
font-family: var(--mono);
font-size: 19px;
}
.scope-panel p { margin: 16px 0 0; color: var(--muted); line-height: 1.7; }
.scope-tick {
display: grid;
place-items: center;
width: 26px; height: 26px;
border-radius: 7px;
font-weight: 700;
}
.scope-yes { border-top: 2px solid rgba(74, 222, 128, 0.5); }
.scope-yes .scope-tick { color: var(--up); background: rgba(74, 222, 128, 0.12); }
.scope-no { border-top: 2px solid rgba(244, 114, 182, 0.45); }
.scope-no .scope-tick { color: var(--pink); background: rgba(244, 114, 182, 0.12); }
.features-section { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 44px; }
.feature-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 12px;
align-content: start;
}
.feature-card {
position: relative;
padding: 22px;
border: 1px solid rgba(148, 163, 184, 0.16);
border-radius: var(--radius);
background: rgba(7, 17, 31, 0.66);
overflow: hidden;
transition: transform 0.22s var(--ease), border-color 0.22s;
}
.feature-card::after {
content: "";
position: absolute;
left: 0; right: 0; top: 0;
height: 2px;
background: var(--prism);
transform: scaleX(0);
transform-origin: left;
transition: transform 0.3s var(--ease);
}
.feature-card:hover { transform: translateY(-4px); border-color: var(--line-strong); }
.feature-card:hover::after { transform: scaleX(1); }
.feature-kicker {
display: block;
margin-bottom: 44px;
color: var(--green);
font-family: var(--mono);
font-size: 13px;
font-weight: 700;
}
.feature-card h3 { margin: 0; font-family: var(--mono); font-size: 18px; }
.feature-card p { margin: 12px 0 0; color: var(--muted); line-height: 1.62; }
.profiles-demo { margin-top: 34px; }
.profile-tabs {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-bottom: 14px;
}
.profile-tab {
padding: 9px 15px;
border: 1px solid var(--line-strong);
border-radius: 8px;
background: rgba(11, 22, 38, 0.6);
color: var(--muted);
font-family: var(--mono);
font-size: 13px;
font-weight: 500;
cursor: pointer;
transition: all 0.18s var(--ease);
}
.profile-tab:hover { color: var(--text); border-color: var(--cyan); }
.profile-tab[aria-selected="true"] {
color: #021318;
background: var(--cyan);
border-color: var(--cyan);
box-shadow: 0 8px 24px rgba(34, 211, 238, 0.25);
}
.profile-terminal .terminal-body { min-height: 248px; }
.profile-terminal .terminal-body.is-swapping { opacity: 0; }
.profile-terminal .terminal-body { transition: opacity 0.16s ease; }
.profile-list {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 26px;
}
.profile-list span {
padding: 7px 12px;
border: 1px solid rgba(148, 163, 184, 0.18);
border-radius: 8px;
background: rgba(11, 22, 38, 0.6);
color: #cdd9ea;
font-family: var(--mono);
font-size: 12.5px;
}
.install-section {
border-top: 1px solid rgba(148, 163, 184, 0.1);
border-bottom: 1px solid rgba(148, 163, 184, 0.1);
}
.install-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 12px;
margin-top: 30px;
}
.install-card {
padding: 18px;
border: 1px solid rgba(148, 163, 184, 0.16);
border-radius: var(--radius);
background: rgba(7, 17, 31, 0.66);
}
.install-card-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.install-card h3 { margin: 0; font-family: var(--mono); font-size: 16px; }
.copy-button {
min-height: 32px;
padding: 6px 12px;
border: 1px solid var(--line-strong);
border-radius: 8px;
background: rgba(11, 22, 38, 0.8);
color: var(--muted);
font-family: var(--mono);
font-size: 12px;
font-weight: 600;
cursor: pointer;
transition: all 0.16s var(--ease);
}
.copy-button:hover { color: var(--text); border-color: var(--cyan); }
.copy-button.copied { color: #021318; background: var(--up); border-color: var(--up); }
.install-card pre {
margin: 16px 0 0;
padding: 13px 14px;
border: 1px solid #14203a;
border-radius: var(--radius-sm);
background: #010714;
overflow-x: auto;
}
.install-card pre code { color: #e7edf6; white-space: pre; }
.install-links {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 18px;
}
.install-links a {
padding: 9px 13px;
border: 1px solid rgba(148, 163, 184, 0.16);
border-radius: 8px;
background: rgba(11, 22, 38, 0.55);
color: var(--cyan);
font-family: var(--mono);
font-size: 13px;
font-weight: 500;
transition: transform 0.16s var(--ease), border-color 0.16s;
}
.install-links a:hover { transform: translateY(-2px); border-color: var(--cyan); }
.workflow {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 12px;
margin: 30px 0 0;
padding: 0;
list-style: none;
counter-reset: none;
}
.workflow-step {
padding: 24px;
border: 1px solid rgba(148, 163, 184, 0.16);
border-radius: var(--radius);
background: rgba(7, 17, 31, 0.66);
}
.step-number {
display: grid;
place-items: center;
width: 34px; height: 34px;
margin-bottom: 22px;
border: 1px solid rgba(163, 230, 53, 0.35);
border-radius: 9px;
background: rgba(163, 230, 53, 0.08);
color: var(--green);
font-family: var(--mono);
font-weight: 700;
}
.workflow-step h3 { margin: 0; font-family: var(--mono); font-size: 17px; }
.workflow-step p { margin: 12px 0 0; color: var(--muted); line-height: 1.6; }
.feedback-section { border-top: 1px solid rgba(148, 163, 184, 0.1); }
.feedback-copy { margin-top: 20px; }
.feedback-list {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 26px;
}
.feedback-list span {
padding: 9px 13px;
border: 1px solid rgba(148, 163, 184, 0.16);
border-radius: 8px;
background: rgba(11, 22, 38, 0.6);
color: #cdd9ea;
font-size: 13.5px;
}
.site-footer {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 18px;
max-width: var(--max);
margin: 0 auto;
padding: 40px 20px 56px;
position: relative;
z-index: 2;
}
.footer-brand {
display: flex;
align-items: center;
gap: 10px;
font-family: var(--mono);
font-weight: 700;
}
.footer-note { margin: 0; color: var(--subtle); font-size: 13.5px; }
.footer-links { display: flex; gap: 16px; }
.footer-links a {
color: var(--muted);
font-family: var(--mono);
font-size: 13px;
transition: color 0.16s;
}
.footer-links a:hover { color: var(--cyan); }
[id] { scroll-margin-top: 88px; }
@media (max-width: 980px) {
.hero {
grid-template-columns: 1fr;
gap: 36px;
padding-top: 56px;
}
.features-section { grid-template-columns: 1fr; gap: 28px; }
.feature-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
.site-header { flex-direction: column; align-items: stretch; gap: 10px; padding: 12px 16px; }
.site-nav { overflow-x: auto; justify-content: flex-start; }
.site-nav a { flex: 0 0 auto; }
.hero { padding: 40px 16px 52px; }
.hero-facts { grid-template-columns: repeat(2, 1fr); }
.command-band { grid-template-columns: 1fr; gap: 0; }
.command-line:not(:first-child) { border-left: 1px solid var(--line); border-top: none; }
.section { padding: 64px 16px; }
.scope-grid,
.install-grid,
.workflow { grid-template-columns: 1fr; }
.compare-pane { font-size: 11.5px; padding: 18px; }
}
@media (max-width: 420px) {
.hero-actions { flex-direction: column; }
.button { width: 100%; justify-content: center; }
.hero-facts { grid-template-columns: 1fr 1fr; }
}
@media (prefers-reduced-motion: reduce) {
* , *::before, *::after {
scroll-behavior: auto !important;
animation: none !important;
transition: none !important;
}
.reveal { opacity: 1; transform: none; }
.cursor { opacity: 1; }
}