:root { --bg: #f7f7f7; --surface: #ffffff; --surface-2: #f7f7f7; --text: #1f1e1d; --muted: #5e5d5c; --faint: #898887; --line: #eaeaea; --line-strong: #c7c7c7; --accent: #b24e0b; --accent-bright: #f2960e; --accent-soft: #fdf1c8; --leaf: #396248; --leaf-soft: #e0ebe1; --leaf-button: #4c7d5d; --code-bg: #f7f7f7; --tile-a: #f2960e; --tile-b: #face54; --tile-c: #4c7d5d; --on-tile-c: #ffffff; --header-bg: rgb(247 247 247 / .9); --pattern: url("bg-light.svg"); --veil: rgb(247 247 247 / .55); --radius: 12px; --header-h: 4rem; --sans: "DM Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color-scheme: light dark; } @media (prefers-color-scheme: dark) { :root { --bg: #1f1e1d; --surface: #2b2a29; --surface-2: #373736; --text: #eaeaea; --muted: #b1b0af; --faint: #898887; --line: #373736; --line-strong: #504f4e; --accent: #f8b827; --accent-bright: #f2960e; --accent-soft: #441804; --leaf: #99bca3; --leaf-soft: #203428; --leaf-button: #396248; --code-bg: #1f1e1d; --header-bg: rgb(31 30 29 / .9); --pattern: url("bg-dark.svg"); --veil: rgb(31 30 29 / .55); } } * { box-sizing: border-box; } html { scroll-padding-top: calc(var(--header-h) + 1rem); -webkit-text-size-adjust: 100%; @media (prefers-reduced-motion: no-preference) { scroll-behavior: smooth; } } body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; background: linear-gradient(var(--veil), var(--veil)) fixed, var(--bg) var(--pattern) center / cover fixed; color: var(--text); font: 16px/1.65 var(--sans); -webkit-font-smoothing: antialiased; overflow-wrap: break-word; } a { color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: 3px; } a:hover { text-decoration-thickness: 2px; } :focus-visible { outline: 2px solid var(--accent-bright); outline-offset: 2px; border-radius: 4px; } .visually-hidden, .search-label, .search-status { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } .icon { width: 1.2em; height: 1.2em; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; } .site-header { position: sticky; top: 0; z-index: 30; border-bottom: 1px solid var(--line); } .site-header::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--header-bg); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); } .header-inner { display: flex; align-items: center; gap: 1rem; height: var(--header-h); max-width: 96rem; margin: 0 auto; padding: 0 clamp(.75rem, 3vw, 2rem); } .brand { display: flex; align-items: center; gap: .75rem; color: var(--text); text-decoration: none; flex: none; } .brand img { display: block; } .brand-text { display: flex; flex-direction: column; line-height: 1.1; } .brand-text strong { font-size: 1.35rem; font-weight: 700; letter-spacing: -.02em; } .site-nav { display: flex; align-items: center; gap: .25rem; margin-left: auto; } .site-nav a { display: flex; align-items: center; gap: .6rem; padding: .5rem .75rem; border-radius: 8px; color: var(--text); font-weight: 600; font-size: .95rem; text-decoration: none; white-space: nowrap; transition: background-color .3s ease; } .site-nav a:hover { background: var(--surface-2); } .site-nav a[aria-current] { background: var(--leaf-soft); color: var(--leaf); } .menu-toggle { position: absolute; opacity: 0; pointer-events: none; } .burger { display: none; } .search[hidden] { display: none; } .search { position: relative; flex: 1; min-width: 0; max-width: 28rem; margin: 0 0 0 1rem; } .search-input { width: 100%; padding: .55rem .9rem .55rem 2.3rem; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--surface) no-repeat .8rem 50% / 1rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23898887' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10' cy='10' r='7'/%3E%3Cpath d='m21 21-6-6'/%3E%3C/svg%3E"); color: var(--text); font: inherit; font-size: .92rem; } .search-input:focus { outline: 2px solid var(--accent-bright); outline-offset: -1px; border-color: transparent; } .search-input::-webkit-search-cancel-button { display: none; } .search-results { display: none; } .search:focus-within .search-results:not(:empty) { display: block; position: absolute; top: calc(100% + .5rem); left: 0; width: min(36rem, calc(100vw - 2rem)); max-height: 70vh; overflow-y: auto; margin: 0; padding: .4rem; list-style: none; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 16px 48px rgb(0 0 0 / .2); } .search:focus-within:has(.search-results:empty) .search-status:not(:empty) { position: absolute !important; top: calc(100% + .5rem); left: 0; width: min(24rem, calc(100vw - 2rem)); height: auto; clip: auto; white-space: normal; overflow: visible; margin: 0; padding: .8rem 1rem; color: var(--muted); font-size: .9rem; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 16px 48px rgb(0 0 0 / .2); } .search-results li a { display: block; padding: .55rem .75rem .1rem; border-radius: 8px 8px 0 0; color: var(--text); font-weight: 600; font-size: .93rem; text-decoration: none; } .search-results li { position: relative; border-radius: 8px; } .search-results li a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; } .search-results li:hover, .search-results li:focus-within { background: var(--surface-2); } .search-results li p { margin: 0; padding: 0 .75rem .55rem; color: var(--muted); font-size: .85rem; line-height: 1.45; } .search-results mark, .search-status mark { background: none; color: var(--accent); font-weight: 600; border: 0; padding: 0; } .site-footer { margin-top: 4rem; background: var(--header-bg); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border-top: 1px solid var(--line); color: var(--faint); font-size: .9rem; } .footer-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 2rem; max-width: 96rem; margin: 0 auto; padding: 1rem clamp(.75rem, 3vw, 2rem); } .footer-inner p { display: flex; align-items: center; gap: .6rem; margin: 0; } .footer-inner nav { display: flex; flex-wrap: wrap; gap: .25rem 1rem; } .footer-inner nav a { color: var(--faint); text-decoration-color: var(--line-strong); } .footer-inner nav a:hover { color: var(--muted); } mark { background: rgb(242 150 14 / .3); color: inherit; border-bottom: 2px solid var(--accent-bright); border-radius: 4px; padding: 0 .15em; transition: background-color .3s ease, color .3s ease; } mark:hover { background: var(--accent-bright); color: #1f1e1d; } .eyebrow { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--leaf); font-weight: 700; } .eyebrow span { color: var(--faint); } .button { position: relative; display: inline-flex; align-items: center; padding: .75rem 1.3rem; overflow: hidden; border-radius: 8px; border: 1px solid var(--line-strong); background: var(--surface); color: var(--text); font-weight: 600; text-decoration: none; } .button.primary { background: var(--leaf-button); border-color: transparent; color: #f2f7f3; } .button.primary::after { content: ""; position: absolute; top: 0; left: 25%; right: 25%; height: 1px; background: linear-gradient(to right, transparent, #f2f7f3, transparent); transition: left .3s ease, right .3s ease; } .button.primary::before { content: ""; position: absolute; top: 50%; left: 50%; width: 6rem; height: 6rem; border-radius: 50%; background: rgb(242 247 243 / .35); filter: blur(24px); transform: translate(-50%, -50%); transition: transform .3s ease; } .button.primary:hover::after { left: 33%; right: 0; } .button.primary:hover::before { transform: translate(-20%, -50%) scale(1.5) skewX(-12deg); } .button:hover { text-decoration: none; } .home { width: 100%; max-width: 80rem; margin: 0 auto; padding: 0 clamp(1rem, 4vw, 2.5rem); } .hero { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: center; gap: clamp(2rem, 6vw, 6rem); padding: clamp(3rem, 9vw, 6rem) 0 3rem; } .hero h1 { margin: .8rem 0 1.2rem; font-size: clamp(2.4rem, 6vw, 4rem); line-height: 1.05; letter-spacing: -.035em; font-weight: 700; text-wrap: balance; } .tagline { margin: 0; font-size: 1.15rem; color: var(--muted); max-width: 40rem; } .actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; } .hero-art { display: flex; flex-direction: column; align-items: center; gap: 1.5rem; min-width: 0; container-type: inline-size; } .wordmark { display: flex; align-items: center; margin: 0; font-size: min(8rem, 21cqi); font-weight: 700; line-height: 1; letter-spacing: -.03em; color: var(--tile-c); } .wordmark img { display: block; width: 1em; height: 1em; } .logo { width: clamp(120px, 18vw, 180px); height: auto; } .tile { mix-blend-mode: multiply; } .tile-a { fill: var(--tile-a); transform: rotate(-6deg); transform-origin: 31px 37px; } .tile-b { fill: var(--tile-b); transform: rotate(4deg); transform-origin: 62px 25px; } .tile-c { fill: var(--tile-c); transform: rotate(-2deg); transform-origin: 58px 65px; } @media (prefers-color-scheme: dark) { .tile { mix-blend-mode: screen; } } .install { width: 100%; margin: 0; padding: 1rem; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 12px 40px rgb(0 0 0 / .08); overflow-x: auto; font: .72rem/1.8 var(--mono); } .install .prompt { color: var(--leaf); user-select: none; } .diagrams figure { --c: var(--tile-a); --ink: #1f1e1d; position: relative; isolation: isolate; overflow: hidden; background: color-mix(in srgb, var(--surface) 78%, transparent); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid var(--line); border-radius: calc(var(--radius) + 4px); box-shadow: 0 1px 0 rgb(255 255 255 / .04) inset, 0 10px 30px -18px rgb(0 0 0 / .35); transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; } .diagrams figure:nth-child(3n + 3) { --c: var(--tile-b); } .diagrams figure:nth-child(3n + 4) { --c: var(--tile-c); --ink: #f2f7f3; } .diagrams figure::after { content: ""; position: absolute; top: 0; left: 30%; right: 30%; height: 1px; background: linear-gradient(to right, transparent, color-mix(in srgb, var(--c) 55%, transparent), transparent); transition: left .3s ease, right .3s ease; } .diagrams figure::before { content: ""; position: absolute; z-index: -1; top: -4rem; right: -4rem; width: 10rem; height: 10rem; border-radius: 50%; background: var(--c); opacity: .14; filter: blur(40px); transition: opacity .3s ease, transform .3s ease; } .diagrams figure:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--c) 45%, var(--line)); box-shadow: 0 18px 40px -20px color-mix(in srgb, var(--c) 60%, transparent); } .diagrams figure:hover::after { left: 15%; right: 15%; } .diagrams figure:hover::before { opacity: .28; transform: scale(1.3); } .feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 1.5rem clamp(2rem, 5vw, 4rem); align-items: start; margin: 0 0 5rem; } .feature-text h2 { margin: 0 0 1rem; font-size: clamp(1.6rem, 3.5vw, 2.25rem); line-height: 1.15; letter-spacing: -.02em; text-wrap: balance; } .feature-text p { margin: 0 0 1rem; color: var(--muted); font-size: 1.05rem; } .feature-text code { padding: .1em .35em; background: var(--surface-2); border: 1px solid var(--line); border-radius: 6px; font: .88em var(--mono); color: var(--text); } .feature-art { display: flex; flex-direction: column; gap: 1rem; min-width: 0; } .feature pre { margin: 0; padding: 1rem 1.2rem; max-width: 100%; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 12px 40px rgb(0 0 0 / .06); overflow-x: auto; font: .82rem/1.7 var(--mono); } .feature pre code { font: inherit; } .feature pre, .prose pre { tab-size: 2; } .feature-wide, .feature .scope { grid-column: 1 / -1; } .how .diagrams { grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); } .feature .diagrams { grid-template-columns: minmax(0, 1fr); } .feature-figure { margin: 0; padding: clamp(.75rem, 3vw, 1.5rem); background-color: var(--bg); background-image: radial-gradient(color-mix(in srgb, var(--faint) 45%, transparent) 1px, transparent 1.4px); background-size: 16px 16px; border: 1px solid var(--line); border-radius: var(--radius); } .plugin-grid { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); gap: 1rem 1.5rem; } .plugin-group h3 { margin: 0 0 .5rem; font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--leaf); } .plugin-group p { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; } .plugin-group a { padding: .15rem .55rem; background: color-mix(in srgb, var(--surface) 78%, transparent); border: 1px solid var(--line); border-radius: 999px; font: .8rem/1.6 var(--mono); color: var(--text); text-decoration: none; } .plugin-group a:hover { border-color: var(--accent-bright); color: var(--accent); } .plugin-all { grid-column: 1 / -1; margin: 0; } .scope { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: 1rem; } .scope-col { padding: 1.1rem 1.25rem; background: color-mix(in srgb, var(--surface) 78%, transparent); border: 1px solid var(--line); border-top: 3px solid var(--c); border-radius: var(--radius); } .scope-in { --c: var(--tile-c); } .scope-plugin { --c: var(--tile-a); } .scope-out { --c: var(--line-strong); } .scope-col h3 { margin: 0 0 .6rem; font-size: 1rem; } .scope-col ul { margin: 0; padding-left: 1.1rem; color: var(--muted); font-size: .95rem; } .scope-out ul { list-style: "– "; } @media (max-width: 60rem) { .feature { grid-template-columns: minmax(0, 1fr); } } .how { margin: 0 0 5rem; } .how>h2 { margin: 0 0 1rem; font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--leaf); } .how>h2 { margin-bottom: 1.25rem; font-size: clamp(1.6rem, 3.5vw, 2.25rem); text-transform: none; letter-spacing: -.02em; color: var(--text); } .diagrams { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 32rem), 1fr)); gap: 1rem; } .diagrams figure { display: flex; flex-direction: column; margin: 0; padding: .75rem; min-width: 0; } .diagrams figure.wide { grid-column: 1 / -1; } .diagrams figure>.diagram { box-sizing: border-box; padding: clamp(.75rem, 3vw, 1.75rem); background-color: var(--bg); background-image: radial-gradient(color-mix(in srgb, var(--faint) 45%, transparent) 1px, transparent 1.4px); background-size: 16px 16px; border: 1px solid var(--line); border-radius: var(--radius); } .diagrams figure.wide>.diagram { padding-left: max(1rem, calc((100% - 56rem) / 2)); padding-right: max(1rem, calc((100% - 56rem) / 2)); } .diagrams figcaption { padding: 1.1rem .75rem .5rem; } .diagrams h3 { display: flex; align-items: center; gap: .6rem; margin: 0 0 .4rem; font-size: 1.1rem; letter-spacing: -.01em; } .diagrams h3::before { content: ""; flex: none; width: .65rem; height: .65rem; border-radius: 3px; background: var(--c); transform: rotate(-6deg); } .diagrams p { margin: 0; color: var(--muted); font-size: .95rem; } .diagram { display: block; width: 100%; height: auto; } .diagram text, .diagram use { font: 10px var(--mono); fill: var(--muted); } text.d-small { font-size: 9px; } text.d-icon { font-size: 14px; } text.d-op { font-size: 18px; } .diagram-defs { position: absolute; width: 0; height: 0; overflow: hidden; } .only-narrow { display: none; } @media (max-width: 720px) { .diagram.only-wide { display: none; } .diagram.only-narrow { display: block; } } .d-frame-a { stroke: var(--tile-a); } .d-slot { fill: none; stroke-width: 1.5; stroke-dasharray: 5 4; } .d-slot-a { stroke: var(--tile-a); } .d-slot-b { stroke: var(--tile-b); } .d-slot-c { stroke: var(--tile-c); } text.d-slot-text-a { fill: var(--accent); } .d-soft-a { fill: var(--accent-soft); stroke: var(--tile-a); stroke-width: 1; } .d-folder { fill: var(--surface); stroke: var(--line-strong); stroke-width: 1.5; } .d-frame { fill: var(--bg); stroke: var(--line-strong); stroke-width: 1.5; } .d-bar { fill: var(--line); } .d-rule { stroke: var(--line-strong); stroke-width: 1.5; } .d-dot { fill: var(--muted); opacity: .5; } .d-pill, .d-chip, .d-badge { fill: var(--surface); stroke: var(--line-strong); stroke-width: 1.5; } .d-a { fill: var(--tile-a); } .d-b { fill: var(--tile-b); } .d-c { fill: var(--tile-c); } text.d-on-a, text.d-on-b { fill: #1f1e1d; } text.d-on-c { fill: var(--on-tile-c); } .d-flow { fill: none; stroke: var(--muted); stroke-width: 1.5; } .d-head { fill: var(--muted); } .d-head-hit { fill: var(--accent); } .d-cmd { fill: var(--accent-soft); stroke: var(--accent); stroke-width: 1.5; } text.d-cmd-text, text.d-hit-text, text.d-badge-text { fill: var(--accent); } .d-hitline { fill: none; stroke: var(--accent); stroke-width: 1.5; stroke-dasharray: 4 3; } .d-chip-hit { fill: var(--accent-soft); stroke: var(--accent); stroke-width: 1.5; } .d-dropped { opacity: .55; } .d-dropped .d-frame { stroke: var(--accent); stroke-dasharray: 5 4; } text.d-kept { font-size: 16px; fill: var(--leaf); } .d-stream-track { stroke: var(--line); stroke-width: 6; stroke-linecap: round; } .d-stream { stroke: var(--tile-a); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 2 10; } @media (prefers-reduced-motion: no-preference) { .d-stream { animation: d-flow 1s linear infinite; } .d-pulse { animation: d-pulse 2s ease-in-out infinite; } .d-refresh { animation: d-refresh 3s ease-in-out infinite; } .doc article { animation: fade-in .2s ease-in-out; } } @keyframes d-flow { to { stroke-dashoffset: -12; } } @keyframes d-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .45; } } @keyframes d-refresh { 0%, 70%, 100% { opacity: 1; } 80% { opacity: .15; } } @keyframes fade-in { from { opacity: 0; } to { opacity: 1; } } .map { display: flex; flex-direction: column; gap: 2.5rem; } .map>h2 { margin: 0; font-size: clamp(1.6rem, 3.5vw, 2.25rem); letter-spacing: -.02em; } .map-section { --c: var(--tile-a); display: grid; grid-template-columns: 13rem minmax(0, 1fr); gap: 1rem 2rem; align-items: start; } .map-section:nth-of-type(3n + 2) { --c: var(--tile-b); } .map-section:nth-of-type(3n + 3) { --c: var(--tile-c); } .map-section h3 { display: flex; align-items: center; gap: .6rem; margin: .9rem 0 0; font-size: 1.1rem; letter-spacing: -.01em; } .map-section h3::before { content: ""; flex: none; width: .65rem; height: .65rem; border-radius: 3px; background: var(--c); transform: rotate(-6deg); } .map ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 13rem), 1fr)); gap: .75rem; margin: 0; padding: 0; list-style: none; } .map li { display: flex; } .map li a { flex: 1; display: flex; flex-direction: column; gap: .3rem; padding: .9rem 1rem 1rem; color: var(--text); text-decoration: none; background: color-mix(in srgb, var(--surface) 78%, transparent); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid var(--line); border-radius: var(--radius); transition: transform .2s ease, border-color .2s ease; } .map li a:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--c) 55%, var(--line)); } .map li strong { font-weight: 600; font-size: .98rem; } .map li a:hover strong { color: var(--accent); } .map li span { color: var(--muted); font-size: .88rem; line-height: 1.5; } @media (max-width: 60rem) { .map-section { grid-template-columns: minmax(0, 1fr); } .map-section h3 { margin-top: 0; } } .docs { display: grid; grid-template-columns: 16rem minmax(0, 1fr) 14rem; align-items: start; width: 100%; max-width: 96rem; margin: 0 auto; padding: 0 clamp(.75rem, 3vw, 2rem); } .sidebar { position: sticky; top: var(--header-h); max-height: calc(100vh - var(--header-h)); overflow-y: auto; padding: 1.25rem 1rem 2rem; background: linear-gradient(to bottom, var(--bg), transparent); } .sidebar summary { display: none; } .sidebar h2 { margin: 1.25rem 0 .4rem; font-size: 1.05rem; font-weight: 700; } .sidebar section:first-child h2 { margin-top: 0; } .timeline { list-style: none; margin: 0 -1rem; padding: 0; } .timeline li { position: relative; } .timeline li::before { content: ""; position: absolute; top: 0; bottom: 0; left: 1.25rem; width: 1px; background: var(--line-strong); } .timeline li:first-child::before { top: 50%; } .timeline li:last-child::before { bottom: 50%; } .timeline li:only-child::before { display: none; } .timeline a { position: relative; display: block; padding: .3rem .5rem .3rem 2.5rem; color: var(--muted); font-size: .94rem; text-decoration: none; transition: background-color .1s ease; } .timeline a::after { content: ""; position: absolute; top: 50%; left: calc(1.25rem - 4px); width: 8px; height: 8px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 4px var(--bg); transform: translateY(-50%); } .timeline a:hover { background: var(--surface-2); color: var(--text); } .timeline a[aria-current="page"] { color: var(--accent); font-weight: 600; } .doc { min-width: 0; margin: 1.5rem 0 0; padding: clamp(1.25rem, 4vw, 3rem); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); } .doc>* { margin-left: auto; margin-right: auto; } .doc h1 { margin: .4rem 0 .6rem; font-size: clamp(2rem, 5vw, 2.75rem); line-height: 1.1; letter-spacing: -.03em; text-wrap: balance; } .lede { margin: 0 0 2rem; font-size: 1.15rem; color: var(--muted); } .toc-column { position: sticky; top: var(--header-h); max-height: calc(100vh - var(--header-h)); overflow-y: auto; padding: 1.5rem 0 2rem 1.5rem; font-size: .88rem; } .toc-column>p { margin: 0 0 .5rem; font-weight: 700; } .toc ol { list-style: none; margin: 0; padding: 0; } .toc>ol { border-left: 1px solid var(--line-strong); } .toc a { display: block; padding: .2rem 0 .2rem .8rem; color: var(--muted); text-decoration: none; } .toc ol ol a { padding-left: 1.6rem; } .toc a:hover { color: var(--accent); } .prose { min-width: 0; } .prose h2 { margin: 2.6rem 0 .8rem; font-size: 1.55rem; letter-spacing: -.015em; line-height: 1.25; } .prose h3 { margin: 2rem 0 .6rem; font-size: 1.2rem; line-height: 1.3; } .prose h4 { margin: 1.8rem 0 .5rem; font-size: 1rem; font-family: var(--mono); overflow-wrap: anywhere; } .prose p, .prose ul, .prose ol { margin: 0 0 1.1rem; } .prose ul, .prose ol { padding-left: 1.4rem; } .prose li { margin: .3rem 0; } .prose li::marker { color: var(--leaf); } .prose a { overflow-wrap: anywhere; } .prose code { padding: .12em .35em; background: var(--surface-2); border-radius: 5px; font: .86em var(--mono); overflow-wrap: anywhere; } .prose pre { margin: 0 0 1.4rem; padding: 1rem 1.2rem; max-width: 100%; background: var(--code-bg); border: 1px solid var(--line); border-radius: var(--radius); overflow-x: auto; font: .85rem/1.65 var(--mono); } .prose pre code { padding: 0; background: none; font: inherit; overflow-wrap: normal; } .prose figure.diagram-figure { margin: 0 0 1.6rem; background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; } .prose figure.diagram-figure .diagram { box-sizing: border-box; padding: clamp(.5rem, 3vw, 1.5rem) max(.5rem, calc((100% - 30rem) / 2)); background-color: var(--bg); background-image: radial-gradient(color-mix(in srgb, var(--faint) 45%, transparent) 1px, transparent 1.4px); background-size: 16px 16px; border-bottom: 1px solid var(--line); } .prose figure.diagram-figure figcaption { padding: .9rem 1.1rem; color: var(--muted); font-size: .9rem; } .prose blockquote { margin: 0 0 1.4rem; padding: .8rem 1.1rem; border-left: 3px solid var(--accent-bright); background: var(--surface-2); border-radius: 0 var(--radius) var(--radius) 0; } .prose blockquote p:last-child { margin: 0; } .prose hr { height: 2px; margin: 2.5rem 0; border: 0; background: linear-gradient(to right, transparent, var(--faint), transparent); } .prose img { display: block; max-width: 100%; height: auto; margin: 0 auto; } .table-scroll { max-width: 100%; margin: 0 0 1.4rem; overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); } .prose table { width: 100%; border-collapse: collapse; font-size: .92rem; } .prose th, .prose td { padding: .55rem .8rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; min-width: 8rem; } .prose tr:last-child td { border-bottom: 0; } .prose th { font-weight: 700; background: var(--surface-2); } .reference { margin-top: 3rem; padding: 1rem 1.2rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface-2); } .reference p { margin: 0 0 .6rem; font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--leaf); } .reference ul { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0; padding: 0; list-style: none; } .reference a { display: block; padding: .2rem .55rem; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface); text-decoration: none; max-width: 100%; } .reference a:hover { border-color: var(--accent); } .reference code { font: .82rem var(--mono); overflow-wrap: anywhere; } .pager { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 3rem; } .pager a { position: relative; flex: 1 1 14rem; display: flex; align-items: center; gap: .8rem; padding: .9rem 1.1rem; overflow: hidden; border: 1px solid var(--line-strong); border-radius: var(--radius); color: var(--text); font-weight: 600; text-decoration: none; } .pager a.next { justify-content: flex-end; text-align: right; } .pager small { display: block; color: var(--faint); font-size: .78rem; font-weight: 400; } .pager a::before { content: ""; position: absolute; top: 25%; width: 50%; height: 50%; border-radius: 50%; background: var(--line-strong); filter: blur(28px); transition: left .3s ease, right .3s ease; } .pager a::after { content: ""; position: absolute; top: 0; width: 50%; height: 1px; background: linear-gradient(to right, transparent, var(--faint), transparent); transition: left .3s ease, right .3s ease; } .pager a.prev::before, .pager a.prev::after { right: 0; } .pager a.prev:hover::before, .pager a.prev:hover::after { right: 50%; } .pager a.next::before, .pager a.next::after { left: 0; } .pager a.next:hover::before, .pager a.next:hover::after { left: 50%; } .pager a>* { position: relative; } .pager a:hover { border-color: var(--accent-bright); } .not-found { width: 100%; text-align: center; padding: 6rem clamp(1rem, 4vw, 2.5rem); flex: 1; } .not-found .code { margin: 0; font-size: 5rem; font-weight: 700; line-height: 1; letter-spacing: -.04em; color: var(--accent-bright); } .not-found h1 { margin: .5rem 0; } @media (max-width: 80rem) { .docs { grid-template-columns: 15rem minmax(0, 1fr); } .toc-column { display: none; } } @media (max-width: 60rem) { .docs { grid-template-columns: minmax(0, 1fr); } .sidebar { position: static; max-height: none; margin-top: 1rem; padding: .75rem 1rem; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); } .sidebar summary { display: list-item; cursor: pointer; font-weight: 700; } .sidebar nav { margin-top: .8rem; columns: 2 14rem; column-gap: 2rem; } .sidebar section { break-inside: avoid; } .sidebar h2 { margin-top: 0; padding-top: .5rem; } .timeline a::after { box-shadow: 0 0 0 4px var(--surface); } .doc { margin-top: 1rem; } .hero { grid-template-columns: minmax(0, 1fr); } } @media (max-width: 52rem) { .burger { display: flex; flex-direction: column; justify-content: center; gap: 5px; width: 2.75rem; height: 2.75rem; margin-left: auto; padding: 0 .6rem; flex: none; cursor: pointer; border-radius: 8px; } .burger i { display: block; height: 2px; border-radius: 2px; background: var(--muted); transition: transform .3s ease, opacity .3s ease; } .menu-toggle:focus-visible+.burger { outline: 2px solid var(--accent-bright); } .menu-toggle:checked+.burger i:nth-of-type(1) { transform: translateY(7px) rotate(45deg); } .menu-toggle:checked+.burger i:nth-of-type(2) { opacity: 0; } .menu-toggle:checked+.burger i:nth-of-type(3) { transform: translateY(-7px) rotate(-45deg); } .site-nav { position: fixed; top: var(--header-h); bottom: 0; left: 0; width: min(18rem, 100%); flex-direction: column; align-items: stretch; gap: .25rem; margin: 0; padding: 1rem; background: var(--header-bg); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-right: 1px solid var(--line); border-top: 1px solid var(--line); overflow-y: auto; transform: translateX(-100%); visibility: hidden; transition: transform .3s ease, visibility .3s; } .menu-toggle:checked~.site-nav { transform: none; visibility: visible; } .search { margin-left: .5rem; position: static; } .search:focus-within .search-results:not(:empty), .search:focus-within:has(.search-results:empty) .search-status:not(:empty) { position: fixed !important; top: calc(var(--header-h) + .25rem); left: .75rem; right: .75rem; width: auto; } } @media (max-width: 30rem) { .brand-text { display: none; } .pager a.next { justify-content: space-between; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }