:root{--line-height:24px;--line-height-half:calc(var(--line-height)/2);--line-height-quarter:calc(var(--line-height)/4);--line-height-eighth:calc(var(--line-height)/8);--column-width:calc(var(--line-height)*2);--columns-max:24;backface-visibility:hidden;interpolate-size:allow-keywords;--page-max:1180px;--page-gutter:40px;--page-gutter-sm:22px}:root,body,html{font-size:var(--line-height);line-height:var(--line-height)}:root{--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-stacked:0 0 0 1px #0000000f, 0 1px 1px -.5px #0000000f, 0 3px 3px -1.5px #0000000f, 0 6px 6px -3px #0000000f, 0 12px 12px -6px #0000000f, 0 24px 24px -12px #0000000f;--shadow-soft:0 1px 1px -.5px #0000000f, 0 0 0 1px #0000000f;--font-family-sans-serif:"Inter", system-ui, -apple-system, "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", sans-serif;--font-family-serif:"Roboto Serif", "Crimson Pro", "Georgia", serif;--font-family-monospace:"Fira Code", "JetBrains Mono", "Courier New", monospace;--padding-top:0px;--padding-bottom:0px;--font-size:.66667rem;--font-weight:400}body{line-height:var(--line-height);font-size:var(--font-size);font-family:var(--font-family-sans-serif);font-weight:var(--font-weight);--xxs-line-height:.75rem;--xxs-font-size:.5rem;--xs-line-height:1rem;--xs-font-size:.58333rem;--s-line-height:1rem;--s-font-size:.66667rem;--m-line-height:1.25rem;--m-font-size:.75rem;--l-line-height:1.25rem;--l-font-size:.83333rem;--xl-line-height:2rem;--xl-font-size:1.4rem;--xxl-line-height:3rem;--xxl-font-size:2.75rem;--xxxl-line-height:3.5rem;--xxxl-font-size:3.33333rem;font-variant-numeric:oldstyle-nums;letter-spacing:-.02em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"calt","liga","hist","onum","pnum";text-rendering:optimizelegibility;overflow-wrap:break-word;hanging-punctuation:first allow-end}@media screen and (width<=768px){body{-webkit-text-size-adjust:100%;--xl-line-height:1.5rem;--xl-font-size:1.33rem;--l-line-height:1.25rem;--l-font-size:1rem;--xxl-line-height:2rem;--xxl-font-size:1.666rem;--xxxl-line-height:2.25rem;--xxxl-font-size:2.1rem}}.serif{font-family:var(--font-family-serif)}.sans-serif,button{font-family:var(--font-family-sans-serif)}.code,.mono,.monospace,.timecode,code,pre{font-family:var(--font-family-monospace);hyphens:none}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}h1,h2,h3,h4,h5,h6,p{margin:0;padding:0;scroll-margin-top:5rem}.hero-text{line-height:var(--xxl-line-height);font-size:var(--xxl-font-size);letter-spacing:-.04em;font-weight:500;@media (width>=432px){line-height:var(--xxxl-line-height);font-size:var(--xxxl-font-size)}}.hed,h1{line-height:var(--xl-line-height);font-size:var(--xl-font-size)}.dek,.hed,h1,h2{letter-spacing:-.02em;font-weight:600}.dek,h2{line-height:var(--l-line-height);font-size:var(--l-font-size)}h3{line-height:var(--m-line-height);font-size:var(--m-font-size)}h4,h5,h6{line-height:var(--s-line-height);font-size:var(--s-font-size)}.grafs,.lede{line-height:var(--s-line-height);font-size:var(--s-font-size);letter-spacing:-.015em;& h2,& h3{font-weight:600}& h4,& h5,& h6{font-weight:700}}.caption,.meta,figcaption{line-height:var(--xs-line-height);font-size:var(--xs-font-size)}.numeric{font-feature-settings:"tnum";letter-spacing:.02em}.pad-ragged-abs{padding:0 .125rem 0 .25rem}blockquote{border-left:2px solid var(--color-link-text);background-color:var(--color-code-background);font-family:var(--font-family-serif);margin:.5rem 0;padding:1rem;& p:first-child{text-indent:0!important}}.pad-ragged-abs>blockquote{margin-left:-.5rem;margin-right:-.5rem}.grafs li{margin-bottom:.5rem}code,pre{background-color:var(--color-code-background);color:var(--color-text)}code{margin:-.25em -.125em;padding:.25em .125em;transition:background-color .2s}pre{border-radius:.25rem;padding:1rem;overflow:auto;& code{margin:0;padding:0}}.pad-ragged-abs>pre{margin-left:-.5rem;margin-right:-.5rem}a:hover code{background-color:#0000;transition:none}a{margin:-.25em;padding:.25em;text-decoration:none;transition:background-color .2s,color .2s}a:hover{color:inherit;transition:none}math{& mtd{text-align:center}& mi{letter-spacing:-.025em;font-weight:500}& mtext *{display:inline!important}& code{background-color:#0000!important}}figure>math{margin:.5rem 0}@media (hover:hover){mtd{background-color:#0000;transition:background-color 1s;&:hover{background-color:var(--color-link-background-hover);transition:background-color .1s}}}table{border-collapse:collapse;border-spacing:0;margin:1rem 0;& td,& th{text-align:left;padding:.5rem}& th{background-color:var(--color-code-background)}}.pad-ragged-abs>table{margin-left:-.5rem;margin-right:-.5rem}.tabular{font-variant-numeric:tabular-nums}:root{color-scheme:light dark}.theme-dark,html{color-scheme:dark;--color-root-background:#000;--color-page-background:#000;--color-content-background:#1a1a1a;--color-footer-background:#1a1a1a;--color-figure-background:gray;--color-figure-frame:#2b2b2b;--color-code-background:#0f263d;--color-text:#d9d9d9;--color-text-emphasis:#e6e6e6;--color-text-separator:gray;--color-fill:#d9d9d9;--color-fill-emphasis:#e6e6e6;--color-rule:#404040;--color-link-background:transparent;--color-link-background-hover:#fff;--color-link-text:#fff;--color-link-text-hover:#000;--color-link-text-selected:#fff;--color-link-text-active:var(--color-link-text-selected);--color-link-decoration:#404040;--color-link-decoration-hover:var(--color-link-decoration);--color-link-fill:#ccc;--color-link-fill-hover:#e6e6e6;--color-link-fill-selected:#d9d9d9;--color-link-fill-active:var(--color-fill-selected);--color-tag-background:#ffffff1a;--color-tag-background-hover:#ffffff2e;--color-tag-text:#d1d1d1;--color-tag-text-hover:#f5f5f5;--color-surface:#ffffff08;--color-surface-hover:#ffffff0f;& .midground{--color-text:#ffffff59;--color-text-emphasis:#fff6;--color-text-separator:#fff3;--color-link-text:var(--color-text-hover);--color-link-text-hover:#ffffffb3;--color-link-text-selected:#fff;--color-link-text-active:var(--color-text-selected);--color-link-fill:#ffffff4d;--color-link-fill-hover:#ffffffb3}}.theme-light{color-scheme:light;--color-root-background:#fff;--color-page-background:#fafafa;--color-content-background:#fff;--color-footer-background:#1f1f1f;--color-figure-background:gray;--color-figure-frame:#e6e6e6;--color-code-background:#f3f5f7;--color-text:#121212;--color-text-emphasis:#000;--color-text-separator:gray;--color-fill:#1a1a1a;--color-fill-emphasis:#000;--color-rule:#e6e6e6;--color-link-background:transparent;--color-link-background-hover:#1466b8;--color-link-text:#2966a3;--color-link-text-hover:#fff;--color-link-text-selected:#2966a3;--color-link-text-active:#000;--color-link-decoration:#0f66bd;--color-link-decoration-hover:var(--color-link-decoration);--color-link-fill:#08192b;--color-link-fill-hover:#08192b;--color-link-fill-selected:#08192b;--color-link-fill-active:#08192b;--color-tag-background:#fff;--color-tag-background-hover:#f7f7f7;--color-tag-text:#707070;--color-tag-text-hover:#454545;--color-surface:#00000008;--color-surface-hover:#0000000f;& .midground{--color-text:#737f8c;--color-text-emphasis:#0000005e;--color-text-separator:#0003;--color-link-text:var(--color-text);--color-link-text-hover:#000000b3;--color-link-text-selected:#000;--color-link-text-active:var(--color-text-selected);--color-link-fill:#0000004d;--color-link-fill-hover:#000000b3}}body{background-color:var(--color-footer-background);color:var(--color-text);transition-property:background-color,color;transition-duration:1s}.nav-global3-buffer,main{background-color:var(--color-page-background)}svg{fill:var(--color-fill)}.hed,h1,h2,h3,h4,h5,h6{color:var(--color-text-emphasis)}.midground{color:var(--color-text)}*{-webkit-tap-highlight-color:transparent}.hyperlink-internal,a{background-color:var(--color-link-background);color:var(--color-link-text);-webkit-text-decoration-color:var(--color-link-decoration);text-decoration-color:var(--color-link-decoration);cursor:pointer;& svg{fill:var(--color-link-fill)}&.active,&:active{color:var(--color-link-text-active);& svg{fill:var(--color-link-fill-active)}}&.selected{color:var(--color-link-text-selected);& svg{fill:var(--color-link-fill-selected)}}&.active,&.router-link-active,&.router-link-exact-active{color:var(--color-link-text-active)}@media (hover:hover){&:hover{background-color:var(--color-link-background-hover);color:var(--color-link-text-hover);& svg{fill:var(--color-link-fill-hover)}}}}@media (hover:hover){a:has(button):hover{color:inherit;background-color:#0000}}:root{--color-nav-accent:#ff6a00;--color-nav-accent-muted:color-mix(in srgb, var(--color-nav-accent) 50%, transparent)}.page{background-color:var(--color-accent);color:var(--color-bg-primary);min-height:100vh;padding-top:120px;& .hero-section{border-bottom:1px solid #0000001a;padding:60px 0 100px;& .hero-text{margin-bottom:1rem}& .hero-description{max-width:700px;color:var(--color-text-secondary);font-size:24px;line-height:1.4}}& .category-section{padding:80px 0}}.category-section{border-bottom:1px solid #0000001a;padding:80px 0}.category-section:last-child{border-bottom:none}.section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:48px;display:flex}.section-header h2{letter-spacing:-.02em;margin-bottom:16px;font-size:40px;font-weight:500}.section-subtitle{color:var(--color-text-secondary);max-width:600px;font-size:18px}.contributors-index,.contributors-slug{padding-bottom:6rem;padding-left:6rem}@media (prefers-color-scheme:dark){.category-section,.hero-section{border-bottom-color:#ffffff1a}}:root{--color-text-primary:#fdfdfd;--color-text-secondary:#949494;--color-bg-primary:#111;--color-bg-secondary:#1a1a1a;--color-accent:#fdfdfd;--font-sans:"Inter", sans-serif}*,:after,:before{box-sizing:border-box}body,html{width:100%}body{font-family:var(--font-sans);color:var(--color-text-primary);background-color:var(--color-bg-primary);-webkit-font-smoothing:antialiased;margin:0;padding:0}.container{max-width:var(--page-max);width:100%;padding:0 var(--page-gutter);box-sizing:border-box;margin:0 auto}.flex{display:flex}.grid{display:grid}.text-secondary{color:var(--color-text-secondary)}@media (width<=720px){.container{padding:0 var(--page-gutter-sm)}}.page-wrapper{background-color:var(--color-background);min-height:100vh;color:var(--color-text-emphasis)}.dark-container{background:var(--color-bg-primary);z-index:0;width:100%;position:relative}.dark-container:before{content:"";z-index:-1;pointer-events:none;background-image:url(../media/footer-bg.webp);background-position:bottom;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;bottom:0;left:0}.ui-callout{color:#ffffffe6;background:#ffffff0d;border:1px solid #fff3;border-radius:4px;margin-bottom:24px;padding:6px 12px;font-size:13px;font-weight:500;display:inline-block}iframe.js-runtime{position-area:center;border:0;place-self:stretch stretch;display:none;position:absolute}iframe.js-runtime.fullscreen{z-index:1000;border-radius:0;height:100vh;position:fixed;inset:0}nav.global{z-index:900;position:fixed;top:0;left:0;right:0}nav.global .nav-inner{background-color:#262626;justify-content:space-between;align-items:center;gap:32px;width:100%;height:48px;padding:0 24px;display:flex}nav.global .nav-group{align-items:center;gap:24px;min-width:0;height:100%;display:flex}nav.global .nav-group--left{flex:auto}nav.global .nav-subgroup{gap:16px}nav.global .nav-brand,nav.global .nav-subgroup{flex-shrink:0;align-items:center;height:100%;display:flex}nav.global .nav-brand{color:#fafafa;gap:8px;text-decoration:none}nav.global .nav-brand:hover{background-color:#0000}nav.global .nav-logo{background:#191919;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}nav.global .nav-logo-mark{width:14px;height:14px}nav.global .nav-brand-name{color:#fafafa;white-space:nowrap;border-bottom:2px solid #0000;align-items:center;height:100%;font-size:14px;font-weight:500;transition:border-color .15s;display:flex}nav.global .nav-brand:hover .nav-brand-name{border-bottom-color:var(--color-nav-accent-muted)}nav.global .nav-brand--active .nav-brand-name,nav.global .nav-brand--active:hover .nav-brand-name{border-bottom-color:var(--color-nav-accent)}nav.global .nav-link{color:#fafafa;white-space:nowrap;border-bottom:2px solid #0000;align-items:center;height:100%;font-size:14px;font-weight:500;line-height:1.2;text-decoration:none;transition:color .15s,border-color .15s;display:flex}nav.global .nav-link:hover{color:#fff;border-bottom-color:var(--color-nav-accent-muted);background-color:#0000}nav.global .nav-link--active,nav.global .nav-link--active:hover{border-bottom-color:var(--color-nav-accent)}nav.global .nav-cta{background:var(--color-nav-accent);color:#191919;white-space:nowrap;border-radius:8px;align-items:center;height:32px;padding:0 12px;font-size:14px;font-weight:600;line-height:1.2;text-decoration:none;transition:background .15s;display:flex}nav.global .nav-cta:hover{background:color-mix(in srgb,var(--color-nav-accent) 88%,#000);color:#191919}nav.global .nav-signin{color:#fafafa;white-space:nowrap;cursor:pointer;background:#191919;border-radius:8px;align-items:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,box-shadow .15s;display:flex;box-shadow:0 1px 1px #fafafa0f,0 0 0 1px #fafafa14}nav.global .nav-signin:hover{box-shadow:0 1px 1px 0 #fafafa0f,0 0 0 1px var(--color-nav-accent-muted);background:#2a2a2a}nav.global .nav-search{flex:480px;align-items:center;min-width:180px;max-width:800px;display:flex;position:relative}nav.global .nav-search-box{color:#919191;background:#191919;border-radius:8px;align-items:center;gap:8px;width:100%;height:32px;padding:0 8px 0 6px;transition:box-shadow .15s;display:flex;box-shadow:0 1px 1px #fafafa0f,0 0 0 1px #fafafa14}nav.global .nav-search-box:focus-within{box-shadow:0 1px 1px 0 #fafafa0f,0 0 0 1px var(--color-nav-accent-muted)}nav.global .nav-search-input{color:#fafafa;background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:14px;line-height:1.6}nav.global .nav-search-input::placeholder{color:#919191}nav.global .nav-search-clear{color:#919191;cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:flex}nav.global .nav-search-clear:hover{color:#fafafa}nav.global .nav-search-dropdown{backdrop-filter:blur(2px);scrollbar-width:thin;scrollbar-color:#373737 transparent;background:#262626;border-radius:8px;width:100%;min-width:400px;max-height:min(581px,100vh - 72px);position:absolute;top:calc(100% + 9px);left:0;overflow-y:auto;box-shadow:0 4px 10px #00000029,inset 0 -.5px .5px #ffffff26}nav.global .nav-search-head{color:#fafafa;justify-content:space-between;align-items:center;gap:8px;padding:12px;font-size:14px;line-height:1.2;text-decoration:none;display:flex}nav.global .nav-search-head:hover{background:#fafafa0a}nav.global .nav-search-head-query{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}nav.global .nav-search-head-action{flex:none}nav.global .nav-search-section{color:#9e9e9e;background:#2b2b2b;border-top:1px solid #373737;border-bottom:1px solid #373737;padding:2px 12px 3px;font-size:12px;line-height:1.6;position:sticky;top:0}nav.global .nav-search-dropdown>.nav-search-section:first-child{border-top:none}nav.global .nav-search-rows{flex-direction:column;gap:8px;padding:12px;display:flex}nav.global .nav-search-row{color:#fafafa99;white-space:nowrap;border-radius:8px;align-items:center;gap:4px;height:28px;padding:0 8px;scroll-margin-top:26px;font-size:14px;line-height:1.2;text-decoration:none;display:flex;overflow:hidden}nav.global .nav-search-row--active,nav.global .nav-search-row:hover{color:#fafafa99;background:#191919}nav.global .nav-search-chips{flex-wrap:wrap;gap:6px;padding:4px 8px 8px;display:flex}nav.global .nav-search-chip{color:#fafafa99;border:1px solid #373737;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;line-height:1.4;text-decoration:none;display:inline-flex}nav.global .nav-search-chip--active,nav.global .nav-search-chip:hover{border-color:var(--color-nav-accent);background-color:#0000}nav.global .nav-search-chip .nav-search-count{opacity:.6;font-size:12px}nav.global .nav-search-hl em{color:#fafafa;font-style:normal}nav.global .nav-search-count,nav.global .nav-search-muted,nav.global .nav-search-sep{color:#919191;font-size:12px;line-height:1.6}nav.global .nav-search-empty{color:#919191;padding:12px;font-size:14px}nav.global .nav-hamburger{cursor:pointer;background:#191919;border:none;border-radius:8px;flex-direction:column;flex-shrink:0;justify-content:center;gap:4px;width:32px;height:32px;padding:0 7px;display:none;box-shadow:0 0 0 1px #fafafa14}nav.global .nav-hamburger span{background:#fafafa;border-radius:2px;width:100%;height:2px;display:block}@media (width<=859px){nav.global .nav-cta,nav.global .nav-link,nav.global .nav-signin{display:none}nav.global .nav-inner{gap:4px;padding:0 16px}nav.global .nav-brand-name{display:none}nav.global .nav-group{gap:4px}nav.global .nav-group--right{flex-shrink:0}nav.global .nav-hamburger{display:flex}nav.global .nav-search{flex:auto;min-width:0}nav.global .nav-search-box{gap:6px;padding:0 6px}nav.global .nav-search-input{font-size:16px}nav.global .nav-search-dropdown{width:auto;min-width:0;max-height:calc(100vh - 56px);position:fixed;top:56px;left:0;right:0}}.button,button{-webkit-backdrop-filter:blur(.5rem);color:#fff;white-space:nowrap;line-height:var(--m-line-height);font-size:var(--m-font-size);letter-spacing:-.025em;cursor:pointer;background:#000000e6;border:none;border-radius:.5rem;padding:.5rem 1rem;font-weight:500;transition:all .25s;display:inline-block;&:hover{color:#fff;background-color:#262626e6;transition:all .1s;transform:scale(1.02)}& .icon{width:.5rem;height:.5rem;margin-left:.125rem}&.light-on-light{background-color:#ffffff1a;&:hover{background:#fff3}}&.dark-on-light{color:#000;background-color:#fffc;& .icon{filter:invert()}&:hover{background:#ffffffe6}}}.cta-container{text-align:center;width:100%;padding:1.5rem 0;display:block}.text-btn{cursor:pointer;color:var(--color-text);opacity:.7;line-height:var(--s-line-height);font-size:var(--s-font-size);background:0 0;border:none;border-radius:.5rem;align-items:center;gap:8px;padding:.5rem 1rem;transition:all .2s;display:flex;&:hover{color:var(--color-text-emphasis);opacity:1;background:#0000000d;transform:scale(1.02)}& .icon{justify-content:center;align-items:center;width:16px;height:16px;font-size:14px;line-height:1;display:flex}}.read-more-btn{width:100%;color:var(--color-text-emphasis);cursor:pointer;font-weight:400;line-height:var(--s-line-height);font-size:var(--s-font-size);background:0 0;border:1px solid #1113;border-radius:.5rem;justify-content:center;align-items:center;gap:10px;padding:4px 12px;transition:all .2s;display:flex;&:hover{color:var(--color-text-emphasis);background:#1111110d;transform:scale(1.02)}& .icon{width:12px;height:10px}}.tags{flex-wrap:wrap;gap:16px;margin-top:.25rem;display:flex}.tags-index .breadcrumbs,.topics-index .breadcrumbs,.topics-slug .breadcrumbs{color:#888;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;font-family:JetBrains Mono,monospace;font-size:13px;display:flex}.tags-index .crumb-link,.topics-index .crumb-link,.topics-slug .crumb-link{color:inherit;background-color:#0000;text-decoration:none;transition:color .15s;&:hover{color:#111;background-color:#0000}}.tags-index .crumb-sep,.topics-index .crumb-sep,.topics-slug .crumb-sep{color:#ccc;font-size:13px}.tags-index .crumb-current,.topics-index .crumb-current,.topics-slug .crumb-current{color:#555}.tags-cloud{flex-wrap:wrap;justify-content:flex-start;align-items:flex-start;gap:16px;margin-top:40px;margin-bottom:56px;display:flex}.tag{background-color:var(--color-tag-background);color:var(--color-tag-text);border-radius:4px;align-items:center;gap:2px;height:28px;padding:0 8px;font-size:15px;font-weight:400;line-height:1.6;text-decoration:none;transition:background-color .15s,box-shadow .15s,color .15s;display:inline-flex;box-shadow:0 1px 1px #0000000f,0 0 0 1px #00000014;& .tag-count{opacity:.6;margin-left:3px;font-size:.8em;font-weight:400}}.tag-hash{opacity:.4}.tag-link{cursor:pointer;@media (hover:hover){&:hover{background-color:var(--color-tag-background-hover);color:var(--color-tag-text-hover);text-decoration:none}}}.tags-pagination{align-items:center;gap:12px;margin-top:48px;margin-bottom:80px;display:flex}.tags-pagination-btn{color:#1a1a1a;cursor:pointer;background-color:#fff;border:1px solid #0000001f;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;transition:background-color .15s,box-shadow .15s,opacity .15s;display:inline-flex;&:hover:not(:disabled){background-color:#f5f5f5;box-shadow:0 1px 2px #00000014,0 0 0 1px #0000001f}&:disabled{opacity:.35;cursor:not-allowed}}.tags-pagination-label{color:var(--color-text-secondary);text-align:center;min-width:48px;font-size:13px}.topics-filter-bar{flex-wrap:wrap;align-items:center;gap:6px;margin-top:40px;margin-bottom:8px;display:flex}.topics-filter-btn{color:#666;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex;&:hover{color:#111;background-color:#0000000d}&.active{color:#111;background-color:#0000000f;border-color:#0000001f}}.topics-filter-count{color:inherit;text-align:center;background:#0000000f;border-radius:10px;min-width:18px;padding:1px 5px;font-size:11px;font-weight:600}.tag-source-dot{opacity:.7;border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-left:4px}.tag-source-dot--articles{background-color:#6366f1}.tag-source-dot--projects{background-color:#f59e0b}.tag-source-dot--both{background-color:#10b981}.topics-empty{color:var(--color-text-secondary);padding:48px 0;font-size:15px}.cards{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:40px;display:grid}.card{& .card-link{color:inherit;border-radius:12px;margin:-16px;padding:16px;text-decoration:none;transition:all .2s;display:block;&:hover{background:var(--color-surface-hover);box-shadow:0 0 0 1px #00000014,0 2px 4px -1px #00000014,0 8px 16px -4px #00000014}}& .card-image{border-radius:.5rem;margin-bottom:.675rem;overflow:hidden;& img{aspect-ratio:16/10;-o-object-fit:cover;object-fit:cover;width:100%;display:block}}& .card-content{padding:0 .375rem .5rem;& .hed,& h3{margin:0 0 .375rem;padding:0;font-size:.875rem;font-weight:600;line-height:1rem}& .dek,& .description{letter-spacing:-.02em;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin-top:0;font-size:.6rem;font-weight:400;line-height:1.4;display:-webkit-box;overflow:hidden}& .dek,& .description,& .meta{color:var(--color-text-secondary)}& .meta{margin-top:.25rem;font-size:.5rem;line-height:.875rem}& .tags-row{flex-wrap:wrap;gap:4px;margin-top:6px;margin-bottom:6px;display:flex}& .tags-row .tag{margin:0;padding:2px 6px;font-size:11px}}}.article-main{max-width:26rem;& .hero img{width:100%;max-width:26rem;height:auto}& .hed{margin-top:2rem}& .dek{margin-top:1rem}& .meta{margin-top:1.25rem}& .meta+.lede{margin-top:1.5rem}& h2,& h3,& h4,& h5,& h6{margin-top:1rem;margin-bottom:.25rem}& h2{margin-top:1.25rem}& h3{margin-top:.75rem}& .indent-first [chunk-index="0"] p:first-child{text-indent:1rem}& .indent-first [chunk-index="0"] li p:first-child{text-indent:0}& figure.image{max-width:80%;margin-left:auto;margin-right:auto}& figure{text-align:center;width:100%;margin:.5rem 0 1rem;& iframe,& img,& video{border-radius:.25rem;width:100%;max-width:100%;height:auto;display:block}& iframe{aspect-ratio:16/10;background-color:#000}& figcaption{font-family:var(--font-family-serif);color:var(--color-text);opacity:.7;text-align:center;margin-top:.375rem;font-style:italic}}& .media-embed{& .embed-container{background:var(--color-surface);border-radius:4px;max-width:100%;height:0;padding-bottom:56.25%;position:relative;overflow:hidden;& embed,& iframe,& object{width:100%;height:100%;position:absolute;top:0;left:0}}}& .grafs p:has(>img:only-child){text-align:center}& .grafs p>img:only-child{border-radius:.25rem;max-width:80%;height:auto;margin:.5rem auto 1rem;display:block}}.article-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:1.5rem;width:100%;max-width:1440px;margin:0 auto;padding:1.75rem 1rem;display:grid}@media (width>=1024px){.article-layout{grid-template-columns:320px minmax(0,1fr);gap:2rem;padding:3.75rem 2rem}}@media (width<=768px){.article-main,.article-main .hero img,article{max-width:100%}}.code-block-wrapper{margin:1rem 0;position:relative}.code-block-wrapper pre{margin:0}.code-copy-btn{width:32px;height:32px;color:var(--color-text);opacity:.7;cursor:pointer;opacity:0;z-index:1;background:#ffffffe6;border:1px solid #0000001a;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:opacity .2s,background-color .2s,color .2s;display:flex;position:absolute;top:.5rem;right:.5rem}.code-copy-btn svg{width:16px;height:16px;fill:none!important}.code-block-wrapper:hover .code-copy-btn{opacity:1}.code-copy-btn:hover{background:var(--color-background);color:var(--color-text-emphasis);border-color:#0003}.code-copy-btn.copied{color:#fff;background:#22c55e;border-color:#22c55e}.article-sidebar{align-self:start;min-height:100%;display:none;@media (width>=1024px){display:block}}.sticky-container{position:sticky;top:0}.back-link{& a{font-size:var(--xs-font-size);margin-bottom:1.5rem;text-decoration:none;transition:color .2s;display:inline-block;&:hover{color:var(--color-text-emphasis)}}}.toc{padding:3.5rem 0 4rem;& .toc-title{font-family:var(--font-family-sans-serif);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text);opacity:.5;margin-bottom:16px;font-size:12px}& ul{margin:0;padding:0;list-style:none;& li a{font-size:var(--s-font-size);line-height:var(--s-line-height);margin:0;padding:.25rem .25rem .25rem .5rem;font-weight:500;text-decoration:none;display:block;&.active,&:hover{transition:none}&[level=h2]{padding-left:.5rem}&[level=h3]{padding-left:1.25rem}&[level=h4],&[level=h5],&[level=h6]{padding-left:2rem}}}}.home-index{background-color:var(--color-bg-primary);color:var(--color-text-primary);--accent:var(--color-nav-accent);--accent-2:#ff9a3d;overflow-x:clip;& a:hover{background-color:#0000}& .cta-container{padding:3rem 0 4rem}& .qhome-gallery{background:#0b0b0c;padding:88px 0 72px;& .pgrid{grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:16px;display:grid}& .pgrid--loading{pointer-events:none}& .pgrid--loading .tile-wrap{opacity:.54;transition:opacity .16s,transform .16s;transform:translateY(2px)}& .pgrid--skeleton{grid-auto-rows:auto}& .gallery-skeleton-card{flex-direction:column;min-height:420px;padding:8px;display:flex;overflow:hidden}& .gallery-skeleton-line,& .gallery-skeleton-media{background:#ffffff14;position:relative;overflow:hidden}& .gallery-skeleton-line:after,& .gallery-skeleton-media:after{content:"";background:linear-gradient(90deg,#0000,#ffffff1a,#0000);animation:1.4s ease-in-out infinite qhome-skeleton-sweep;position:absolute;inset:0;transform:translate(-100%)}& .gallery-skeleton-media{aspect-ratio:16/10;border-radius:var(--radius-lg)}& .gallery-skeleton-body{flex-direction:column;flex:1;gap:12px;padding:16px 8px 8px;display:flex}& .gallery-skeleton-line{border-radius:999px;width:72%;height:12px}& .gallery-skeleton-line--title{width:58%;height:18px}& .gallery-skeleton-line--short{width:36%}& .gallery-skeleton-line--wide{width:88%}@media (prefers-reduced-motion:reduce){& .gallery-skeleton-line:after,& .gallery-skeleton-media:after{animation:none}& .pgrid--loading .tile-wrap{transition:none}}& .pgrid--state{min-height:200px;color:var(--color-text);opacity:.65;text-align:center;padding:48px 0;display:block}& .tile-wrap{min-width:0;display:flex;position:relative}& .tile{cursor:pointer;width:100%;color:var(--color-text);flex-direction:column;padding:8px;text-decoration:none;display:flex;position:relative;&:hover{color:var(--color-text)}}& .tile:hover .ui-preview-img{transform:scale(1.03)}& .tile-media{position:relative}& .tile-actions{z-index:2;opacity:0;gap:8px;transition:opacity .12s;display:flex;position:absolute;top:18px;right:18px}& .tile-actions:focus-within,& .tile-wrap:hover .tile-actions{opacity:1}& .tile-actions:not(:focus-within){pointer-events:none}& .tile-wrap:hover .tile-actions{pointer-events:auto}@media (hover:none){& .tile-actions,& .tile-actions:not(:focus-within){opacity:1;pointer-events:auto}}& .tile-badges{z-index:2;pointer-events:none;gap:6px;display:flex;position:absolute;top:8px;left:8px}& .tile-body{flex-direction:column;flex:auto;padding:14px 8px 6px;display:flex}& .tile-title{color:var(--color-text-emphasis);letter-spacing:-.02em;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:5px;font-size:17px;font-weight:600;line-height:1.22;display:-webkit-box;overflow:hidden}& .tile-authors{min-width:0;color:var(--color-text);opacity:.6;align-items:center;gap:6px;margin-bottom:10px;font-size:13px;display:flex}& .tile-author{border-bottom:1px dotted var(--color-rule);white-space:nowrap;text-overflow:ellipsis;padding-bottom:1px;overflow:hidden}& .tile-desc{color:var(--color-text);opacity:.78;letter-spacing:-.01em;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:13.5px;line-height:1.5;display:-webkit-box;overflow:hidden}& .tile-tags{flex-wrap:wrap;gap:8px 10px;margin-top:10px;display:flex}& .tile-tag{color:var(--color-link-text,#6f9dff);font-size:13px}& .gallery-empty{border:1px solid var(--color-rule);border-radius:var(--radius-xl);background:var(--color-surface);text-align:center;padding:48px 24px;& .empty-ico{border-radius:var(--radius-md);width:40px;height:40px;color:var(--accent);background:#ff6a0029;justify-content:center;align-items:center;margin:0 auto 14px;display:inline-flex}& .empty-ico svg{width:20px;height:20px}& .empty-title{color:var(--color-text-emphasis);margin-bottom:6px;font-size:16px;font-weight:600}& .empty-sub{opacity:.65;margin-bottom:18px;font-size:14px}}& .ui-pagination{border-top:0;justify-content:flex-start}}& .qhome-gallery-title{letter-spacing:-.03em;color:#fff;margin:0 0 36px;font-size:44px;line-height:1.12}& .qhome-gallery .browse-bar{margin-bottom:28px}& .qhome-gallery .browse-tabs{gap:8px;display:flex}& .qhome-gallery .browse-tab{color:#fff9;background:#1a1a1c;border-color:#0000;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:500;box-shadow:inset 0 0 0 1px #ffffff0f}& .qhome-gallery .browse-tab:hover{color:#fff;background:#1a1a1c;border-color:#0000;transform:none}& .qhome-gallery .browse-tab.active{color:#111;background:#fff}& .gallery-cta{margin-top:56px}& .gallery-cta-line{color:#ffffff8c;margin:0 0 16px;font-size:17px}& .gallery-cta-line strong{color:#fff;font-weight:600}& .gallery-cta-row{align-items:center;gap:16px;display:flex}& .gallery-browse-link{color:#fffc;align-items:center;gap:7px;margin-left:auto;font-size:15px;text-decoration:none;display:inline-flex}& .gallery-browse-link:hover{color:#fff}& .qhome-newsletter{background:#0b0b0c;padding:72px 0 40px;position:relative;overflow:hidden;&>:not(.ui-bloom){z-index:1;position:relative}}& .promo-banner-inline{width:fit-content;max-width:680px;color:inherit;background:#00000040;border:1px solid #ffffff1a;border-radius:8px;align-items:center;gap:14px;margin-bottom:4px;padding:8px 14px;text-decoration:none;transition:background .2s,border-color .2s;display:inline-flex}& .promo-banner-inline:hover{background:#00000059;border-color:#ffffff26}& .promo-badge{text-transform:uppercase;letter-spacing:.05em;color:#fff;background:linear-gradient(135deg,#ff6a00,#ee0979);border-radius:4px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.6;display:inline-flex}& .promo-text{color:#ffffffbf;margin:0;font-size:15px;line-height:1.5}& .promo-text strong{color:#fff;font-weight:500}& .promo-announcement-link{color:#ffffffa6;text-underline-offset:3px;margin-top:0;margin-bottom:20px;font-size:13px;font-weight:500;-webkit-text-decoration:underline #ffffff4d;text-decoration:underline #ffffff4d;transition:color .2s,text-decoration-color .2s;display:inline-block}& .promo-announcement-link:hover{color:#fffffff2;background-color:#0000;text-decoration-color:#fff9}@media (width<=640px){& .promo-banner-inline{flex-wrap:wrap;gap:6px}& .promo-text{font-size:14px}}@media (width<=1100px){& .qhome-gallery .pgrid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){& .qhome-gallery .pgrid{grid-template-columns:1fr}& .footer-content h2{font-size:40px}& .main-footer{flex-direction:column;gap:20px}& .footer-links{flex-wrap:wrap}}}@keyframes qhome-skeleton-sweep{to{transform:translate(100%)}}.contributor-page{background-color:var(--color-bg-primary);color:var(--color-text-primary);--accent:var(--color-nav-accent);min-height:100vh;& .cp-hero{border-bottom:1px solid var(--color-rule);background-color:#000;padding:132px 0 40px}& .cp-hero-title{letter-spacing:-.03em;max-width:16ch;color:var(--color-text-emphasis);margin:0 0 18px;font-size:clamp(36px,5vw,60px);font-weight:600;line-height:1.06}& .cp-lede{letter-spacing:-.015em;max-width:56ch;color:var(--color-text);opacity:.82;margin:0 0 30px;font-size:18px;line-height:1.5}& .cp-stats{flex-wrap:wrap;gap:44px;margin:0;display:flex}& .cp-stat-num{letter-spacing:-.03em;color:var(--color-text-emphasis);font-feature-settings:"tnum";font-size:clamp(28px,3.4vw,40px);font-weight:600;line-height:1.05}& .cp-stat-label{color:var(--color-text);opacity:.6;letter-spacing:-.01em;margin:6px 0 0;font-size:14px}& .cp-list{background-color:#000;padding:40px 0 96px}& .cp-rankcaption{letter-spacing:.01em;text-transform:uppercase;color:var(--color-text);opacity:.5;margin:0 0 22px;font-size:13px;font-weight:500}& .cp-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px;display:grid}& .cp-state{min-height:160px;color:var(--color-text);opacity:.6;align-items:center;font-size:15px}& .cp-more,& .cp-state{justify-content:center;display:flex}& .cp-more{margin-top:32px}& .contributor-card{background:var(--color-surface);border:1px solid var(--color-rule);border-radius:var(--radius-xl);box-shadow:var(--shadow-stacked);flex-direction:column;gap:16px;padding:22px;transition:transform .2s,border-color .15s;display:flex;&:hover{border-color:var(--color-text-separator,var(--color-rule));transform:translateY(-3px)}}& .cc-head{align-items:center;gap:14px;display:flex}& .cc-id{flex-direction:column;flex:auto;min-width:0;display:flex}& .cc-name{letter-spacing:-.02em;color:var(--color-text-emphasis);margin:0;font-size:18px;font-weight:600}& .cc-handle,& .cc-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}& .cc-handle{color:var(--color-text);opacity:.55;font-size:13px}& .cc-handle,& .cc-rank{font-family:var(--font-family-monospace)}& .cc-rank{color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 12%,transparent);border-radius:999px;flex:none;align-self:flex-start;padding:3px 10px;font-size:12px;font-weight:600}& .cc-bio{letter-spacing:-.01em;color:var(--color-text);opacity:.82;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:14.5px;line-height:1.5;display:-webkit-box;overflow:hidden}& .cc-foot{border-top:1px solid var(--color-rule);justify-content:space-between;align-items:center;gap:16px;margin-top:auto;padding-top:16px;display:flex}& .cc-stat{font-feature-settings:"tnum";align-items:baseline;gap:5px;display:flex;& b{color:var(--color-text-emphasis);font-size:18px;font-weight:600}& span{color:var(--color-text);opacity:.55;font-size:13px}}& .cc-link{color:var(--color-text-emphasis);white-space:nowrap;align-items:center;gap:6px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex;&:hover{color:var(--accent)}}@media (width<=768px){& .cp-hero{padding-top:104px}& .cp-stats{gap:28px}& .cp-grid{grid-template-columns:1fr}}}.forum{--accent:#ff6a00;--accent-2:#ff9a3d;--forum-solved:#10b981;--forum-like:#ee0979;--forum-op:#6366f1;--forum-bar-bg:#0d0d0f;--forum-chrome-text:#ffffff9e;--forum-chrome-strong:#fff;--forum-chrome-dim:#fff6;--forum-chrome-hover:#ffffff14;--forum-chrome-active:#ffffff1a;--forum-chrome-border:#ffffff14;--forum-chrome-field:#ffffff0f;--forum-chrome-field-border:#ffffff1a;--forum-nav-h:48px;--forum-bar-h:53px;--forum-max:var(--page-max);background:var(--color-page-background);min-height:100vh;color:var(--color-text);font-family:var(--font-family-sans-serif);letter-spacing:-.01em}.forum.theme-light{--forum-bar-bg:#fff;--forum-chrome-text:#0000008c;--forum-chrome-strong:#111;--forum-chrome-dim:#0006;--forum-chrome-hover:#0000000d;--forum-chrome-active:#00000012;--forum-chrome-border:#00000014;--forum-chrome-field:#0000000a;--forum-chrome-field-border:#0000001a}.forum-body{padding-top:calc(var(--forum-nav-h) + var(--forum-bar-h));min-height:100vh}@keyframes forum-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.forum-rise{animation:.55s cubic-bezier(.22,1,.36,1) both forum-rise}.forum-bar{top:var(--forum-nav-h);z-index:900;height:var(--forum-bar-h);background:var(--forum-bar-bg);border-bottom:1px solid var(--forum-chrome-border);position:fixed;left:0;right:0}.forum-bar-inner{height:100%;max-width:var(--forum-max);padding:0 var(--page-gutter);align-items:center;gap:12px;margin:0 auto;display:flex}.forum-bar-label{font-family:var(--font-family-monospace);text-transform:uppercase;letter-spacing:.1em;color:var(--forum-chrome-dim);flex:none;font-size:11px}.forum-bar-sep{background:var(--forum-chrome-border);flex:none;width:1px;height:18px}.forum-bar-tabs{flex:none;gap:16px;display:flex}.forum-tab{border-radius:var(--radius-md);color:var(--forum-chrome-text);padding:6px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:background .12s,color .12s}.forum-tab:hover{background:var(--forum-chrome-hover);color:var(--forum-chrome-strong)}.forum-tab.active{background:var(--forum-chrome-active);color:var(--forum-chrome-strong)}.forum-new{flex:none}.forum-bar-spacer{flex:1;min-width:8px}.forum-search{background:var(--forum-chrome-field);border:1px solid var(--forum-chrome-field-border);width:280px;max-width:38vw;color:var(--forum-chrome-text);border-radius:999px;flex:none;align-items:center;gap:8px;padding:6px 12px;transition:border-color .15s,background .15s;display:flex}.forum-search:focus-within{border-color:var(--forum-chrome-text);background:var(--forum-chrome-hover)}.forum-search input{min-width:0;color:var(--color-text-emphasis);font-family:var(--font-family-monospace);letter-spacing:-.01em;background:0 0;border:0;outline:none;flex:1;font-size:13px}.forum-search input::placeholder{color:var(--forum-chrome-dim)}.forum-toggle{border:1px solid var(--forum-chrome-field-border);background:var(--forum-chrome-field);width:32px;height:32px;color:var(--forum-chrome-text);cursor:pointer;border-radius:999px;flex:none;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex}.forum-toggle:hover{background:var(--forum-chrome-hover);color:var(--forum-chrome-strong)}@media (width<=720px){.forum-bar-label,.forum-bar-sep,.forum-search{display:none}}.forum-page{max-width:var(--forum-max);padding:0 var(--page-gutter) 96px;margin:0 auto}@media (width<=720px){.forum-bar-inner{padding:0 var(--page-gutter-sm)}.forum-page{padding-left:var(--page-gutter-sm);padding-right:var(--page-gutter-sm)}}.forum-split{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:40px;margin-top:40px;display:grid}@media (width<=860px){.forum-split{grid-template-columns:1fr;gap:28px}}.forum-hero{text-align:center;padding:84px 24px 8px;position:relative;overflow:hidden}.forum-hero-glow{background:radial-gradient(ellipse at bottom,var(--accent) 0,var(--accent-2) 28%,transparent 62%);filter:blur(96px);opacity:.26;pointer-events:none;width:680px;height:320px;position:absolute;bottom:-200px;left:50%;transform:translate(-50%)}.forum-hero-inner{z-index:1;max-width:720px;margin:0 auto;position:relative}.forum-hero-title{font-size:var(--xxl-font-size);line-height:var(--xxl-line-height);letter-spacing:-.04em;color:var(--color-text-emphasis);margin:0 0 16px;font-weight:600}.forum-hero-lede{max-width:520px;font-size:var(--m-font-size);letter-spacing:-.015em;color:var(--color-text);opacity:.85;margin:0 auto;line-height:1.5}.forum-hero-stats{font-family:var(--font-family-monospace);font-variant-numeric:tabular-nums;color:var(--color-text);opacity:.72;justify-content:center;gap:18px;margin-top:24px;font-size:13px;display:flex}.forum-hero-stats b{color:var(--color-text-emphasis);font-weight:700}.forum-hero-dot{opacity:.4}.forum-col{min-width:0}.forum-col-head{justify-content:space-between;align-items:center;margin-bottom:12px;padding-left:2px;display:flex}.forum-col-title{font-family:var(--font-family-monospace);text-transform:uppercase;letter-spacing:.08em;opacity:.45;font-size:11px}.forum-col-action{color:var(--color-text);opacity:.8;font-size:12.5px;font-weight:500;text-decoration:none}.forum-col-action:hover{opacity:1;color:var(--color-text-emphasis)}.forum-panel{border:1px solid var(--color-rule);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-stacked);overflow:hidden}.forum-room{color:inherit;border-bottom:1px solid var(--color-rule);align-items:center;gap:12px;padding:15px 18px;text-decoration:none;transition:background .12s;display:flex}.forum-room:last-child{border-bottom:0}.forum-room:hover{background:var(--color-surface-hover);color:inherit}.forum-room-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.forum-room-name{letter-spacing:-.015em;color:var(--color-text-emphasis);font-size:15px;font-weight:600}.forum-room-desc{color:var(--color-text);opacity:.6;white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.forum-room-count{font-family:var(--font-family-monospace);font-variant-numeric:tabular-nums;opacity:.55;flex:none;font-size:12px}.forum-dot{border-radius:3px;flex:none;width:10px;height:10px}.forum-dot.sm{border-radius:2px;width:7px;height:7px}.forum-feed-row{color:inherit;border-bottom:1px solid var(--color-rule);align-items:flex-start;gap:14px;padding:16px 18px;text-decoration:none;transition:background .12s;display:flex}.forum-feed-row:last-child{border-bottom:0}.forum-feed-row:hover{background:var(--color-surface-hover);color:inherit}.forum-feed-main{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.forum-feed-cat{font-family:var(--font-family-monospace);letter-spacing:-.01em;opacity:.6;align-items:center;gap:7px;font-size:11.5px;display:inline-flex}.forum-feed-title{letter-spacing:-.015em;color:var(--color-text-emphasis);font-size:15px;font-weight:600;line-height:1.3}.forum-feed-meta{color:var(--color-text);opacity:.6;font-size:12.5px}.forum-feed-stats{font-family:var(--font-family-monospace);font-variant-numeric:tabular-nums;flex-direction:column;flex:none;align-items:flex-end;gap:3px;display:flex}.forum-feed-replies{color:var(--color-text-emphasis);align-items:center;gap:4px;font-size:13px;font-weight:600;display:inline-flex}.forum-feed-views{opacity:.5;font-size:11px}.forum-search-head{justify-content:space-between;align-items:baseline;gap:16px;margin:36px 0 18px;display:flex}.forum-search-title{font-size:var(--l-font-size);letter-spacing:-.02em;color:var(--color-text-emphasis);margin:0;font-weight:600}.forum-search-clear{color:var(--color-text);opacity:.7;font-size:13px;text-decoration:none}.forum-search-clear:hover{opacity:1;color:var(--color-text-emphasis)}@keyframes forum-shimmer{0%{opacity:.4}50%{opacity:.7}to{opacity:.4}}.forum-skeleton-row{border-bottom:1px solid var(--color-rule);background:linear-gradient(90deg,transparent,var(--color-surface-hover),transparent);height:58px;animation:1.3s ease-in-out infinite forum-shimmer}.forum-skeleton-row:last-child{border-bottom:0}.forum-cc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:28px;display:grid}@media (width<=760px){.forum-cc-grid{grid-template-columns:minmax(0,1fr)}}.forum-cc{isolation:isolate;border:1px solid var(--color-rule);border-radius:var(--radius-xl);background:var(--color-surface);min-height:200px;box-shadow:var(--shadow-stacked);color:inherit;flex-direction:column;gap:14px;padding:22px 24px 20px;text-decoration:none;transition:background .14s,border-color .14s;display:flex;position:relative;overflow:hidden}.forum-cc:before{content:"";background:var(--cc-accent,var(--color-text-separator));width:3px;position:absolute;inset:0 auto 0 0}.forum-cc:after{content:"";background:radial-gradient(130px 90px at 0 0,var(--cc-accent,transparent),transparent 72%);opacity:.13;pointer-events:none;z-index:-1;width:200px;height:130px;position:absolute;top:0;left:0}.forum-cc:hover{background:var(--color-surface-hover);border-color:color-mix(in srgb,var(--cc-accent,var(--color-rule)) 45%,var(--color-rule));color:inherit}.forum-cc-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.forum-cc-titlewrap{align-items:center;gap:10px;min-width:0;display:inline-flex}.forum-cc .forum-dot{width:11px;height:11px}.forum-cc-title{letter-spacing:-.02em;color:var(--color-text-emphasis);white-space:nowrap;text-overflow:ellipsis;font-size:20px;font-weight:650;overflow:hidden}.forum-cc-counts{font-family:var(--font-family-monospace);font-variant-numeric:tabular-nums;white-space:nowrap;opacity:.5;flex-direction:column;flex:none;align-items:flex-end;gap:2px;font-size:12px;display:flex}.forum-cc-desc{color:var(--color-text);opacity:.72;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:15px;line-height:1.5;display:-webkit-box;overflow:hidden}.forum-cc-tags{flex-wrap:wrap;gap:8px;display:flex}.forum-cc-foot{flex-direction:column;gap:14px;margin-top:auto;display:flex}.forum-cc-latest{align-items:center;gap:12px;min-width:0;display:flex}.forum-cc-latest-title{min-width:0;color:var(--color-text-emphasis);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:14.5px;font-weight:500;overflow:hidden}.forum-cc-latest-time{font-family:var(--font-family-monospace);font-variant-numeric:tabular-nums;opacity:.5;flex:none;font-size:12px}.forum-cc-latest--empty .forum-cc-latest-title{color:var(--color-text);opacity:.45;font-weight:400}.forum-cc-skel{border:1px solid var(--color-rule);border-radius:var(--radius-xl);background:linear-gradient(90deg,transparent,var(--color-surface-hover),transparent);min-height:200px;animation:1.3s ease-in-out infinite forum-shimmer}.forum-empty{text-align:center;color:var(--color-text);opacity:.55;padding:40px 18px;font-size:14px}.forum .breadcrumbs{font-family:var(--font-family-monospace);letter-spacing:-.01em;opacity:.6;align-items:center;gap:6px;margin-bottom:20px;font-size:12.5px;display:flex}.forum .crumb-link{color:inherit;text-decoration:none}.forum .crumb-link:hover{color:var(--color-text-emphasis)}.forum .crumb-sep{opacity:.5}.forum .crumb-current{color:var(--color-text-emphasis)}.forum-detail{max-width:1080px}.forum-detail,.forum-feedpage{margin:0 auto;padding:8px 24px 96px}.forum-feedpage{max-width:820px}.forum-cat-head{align-items:flex-start;gap:16px;display:flex}.forum-cat-dot{border-radius:5px;flex:none;width:16px;height:16px;margin-top:7px}.forum-cat-headmain{flex:1;min-width:0}.forum-cat-title{font-size:var(--xl-font-size);letter-spacing:-.03em;color:var(--color-text-emphasis);margin:0;font-weight:600;line-height:1.1}.forum-cat-desc{letter-spacing:-.012em;color:var(--color-text);opacity:.72;max-width:620px;margin:8px 0 0;font-size:15px;line-height:1.5}.forum-cat-cta{flex:none}.forum-cat-stats{font-family:var(--font-family-monospace);font-variant-numeric:tabular-nums;opacity:.6;gap:22px;margin:22px 0 4px;font-size:12.5px;display:flex}.forum-cat-stats b{color:var(--color-text-emphasis);font-weight:600}.forum-cat-tabs{margin-top:18px}.forum-table-head{font-family:var(--font-family-monospace);text-transform:uppercase;letter-spacing:.06em;opacity:.45;align-items:center;gap:14px;padding:10px 14px;font-size:11px;display:flex}.forum-th-topic{flex:1}.forum-th-num{text-align:center;flex:none;width:64px}.forum-th-when{text-align:right;flex:none;width:88px}.forum-topic-row{color:inherit;border-bottom:1px solid var(--color-rule);align-items:center;gap:14px;padding:16px 14px;text-decoration:none;transition:background .12s;display:flex}.forum-topic-row:last-child{border-bottom:0}.forum-topic-row:hover{background:var(--color-surface-hover);color:inherit}.forum-topic-main{flex:1;min-width:0}.forum-topic-titleline{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.forum-pin{opacity:.55}.forum-topic-title{letter-spacing:-.015em;color:var(--color-text-emphasis);font-size:15.5px;font-weight:600;line-height:1.3}.forum-solved{color:var(--forum-solved);align-items:center;gap:3px;font-size:11px;font-weight:600;display:inline-flex}.forum-topic-sub{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.forum-topic-author{color:var(--color-text);opacity:.6;font-size:12.5px}.forum-topic-tags{gap:6px;display:flex}.forum-tagline{font-family:var(--font-family-monospace);opacity:.5;white-space:nowrap;font-size:12px}.forum-tagline .hash{opacity:.6}.forum-col-num{text-align:center;width:64px;font-family:var(--font-family-monospace);font-variant-numeric:tabular-nums;color:var(--color-text-emphasis);flex:none;font-size:14px;font-weight:600}.forum-col-num.dim{opacity:.6;font-size:13px;font-weight:400}.forum-col-when{text-align:right;width:88px;font-family:var(--font-family-monospace);opacity:.55;flex:none;font-size:12.5px}@media (width<=640px){.forum-col-num,.forum-th-num,.forum-th-when{display:none}}.forum-topic-chiprow{align-items:center;gap:10px;margin-bottom:10px;display:flex}.forum-cat-chip{letter-spacing:-.01em;background:var(--color-surface);border:1px solid var(--color-rule);color:var(--color-text-emphasis);border-radius:999px;align-items:center;gap:7px;padding:3px 10px;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex}.forum-cat-chip:hover{background:var(--color-surface-hover);color:var(--color-text-emphasis)}.forum-topic-h1{font-size:var(--xl-font-size);letter-spacing:-.03em;color:var(--color-text-emphasis);max-width:760px;margin:0 0 12px;font-weight:600;line-height:1.12}.forum-topic-tagchips{flex-wrap:wrap;gap:6px;margin-bottom:24px;display:flex}.forum-thread-grid{grid-template-columns:minmax(0,1fr) 200px;align-items:start;gap:36px;display:grid}@media (width<=820px){.forum-thread-grid{grid-template-columns:1fr}.forum-rail{display:none}}.forum-post{border-bottom:1px solid var(--color-rule);margin-bottom:24px;padding:0 0 8px}.forum-post:last-of-type{border-bottom:0}.forum-post-head{align-items:center;gap:11px;margin-bottom:14px;display:flex}.forum-post-headmain{flex:1;min-width:0}.forum-post-byline{align-items:center;gap:8px;display:flex}.forum-post-author{letter-spacing:-.015em;color:var(--color-text-emphasis);font-size:15px;font-weight:600}.forum-role{letter-spacing:-.005em;background:var(--color-tag-background);color:var(--color-tag-text);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:500}.forum-role.op{background:color-mix(in srgb,var(--forum-op) 20%,transparent);color:color-mix(in srgb,var(--forum-op) 55%,#fff)}.forum-role.staff{background:color-mix(in srgb,var(--forum-solved) 20%,transparent);color:color-mix(in srgb,var(--forum-solved) 60%,#fff)}.forum-post-time{font-size:12px;font-family:var(--font-family-monospace);opacity:.5;margin-top:2px}.forum-post-body{font-size:var(--s-font-size);letter-spacing:-.012em;color:var(--color-text);overflow-wrap:anywhere;line-height:1.62}.forum-post-body p{margin:0 0 14px}.forum-post-body img{border-radius:var(--radius-md);max-width:100%}.forum-post-body img.emoji{vertical-align:-.2em;border-radius:0;width:1.25em;max-width:none;height:1.25em;margin:0 .08em;display:inline-block}.forum-post-body img:not(.emoji):not(.avatar){width:auto;height:auto;max-height:min(70vh,480px)}.forum-post-body a.lightbox{cursor:zoom-in;text-decoration:none;display:inline-block}.forum-post-body .lightbox .meta{display:none}.forum-post-body pre{font-family:var(--font-family-monospace);background:var(--color-code-background);border:1px solid var(--color-rule);border-radius:var(--radius-md);color:var(--color-text-emphasis);padding:14px 16px;font-size:13px;line-height:1.6;overflow-x:auto}.forum-post-body code{font-family:var(--font-family-monospace);font-size:.92em}.forum-post-body a{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-underline-offset:2px}.forum-post-body a:hover{color:var(--accent-2);-webkit-text-decoration-color:var(--accent-2);text-decoration-color:var(--accent-2);background:0 0}.forum-post-actions{align-items:center;gap:8px;margin-top:14px;display:flex}.forum-actbtn{border:1px solid var(--color-rule);color:var(--color-text);cursor:pointer;font-family:var(--font-family-sans-serif);font-variant-numeric:tabular-nums;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:13px;font-weight:500;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.forum-actbtn:hover{background:var(--color-surface-hover);color:var(--color-text-emphasis)}.forum-actbtn.liked{border-color:color-mix(in srgb,var(--forum-like) 50%,transparent);background:color-mix(in srgb,var(--forum-like) 16%,transparent);color:color-mix(in srgb,var(--forum-like) 55%,#fff)}.forum-cat-more{margin-top:16px}.forum-reply{margin-top:8px}.forum-signin{border:1px solid var(--color-rule);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);padding:16px 18px;font-size:14px}.forum-signin button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.forum-rail{top:calc(var(--forum-nav-h) + var(--forum-bar-h) + 24px);border-left:2px solid var(--color-rule);flex-direction:column;gap:18px;padding-left:16px;display:flex;position:sticky}.forum-rail-label{font-size:11px;font-family:var(--font-family-monospace);text-transform:uppercase;letter-spacing:.06em;opacity:.45;margin-bottom:3px}.forum-rail-val{letter-spacing:-.01em;color:var(--color-text-emphasis);font-size:13.5px}.forum-rail-stats{font-family:var(--font-family-monospace);font-variant-numeric:tabular-nums;gap:18px;display:flex}.forum-rail-stat b{color:var(--color-text-emphasis);font-size:20px;font-weight:700;display:block}.forum-rail-stat span{opacity:.5;font-size:11px}.forum-rail-parts{flex-wrap:wrap;gap:6px;display:flex}.forum-search-posts{margin-top:28px}.forum-search-posts .forum-feed-row{cursor:default}.forum-search-posts .forum-feed-row:hover{background:0 0}.forum-modal-overlay{z-index:1100;-webkit-backdrop-filter:blur(4px);background:#0000008c;justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0}.forum-modal{background:var(--color-content-background);border:1px solid var(--color-rule);border-radius:var(--radius-xl);width:100%;max-width:600px;max-height:86vh;font-family:var(--font-family-sans-serif);flex-direction:column;animation:.25s cubic-bezier(.22,1,.36,1) both forum-sheet;display:flex;overflow:hidden;box-shadow:0 24px 64px #00000073}@keyframes forum-sheet{0%{opacity:0;transform:translateY(12px)scale(.99)}to{opacity:1;transform:none}}.forum-modal-head{border-bottom:1px solid var(--color-rule);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.forum-modal-title{font-size:var(--m-font-size);letter-spacing:-.02em;color:var(--color-text-emphasis);margin:0;font-weight:600}.forum-modal-close{border:1px solid var(--color-rule);background:var(--color-surface);width:32px;height:32px;color:var(--color-text);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.forum-modal-close:hover{background:var(--color-surface-hover)}.forum-modal-body{padding:20px 22px;overflow-y:auto}.forum-modal-signin{text-align:center;color:var(--color-text);flex-direction:column;align-items:center;gap:14px;padding:44px 22px;display:flex}.forum-modal-titlein{border:0;border-bottom:1px solid var(--color-rule);width:100%;font-family:var(--font-family-sans-serif);letter-spacing:-.025em;color:var(--color-text-emphasis);background:0 0;outline:none;padding:10px 2px;font-size:24px;font-weight:600}.forum-modal-titlein::placeholder{color:var(--color-text);opacity:.4}.forum-modal-error{color:#ff6a6a;margin:8px 0 0;font-size:13px}.forum-modal-cats{flex-wrap:wrap;align-items:center;gap:8px;margin-top:18px;display:flex}.forum-modal-label{font-family:var(--font-family-monospace);text-transform:uppercase;letter-spacing:.06em;opacity:.45;margin-right:4px;font-size:11px}.forum-modal-catpill{cursor:pointer;font-family:var(--font-family-sans-serif);letter-spacing:-.01em;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-rule);border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.forum-modal-catpill.active,.forum-modal-catpill:hover{background:var(--color-surface-hover)}.forum-modal-catpill.active{border-color:var(--accent);color:var(--color-text-emphasis)}.forum-modal-composer{margin-top:20px}.hero-title-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.hero-title-row .my-project-tile-cta-btn{align-self:center}.projects-slug{& .article-layout{padding-top:120px}@media (width>=1024px){& .article-layout{padding-top:180px}}& .card-image{margin-bottom:60px}}.page.learn-index,.page.projects-index{& .hero-section{border-bottom:none;padding-bottom:40px}& .category-section{padding-top:40px}@media (width<=768px){& .hero-section{padding-top:0;padding-bottom:32px}& .hero-text{margin-bottom:16px;font-size:3rem;line-height:1.1}& .hero-description{font-size:1.125rem;line-height:1.5}& .category-section{padding-top:32px;padding-bottom:48px}}}.my-projects-section{border-bottom:1px solid var(--color-rule);padding:40px 0 48px}.my-projects-label{letter-spacing:-.02em;color:var(--color-text-emphasis);margin:0 0 24px;font-size:24px;font-weight:600}.my-projects-row{grid-template-columns:repeat(3,1fr);align-items:stretch;gap:32px;display:grid}@media (width<=1024px){.my-projects-row{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.my-projects-row{grid-template-columns:1fr}}.my-project-tile--cta{border:1.5px dashed var(--color-rule);border-radius:16px;align-items:stretch;min-height:180px;padding:8px;display:flex}.my-project-tile-cta-inner{flex-direction:column;gap:24px;width:100%;padding:16px;display:flex}.my-project-tile-cta-text{flex-direction:column;flex:1;gap:8px;display:flex}.my-project-tile-cta-headline{letter-spacing:-.02em;color:var(--color-text-emphasis);margin:0;font-size:24px;font-weight:600;line-height:1.2}.my-project-tile-cta-body{color:var(--color-text);opacity:.6;margin:0;font-size:15px;line-height:1.6}.my-project-tile-cta-btn{background:var(--color-text-emphasis);color:var(--color-page-background);border-radius:8px;align-self:flex-start;align-items:center;gap:6px;padding:8px 16px;font-size:15px;font-weight:500;text-decoration:none;transition:opacity .15s;display:inline-flex}.my-project-tile-cta-btn:hover{opacity:.85}.join-cta-section{padding-bottom:0}.join-cta-card{background:var(--color-surface);border:1px solid var(--color-rule);border-radius:16px;justify-content:space-between;align-items:center;gap:2.5rem;padding:1.75rem 2rem;display:flex}.join-cta-text{flex-direction:column;flex:1;gap:.3rem;min-width:0;display:flex}.join-cta-headline{letter-spacing:-.015em;color:var(--color-text-emphasis);margin:0;font-size:1rem;font-weight:600;line-height:1.3}.join-cta-body{color:var(--color-text);opacity:.6;margin:0;padding:0;font-size:.875rem;line-height:1.5}.join-cta-actions{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.join-cta-sign-in{color:var(--color-text);opacity:.65;white-space:nowrap;font-size:14px;font-weight:500;text-decoration:none;transition:opacity .15s}.join-cta-sign-in:hover{opacity:1}.my-project-tile{background:var(--color-surface);border:1px solid var(--color-rule);color:inherit;border-radius:16px;flex-direction:column;gap:16px;padding:8px;text-decoration:none;transition:background .15s,box-shadow .15s;display:flex;box-shadow:0 0 0 1px #0000000f,0 1px 1px -.5px #0000000f,0 3px 3px -1.5px #0000000f,0 6px 6px -3px #0000000f}a.my-project-tile:hover{color:inherit;background:var(--color-surface-hover);box-shadow:0 0 0 1px #00000014,0 2px 4px -1px #00000014,0 8px 16px -4px #00000014}.my-project-tile--loading{color:var(--color-text);opacity:.5;justify-content:center;align-items:center;min-height:120px;font-size:15px}.my-project-thumb-frame{background:var(--color-surface-hover);border-radius:8px;flex-shrink:0;align-self:flex-start;padding:4px;box-shadow:0 0 0 1px #0000000f,0 1px 1px -.5px #0000000f,0 3px 3px -1.5px #0000000f,0 6px 6px -3px #0000000f}.my-project-thumb{border-radius:6px;width:72px;height:72px;overflow:hidden;box-shadow:0 0 0 1px #0000000f,0 1px 1px -.5px #0000000f}.my-project-thumb img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.my-project-info{flex-direction:column;flex:1;justify-content:space-between;gap:8px;padding:0 8px 8px;display:flex}.my-project-title{letter-spacing:-.02em;color:var(--color-text-emphasis);margin:0;font-size:24px;font-weight:600;line-height:1.2}.my-project-divider{background:var(--color-rule);width:100%;height:1px}.my-project-main-content-wrapper{flex:max-content}.my-project-author,.my-project-description{color:var(--color-text);-webkit-box-orient:vertical;font-size:15px;line-height:1.6;display:-webkit-box;overflow:hidden}.my-project-description{opacity:.6;line-clamp:2;-webkit-line-clamp:2;height:48px;margin:0}.my-project-author{opacity:.4;line-clamp:1;-webkit-line-clamp:1;height:24px;margin:6px 0}.my-project-tags{flex-wrap:wrap;gap:4px;padding:0 8px;display:flex}.my-project-bottom{justify-content:space-between;align-items:center;min-height:32px;padding:0 8px;display:flex}.my-project-date{color:var(--color-text);opacity:.5;font-size:15px}.my-project-actions{align-items:center;gap:8px;display:flex}.my-project-action{background:var(--base-50,#fff);height:32px;color:var(--base-500,#919191);box-shadow:0 .975px .975px -.488px #0000000f,0 0 0 1px var(--base-300,#ebebeb);border-radius:6px;gap:6px;padding:4px 8px}.my-project-action,.my-project-draft-badge{align-items:center;font-size:15px;display:inline-flex}.my-project-draft-badge{color:var(--base-600,#4c4c4c);gap:4px}.my-project-stats{gap:8px}.my-project-stat,.my-project-stats{align-items:center;display:inline-flex}.my-project-stat{background:var(--base-50,#fff);height:32px;color:var(--base-500,#919191);box-shadow:0 .975px .975px -.488px #0000000f,0 0 0 1px var(--base-300,#ebebeb);border-radius:6px;gap:6px;padding:4px 8px;font-size:15px}.featured-projects-heading{letter-spacing:-.01em;color:var(--color-text-emphasis);margin:0 0 40px;font-size:64px;font-weight:600;line-height:1.1}@media (width<=768px){.featured-projects-heading{margin-bottom:24px;font-size:40px}}.project-tile{background:var(--color-surface);border:1px solid var(--color-rule);border-radius:16px;flex-direction:column;gap:16px;padding:8px;transition:box-shadow .15s,background .15s;display:flex;overflow:hidden}.project-tile:hover{background:var(--color-surface-hover);box-shadow:0 0 0 1px #00000014,0 2px 4px -1px #00000014,0 8px 16px -4px #00000014}.project-tile-link{color:inherit;flex-direction:column;flex:1;gap:16px;text-decoration:none;display:flex}.project-tile-link:hover{color:inherit;background-color:#0000}.project-tile-preview{background:var(--color-surface-hover);border-radius:8px;flex-shrink:0;height:300px;padding:4px;position:relative;overflow:hidden;box-shadow:0 0 0 1px #0000000f,0 1px 1px -.5px #0000000f,0 3px 3px -1.5px #0000000f,0 6px 6px -3px #0000000f,0 12px 12px -6px #0000000f,0 24px 24px -12px #0000000f}.project-tile-preview img{-o-object-fit:cover;object-fit:cover;border-radius:6px;width:100%;height:100%;display:block}.project-tile-content{justify-content:space-between;gap:16px;padding:8px}.project-tile-body,.project-tile-content{flex-direction:column;flex:1;display:flex}.project-tile-body{gap:8px}.project-tile-title{padding:0 8px}.project-tile-title h3{letter-spacing:-.02em;color:var(--color-text-emphasis);margin:0;font-size:24px;font-weight:500;line-height:1.2}.project-tile-authors{flex-wrap:wrap;gap:2px;padding:0 8px;font-size:15px;display:flex}.project-tile-author-link{text-underline-offset:2px;color:var(--color-text-emphasis);-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.project-tile-author-link:hover{opacity:.7}.project-tile-divider{background:var(--color-rule);height:1px;margin:4px 8px}.project-tile-dek{color:var(--color-text);opacity:.7;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;padding:0 8px;font-size:15px;line-height:1.6;display:-webkit-box;overflow:hidden}.project-tile-tags{flex-wrap:wrap;gap:4px;padding:0 8px;display:flex}.project-tile-tag{color:var(--color-text-emphasis);border-radius:6px;align-items:center;gap:2px;padding:2px 8px;font-size:15px;line-height:1.6;text-decoration:none;display:inline-flex;& .tag-hash{opacity:.5}&:hover{text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}}.project-tile-bottom{justify-content:space-between;align-items:center;padding:0 8px;display:flex}.project-tile-date{color:var(--color-text);opacity:.5;font-size:15px}.project-tile-actions{align-items:center;gap:8px;display:flex}.project-tile-action{background:var(--color-page-background);border:1px solid var(--color-rule);height:32px;color:var(--color-text);opacity:.7;border-radius:6px;align-items:center;gap:6px;padding:4px 8px;font-size:15px;display:inline-flex;box-shadow:0 1px 1px -.5px #0000000f}.learn-layout{display:block}@media (width>=1024px){.learn-layout{grid-template-columns:200px 1fr;gap:40px;display:grid}}.learn-sidebar{display:none}@media (width>=1024px){.learn-sidebar{display:block}}.learn-toc{position:sticky;top:80px}.learn-toc-title{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text);opacity:.5;margin:0 0 .75rem;font-size:.65rem;font-weight:600}.learn-toc-list{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.learn-toc-link{color:var(--color-text);opacity:.7;border-radius:.5rem;padding:.375rem .75rem;font-size:.75rem;font-weight:400;text-decoration:none;transition:all .15s;display:block}.learn-toc-link:hover{opacity:1;background:var(--color-surface-hover);color:var(--color-text-emphasis)}.browse-section{padding-bottom:64px}.browse-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.browse-header .featured-projects-heading{margin-bottom:0}.browse-tabs{flex-shrink:0;align-items:center;gap:4px;display:flex}.browse-tab{border:1px solid var(--color-rule);height:36px;color:var(--color-text);cursor:pointer;background:0 0;border-radius:8px;align-items:center;padding:0 14px;font-size:15px;font-weight:400;transition:background .1s,color .1s,border-color .1s;display:inline-flex}.browse-tab:hover{background:var(--color-surface-hover);color:var(--color-text-emphasis)}.browse-tab.active,.browse-tab:hover{border-color:var(--color-text-emphasis)}.browse-tab.active{background:var(--color-text-emphasis);color:var(--color-page-background);font-weight:500}.browse-tags{flex-wrap:wrap;gap:6px;margin-bottom:24px;display:flex}.browse-tag{border:1px solid var(--color-rule);cursor:pointer;background:0 0;transition:background .1s,color .1s,border-color .1s}.browse-tag:hover{background:var(--color-surface-hover)}.browse-tag.active{background:var(--color-text-emphasis);color:var(--color-page-background);border-color:var(--color-text-emphasis)}.browse-loading{width:100%}.browse-empty{color:var(--color-text);opacity:.5;justify-content:center;padding:48px 0;font-size:15px;display:flex}@media (width<=768px){.browse-header{flex-direction:column;align-items:flex-start}.browse-tabs{flex-wrap:wrap}}.promo-banner-light{width:fit-content;max-width:680px;color:inherit;background:#00000008;border:1px solid #0000001a;border-radius:8px;align-items:center;gap:14px;margin-top:20px;margin-bottom:4px;padding:8px 14px;text-decoration:none;transition:background .2s,border-color .2s;display:inline-flex}.promo-banner-light:hover{color:inherit;background:#0000000f;border-color:#00000026}.promo-banner-light .promo-badge{text-transform:uppercase;letter-spacing:.05em;color:#fff;background:linear-gradient(135deg,#ff6a00,#ee0979);border-radius:4px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.6;display:inline-flex}.promo-banner-light .promo-text{color:var(--color-text,#666);margin:0;font-size:15px;line-height:1.5}.promo-banner-light .promo-text strong{color:var(--color-text-emphasis,#111);font-weight:500}.promo-announcement-link--light{--color-link-text:#333;--color-link-text-hover:#000;--color-link-background:transparent;--color-link-background-hover:transparent;color:#333;text-underline-offset:3px;width:fit-content;margin-top:0;font-size:13px;font-weight:500;-webkit-text-decoration:underline #00000059;text-decoration:underline #00000059;transition:color .2s,text-decoration-color .2s;display:block}.promo-announcement-link--light:hover{color:#000;background-color:#0000;text-decoration-color:#0009}@media (width<=640px){.promo-banner-light{flex-wrap:wrap;gap:6px}.promo-banner-light .promo-text{font-size:14px}}.project-content{line-height:var(--s-line-height,1rem);font-size:var(--s-font-size,16px);letter-spacing:-.015em;color:var(--color-text-emphasis);max-width:700px;margin:0 auto}.project-content h1{line-height:var(--xl-line-height,2rem);font-size:var(--xl-font-size,40px);margin:0 0 1.5rem}.project-content h1,.project-content h2{letter-spacing:-.02em;color:var(--color-text-emphasis);font-weight:600}.project-content h2{line-height:var(--l-line-height,1.25rem);font-size:var(--l-font-size,22px);margin:2.5rem 0 1rem}.project-content h3,.project-content h4,.project-content h5,.project-content h6{line-height:var(--m-line-height,1.25rem);font-size:var(--m-font-size,18px);color:var(--color-text-emphasis);margin:2rem 0 .75rem;font-weight:600}.project-content p{margin-bottom:1.5rem;line-height:1.7}.project-content p+p{text-indent:0}.project-content em{font-style:italic}.project-content strong{font-weight:600}.project-content a{color:#06c;-webkit-text-decoration:underline #0066cc4d;text-decoration:underline #0066cc4d;transition:text-decoration-color .2s}.project-content a:hover{color:#06c;background-color:#0000;text-decoration-color:currentColor}.project-content img{border-radius:4px;max-width:100%;height:auto;margin:2rem auto;display:block}.project-content iframe,.project-content video{background:#000;max-width:min(800px,100%);margin:2rem auto;display:block}.project-content figure{margin:2.5rem 0}.project-content figcaption{line-height:var(--xs-line-height,1rem);font-size:var(--xs-font-size,14px);color:var(--color-text);opacity:.7;text-align:center;margin-top:.75rem;font-style:italic}.project-content blockquote{border-left:3px solid var(--color-rule);color:var(--color-text);opacity:.8;margin:2rem 0;padding-left:1.5rem;font-style:italic}.project-content pre{color:var(--color-text);border-radius:.25rem;margin:1.5rem 0;padding:1rem;font-size:14px;line-height:1.5;overflow-x:auto}.project-content code,.project-content pre{background:var(--color-code-background);font-family:var(--font-family-monospace,"JetBrains Mono","SF Mono",Monaco,monospace)}.project-content code{hyphens:none}.project-content pre code{background:0 0}.project-content ol,.project-content ul{margin:1.5rem 0;padding-left:1.5rem}.project-content li{margin-bottom:.5rem;line-height:1.7}.project-content li>p{margin:0;line-height:1.7}.project-content .katex-display,.project-content .math-display,.project-content math,.project-content mjx-container{-webkit-overflow-scrolling:touch;max-width:100%;display:block;overflow-x:auto}@media (width<=600px){.project-content{word-break:break-word;max-width:100%;overflow-x:hidden}.project-content h1{font-size:28px;line-height:1.2}.project-content h2{font-size:20px}.project-content h3,.project-content h4{font-size:17px}.project-content pre{border-radius:0;width:calc(100% + 32px);margin-left:-16px;margin-right:-16px;padding:12px;font-size:12px}.project-content iframe,.project-content img,.project-content video{border-radius:0;width:calc(100% + 32px);max-width:calc(100% + 32px);margin-left:-16px;margin-right:-16px}.project-content blockquote,.project-content li,.project-content p,.project-content td,.project-content th{word-break:break-word;overflow-wrap:break-word;hyphens:auto}.project-content table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}}@media (width<=400px){.project-content :deep(pre){width:calc(100% + 24px);margin-left:-12px;margin-right:-12px}.project-content :deep(img){width:calc(100% + 24px);max-width:calc(100% + 24px);margin-left:-12px;margin-right:-12px}}.code-editor-wrapper{gap:10px}.code-editor,.code-editor-wrapper{flex-direction:column;display:flex}.code-editor{border:1px solid var(--color-rule);background:var(--color-background,var(--color-page-background));border-radius:8px;overflow:hidden}.code-editor.expanded{max-height:600px}.code-editor.expanded.fullscreen,.code-editor.fullscreen{z-index:1000;border-radius:0;height:100vh;max-height:none;position:fixed;inset:0}.code-toolbar{background:var(--color-surface-hover);border-bottom:1px solid var(--color-rule);color:var(--color-text);align-items:center;padding:8px 16px;display:flex}.code-toolbar .toolbar-label{color:var(--color-text);text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:600}.code-editor-wrapper.multi .toolbar-label{cursor:pointer}.code-editor-wrapper.multi .toolbar-label:before{content:"▸";padding-right:5px}.code-editor-wrapper.multi .code-editor.expanded .toolbar-label:before{content:"▾"}.code-toolbar .toolbar-spacer{flex:1}.code-toolbar .toolbar-btn{color:var(--color-text-separator);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:14px;line-height:1}.code-toolbar .toolbar-btn.active,.code-toolbar .toolbar-btn:hover{background:var(--color-rule);color:var(--color-text-emphasis)}.editor-container{flex:1;min-height:0;display:none;overflow:auto}.code-editor .editor-container{display:none}.code-editor.expanded .editor-container,.code-editor.fullscreen .editor-container{display:block}.code-editor .status-bar{color:var(--color-text-separator);background:var(--color-surface-hover);border-top:1px solid var(--color-rule);text-align:right;padding:4px 12px;font-size:12px;display:none}.code-editor.expanded .status-bar,.code-editor.fullscreen .status-bar{display:block}.cm-editor.cm-focused{outline:none}.analytics-consent[data-v-0660ea57]{z-index:3000;color:#eee;background:#111;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;font-size:14px;line-height:1.5;display:flex;position:fixed;bottom:0;left:0;right:0}.analytics-consent__text[data-v-0660ea57]{max-width:70ch;margin:0}.analytics-consent__text a[data-v-0660ea57]{color:#fff;text-decoration:underline}.analytics-consent__text a[data-v-0660ea57]:hover{color:#fff;background-color:#ffffff29}.analytics-consent__actions[data-v-0660ea57]{gap:8px;display:flex}.analytics-consent__btn[data-v-0660ea57]{cursor:pointer;border:1px solid #444;border-radius:6px;height:34px;padding:0 16px;font-size:14px;font-weight:500}.analytics-consent__btn--decline[data-v-0660ea57]{color:#ccc;background:0 0}.analytics-consent__btn--accept[data-v-0660ea57]{color:#000;background:#fff;border-color:#fff}.error-page-root{z-index:9999;position:fixed;inset:0;overflow:auto}.error-container{background-color:#000;justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.error-container .hero-bg{z-index:0;pointer-events:none;opacity:.8;background-image:url(../media/hero-bg.webp);background-position:50%;background-size:cover;width:100%;height:100%;position:absolute;top:0;right:0}.error-content{z-index:1;text-align:center;flex-direction:column;align-items:center;max-width:600px;padding:2rem;display:flex;position:relative}.error-code{background:linear-gradient(#fff,#ffffffb3);-webkit-text-fill-color:transparent;letter-spacing:-.05em;background-clip:text;margin:0 0 .5rem;font-size:clamp(8rem,20vw,14rem);font-weight:800;line-height:1}.error-message{color:#fff;letter-spacing:-.03em;margin:0 0 1.5rem;font-size:clamp(1.5rem,4vw,2.5rem);font-weight:600}.error-description{color:#fff9;max-width:450px;margin:0 0 3rem;font-size:clamp(1rem,2vw,1.2rem);line-height:1.7}.error-cta{-webkit-backdrop-filter:blur(10px);color:#fff;cursor:pointer;background:#fdfdfd26;border:1px solid #fff3;border-radius:50px;align-items:center;gap:10px;padding:16px 32px;font-family:inherit;font-size:1rem;font-weight:500;transition:all .3s;display:inline-flex}.error-cta:hover{background:#fdfdfd40;border-color:#fff6;transform:translateY(-2px)}.error-cta .arrow{transition:transform .3s}.error-cta:hover .arrow{transform:translate(4px)}
