:root{color-scheme:light;--paper: #fcfcfb;--paper-2: #f3f2ee;--paper-3: #e8e6df;--ink: #1a1612;--ink-2: #4a3f31;--ink-soft: #908576;--accent: #4a3f31;--hairline: rgba(26, 22, 18, .14);--pill: #fcfcfb;--live: #c44a3b;--ok: #2d5d3a;--edge: inset 0 0 0 1px rgba(255, 255, 255, .55), 0 0 0 1px rgba(26, 22, 18, .04);--edge-lg: inset 0 0 0 1px rgba(255, 255, 255, .6), 0 0 0 1px rgba(26, 22, 18, .06), 0 8px 28px rgba(26, 22, 18, .06);--recess: inset 0 1px 2px rgba(26, 22, 18, .06), inset 0 0 0 1px rgba(26, 22, 18, .04);--raised: inset 0 0 0 1px rgba(255, 255, 255, .8), 0 0 0 1px rgba(26, 22, 18, .05), 0 1px 2px rgba(26, 22, 18, .07);--tile-shadow: drop-shadow(0 2px 6px rgba(26, 22, 18, .1));--tile-shadow-hover: drop-shadow(0 3px 10px rgba(26, 22, 18, .26)) saturate(1.1);--tile-shadow-selected: drop-shadow(0 7px 20px rgba(26, 22, 18, .34)) saturate(1.14);--font-serif: ui-serif, "Iowan Old Style", "Apple Garamond", Georgia, serif;--font-mono: ui-monospace, "SF Mono", Menlo, monospace}:root[data-theme=dark]{color-scheme:dark;--paper: #17181c;--paper-2: #212329;--paper-3: #2c2f36;--ink: #ece8e1;--ink-2: #b7afa2;--ink-soft: #837c70;--accent: #d8d2c6;--hairline: rgba(236, 232, 225, .2);--pill: #3a3e48;--live: #d9705f;--ok: #6faf7f;--edge: inset 0 0 0 1px rgba(255, 255, 255, .05), 0 0 0 1px rgba(0, 0, 0, .4);--edge-lg: inset 0 0 0 1px rgba(255, 255, 255, .06), 0 0 0 1px rgba(0, 0, 0, .5), 0 10px 30px rgba(0, 0, 0, .5);--recess: inset 0 1px 2px rgba(0, 0, 0, .5), inset 0 0 0 1px rgba(255, 255, 255, .04);--raised: inset 0 0 0 1px rgba(255, 255, 255, .07), 0 0 0 1px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .5);--tile-shadow: drop-shadow(0 3px 10px rgba(0, 0, 0, .5));--tile-shadow-hover: drop-shadow(0 4px 14px rgba(0, 0, 0, .6)) saturate(1.1);--tile-shadow-selected: drop-shadow(0 8px 24px rgba(0, 0, 0, .75)) saturate(1.14)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-serif);font-size:18px;line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--ink);text-underline-offset:3px;text-decoration-thickness:1px}.wrap{max-width:880px;margin:0 auto;padding:0 24px}.kicker{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 12px}.topbar{position:absolute;top:18px;right:20px;z-index:10}.theme-toggle{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:999px;background:var(--paper-2);box-shadow:var(--raised);color:var(--ink-2);font-size:15px;line-height:1;cursor:pointer;transition:color .14s ease}.theme-toggle:hover{color:var(--ink)}.hero{text-align:center;padding-block:92px 8px}.pill-new{display:inline-flex;align-items:center;gap:8px;margin-bottom:22px;padding:6px 14px 6px 12px;border-radius:999px;background:var(--paper-2);box-shadow:var(--raised);font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);text-decoration:none}.pill-new:hover{color:var(--ink)}.pill-new .dot{width:6px;height:6px;border-radius:999px;background:var(--live)}.hero h1{width:fit-content;margin:0 auto;font-weight:700;font-size:clamp(44px,8vw,78px);letter-spacing:.01em;line-height:1.02}.wordmark{outline:none;cursor:default}.wm-stack{display:inline-grid}.wm-stack>span{grid-area:1 / 1;transition:opacity .45s ease,filter .45s ease}.wm-kana{opacity:0;filter:blur(6px);font-family:"Hiragino Mincho ProN","Yu Mincho",var(--font-serif)}.wordmark:hover .wm-romaji,.wordmark:focus-within .wm-romaji{opacity:0;filter:blur(6px)}.wordmark:hover .wm-kana,.wordmark:focus-within .wm-kana{opacity:1;filter:blur(0)}.wm-gloss{display:block;margin-top:8px;font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:clamp(15px,2vw,20px);letter-spacing:.02em;color:var(--ink-soft);opacity:0;transition:opacity .45s ease}.wordmark:hover .wm-gloss,.wordmark:focus-within .wm-gloss{opacity:1}@media(prefers-reduced-motion:reduce){.wm-stack>span,.wm-gloss{transition:none}.wm-kana,.wordmark:hover .wm-romaji,.wordmark:focus-within .wm-romaji,.wordmark:hover .wm-kana,.wordmark:focus-within .wm-kana{filter:none}}.hero .tagline{margin:16px auto 0;max-width:22ch;font-size:clamp(19px,2.6vw,26px);color:var(--ink-2)}.hero .sub{margin:18px auto 0;max-width:54ch;color:var(--ink-soft)}.cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:30px}.btn{display:inline-block;padding:11px 22px;border-radius:999px;font-size:15px;text-decoration:none;transition:transform .14s ease,box-shadow .14s ease,opacity .14s ease}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--ink);color:var(--paper);box-shadow:var(--edge)}.btn-primary:hover{opacity:.9}.btn-ghost{background:var(--paper-2);color:var(--ink);box-shadow:var(--raised)}.btn-ghost:hover{color:var(--ink)}.path{margin-top:34px}.path h3{font-size:20px;margin:0 0 10px}.path p{margin:0 0 14px;color:var(--ink-2)}.repo-row{display:flex;align-items:stretch;gap:14px;flex-wrap:wrap;margin:10px 0 26px}.repo-row .btn{display:flex;align-items:center;flex:none}.repo-row .code{flex:1 1 366px;margin:0;display:flex;align-items:center}.shot{max-width:720px;margin:52px auto 8px;border-radius:18px;overflow:hidden;background:var(--paper);box-shadow:var(--edge-lg)}.shot img{display:block;width:100%;height:auto}.shot .dark{display:none}:root[data-theme=dark] .shot .light{display:none}:root[data-theme=dark] .shot .dark{display:block}.shot-caption{text-align:center;color:var(--ink-soft);font-size:13px;margin:14px 0 0}.section{padding-block:56px;border-top:1px solid var(--hairline)}.section h2{margin:0 0 10px;font-size:clamp(24px,3.4vw,34px);letter-spacing:.01em}.section .lede{margin:0 0 32px;max-width:60ch;color:var(--ink-soft)}.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:26px 32px}.feature h3{margin:0 0 5px;font-size:18px;font-weight:700}.feature p{margin:0;font-size:15.5px;color:var(--ink-soft)}.feature .dot{display:inline-block;width:8px;height:8px;border-radius:999px;background:var(--accent);margin:0 0 10px;box-shadow:var(--edge)}.step{margin:0 0 6px;font-size:15px;color:var(--ink-2)}.code{position:relative;margin:10px 0 26px;padding:15px 18px;border-radius:12px;background:var(--paper-2);box-shadow:var(--recess);overflow-x:auto}.code pre{margin:0;font-family:var(--font-mono);font-size:13.5px;line-height:1.7;color:var(--ink);white-space:pre}.code-inline{padding-right:78px}.code-inline .copy-btn{top:50%;transform:translateY(-50%)}.code-inline pre{white-space:normal;overflow-wrap:anywhere}.copy-btn{position:absolute;top:10px;right:10px;padding:4px 10px;border:0;border-radius:999px;background:var(--pill);box-shadow:var(--raised);color:var(--ink-2);font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;cursor:pointer}.copy-btn:hover{color:var(--ink)}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.envtable{width:100%;border-collapse:collapse;font-size:15px;margin-top:8px}.envtable th,.envtable td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--hairline);vertical-align:top}.envtable th{color:var(--ink-2);font-weight:700}.envtable code{font-family:var(--font-mono);font-size:13px;overflow-wrap:anywhere}.advanced{margin-top:24px;border-top:1px solid var(--hairline);padding-top:16px}.advanced>summary{cursor:pointer;color:var(--ink-2);font-weight:700;letter-spacing:.02em}.advanced>summary:hover{color:var(--ink)}.advanced h3{margin-top:24px;font-size:15px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.advanced .envtable td:nth-child(-n+2),.advanced .envtable th:nth-child(-n+2){white-space:nowrap}.advanced .envtable td:nth-child(-n+2) code{overflow-wrap:normal}.advanced-note{margin-top:12px;color:var(--ink-2);font-size:15px}.footer{padding-block:48px 72px;border-top:1px solid var(--hairline);color:var(--ink-soft);font-size:14px;line-height:1.7}.footer a{color:var(--ink-2)}.footer .mono{font-family:var(--font-mono);font-size:12px;letter-spacing:.02em}@media(max-width:640px){.hero{padding-top:72px}.section{padding-block:44px}}
