:root{--paper:#f2efe7;--ink:#141410;--muted:#5e5d57;--blue:#2147f5;--rule:#d5d2c8;--white:#fffefa;--header:76px;font-family:Archivo,Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{touch-action:manipulation}button,a{color:inherit}a{color:var(--blue);text-underline-offset:4px}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}button{background:transparent;border:1px solid var(--rule);border-radius:5px;padding:10px 14px}button:hover:not(:disabled){background:#e9e6dd}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--blue);outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2{font-weight:400}h1{font:400 clamp(48px,5vw,76px)/1.03 'Instrument Serif',Georgia,serif;letter-spacing:-.035em;margin-bottom:22px}h2{font:400 34px/1.13 'Instrument Serif',Georgia,serif}p{line-height:1.65}img{display:block;max-width:100%}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:-80px;left:20px;z-index:20;background:var(--paper);padding:12px}.skip:focus{top:8px}.site-header{height:var(--header);position:sticky;top:0;z-index:5;display:grid;grid-template-columns:1fr minmax(0,2fr) 1fr;align-items:center;gap:16px;padding:12px 28px;border-bottom:1px solid var(--rule);background:var(--paper)}.header-back,.wordmark{justify-self:start;font:12px/1.2 'Space Mono',monospace;white-space:nowrap;text-decoration:none;color:var(--ink)}.wordmark{text-transform:uppercase;letter-spacing:.08em;font-weight:700}.header-back{border:0;padding:10px 0}.header-title{font-size:17px;text-align:center;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions{display:flex;justify-content:flex-end;gap:8px}.square{display:flex;align-items:center;justify-content:center;gap:7px;min-width:44px;height:44px;padding:8px;border:1px solid var(--rule);border-radius:5px;text-decoration:none;font-size:12px;color:var(--ink)}.square:hover{background:#e9e6dd}.icon{display:flex;align-items:center;justify-content:center}.icon img{width:22px;height:22px;object-fit:contain}.icon:has(img[hidden]){display:none}.preview-main{min-height:calc(100dvh - var(--header))}#menu{padding:64px clamp(20px,5vw,80px) 80px;max-width:1600px;margin:auto}.menu-heading{max-width:780px;margin-bottom:40px}.menu-heading p{font-size:18px;color:var(--muted);max-width:680px;margin:0}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.entry-card{border:1px solid var(--rule);border-radius:9px;overflow:hidden;background:var(--white);display:flex;flex-direction:column}.card-main{display:flex;flex-direction:column;width:100%;height:100%;border:0;border-radius:0;padding:0;text-align:left;background:transparent}.card-main:hover:not(:disabled){background:#f8f6ef}.card-main picture{display:block;width:100%;aspect-ratio:16/10;overflow:hidden;background:#e7e4dc;border-bottom:1px solid var(--rule)}.card-main img{width:100%;height:100%;object-fit:contain;object-position:center}.card-main h2{font:500 22px/1.25 Archivo,Arial,sans-serif;margin:22px 22px 12px}.card-main p{color:var(--muted);font-size:15px;line-height:1.6;margin:0 22px 20px}.entry-kind{font:11px/1.5 'Space Mono',monospace;margin:0 22px 20px;color:var(--muted)}.card-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--rule);padding:14px 20px;margin-top:auto;font-size:13px}.card-actions button{padding:6px 8px}.runtime-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px 24px;border-bottom:1px solid var(--rule)}.runtime-bar p{font-size:13px;color:var(--muted);margin:0;max-width:900px}.runtime-bar>div{display:flex;align-items:center;gap:20px;flex-shrink:0;font-size:13px}.runtime-bar button{padding:7px 10px}#runtime{height:calc(100dvh - var(--header));display:flex;flex-direction:column}#app-frame{width:100%;flex:1;min-height:0;border:0;background:white}dialog{color:var(--ink);border:1px solid var(--rule);border-radius:12px;padding:28px;max-height:calc(100dvh - 48px);box-shadow:0 24px 100px #14141033;background:var(--paper)}dialog::backdrop{background:#14141055;backdrop-filter:blur(4px)}.dialog-heading{display:flex;align-items:start;justify-content:space-between;gap:24px;margin-bottom:24px}.dialog-heading h2{margin:0;font-size:32px}.dialog-heading button{font-size:13px;flex-shrink:0}.glass{background:#f2efe7e8;backdrop-filter:blur(24px)}.selector-dialog{width:min(1220px,calc(100% - 64px));max-width:none}.selector-dialog .card-grid{gap:20px}.selector-dialog .card-main h2{font-size:19px}.text-button{border:0;padding:0;color:var(--blue);margin-bottom:20px;text-decoration:underline}.search-dialog{width:min(720px,calc(100% - 40px));max-width:none;top:8vh;margin-top:0}.search-dialog input{width:100%;border:1px solid var(--rule);border-radius:5px;padding:14px;background:var(--white);font-size:18px}.search-hint,.key-hint{font-size:12px;color:var(--muted);margin:14px 0}.search-results{max-height:50dvh;overflow:auto}.search-result{display:block;padding:16px 6px;border-top:1px solid var(--rule);text-decoration:none}.search-result strong{display:block;font-size:16px;color:var(--ink)}.search-result span{display:block;font-size:12px;color:var(--muted);margin-top:6px}.search-result p{font-size:13px;color:var(--muted);margin:6px 0 0}.guide-dialog{margin:0 0 0 auto;top:0;right:0;height:100dvh;max-height:none;width:430px;max-width:100%;border-radius:0;padding:28px;overflow:auto}.guide-dialog h3{margin-top:30px;font-size:16px}.guide-dialog>p{font-size:15px;color:var(--muted)}.task-list{list-style:none;padding:0;margin:16px 0}.task-list li{margin:12px 0}.task-list button{width:100%;text-align:left;padding:14px;background:var(--white)}.guide-status{min-height:50px}.docs-layout{display:grid;grid-template-columns:240px minmax(0,760px) 200px;gap:50px;max-width:1510px;padding:48px 40px 100px;margin:auto;align-items:start}.docs-nav,.article-toc{position:sticky;top:calc(var(--header) + 32px);max-height:calc(100dvh - var(--header) - 64px);overflow:auto;font-size:13px}.docs-nav details>summary{display:none}.docs-nav section{margin-top:26px}.docs-nav h2{font:600 13px/1.4 Archivo,Arial,sans-serif;margin:0 0 10px;color:var(--ink)}.docs-nav h3{font-size:11px;line-height:1.4;color:var(--muted);font-weight:500;margin:16px 0 4px}.docs-nav a{display:block;padding:7px 10px;text-decoration:none;color:var(--muted);border-radius:4px}.docs-nav a[aria-current]{background:#e6e6f0;color:var(--blue);font-weight:600}.docs-nav .library-link{font-weight:600;color:var(--ink);padding-left:0}.article{font-size:16px;line-height:1.75;min-width:0;overflow-wrap:anywhere}.article h1{font-size:54px;line-height:1.08;margin-bottom:28px}.article h2{font-size:34px;margin-top:48px;margin-bottom:18px;padding-top:6px}.article h3{font-size:20px;font-weight:600;margin-top:32px}.article h4{font-size:17px}.article :is(h1,h2,h3,h4,h5){scroll-margin-top:110px}.article p,.article ul,.article ol,.article blockquote,.article pre,.article table{margin-bottom:24px}.article a{overflow-wrap:anywhere}.article code{font:13px/1.7 'Space Mono',monospace;background:#e9e6dd;padding:2px 4px;border-radius:3px}.article pre{overflow:auto;padding:20px;border:1px solid var(--rule);border-radius:5px;background:#e9e6dd;max-width:100%}.article pre code{background:none;padding:0;white-space:pre}.article blockquote{margin-inline:0;border-left:3px solid var(--blue);padding-left:20px;color:var(--muted)}.article table{border-collapse:collapse;display:block;overflow:auto;max-width:100%;font-size:14px}.article th,.article td{border:1px solid var(--rule);padding:10px 14px;vertical-align:top}.article img{height:auto;border:1px solid var(--rule)}.article-toc summary{font-size:12px;font-weight:600;list-style:none;margin-bottom:14px}.article-toc nav a{display:block;font-size:12px;line-height:1.5;padding:6px 0;text-decoration:none;color:var(--muted)}.article-toc nav a:hover{color:var(--blue)}.article-toc .toc-level-3{padding-left:12px}.source-link{padding-top:24px;border-top:1px solid var(--rule);margin-top:48px;font-size:13px}.lead{font-size:19px;color:var(--muted)}.doc-projects{display:grid;gap:22px;margin-top:40px}.doc-project{padding:24px;border:1px solid var(--rule);border-radius:8px;text-decoration:none;background:var(--white)}.doc-project h2{margin:0 0 12px;font:500 22px/1.3 Archivo,Arial,sans-serif;color:var(--ink)}.doc-project p{font-size:15px;color:var(--muted);margin-bottom:16px}.doc-project span{font-size:13px}.mermaid-diagram{margin:28px 0;overflow:auto}.mermaid-diagram svg{height:auto;max-width:100%}.library{grid-column:2/4;max-width:860px}
@media(min-width:1500px){.card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1200px){.docs-layout{grid-template-columns:210px minmax(0,1fr);gap:36px}.article-toc{grid-column:2;grid-row:1;position:static;max-height:none}.article{grid-column:2}.docs-nav{grid-column:1;grid-row:1/3}.library{grid-column:2}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.site-header{padding:10px 20px;gap:12px;grid-template-columns:auto minmax(0,1fr) auto}.header-title{font-size:15px}.square{min-width:40px;height:40px;padding:7px}.square .icon-label{font-size:11px}.icon img{width:20px;height:20px}.docs-layout{display:flex;flex-direction:column;padding:28px 24px 70px;gap:24px}.docs-nav,.article-toc{position:static;width:100%;max-height:none;order:0}.docs-nav details>summary,.article-toc details>summary{display:list-item;cursor:pointer;font-size:13px;font-weight:600;margin:0}.docs-nav details,.article-toc details{padding:14px 0;border-bottom:1px solid var(--rule)}.docs-nav nav{margin-top:20px}.article-toc{order:1}.article{order:2;width:100%}.article-toc nav{padding-top:12px}.library{order:1}.article h1{font-size:46px}.selector-dialog{width:calc(100% - 32px);padding:22px}.runtime-bar{gap:12px;padding:9px 16px}.runtime-bar p{font-size:12px}.runtime-bar>div{gap:12px}.wordmark{font-size:10px;max-width:95px;white-space:normal}.guide-dialog{width:390px}}@media(max-width:600px){:root{--header:68px}.site-header{padding:10px 14px;gap:7px}.header-back{font-size:11px}.header-title{font-size:13px}.header-actions{gap:5px}.square{min-width:36px;height:38px;padding:6px}.icon img{width:20px;height:20px}.square:has(.icon img:not([hidden])) .icon-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#menu{padding:38px 20px 60px}.menu-heading{margin-bottom:28px}.menu-heading p{font-size:16px}.card-grid{grid-template-columns:1fr;gap:24px}.card-main picture{aspect-ratio:4/3}.card-main img{object-fit:contain}.card-main h2{font-size:21px;margin:20px 20px 10px}.card-main p{margin-inline:20px;font-size:14px}.runtime-bar{align-items:start;flex-direction:column;gap:6px}.runtime-bar>div{width:100%;justify-content:space-between}.runtime-bar button{font-size:12px}.runtime-bar p{max-height:38px;overflow:auto}.selector-dialog{width:calc(100% - 24px);padding:20px;max-height:calc(100dvh - 24px)}.dialog-heading{gap:14px}.dialog-heading h2{font-size:28px}.search-dialog{padding:22px 18px;top:20px;width:calc(100% - 24px)}.search-dialog input{font-size:16px}.key-hint{font-size:10px}.guide-dialog{padding:24px 20px}.article{font-size:15px}.article h1{font-size:43px}.article h2{font-size:31px;margin-top:38px}.article pre{padding:14px}.article code{font-size:11px}.docs-layout{padding-inline:20px}.article table{font-size:12px}.doc-project{padding:20px}}
@media(prefers-reduced-motion:no-preference){dialog[open]{animation:dialog-in .16s ease-out}@keyframes dialog-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}} @media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.header-back{display:inline-flex;align-items:center;gap:8px}.header-back .icon img{width:21px;height:21px}
.header-left{display:flex;align-items:center;gap:20px;min-width:0}.square:has(.icon img:not([hidden])) .icon-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.square:has(.icon img[hidden]) .icon-label{position:static;width:auto;height:auto;clip:auto;overflow:visible}.header-left .wordmark{font-size:11px}.header-back{gap:6px}
@media(max-width:600px){body[data-site=preview]{--header:108px}body[data-site=preview] .site-header{height:108px;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:44px 34px;gap:5px 10px}body[data-site=preview] .header-left{grid-column:1;grid-row:1;gap:12px}body[data-site=preview] .header-actions{grid-column:2;grid-row:1}body[data-site=preview] .header-title{grid-column:1/3;grid-row:2;text-align:left;font-size:15px;white-space:normal;line-height:1.2}body[data-site=preview] .header-left .wordmark{white-space:nowrap;max-width:none;font-size:10px}body[data-site=preview] .header-back .icon{display:none}.square{min-width:42px;width:42px;height:42px}}
.docs-nav .nav-project{border:0;padding:0;margin-top:22px}.docs-nav .nav-project>summary{display:list-item;font:600 13px/1.5 Archivo,Arial,sans-serif;cursor:pointer;margin-bottom:10px}.docs-nav .nav-project>div{padding:0 0 6px 6px}.docs-nav .nav-project h3{margin-top:14px}.docs-nav .nav-project a{padding-block:7px}
@media(max-width:600px){.card-main picture{aspect-ratio:auto}.card-main img{height:auto;width:100%;object-fit:contain}.selector-dialog .card-main picture{aspect-ratio:auto}.docs-nav .nav-project>summary{font-size:14px}.docs-nav .nav-project>div{padding-left:8px}}
/* Page guide stays beside the app; search and entry selector retain modal behavior. */
.guide-dialog{position:fixed;top:var(--header);left:auto;right:0;width:360px;height:calc(100dvh - var(--header));max-height:none;max-width:100%;margin:0;border:0;border-left:1px solid var(--rule);border-radius:0;box-shadow:none;z-index:4;padding:24px}
.guide-dialog::backdrop{background:transparent;backdrop-filter:none}
body:has(#guide-dialog[open]) .preview-main{margin-right:360px}
.runtime-guide-status{margin:0;padding:8px 20px;border-bottom:1px solid var(--rule);font-size:13px;color:var(--muted);background:var(--paper);flex-shrink:0}
@media(max-width:900px){body:has(#guide-dialog[open]) .preview-main{margin-right:0}.guide-dialog{width:360px;box-shadow:-8px 0 24px #14141018}}
.card-actions a{display:inline-flex;align-items:center;min-height:38px;padding:7px 11px;border:1px solid var(--rule);border-radius:5px;text-decoration:none}.card-actions a:hover{background:#e9e6dd}

.site-credit{height:40px;display:flex;align-items:center;justify-content:center;border-top:1px solid var(--rule);font-size:12px}.site-credit a{color:var(--muted);text-decoration:none}.site-credit a:hover{text-decoration:underline}.preview-main{min-height:calc(100dvh - var(--header) - 40px)}#runtime{height:calc(100dvh - var(--header) - 40px)}
