/* ---------------------------------------------------------------- Tidy Index — landing styles (editorial revision) The site is a typeset document, not a SaaS template. Light palette, generous space, serif headlines, monospace labels, hairline rules. ---------------------------------------------------------------- */ :root { --c-bg: #ffffff; --c-bg-soft: #f7f9fc; --c-bg-tint: #eef4fb; --c-rule: #e3ecf5; --c-rule-strong: #cbd6e6; --c-ink: #0b1f3a; --c-ink-soft: #3b4f6b; --c-ink-mute: #6b7c93; --c-blue: #2563eb; --c-blue-deep: #1d4ed8; --c-blue-soft: #dbeafe; --c-blue-tint: #eef4ff; --shadow-sm: 0 1px 2px rgba(15, 38, 73, 0.04); --shadow-md: 0 8px 28px -10px rgba(37, 99, 235, 0.18), 0 2px 6px rgba(15, 38, 73, 0.05); --radius-sm: 6px; --radius-md: 12px; --radius-lg: 18px; --font-serif: 'Fraunces', 'Iowan Old Style', Georgia, 'Times New Roman', serif; --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; --max-w: 960px; --max-w-wide: 1080px; --gutter: clamp(20px, 4vw, 40px); } * { box-sizing: border-box; } html { -webkit-text-size-adjust: 100%; } body { margin: 0; font-family: var(--font-sans); font-size: 17px; line-height: 1.65; color: var(--c-ink); background: var(--c-bg); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; } a { color: var(--c-blue); text-decoration: none; transition: color 160ms ease; } a:hover { color: var(--c-blue-deep); } img, svg { display: block; max-width: 100%; } ::selection { background: var(--c-blue-soft); color: var(--c-ink); } /* ---------- layout ---------- */ .container { width: 100%; max-width: var(--max-w); margin: 0 auto; padding: 0 var(--gutter); } .container-wide { max-width: var(--max-w-wide); } .section { padding: 96px 0; border-top: 1px solid var(--c-rule); } .section:first-of-type { border-top: 0; } .section-soft { background: var(--c-bg-soft); } /* ---------- shared element styles ---------- */ .section-marker { margin: 0 0 22px; font-family: var(--font-mono); font-size: 12px; font-weight: 500; letter-spacing: 0.04em; color: var(--c-blue); text-transform: lowercase; } .section-headline { margin: 0 0 28px; font-family: var(--font-serif); font-variation-settings: 'opsz' 144, 'SOFT' 30; font-weight: 400; font-size: clamp(32px, 4.6vw, 52px); line-height: 1.08; letter-spacing: -0.018em; color: var(--c-ink); max-width: 22ch; } .section-headline em { font-style: italic; font-variation-settings: 'opsz' 144, 'SOFT' 100; color: var(--c-blue); } .section-body { margin: 0 0 48px; font-size: 18px; line-height: 1.6; color: var(--c-ink-soft); max-width: 60ch; } code { font-family: var(--font-mono); font-size: 0.92em; background: var(--c-bg-soft); padding: 1px 6px; border-radius: 4px; color: var(--c-ink); } /* ---------- header ---------- */ .site-header { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, 0.85); backdrop-filter: saturate(180%) blur(16px); -webkit-backdrop-filter: saturate(180%) blur(16px); border-bottom: 1px solid var(--c-rule); } .header-inner { display: flex; align-items: center; justify-content: space-between; height: 68px; } .brand { display: inline-flex; align-items: center; gap: 12px; font-family: var(--font-serif); font-variation-settings: 'opsz' 24; font-weight: 500; font-size: 19px; letter-spacing: -0.005em; color: var(--c-ink); } .brand:hover { color: var(--c-blue); } .brand-mark { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; color: var(--c-blue); } .brand-mark svg { width: 22px; height: 22px; } .header-meta { display: flex; align-items: center; gap: 28px; } .header-status { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.03em; color: var(--c-ink-mute); text-transform: lowercase; } .status-dot { width: 7px; height: 7px; border-radius: 50%; background: #34d399; box-shadow: 0 0 0 3px rgba(52, 211, 153, 0.18); } .header-cta { font-family: var(--font-mono); font-size: 13px; font-weight: 500; color: var(--c-ink); letter-spacing: 0.01em; border-bottom: 1px solid var(--c-ink); padding-bottom: 1px; transition: color 160ms ease, border-color 160ms ease; } .header-cta:hover { color: var(--c-blue); border-color: var(--c-blue); } /* ---------- buttons ---------- */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-family: var(--font-sans); font-size: 15px; font-weight: 500; padding: 13px 22px; border-radius: 999px; border: 1px solid transparent; cursor: pointer; transition: all 180ms ease; letter-spacing: -0.005em; } .btn svg { width: 17px; height: 17px; } .btn-primary { background: var(--c-ink); color: #fff; box-shadow: 0 6px 18px -8px rgba(11, 31, 58, 0.5); } .btn-primary:hover { background: var(--c-blue); color: #fff; transform: translateY(-1px); box-shadow: 0 10px 22px -8px rgba(37, 99, 235, 0.5); } .btn-lg { padding: 16px 26px; font-size: 16px; } .btn-lg svg { width: 18px; height: 18px; } .btn-link { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-sans); font-size: 15px; font-weight: 500; color: var(--c-ink-soft); border-bottom: 1px solid var(--c-rule-strong); padding-bottom: 1px; } .btn-link:hover { color: var(--c-blue); border-color: var(--c-blue); } /* ---------- hero ---------- */ .hero { padding: 140px 0 110px; position: relative; overflow: hidden; } .hero::before { content: ""; position: absolute; top: -200px; right: -200px; width: 600px; height: 600px; background: radial-gradient(closest-side, rgba(96, 165, 250, 0.20), rgba(96, 165, 250, 0) 70%); pointer-events: none; z-index: 0; } .hero .container { position: relative; z-index: 1; } .hero-headline { margin: 0 0 32px; font-family: var(--font-serif); font-variation-settings: 'opsz' 144, 'SOFT' 30; font-weight: 400; font-size: clamp(44px, 7.4vw, 92px); line-height: 1.02; letter-spacing: -0.025em; color: var(--c-ink); max-width: 14ch; } .hero-headline em { font-style: italic; font-variation-settings: 'opsz' 144, 'SOFT' 100; color: var(--c-blue); font-weight: 400; } .hero-sub { margin: 0 0 44px; font-size: 20px; line-height: 1.55; color: var(--c-ink-soft); max-width: 56ch; } .hero-cta { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; } /* ---------- record demo ---------- */ .record { margin-top: 8px; background: #fff; border: 1px solid var(--c-rule); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); overflow: hidden; } .record-head { display: flex; align-items: baseline; gap: 14px; padding: 18px 26px; background: var(--c-bg-soft); border-bottom: 1px solid var(--c-rule); } .record-label { font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-ink-mute); } .record-id { font-family: var(--font-mono); font-size: 14px; font-weight: 500; color: var(--c-ink); background: transparent; padding: 0; } .record-meta { margin-left: auto; font-family: var(--font-mono); font-size: 12px; color: var(--c-ink-mute); } .record-row { display: grid; grid-template-columns: 200px 1fr; border-top: 1px solid var(--c-rule); } .record-row:first-of-type { border-top: 0; } .record-tag { display: flex; flex-direction: column; justify-content: flex-start; padding: 24px 26px; background: #fff; border-right: 1px solid var(--c-rule); } .tag-name { font-family: var(--font-serif); font-variation-settings: 'opsz' 36, 'SOFT' 50; font-weight: 500; font-size: 22px; font-style: italic; color: var(--c-blue); margin-bottom: 4px; } .tag-mime { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.02em; color: var(--c-ink-mute); } .tag-note { display: block; margin-top: 10px; font-family: var(--font-sans); font-size: 12px; line-height: 1.4; color: var(--c-ink-mute); max-width: 18ch; } .record-body { margin: 0; padding: 22px 26px; font-family: var(--font-mono); font-size: 13.5px; line-height: 1.7; color: var(--c-ink-soft); background: #fff; overflow-x: auto; white-space: pre; } .record-body code { background: transparent; padding: 0; font-size: inherit; color: inherit; } .tk-k { color: #2563eb; } .tk-s { color: #0f766e; } .tk-n { color: #b45309; } .tk-p { color: #94a3b8; } .tk-x { color: #7c3aed; } .tk-c { color: #cbd6e6; } /* ---------- catalog (dataset coverage widget) ---------- */ .catalog { margin: 8px 0 22px; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--c-rule-strong); border-bottom: 1px solid var(--c-rule); } .catalog-col { padding: 30px 24px; border-right: 1px solid var(--c-rule); } .catalog-col:first-child { padding-left: 0; } .catalog-col:last-child { border-right: 0; padding-right: 0; } .catalog-cat { display: block; font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.07em; color: var(--c-blue); text-transform: lowercase; margin-bottom: 18px; } .catalog-window { position: relative; height: 188px; overflow: hidden; -webkit-mask-image: linear-gradient( to bottom, transparent 0%, #000 14%, #000 86%, transparent 100% ); mask-image: linear-gradient( to bottom, transparent 0%, #000 14%, #000 86%, transparent 100% ); } .catalog-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 11px; animation: catalog-scroll 64s linear infinite; will-change: transform; } .catalog-col:hover .catalog-list { animation-play-state: paused; } /* Stagger speeds slightly so columns don't move in lockstep */ .catalog-col:nth-child(1) .catalog-list { animation-duration: 58s; } .catalog-col:nth-child(2) .catalog-list { animation-duration: 72s; } .catalog-col:nth-child(3) .catalog-list { animation-duration: 64s; } .catalog-col:nth-child(4) .catalog-list { animation-duration: 68s; } @keyframes catalog-scroll { from { transform: translateY(0); } to { transform: translateY(-50%); } } .catalog-list li { font-family: var(--font-serif); font-variation-settings: 'opsz' 14, 'SOFT' 30; font-weight: 400; font-size: 15px; line-height: 1.3; color: var(--c-ink); } .catalog-more { margin: 0; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.02em; color: var(--c-ink-mute); text-align: right; } .catalog-more strong { font-weight: 500; color: var(--c-blue); } /* ---------- CTA section ---------- */ .section-cta { padding: 110px 0 130px; } .cta-block { display: flex; align-items: center; justify-content: space-between; gap: 40px; padding-top: 56px; border-top: 1px solid var(--c-rule-strong); position: relative; } .cta-block::before { content: ""; position: absolute; top: -1px; left: 0; width: 80px; height: 2px; background: var(--c-blue); } .cta-block .section-marker { margin-bottom: 14px; } .cta-block .section-headline { margin: 0; } .cta-agents { margin: 24px 0 0; display: flex; align-items: center; flex-wrap: wrap; gap: 14px; font-family: var(--font-mono); font-size: 12px; line-height: 1.5; color: var(--c-ink-mute); } .cta-agents-label { font-weight: 500; letter-spacing: 0.06em; text-transform: lowercase; color: var(--c-blue); } .cta-agents a { display: inline-flex; align-items: center; gap: 6px; color: var(--c-ink); border-bottom: 1px solid var(--c-rule-strong); padding-bottom: 1px; transition: color 160ms ease, border-color 160ms ease; } .cta-agents a code { background: transparent; padding: 0; font-size: 12px; color: inherit; } .cta-agents a:hover { color: var(--c-blue); border-color: var(--c-blue); } .cta-agents-note { font-style: italic; color: var(--c-ink-mute); } /* ---------- footer ---------- */ .site-footer { border-top: 1px solid var(--c-rule); background: var(--c-bg); padding: 40px 0; } .footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; } .footer-line { display: inline-flex; align-items: center; gap: 12px; font-size: 14px; color: var(--c-ink-soft); } .footer-line .brand-mark { color: var(--c-blue); } .footer-line .brand-mark svg { width: 18px; height: 18px; } .footer-name { font-family: var(--font-serif); font-variation-settings: 'opsz' 24; font-weight: 500; color: var(--c-ink); } .footer-tagline { font-style: italic; color: var(--c-ink-mute); } .footer-sep { color: var(--c-rule-strong); } .footer-meta { margin: 0; font-family: var(--font-mono); font-size: 12px; color: var(--c-ink-mute); } .footer-meta a { color: var(--c-ink-soft); border-bottom: 1px solid var(--c-rule-strong); } .footer-meta a:hover { color: var(--c-blue); border-color: var(--c-blue); } /* ---------- responsive ---------- */ @media (max-width: 1020px) { .catalog { grid-template-columns: repeat(2, 1fr); border-bottom: 0; } .catalog-col { padding: 28px 24px; border-right: 1px solid var(--c-rule); border-bottom: 1px solid var(--c-rule); } .catalog-col:first-child { padding-left: 24px; } .catalog-col:last-child { border-right: 1px solid var(--c-rule); padding-right: 24px; } .catalog-col:nth-child(2n) { border-right: 0; padding-right: 0; } .catalog-col:nth-child(2n+1) { padding-left: 0; } .catalog-col:nth-last-child(-n+2) { border-bottom: 0; } } @media (max-width: 820px) { .section { padding: 72px 0; } .hero { padding: 90px 0 70px; } .section-cta { padding: 80px 0 100px; } .record-row { grid-template-columns: 1fr; } .record-tag { flex-direction: row; align-items: baseline; gap: 12px; padding: 16px 22px; border-right: 0; border-bottom: 1px solid var(--c-rule); background: var(--c-bg-soft); } .tag-name { margin-bottom: 0; font-size: 18px; } .cta-block { flex-direction: column; align-items: flex-start; } } @media (max-width: 620px) { .catalog { grid-template-columns: 1fr; } .catalog-col { padding: 24px 0; border-right: 0; border-bottom: 1px solid var(--c-rule); } .catalog-col:first-child { padding-top: 24px; } .catalog-col:last-child { border-bottom: 0; padding-bottom: 0; } } @media (max-width: 560px) { body { font-size: 16px; } .header-status { display: none; } .header-inner { height: 60px; } .hero-cta { gap: 18px; } .record-head { flex-wrap: wrap; padding: 16px 20px; } .record-meta { margin-left: 0; flex-basis: 100%; } .record-body { font-size: 12.5px; padding: 18px 20px; } .footer-inner { flex-direction: column; align-items: flex-start; } } @media (prefers-reduced-motion: reduce) { * { transition: none !important; } .catalog-window { overflow-y: auto; -webkit-mask-image: none; mask-image: none; } .catalog-list { animation: none; } .catalog-list li[aria-hidden="true"] { display: none; } }