.prose figure.video{margin:1.4em 0}.prose .video-frame{width:100%;aspect-ratio:var(--ar,16 / 9);max-width:min(100%, calc(80vh * var(--arn,1.7778)));border:1px solid var(--hair);background:repeating-linear-gradient(135deg, var(--bg1) 0 6px, var(--bg0) 6px 12px);color:var(--text2);font-family:var(--mono);cursor:pointer;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:14px;margin-inline:auto;font-size:12px;text-decoration:none;transition:border-color .15s,color .15s;display:flex;position:relative;overflow:hidden}.prose figure.embed-codepen .video-frame{aspect-ratio:4/3;max-width:100%}.prose a.video-frame:hover,.prose a.video-frame:focus-visible{border-color:var(--amber);color:var(--text)}.prose a.video-frame:focus-visible{outline:2px solid var(--amber);outline-offset:3px}.prose .video-poster{object-fit:cover;border-radius:0;width:100%;max-width:none;height:100%;position:absolute;inset:0}.prose .video-frame.has-poster{color:#f4efe7;background:#000}.prose .video-frame.has-poster:before{content:"";background:linear-gradient(#0000001f 40%,#000000b8);position:absolute;inset:0}.prose .video-play,.prose .video-label{position:relative}.prose .video-play{border:1px solid;border-radius:50%;width:56px;height:56px}.prose .video-play:after{content:"";border-style:solid;border-width:10px 0 10px 16px;border-color:transparent transparent transparent var(--amber);position:absolute;top:17px;left:22px}.prose a.video-frame[data-note]:after{content:attr(data-note);color:var(--text3);text-align:center;padding:0 16px;font-size:10.5px;position:absolute;bottom:10px;left:0;right:0}.prose .video-frame.has-poster[data-note]:after{color:#f4efe7b3}.prose a.video-frame[data-state=processing] .video-play,.prose a.video-frame[data-state=failed] .video-play{opacity:.4}.prose iframe.video-player{cursor:auto;background:#000;border:0;display:block}.prose .vp{color:#f4efe7;cursor:default;-webkit-user-select:none;user-select:none;background:#000;gap:0;padding:0;display:block}.prose .vp:focus-visible{outline:2px solid var(--amber);outline-offset:3px}.prose .vp-video{object-fit:contain;background:#000;border-radius:0;width:100%;max-width:none;height:100%;display:block}.prose .vp-bar{background:linear-gradient(#0000,#000000c7);flex-wrap:wrap;align-items:center;gap:4px 8px;padding:22px 10px 8px;transition:opacity .2s;display:flex;position:absolute;bottom:0;left:0;right:0}.prose .vp.idle .vp-bar{opacity:0;pointer-events:none}.prose .vp.idle{cursor:none}.prose .vp-seek{cursor:pointer;touch-action:none;flex:100%;height:16px;position:relative}.prose .vp-seek:before,.prose .vp-buf,.prose .vp-pos{content:"";border-radius:2px;height:3px;position:absolute;top:6px;left:0}.prose .vp-seek:before{background:#ffffff38;width:100%}.prose .vp-buf{background:#ffffff47;width:0}.prose .vp-pos{background:var(--amber);width:0}.prose .vp-seek:hover:before,.prose .vp-seek:hover .vp-buf,.prose .vp-seek:hover .vp-pos,.prose .vp-seek:focus-visible:before,.prose .vp-seek:focus-visible .vp-buf,.prose .vp-seek:focus-visible .vp-pos{height:5px;top:5px}.prose .vp-seek:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.prose .vp-mark{pointer-events:none;background:#000c;width:2px;height:10px;margin-left:-1px;position:absolute;top:3px;box-shadow:0 0 0 1px #ffffff80}.prose .vp-tip{white-space:nowrap;pointer-events:none;opacity:0;background:#000000d9;border-radius:4px;padding:3px 8px;font-size:11px;position:absolute;bottom:20px;transform:translate(-50%)}.prose .vp-seek:hover .vp-tip{opacity:1}.prose .vp-btn{min-width:32px;height:32px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:0 6px;display:inline-grid}.prose .vp-btn svg{width:18px;height:18px}.prose .vp-btn:hover{background:#ffffff24}.prose .vp-btn:focus-visible{outline:2px solid var(--amber)}.prose .vp-text{font-size:11.5px;font-family:var(--mono)}.prose .vp-time,.prose .vp-chapter{font-variant-numeric:tabular-nums;font-size:11.5px}.prose .vp-chapter{text-overflow:ellipsis;white-space:nowrap;color:#f4efe7b3;flex:1 1 0;min-width:0;overflow:hidden}.prose .vp-right{align-items:center;margin-left:auto;display:flex}.prose .vp-menu{background:#0e0c0af0;border:1px solid #ffffff2e;border-radius:6px;flex-direction:column;min-width:120px;padding:4px;display:flex;position:absolute;bottom:52px;right:10px}.prose .vp-menu[hidden]{display:none}.prose .vp-item{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:6px 10px;font-size:12px}.prose .vp-item:hover{background:#ffffff1f}.prose .vp-item.on{color:var(--amber)}.prose .vp-item.on:before{content:"✓ "}.prose .vp-msg{text-align:center;pointer-events:none;background:#00000080;place-items:center;padding:24px;display:none;position:absolute;inset:0}.prose .vp-msg.on{display:grid}.prose .vp.busy:not(.idle):after{content:"";border:2px solid #ffffff40;border-top-color:var(--amber);border-radius:50%;width:32px;height:32px;animation:.9s linear infinite vp-spin;position:absolute;top:calc(50% - 16px);left:calc(50% - 16px)}@keyframes vp-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.prose .vp.busy:not(.idle):after{animation:none}.prose .vp-bar{transition:none}}.prose ol.chapters{max-width:min(100%,640px);font-family:var(--mono);gap:1px;margin:10px auto 0;padding:0;font-size:12px;list-style:none;display:grid}.prose ol.chapters a{color:var(--text2);border-radius:4px;gap:12px;padding:5px 8px;text-decoration:none;display:flex}.prose ol.chapters.plain li{color:var(--text2);gap:12px;padding:5px 8px;display:flex}.prose ol.chapters time{min-width:5ch;color:var(--amber);font-variant-numeric:tabular-nums;flex:none}.prose ol.chapters a:hover,.prose ol.chapters li.on a{background:var(--bg2);color:var(--text)}.prose ol.chapters li.on time:before{content:"▸ ";margin-left:-1.2ch}.prose figure.audio{margin:1.4em 0}.prose .audio-player{border:1px solid var(--hair);background:var(--bg1);border-radius:6px;align-items:center;gap:14px;padding:12px 14px;display:flex}.prose .audio-play{border:1px solid var(--amber);width:40px;height:40px;color:var(--amber);cursor:pointer;background:0 0;border-radius:50%;flex:none;place-items:center;padding:0;display:none}.prose figure.audio[data-ready] .audio-play{display:grid}.prose .audio-play svg{width:18px;height:18px}.prose .audio-play:hover{background:var(--amber);color:var(--bg0)}.prose .audio-play:focus-visible,.prose .audio-wave:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.prose .audio-wave{cursor:pointer;touch-action:none;flex:1;min-width:0;height:44px}.prose .audio-svg{width:100%;height:100%;display:block}.prose .wv{fill:none;stroke:var(--text3);stroke-width:.55px;stroke-linecap:round}.prose .wv-done{stroke:var(--amber);clip-path:inset(0 calc(100% - var(--p,0%)) 0 0)}.prose .audio-time{font-family:var(--mono);color:var(--text3);font-variant-numeric:tabular-nums;flex:none;font-size:11.5px}.prose .audio-now{color:var(--text2)}.prose figure.audio audio{width:100%;margin-top:8px}.prose figure.audio[data-ready] audio{display:none}.prose figure.audio.failed .audio-time:after{content:" · could not play";color:var(--amber)}.prose .audio-wait{border:1px dashed var(--hair);font-family:var(--mono);color:var(--text3);border-radius:6px;margin:0;padding:12px 14px;font-size:12px}.prose figure.model{margin:1.4em 0}.prose .model-stage{aspect-ratio:4/3;border:1px solid var(--hair);background:radial-gradient(circle at 50% 38%, var(--bg2), var(--bg0) 75%);width:100%;max-height:72vh;font-family:var(--mono);border-radius:6px;place-items:center;font-size:12px;display:grid;position:relative;overflow:hidden}.prose .model-stage:focus-visible{outline:2px solid var(--amber);outline-offset:3px}.prose .model-stage:fullscreen{aspect-ratio:auto;border-radius:0;max-height:none}.prose .model-canvas{cursor:grab;border-radius:0;outline:none;width:100%;max-width:none;height:100%;position:absolute;inset:0}.prose .model-canvas:active{cursor:grabbing}.prose .model-status{color:var(--text3);text-align:center;padding:0 24px;position:relative}.prose .model-bar{font-family:var(--mono);flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:8px;font-size:11px;display:flex}.prose .model-bar button{border:1px solid var(--hair);color:var(--text2);font:inherit;cursor:pointer;background:0 0;border-radius:4px;padding:3px 8px}.prose .model-bar button:hover,.prose .model-bar button.on{border-color:var(--amber);color:var(--text)}.prose .model-hint{color:var(--text3);margin-left:auto}.prose figure.gallery{column-width:220px;column-gap:10px;margin:1.4em 0;display:block}.prose figure.gallery[data-count="1"]{column-count:1}.prose figure.gallery[data-count="2"]{column-count:2}.prose .gallery-item{break-inside:avoid;border:1px solid var(--hair);cursor:zoom-in;border-radius:6px;margin-bottom:10px;transition:border-color .15s;display:block;overflow:hidden}.prose .gallery-item img{border-radius:0;width:100%;height:auto;display:block}.prose .gallery-item:hover,.prose .gallery-item:focus-visible{border-color:var(--amber)}.prose .gallery-item:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.prose figure.carousel{margin:1.4em 0;display:block;position:relative}.prose .carousel-track{scroll-snap-type:x mandatory;scrollbar-width:thin;border:1px solid var(--hair);background:var(--bg1);border-radius:6px;display:flex;overflow-x:auto}.prose .carousel-track:focus-visible{outline:2px solid var(--amber);outline-offset:3px}.prose figure.slide{scroll-snap-align:center;flex-direction:column;flex:0 0 100%;gap:8px;margin:0;padding-bottom:10px;display:flex}.prose figure.slide img{object-fit:contain;border-radius:0;width:100%;max-height:72vh}.prose figure.slide figcaption{padding:0 14px}.prose .carousel-nav{color:#f4efe7;cursor:pointer;background:#0e0c0ab3;border:1px solid #ffffff40;border-radius:50%;place-items:center;width:40px;height:40px;padding:0;display:grid;position:absolute;top:calc(50% - 22px)}.prose .carousel-nav.prev{left:10px}.prose .carousel-nav.next{right:10px}.prose .carousel-nav svg{width:18px;height:18px}.prose .carousel-nav:hover:not(:disabled){border-color:var(--amber)}.prose .carousel-nav:disabled{opacity:.3;cursor:default}.prose .carousel-count{color:#f4efe7;font-family:var(--mono);background:#0e0c0ab3;border-radius:999px;padding:3px 9px;font-size:11px;position:absolute;top:10px;right:10px}.prose .carousel-dots{justify-content:center;gap:6px;margin-top:10px;display:flex}.prose .carousel-dots button{background:var(--disabled);cursor:pointer;border:0;border-radius:50%;width:8px;height:8px;padding:0}.prose .carousel-dots button.on{background:var(--amber)}.lightbox{z-index:1000;color:#f4efe7;font-family:var(--mono);background:#080706f2;outline:none;place-items:center;display:grid;position:fixed;inset:0}.lb-fig{flex-direction:column;align-items:center;gap:12px;max-width:92vw;margin:0;display:flex}.lb-fig img{object-fit:contain;border-radius:4px;max-width:92vw;max-height:82vh}.lb-fig figcaption{color:#f4efe7bf;text-align:center;max-width:70ch;font-size:12px}.lb-close,.lb-nav{color:inherit;cursor:pointer;background:0 0;border:0;place-items:center;font-size:34px;line-height:1;display:grid;position:fixed}.lb-close{width:44px;height:44px;top:12px;right:18px}.lb-nav{width:54px;height:60px;top:calc(50% - 30px)}.lb-prev{left:8px}.lb-next{right:8px}.lb-nav[hidden]{display:none}.lb-close:hover,.lb-nav:hover,.lb-close:focus-visible,.lb-nav:focus-visible{color:var(--amber);outline:none}.lb-count{color:#f4efe7b3;font-size:11px;position:fixed;top:20px;left:18px}.prose figure.file{margin:1.4em 0;position:relative}.prose .file-open{border:1px solid var(--hair);background:var(--bg1);color:inherit;font-family:var(--mono);border-radius:6px;align-items:center;gap:14px;padding:13px 16px;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.prose figure.file[data-dl] .file-open{padding-right:64px}.prose a.file-open:hover,.prose a.file-open:focus-visible{border-color:var(--amber);text-decoration:none}.prose a.file-open:focus-visible{outline:2px solid var(--amber);outline-offset:3px}.prose .file-badge{letter-spacing:.08em;border:1px solid var(--border);color:var(--text3);border-radius:4px;flex:none;padding:3px 7px;font-size:10px}.prose .file-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.prose .file-name{text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:13px;font-weight:500;overflow:hidden}.prose .file-sub{color:var(--text3);font-size:11px}.prose .file-cta{color:var(--text3);flex:none;margin-left:auto;font-size:11.5px;transition:color .15s}.prose a.file-open:hover .file-cta,.prose a.file-open:focus-visible .file-cta{color:var(--amber)}.prose a.file-dl{border:1px solid var(--hair);background:var(--bg1);width:38px;height:38px;color:var(--text2);border-radius:6px;place-items:center;font-size:16px;text-decoration:none;display:grid;position:absolute;top:13px;right:10px}.prose a.file-dl:hover,.prose a.file-dl:focus-visible{border-color:var(--amber);color:var(--amber);text-decoration:none}.prose a.file-dl:focus-visible{outline:2px solid var(--amber);outline-offset:3px}:root{--fv-w:min(680px, 58vw)}body{transition:padding-right .28s}html.fv-open body{padding-right:var(--fv-w)}.fileview{width:var(--fv-w);background:var(--bg0);border-left:1px solid var(--hair);z-index:900;flex-direction:column;transition:transform .28s;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(102%)}.fileview.on{transform:none}.fv-head{border-bottom:1px solid var(--hair);font-family:var(--mono);background:color-mix(in srgb, var(--bg0) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex:none;align-items:center;gap:10px;padding:10px 14px;font-size:12px;display:flex}.fv-badge{letter-spacing:.08em;border:1px solid var(--border);color:var(--text3);border-radius:4px;flex:none;padding:2px 7px;font-size:10px}.fv-meta{flex-direction:column;gap:1px;min-width:0;display:flex}.fv-name{text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:500;overflow:hidden}.fv-sub{color:var(--text3);font-size:10.5px}.fv-act{border:1px solid var(--border);color:var(--text2);white-space:nowrap;border-radius:6px;flex:none;padding:5px 10px;font-size:11.5px;text-decoration:none}.fv-act:hover,.fv-act:focus-visible{border-color:var(--amber);color:var(--amber);text-decoration:none}.fv-close{border:1px solid var(--border);width:30px;height:30px;color:var(--text2);background:0 0;border-radius:6px;flex:none;padding:0;font-size:16px;line-height:1}.fv-close:hover,.fv-close:focus-visible{border-color:var(--amber);color:var(--amber)}.fv-body{flex-direction:column;flex:1;min-height:0;display:flex}.fv-frame{background:#fff;border:0;flex:1;width:100%}.fv-text{flex-direction:column;flex:1;display:flex;overflow:auto}.fv-text pre{font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--prose);margin:0;padding:16px 18px;font-size:12.5px;line-height:1.55}.fv-cut{border-top:1px solid var(--hair);font-family:var(--mono);color:var(--text3);padding:10px 18px;font-size:11px}.fv-none{font-family:var(--mono);color:var(--text3);text-align:center;flex:1;place-items:center;padding:24px;font-size:12.5px;display:grid}@media (width<=719px){:root{--fv-w:100vw}html.fv-open body{padding-right:0}.fileview{border-left:0}}@media (prefers-reduced-motion:reduce){body,.fileview{transition:none}}@media print{.prose .video-play{display:none}.prose a.video-frame{aspect-ratio:auto;color:inherit;background:0 0;flex-direction:row;justify-content:flex-start;padding:10px 12px}.prose .video-poster,.prose .video-frame:before,.prose a.video-frame[data-note]:after,.prose .model-bar,.prose .carousel-nav,.prose .carousel-count,.prose .carousel-dots,.fileview,.lightbox{display:none!important}.prose .audio-play,.prose figure.audio audio{display:none}.prose .carousel-track{display:block;overflow:visible}.prose figure.slide{break-inside:avoid}}.prose{font-family:var(--serif);font-size:var(--prose-size);line-height:var(--prose-leading);color:var(--prose);text-wrap:pretty}.prose>*+*{margin-top:1em}.prose p{margin-bottom:0}.prose>:first-child{margin-top:0}.prose h2,.prose h3,.prose h4{font-family:var(--mono);letter-spacing:-.01em;color:var(--text);text-wrap:pretty;margin:1.8em 0 .6em;font-weight:500;line-height:1.25;position:relative}.prose h2{font-size:20px}.prose h3{font-size:17px}.prose h4{color:var(--text2);font-size:15px}.prose h2 .anchor,.prose h3 .anchor,.prose h4 .anchor{color:var(--disabled);margin-left:8px;font-weight:400;text-decoration:none}.prose h2:hover .anchor,.prose h3:hover .anchor,.prose h4:hover .anchor,.prose .anchor:focus-visible,.prose a{color:var(--amber)}.prose strong{color:var(--text);font-weight:600}.prose em{font-style:italic}.prose code{font-family:var(--code);background:var(--bg2);border-radius:4px;padding:1px 6px;font-size:.86em}.prose .code{border:1px solid var(--hair);background:var(--bg1);font-family:var(--mono);border-radius:6px;margin:1.2em 0}.prose .code-head{border-bottom:1px solid var(--hair);color:var(--text3);justify-content:space-between;align-items:center;padding:6px 12px;font-size:10.5px;display:flex}.prose .code-copy{color:var(--text3);font-size:10.5px;font-family:var(--mono);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:2px 6px}.prose .code-copy:hover{color:var(--text);background:var(--bg3)}.prose .code-copy.done{color:var(--green)}.prose .code pre{font-family:var(--code);tab-size:4;color:var(--prose);margin:0;padding:12px 14px;font-size:13.5px;line-height:1.6;overflow-x:auto;background:0 0!important}.prose .code pre code{font-size:inherit;background:0 0;border-radius:0;padding:0}.prose blockquote{color:var(--text2);border-left:1px solid #ece7df40;margin:0;padding:2px 0 2px 16px;font-style:italic}.prose blockquote>:first-child,.prose li>:first-child{margin-top:0}.prose blockquote>:last-child,.prose li>:last-child{margin-bottom:0}.prose blockquote p+p,.prose li p+p{margin-top:1em}.prose ul,.prose ol{flex-direction:column;gap:6px;margin:0;padding-left:22px;display:flex}.prose li>p{margin:0}.prose hr{border:0;border-top:1px solid var(--hair);margin:2em 0}.prose figure{flex-direction:column;gap:8px;margin:1.4em 0;display:flex}.prose figure img{border-radius:6px;width:100%;height:auto}.prose figcaption{font-family:var(--mono);color:var(--text3);font-size:11.5px}.prose img{border-radius:6px;max-width:100%;height:auto}.prose .table-wrap{margin:1.2em 0;overflow-x:auto}.prose table{border-collapse:collapse;font-family:var(--mono);min-width:100%;font-size:13px}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--hair);vertical-align:top;padding:8px 12px}.prose th{color:var(--text2);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:500}.prose details{border:1px solid var(--hair);border-radius:6px;padding:10px 14px}.prose summary{font-family:var(--mono);cursor:pointer;color:var(--text2);font-size:13px}.prose sup{font-family:var(--mono);font-size:.7em;line-height:0}.prose sup a{color:var(--amber);padding:0 2px;text-decoration:none}.prose .footnotes{border-top:1px solid var(--hair);color:var(--text2);margin-top:3em;padding-top:1.2em;font-size:.88em}.prose .footnotes h2{letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin:0 0 .8em;font-size:11px}.prose .footnotes ol{gap:4px}.prose .footnotes ol li{padding-left:4px}.prose .data-footnote-backref{font-family:var(--mono);margin-left:4px;text-decoration:none}.prose .katex-display{margin:0;padding:4px 0;overflow:auto hidden}.prose *+.katex-display,.prose>*+blockquote,.prose>*+ul,.prose>*+ol{margin-top:1em}.prose .katex{font-size:1.05em}.prose kbd{font-family:var(--mono);border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;padding:0 5px;font-size:.8em}.prose mark{color:inherit;background:#f7ac4d59}.prose-mono{font-family:var(--mono);font-size:13.5px;line-height:1.7}
