@font-face{font-family:'Departure Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/DepartureMono-Regular.woff2') format('woff2');}@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url('/static/fonts/IBMPlexSans-Var.woff2') format('woff2');}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/JetBrainsMono-Regular.woff2') format('woff2');}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/IBMPlexMono-Regular.woff2') format('woff2');}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/static/fonts/IBMPlexMono-Medium.woff2') format('woff2');}.Hub{max-width:880px;margin:0 auto;width:100%;padding:56px 24px 88px;}.Hub h1{margin:0;font-weight:400;font-size:44px;letter-spacing:1px;line-height:1.15;color:var(--ink);text-align:center;}.Hub h1 .tilde{color:var(--acc);}.Hub .ic{font-family:'IBM Plex Mono', monospace;font-size:0.92em;color:var(--accpale);}.Tourbar{margin-top:44px;display:flex;align-items:baseline;gap:14px;border:1px solid var(--acc);background:var(--side);padding:18px 24px;text-decoration:none;}.Tourbar:hover{background:var(--notebg);}.Tourbar .tourbar-title{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:21px;color:var(--ink);}.Tourbar .tourbar-sub{flex:1 1 auto;font-size:14.5px;color:var(--mut);}.Tourbar .arrow{color:var(--acc);}.Cards{margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:14px;}.Card{display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);background:var(--side);padding:22px 24px 18px;text-decoration:none;}.Card:hover{border-color:var(--acc);}.Card:hover .arrow{color:var(--acc);}.Card:hover .card-path{color:var(--accdim);}.Card .card-top{display:flex;align-items:baseline;font-size:12px;}.Card .card-top .tnum{color:var(--acc);}.Card .card-top .dots{flex:1 1 auto;margin:0 12px;border-bottom:1px dotted var(--faint);transform:translateY(-3px);}.Card .card-top .arrow{color:var(--faint);}.Card h2{margin:2px 0 0;font-weight:400;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:21px;color:var(--ink);}.Card p{margin:0;flex:1 1 auto;font-size:14.5px;line-height:1.65;color:var(--mut);text-wrap:pretty;}.Card .card-path{margin-top:10px;font-size:12px;color:var(--faint);}.Callout{margin-top:48px;border:1px solid var(--noteline);background:var(--notebg);padding:20px 24px;}.Callout .callout-head{margin:0 0 8px;font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--acc);}.Callout ul{margin:0;padding-left:20px;font-size:14.5px;line-height:1.75;color:var(--text);text-wrap:pretty;}.Callout li::marker{color:var(--voice);}.Callout a{color:var(--acc);text-decoration:none;}.Callout a:hover{text-decoration:underline;}.Pkgs{max-width:820px;margin:0 auto;width:100%;padding:40px 32px 88px;}.Pkgs.wide{max-width:980px;}.Pkgs.pkgs{max-width:900px;position:relative;}.Pkgs.pkg{max-width:1024px;}.Pkgs.code{max-width:none;padding-left:0;padding-right:0;}.Pkgs .pkg-col{max-width:1024px;margin:0 auto;padding:0 32px;}.Pkgs h1{margin:0;font-family:'IBM Plex Mono', monospace;font-weight:500;font-size:32px;letter-spacing:-0.5px;color:var(--ink);}.Pkgs h2{font-size:16px;font-weight:600;margin:28px 0 10px;color:var(--ink);}.Pkgs p{line-height:1.65;}.Pkgs .tag{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:13px;color:var(--faint);font-weight:400;}.Pkgs .chip{display:inline-block;padding:3px 9px;border:1px solid var(--chipline);background:var(--chipbg);color:var(--mut);font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:11px;vertical-align:middle;}.Pkgs .tabs{display:flex;gap:30px;margin:36px 0 0;border-bottom:1px solid var(--line);}.Pkgs .tabs a{padding:0 2px 10px;color:var(--mut);text-decoration:none;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:13px;border-bottom:2px solid transparent;margin-bottom:-1px;}.Pkgs .tabs a.active{color:var(--ink);border-bottom-color:var(--acc);}.Pkgs .tabs a:hover{color:var(--ink);}.Pkgs .back{display:inline-block;margin-bottom:18px;font-size:13px;color:var(--mut);text-decoration:none;}.Pkgs .back:hover{color:var(--acc);}.Pkgs .pkg-body{display:grid;grid-template-columns:minmax(0, 1fr) 300px;gap:0 44px;align-items:start;}.Pkgs .pkg-side .sect:first-child{margin-top:38px;}.Pkgs .pkg-side .strip{padding:10px 14px;align-items:flex-start;overflow:visible;}.Pkgs .pkg-side .strip .copy-btn.icon .copied-tip{top:50%;left:100%;transform:translateY(-50%);margin:0 0 0 24px;}.Pkgs .pkg-side .strip .cmd{font-size:12.5px;white-space:normal;overflow-x:visible;overflow-wrap:anywhere;line-height:1.5;}.Pkgs .meta{border:1px solid var(--line);background:var(--side);padding:12px 14px;display:grid;grid-template-columns:auto 1fr;gap:7px 16px;font-size:13px;}.Pkgs .meta dt{margin:0;color:var(--faint);}.Pkgs .meta dd{margin:0;color:var(--ink);overflow-wrap:anywhere;}.Pkgs .links{display:flex;flex-direction:column;gap:8px;font-size:13px;}.Pkgs .links a{color:var(--text);text-decoration:none;}.Pkgs .links a:hover{color:var(--acc);}.Pkgs .links .arrow{color:var(--acc);margin-right:6px;}.Pkgs .pkg-logo{display:block;max-width:360px;max-height:140px;margin:8px auto 28px;}.Pkgs .pkg-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;}.Pkgs .pkg-head h1{font-size:40px;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-weight:400;letter-spacing:0;}.Pkgs .pkg-head .ver{font-size:14px;color:var(--faint);}.Pkgs .pkg-blurb{margin:14px 0 0;max-width:64ch;font-size:18.7px;line-height:1.6;color:var(--text);text-wrap:pretty;}.Pkgs .mods{border-collapse:collapse;width:100%;margin-top:26px;font-size:14px;}.Pkgs .mods td{padding:6px 24px 6px 0;vertical-align:baseline;}.Pkgs .mods td:last-child{padding-right:0;width:100%;}.Pkgs .mods td p{margin:0;}.Pkgs .mods a{text-decoration:none;}.Pkgs .mods a:hover{text-decoration:underline;}.Pkgs .mod-path{font-size:12px;color:var(--faint);white-space:nowrap;}.Pkgs .mod-doc{color:var(--mut);}.Pkgs .snip-title{font-size:28px;}.Pkgs .snip-meta{margin-top:10px;font-size:12px;color:var(--faint);}.Pkgs .snip-view{margin-top:18px;}.Pkgs .snip-view pre{border:none;margin:0;}.Pkgs .sect{margin:38px 0 0;font-size:13px;color:var(--acc);}.Pkgs .sect-body{margin-top:12px;}.Pkgs .note{margin:38px 0 0;font-size:12px;color:var(--faint);}.Pkgs .prose{margin:14px 0 0;max-width:72ch;font-size:15.5px;line-height:1.7;color:var(--text);text-wrap:pretty;}.Pkgs .prose p{margin:0 0 14px;}.Pkgs .prose p:last-child{margin-bottom:0;}.Pkgs .prose h1, .Pkgs .prose h2, .Pkgs .prose h3{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-weight:400;letter-spacing:0;color:var(--ink);}.Pkgs .prose h1{font-size:22px;margin:0 0 12px;}.Pkgs .prose h2{font-size:15px;margin:30px 0 10px;}.Pkgs .prose h3{font-size:14px;margin:22px 0 8px;}.Pkgs .prose ul, .Pkgs .prose ol{margin:0 0 14px;padding-left:22px;}.Pkgs .prose li{margin:4px 0;}.Pkgs .prose pre{margin:6px 0 16px;}.Pkgs .prose code{color:var(--accpale);}.Pkgs .prose pre code{color:inherit;}.Pkgs .rel-list{margin-top:14px;display:flex;flex-direction:column;}.Pkgs .rel{display:flex;align-items:baseline;gap:14px;padding:13px 2px;border-bottom:1px solid var(--line);}.Pkgs .rel .v{width:74px;flex:none;font-family:'IBM Plex Mono', monospace;font-weight:500;font-size:14px;color:var(--ink);}.Pkgs .rel a.v{margin-left:0;color:var(--ink);text-decoration:none;}.Pkgs .rel a.v:hover{color:var(--acc);text-decoration:underline;}.Pkgs .rel .date{font-size:12px;color:var(--faint);}.Pkgs .rel .cur{font-size:10px;color:var(--acc);border:1px solid var(--chipline);padding:2px 7px;}.Pkgs .rel a{margin-left:auto;font-size:12px;color:var(--acc);text-decoration:none;}.Pkgs .rel a:hover{text-decoration:underline;}.Pkgs .rel .n{flex:none;font-family:'IBM Plex Mono', monospace;font-size:14px;display:flex;align-items:baseline;gap:8px;}.Pkgs .rel .n a{margin-left:0;font-size:14px;color:var(--acc);}.Pkgs .rel .n a:hover{text-decoration:underline;}.Pkgs .rel .new{font-size:10px;font-weight:600;color:var(--bg);background:var(--acc);padding:2px 7px;border-radius:2px;}.Pkgs .rel .date.right{margin-left:auto;}.Pkgs .rel .date.right + a{margin-left:0;}.Pkgs .rel-group{margin:56px 2px 0;display:flex;align-items:baseline;gap:10px;font-size:15px;color:var(--ink);letter-spacing:0.04em;}.Pkgs .rel-group .count{font-size:11px;font-weight:400;color:var(--faint);letter-spacing:0.06em;}.Pkgs .rel-group .rule{flex:1;height:1px;background:var(--faint);margin-left:4px;}.Pkgs .rel-group:first-child{margin-top:20px;}.Pkgs .rel-item{border-bottom:1px solid var(--line);}.Pkgs .rel-item .rel{border-bottom:none;}.Pkgs .rel-notes{margin:0;padding:0 2px 16px;max-width:66ch;font-size:14.5px;}.Pkgs .src-browser{margin-top:14px;border:1px solid var(--line);border-left:none;border-right:none;display:grid;grid-template-columns:240px 1fr;}.Pkgs .src-tree{background:var(--side);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:10px 0;}.Pkgs .src-dir{padding:8px 14px;font-size:13px;color:var(--text);display:flex;align-items:baseline;gap:6px;}.Pkgs .src-dir .marker{font-size:10px;color:var(--faint);}.Pkgs .src-file{cursor:pointer;user-select:none;text-align:left;background:none;border:none;border-left:2px solid transparent;padding:8px 14px;font-family:'IBM Plex Mono', monospace;font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.Pkgs .src-file.nested{padding-left:32px;}.Pkgs .src-file:hover{color:var(--ink);}.Pkgs .src-file.active{color:var(--acc);background:var(--sel);border-left-color:var(--acc);}.Pkgs .src-view{min-width:0;display:flex;flex-direction:column;background:#0b0b0b;}.Pkgs .src-view-head{background:#101010;border-bottom:1px solid #242424;display:flex;align-items:center;gap:10px;padding:7px 14px;}.Pkgs .src-view-head .fullbtn{padding:0 4px;}.Pkgs .src-browser.full{position:fixed;inset:0;z-index:40;margin:0;border:none;background:var(--bg);}.Pkgs .src-browser.full .src-tree{overflow-y:auto;}.Pkgs .src-browser.full .src-view{overflow-y:auto;}.Pkgs .src-view-head .dot{width:6px;height:6px;background:#2af6db;flex:none;}.Pkgs .src-view-head .name{font-size:12px;color:#7a7a7a;}.Pkgs .src-pane{display:none;padding:16px 20px;overflow-x:auto;flex:1;}.Pkgs .src-pane.active{display:block;}.Pkgs .src-pane pre{margin:0;background:none;border:none;padding:0;font-size:13px;line-height:1.75;}.Pkgs .tar-line{display:flex;justify-content:flex-end;margin-top:18px;font-size:12px;}.Pkgs .tar-dl{color:var(--acc);text-decoration:none;}.Pkgs .tar-dl .name{color:var(--faint);margin-right:10px;}.Pkgs .tar-dl:hover{text-decoration:underline;}.Pkgs pre{margin:0 0 12px;background:#0b0b0b;border:1px solid #242424;padding:14px 18px;overflow-x:auto;color:#d2d2d2;font:13.5px/1.65 'JetBrains Mono', 'IBM Plex Mono', monospace;}.Pkgs code{background:var(--chipbg);border:1px solid var(--chipline);padding:1px 5px;color:var(--ink);font:13px 'IBM Plex Mono', monospace;}.Pkgs pre code{background:none;border:none;padding:0;font:inherit;color:inherit;}.Pkgs .pagetitle{font-size:44px;text-align:center;font-weight:400;letter-spacing:1px;line-height:1.15;font-family:'Departure Mono', 'IBM Plex Mono', monospace;}.Pkgs .pagetitle .tilde{color:var(--acc);}.Pkgs .pkg-list{margin-top:32px;display:grid;grid-template-columns:1fr 1fr;gap:14px;}.Pkgs .pkg-card{border:1px solid var(--line);background:var(--side);padding:22px 24px 20px;display:flex;flex-direction:column;gap:10px;}.Pkgs .pkg-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;}.Pkgs .pkg-card-id{display:flex;align-items:baseline;gap:12px;}.Pkgs .pkg-name{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-weight:500;font-size:18px;color:var(--acc);text-decoration:none;}.Pkgs .pkg-name:hover{text-decoration:underline;}.Pkgs .pkg-ver{font-size:12px;color:var(--faint);}.Pkgs .pkg-card-pic{align-self:center;}.Pkgs .pkg-card-logo{display:block;max-height:30px;max-width:160px;}.Pkgs .pkg-desc{margin:0;font-size:15px;line-height:1.65;color:var(--text);max-width:64ch;text-wrap:pretty;}.Pkgs .pkg-card .strip{margin-top:auto;}.Pkgs .tabs.index{justify-content:center;margin-top:28px;}.Pkgs .rss{position:absolute;top:45px;right:32px;font-size:12px;line-height:1;letter-spacing:0.08em;color:var(--mut);text-decoration:none;}.Pkgs .rss:hover{color:var(--acc);}.Pkgs .pkg-count{margin-top:52px;border-top:1px solid var(--line);padding-top:16px;font-size:12px;color:var(--faint);}.Gate{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;}.Gate .gate-form{display:flex;gap:10px;margin-top:6px;}.Gate .gate-input{background:var(--panel);border:1px solid var(--chipline);color:var(--ink);font:inherit;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:14px;padding:10px 14px;width:230px;outline:none;}.Gate .gate-input::placeholder{color:var(--faint);}.Gate .gate-input:focus{border-color:var(--acc);}.Gate .gate-btn{cursor:pointer;background:none;border:1px solid var(--chipline);color:var(--text);font-family:'IBM Plex Mono', monospace;font-weight:500;font-size:14px;padding:10px 18px;transition:border-color 0.25s ease;}.Gate .gate-btn:hover{border-color:var(--text);}.Gate .gate-fail{margin:0;font-size:12px;color:var(--cap);}.NewsMain{max-width:880px;margin:0 auto;width:100%;padding:40px 24px 88px;position:relative;}.NewsMain h1{margin:0;font-weight:400;font-size:44px;letter-spacing:1px;line-height:1.15;color:var(--ink);text-align:center;}.NewsMain h1 .tilde{color:var(--acc);}.NewsMain .rss{position:absolute;top:45px;right:24px;font-size:12px;line-height:1;letter-spacing:0.08em;color:var(--mut);text-decoration:none;}.NewsMain .rss:hover{color:var(--acc);}.NewsMain .empty{margin-top:48px;text-align:center;font-size:14.5px;color:var(--mut);}.Posts{margin:48px auto 0;max-width:680px;display:flex;flex-direction:column;gap:50px;}.Posts .post{display:block;text-decoration:none;}.Posts .post h2{margin:0;font-weight:400;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:22px;color:var(--ink);}.Posts .post .byline{margin-top:4px;font-size:12.5px;color:var(--acc);}.Posts .post p{margin:8px 0 0;font-size:15px;line-height:1.7;color:var(--mut);text-wrap:pretty;}.Posts .post .more{display:inline-block;margin-top:8px;font-size:13px;color:var(--acc);}.Posts .post .more:hover{text-decoration:underline;}.Article{max-width:760px;margin:0 auto;width:100%;padding:40px 24px 88px;}.Article .kicker{margin:6px 0 36px;text-align:center;font-family:'IBM Plex Mono', monospace;font-size:12px;letter-spacing:0.08em;text-transform:lowercase;color:var(--acc);}.Article h1{margin:10px 0 6px;text-align:center;white-space:nowrap;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-weight:400;font-size:34px;letter-spacing:-0.5px;color:var(--ink);line-height:1.3;}.Article h2{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:20px;font-weight:400;margin:36px 0 12px;color:var(--ink);line-height:1.3;}.Article h3{font-weight:600;font-size:17px;color:var(--ink);line-height:1.3;}.Article p{font-size:18.7px;line-height:1.75;color:var(--text);text-wrap:pretty;}.Article li{font-size:18.7px;line-height:1.75;color:var(--text);text-wrap:pretty;}.Article a{color:var(--acc);}.Article pre{background:#0b0b0b;border:1px solid #242424;color:#d2d2d2;padding:14px 18px;overflow-x:auto;font:13.5px/1.65 'JetBrains Mono', 'IBM Plex Mono', monospace;}.Article code{font-family:'IBM Plex Mono', monospace;font-size:0.9em;}.Article pre code{font:inherit;background:none;border:none;padding:0;color:inherit;}.Article p code, .Article li code, .Article td code, .Article th code{background:var(--chipbg);border:1px solid var(--chipline);padding:1px 5px;color:var(--ink);font-size:15px;}.Article blockquote{margin:0;padding:0 20px;border-left:2px solid var(--acc);color:var(--mut);}.ReportMain{max-width:880px;margin:0 auto;width:100%;padding:56px 24px 88px;}.ReportMain h1{margin:0;font-weight:400;font-size:44px;letter-spacing:1px;line-height:1.15;color:var(--ink);text-align:center;}.ReportMain h1 .tilde{color:var(--acc);}.ReportMain .lede{margin:18px auto 0;max-width:620px;text-align:center;font-size:15px;line-height:1.65;color:var(--mut);text-wrap:pretty;}.ReportMain .lede a{color:var(--acc);text-decoration:none;}.ReportMain .lede a:hover{text-decoration:underline;}.ReportMain form{margin:20px auto 0;max-width:620px;display:flex;flex-direction:column;gap:18px;}.ReportMain label{display:flex;flex-direction:column;gap:6px;font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--faint);}.ReportMain input, .ReportMain select, .ReportMain textarea{background:var(--bg);color:var(--ink);border:1px solid var(--chipline);border-radius:6px;padding:10px 14px;font:inherit;font-family:-apple-system, BlinkMacSystemFont, Aptos, Roboto, 'Segoe UI', Helvetica, Arial, sans-serif;font-size:15px;outline:none;letter-spacing:0;text-transform:none;}.ReportMain input:focus, .ReportMain select:focus, .ReportMain textarea:focus{border-color:var(--acc);}.ReportMain textarea{min-height:200px;resize:vertical;line-height:1.55;}.ReportMain .kinds{display:flex;width:100%;}.ReportMain .kinds label{flex:1 1 0;flex-direction:row;align-items:center;justify-content:center;gap:8px;margin-left:-1px;border:1px solid var(--chipline);border-radius:0;padding:10px 14px;cursor:pointer;color:var(--mut);background:var(--panel);letter-spacing:0.08em;}.ReportMain .kinds label:first-child{margin-left:0;border-radius:6px 0 0 6px;}.ReportMain .kinds label:last-child{border-radius:0 6px 6px 0;}.ReportMain .kinds label:has(input:checked){border-color:var(--acc);color:var(--ink);position:relative;z-index:1;}.ReportMain .kinds label input{appearance:none;width:8px;height:8px;padding:0;border-radius:50%;border:1px solid var(--faint);background:none;}.ReportMain .kinds label input:checked{background:var(--acc);border-color:var(--acc);}.ReportMain .head{display:flex;flex-direction:row;justify-content:space-between;align-items:baseline;}.ReportMain .head .tabs{display:flex;gap:2px;}.ReportMain .head .tabs button{background:none;border:none;border-radius:0;padding:0 10px 6px;font:inherit;font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--faint);cursor:pointer;border-bottom:2px solid transparent;}.ReportMain .head .tabs button:hover{color:var(--mut);}.ReportMain .head .tabs button.on{color:var(--ink);border-bottom-color:var(--acc);}.ReportMain .head .hint{text-transform:none;letter-spacing:0;font-size:12.5px;color:var(--faint);font-family:-apple-system, BlinkMacSystemFont, Aptos, Roboto, 'Segoe UI', Helvetica, Arial, sans-serif;}.ReportMain .head .hint code{font-family:'IBM Plex Mono', monospace;color:var(--mut);}.ReportMain .trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}.ReportMain .err{border:1px solid #a33;background:rgba(170, 51, 51, 0.08);border-radius:6px;padding:10px 14px;font-size:14px;color:var(--ink);}.ReportMain .details{display:flex;flex-direction:column;gap:6px;}.ReportMain .details [hidden]{display:none;}.ReportMain .preview{border:1px solid var(--chipline);border-radius:6px;background:#fff;color:#1a1a1a;padding:14px 16px;min-height:200px;box-sizing:border-box;font-size:15px;line-height:1.6;letter-spacing:0;text-transform:none;overflow-wrap:anywhere;}.ReportMain .preview h1, .ReportMain .preview h2, .ReportMain .preview h3, .ReportMain .preview h4{text-align:left;margin:0 0 12px;line-height:1.3;color:#1a1a1a;font-weight:600;letter-spacing:0;}.ReportMain .preview h1{font-size:22px;}.ReportMain .preview h2{font-size:18px;}.ReportMain .preview h3{font-size:16px;}.ReportMain .preview p, .ReportMain .preview ul, .ReportMain .preview ol, .ReportMain .preview blockquote, .ReportMain .preview table{margin:0 0 12px;}.ReportMain .preview ul, .ReportMain .preview ol{padding-left:1.4em;}.ReportMain .preview > :last-child{margin-bottom:0;}.ReportMain .preview a{color:var(--acc);}.ReportMain .preview blockquote{border-left:3px solid var(--chipline);padding-left:12px;color:var(--mut);}.ReportMain .preview pre{background:#0b0b0b;border:1px solid #242424;color:#d2d2d2;padding:14px 18px;overflow-x:auto;margin:0 0 12px;font:13.5px/1.65 'JetBrains Mono', 'IBM Plex Mono', monospace;}.ReportMain .preview pre .t-comment{color:#8f8f8f;}.ReportMain .preview pre code{font:inherit;background:none;border:none;padding:0;color:inherit;}.ReportMain .preview pre .copy-btn.icon{background:none;border:none;border-radius:0;padding:0;font-size:11px;color:#4a4a4a;}.ReportMain .preview pre .copy-btn.icon:hover{color:#2af6db;border:none;}.ReportMain .preview pre .copy-btn.icon.done{color:#2af6db;}.ReportMain .preview code{font-family:'IBM Plex Mono', monospace;font-size:13px;color:#1a1a1a;background:#f1efe8;border:1px solid #ddd8c9;padding:1px 5px;}.ReportMain .preview .empty{color:var(--faint);font-style:italic;}.ReportMain .row{display:flex;justify-content:flex-end;gap:10px;}.ReportMain button{background:var(--chipbg);color:var(--ink);border:1px solid var(--chipline);border-radius:6px;padding:10px 22px;font:inherit;font-size:13px;cursor:pointer;}.ReportMain button:hover{border-color:var(--mut);}.ReportMain .thanks{margin:40px auto 0;max-width:620px;text-align:center;border:1px solid var(--noteline);background:var(--notebg);padding:28px 24px;font-size:15px;line-height:1.7;color:var(--text);}.ReportMain .thanks .ic{font-family:var(--mono, monospace);color:var(--accpale);}.ReportMain .thanks a{color:var(--acc);text-decoration:none;}.ReportMain .thanks a:hover{text-decoration:underline;}.SearchMain{max-width:880px;margin:0 auto;width:100%;padding:40px 24px 88px;}.SearchMain h1{margin:0;font-weight:400;font-size:44px;letter-spacing:1px;line-height:1.15;color:var(--ink);text-align:center;}.SearchMain h1 .tilde{color:var(--acc);}.SearchMain form{margin:32px auto 0;max-width:680px;display:flex;gap:10px;}.SearchMain form input{flex:1;background:var(--panel);color:var(--ink);border:1px solid var(--chipline);border-radius:6px;padding:10px 14px;font:inherit;font-size:15px;outline:none;}.SearchMain form input:focus{border-color:var(--acc);}.SearchMain form button{background:var(--acc);color:#070707;border:none;border-radius:6px;padding:0 18px;font:inherit;font-size:13px;cursor:pointer;}.SearchMain .count{margin:28px auto 0;max-width:680px;font-size:12.5px;color:var(--mut);letter-spacing:0.06em;}.SearchMain .empty{margin-top:48px;text-align:center;font-size:14.5px;color:var(--mut);}.Results{margin:12px auto 0;max-width:680px;display:flex;flex-direction:column;gap:4px;}.Results .hit{display:block;text-decoration:none;padding:12px 14px;border-radius:6px;border:1px solid transparent;}.Results .hit:hover{background:var(--panel);border-color:var(--chipline);}.Results .hit .head{display:flex;align-items:baseline;gap:12px;}.Results .hit .head .kind{flex:none;font-size:10.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--faint);width:52px;}.Results .hit .head .title{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:15px;color:var(--ink);}.Results .hit p{margin:4px 0 0 64px;font-size:13.5px;line-height:1.6;color:var(--mut);text-wrap:pretty;}.Chips{display:contents;}.Chips .status{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:12px;padding:3px 9px;border:1px solid var(--chipline);color:var(--mut);white-space:nowrap;}.Chips .status.open{border-color:var(--accdim);color:var(--accpale);}.Chips .status.planned{border-color:var(--acc);background:var(--notebg);color:var(--accpale);}.Chips .type{display:inline-flex;align-items:center;gap:7px;color:var(--text);}.Chips .type .dot{width:7px;height:7px;background:var(--faint);}.Chips .type .dot.bug{background:#d9534f;}.Chips .type .dot.feature{background:var(--accdim);}.ListMain{max-width:900px;margin:0 auto;width:100%;padding:56px 24px 96px;}.ListMain .top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;}.ListMain .top h1{margin:0;font-weight:400;font-size:44px;letter-spacing:1px;line-height:1;color:var(--ink);}.ListMain .top h1 .tilde{color:var(--acc);}.ListMain .top .counts{margin:14px 0 0;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:14px;color:var(--mut);}.ListMain .filters{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:36px;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:13px;}.ListMain .filters .types{display:flex;flex-wrap:wrap;gap:8px;}.ListMain .filters .types a{padding:6px 14px;border:1px solid var(--chipline);color:var(--text);text-decoration:none;}.ListMain .filters .types a:hover{border-color:var(--accdim);}.ListMain .filters .types a.on{background:var(--accdim);color:var(--bg);border-color:var(--accdim);}.ListMain .filters .right{display:flex;align-items:center;gap:14px;}.ListMain .filters .right .states a{padding:6px 10px;color:var(--faint);text-decoration:none;}.ListMain .filters .right .states a.on{color:var(--ink);text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px;text-decoration-color:var(--acc);}.ListMain .filters .right input{font:inherit;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:13px;padding:8px 12px;width:190px;background:var(--panel);border:1px solid var(--chipline);color:var(--ink);outline:none;}.ListMain .filters .right input:focus{border-color:var(--acc);}.ListMain .rows{border-top:3px solid var(--acc);margin-top:18px;}.ListMain .rows .empty{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:14px;color:var(--mut);border:1px dashed var(--chipline);padding:40px;text-align:center;margin-top:20px;}.ListMain .rows .row{display:grid;grid-template-columns:64px minmax(0, 1fr) auto;gap:18px;align-items:baseline;padding:18px 12px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none;}.ListMain .rows .row:hover{background:var(--side);}.ListMain .rows .row .id{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:13px;color:var(--faint);}.ListMain .rows .row .mid{display:flex;flex-direction:column;gap:7px;min-width:0;}.ListMain .rows .row .mid .title{font-size:16px;line-height:1.4;color:var(--ink);text-wrap:pretty;overflow-wrap:anywhere;}.ListMain .rows .row .mid .meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:12px;color:var(--faint);}.ListMain .rows .row.done .title{color:var(--mut);}.DetailMain{max-width:1000px;margin:0 auto;width:100%;padding:48px 24px 96px;}.DetailMain .back{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:13px;margin-bottom:26px;}.DetailMain .back a{color:var(--acc);text-decoration:none;}.DetailMain .back a:hover{text-decoration:underline;}.DetailMain .head{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px 16px;}.DetailMain .head .num{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:40px;color:var(--faint);line-height:1.1;}.DetailMain .head h1{font-size:30px;font-weight:700;margin:0;line-height:1.25;letter-spacing:-0.01em;flex:1 1 400px;text-wrap:pretty;overflow-wrap:anywhere;color:var(--ink);}.DetailMain .sub{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:16px;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:13px;color:var(--mut);}.DetailMain .cols{display:flex;flex-wrap:wrap;gap:48px;margin-top:40px;align-items:flex-start;}.DetailMain .thread{flex:1 1 520px;min-width:0;display:flex;flex-direction:column;}.DetailMain .card{border:1px solid var(--chipline);background:var(--panel);}.DetailMain .card .card-head{display:flex;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--chipline);background:var(--side);font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:12.5px;color:var(--mut);}.DetailMain .card .card-head b{color:var(--ink);font-weight:700;}.DetailMain .card .card-head .team{font-size:11px;background:var(--accdim);color:#070707;padding:2px 7px;margin-left:10px;}.DetailMain .card.ours{border-color:var(--noteline);}.DetailMain .card.ours .card-head{background:var(--notebg);border-color:var(--noteline);}.DetailMain .card .body{padding:20px 18px;font-size:15.5px;line-height:1.65;color:var(--text);overflow-wrap:anywhere;}.DetailMain .card .body p{margin:0 0 14px;}.DetailMain .card .body p:last-child{margin-bottom:0;}.DetailMain .card .body pre{margin:0 0 14px;background:var(--code);color:var(--codetext);font-family:'IBM Plex Mono', monospace;font-size:13.5px;line-height:1.6;padding:16px 18px;overflow-x:auto;}.DetailMain .card .body code{font-family:'IBM Plex Mono', monospace;font-size:14px;background:var(--chipbg);padding:1px 5px;}.DetailMain .card .body pre code{background:none;padding:0;font-size:inherit;}.DetailMain .link{width:1px;height:22px;background:var(--chipline);margin-left:24px;}.DetailMain .event{display:flex;align-items:center;gap:12px;padding-left:18px;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:12.5px;color:var(--mut);}.DetailMain .event .sq{width:13px;height:13px;background:var(--notebg);border:1px solid var(--acc);flex:none;}.DetailMain .event .when{color:var(--faint);}.DetailMain .compose{border:1px solid var(--chipline);background:var(--side);padding:18px;display:flex;flex-direction:column;gap:12px;}.DetailMain .compose .label{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:12.5px;color:var(--text);}.DetailMain .compose textarea{font:inherit;font-family:'IBM Plex Mono', monospace;font-size:14px;line-height:1.6;padding:12px 14px;background:var(--panel);border:1px solid var(--chipline);color:var(--ink);outline:none;resize:vertical;min-height:110px;}.DetailMain .compose textarea:focus{border-color:var(--acc);}.DetailMain .compose .actions{display:flex;justify-content:flex-end;}.DetailMain button{font:inherit;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:13px;padding:10px 22px;border:1px solid var(--chipline);background:var(--chipbg);color:var(--ink);cursor:pointer;}.DetailMain button:hover{border-color:var(--mut);}.DetailMain .side{flex:0 1 220px;display:flex;flex-direction:column;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:13px;border-top:3px solid var(--acc);}.DetailMain .side .item{display:flex;flex-direction:column;gap:5px;padding:14px 0;border-bottom:1px solid var(--line);}.DetailMain .side .item .k{font-size:11.5px;color:var(--faint);}.DetailMain .side .item .v{color:var(--ink);overflow-wrap:anywhere;}.DetailMain .side .item a{color:var(--acc);text-decoration:none;}.DetailMain .side .item a:hover{text-decoration:underline;}.DetailMain .side form{display:flex;gap:8px;}.DetailMain .side form select{flex:1;font:inherit;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:13px;padding:6px 8px;background:var(--panel);border:1px solid var(--chipline);color:var(--ink);}.DetailMain .side form button{padding:6px 12px;}:root{color-scheme:dark light;--bg:#070707;--side:#0a0a0a;--panel:#101010;--code:#0b0b0b;--chipbg:#141414;--chipline:#242424;--line:#1a1a1a;--ink:#f0f0f0;--text:#c2c2c2;--mut:#9a9a9a;--faint:#6a6a6a;--ghost:#4a4a4a;--acc:#2af6db;--accdim:#79d9c6;--accpale:#a7f0e2;--voice:#6fcab8;--cap:#87877d;--fn:#ffffff;--cm:#5c5c5c;--codetext:#d2d2d2;--sel:#0f1a17;--notebg:#0c1512;--noteline:#1f3b34;}*{box-sizing:border-box;}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system, BlinkMacSystemFont, Aptos, Roboto, 'Segoe UI', Helvetica, Arial, sans-serif;-webkit-font-smoothing:antialiased;}a{color:var(--acc);}.mono{font-family:'Departure Mono', 'IBM Plex Mono', monospace;}.topbar{position:sticky;top:0;z-index:10;height:48px;display:flex;align-items:center;justify-content:flex-start;gap:24px;padding:0 20px;background:#070707;border-bottom:1px solid #1a1a1a;}.topbar .logo{font-size:20px;color:#f0f0f0;text-decoration:none;}.topbar .tilde{color:#2af6db;}.topbar nav{display:flex;gap:18px;font-size:14px;}.topbar nav a{color:#9a9a9a;text-decoration:none;}.topbar nav a:hover{color:#2af6db;}.topbar nav a:active{color:#2af6db;}.topbar nav a.get{color:#f0f0f0;}.topbar nav a.get:hover{color:#2af6db;}.topbar .tools{margin-left:auto;display:flex;align-items:center;gap:18px;font-size:14px;}.topbar .tools a{color:#9a9a9a;text-decoration:none;}.topbar .tools a:hover{color:#2af6db;}.topbar .tools .release{font-size:12px;color:#2af6db;border:1px solid #17a08c;border-radius:4px;padding:4px 9px;line-height:1;}.topbar .tools .release:hover{background:#0d5f54;color:#f0f0f0;}.topbar .searchbox{margin-left:18px;}.searchbox{display:flex;align-items:center;gap:10px;background:#101010;border:1px solid #242424;border-radius:6px;padding:6px 12px;width:110px;cursor:pointer;font:inherit;color:#6a6a6a;font-size:12px;text-align:left;}.searchbox:hover{border-color:#363636;color:#8a8a8a;}.searchbox .hint{flex:1;}.searchbox .kbd{font-size:11px;color:#4a4a4a;flex:none;}.search-modal{position:fixed;inset:0;z-index:100;background:rgba(0, 0, 0, 0.6);backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 0;}.search-modal[hidden]{display:none;}.search-modal .panel{width:100%;max-width:620px;max-height:70vh;display:flex;flex-direction:column;overflow:hidden;background:#0c0c0c;border:1px solid #242424;border-radius:8px;box-shadow:0 24px 64px rgba(0, 0, 0, 0.7);}.search-modal .head{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid #1a1a1a;}.search-modal .head input{flex:1;background:none;border:none;outline:none;color:#f0f0f0;font:inherit;font-size:15px;padding:0;}.search-modal .head input::placeholder{color:#6a6a6a;}.search-modal .head input::-webkit-search-cancel-button{display:none;}.search-modal .head .kbd{font-size:10px;color:#4a4a4a;border:1px solid #242424;border-radius:4px;padding:2px 6px;}.search-menu{overflow-y:auto;padding:6px;}.search-menu .row{display:grid;grid-template-columns:60px 1fr;column-gap:12px;padding:8px 10px;border-radius:4px;text-decoration:none;font-size:13px;}.search-menu .row.sel{background:#161616;}.search-menu .row .kind{font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:#4a4a4a;padding-top:3px;}.search-menu .row .title{color:#f0f0f0;}.search-menu .row .snip{grid-column:2;color:#6a6a6a;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.search-menu .row.all{display:block;text-align:center;color:#2af6db;border-top:1px solid #1a1a1a;margin-top:6px;border-radius:0;}.menubtn{display:none;}.sheet{display:none;}.band{position:sticky;top:48px;z-index:9;}.band div{height:3px;background:#a7f0e2;}.band div + div{height:4px;background:#2af6db;}.band div + div + div{height:5px;background:#17a08c;}.band div + div + div + div{height:7px;background:#0d5f54;}.term{border:1px solid #242424;background:#0b0b0b;overflow:hidden;}.term pre{margin:0;padding:16px 20px;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:14px;line-height:1.7;color:#d2d2d2;white-space:pre;overflow-x:auto;}.term .p{color:#5c5c5c;}.term .out{color:#7a7a7a;}.term .hi{color:#2af6db;}.term .w{color:#ffffff;}.term .pale{color:#a7f0e2;}.term .bhi{color:#2af6db;font-weight:700;}.term .bw{color:#ffffff;font-weight:700;}.term.full{position:fixed;inset:0;z-index:40;margin:0;border:none;overflow:auto;}.term-head{background:#101010;border-bottom:1px solid #242424;display:flex;align-items:center;gap:10px;padding:9px 16px;}.term-dot{width:8px;height:8px;background:#2af6db;flex:none;}.term-name{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:13px;color:#7a7a7a;}.term-actions{margin-left:auto;display:flex;align-items:center;gap:14px;}.term-actions a{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:12px;color:#7a7a7a;text-decoration:none;}.term-actions a:hover{color:#f0f0f0;}.term-actions .fullbtn{margin-left:0;padding:0 2px;}.fullbtn{margin-left:auto;cursor:pointer;background:none;border:none;color:#7a7a7a;font-size:13px;padding:6px 8px;}.fullbtn:hover{color:#f0f0f0;}.copy-btn{cursor:pointer;user-select:none;font:inherit;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:11px;padding:3px 9px;border:1px solid var(--chipline);background:none;color:var(--cm);}.copy-btn:hover{color:var(--ink);border-color:var(--mut);}.copy-btn.bare{border:none;padding:0;color:#4a4a4a;}.copy-btn.bare:hover{color:#2af6db;}.copy-btn.done{color:var(--acc);}.copy-btn.bare.done{color:#2af6db;}.copy-btn.icon{display:inline-flex;align-items:center;border:none;padding:0;position:relative;}.copy-btn.icon:hover{color:var(--ink);}.copy-btn.icon svg{display:block;}.copy-btn.icon .copied-tip{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:5px;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:11px;color:var(--acc);white-space:nowrap;pointer-events:none;}.strip{background:#0b0b0b;border:1px solid #242424;padding:11px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;}.strip .cmd{font-family:'IBM Plex Mono', monospace;font-size:13.5px;color:#d2d2d2;overflow-x:auto;white-space:nowrap;}.strip .p{color:#5c5c5c;}.strip .copy-btn.icon{color:#4a4a4a;}.strip .copy-btn.icon:hover{color:#2af6db;}.strip .copy-btn.icon.done{color:#2af6db;}.t-kw{color:#2af6db;}.t-str{color:#a7f0e2;}.t-num{color:#a7f0e2;}.t-const{color:#a7f0e2;}.t-fn{color:#ffffff;}.t-type{color:#d2d2d2;}.t-op{color:#2af6db;}.t-comment{color:#5c5c5c;}pre code .p::before{content:"$ ";color:#2af6db;}pre.hasplay{position:relative;}pre.hasplay .playlink{position:absolute;top:6px;right:34px;font-size:11px;color:var(--faint);text-decoration:none;opacity:0;}pre.hasplay:hover .playlink{opacity:1;}pre.hasplay .playlink:hover{color:var(--acc);}pre.hasplay .copy-btn.icon{position:absolute;top:7px;right:10px;color:var(--faint);opacity:0;}pre.hasplay:hover .copy-btn.icon{opacity:1;}pre.hasplay .copy-btn.icon:hover{color:var(--acc);}pre.hasplay.hasplay{overflow:visible;}pre.hasplay.hasplay > code{display:block;overflow-x:auto;}pre.hasplay .copy-btn.icon .copied-tip{top:50%;left:100%;transform:translateY(-50%);margin:0 0 0 22px;}.toc{margin-top:36px;border:1px solid var(--line);background:var(--side);padding:24px 28px;columns:2;column-gap:56px;}.toc .toc-head{column-span:all;color:var(--acc);font-size:13px;letter-spacing:0.04em;margin:0 0 16px;}.toc h2{column-span:all;margin:22px 0 8px;font-weight:400;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--acc);}.toc .toc-head + h2{margin-top:0;}.toc h2:first-child{margin-top:0;}.toc a{display:flex;align-items:baseline;break-inside:avoid;padding:5px 0;font-size:14px;text-decoration:none;}.toc a:hover .tlabel{color:var(--acc);}.toc h2 + a:has(+ h2){column-span:all;}.toc h2 + a:last-child{column-span:all;}.toc .tnum{flex:none;color:var(--acc);margin-right:12px;}.toc .tlabel{flex:none;color:var(--ink);white-space:nowrap;}.toc .dots{flex:1 1 auto;margin-left:10px;border-bottom:1px dotted var(--faint);transform:translateY(-4px);}.side-toc a, body > nav a, body > nav .here{display:block;font-family:'IBM Plex Mono', monospace;font-size:12px;line-height:1.9;color:var(--mut);text-decoration:none;padding-left:26px;text-indent:-26px;}.side-toc a:hover, body > nav a:hover{color:var(--acc);}.side-toc a.on, body > nav .here, body > nav a.here{color:var(--acc);font-weight:500;}.side-toc .tsub, body > nav .tsub{color:var(--faint);font-weight:400;}.side-toc .tnum, body > nav .tnum{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-weight:400;display:inline-block;width:19px;text-indent:0;color:var(--acc);font-size:11px;margin-right:7px;}body > nav ul{list-style:none;margin:0 0 12px;padding:0;}body > nav h2{margin:20px 0 6px;font-weight:400;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--acc);}body > nav > ul:first-of-type{margin-bottom:20px;}body > nav > ul:first-of-type li, body > nav > ul:first-of-type a{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;font-weight:400;color:var(--faint);}body > nav > ul:first-of-type a:hover{color:var(--ink);}body > nav .nav-here{display:none;}.hero{display:flex;flex-direction:column;}.hero-inner{flex:none;display:flex;flex-direction:column;align-items:center;padding:130px 24px 0;}.wordmark{margin:0;position:relative;font-weight:400;font-size:84px;letter-spacing:2px;line-height:1;color:var(--ink);}.wordmark .tilde{position:absolute;right:100%;color:#2af6db;}.tagline{margin:20px 0 0;max-width:52ch;text-align:center;font-size:17.5px;line-height:1.7;color:var(--text);text-wrap:pretty;font-family:'Departure Mono', 'IBM Plex Mono', monospace;}.ctas{display:flex;gap:12px 20px;margin-top:28px;flex-wrap:wrap;align-items:center;justify-content:center;}.ctas a{border:1px solid var(--chipline);color:var(--text);font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-weight:500;font-size:14.5px;padding:9px 18px;text-decoration:none;white-space:nowrap;}.ctas a:hover{border-color:var(--text);}.ctas a.cta-go{background:var(--acc);border-color:var(--acc);color:var(--bg);}.ctas a.cta-go:hover{border-color:var(--acc);filter:brightness(1.1);}.ctas a.cta-why{background:var(--bg);}.install-line{display:flex;align-items:center;margin-top:20px;gap:12px;font-size:13.5px;white-space:nowrap;}.install-line .cmd{color:var(--ink);}.hero ~ .band{margin-top:56px;}.feature .carousel{flex:7 1 420px;min-width:0;}.slides{display:grid;}.slide{grid-area:1 / 1;visibility:hidden;min-width:0;display:flex;flex-direction:column;}.slide.active{visibility:visible;}.carousel .slide .term{flex:1 1 auto;display:flex;flex-direction:column;}body.home .term pre{font-family:'JetBrains Mono', 'IBM Plex Mono', monospace;}.carousel .slide .term pre{flex:1;font-size:13.5px;}.carousel-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:16px;}.car-arrow{background:none;border:none;cursor:pointer;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:16px;color:#7a7a7a;padding:2px 8px;}.car-arrow:hover{color:var(--acc);}.dots{display:flex;gap:10px;align-items:center;}.dot{width:7px;height:7px;border-radius:50%;border:none;padding:0;background:#2f2f2f;cursor:pointer;}.dot:hover{background:#a7f0e2;}.dot.active{background:var(--acc);}.marks{display:flex;justify-content:center;padding:30px 24px;background:var(--side);}.marks.head{padding-top:64px;}.marks.tail{padding-bottom:72px;}.marks-grid{display:grid;max-width:1060px;width:100%;grid-template-columns:repeat(auto-fit, minmax(340px, 1fr));gap:36px 52px;}.kicker{grid-column:1 / -1;margin-bottom:-8px;font-size:24px;color:var(--acc);}.card{display:flex;flex-direction:column;gap:8px;min-width:0;}.card h3{margin:0;font-weight:600;font-size:17.5px;color:var(--ink);}.card p{margin:0;font-size:17px;line-height:1.65;color:var(--mut);text-wrap:pretty;}.card .term{margin-top:6px;flex:1;display:flex;flex-direction:column;}.card .term pre{flex:1;}.nowrap{white-space:nowrap;}.feature{display:flex;justify-content:center;padding:56px 24px 0;background:var(--side);}.feature.last{padding-bottom:64px;}.feature-inner{display:flex;flex-wrap:wrap;gap:32px 48px;align-items:center;max-width:1060px;width:100%;}.feature-inner.swap{flex-direction:row-reverse;}.feature-text{flex:5 1 280px;min-width:0;display:flex;flex-direction:column;gap:10px;}.feature-text h2{margin:0;font-weight:400;font-size:24px;font-family:'Departure Mono', 'IBM Plex Mono', monospace;color:var(--ink);}.feature-text p{margin:0;font-size:17px;line-height:1.65;color:var(--mut);text-wrap:pretty;}.feature .term{flex:7 1 420px;min-width:0;}.ic{font-family:'IBM Plex Mono', monospace;font-size:16px;color:var(--accpale);}.bench{padding:20px 20px 14px;display:flex;flex-direction:column;gap:12px;}.bench-row{display:grid;grid-template-columns:96px 1fr 52px;gap:12px;align-items:center;font-family:'JetBrains Mono', 'IBM Plex Mono', monospace;font-size:12.5px;}.bench-row .name{color:#7a7a7a;}.bench-row .time{color:#d2d2d2;text-align:right;}.bench-row.lead .name, .bench-row.lead .time{color:#2af6db;}.bench-track{height:14px;background:#151515;}.bench-track div{height:100%;min-width:6px;background:#3f3f3f;}.bench-row.lead .bench-track div{background:#2af6db;}.bench-note{font-family:'JetBrains Mono', 'IBM Plex Mono', monospace;font-size:11px;color:#5c5c5c;margin-top:2px;}.bench-group{font-family:'JetBrains Mono', 'IBM Plex Mono', monospace;font-size:11px;color:#7a7a7a;margin-top:6px;}.bench-group:first-child{margin-top:0;}.terrains{display:flex;justify-content:center;padding:64px 24px 72px;background:var(--bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}.terrains-inner{display:flex;flex-direction:column;gap:30px;max-width:1000px;width:100%;}.terrains h2{margin:0;font-weight:400;font-size:24px;font-family:'Departure Mono', 'IBM Plex Mono', monospace;color:var(--ink);}.terrain-grid{display:grid;gap:36px;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));}.terrain{display:flex;flex-direction:column;gap:8px;}.terrain .icon{height:44px;align-self:flex-start;margin-bottom:4px;background:var(--acc);}.icon.native{width:44px;-webkit-mask:url('/static/img/icon-native.png') no-repeat center / contain;mask:url('/static/img/icon-native.png') no-repeat center / contain;}.icon.browser{width:44px;-webkit-mask:url('/static/img/icon-browser.png') no-repeat center / contain;mask:url('/static/img/icon-browser.png') no-repeat center / contain;}.icon.embedded{width:44px;-webkit-mask:url('/static/img/icon-embedded.png') no-repeat center / contain;mask:url('/static/img/icon-embedded.png') no-repeat center / contain;}.terrain .label{font-size:13px;color:var(--acc);}.terrain p{margin:0;font-size:17px;line-height:1.65;color:var(--mut);text-wrap:pretty;}.terrain .cmd{font-family:'IBM Plex Mono', monospace;font-size:12.5px;color:var(--cm);margin-top:12px;}.terrain .cmd::before{content:"$ ";color:var(--acc);}.term pre .d-add{color:#2af6db;}.feature.batteries{background:var(--bg);padding:64px 24px 72px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}.lib-link{display:block;margin-top:12px;font-family:'IBM Plex Mono', monospace;font-size:14px;color:var(--acc);text-decoration:none;}.feature .term pre a{color:#2af6db;text-decoration:none;}.feature .term pre a:hover{text-decoration:underline;}.feature .term pre .p a{color:inherit;}.batteries .more{font-family:'IBM Plex Mono', monospace;font-size:13.5px;color:var(--acc);text-decoration:none;align-self:flex-start;}.outro{display:flex;flex-direction:column;align-items:center;gap:18px;padding:60px 24px 68px;background:var(--side);}.outro-box{background:#0b0b0b;border:1px solid #242424;padding:12px 20px;display:flex;align-items:center;gap:16px;}.outro-box pre{margin:0;font-size:14px;color:#d2d2d2;}.outro-box .p{color:#5c5c5c;}.outro-box .copy-btn.icon{color:#4a4a4a;}.outro-box .copy-btn.icon:hover{color:#2af6db;}.outro-box .copy-btn.icon.done{color:#2af6db;}.outro-box .copy-btn.icon .copied-tip{top:50%;left:100%;margin:0 0 0 33px;transform:translateY(-50%);color:var(--acc);}.outro .docs-link{font-family:'IBM Plex Mono', monospace;font-weight:500;font-size:14.5px;color:var(--acc);text-decoration:none;}main.code{width:100%;padding:28px 24px 24px;height:calc(100vh - 67px);display:flex;flex-direction:column;}main.code h1{margin:0;font-weight:400;font-size:44px;letter-spacing:1px;line-height:1.15;color:var(--ink);}main.code h1 .tilde{color:var(--acc);}main.code .note{margin-top:10px;font-size:13px;color:var(--faint);display:flex;align-items:baseline;}main.code .note .stamp{color:var(--mut);}main.code .note .dl{margin-left:auto;color:var(--faint);text-decoration:none;}main.code .note .dl:hover{color:var(--acc);}.code-browser{margin-top:18px;border:1px solid var(--line);display:grid;grid-template-columns:280px minmax(0, 1fr);grid-template-rows:minmax(0, 1fr);flex:1;min-height:360px;}.code-tree{background:var(--side);border-right:1px solid var(--line);min-height:0;overflow-y:auto;padding:10px 0 20px;font-family:'IBM Plex Mono', monospace;font-size:13px;}.code-tree summary{display:block;padding:4px 14px 4px;color:var(--text);cursor:pointer;user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.code-tree summary::-webkit-details-marker{display:none;}.code-tree summary:hover{color:var(--ink);}.code-tree .marker{display:inline-block;width:14px;font-size:10px;color:var(--faint);}.code-tree details[open] > summary > .marker{transform:rotate(90deg);}.code-file{display:block;border-left:2px solid transparent;padding:4px 14px 4px;color:var(--text);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.code-file:hover{color:var(--ink);}.code-file.active{color:var(--acc);background:var(--sel);border-left-color:var(--acc);}.code-view{min-width:0;min-height:0;display:flex;flex-direction:column;background:#0b0b0b;}.code-view-head{background:#101010;border-bottom:1px solid #242424;display:flex;align-items:baseline;gap:10px;padding:7px 14px;flex:none;}.code-view-head .dot{width:6px;height:6px;background:#2af6db;flex:none;align-self:center;}.code-view-head .name{font-size:12px;color:#d2d2d2;}.code-view-head .meta{margin-left:auto;font-size:11px;color:#5c5c5c;}.code-view-head .raw-toggle{background:none;border:none;padding:0;font:inherit;font-size:11px;color:#5c5c5c;cursor:pointer;}.code-view-head .raw-toggle:hover{color:#d2d2d2;}.code-view-head .raw-toggle[aria-pressed="true"]{color:#2af6db;}.code-pane{flex:1;min-height:0;overflow:auto;padding:16px 20px;}.code-md{max-width:820px;color:#c8c8c8;font-size:15px;line-height:1.7;padding:4px 8px 32px;}main.code .code-md h1{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:40px;font-weight:400;letter-spacing:0.5px;color:#f0f0f0;margin:8px 0 25px;line-height:1.25;}.code-md h2{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:20px;font-weight:400;letter-spacing:0.5px;color:#eaeaea;margin:32px 0 16px;line-height:1.3;}.code-md h3{font-size:17px;font-weight:500;color:#eaeaea;margin:24px 0 8px;}.code-md h4{font-size:15px;font-weight:600;color:#eaeaea;margin:20px 0 6px;}.code-md p{margin:0 0 14px;}.code-md a{color:#2af6db;text-decoration:none;}.code-md a:hover{text-decoration:underline;}.code-md ul, .code-md ol{padding-left:24px;margin:0 0 14px;}.code-md li{margin:3px 0;}.code-md code{font-family:'JetBrains Mono', 'IBM Plex Mono', monospace;font-size:0.9em;background:#181818;border:1px solid #262626;padding:0.05em 0.35em;color:#e0e0e0;}.code-md pre{background:#0b0b0b;border:1px solid #242424;color:#d2d2d2;padding:14px 18px;margin:0 0 16px;overflow-x:auto;font:13.5px/1.65 'JetBrains Mono', 'IBM Plex Mono', monospace;}.code-md pre code{font:inherit;background:none;border:none;padding:0;color:inherit;}.code-md blockquote{margin:0 0 14px;padding:2px 16px;border-left:2px solid #2af6db;color:#9a9a9a;}.code-md table{border-collapse:collapse;margin:0 0 16px;font-size:14px;}.code-md th, .code-md td{border:1px solid #262626;padding:5px 10px;text-align:left;}.code-md th{background:#161616;color:#eaeaea;}.code-md img{max-width:100%;}.code-md hr{border:none;border-top:1px solid #242424;margin:24px 0;}.code-pane > pre{margin:0;background:none;border:none;padding:0;font-size:13px;line-height:1.75;}.code-empty{flex:1;display:flex;align-items:center;justify-content:center;color:#5c5c5c;font-size:13px;font-family:'Departure Mono', 'IBM Plex Mono', monospace;}body.gate-body{min-height:100vh;display:flex;flex-direction:column;}body.gate-body .band{position:static;}.edshell{--err:#ff6b5e;--errbg:#150d0c;--errbrd:#3d211d;--errdiv:#2a1714;--errchipbg:#1a1512;--errchipline:#2c2723;--errtext:#e8e8e8;--errpanebg:#120c0b;--errlinebg:rgba(255,107,94,0.07);--warn:#e5b567;}.emit-note{display:flex;align-items:baseline;gap:14px;justify-content:space-between;padding:6px 14px;font-size:11px;color:var(--mut);background:var(--side);border-bottom:1px solid var(--line);}.emit-note a{color:var(--acc);text-decoration:none;white-space:nowrap;}.emit-note a:hover{text-decoration:underline;}.emit-host{flex:1;min-height:0;}.emit-host .cm-editor{height:100%;}#pane-out{padding:14px 18px;background:var(--code);color:var(--codetext);font-family:'IBM Plex Mono', monospace;font-size:13px;line-height:1.55;}#out-run{margin:0;font:inherit;white-space:pre-wrap;}#pane-out .cmd{color:var(--faint);}#pane-out .cmd .dollar{color:#7adddd;}#pane-out .exit{color:var(--faint);}#pane-out .fail{color:#ff7a7a;}#out-problems:empty, #out-stale:empty{display:none;}#out-problems{margin:0 0 12px;border:1px solid var(--errbrd);background:var(--errpanebg);padding:13px 16px;display:flex;flex-direction:column;gap:7px;}#out-problems .phead{display:flex;align-items:center;gap:10px;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:12px;color:var(--err);}#out-problems .phead span:first-child{display:flex;align-items:center;gap:10px;}#out-problems .phead span:first-child::before{content:'';width:7px;height:7px;background:var(--err);flex-shrink:0;}#out-problems .phead .src{margin-left:auto;color:var(--ghost);}#out-problems .prow{cursor:pointer;font-size:12px;line-height:1.7;color:var(--codetext);}#out-problems .prow .loc{color:var(--ghost);}#out-problems .prow .name{color:var(--accpale);}#out-problems .prow:hover{color:var(--ink);}#out-stale{color:var(--faint);font-size:11px;margin:0 0 12px;font-family:'Departure Mono', 'IBM Plex Mono', monospace;}.ex-line{cursor:pointer;}.ex-line .loc{color:var(--ghost);}.ex-line .mark, .ex-line .val{color:var(--accpale);}.ex-line.bad .mark, .ex-line.bad .val{color:var(--err);}.ex-line:hover .val{text-decoration:underline;}#pane-out.stale #out-run{opacity:0.4;}.cove-ex{margin-left:14px;color:var(--accpale);opacity:0.85;}.cove-ex.bad{color:var(--err);opacity:1;}.cove-problem-line{background:var(--errlinebg) !important;}.cm-lineNumbers .cm-gutterElement.cove-problem-gutter{color:var(--err);display:flex;align-items:center;justify-content:flex-end;gap:6px;}.cm-lineNumbers .cm-gutterElement.cove-problem-gutter::before{content:'';width:7px;height:7px;background:var(--err);}.cove-problem-wrap{padding:10px 26px 14px 16px;}.cove-problem-card{position:relative;max-width:640px;background:var(--errbg);border:1px solid var(--errbrd);white-space:normal;cursor:default;}.cove-problem-card::before{content:'';position:absolute;top:-8px;left:16px;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:8px solid var(--errbrd);}.cove-problem-card::after{content:'';position:absolute;top:-6px;left:17px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:7px solid var(--errbg);}.cove-problem-card .head{display:flex;align-items:center;gap:12px;padding:11px 14px 0;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:11px;}.cove-problem-card .sev{color:var(--err);}.cove-problem-card.sev-warning .sev{color:var(--warn);}.cove-problem-card .ctx{color:var(--faint);}.cove-problem-card .head .loc{margin-left:auto;color:var(--ghost);}.cove-problem-card .msg{padding:7px 14px 11px;font-family:-apple-system, BlinkMacSystemFont, Aptos, Roboto, 'Segoe UI', Helvetica, Arial, sans-serif;font-size:13px;line-height:1.6;color:var(--errtext);}.cove-problem-card .msg .name{color:var(--accpale);}.cove-problem-card .foot{border-top:1px solid var(--errdiv);padding:9px 14px 10px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}.cove-problem-card .foot .label{color:var(--accpale);font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:11px;}.cove-problem-card .foot .helptext{color:var(--mut);font-family:-apple-system, BlinkMacSystemFont, Aptos, Roboto, 'Segoe UI', Helvetica, Arial, sans-serif;font-size:12px;display:inline-flex;align-items:center;gap:7px;flex-wrap:wrap;line-height:1.6;}.cove-problem-card .foot .chip{background:var(--errchipbg);border:1px solid var(--errchipline);padding:1px 7px;color:var(--codetext);font-family:'IBM Plex Mono', monospace;font-size:11.5px;}.cove-problem-card .foot button{margin-left:auto;cursor:pointer;background:transparent;color:var(--acc);font-family:'IBM Plex Mono', monospace;font-weight:500;font-size:12px;white-space:nowrap;padding:4px 12px;border:1px solid color-mix(in srgb, var(--acc) 40%, transparent);transition:background 0.15s, border-color 0.15s;}.cove-problem-card .foot button:hover{border-color:var(--acc);background:color-mix(in srgb, var(--acc) 8%, transparent);}.cm-editor{height:100%;font-size:13px;}.cm-scroller{font-family:'IBM Plex Mono', monospace !important;line-height:1.55;}.play{display:flex;flex-direction:column;height:calc(100vh - 48px - 6px);}.play .play-head{display:flex;align-items:center;gap:14px;padding:10px 20px;border-bottom:1px solid var(--line);background:var(--side);font-size:13px;}.play .play-head .title{color:var(--faint);letter-spacing:0.08em;font-size:12px;}.play .play-head .title .tilde{color:var(--acc);}.play .play-head button{font:inherit;cursor:pointer;background:var(--chipbg);color:var(--text);border:1px solid var(--chipline);padding:5px 14px;}.play .play-head button:hover{color:var(--acc);border-color:var(--acc);}.play .play-head #run{color:var(--acc);}.play .play-head #status{color:var(--mut);font-size:12px;}.play .play-head #problems{background:none;border:none;padding:0;color:var(--err);font:inherit;font-size:12.5px;cursor:pointer;display:flex;align-items:center;gap:8px;}.play .play-head #problems::before{content:'';width:6px;height:6px;background:var(--err);}.play .play-head #problems:empty{display:none;}.play .play-head #problems:hover{text-decoration:underline;color:var(--err);}.play .play-head #status a{color:var(--acc);text-decoration:none;}.play .play-head #status a:hover{text-decoration:underline;}.play .play-head .spacer{flex:1;}.play .play-head .tabs{display:flex;gap:0;}.play .play-head .tabs button{border-left-width:0;}.play .play-head .tabs button:first-child{border-left-width:1px;}.play .play-head .tabs button.on{color:var(--acc);background:var(--sel);}.play .play-panes{display:flex;flex:1;min-height:0;}.play #editor{flex:1.2;min-width:0;border-right:1px solid var(--line);}.play .play-drag{flex:0 0 9px;margin:0 -4px 0 -5px;z-index:5;cursor:col-resize;position:relative;touch-action:none;}.play .play-drag::after{content:'';position:absolute;left:4px;top:0;bottom:0;width:1px;background:transparent;transition:background 0.15s;}.play .play-drag:hover::after, .play .play-drag.dragging::after{background:var(--acc);}.play.resizing{cursor:col-resize;user-select:none;}.play.resizing .play-panes > *{pointer-events:none;}.play.resizing .play-drag{pointer-events:auto;}.play #right{flex:1;min-width:0;display:flex;}.play .pane{display:none;flex:1;min-width:0;overflow:auto;margin:0;}.play .pane.on{display:block;}.play #pane-c.on, .play #pane-js.on{display:flex;flex-direction:column;overflow:hidden;}.play .play-head #file-btn{background:none;border:none;padding:0;display:flex;align-items:center;gap:7px;cursor:pointer;color:var(--faint);letter-spacing:0.08em;font-size:12px;}.play .play-head #file-btn:hover{color:var(--ink);border:none;}.play .play-head #file-btn .tilde{color:var(--acc);}.play .play-head #file-btn .chev{color:var(--ghost);font-size:10px;transition:color 0.15s;}.play .play-head #file-btn:hover .chev{color:var(--acc);}.play #examples-scrim{display:none;position:fixed;inset:0;z-index:29;}.play #examples-scrim.open{display:block;}.play #examples{display:none;position:fixed;top:96px;left:50%;transform:translateX(-50%);z-index:30;width:min(880px, calc(100vw - 40px));max-height:68vh;overflow:auto;background:var(--side);border:1px solid var(--chipline);box-shadow:0 18px 50px rgba(0, 0, 0, 0.45);padding:22px 28px 20px;box-sizing:border-box;}.play #examples.open{display:block;}.play #examples .ex-head{font-size:13px;letter-spacing:0.08em;color:var(--acc);margin-bottom:18px;}.play #examples .ex-grid{columns:2;column-gap:44px;}.play #examples .ex-grid a{display:flex;align-items:baseline;gap:10px;break-inside:avoid;padding:3px 0;font-size:13.5px;color:var(--text);text-decoration:none;font-family:'IBM Plex Mono', monospace;}.play #examples .ex-grid a:hover{color:var(--acc);}.play #examples .ex-grid .n{color:var(--acc);font-size:12px;flex-shrink:0;}.play #examples .ex-foot{margin-top:16px;border-top:1px solid var(--line);padding-top:12px;font-size:11.5px;color:var(--faint);}.tourx{display:flex;flex-direction:column;height:calc(100vh - 48px);min-height:480px;}.tourx .tour-main{flex:1;min-height:0;display:flex;align-items:stretch;}.tourx .tour-lesson{flex:1 1 46%;min-width:0;overflow-y:auto;border-right:1px solid var(--line);}.tourx .tour-drag{flex:0 0 9px;margin:0 -4px 0 -5px;z-index:5;cursor:col-resize;position:relative;touch-action:none;}.tourx .tour-drag::after{content:'';position:absolute;left:4px;top:0;bottom:0;width:1px;background:transparent;transition:background 0.15s;}.tourx .tour-drag:hover::after, .tourx .tour-drag.dragging::after{background:var(--acc);}.tourx.resizing{cursor:col-resize;user-select:none;}.tourx.resizing .tour-main > *{pointer-events:none;}.tourx.resizing .tour-drag{pointer-events:auto;}.tourx .tour-lesson-inner{max-width:620px;padding:40px 44px 72px;box-sizing:border-box;}.tourx .stoprow{display:flex;align-items:center;gap:12px;}.tourx .stopline{font:12px 'Departure Mono', 'IBM Plex Mono', monospace;color:var(--faint);background:none;border:none;padding:0;cursor:pointer;user-select:none;transition:color 0.15s;}.tourx .stopline:hover{color:var(--ink);}.tourx .stoparrow{font-size:12px;color:var(--ghost);text-decoration:none;transition:color 0.15s;}.tourx a.stoparrow:hover{color:var(--acc);}.tourx .stoparrow.off{visibility:hidden;}.tourx .nextup{margin-top:36px;font-size:13px;color:var(--faint);text-align:right;}.tourx .nextup a{color:var(--acc);text-decoration:none;margin-left:4px;}.tourx .nextup a:hover{color:var(--accpale);}.tourx .tour-lesson h1{margin:16px 0 0;font-weight:400;font-size:30px;letter-spacing:0;line-height:1.3;color:var(--ink);}.tourx .tour-lesson h1 .tilde{color:var(--acc);}.tourx .tour-lesson h1 .sub{display:block;margin-top:4px;font-size:17px;color:var(--mut);}.tourx .prose{margin:20px 0 0;max-width:68ch;font-size:18.7px;line-height:1.7;color:var(--mut);text-wrap:pretty;font-family:-apple-system, BlinkMacSystemFont, Aptos, Roboto, 'Segoe UI', Helvetica, Arial, sans-serif;}.tourx .prose a{color:var(--acc);text-decoration:none;}.tourx .prose a:hover{text-decoration:underline;}.tourx code{background:var(--chipbg);border:1px solid var(--chipline);padding:1px 5px;color:var(--ink);font:13px 'IBM Plex Mono', monospace;}.tourx .tools{margin:16px 0 0;padding-left:22px;display:flex;flex-direction:column;gap:10px;font-family:-apple-system, BlinkMacSystemFont, Aptos, Roboto, 'Segoe UI', Helvetica, Arial, sans-serif;}.tourx .tools li{font-size:15px;line-height:1.65;color:var(--mut);text-wrap:pretty;}.tourx .tools li::marker{color:var(--acc);}.tourx .tour-right{flex:1 1 54%;min-width:0;display:flex;flex-direction:column;background:#0b0b0b;--bg:#070707;--side:#101010;--panel:#101010;--code:#0b0b0b;--chipbg:#141414;--chipline:#242424;--line:#1a1a1a;--ink:#f0f0f0;--text:#c2c2c2;--mut:#9a9a9a;--faint:#6a6a6a;--ghost:#4a4a4a;--acc:#2af6db;--accdim:#79d9c6;--accpale:#a7f0e2;--fn:#ffffff;--cm:#5c5c5c;--codetext:#d2d2d2;--sel:#0f1a17;--err:#ff6b5e;--errbg:#150d0c;--errbrd:#3d211d;--errdiv:#2a1714;--errchipbg:#1a1512;--errchipline:#2c2723;--errtext:#e8e8e8;--errpanebg:#120c0b;--errlinebg:rgba(255,107,94,0.07);--warn:#e5b567;}.tourx .ed-head{flex-shrink:0;display:flex;align-items:center;gap:14px;padding:8px 18px;border-bottom:1px solid var(--line);font-size:12px;}.tourx .ed-head .file{color:var(--faint);}.tourx .ed-head #status{color:var(--mut);}.tourx .ed-head #status a{color:var(--acc);text-decoration:none;}.tourx .ed-head #problems{background:none;border:none;padding:0;color:var(--err);font:inherit;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:8px;}.tourx .ed-head #problems::before{content:'';width:6px;height:6px;background:var(--err);}.tourx .ed-head #problems:empty{display:none;}.tourx .ed-head #problems:hover{text-decoration:underline;}.tourx .ed-head .spacer{flex:1;}.tourx .ed-head .openplay{color:var(--ghost);text-decoration:none;transition:color 0.15s;}.tourx .ed-head .openplay:hover{color:var(--mut);}.tourx .ed-head .fullbtn{margin-left:0;padding:4px 6px;}.tourx #editor{flex:1;min-height:0;}.tourx .tour-vdrag{flex:0 0 9px;margin:-4px 0 -5px;z-index:5;cursor:row-resize;position:relative;touch-action:none;}.tourx .tour-vdrag::after{content:'';position:absolute;top:4px;left:0;right:0;height:1px;background:transparent;transition:background 0.15s;}.tourx .tour-vdrag:hover::after, .tourx .tour-vdrag.dragging::after{background:var(--acc);}.tourx.vresizing{cursor:row-resize;user-select:none;}.tourx.vresizing .tour-right > *{pointer-events:none;}.tourx.vresizing .tour-vdrag{pointer-events:auto;}.tourx .tour-right .cm-editor{font-size:14px;}.tourx .tour-right.full{position:fixed;inset:0;z-index:40;}.tourx .tour-out{flex-shrink:0;display:flex;flex-direction:column;border-top:1px solid var(--line);background:var(--code);}.tourx .out-head{display:flex;align-items:center;gap:14px;padding:8px 18px 0;font-size:12px;}.tourx .out-head .spacer{flex:1;}.tourx .out-head #run{font:inherit;font-size:13px;cursor:pointer;user-select:none;background:none;color:var(--acc);border:1px solid color-mix(in srgb, var(--acc) 45%, transparent);padding:4px 14px;transition:background 0.15s, color 0.15s, border-color 0.15s;}.tourx .out-head #run:hover{background:var(--acc);color:#070707;border-color:var(--acc);}.tourx .out-head .tabs{display:flex;}.tourx .out-head .tabs button{font:inherit;cursor:pointer;user-select:none;background:none;color:var(--mut);border:1px solid var(--chipline);border-left-width:0;padding:4px 12px;}.tourx .out-head .tabs button:first-child{border-left-width:1px;}.tourx .out-head .tabs button:hover{color:var(--acc);}.tourx .out-head .tabs button.on{color:var(--acc);background:var(--sel);}.tourx .out-head .ocmd{color:var(--ghost);font-size:11.5px;}.tourx .tour-out .pane{display:none;overflow:auto;margin:0;}.tourx .tour-out .pane.on{display:block;}.tourx #pane-out{min-height:96px;max-height:34vh;}.tourx #pane-c.on, .tourx #pane-js.on{display:flex;flex-direction:column;overflow:hidden;height:34vh;}.tourx .tour-right.outsized #pane-out{height:var(--outh);min-height:0;max-height:none;}.tourx .tour-right.outsized #pane-c.on, .tourx .tour-right.outsized #pane-js.on{height:var(--outh);}.tourx .tour-foot{flex-shrink:0;display:flex;align-items:center;gap:16px;padding:0 20px;height:54px;border-top:1px solid var(--line);background:var(--bg);position:relative;z-index:20;}.tourx .tour-foot .side{flex:1;display:flex;min-width:0;}.tourx .tour-foot .side.next{justify-content:flex-end;}.tourx .tour-foot .side a{font-family:'IBM Plex Mono', monospace;font-weight:500;font-size:13.5px;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color 0.15s;}.tourx .tour-foot .side.prev a{color:var(--mut);}.tourx .tour-foot .side.prev a:hover{color:var(--ink);}.tourx .tour-foot .side.next a{color:var(--acc);}.tourx .tour-foot .side.next a:hover{color:var(--accpale);}.tourx .tour-foot .count{font-size:11.5px;color:var(--faint);}.tourx .tour-foot #contents-btn{font:13px 'Departure Mono', 'IBM Plex Mono', monospace;color:var(--mut);background:none;border:1px solid var(--chipline);padding:7px 16px;cursor:pointer;user-select:none;transition:color 0.15s, border-color 0.15s;}.tourx .tour-foot #contents-btn:hover{color:var(--ink);border-color:var(--mut);}.tourx #contents-scrim{display:none;position:fixed;inset:0;z-index:29;}.tourx #contents-scrim.open{display:block;}.tourx #contents{display:none;position:fixed;bottom:70px;left:50%;transform:translateX(-50%);z-index:30;width:min(820px, calc(100vw - 40px));max-height:62vh;overflow:auto;background:var(--side);border:1px solid var(--chipline);box-shadow:0 18px 50px rgba(0, 0, 0, 0.45);padding:22px 28px 20px;box-sizing:border-box;}.tourx #contents.open{display:block;}.tourx #contents .ct-head{font-size:13px;letter-spacing:0.08em;color:var(--acc);margin-bottom:18px;}.tourx #contents .ct-grid{columns:3;column-gap:40px;}.tourx #contents .ct-group{break-inside:avoid;margin-bottom:14px;}.tourx #contents .ct-stop{display:flex;align-items:baseline;gap:10px;margin-bottom:4px;}.tourx #contents .ct-stop .n{color:var(--acc);font-size:12px;}.tourx #contents .ct-stop .s{color:var(--ink);font-size:13px;}.tourx #contents a{display:flex;align-items:baseline;gap:8px;padding:2px 0 2px 27px;font-family:'IBM Plex Mono', monospace;font-size:13px;color:var(--text);text-decoration:none;}.tourx #contents a:hover{color:var(--acc);}.tourx #contents a.on{color:var(--acc);}.tourx #contents .ct-foot{margin-top:16px;border-top:1px solid var(--line);padding-top:12px;font-size:11.5px;color:var(--faint);}body.book{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font:17px/1.7 -apple-system, BlinkMacSystemFont, Aptos, Roboto, 'Segoe UI', Helvetica, Arial, sans-serif;display:grid;grid-template-columns:minmax(240px, 1fr) minmax(0, 760px) minmax(0, 1fr);grid-template-rows:auto auto 1fr;}body.book.nav-hidden{grid-template-columns:minmax(0, 1fr) minmax(0, 760px) minmax(0, 1fr);}body.book.nav-hidden > nav{position:fixed;left:14px;top:81px;width:auto;padding:0;background:none;border:none;max-height:none;overflow:visible;}body.book.nav-hidden > nav > :not(.nav-toggle){display:none;}body.book.nav-hidden > nav .nav-toggle{float:none;margin:0;}body.book .topbar, body.book .band{grid-column:1 / -1;}body.book > nav{grid-row:3;grid-column:1;justify-self:start;width:240px;background:var(--side);border-right:1px solid var(--line);padding:28px 22px 60px;font-size:13.5px;line-height:1.9;position:sticky;top:67px;align-self:start;min-height:calc(100vh - 67px);max-height:calc(100vh - 67px);overflow-y:auto;scrollbar-width:none;}body.book > nav::-webkit-scrollbar{display:none;}body.book main{grid-row:3;grid-column:2;width:100%;min-width:0;padding:40px 48px 88px;}body.book .pager{margin-top:56px;padding-top:18px;border-top:1px solid var(--line);display:flex;gap:16px;align-items:baseline;font-family:'IBM Plex Mono', monospace;font-size:13px;color:var(--mut);}body.book .pager a{color:var(--mut);text-decoration:none;}body.book .pager .prev{flex:1 1 0;text-align:left;}body.book .pager .mid{flex:0 0 auto;text-align:center;}body.book .pager .next{flex:1 1 0;text-align:right;}body.book .pager a:hover{color:var(--acc);}body.book .nav-toggle{float:right;margin:0 0 0 10px;z-index:20;cursor:pointer;user-select:none;font:12px/1 'Departure Mono', 'IBM Plex Mono', monospace;padding:2px 7px 4px;border:none;background:transparent;color:var(--mut);}body.book .nav-toggle:hover{color:var(--ink);}body.book main h1 .tilde{color:var(--acc);}body.book > :where(main, aside) :is(h1, h2, h3){color:var(--ink);line-height:1.3;}body.book h1{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-weight:400;font-size:40px;letter-spacing:-0.5px;}body.book h1 .chnum{color:var(--acc);font-size:22px;font-weight:400;letter-spacing:0.02em;margin-right:10px;vertical-align:7px;}body.book h1 .h1-sub{display:block;margin-top:2px;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:30px;font-weight:400;letter-spacing:0;color:var(--ink);}body.book .part-kicker{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:var(--acc);margin:0 0 -14px;}body.book > :where(main, aside) h2{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:24px;font-weight:400;margin:36px 0 12px;}body.book h3{font-size:16px;}body.book strong{color:var(--ink);}body.book > :where(main, header, aside) a{color:var(--acc);}body.book main ul, body.book main ol{padding-left:1.2em;}body.book main li{margin-bottom:5px;}body.book main p, body.book main li{font-size:18.7px;}body.book pre{background:#0b0b0b;border:1px solid #242424;color:#d2d2d2;padding:14px 18px;overflow-x:auto;font:13.5px/1.65 'JetBrains Mono', 'IBM Plex Mono', monospace;}body.book code{font-family:'IBM Plex Mono', monospace;font-size:0.9em;}body.book pre code{font:inherit;background:none;border:none;padding:0;color:inherit;}body.book p code, body.book li code, body.book td code, body.book th code{background:var(--chipbg);border:1px solid var(--chipline);padding:1px 5px;color:var(--ink);font-size:15px;}body.book main table{border-collapse:collapse;margin:16px 0;font-size:15px;}body.book main th, body.book main td{padding:6px 12px;text-align:left;vertical-align:baseline;border:1px solid var(--line);}body.book main thead th{background:var(--panel);color:var(--mut);font-weight:600;}body.book > aside.toc{grid-row:3;grid-column:3;justify-self:start;border:none;background:none;width:220px;padding:40px 24px 60px;columns:1;font:12.5px/1.9 -apple-system, BlinkMacSystemFont, Aptos, Roboto, 'Segoe UI', Helvetica, Arial, sans-serif;position:sticky;top:67px;align-self:start;max-height:calc(100vh - 67px);display:flex;flex-direction:column;}body.book aside.toc h2{margin:0 0 10px;font-weight:400;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--faint);}body.book aside.toc ul{list-style:none;margin:0;padding:0 0 0 12px;border-left:1px solid var(--line);overflow-y:auto;min-height:0;scrollbar-width:none;}body.book aside.toc ul::-webkit-scrollbar{display:none;}body.book aside.toc a{display:inline;padding:0;color:var(--mut);text-decoration:none;font-family:'IBM Plex Mono', monospace;font-size:12px;}body.book aside.toc a:hover{color:var(--acc);}body.book aside.toc a.on{color:var(--ink);font-weight:600;}body.book aside.toc .aside-next{margin:18px 0 0;padding:0;flex:0 0 auto;}body.book aside.toc .aside-next a{color:var(--mut);font-family:'Departure Mono', 'IBM Plex Mono', monospace;}body.book aside.toc .aside-next a:hover{color:var(--ink);}body.book main h1, body.book main h2{scroll-margin-top:78px;}body.book-index{margin:0;background:var(--bg);color:var(--text);font:17px/1.7 -apple-system, BlinkMacSystemFont, Aptos, Roboto, 'Segoe UI', Helvetica, Arial, sans-serif;}body.book-index main{max-width:820px;margin:0 auto;width:100%;padding:56px 24px 88px;}body.book-index .book-title{margin:0;font-weight:400;font-size:44px;letter-spacing:1px;line-height:1.15;color:var(--ink);font-family:'Departure Mono', 'IBM Plex Mono', monospace;text-align:center;}body.book-index .book-title .tilde{color:#2af6db;}body.book-index .book-intro{margin-top:44px;}body.book-index .book-intro h2{font-family:-apple-system, BlinkMacSystemFont, Aptos, Roboto, 'Segoe UI', Helvetica, Arial, sans-serif;color:var(--ink);font-weight:600;font-size:22px;margin:40px 0 10px;}body.book-index .book-intro h3{color:var(--ink);font-weight:600;font-size:17px;margin:26px 0 8px;}body.book-index .book-intro p{max-width:68ch;color:var(--mut);margin:10px 0;}body.book-index .book-intro ul, body.book-index .book-intro ol{max-width:68ch;color:var(--mut);padding-left:22px;}body.book-index .book-intro li{margin:5px 0;}body.book-index .book-intro strong{color:var(--ink);}body.book-index .book-intro a{color:var(--acc);}body.book-index .book-intro code{background:var(--chipbg);border:1px solid var(--chipline);padding:1px 5px;color:var(--ink);font:15px 'IBM Plex Mono', monospace;}body.book-full main{padding-top:0;}body.book-full .cover{min-height:60vh;display:flex;flex-direction:column;justify-content:center;text-align:center;padding:40px 0;padding-top:0;}body.book-full .cover .book-title{margin:0;font-weight:400;font-size:44px;letter-spacing:1px;line-height:1.15;color:var(--ink);font-family:'Departure Mono', 'IBM Plex Mono', monospace;}body.book-full .cover .book-title .tilde{color:#2af6db;}body.book-full .cover .cover-sub{color:var(--mut);margin:18px 0 0;font:13px 'Departure Mono', 'IBM Plex Mono', monospace;letter-spacing:0.08em;text-transform:uppercase;}body.book-full .cover .cover-version{color:var(--mut);margin:28px 0 0;font:13px 'Departure Mono', 'IBM Plex Mono', monospace;}body.book-full .contents > h2{font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-weight:400;font-size:20px;margin:0 0 12px;color:var(--ink);}body.book-full .contents .toc{margin-top:0;}body.book-full .contents .toc h2{font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--acc);margin:22px 0 8px;}body.book-full .contents .toc h2:first-child{margin-top:0;}body.book-full .cover, body.book-full .contents, body.book-full .part, body.book-full .chapter{min-height:100vh;padding-top:48px;}body.book-full .part{display:flex;flex-direction:column;justify-content:center;border-bottom:1px solid var(--line);}body.book-full .part .part-kicker{margin:0 0 6px;}body.book-full .part h1{margin:0;}body.book-full .chapter h1 .chnum{vertical-align:5px;}body.book-full.chrome-hidden .topbar, body.book-full.chrome-hidden .band{transform:translateY(-67px);}body.docsite{margin:0;background:var(--bg);color:var(--text);font:13.5px/1.7 'IBM Plex Mono', ui-monospace, monospace;display:grid;grid-template-columns:minmax(240px, 1fr) minmax(0, 760px) minmax(0, 1fr);grid-template-rows:auto auto auto 1fr;}body.docsite > header, body.docsite > main{max-width:none;margin:0;padding:0 48px;grid-column:2;width:100%;}body.docsite > header{margin-top:40px;padding-bottom:16px;border-bottom:1px solid var(--line);grid-row:3;}body.docsite > main{padding-bottom:88px;grid-row:4;}body.docsite h1{color:var(--ink);font-weight:500;font-size:26px;letter-spacing:-0.3px;margin:0 0 4px;}body.docsite h1 .meta{font-size:13px;font-weight:400;letter-spacing:0;}body.docsite > :where(main, header, aside) a{color:var(--acc);text-decoration:none;}body.docsite > :where(main, header, aside) a:hover{text-decoration:underline;}body.docsite header .crumb{margin:0 0 12px;font-size:12px;font-family:'Departure Mono', 'IBM Plex Mono', monospace;}body.docsite p{margin:4px 0;}body.docsite pre.sig{margin:0;white-space:pre-wrap;overflow-wrap:break-word;font-size:17px;color:var(--codetext);}body.docsite .entry{margin:0 0 18px;scroll-margin-top:78px;}body.docsite .memberdoc, body.docsite .fndoc, body.docsite .typedoc{margin-left:16px;}body.docsite .moduledoc{margin-bottom:1.7em;}body.docsite .doc{color:var(--text);font-family:-apple-system, BlinkMacSystemFont, Aptos, Roboto, 'Segoe UI', Helvetica, Arial, sans-serif;font-size:18.15px;}body.docsite > header > .meta{font-family:-apple-system, BlinkMacSystemFont, Aptos, Roboto, 'Segoe UI', Helvetica, Arial, sans-serif;font-size:14px;}body.docsite .meta{color:var(--faint);}body.docsite .kw{color:var(--acc);}body.docsite .nm{color:var(--ink);font-weight:600;}body.docsite .ty{color:var(--voice);}body.docsite .doc pre{background:#0b0b0b;border:1px solid #242424;color:#d2d2d2;margin:14px 0;padding:10px 14px;overflow-x:auto;font:13px/1.65 'IBM Plex Mono', ui-monospace, monospace;}body.docsite .doc code{background:var(--chipbg);border:1px solid var(--chipline);padding:0 4px;font:15px/1.5 'IBM Plex Mono', ui-monospace, monospace;}body.docsite .doc pre code{background:none;border:none;padding:0;font:inherit;}body.docsite .doc ul, body.docsite .doc ol{margin:4px 0;padding-left:3ch;}body.docsite .doc blockquote{margin:4px 0;padding-left:12px;border-left:3px solid var(--line);}body.docsite h2.grp{margin:36px 0 8px;font-weight:400;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:12px;letter-spacing:0.08em;text-transform:uppercase;}body.docsite h2.grp a{color:var(--acc);}body.docsite h2.grp a:hover{text-decoration:underline;}body.docsite table.mods{border-collapse:collapse;width:100%;}body.docsite table.mods a{color:var(--ink);}body.docsite table.mods a:hover{color:var(--acc);}body.docsite table.mods td{padding:4px 20px 4px 0;vertical-align:baseline;}body.docsite table.mods td:last-child{padding-right:0;}body.docsite table.mods td p{margin:0;}body.docsite .topbar, body.docsite .band{grid-column:1 / -1;}body.docsite > nav{grid-row:3 / 5;grid-column:1;justify-self:start;width:240px;background:var(--side);border-right:1px solid var(--line);padding:28px 22px 60px;font:13.5px/1.9 -apple-system, BlinkMacSystemFont, Aptos, Roboto, 'Segoe UI', Helvetica, Arial, sans-serif;position:sticky;top:67px;align-self:start;max-height:calc(100vh - 67px);overflow-y:auto;scrollbar-width:none;}body.docsite > nav::-webkit-scrollbar{display:none;}body.docsite .nav-toggle{float:right;margin:0 0 0 10px;z-index:20;cursor:pointer;user-select:none;font:12px/1 'Departure Mono', 'IBM Plex Mono', monospace;padding:2px 7px 4px;border:none;background:transparent;color:var(--mut);}body.docsite .nav-toggle:hover{color:var(--ink);}body.docsite.nav-hidden{grid-template-columns:minmax(0, 1fr) minmax(0, 760px) minmax(0, 1fr);}body.docsite.nav-hidden > nav{position:fixed;left:14px;top:81px;width:auto;padding:0;background:none;border:none;max-height:none;overflow:visible;}body.docsite.nav-hidden > nav > :not(.nav-toggle){display:none;}body.docsite.nav-hidden > nav .nav-toggle{float:none;margin:0;}body.docsite table.mods td:first-child{width:170px;white-space:nowrap;}body.docsite > aside.toc{grid-row:3 / 5;grid-column:3;justify-self:start;border:none;background:none;width:220px;padding:40px 24px 60px;columns:1;font:12.5px/1.9 -apple-system, BlinkMacSystemFont, Aptos, Roboto, 'Segoe UI', Helvetica, Arial, sans-serif;position:sticky;top:67px;align-self:start;max-height:calc(100vh - 67px);display:flex;flex-direction:column;}body.docsite aside.toc ul{overflow-y:auto;min-height:0;scrollbar-width:none;list-style:none;margin:0;padding:0 0 0 12px;border-left:1px solid var(--line);}body.docsite aside.toc ul::-webkit-scrollbar{display:none;}body.docsite aside.toc h2{margin:0 0 10px;font-weight:400;font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--faint);}body.docsite aside.toc a{display:inline;padding:0;color:var(--mut);text-decoration:none;font-family:'IBM Plex Mono', monospace;font-size:12px;}body.docsite aside.toc a:hover{color:var(--acc);}body.docsite aside.toc a.on{color:var(--ink);font-weight:600;}body.docsite aside.toc li.sub{margin-left:16px;}body.docsite aside.toc .k{color:var(--faint);font-family:'Departure Mono', 'IBM Plex Mono', monospace;}body.docsite section.recv > pre.sig:first-child{position:sticky;top:67px;z-index:3;background:var(--bg);padding:6px 0;border-bottom:1px solid var(--line);}body.docsite section.recv > .entry + .entry{margin-left:16px;}body.docsite section.recv .entry{scroll-margin-top:112px;}body.docsite.stdlib h1{font-family:'Departure Mono', 'IBM Plex Mono', monospace;}body.docsite.stdlib h1 .tilde{color:var(--acc);}body.docsite > nav li.sub{margin-left:14px;}body.docsite > nav li.sub a, body.docsite > nav li.sub.here{font-size:11px;line-height:1.7;color:var(--faint);}body.docsite > nav li.sub a:hover{color:var(--acc);}body.docsite > nav li.sub.here{color:var(--acc);}body.docsite.idx{grid-template-columns:minmax(0, 1fr) minmax(0, 880px) minmax(0, 1fr);}body.docsite.idx > header{padding:0 48px;border-bottom:none;}body.docsite.idx > main{padding:0 48px 88px;}body.docsite.idx > aside.toc{grid-row:3 / 5;}body.docsite.idx h2.grp{display:flex;align-items:center;gap:14px;margin:40px 0 14px;scroll-margin-top:78px;}body.docsite.idx h2.grp::after{content:"";flex:1;border-top:1px solid var(--line);}body.docsite.idx .modgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}body.docsite.idx .mod{background:var(--side);border:1px solid var(--line);padding:12px 16px;min-width:0;}body.docsite.idx .mod a{color:var(--acc);font-family:'Departure Mono', 'IBM Plex Mono', monospace;font-size:120%;}body.docsite.idx .mod a:hover{text-decoration:underline;}body.docsite.idx .mod .doc{margin:2px 0 0;font-size:16.5px;line-height:1.5;}body.docsite.idx .mod .doc p{margin:0;}body.docsite.idx .mod .subs{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:2px 14px;}body.docsite.idx .mod .subs a{font-size:13px;color:var(--accdim);}@media (max-width: 640px){.Tourbar .tourbar-sub{display:none;}.Cards{grid-template-columns:1fr;}.Pkgs .src-browser{grid-template-columns:1fr;}.Pkgs .src-tree{flex-direction:row;flex-wrap:wrap;border-right:none;border-bottom:1px solid var(--line);}.Pkgs .pkg-list{grid-template-columns:1fr;}}@media (max-width: 760px){.Pkgs .pkg-body{grid-template-columns:1fr;}}@media (prefers-color-scheme: light){.Article pre .t-comment{color:#8f8f8f;}.ReportMain input, .ReportMain select, .ReportMain textarea{background:#fff;}.ReportMain button{background:var(--chipline);border-color:#c9c7bb;}.ReportMain button:hover{border-color:var(--mut);}:root{--bg:#f9f8f4;--side:#f3f2ec;--panel:#eeede6;--code:#f3f2ea;--chipbg:#ebeae2;--chipline:#dad8cd;--line:#e4e2d8;--ink:#191917;--text:#3f3e39;--mut:#6b6a62;--faint:#8b897e;--ghost:#a3a196;--acc:#0b8f7f;--accdim:#25786c;--accpale:#0f7263;--voice:#178273;--cap:#807e73;--fn:#101f1b;--cm:#9a988b;--codetext:#33322e;--sel:#e2efe9;--notebg:#ecf5f1;--noteline:#cbe2da;}.edshell{--err:#b5372a;--errbg:#faf0ed;--errbrd:#e7c9c2;--errdiv:#f0ddd7;--errchipbg:#efede4;--errchipline:#dcd9cc;--errtext:#22211e;--errpanebg:#faf1ee;--errlinebg:rgba(181,55,42,0.07);--warn:#8a6d1f;}body.book pre .t-comment{color:#8f8f8f;}}@media (max-width: 720px){.topbar > nav{display:none;}.topbar > .searchbox{display:none;}.topbar .tools a{display:none;}.topbar .tools a.release{display:inline-block;}.menubtn{display:flex;flex-direction:column;justify-content:space-between;width:20px;height:14px;flex:none;padding:0;border:none;background:none;cursor:pointer;}.menubtn span{display:block;height:2px;background:#f0f0f0;transition:transform 0.2s ease, opacity 0.15s ease;}.menubtn.open span:first-child{transform:translateY(6px) rotate(45deg);}.menubtn.open span + span{opacity:0;}.menubtn.open span + span + span{opacity:1;transform:translateY(-6px) rotate(-45deg);}.sheet.open{display:flex;}.sheet{position:fixed;top:48px;left:0;right:0;bottom:0;z-index:30;flex-direction:column;overflow-y:auto;background:#0a0a0a;padding:6px 20px 28px;}.sheet nav{display:flex;flex-direction:column;}.sheet nav a{display:flex;justify-content:space-between;align-items:center;padding:17px 0;border-bottom:1px solid #1c1c1c;color:#f0f0f0;font-size:24px;text-decoration:none;transition:color 0.2s;}.sheet nav a::after{content:"→";color:#3f3f3f;font-size:16px;}.sheet nav a:hover{color:#2af6db;}.sheet nav a.get{color:#2af6db;}.sheet .ext{margin-top:22px;display:flex;gap:22px;font-size:15px;}.sheet .ext a{color:#9a9a9a;text-decoration:none;}.sheet .ext a:hover{color:#2af6db;}.sheet .searchbox{margin:auto 0 0;width:100%;padding:12px;font-size:13px;}.sheet .foot{margin-top:14px;font-size:12px;color:#6a6a6a;text-align:right;}.play #examples .ex-grid{columns:1;}.tourx #contents .ct-grid{columns:2;}body.docsite > header, body.docsite > main{padding-left:20px;padding-right:20px;}body.docsite.idx > header, body.docsite.idx > main{padding-left:20px;padding-right:20px;}body.docsite.idx .modgrid{grid-template-columns:1fr;}}@media (max-width: 560px){.toc{columns:1;padding:20px 18px;}.toc .toc-head{font-size:15px;}.toc h2{font-size:13px;margin:26px 0 10px;}.toc a{font-size:17px;padding:9px 0;}.toc .tnum{margin-right:14px;}}@media (max-width: 840px){body > nav{display:flex;flex-wrap:wrap;align-items:center;}body > nav > ul:first-of-type{order:0;flex:1 1 0;min-width:0;margin:0;padding:14px 0;}body > nav > ul:first-of-type li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:0;text-indent:0;}body > nav > ul:first-of-type a{display:inline;padding-left:0;text-indent:0;}body > nav > .nav-toggle{order:1;}body > nav > h2, body > nav > ul:not(:first-of-type){order:2;flex:0 0 100%;display:none;}body > nav.open > h2, body > nav.open > ul:not(:first-of-type){display:block;}body > nav.open > ul:last-child{margin-bottom:20px;}body > nav > ul:not(:first-of-type) a, body > nav > ul:not(:first-of-type) .here{font-size:16px;line-height:2.2;padding-left:34px;text-indent:-34px;}body > nav > ul:not(:first-of-type) .tnum{font-size:14px;width:25px;margin-right:9px;}body > nav > h2{font-size:13px;margin:22px 0 8px;}body > nav .nav-here{display:inline;text-transform:none;letter-spacing:0;color:var(--text);}body > nav .nav-here::before{content:" · ";color:var(--faint);}body.book{display:block;}body.book > nav{position:static;max-height:none;width:auto;justify-self:auto;min-height:0;padding:0 20px;border-right:none;border-bottom:1px solid var(--line);}body.docsite{display:block;}body.docsite > nav{position:static;max-height:none;width:auto;justify-self:auto;padding:0 20px;border-right:none;border-bottom:1px solid var(--line);}}@media (max-width: 700px){main.code{height:auto;display:block;}.code-browser{grid-template-columns:1fr;grid-template-rows:none;height:auto;}.code-tree{max-height:40vh;border-right:none;border-bottom:1px solid var(--line);}.code-pane{overflow:visible;}}@media (max-width: 860px){.play{height:auto;}.play .play-panes{flex-direction:column;}.play #editor{border-right:none;border-bottom:1px solid var(--line);height:55vh;flex:0 0 auto !important;}.play .play-drag{display:none;}.play #right{height:40vh;}}@media (max-width: 900px){.tourx{height:auto;min-height:0;}.tourx .tour-main{flex-direction:column;}.tourx .tour-lesson{flex:1 1 auto !important;border-right:none;border-bottom:1px solid var(--line);overflow:visible;}.tourx .tour-drag, .tourx .tour-vdrag{display:none;}.tourx .tour-right.outsized #pane-out{height:auto;min-height:96px;max-height:34vh;}.tourx .tour-right.outsized #pane-c.on, .tourx .tour-right.outsized #pane-js.on{height:34vh;}.tourx .tour-right{min-height:70vh;}.tourx #editor{min-height:44vh;}}@media (max-width: 1180px){body.book > aside.toc{display:none;}body.docsite > aside.toc{display:none;}}@media (max-width: 600px){body.book-index .book-title{letter-spacing:0;font-size:clamp(22px, calc((100vw - 48px) / 11.2), 44px);}}@media print{body.book-full{display:block;background:#fff;color:#333;font-size:11pt;line-height:1.6;color-scheme:light;--bg:#fff;--side:#fff;--panel:#f2f2f2;--line:#ddd;--ink:#111;--text:#333;--mut:#666;--faint:#888;--acc:#0b8f7f;--chipbg:#f2f2f2;--chipline:#ddd;}body.book-full .topbar, body.book-full .band, body.book-full > nav, body.book-full > aside{display:none;}body.book-full main{padding:0;max-width:none;width:auto;}body.book-full .cover{min-height:80vh;}body.book-full .contents, body.book-full .part, body.book-full .chapter{break-before:page;margin-top:0;min-height:0;padding-top:0;}body.book-full .contents{min-height:0;padding-top:0;}body.book-full .contents .toc{columns:1;border:none;background:none;padding:0;}body.book-full .contents .toc a{color:inherit;}body.book-full .part{min-height:40vh;display:flex;flex-direction:column;justify-content:flex-end;border-bottom:1px solid #ddd;}body.book-full h1{font-size:30px;}body.book-full h2{font-size:17px;}body.book-full h1, body.book-full h2, body.book-full h3{break-after:avoid;}body.book-full pre{white-space:pre-wrap;overflow:visible;break-inside:avoid;font-size:9.5pt;line-height:1.5;-webkit-print-color-adjust:exact;print-color-adjust:exact;}body.book-full table{break-inside:avoid;}body.book-full a{color:inherit;text-decoration:none;}body.book-full main a[href^="http"]{color:#0b8f7f;}}