@font-face{font-family:Geist Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/geist-sans-latin-400-normal-gapTbOY8.woff2)format("woff2")}@font-face{font-family:Geist Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/geist-sans-latin-500-normal-uokXdC-Q.woff2)format("woff2")}@font-face{font-family:Geist Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/geist-sans-latin-600-normal-DFOURf8L.woff2)format("woff2")}@font-face{font-family:Geist Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/geist-sans-latin-700-normal-BmN9tIp5.woff2)format("woff2")}@font-face{font-family:Geist Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/geist-sans-latin-800-normal-EH2RlpXL.woff2)format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/geist-mono-latin-400-normal-DTRLJnHl.woff2)format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/geist-mono-latin-500-normal-YINYabwD.woff2)format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/geist-mono-latin-600-normal-V-KvD_pi.woff2)format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/geist-mono-latin-700-normal-DDxuFlf6.woff2)format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/geist-mono-latin-800-normal-CM8EbTL6.woff2)format("woff2")}:root{--page-max:1280px;--page-x:max(56px, calc((100% - var(--page-max)) / 2));--card-p:48px;--content-x:calc(var(--page-x) + 1px + var(--card-p));--nav-gap:40px;--nav-y:20px;--nav-h:75px}.tap-target{align-items:center;min-height:24px;display:inline-flex}.nav-menu-btn{display:none}.nav-dropdown>summary::-webkit-details-marker{display:none}.disclosure>summary::-webkit-details-marker{display:none}.nav-dropdown[open]>summary svg,.disclosure[open]>summary svg{transform:rotate(180deg)}.disclosure>summary:focus-visible,.nav-link:focus-visible,.nav-menu-btn:focus-visible,.menu-item:focus-visible{outline-offset:2px;outline:2px solid}@media (hover:hover){.nav-link:hover,.menu-item:hover,.nav-button:hover{box-shadow:inset 0 0 0 100vmax var(--nav-shade)}}.playground-app{--playground-x:20px;height:calc(100svh - var(--nav-h));flex-direction:column;min-height:520px;display:flex}.playground-body{flex:1;grid-template-columns:260px minmax(0,1fr) minmax(280px,380px);min-height:0;display:grid}.playground-pane{flex-direction:column;min-width:0;min-height:0;display:flex}.playground-views{display:none}.turbo-body{flex:1;grid-template:"project editor"minmax(0,1fr)"packages editor"minmax(0,1fr)"output output"170px/270px minmax(0,1fr);gap:18px 10px;min-height:0;padding:18px 10px 10px;display:grid}.turbo-project{grid-area:project}.turbo-packages{grid-area:packages}.turbo-editor{grid-area:editor}.turbo-output{grid-area:output}html[data-playground-skin=turbo] .playground-app[data-skin=modern]{visibility:hidden}.turbo-bar button{background:0 0}@media (hover:hover){.turbo-bar button:hover:not(:disabled){background:#0a0}.turbo-menu a:hover{background:var(--hover)}}.tutorial-grid{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;column-gap:48px;display:grid}.tutorial-grid>section{grid-area:1/2/span 2}@media (width<=1100px){.tutorial-grid{grid-template-rows:none;grid-template-columns:minmax(0,1fr);gap:32px}.tutorial-grid>section{grid-area:auto}}.examples-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}@media (width<=1100px){.examples-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.examples-grid{grid-template-columns:minmax(0,1fr)}}.example-card{border:1px solid var(--rule);background:var(--card);border-radius:14px;flex-direction:column;min-width:0;text-decoration:none;display:flex;overflow:hidden}.example-card:hover,.example-card:focus-visible{border-color:var(--lit)}.example-card-picture{aspect-ratio:16/10;border-bottom:1px solid var(--rule);display:block;overflow:hidden}.example-card-picture img{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.hero{min-height:calc(100svh - var(--nav-h));flex-direction:column;display:flex}.hero-grid{--hero-title:clamp(36px, 3.3vw, 48px);flex:1;grid-template-columns:minmax(0,1fr) 560px;align-content:center;align-items:center;gap:80px;display:grid}.turbo-menu [role=tab]{background:0 0}@media (hover:hover){.turbo-menu [role=tab]:hover{background:var(--hover)}}.runs-on-list{justify-content:space-between;align-items:flex-start;gap:32px 24px;margin:0;padding:0;list-style:none;display:flex}.runs-on-item{flex-direction:column;align-items:center;gap:6px;display:flex}@media (width<=1060px){.runs-on-list{flex-wrap:wrap;justify-content:center}}.platform-flow{position:relative}.platform-map{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;display:none}@media (width<=1240px){.platform-flow{display:none}.platform-map{display:grid}}@media (width<=960px){.platform-map{grid-template-columns:minmax(0,1fr)}.platform-map-arrow{justify-self:center;transform:rotate(90deg)}}li>.map-link:hover{background:#7f7f7f14}.map-link:focus-visible{outline-offset:2px;outline:2px solid}.platform-map .map-link:focus-visible{outline-offset:-2px}.demo-code{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.demo-query:focus-visible{outline-offset:-2px;outline:2px solid}.showcase-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:1fr;column-gap:32px;margin:0;padding:0;list-style:none;display:grid}.showcase-grid>li{border-top:1px solid var(--rule);display:grid}.showcase-item{border:1px solid #0000;border-radius:10px;flex-direction:column;gap:4px;margin:-1px -12px 7px;padding:16px 11px;display:flex}.showcase-item:hover{border-color:var(--box)}.showcase-item:focus-visible{outline-offset:2px;outline:2px solid}@media (width<=1000px){.showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.showcase-grid{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto}}@media (width<=1240px){.demo-code{grid-template-columns:minmax(0,1fr)}.hero-grid{--hero-title:clamp(36px, 5vw, 56px);grid-template-columns:minmax(0,1fr);gap:40px}}@media (width<=1000px){.playground-app{--playground-x:16px}.playground-views{display:flex}.playground-body{grid-template-columns:minmax(0,1fr)}.turbo-body{grid-template:none/minmax(0,1fr);grid-auto-rows:minmax(0,1fr);padding:18px 8px 8px}.turbo-body>*{grid-area:auto}.playground-pane[data-shown=false]{display:none}}@media (width<=1100px){.nav-links{display:none!important}.nav-links[data-open=true]{flex-direction:column;flex-basis:100%;order:10;padding:6px 0 2px;align-items:stretch!important;margin-left:0!important;display:flex!important}.nav-links[data-open=true] a{justify-content:flex-start!important;margin-left:0!important}.version-menu{margin:0!important}.nav-menu-btn{display:grid!important}.nav-links .nav-dropdown-panel{min-width:0!important;box-shadow:none!important;background:0 0!important;border:0!important;padding:0 0 0 14px!important;position:static!important}}@media (width<=860px){:root{--page-x:0px;--card-p:12px;--nav-gap:0px;--nav-y:10px;--nav-h:65px;--content-x:calc(var(--page-x) + var(--card-p))}.tap-target{justify-content:center;align-items:center;min-width:44px!important;min-height:44px!important;display:inline-flex!important}}@media (width<=480px){.nav-github-label{display:none}}@media (width<=340px){:root{--nav-h:121px}}html,body{color:#0a0a0a;background:#fff;margin:0;padding:0;font-family:Geist,-apple-system,BlinkMacSystemFont,sans-serif}*,:before,:after{box-sizing:border-box}a{color:inherit;text-decoration:none}button{font-family:inherit}.prompt-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#04060cb8}.skip-link{z-index:20;color:#070b14;background:#e7ebf3;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:600;transition:top .15s;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}.lib-row,.lib-group-head{grid-template-columns:160px minmax(0,1fr) 80px 200px;grid-template-areas:"name summary version license";align-items:baseline;column-gap:20px;display:grid}.lib-group-head h2{grid-column:1/3}.lib-row{border-radius:8px;row-gap:4px;margin:0 -10px;padding:13px 10px}.lib-row:hover{background:#7f7f7f14}.lib-row:focus-visible{outline-offset:-2px;outline:2px solid}.lib-name{grid-area:name}.lib-summary{grid-area:summary}.lib-version{grid-area:version}.lib-license{grid-area:license}.changelog-layout{grid-template-columns:minmax(0,1fr) 200px;align-items:start;gap:clamp(20px,3vw,44px);display:grid}.changelog-rail{max-height:calc(100vh - 110px);position:sticky;top:86px;overflow-y:auto}@media (width<=900px){.changelog-layout{grid-template-columns:minmax(0,1fr)}.changelog-rail{display:none}.lib-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name version""summary summary""license license"}.lib-group-head{display:block}.lib-label{display:none}}.doc-grid{grid-template-columns:210px minmax(0,1fr) 200px;align-items:start;gap:clamp(20px,3vw,44px);display:grid}.doc-side,.doc-toc{max-height:calc(100vh - 110px);position:sticky;top:86px;overflow-y:auto}.doc-main{min-width:0;max-width:760px}@media (width<=1100px){.doc-grid{grid-template-columns:210px minmax(0,1fr)}.doc-toc{display:none!important}}@media (width<=900px){.doc-grid{grid-template-columns:minmax(0,1fr)}.doc-side{max-height:none;position:static;display:none!important}.doc-side[data-open=true]{display:flex!important}.doc-side a{justify-content:flex-start!important}.doc-menu-btn{justify-self:start;display:inline-flex!important}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
