.readme-prose{max-width:64ch;margin:0 auto;font-family:var(--serif);font-size:var(--fs-body);line-height:1.65;color:var(--ink)}.readme-prose h1{font-family:var(--serif);font-size:var(--fs-display-4);line-height:1.15;font-weight:500;margin:48px 0 16px;color:var(--ink)}.readme-prose h1 em{font-style:italic}.readme-prose h2{font-family:var(--serif);font-style:italic;font-size:var(--fs-title);line-height:1.2;font-weight:500;margin:40px 0 12px;color:var(--ink);border-bottom:1px solid var(--rule);padding-bottom:var(--sp-2)}.readme-prose h3{font-family:var(--serif);font-style:italic;font-size:var(--fs-title-sm);margin:var(--sp-8) 0 10px 0;font-weight:500}.readme-prose h4{font-family:var(--serif);font-style:italic;font-size:var(--fs-body-lg);margin:var(--sp-6) 0 var(--sp-2) 0;font-weight:500}.readme-prose p{margin:0 0 16px;color:var(--ink-2)}.readme-prose a{color:var(--acc);text-decoration:underline;text-decoration-color:color-mix(in oklab,var(--acc) 40%,transparent);text-underline-offset:3px}.readme-prose a:hover{text-decoration-color:var(--acc)}.readme-prose code{font-family:var(--mono);font-size:var(--fs-body-sm);color:var(--acc);padding:1px 4px;background:color-mix(in oklab,var(--acc) 6%,transparent);border-radius:var(--r-sm)}.readme-prose pre{background:var(--bg-3);border:1px solid var(--rule);border-radius:var(--r-sm);padding:16px 20px;overflow-x:auto;margin:18px 0;font-family:var(--mono);font-size:var(--fs-body-sm);line-height:1.55;color:var(--ink-2)}.readme-prose pre code{background:none;padding:0;color:inherit;font-size:inherit}.readme-prose blockquote{border-left:2px solid var(--acc);padding:4px 0 4px 18px;margin:18px 0;font-style:italic;color:var(--ink-2)}.readme-prose ul,.readme-prose ol{margin:0 0 18px;padding-left:var(--sp-6);color:var(--ink-2)}.readme-prose li{margin:6px 0}.readme-prose hr{border:none;border-top:1px solid var(--rule);margin:32px 0}.readme-prose table{display:block;width:100%;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:18px 0;font-size:var(--fs-body)}.readme-prose th,.readme-prose td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--rule)}.readme-prose th{font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--acc);background:color-mix(in oklab,var(--acc) 4%,transparent)}.readme-prose img{max-width:100%;height:auto;display:block;margin:18px auto;border:1px solid var(--rule)}.portfolio-page{padding:var(--sp-16) 0 var(--sp-12)}.repo-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-2) var(--sp-5);max-width:64ch;margin:0 auto var(--sp-8);padding-bottom:var(--sp-5);border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--muted)}.repo-meta>span{display:inline-flex;align-items:center;gap:var(--sp-2)}.repo-meta .repo-meta-k{color:var(--soft)}.repo-meta .repo-meta-v{color:var(--ink-2)}.repo-meta .stars{color:var(--acc)}.repo-actions{display:flex;flex-wrap:wrap;gap:var(--sp-3);max-width:64ch;margin:0 auto var(--sp-8)}@media (max-width:640px){.repo-actions{flex-direction:column;align-items:stretch}.repo-actions .btn{width:100%}}.quick-install{max-width:64ch;margin:0 auto 36px;border:1px solid var(--rule);background:linear-gradient(180deg,var(--bg-2) 0%,var(--bg) 100%);font-family:var(--sans)}.quick-install .qi-head{display:flex;justify-content:space-between;align-items:baseline;padding:12px 18px;border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:var(--fs-meta-sm);letter-spacing:var(--track-label);color:var(--acc);text-transform:uppercase}.quick-install .qi-head .qi-cap{color:var(--muted);letter-spacing:var(--track-wide)}.quick-install .qi-row{display:grid;grid-template-columns:130px 1fr;gap:var(--sp-5);padding:11px 18px;border-bottom:1px solid color-mix(in oklab,var(--acc) 8%,transparent)}.quick-install .qi-row:last-child{border-bottom:none}.quick-install .qi-k{font-family:var(--mono);font-size:var(--fs-meta-sm);letter-spacing:var(--track-meta);color:var(--acc);text-transform:uppercase;padding-top:2px}.quick-install .qi-v{font-family:var(--serif);font-size:var(--fs-body);line-height:1.55;color:var(--ink)}.quick-install .qi-v code{font-family:var(--mono);font-size:var(--fs-body-sm);color:var(--ink);padding:2px 6px;background:#00000040;border:1px solid color-mix(in oklab,var(--acc) 12%,transparent);border-radius:var(--r-sm);display:inline-block}.quick-install .qi-v .qi-cmd{display:block;margin-top:var(--sp-1);font-family:var(--mono);font-size:var(--fs-meta);color:var(--ink-2);background:#00000038;padding:var(--sp-2) var(--sp-3);border:1px solid color-mix(in oklab,var(--acc) 10%,transparent);border-radius:var(--r-sm);overflow-x:auto;white-space:nowrap;-webkit-user-select:all;user-select:all}.quick-install .qi-v a{color:var(--acc);text-decoration:underline;text-decoration-color:color-mix(in oklab,var(--acc) 30%,transparent);text-underline-offset:3px}.quick-install .qi-v .qi-note{color:var(--muted);font-size:var(--fs-body-sm);font-style:italic}@media (max-width:640px){.quick-install .qi-row{grid-template-columns:1fr;gap:var(--sp-1);padding:var(--sp-3) var(--sp-4)}.quick-install .qi-k{padding-top:0}.quick-install .qi-v .qi-cmd{white-space:pre-wrap;word-break:break-all;overflow-x:visible;font-size:var(--fs-body-sm)}}.device-shots{max-width:64ch;margin:28px auto 40px;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2.5vw,22px)}.device-shots figure{margin:0}.device-shots img{display:block;width:100%;height:auto;margin:0;border:1px solid var(--rule);border-radius:18px;background:var(--bg-2);box-shadow:0 12px 32px #00000047}.device-shots figcaption{margin-top:var(--sp-2);text-align:center;font-family:var(--mono);font-size:var(--fs-meta-sm);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted)}@media (max-width:640px){.device-shots{grid-template-columns:1fr;max-width:300px;gap:var(--sp-7)}}
