| |
| |
| |
| |
| |
| |
|
|
| :root { |
| --bg: #ffffff; |
| --ink: #141414; |
| --ink-2: #5c5c5f; |
| --ink-3: #9a9a9e; |
| --line: #ececec; |
| --line-2: #dadada; |
| --accent: #8f46ff; |
| --accent-ink: #6d28d9; |
| --max: 1120px; |
| --pad: clamp(20px, 5vw, 40px); |
|
|
| --font-display: "Sora", system-ui, sans-serif; |
| --font-sans: "Manrope", system-ui, -apple-system, sans-serif; |
| --font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace; |
| } |
|
|
| * { |
| box-sizing: border-box; |
| } |
|
|
| html { |
| scroll-behavior: smooth; |
| } |
|
|
| body { |
| margin: 0; |
| background: var(--bg); |
| color: var(--ink); |
| font-family: var(--font-sans); |
| font-size: 16px; |
| line-height: 1.55; |
| -webkit-font-smoothing: antialiased; |
| -moz-osx-font-smoothing: grayscale; |
| } |
|
|
| .mono { |
| font-family: var(--font-mono); |
| font-variant-ligatures: none; |
| } |
|
|
| a { |
| color: inherit; |
| } |
|
|
| ::selection { |
| background: rgba(143, 70, 255, 0.16); |
| } |
|
|
| :focus-visible { |
| outline: 2px solid var(--accent); |
| outline-offset: 3px; |
| border-radius: 2px; |
| } |
|
|
| h1, |
| h2, |
| h3 { |
| font-family: var(--font-display); |
| font-weight: 600; |
| margin: 0; |
| letter-spacing: -0.02em; |
| } |
|
|
| |
| .site-header { |
| align-items: center; |
| background: var(--bg); |
| border-bottom: 1px solid var(--line); |
| display: flex; |
| gap: 24px; |
| height: 60px; |
| margin: 0 auto; |
| max-width: var(--max); |
| padding: 0 var(--pad); |
| position: sticky; |
| top: 0; |
| z-index: 10; |
| } |
|
|
| .brand { |
| align-items: center; |
| display: inline-flex; |
| gap: 9px; |
| text-decoration: none; |
| } |
|
|
| .brand-mark { |
| color: var(--ink); |
| height: 20px; |
| width: 20px; |
| } |
| .mark-dot { |
| fill: var(--accent); |
| } |
|
|
| .brand-name { |
| font-family: var(--font-display); |
| font-size: 16px; |
| font-weight: 600; |
| letter-spacing: -0.01em; |
| } |
|
|
| .brand-tag { |
| border-left: 1px solid var(--line-2); |
| color: var(--ink-3); |
| font-family: var(--font-mono); |
| font-size: 11px; |
| letter-spacing: 0.02em; |
| padding-left: 9px; |
| } |
|
|
| .site-nav { |
| display: flex; |
| gap: 22px; |
| margin-left: auto; |
| } |
|
|
| .site-nav a { |
| color: var(--ink-2); |
| font-size: 14px; |
| font-weight: 500; |
| text-decoration: none; |
| transition: color 140ms ease; |
| } |
| .site-nav a:hover { |
| color: var(--ink); |
| } |
|
|
| .header-link { |
| color: var(--ink); |
| font-size: 14px; |
| font-weight: 600; |
| text-decoration: none; |
| border-bottom: 1px solid var(--line-2); |
| padding-bottom: 1px; |
| transition: border-color 140ms ease; |
| } |
| .header-link:hover { |
| border-color: var(--ink); |
| } |
|
|
| |
| main { |
| margin: 0 auto; |
| max-width: var(--max); |
| padding: 0 var(--pad); |
| } |
|
|
| |
| .hero { |
| max-width: 800px; |
| padding: clamp(64px, 11vw, 132px) 0 clamp(40px, 6vw, 64px); |
| } |
|
|
| .eyebrow { |
| color: var(--accent-ink); |
| font-family: var(--font-mono); |
| font-size: 12px; |
| letter-spacing: 0.06em; |
| margin: 0 0 22px; |
| text-transform: uppercase; |
| } |
|
|
| h1 { |
| font-size: clamp(34px, 5.4vw, 60px); |
| line-height: 1.06; |
| margin: 0 0 24px; |
| max-width: 17ch; |
| } |
|
|
| .lede { |
| color: var(--ink-2); |
| font-size: clamp(16px, 1.6vw, 19px); |
| line-height: 1.6; |
| margin: 0; |
| max-width: 60ch; |
| } |
|
|
| .hero-actions { |
| align-items: center; |
| display: flex; |
| flex-wrap: wrap; |
| gap: 22px; |
| margin-top: 36px; |
| } |
|
|
| .btn { |
| background: var(--ink); |
| border: 1px solid var(--ink); |
| color: #fff; |
| display: inline-flex; |
| font-size: 14px; |
| font-weight: 600; |
| padding: 12px 20px; |
| text-decoration: none; |
| transition: background 140ms ease, border-color 140ms ease; |
| } |
| .btn:hover { |
| background: #000; |
| border-color: #000; |
| } |
|
|
| .link-arrow { |
| color: var(--ink); |
| font-size: 14px; |
| font-weight: 600; |
| text-decoration: none; |
| display: inline-flex; |
| gap: 7px; |
| align-items: center; |
| } |
| .link-arrow span { |
| color: var(--accent-ink); |
| transition: transform 160ms ease; |
| } |
| .link-arrow:hover span { |
| transform: translateX(3px); |
| } |
|
|
| |
| .series { |
| border-top: 1px solid var(--line); |
| border-bottom: 1px solid var(--line); |
| margin: 0; |
| } |
|
|
| #series-svg { |
| display: block; |
| height: clamp(160px, 22vw, 240px); |
| width: 100%; |
| } |
|
|
| .series-caption { |
| border-top: 1px solid var(--line); |
| color: var(--ink-3); |
| display: flex; |
| font-size: 11px; |
| justify-content: space-between; |
| letter-spacing: 0.04em; |
| padding: 11px 2px; |
| text-transform: uppercase; |
| } |
| .series-caption .accent { |
| color: var(--accent-ink); |
| } |
|
|
| |
| .stats { |
| border-bottom: 1px solid var(--line); |
| display: grid; |
| grid-template-columns: repeat(4, 1fr); |
| } |
|
|
| .stats div { |
| border-right: 1px solid var(--line); |
| padding: clamp(28px, 4vw, 44px) 28px clamp(28px, 4vw, 44px) 0; |
| } |
| .stats div:not(:first-child) { |
| padding-left: 28px; |
| } |
| .stats div:last-child { |
| border-right: 0; |
| padding-right: 0; |
| } |
|
|
| .stat-num { |
| display: block; |
| font-family: var(--font-display); |
| font-size: clamp(32px, 4.4vw, 48px); |
| font-weight: 600; |
| letter-spacing: -0.03em; |
| line-height: 1; |
| } |
|
|
| .stat-label { |
| color: var(--ink-3); |
| display: block; |
| font-size: 11px; |
| letter-spacing: 0.03em; |
| margin-top: 12px; |
| text-transform: uppercase; |
| } |
|
|
| |
| .block { |
| border-bottom: 1px solid var(--line); |
| padding: clamp(52px, 7vw, 88px) 0; |
| } |
|
|
| .block-head { |
| max-width: 680px; |
| } |
|
|
| .kicker { |
| color: var(--ink-3); |
| font-size: 11px; |
| letter-spacing: 0.12em; |
| margin: 0 0 16px; |
| text-transform: uppercase; |
| } |
|
|
| h2 { |
| font-size: clamp(26px, 3.4vw, 38px); |
| line-height: 1.12; |
| margin: 0; |
| } |
|
|
| .block-sub { |
| color: var(--ink-2); |
| font-size: 17px; |
| line-height: 1.6; |
| margin: 16px 0 0; |
| } |
|
|
| |
| .grid-4 { |
| border-top: 1px solid var(--line); |
| display: grid; |
| grid-template-columns: repeat(4, 1fr); |
| margin-top: clamp(40px, 5vw, 64px); |
| } |
|
|
| .grid-4 article { |
| border-right: 1px solid var(--line); |
| padding: 32px 28px 32px 0; |
| } |
| .grid-4 article:first-child { |
| padding-left: 0; |
| } |
| .grid-4 article:not(:first-child) { |
| padding-left: 28px; |
| } |
| .grid-4 article:last-child { |
| border-right: 0; |
| padding-right: 0; |
| } |
|
|
| .idx { |
| color: var(--accent-ink); |
| display: block; |
| font-size: 12px; |
| margin-bottom: 22px; |
| } |
|
|
| .grid-4 h3 { |
| font-size: 17px; |
| font-weight: 600; |
| margin: 0 0 10px; |
| } |
|
|
| .grid-4 p { |
| color: var(--ink-2); |
| font-size: 14px; |
| line-height: 1.6; |
| margin: 0; |
| } |
|
|
| code { |
| background: #f4f2f8; |
| border-radius: 4px; |
| color: var(--accent-ink); |
| font-family: var(--font-mono); |
| font-size: 0.86em; |
| padding: 0.1em 0.36em; |
| } |
|
|
| |
| .board { |
| border-collapse: collapse; |
| margin-top: clamp(28px, 3.5vw, 44px); |
| width: 100%; |
| } |
|
|
| .board th { |
| border-bottom: 1px solid var(--line-2); |
| color: var(--ink-3); |
| font-size: 11px; |
| font-weight: 500; |
| letter-spacing: 0.06em; |
| padding: 0 14px 12px 0; |
| text-align: left; |
| text-transform: uppercase; |
| } |
|
|
| .board td { |
| border-bottom: 1px solid var(--line); |
| font-size: 13.5px; |
| padding: 8px 14px 8px 0; |
| } |
|
|
| .board tr:last-child td { |
| border-bottom: 0; |
| } |
|
|
| .board tbody tr { |
| transition: background 120ms ease; |
| } |
| .board tbody tr:hover td { |
| background: rgba(143, 70, 255, 0.04); |
| } |
|
|
| .board .rank { |
| color: var(--ink-3); |
| font-size: 12px; |
| width: 48px; |
| } |
| .board .model { |
| color: var(--ink); |
| } |
| .board .tier { |
| color: var(--ink-3); |
| font-size: 12px; |
| width: 60px; |
| } |
| .board th.num, |
| .board td.num { |
| color: var(--ink); |
| font-weight: 500; |
| padding-right: 0; |
| text-align: right; |
| white-space: nowrap; |
| width: 116px; |
| } |
| .board .num.neg { |
| color: var(--ink-3); |
| font-weight: 400; |
| } |
|
|
| .board .pareto { |
| color: var(--accent); |
| font-size: 9px; |
| margin-left: 3px; |
| vertical-align: middle; |
| } |
|
|
| .board tbody tr:first-child .rank { |
| color: var(--accent-ink); |
| } |
| .board tbody tr:first-child .model, |
| .board tbody tr:first-child .num { |
| font-weight: 700; |
| } |
|
|
| .board-note { |
| color: var(--ink-3); |
| font-size: 11px; |
| letter-spacing: 0.02em; |
| line-height: 1.5; |
| margin: 14px 0 0; |
| } |
| .board-note .pareto-key { |
| color: var(--accent); |
| } |
|
|
| .board-links { |
| display: flex; |
| flex-wrap: wrap; |
| gap: 26px; |
| margin-top: 32px; |
| } |
| .board-links a, |
| .scope-links a { |
| color: var(--ink); |
| font-size: 14px; |
| font-weight: 600; |
| text-decoration: none; |
| border-bottom: 1px solid var(--line-2); |
| padding-bottom: 2px; |
| transition: border-color 140ms ease, color 140ms ease; |
| } |
| .board-links a:hover, |
| .scope-links a:hover { |
| border-color: var(--accent); |
| color: var(--accent-ink); |
| } |
|
|
| |
| .steps { |
| border-top: 1px solid var(--line); |
| counter-reset: none; |
| display: grid; |
| grid-template-columns: repeat(4, 1fr); |
| list-style: none; |
| margin: clamp(40px, 5vw, 64px) 0 0; |
| padding: 0; |
| } |
|
|
| .steps li { |
| border-right: 1px solid var(--line); |
| display: flex; |
| flex-direction: column; |
| gap: 14px; |
| padding: 32px 28px 0 0; |
| } |
| .steps li:not(:first-child) { |
| padding-left: 28px; |
| } |
| .steps li:first-child { |
| padding-left: 0; |
| } |
| .steps li:last-child { |
| border-right: 0; |
| padding-right: 0; |
| } |
|
|
| .steps li span:last-child { |
| color: var(--ink-2); |
| font-size: 14px; |
| line-height: 1.6; |
| } |
|
|
| |
| .scope-links { |
| display: flex; |
| flex-wrap: wrap; |
| gap: 28px; |
| margin-top: clamp(36px, 4vw, 52px); |
| } |
|
|
| |
| footer { |
| color: var(--ink-3); |
| display: flex; |
| flex-wrap: wrap; |
| font-size: 12px; |
| gap: 20px; |
| justify-content: space-between; |
| margin: 0 auto; |
| max-width: var(--max); |
| padding: 28px var(--pad) 40px; |
| } |
|
|
| footer a { |
| color: var(--ink); |
| text-decoration: none; |
| border-bottom: 1px solid var(--line-2); |
| padding-bottom: 1px; |
| transition: color 140ms ease, border-color 140ms ease; |
| } |
| footer a:hover { |
| color: var(--accent-ink); |
| border-color: var(--accent); |
| } |
|
|
| |
| @media (max-width: 820px) { |
| .site-nav { |
| display: none; |
| } |
| .grid-4, |
| .steps { |
| grid-template-columns: repeat(2, 1fr); |
| } |
| .grid-4 article, |
| .steps li { |
| border-bottom: 1px solid var(--line); |
| padding-bottom: 32px; |
| } |
| .grid-4 article:nth-child(2), |
| .steps li:nth-child(2) { |
| border-right: 0; |
| } |
| .grid-4 article:nth-child(odd), |
| .steps li:nth-child(odd) { |
| padding-left: 0; |
| } |
| .grid-4 article:nth-child(even), |
| .steps li:nth-child(even) { |
| padding-left: 28px; |
| } |
| } |
|
|
| @media (max-width: 540px) { |
| .stats { |
| grid-template-columns: repeat(2, 1fr); |
| } |
| .stats div:nth-child(2) { |
| border-right: 0; |
| } |
| .stats div:nth-child(-n + 2) { |
| border-bottom: 1px solid var(--line); |
| } |
| .stats div:nth-child(odd) { |
| padding-left: 0; |
| } |
| .stats div:nth-child(even) { |
| padding-left: 28px; |
| padding-right: 0; |
| } |
| .grid-4, |
| .steps { |
| grid-template-columns: 1fr; |
| } |
| .grid-4 article, |
| .steps li { |
| border-right: 0; |
| padding-left: 0 !important; |
| } |
| |
| .board th:nth-child(3), |
| .board td:nth-child(3) { |
| display: none; |
| } |
| .board td.num, |
| .board th.num { |
| width: 100px; |
| } |
| .board .rank { |
| width: 44px; |
| } |
| } |
|
|
| @media (prefers-reduced-motion: reduce) { |
| html { |
| scroll-behavior: auto; |
| } |
| } |
|
|