:root { --ink: #171717; --body: #2d2d2d; --muted: #707070; --faint: #afafaa; --paper: #f5f4ef; --paper-strong: #ffffff; --line: rgba(23, 23, 23, 0.16); --line-solid: #c8c8c2; --accent: #2d7273; --accent-dark: #1f5859; --accent-wash: #dce8e5; --success: #2f7d50; --success-wash: rgba(47, 125, 80, 0.12); --warning: #a96b10; --warning-wash: rgba(169, 107, 16, 0.12); --danger: #b83b3b; --danger-wash: rgba(184, 59, 59, 0.12); --info: #3376ba; --info-wash: rgba(51, 118, 186, 0.12); --shadow: 0 24px 64px rgba(23, 88, 89, 0.11); --radius: 1.25rem; --max: 74rem; } * { box-sizing: border-box; } html { scroll-behavior: smooth; } body { margin: 0; color: var(--ink); background: radial-gradient(circle at 15% 8%, rgba(45, 114, 115, 0.12), transparent 26rem), radial-gradient(circle at 92% 32%, rgba(51, 118, 186, 0.1), transparent 28rem), var(--paper); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.55; } body::before { position: fixed; z-index: -1; inset: 0; background-image: linear-gradient(rgba(23, 21, 18, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(23, 21, 18, 0.035) 1px, transparent 1px); background-size: 32px 32px; content: ""; pointer-events: none; } a { color: inherit; } img, svg { display: block; max-width: 100%; } button, input, select, textarea { font: inherit; } :focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; } .skip-link { position: fixed; z-index: 100; top: 0.75rem; left: 0.75rem; padding: 0.65rem 0.9rem; border-radius: 999px; color: white; background: var(--ink); transform: translateY(-180%); transition: transform 160ms ease; } .skip-link:focus { transform: translateY(0); } .site-header { position: sticky; z-index: 20; top: 0; border-bottom: 1px solid var(--line); background: rgba(245, 240, 230, 0.88); backdrop-filter: blur(18px); } .nav { display: flex; width: min(calc(100% - 2rem), var(--max)); min-height: 4.75rem; margin: 0 auto; align-items: center; justify-content: space-between; gap: 1.5rem; } .brand { display: inline-flex; align-items: center; gap: 0.65rem; font-weight: 800; letter-spacing: -0.03em; text-decoration: none; } .brand-mark { display: grid; width: 2rem; height: 2rem; border-radius: 50%; color: white; background: var(--ink); box-shadow: inset 0 0 0 0.42rem var(--accent); place-items: center; } .brand-mark::after { width: 0.32rem; height: 0.32rem; border-radius: 50%; background: white; content: ""; } .nav-links { display: flex; align-items: center; gap: 1.15rem; } .nav-links a { color: var(--muted); font-size: 0.9rem; font-weight: 700; text-decoration: none; } .nav-links a:hover, .nav-links a[aria-current="page"] { color: var(--ink); } .menu-button { display: none; padding: 0.55rem 0.7rem; border: 1px solid var(--line); border-radius: 0.65rem; color: var(--ink); background: transparent; font-weight: 800; } .shell { width: min(calc(100% - 2rem), var(--max)); margin: 0 auto; } .hero { display: grid; min-height: 46rem; padding: 7rem 0 5rem; align-items: center; grid-template-columns: minmax(0, 1.18fr) minmax(20rem, 0.82fr); gap: clamp(3rem, 7vw, 7rem); } .hero-compact { min-height: auto; padding-bottom: 3.5rem; } .eyebrow { display: inline-flex; margin: 0 0 1.2rem; align-items: center; gap: 0.55rem; color: var(--accent-dark); font-size: 0.76rem; font-weight: 850; letter-spacing: 0.13em; text-transform: uppercase; } .eyebrow::before { width: 0.55rem; height: 0.55rem; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 0.35rem rgba(45, 114, 115, 0.13); content: ""; } h1, h2, h3 { margin-top: 0; line-height: 1.06; } h1, h2 { font-family: Georgia, "Times New Roman", serif; font-weight: 500; letter-spacing: -0.055em; } h1 { max-width: 13ch; margin-bottom: 1.4rem; font-size: clamp(3.5rem, 8vw, 7.25rem); } .hero-compact h1 { max-width: 16ch; font-size: clamp(3.2rem, 7vw, 6.25rem); } h2 { max-width: 17ch; margin-bottom: 1.15rem; font-size: clamp(2.5rem, 5vw, 4.8rem); } h3 { margin-bottom: 0.65rem; font-size: 1.08rem; letter-spacing: -0.025em; } .lede { max-width: 42rem; margin: 0; color: var(--muted); font-size: clamp(1.08rem, 2vw, 1.35rem); } .actions { display: flex; margin-top: 2rem; flex-wrap: wrap; gap: 0.8rem; } .button { display: inline-flex; min-height: 3rem; padding: 0.8rem 1.15rem; border: 1px solid var(--ink); border-radius: 999px; align-items: center; justify-content: center; gap: 0.55rem; color: white; background: var(--ink); font-size: 0.92rem; font-weight: 800; text-decoration: none; transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease; } .button:hover { box-shadow: 0 9px 24px rgba(23, 21, 18, 0.18); transform: translateY(-2px); } .button-secondary { color: var(--ink); background: transparent; } .button-accent { border-color: var(--accent); background: var(--accent); } .button-small { min-height: 2.35rem; padding: 0.55rem 0.9rem; font-size: 0.82rem; } .signal-card { position: relative; padding: 1.25rem; border: 1px solid var(--line); border-radius: 1.5rem; background: rgba(255, 250, 240, 0.78); box-shadow: var(--shadow); transform: rotate(1.5deg); } .signal-card::before { position: absolute; z-index: -1; inset: 1rem -1rem -1rem 1rem; border-radius: inherit; background: var(--accent-wash); content: ""; } .signal-bar { display: flex; padding-bottom: 0.8rem; border-bottom: 1px solid var(--line); align-items: center; justify-content: space-between; color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.72rem; text-transform: uppercase; } .signal-dot { width: 0.65rem; height: 0.65rem; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 0.32rem rgba(45, 114, 115, 0.14); } .signal-body { padding: 2rem 0.35rem 1.25rem; } .signal-body p { margin: 0; } .signal-question { font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.55rem, 3vw, 2.25rem); letter-spacing: -0.04em; line-height: 1.14; } .signal-context { padding-top: 1rem; color: var(--muted); font-size: 0.88rem; } .signal-options { display: grid; margin-top: 1.15rem; gap: 0.55rem; } .signal-option { padding: 0.8rem 0.9rem; border: 1px solid var(--line); border-radius: 0.75rem; background: rgba(255, 255, 255, 0.55); font-size: 0.88rem; font-weight: 750; } .section { padding: 6rem 0; border-top: 1px solid var(--line); } .section-head { display: flex; margin-bottom: 2.5rem; align-items: end; justify-content: space-between; gap: 2rem; } .section-head p { max-width: 31rem; margin: 0 0 0.7rem; color: var(--muted); } .grid { display: grid; gap: 1rem; } .grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .card { position: relative; min-height: 14rem; padding: 1.4rem; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255, 250, 240, 0.66); } .card-link { display: block; text-decoration: none; transition: border-color 160ms ease, transform 160ms ease, background 160ms ease; } .card-link:hover { border-color: rgba(23, 21, 18, 0.48); background: var(--paper-strong); transform: translateY(-3px); } .card p { margin-bottom: 0; color: var(--muted); } .card-kicker { margin-bottom: 2.2rem; color: var(--accent-dark); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; } .card-arrow { position: absolute; top: 1.15rem; right: 1.2rem; font-size: 1.25rem; } .project-toolbar { display: grid; margin-bottom: 1.5rem; padding: 1rem; border: 1px solid var(--line-solid); border-radius: var(--radius); background: rgba(255, 255, 255, 0.72); grid-template-columns: minmax(14rem, 1fr) auto; align-items: end; gap: 1rem; } .project-search { display: grid; gap: 0.4rem; } .project-search label { font-size: 0.78rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; } .project-search input { width: 100%; min-height: 2.85rem; padding: 0.7rem 0.85rem; border: 1px solid var(--line-solid); border-radius: 0.65rem; color: var(--ink); background: var(--paper-strong); } .project-filters { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.45rem; } .filter-button { min-height: 2.4rem; padding: 0.55rem 0.75rem; border: 1px solid var(--line-solid); border-radius: 999px; color: var(--muted); background: var(--paper-strong); cursor: pointer; font-size: 0.76rem; font-weight: 800; } .filter-button:hover, .filter-button[aria-pressed="true"] { border-color: var(--accent); color: white; background: var(--accent); } .project-summary { display: flex; margin-bottom: 1.15rem; align-items: baseline; justify-content: space-between; gap: 1rem; } .project-summary p { margin: 0; color: var(--muted); } .project-count { color: var(--accent-dark); font-family: Georgia, "Times New Roman", serif; font-size: 2rem; letter-spacing: -0.04em; } .project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; } .project-card { display: flex; min-height: 20rem; padding: 1.35rem; border: 1px solid var(--line-solid); border-top: 0.32rem solid var(--accent); border-radius: var(--radius); background: rgba(255, 255, 255, 0.76); flex-direction: column; gap: 0.8rem; } .project-card[data-status="public"] { border-top-color: var(--success); } .project-card[data-status="next"] { border-top-color: var(--info); } .project-card[data-status="preview"] { border-top-color: var(--warning); } .project-card[data-status="research"] { border-top-color: var(--accent); } .project-card[data-status="archive"] { border-top-color: var(--faint); } .project-card h3, .project-card p { margin: 0; } .project-card > p { color: var(--muted); } .project-card-head { display: flex; align-items: start; justify-content: space-between; gap: 1rem; } .project-status { display: inline-flex; width: fit-content; padding: 0.3rem 0.55rem; border-radius: 999px; color: var(--accent-dark); background: var(--accent-wash); font-size: 0.67rem; font-weight: 850; letter-spacing: 0.055em; text-transform: uppercase; } .project-status[data-status="public"] { color: var(--success); background: var(--success-wash); } .project-status[data-status="next"] { color: var(--info); background: var(--info-wash); } .project-status[data-status="preview"] { color: var(--warning); background: var(--warning-wash); } .project-status[data-status="archive"] { color: var(--muted); background: rgba(112, 112, 112, 0.1); } .project-meta { display: flex; margin: 0; padding: 0; flex-wrap: wrap; gap: 0.45rem; list-style: none; } .project-meta li { padding: 0.25rem 0.48rem; border: 1px solid var(--line); border-radius: 0.35rem; color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.66rem; } .project-evidence { padding-top: 0.75rem; border-top: 1px solid var(--line); color: var(--body); font-size: 0.82rem; } .project-next { color: var(--muted); font-size: 0.78rem; } .project-actions { display: flex; margin-top: auto; align-items: center; gap: 0.8rem; } .project-actions a { color: var(--accent-dark); font-size: 0.82rem; font-weight: 850; } .empty-state { display: none; padding: 2rem; border: 1px dashed var(--line-solid); border-radius: var(--radius); color: var(--muted); text-align: center; } .empty-state[data-visible="true"] { display: block; } .release-list { display: grid; padding: 0; list-style: none; gap: 0.75rem; } .release-list li { display: grid; padding: 1rem 0; border-bottom: 1px solid var(--line); grid-template-columns: 2rem minmax(0, 1fr); gap: 0.75rem; } .release-list strong { color: var(--accent-dark); } .release-number { color: var(--faint); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.78rem; } .steps { counter-reset: step; } .step { display: grid; padding: 1.45rem 0; border-bottom: 1px solid var(--line); align-items: start; grid-template-columns: 4.25rem minmax(0, 1fr) minmax(16rem, 0.7fr); gap: 1.25rem; counter-increment: step; } .step::before { color: var(--accent-dark); content: "0" counter(step); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.78rem; font-weight: 800; } .step p { margin: 0; color: var(--muted); } .status { display: inline-flex; padding: 0.35rem 0.65rem; border-radius: 999px; color: var(--success); background: var(--success-wash); font-size: 0.72rem; font-weight: 850; letter-spacing: 0.05em; text-transform: uppercase; } .status-roadmap { color: var(--warning); background: var(--warning-wash); } .status-oss { color: var(--info); background: var(--info-wash); } .callout { display: grid; padding: clamp(2rem, 6vw, 5rem); border-radius: 1.75rem; color: white; background: var(--ink); grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2.5rem; } .callout h2 { max-width: 14ch; margin-bottom: 0.7rem; } .callout p { max-width: 38rem; margin: 0; color: rgba(255, 255, 255, 0.7); } .callout .button { border-color: white; color: var(--ink); background: white; } .proof-list, .plain-list { padding: 0; list-style: none; } .proof-list li, .plain-list li { position: relative; padding: 0.95rem 0 0.95rem 1.75rem; border-bottom: 1px solid var(--line); } .proof-list li::before, .plain-list li::before { position: absolute; left: 0; color: var(--accent); content: "↳"; font-weight: 900; } .quote { max-width: 23ch; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 5vw, 4rem); letter-spacing: -0.05em; line-height: 1.08; } .form { display: grid; max-width: 46rem; padding: clamp(1.4rem, 4vw, 2.5rem); border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255, 250, 240, 0.78); box-shadow: var(--shadow); gap: 1.1rem; } .field { display: grid; gap: 0.45rem; } .field label, .legend { font-size: 0.86rem; font-weight: 800; } .field input, .field select, .field textarea { width: 100%; padding: 0.82rem 0.9rem; border: 1px solid rgba(23, 21, 18, 0.28); border-radius: 0.7rem; color: var(--ink); background: rgba(255, 255, 255, 0.72); } .field textarea { min-height: 8rem; resize: vertical; } .checkbox { display: flex; align-items: start; gap: 0.65rem; color: var(--muted); font-size: 0.82rem; } .checkbox input { margin-top: 0.25rem; } .honeypot { position: absolute; left: -9999px; } .form-status { min-height: 1.6rem; margin: 0; color: var(--success); font-weight: 750; } .fine-print { color: var(--muted); font-size: 0.78rem; } .site-footer { padding: 3rem 0 4rem; border-top: 1px solid var(--line); } .footer-grid { display: flex; align-items: start; justify-content: space-between; gap: 2rem; } .footer-links { display: flex; flex-wrap: wrap; gap: 1rem; } .footer-links a { color: var(--muted); font-size: 0.85rem; font-weight: 700; } @media (max-width: 860px) { .nav { flex-wrap: wrap; } .menu-button { display: inline-flex; } .nav-links { display: none; width: 100%; padding: 0.4rem 0 1rem; align-items: stretch; flex-direction: column; } .nav-links[data-open="true"] { display: flex; } .hero { min-height: auto; padding-top: 4.5rem; grid-template-columns: 1fr; } .hero-copy { order: 1; } .signal-card { max-width: 35rem; order: 2; } .grid-3 { grid-template-columns: 1fr; } .project-toolbar { grid-template-columns: 1fr; } .project-filters { justify-content: flex-start; } .project-grid { grid-template-columns: 1fr; } .step { grid-template-columns: 3rem minmax(0, 1fr); } .step p { grid-column: 2; } .callout { grid-template-columns: 1fr; } } @media (max-width: 620px) { .grid-2 { grid-template-columns: 1fr; } .section-head, .footer-grid { align-items: start; flex-direction: column; } .section { padding: 4.5rem 0; } .actions .button { width: 100%; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; } }