:root { --bg: #07090a; --panel: #0e1211; --panel2: #121816; --line: rgba(214, 178, 94, .16); --line2: rgba(232, 230, 223, .08); --text: #e8e6df; --text2: #9ba59f; --text3: #6d7771; --gold: #d6b25e; --green: #52d98a; --amber: #e0a53a; --red: #d9695a; --sans: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; --mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace; } * { box-sizing: border-box; } html { -webkit-text-size-adjust: 100%; } body { margin: 0; background: var(--bg); color: var(--text); font: 16px/1.6 var(--sans); } a { color: var(--gold); text-decoration: none; } a:hover { text-decoration: underline; } code { font-family: var(--mono); font-size: .88em; } .wrap { max-width: 1080px; margin: 0 auto; padding: 0 20px; } /* hero */ .hero { position: relative; overflow: hidden; border-bottom: 1px solid var(--line); min-height: 560px; display: flex; align-items: flex-end; } .hero-img { position: absolute; top: 0; right: 0; width: 60%; height: 100%; object-fit: cover; object-position: 30% 50%; opacity: .7; } .hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, var(--bg) 0%, var(--bg) 40%, rgba(7,9,10,.55) 62%, rgba(7,9,10,.1) 100%), linear-gradient(0deg, var(--bg) 0%, rgba(7,9,10,0) 35%); } .hero-body { position: relative; padding-top: 72px; padding-bottom: 40px; width: 100%; } .eyebrow { font: 500 .75rem/1 var(--mono); letter-spacing: .2em; text-transform: uppercase; color: var(--gold); margin: 0 0 18px; } h1 { font-size: clamp(2.6rem, 6vw, 4.2rem); line-height: 1.05; margin: 0 0 20px; font-weight: 600; letter-spacing: -.02em; } .lede { max-width: 620px; font-size: 1.12rem; color: var(--text); margin: 0 0 12px; } .lede2 { max-width: 620px; color: var(--text2); margin: 0 0 26px; } .cta { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 22px; } .btn { display: inline-block; padding: 10px 18px; border: 1px solid var(--line); border-radius: 6px; color: var(--text); background: rgba(14,18,17,.7); font-weight: 500; font-size: .95rem; } .btn:hover { border-color: var(--gold); text-decoration: none; } .btn.primary { background: var(--gold); color: #0b0c0a; border-color: var(--gold); } .btn.primary:hover { background: #e4c273; } .pills { display: flex; flex-wrap: wrap; gap: 8px; min-height: 28px; } .pill { font: .78rem/1 var(--mono); padding: 7px 11px; border-radius: 999px; border: 1px solid var(--line2); background: rgba(14,18,17,.8); color: var(--text2); } .pill::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--text3); margin-right: 7px; vertical-align: 1px; } .pill.ok::before { background: var(--green); } .pill.warn::before { background: var(--amber); } .pill.bad::before { background: var(--red); } .pill.live::before { background: var(--green); animation: pulse 1.8s ease-in-out infinite; } @keyframes pulse { 50% { opacity: .3; } } /* sections */ section { padding: 56px 0 8px; } h2 { font-size: 1.5rem; margin: 0 0 18px; font-weight: 600; letter-spacing: -.01em; } h3 { font-size: 1.05rem; margin: 0 0 8px; font-weight: 600; } h3.sub { margin: 36px 0 10px; } h4 { font: 500 .72rem/1 var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--text3); margin: 0 0 12px; } .head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; } .freshness { font: .75rem var(--mono); color: var(--text3); } .freshness.live { color: var(--green); } .intro { color: var(--text2); max-width: 760px; margin: -6px 0 20px; } .note { color: var(--text2); font-size: .92rem; max-width: 760px; border-left: 2px solid var(--gold); padding: 2px 0 2px 14px; margin: 18px 0 0; } .cards { display: grid; gap: 14px; } .cards.four { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); } .cards.three { grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); } .card { background: var(--panel); border: 1px solid var(--line2); border-radius: 10px; padding: 20px; } .card p { margin: 0; color: var(--text2); font-size: .94rem; } .card em { color: var(--gold); font-style: normal; } .door { color: inherit; display: block; transition: border-color .15s, background .15s; } .door:hover { border-color: var(--gold); background: var(--panel2); text-decoration: none; } .door h3 { font-family: var(--mono); font-size: .98rem; color: var(--text); } .kind { display: block; font: .7rem var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--gold); margin-bottom: 10px; } /* vital tiles */ .tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; } .tile { background: var(--panel); border: 1px solid var(--line2); border-radius: 10px; padding: 18px 20px; min-height: 124px; } .tile .k { font: .7rem var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--text3); } .tile .v { font: 500 1.45rem/1.25 var(--mono); margin: 8px 0 6px; color: var(--text); overflow-wrap: anywhere; } .tile .v.ok { color: var(--green); } .tile .v.warn { color: var(--amber); } .tile .v.bad { color: var(--red); } .tile .v.gold { color: var(--gold); } .tile .s { font-size: .84rem; color: var(--text2); overflow-wrap: anywhere; } /* tables */ .table-scroll { overflow-x: auto; border: 1px solid var(--line2); border-radius: 10px; } table { border-collapse: collapse; width: 100%; font-size: .88rem; } th, td { text-align: left; padding: 10px 14px; border-bottom: 1px solid var(--line2); vertical-align: top; } tr:last-child td { border-bottom: 0; } th { font: 500 .7rem var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--text3); background: var(--panel); } td { color: var(--text2); } td.mono { font-family: var(--mono); color: var(--text); white-space: nowrap; } .tag { font: .74rem var(--mono); padding: 2px 8px; border-radius: 4px; white-space: nowrap; border: 1px solid currentColor; } .tag.ok { color: var(--green); } .tag.warn { color: var(--amber); } .tag.bad { color: var(--red); } .tag.dim { color: var(--text3); } table.predicates td:last-child { min-width: 320px; } /* lineage strip */ .strip { display: grid; grid-template-columns: repeat(auto-fill, minmax(22px, 1fr)); gap: 4px; margin: 4px 0 12px; } .cell { aspect-ratio: 1; border-radius: 3px; position: relative; font: 9px/1 var(--mono); color: rgba(7,9,10,.75); display: flex; align-items: center; justify-content: center; cursor: default; } .sq { display: inline-block; width: 11px; height: 11px; border-radius: 2px; margin-right: 6px; vertical-align: -1px; } .s-pass { background: var(--green); } .s-reject { background: rgba(217,105,90,.55); } .s-fail { background: rgba(224,165,58,.55); } .s-live { background: var(--gold); animation: pulse 1.8s ease-in-out infinite; } .s-none { background: transparent; box-shadow: inset 0 0 0 1px var(--line2); } .cell.star { box-shadow: 0 0 0 2px var(--gold); } .legend { display: flex; flex-wrap: wrap; gap: 18px; font-size: .82rem; color: var(--text2); margin-bottom: 18px; } .now { font: .88rem var(--mono); color: var(--text); background: var(--panel); border: 1px solid var(--line2); border-radius: 8px; padding: 12px 14px; margin: 0 0 14px; overflow-wrap: anywhere; } .now:empty { display: none; } pre.code { background: #0a0d0c; border: 1px solid var(--line2); border-radius: 10px; padding: 16px 18px; overflow-x: auto; font: .82rem/1.55 var(--mono); color: #cfd6cf; margin: 0; } .links { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px; } .links a { display: block; padding: 4px 0; font-size: .95rem; } .terminal { color: var(--text2); font-size: .9rem; margin-top: 28px; overflow-wrap: anywhere; } .foot { border-top: 1px solid var(--line2); margin-top: 64px; padding-top: 24px; padding-bottom: 48px; color: var(--text3); font-size: .84rem; } .foot p { max-width: 760px; margin: 0 0 8px; } @media (max-width: 640px) { .wrap { padding: 0 16px; } .hero { min-height: 0; } .hero-img { width: 100%; opacity: .35; } .hero-body { padding-top: 48px; } .hero-shade { background: linear-gradient(0deg, var(--bg) 0%, rgba(7,9,10,.88) 60%, rgba(7,9,10,.6) 100%); } section { padding-top: 44px; } .strip { grid-template-columns: repeat(auto-fill, minmax(18px, 1fr)); gap: 3px; } .cell { font-size: 0; } table.predicates td:last-child { min-width: 240px; } } @media (prefers-reduced-motion: reduce) { .pill.live::before, .s-live { animation: none; } } /* top bar + links home */ .topbar { position: sticky; top: 0; z-index: 10; background: rgba(7,9,10,.88); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-bottom: 1px solid var(--line2); } .topbar-in { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 48px; } .brand { font: 600 1rem var(--sans); color: var(--text); letter-spacing: -.01em; } .toplinks { display: flex; align-items: center; gap: 18px; font-size: .86rem; white-space: nowrap; overflow-x: auto; } .toplinks a { color: var(--text2); } .toplinks a.home { color: var(--gold); border: 1px solid var(--line); border-radius: 6px; padding: 4px 10px; } .head-right { display: inline-flex; align-items: baseline; gap: 14px; flex-wrap: wrap; } .more { font: .8rem var(--mono); color: var(--gold); white-space: nowrap; } .tile { display: flex; flex-direction: column; } .tile .src { margin-top: auto; padding-top: 10px; font: .74rem var(--mono); color: var(--gold); opacity: .85; } .tile .src:hover { opacity: 1; } .aside { color: var(--text2); font-size: .9rem; margin: 0 0 16px; max-width: 860px; } .visit .cards { margin-bottom: 28px; } .docs-links a { font-size: .9rem; } .foot-home { color: var(--text2); } @media (max-width: 640px) { .toplinks a:not(.home) { display: none; } } /* ---------- docs page ---------- */ .toplinks a.current { color: var(--text); } .docs-head { padding-top: 44px; } .docs-head h1 { margin-bottom: 14px; } .docs-head .lede { max-width: 760px; color: var(--text2); font-size: 1.02rem; } .more-note { font: .76rem var(--mono); color: var(--text3); } .muted { color: var(--text3); } .fine { font-size: .78rem; color: var(--text3); } .ok-text { color: var(--green); } .bad-text { color: var(--red); } .cards.two { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); } .player h3 { font-size: 1.25rem; margin-bottom: 2px; } .player p.muted { margin: 0 0 14px; font-size: .9rem; } .player audio { width: 100%; margin: 4px 0 8px; color-scheme: dark; } .part-status { font: .76rem var(--mono); color: var(--text2); margin-bottom: 8px; } .parts { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; } .chip { font: .74rem var(--mono); color: var(--text2); background: transparent; border: 1px solid var(--line2); border-radius: 999px; padding: 4px 10px; cursor: pointer; } .chip:hover { border-color: var(--gold); color: var(--text); } .chip.on { border-color: var(--gold); color: var(--gold); } .actions { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; margin: 4px 0 10px; } .player .fine { margin: 6px 0 0; } .btn.small { padding: 5px 11px; font-size: .82rem; } .doc-layout { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 28px; align-items: start; } .library { position: sticky; top: 64px; max-height: calc(100vh - 80px); display: flex; flex-direction: column; background: var(--panel); border: 1px solid var(--line2); border-radius: 10px; padding: 16px; } .lib-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; } .lib-head h2 { font-size: 1.1rem; margin: 0 0 10px; } .lib-count { font: .72rem var(--mono); color: var(--text3); } #lib-search { width: 100%; background: var(--bg); color: var(--text); border: 1px solid var(--line2); border-radius: 6px; padding: 8px 10px; font: .88rem var(--sans); margin-bottom: 10px; } #lib-search:focus { outline: none; border-color: var(--gold); } .library .chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; } .lib-list { list-style: none; margin: 0; padding: 0; overflow-y: auto; flex: 1; min-height: 120px; } .lib-item { padding: 8px 2px; border-bottom: 1px solid var(--line2); display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; } .lib-title { font-size: .88rem; color: var(--text); grid-column: 1; } .lib-item.tier-public .lib-title { color: var(--gold); } .lib-meta { font: .68rem var(--mono); color: var(--text3); grid-column: 1; overflow-wrap: anywhere; } .lib-item .tag { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-size: .64rem; } .lib-more { padding: 10px 2px; font-size: .8rem; color: var(--text3); } .lib-foot { font-size: .74rem; color: var(--text3); margin: 10px 0 0; } .reader { min-width: 0; } .doc-meta { border-bottom: 1px solid var(--line2); padding-bottom: 12px; margin-bottom: 8px; } .meta-row { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin-bottom: 10px; } .prose { font: 1.04rem/1.75 "IBM Plex Serif", Georgia, serif; color: #d9d7cf; max-width: 760px; overflow-wrap: anywhere; } .prose h1, .prose h2, .prose h3, .prose h4 { font-family: var(--sans); color: var(--text); line-height: 1.25; scroll-margin-top: 64px; } .prose h1 { font-size: 2rem; margin: 26px 0 14px; } .prose h2 { font-size: 1.45rem; margin: 40px 0 12px; } .prose h3 { font-size: 1.15rem; margin: 30px 0 10px; } .prose p, .prose ul, .prose ol, .prose blockquote { margin: 0 0 16px; } .prose a { color: var(--gold); border-bottom: 1px solid rgba(214,178,94,.3); } .prose a:hover { text-decoration: none; border-bottom-color: var(--gold); } .prose a.ext-doc::after { content: " ↗"; font-size: .75em; color: var(--text3); } .prose .src-ref { font-family: var(--mono); font-size: .86em; color: var(--text2); border-bottom: 1px dotted var(--text3); cursor: help; } .prose code { background: #0c100f; border: 1px solid var(--line2); border-radius: 4px; padding: 1px 5px; color: #cfd6cf; } .prose pre { background: #0a0d0c; border: 1px solid var(--line2); border-radius: 8px; padding: 14px 16px; overflow-x: auto; font: .82rem/1.55 var(--mono); } .prose pre code { background: none; border: 0; padding: 0; } .prose blockquote { border-left: 2px solid var(--gold); padding-left: 14px; color: var(--text2); } .prose hr { border: 0; border-top: 1px solid var(--line2); margin: 32px 0; } .prose table { display: block; overflow-x: auto; font: .86rem/1.5 var(--sans); margin: 0 0 18px; border: 1px solid var(--line2); border-radius: 8px; } .prose th { text-transform: none; letter-spacing: 0; font: 600 .82rem var(--sans); color: var(--text); } .prose td { color: var(--text2); } .prose img { max-width: 100%; } @media (max-width: 900px) { .doc-layout { grid-template-columns: 1fr; } .library { position: static; max-height: 420px; } } @media (max-width: 640px) { .cards.two { grid-template-columns: 1fr; } .prose { font-size: 1rem; } .toplinks a.current { display: inline; } } .doc-card { display: flex; flex-direction: column; } .doc-card p { margin-bottom: 14px; } .doc-card .actions { margin-top: auto; } @media (max-width: 900px) { .library { max-height: none; } .lib-list { flex: none; max-height: 340px; } }