:root{--graph-lean: var(--ds-color-brand-pressed);--city-surface: var(--ds-color-canvas);--city-ground: #aab8d4;--city-line: var(--ds-color-line);--city-ink: var(--ds-color-ink);--city-dull: #c9c9c9;--city-dim: #f1f1f1;--city-near: #8a9099;--kind-lemma: #0e7c8f;--kind-definition: #2f8030;--kind-proposition: #c42b5a;--kind-theorem: #8a7600;--kind-other: #7d838d;--city-sky-top: var(--ds-color-brand);--city-sky-horizon: var(--ds-color-surface-subtle);--city-sun: #fff2e4;--city-fill: #c3d1f0;--city-uplight: #ff9a4a;--city-surround: #d9e3f7;--graph-canonical: var(--ds-color-art-orange);--graph-both: var(--ds-color-art-violet);--code-keyword: var(--ds-color-art-violet);--status-mathlib: var(--ds-color-diagram-green);--status-not-applicable: var(--ds-color-danger-strong);--graph-mask: var(--ds-color-surface);--ds-weight-body: 400;--site-weight-action: 600;--site-gutter: clamp(var(--ds-space-5), 4vw, var(--ds-space-7));--site-index-width: 416px;--site-fold: calc(100dvh - 72px - var(--ds-border-width));--atlas-part: #f2f5fa;--atlas-part-alt: #edf1f7;--atlas-section-line: #e4eaf2;--atlas-chapter-line: #dbe2ed}:root[data-theme=dark]{color-scheme:dark;--axiom-color-canvas: #151821;--axiom-color-surface: #0f1117;--axiom-color-surface-subtle: #1c2030;--axiom-color-ink: #e8e8ee;--axiom-color-ink-black: #ffffff;--axiom-color-heading: #d9dae3;--axiom-color-muted: #8b8e9c;--axiom-color-line: #262a36;--axiom-color-line-strong: #5a5e6c;--axiom-color-brand: #3b5895;--axiom-color-brand-pressed: #7aa2ff;--axiom-color-accent: #8fb1ff;--axiom-color-inverse: #0f1117;--axiom-color-disabled: #3a3e4a;--axiom-color-danger-surface: #4a1f22;--axiom-color-danger-strong: #ff9a8f;--ds-color-diagram-red: #ff6b93;--ds-color-diagram-green: #5cc27a;--code-keyword: #a184e0;--ds-color-grid: rgb(143 177 255 / 8%);--ds-shadow-menu: 0 12px 32px rgb(0 0 0 / 40%);--ds-shadow-overlay: 0 24px 64px rgb(0 0 0 / 50%);--city-ground: #2b3449;--city-dull: #4a4e58;--city-dim: #1c2030;--city-sky-top: #1e2b4a;--city-sun: #c8d4f0;--city-fill: #7a88b0;--city-uplight: #ff8a3a;--city-surround: #1a2234;--kind-lemma: #45b8cc;--kind-definition: #6cc46c;--kind-proposition: #ff6b93;--kind-theorem: #dcc23c;--kind-other: #8b8e9c;--atlas-part: #151821;--atlas-part-alt: #181c27;--atlas-section-line: #262a36;--atlas-chapter-line: #303545}body{--ds-font-sans: "Helvetica Neue", Arial, sans-serif}@layer reset{*{box-sizing:border-box}html{background:var(--ds-color-surface);scrollbar-gutter:stable}body{display:flex;min-height:100vh;flex-direction:column;margin:0;color:var(--ds-color-ink);background:var(--ds-color-surface);font-family:var(--ds-font-sans);font-size:var(--ds-size-body);font-weight:var(--ds-weight-body);line-height:1.55}button,input,select{font:inherit}button{color:inherit}a{color:var(--ds-color-accent)}h1,h2,h3,p{margin:0}}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}:focus-visible{outline:2px solid var(--ds-color-accent);outline-offset:2px}.entity-index :focus-visible,.tasks-list :focus-visible{outline-offset:-2px}.skip-link{position:fixed;z-index:999;top:var(--ds-space-2);left:var(--ds-space-2);padding:var(--ds-space-2) var(--ds-space-3);color:var(--ds-color-inverse);background:var(--ds-color-heading);transform:translateY(-200%)}.skip-link:focus{transform:none}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}[hidden]{display:none!important}.mono{font-family:var(--ds-font-mono)}.meta{display:flex;flex-wrap:wrap;column-gap:var(--ds-space-4);row-gap:var(--ds-space-1);color:var(--ds-color-muted);font-size:var(--ds-size-meta);font-weight:var(--ds-weight-meta);line-height:1.4}.meta.stacked{flex-direction:column}.tag-title{color:var(--tag-color, var(--ds-color-accent));font-family:var(--ds-font-mono);font-weight:600;letter-spacing:0}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ds-space-2)}.panel-title{color:var(--ds-color-heading);font-family:var(--ds-font-sans);font-size:var(--ds-size-meta);font-weight:var(--ds-weight-meta)}.ds-container{max-width:none;padding-inline:var(--site-gutter)}.ds-button-primary,.ds-button-primary:active{border-color:var(--ds-color-accent);background:var(--ds-color-accent);color:var(--ds-color-inverse)}.ds-button-primary:hover{border-color:var(--ds-color-accent);background:color-mix(in srgb,var(--ds-color-accent) 82%,black);color:var(--ds-color-inverse)}.topnav{position:sticky;z-index:50;top:0;border-bottom:var(--ds-border-width) solid var(--ds-color-line);background:var(--ds-color-surface)}.topnav-inner{display:flex;height:72px;align-items:center;justify-content:space-between;gap:var(--ds-space-5)}.logo{display:block;width:132px;height:52px;flex-shrink:0}.logo svg{display:block;width:auto;height:100%;color:var(--ds-color-heading)}.navlinks{display:flex;align-self:stretch;gap:clamp(var(--ds-space-4),3vw,var(--ds-space-6));color:var(--ds-color-muted);font-size:15px;font-weight:400}.navlinks a{display:inline-flex;align-items:center;gap:var(--ds-space-1);border-bottom:2px solid transparent;color:inherit;text-decoration:none;white-space:nowrap;transition:color var(--ds-duration-fast) var(--ds-ease-standard),border-color var(--ds-duration-fast) var(--ds-ease-standard)}.navlinks a:hover,.navlinks a:focus-visible{color:var(--ds-hover-text)}.navlinks a[aria-current=page]{border-bottom-color:var(--ds-color-accent);color:var(--ds-color-accent)}.topnav-end{display:flex;align-self:stretch;align-items:center;gap:clamp(var(--ds-space-4),3vw,var(--ds-space-6))}.navlinks-out a{gap:.3em}.nav-icon{display:none;width:18px;height:18px}.theme-toggle{display:flex;width:32px;height:32px;align-items:center;justify-content:center;margin-left:calc(-1 * var(--ds-space-2));padding:0;border:0;background:none;color:var(--ds-color-muted);cursor:pointer}.theme-toggle:hover,.theme-toggle:focus-visible{color:var(--ds-hover-text)}.theme-toggle svg{display:block;width:16px;height:16px}.site-menu{display:contents}.nav-toggle{display:none;width:40px;height:40px;align-items:center;justify-content:center;margin-right:calc(-1 * var(--ds-space-2));padding:0;border:0;background:none;color:var(--ds-color-ink);cursor:pointer}.nav-hamburger{position:relative;display:block;width:22px;height:13px}.nav-hamburger span{position:absolute;left:0;display:block;width:100%;height:1px;background:currentColor;transform-origin:center;transition:transform var(--ds-duration-base) var(--ds-ease-standard),opacity var(--ds-duration-fast) var(--ds-ease-standard)}.nav-hamburger span:nth-child(2){top:6px}.nav-hamburger span:nth-child(3){top:12px}.nav-toggle[aria-expanded=true] .nav-hamburger span:nth-child(1){transform:translateY(6px) rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-hamburger span:nth-child(2){opacity:0;transform:scaleX(0)}.nav-toggle[aria-expanded=true] .nav-hamburger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.theme-toggle .theme-sun,[data-theme=dark] .theme-toggle .theme-moon{display:none}[data-theme=dark] .theme-toggle .theme-sun{display:block}main{flex:1}.view{display:none}.view.active{display:block}.graph-view.active,.library-view.active{display:flex;height:var(--site-fold);min-height:480px;flex-direction:column}.arrow{display:inline-block;width:.9em;height:.9em;flex-shrink:0;background:currentColor;-webkit-mask:var(--arrow-icon) center / contain no-repeat;mask:var(--arrow-icon) center / contain no-repeat;transition:transform var(--ds-duration-fast) var(--ds-ease-standard);--arrow-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M2 8h11.5M9 3.5 13.5 8 9 12.5'/%3E%3C/svg%3E")}.caret,.chapter-group>summary::before,.section-group>summary::before,.counts summary::before,.how-to>summary::before,.group-name::before{display:block;width:12px;height:12px;flex:none;background:currentColor;-webkit-mask:var(--caret-icon) center / contain no-repeat;mask:var(--caret-icon) center / contain no-repeat;transition:transform var(--ds-duration-fast) var(--ds-ease-standard);--caret-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M3.5 6 8 10.5 12.5 6'/%3E%3C/svg%3E")}.arrow-out{--arrow-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M3 13 12.5 3.5M5 3.5h7.5V11'/%3E%3C/svg%3E")}.ds-action-link,.ds-button{gap:.4em}.navlinks a{gap:.2em}.ds-action-link,.ds-button{font-weight:var(--site-weight-action)}.ds-action-link:hover>.arrow-out,.ds-action-link:focus-visible>.arrow-out{transform:translate(2px,-2px)}.ds-title{font-size:42px;font-weight:400;letter-spacing:-.025em;line-height:1.05}.page{padding-block:var(--ds-space-6) var(--ds-space-7)}.home-hero{position:relative;height:max(640px,var(--site-fold));overflow:hidden;border-bottom:var(--ds-border-width) solid var(--ds-color-line);background:var(--ds-color-surface)}.home-intro{position:absolute;z-index:1;inset:0 auto 0 0;display:flex;width:min(calc(var(--home-indent) + 560px),100vw);flex-direction:column;justify-content:safe center;align-items:flex-start;padding:0 80px 0 var(--home-indent);overflow-y:auto;pointer-events:none;--home-indent: var(--ds-gutter)}.home-intro>*{pointer-events:auto}.home-intro .ds-title{max-width:480px;margin-bottom:var(--ds-space-5);font-size:clamp(34px,3.6vw,51px);letter-spacing:-.025em;line-height:1.12}.home-intro p{max-width:480px;margin-bottom:var(--ds-space-4);color:var(--ds-color-ink);line-height:1.55}html.home #main{position:relative}html.home #view-graph{display:flex;height:max(640px,var(--site-fold));flex-direction:column}html.home #view-home{position:absolute;z-index:3;inset:0 0 auto;pointer-events:none}html.home .home-hero{background:none}html.home .home-intro{background:linear-gradient(90deg,color-mix(in srgb,var(--ds-color-surface) 82%,transparent) calc(100% - 240px),transparent)}html.home .graph-head,html.home .graph-inspector,html.home .zoom-group,html.home .graph-hover{display:none}html.home #dependency-canvas,html.home .city-canvas{cursor:pointer}html.home .graph-stage.is-city{background:var(--city-sky-horizon)}html.home .graph-stage.is-loading::before{left:calc(70% - 14px)}html.home .graph-stage.is-loading::after{left:40%}.home-stats{display:grid;width:100%;max-width:480px;grid-template-columns:repeat(3,minmax(0,1fr));margin:var(--ds-space-5) 0 var(--ds-space-6);padding-top:var(--ds-space-3);border-top:var(--ds-border-width) solid var(--ds-color-line)}.home-stats>div{display:flex;min-width:0;flex-direction:column;gap:var(--ds-space-1);padding-right:var(--ds-space-5)}.home-stats dd{order:-1;margin:0;color:var(--ds-color-ink);font-family:var(--ds-font-serif);font-size:34px;font-variant-numeric:tabular-nums;line-height:1.1}.home-stats dt{color:var(--ds-color-muted);font-size:var(--ds-size-meta)}.home-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ds-space-4) var(--ds-space-5)}.home-actions .hero-cta{min-height:44px;padding:var(--ds-space-3) var(--ds-space-5);border-color:var(--ds-color-heading);background:var(--ds-color-heading);color:var(--ds-color-inverse);font-size:var(--ds-size-meta);font-weight:400}.home-actions .hero-cta:hover{border-color:var(--ds-color-ink);background:var(--ds-color-ink)}.home-actions .ds-action-link{font-weight:500}.contributors{max-width:var(--ds-reading-measure);margin-top:var(--ds-space-3);font-size:var(--ds-size-meta)}.contributors p{margin-bottom:var(--ds-space-2);color:var(--ds-color-ink);line-height:1.65}.contributors sup{margin-left:.06em;color:var(--ds-color-accent);font-size:var(--ds-size-meta-compact);font-weight:600;line-height:0}.contributors .legend{display:flex;flex-wrap:wrap;gap:2px var(--ds-space-4);margin:0;color:var(--ds-color-muted)}.home-heading{width:100%;margin-bottom:var(--ds-space-5);padding-top:var(--ds-space-3);border-top:var(--ds-border-width) solid var(--ds-color-line);color:var(--ds-color-ink);font-size:17px;font-weight:600;line-height:1.3}.home-links{display:flex;flex-wrap:wrap;gap:var(--ds-space-3) var(--ds-space-6)}.page .home-links{margin-top:var(--ds-space-6)}.edge-key{display:flex;flex-wrap:wrap;gap:var(--ds-space-2) var(--ds-space-4);margin:0;padding:0;border:0;color:var(--ds-color-muted);font-size:var(--ds-size-meta-compact)}.edge-key label,.edge-key span{display:inline-flex;align-items:center;gap:var(--ds-space-2);white-space:nowrap}.edge-key label{cursor:pointer}.swatch{display:inline-block;width:20px;height:2px;background:var(--graph-lean)}.swatch.canonical{background:var(--graph-canonical)}.swatch.both{background:var(--graph-both)}.swatch-square{display:inline-block;width:10px;height:10px;border:var(--ds-border-width) solid}.swatch-square.is-mathlib,.swatch-square.is-not-applicable{border-color:var(--tag-color)}.swatch-square.tag{border-color:var(--tag-color, var(--ds-color-accent))}.select{position:relative;display:flex}.select>.select-trigger{display:flex;width:100%;align-items:center;justify-content:space-between;gap:var(--ds-space-3);padding-inline:var(--ds-space-3);text-align:left;cursor:pointer}.select-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-trigger .caret{color:var(--ds-color-muted)}.select.is-open .caret{transform:rotate(180deg)}.select-menu{position:absolute;z-index:20;top:calc(100% + var(--ds-space-1));left:0;min-width:100%;max-width:min(420px,calc(100vw - 2 * var(--site-gutter)));max-height:min(360px,60vh);overflow-y:auto;padding-block:var(--ds-space-1);border:var(--ds-border-width) solid var(--ds-color-line);border-radius:var(--ds-radius-sm);background:var(--ds-color-surface);box-shadow:var(--ds-shadow-menu)}.select-menu .ds-menu-option{padding:var(--ds-space-2) var(--ds-space-3);overflow:hidden;line-height:1.4;text-overflow:ellipsis}.select-menu .ds-menu-option:focus-visible{outline:none}input[type=checkbox]{margin:0;accent-color:var(--ds-color-accent)}.graph-trail{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ds-space-2);min-width:0;font-size:var(--ds-size-meta)}.graph-trail ol{display:contents}.graph-trail li{display:flex;align-items:center;gap:var(--ds-space-2);min-width:0}.graph-trail li+li::before,.graph-trail>.select::before{content:"/";color:var(--ds-color-muted)}.graph-trail>.select{align-items:center;gap:var(--ds-space-2)}.graph-trail li>*{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.graph-trail li button{padding:0;border:0;background:none;color:var(--ds-color-muted);font:inherit;cursor:pointer}.graph-trail li button:hover{color:var(--ds-color-ink);text-decoration:underline}.graph-trail [aria-current]{color:var(--ds-color-ink);font-weight:500}.graph-trail>.select[hidden]{display:none}.graph-trail-next{width:180px}.zoom-group{position:absolute;z-index:2;top:var(--ds-space-4);left:var(--ds-space-4);display:flex;border:var(--ds-border-width) solid var(--ds-color-line);border-radius:var(--ds-radius-sm);background:var(--ds-color-surface)}.zoom-group button{min-width:32px;height:32px;padding:0 var(--ds-space-2);border:0;background:transparent;color:var(--ds-color-ink);font-size:var(--ds-size-meta);cursor:pointer}.zoom-group button+button{border-left:var(--ds-border-width) solid var(--ds-color-line)}.zoom-group button:hover{background:var(--ds-color-canvas)}.graph-shell{display:grid;min-height:0;flex:1;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.graph-shell{--graph-inspector-width: 420px}.graph-shell.has-selection{grid-template-columns:minmax(0,1fr) min(var(--graph-inspector-width),60%)}.graph-inspector-resize{position:absolute;z-index:3;top:0;right:0;bottom:0;display:none;width:8px;cursor:col-resize;touch-action:none}.graph-shell.has-selection .graph-inspector-resize{display:block}.graph-inspector-resize:hover,.graph-inspector-resize:focus-visible{outline:0;box-shadow:inset -2px 0 var(--ds-color-accent)}.graph-head{display:grid;gap:var(--ds-space-4);padding-block:var(--ds-space-6) var(--ds-space-5);border-bottom:var(--ds-border-width) solid var(--ds-color-line)}.graph-head-main{display:flex;flex-direction:column;gap:var(--ds-space-5)}.graph-head-aside{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ds-space-3) var(--ds-space-6);font-size:14px;line-height:1.5}.help-title{position:relative;display:flex;align-items:center;gap:var(--ds-space-3)}.help summary{display:grid;place-items:center;width:24px;height:24px;border:var(--ds-border-width) solid var(--ds-color-line);border-radius:50%;color:var(--ds-color-muted);font-size:13px;cursor:pointer;list-style:none}.help summary::-webkit-details-marker{display:none}.help summary:hover,.help[open] summary{border-color:var(--ds-color-ink);color:var(--ds-color-ink)}.help-panel{position:absolute;z-index:5;top:calc(100% + 8px);left:0;display:grid;gap:var(--ds-space-2);width:min(380px,calc(100vw - 48px));padding:var(--ds-space-4);border:var(--ds-border-width) solid var(--ds-color-line);border-radius:var(--ds-radius-sm);background:var(--ds-color-surface);color:var(--ds-color-ink);font-size:14px;line-height:1.5}.help-panel p,.help-panel dl{margin:0}.help-panel dt{font-weight:600}.help-panel dd{margin:0 0 var(--ds-space-2);color:var(--ds-color-muted)}.graph-search{position:relative;display:flex;flex:1 1 160px;max-width:220px}.graph-search-row{display:contents}.graph-filters-open,.graph-sheet,.graph-sheet-backdrop{display:none}.graph-search svg{position:absolute;top:50%;left:12px;width:16px;height:16px;transform:translateY(-50%);fill:none;stroke:var(--ds-color-muted);stroke-width:2;stroke-linecap:round;pointer-events:none}.graph-search input{width:100%;height:40px;padding:0 var(--ds-space-3) 0 36px;border:var(--ds-border-width) solid var(--ds-color-line);border-radius:var(--ds-radius-sm);background:var(--ds-color-canvas);color:var(--ds-color-ink)}.graph-search input:focus-visible{outline:2px solid var(--ds-color-accent);outline-offset:-1px}.graph-declaration{font-size:12px;line-height:1.5}.graph-modes{display:flex;border:var(--ds-border-width) solid var(--ds-color-line);border-radius:var(--ds-radius-sm)}.graph-modes button{height:38px;padding:0 var(--ds-space-3);border:0;color:var(--ds-color-muted);background:transparent;font:400 13px var(--ds-font-sans);cursor:pointer;white-space:nowrap}.graph-modes button+button{border-left:var(--ds-border-width) solid var(--ds-color-line)}.graph-modes button[aria-pressed=true]{background:var(--ds-color-ink);color:var(--ds-color-surface)}.graph-modes button:focus-visible,#dependency-canvas:focus-visible,.city-canvas:focus-visible{outline:2px solid var(--ds-color-accent);outline-offset:-2px}.graph-kind-key{display:flex;flex-wrap:wrap;gap:var(--ds-space-2) var(--ds-space-5);color:var(--ds-color-ink);font-size:var(--ds-size-meta)}.graph-edge-controls{align-items:center;color:var(--ds-color-ink);font-size:var(--ds-size-meta)}.graph-kind-key span::before{content:"";display:inline-block;width:10px;height:10px;margin-right:8px;border-radius:50%;background:var(--kind-color);vertical-align:0}.graph-kind-key[hidden]{display:none}.k-lemma{--kind-color: var(--kind-lemma)}.k-definition{--kind-color: var(--kind-definition)}.k-proposition{--kind-color: var(--kind-proposition)}.k-theorem{--kind-color: var(--kind-theorem)}.k-other{--kind-color: var(--kind-other)}.k-city-other{--kind-color: var(--city-dull)}.graph-hover{position:absolute;display:grid;gap:var(--ds-space-1);max-width:300px;padding:var(--ds-space-2) var(--ds-space-3);border:var(--ds-border-width) solid var(--ds-color-line-strong);background:var(--ds-color-surface);color:var(--ds-color-ink);font-size:var(--ds-size-meta-compact);pointer-events:none}.graph-hover strong{font-weight:var(--ds-weight-heading);color:var(--ds-color-heading)}.graph-hover small{color:var(--ds-color-muted);font-size:inherit}.graph-statement{display:block;width:100%;height:40vh;border:var(--ds-border-width) solid var(--ds-color-line);background:#fff}.graph-close{position:absolute;top:12px;right:14px;width:28px;height:28px;border:0;background:transparent;color:var(--ds-color-muted);font-size:24px;cursor:pointer}.graph-tag-title{font:400 22px/1.3 var(--ds-font-serif);margin:0}.graph-stage{position:relative;min-height:0;overflow:hidden;background:var(--ds-color-surface)}.graph-stage.is-loading::before{content:"";position:absolute;top:calc(50% - 36px);left:calc(50% - 14px);width:28px;height:28px;border:2px solid var(--ds-color-line);border-top-color:var(--ds-color-accent);border-radius:50%;animation:graph-spin 900ms linear infinite}.graph-stage.is-loading::after{content:"Loading the dependency graph…";position:absolute;top:calc(50% + 8px);left:0;right:0;text-align:center;color:var(--ds-color-muted);font-size:var(--ds-size-body)}@keyframes graph-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.graph-stage.is-loading::before,:is(.statement-column,#graph-inspector-detail):has(>iframe.is-loading)::before{animation-duration:3s}}.statement-column{--frame-area: 2 / 1}#graph-inspector-detail{--frame-area: 4 / 1}:is(.statement-column,#graph-inspector-detail)>iframe{grid-area:var(--frame-area)}iframe.is-loading{visibility:hidden}:is(.statement-column,#graph-inspector-detail):has(>iframe.is-loading)::before{content:"";grid-area:var(--frame-area);place-self:center;width:28px;height:28px;margin-bottom:44px;border:2px solid var(--ds-color-line);border-top-color:var(--ds-color-accent);border-radius:50%;animation:graph-spin 900ms linear infinite}:is(.statement-column,#graph-inspector-detail):has(>iframe.is-loading)::after{content:"Loading the Stacks Project page…";grid-area:var(--frame-area);place-self:center;margin-top:36px;color:var(--ds-color-muted);font-size:var(--ds-size-meta)}:root[data-theme=dark] :is(.statement-column,#graph-inspector-detail)>iframe{padding:var(--ds-space-3);background:var(--ds-color-surface)}::view-transition-old(root),::view-transition-new(root){animation-duration:180ms}.topnav{view-transition-name:topnav}html.map-move .graph-stage{view-transition-name:graph-stage}html.map-move #view-home{view-transition-name:home-copy}::view-transition-old(home-copy){animation-duration:180ms}::view-transition-new(home-copy){animation:-ua-view-transition-fade-in 320ms 60ms both}::view-transition-group(topnav),::view-transition-group(graph-stage){animation:none}::view-transition-old(topnav),::view-transition-old(graph-stage){display:none}::view-transition-new(topnav),::view-transition-new(graph-stage){animation:none}#dependency-canvas{display:block;width:100%;height:100%;outline:0;cursor:grab;touch-action:none}#dependency-canvas.dragging{cursor:grabbing}.graph-stage.is-city #dependency-canvas,.city-canvas[hidden]{display:none}.graph-stage.is-city.is-moving #dependency-canvas{display:block}.graph-stage.is-city{background:var(--city-sky-horizon)}.graph-stage.is-city.is-moving{background:var(--city-surface)}.city-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;outline:0;cursor:grab;touch-action:none}.graph-inspector{position:relative;display:flex;flex-direction:column;gap:var(--ds-space-5);padding:42px var(--ds-space-5) var(--ds-space-5);overflow:auto;border-left:var(--ds-border-width) solid var(--ds-color-line)}.graph-inspector .edge-key{flex-direction:column;padding-bottom:var(--ds-space-5);border-bottom:var(--ds-border-width) solid var(--ds-color-line);font-size:var(--ds-size-meta)}#graph-inspector-detail{display:grid;gap:var(--ds-space-3)}#graph-inspector-detail .tag-title{font-size:28px;line-height:1.1}.counts{margin:var(--ds-space-2) 0;border-top:var(--ds-border-width) solid var(--ds-color-line)}.counts details{border-bottom:var(--ds-border-width) solid var(--ds-color-line);font-size:var(--ds-size-meta)}.counts summary{display:flex;align-items:center;gap:var(--ds-space-2);padding:var(--ds-space-2) 0;color:var(--ds-color-muted);cursor:pointer;list-style:none}.counts summary::-webkit-details-marker{display:none}.counts summary:hover,.counts details[open] summary{color:var(--ds-color-ink)}.counts summary::before{content:"";-webkit-mask-size:12px;mask-size:12px;transform:rotate(-90deg)}.counts details[open] summary::before{transform:none}.counts details:has(>.tag-list:empty) summary{pointer-events:none}.counts details:has(>.tag-list:empty) summary::before{visibility:hidden}.counts summary span{color:var(--ds-color-ink);font-family:var(--ds-font-mono);font-variant-numeric:tabular-nums}.tag-list{display:flex;flex-wrap:wrap;gap:var(--ds-space-1) var(--ds-space-3);max-height:240px;margin:0;padding:0 0 var(--ds-space-3);overflow:auto;font-family:var(--ds-font-mono);font-size:var(--ds-size-meta-compact)}.tag-list:empty{display:none}.tag-list a{color:var(--ds-color-ink);text-decoration:none}.tag-list a:hover{color:var(--ds-color-accent);text-decoration:underline}.entity-neighbours{position:relative;flex:none;margin:0;padding:0 var(--ds-space-5);font-size:var(--ds-size-meta)}.entity-neighbours[open] summary{color:var(--ds-color-ink)}.entity-neighbours[open] summary::before{transform:none}.entity-neighbours summary{display:grid;grid-template-columns:12px repeat(4,minmax(0,1fr));gap:var(--ds-space-2) var(--ds-space-5)}.entity-neighbours summary>span{display:flex;gap:var(--ds-space-2);color:inherit;font-family:inherit}.entity-neighbours:not(:has(.tag-list:not(:empty))) summary{pointer-events:none}.entity-neighbours:not(:has(.tag-list:not(:empty))) summary::before{visibility:hidden}.neighbour-lists{position:absolute;z-index:5;right:0;bottom:100%;left:0;display:grid;grid-template-columns:12px repeat(4,minmax(0,1fr));gap:var(--ds-space-4) var(--ds-space-5);max-height:min(360px,60vh);padding:var(--ds-space-4) var(--ds-space-5);overflow-y:auto;border:var(--ds-border-width) solid var(--ds-color-line);border-radius:var(--ds-radius-sm);background:var(--ds-color-surface);box-shadow:var(--ds-shadow-menu)}.neighbour-lists>section:first-child{grid-column:2}.neighbour-lists h3{display:none;margin:0 0 var(--ds-space-2);color:var(--ds-color-muted);font-size:var(--ds-size-meta);font-weight:400}.neighbour-lists .tag-list{max-height:none;padding:0;overflow:visible}.graph-inspector-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--ds-space-3)}.graph-inspector-head .ds-button{min-height:32px;padding:0 var(--ds-space-3)}.tasks-section{margin-top:44px}.tasks-heading-row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.tasks-heading-row h2{font:400 32px/1.16 var(--ds-font-serif);letter-spacing:-.6px;margin-top:6px}.tasks-heading-row>a{font-size:12px;flex:none}.tasks-lede{margin-top:16px;max-width:91ch;color:var(--ds-color-muted);font-size:14px;line-height:1.6}.tasks-summary{padding-block:18px;margin-top:8px;color:var(--ds-color-ink);font-size:12px;font-variant-numeric:tabular-nums}.tasks-toolbar{display:flex;gap:10px;padding:14px 0 18px;border-top:1px solid var(--ds-color-line)}.tasks-toolbar>input{flex:1;min-width:180px}.tasks-toolbar>.select{flex:0 1 208px;min-width:160px}.tasks-toolbar>.tasks-topic-filter{flex:0 1 280px}.tasks-workbench{display:grid;grid-template-columns:220px minmax(270px,.85fr) minmax(0,1.4fr);height:clamp(610px,calc(100dvh - 340px),900px);border:1px solid var(--ds-color-line)}.tasks-topics{padding:16px 10px;overflow:auto;background:var(--ds-color-canvas)}.tasks-topic{display:flex;align-items:baseline;justify-content:space-between;gap:10px;width:100%;padding:10px;border:0;border-left:2px solid transparent;background:transparent;text-align:left;font:400 12px/1.5 var(--ds-font-sans);cursor:pointer}.tasks-topic.selected{border-left-color:var(--ds-color-accent);background:color-mix(in srgb,var(--ds-color-accent) 6%,var(--ds-color-surface));color:var(--ds-color-accent)}.tasks-topic:hover{background:color-mix(in srgb,var(--ds-color-accent) 4%,var(--ds-color-surface))}.tasks-topic-count{color:var(--ds-color-muted);font-size:var(--ds-size-meta-compact);font-variant-numeric:tabular-nums}.tasks-topic-group{margin-top:24px}.tasks-topic-group h3{margin:0 10px 7px;font:600 13px/1.5 var(--ds-font-sans);color:var(--ds-color-heading)}.tasks-results{min-width:0;min-height:0;display:flex;flex-direction:column;border-inline:1px solid var(--ds-color-line)}.tasks-results-count{padding:16px 18px;border-bottom:1px solid var(--ds-color-line);font-size:12px;line-height:1.5;color:var(--ds-color-muted)}.tasks-list{min-height:0;overflow:auto}.task-row{display:flex;flex-direction:column;gap:10px;width:100%;padding:20px;border:0;border-bottom:1px solid var(--ds-color-line);border-left:2px solid transparent;background:var(--ds-color-surface);text-align:left;cursor:pointer}.task-row:hover{background:var(--ds-color-canvas)}.task-row.selected{background:color-mix(in srgb,var(--ds-color-accent) 5%,var(--ds-color-surface));border-left-color:var(--ds-color-accent)}.task-row-title{font:400 20px/1.24 var(--ds-font-serif);letter-spacing:-.2px}.task-row-goal{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font:400 12px/1.6 var(--ds-font-sans);color:var(--ds-color-muted)}.task-row-id{font:400 12px/1.5 var(--ds-font-mono);color:var(--ds-color-accent);overflow-wrap:anywhere}.tasks-more{margin:12px 18px;padding:10px 0;border:0;background:none;color:var(--ds-color-accent);text-decoration:underline;cursor:pointer;font-size:13px}.tasks-empty{padding:24px;color:var(--ds-color-muted);font-size:13px}.tasks-detail{min-width:0;overflow:auto;padding:26px clamp(20px,2.5vw,42px) 40px}.task-detail-meta{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.task-topic-label{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:22px;color:var(--ds-color-muted);font-size:12px}.task-detail-heading h2{margin-top:7px;font:400 32px/1.15 var(--ds-font-serif);letter-spacing:-.7px;overflow-wrap:anywhere}.task-detail-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:23px}.task-detail-actions .ds-button{min-height:36px;font-size:13px;padding-inline:12px}.task-detail-actions .ds-button:disabled{opacity:.55;cursor:wait}.task-section{margin-top:28px;border-top:1px solid var(--ds-color-line);padding-top:18px}.task-section>h3{margin-bottom:12px;font:600 13px/1.5 var(--ds-font-sans)}.task-goal{font:400 20px/1.55 var(--ds-font-serif)}.task-small{margin-top:12px;color:var(--ds-color-muted);font-size:12px;line-height:1.65;overflow-wrap:anywhere}.task-reference{font:400 16px/1.6 var(--ds-font-serif)}.task-reference+.task-reference{margin-top:16px}.task-reference-title{font:400 16px/1.4 var(--ds-font-serif);text-decoration-thickness:1px;text-underline-offset:3px}.task-more-reading{font-size:12px;color:var(--ds-color-muted)}.task-more-reading summary{cursor:pointer}.task-more-reading .task-reference{margin-top:18px}.tasks-workflow{padding:20px 0;border-bottom:1px solid var(--ds-color-line);font-size:13px}.tasks-workflow>summary{cursor:pointer;font-weight:600}.task-workflow-steps{max-width:90ch;line-height:1.8;padding-left:20px}.task-workflow-steps li+li{margin-top:8px}.task-claim-dialog{width:min(820px,calc(100vw - 32px));max-height:90dvh;overflow:auto;padding:28px;border:1px solid var(--ds-color-line);color:var(--ds-color-ink);background:var(--ds-color-surface);box-shadow:var(--ds-shadow-menu)}.task-claim-dialog::backdrop{background:#12233d60}.task-claim-heading{display:flex;justify-content:space-between;gap:24px;margin-bottom:18px}.task-claim-heading h2{font:400 27px/1.2 var(--ds-font-serif);margin-top:5px}.task-claim-heading>button{flex:none}.task-claim-dialog>p{margin-top:12px;font-size:12px;line-height:1.7}.task-claim-dialog>label{display:block;margin-top:20px;font-size:12px;font-weight:600}.task-claim-dialog textarea{width:100%;min-height:300px;margin-top:8px;padding:14px;resize:vertical;border:1px solid var(--ds-color-line);background:var(--ds-color-canvas);color:var(--ds-color-ink);font:12px/1.7 var(--ds-font-mono)}.task-claim-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.task-claim-actions .ds-button{font-size:13px}@media(max-width:1100px){.tasks-workbench{grid-template-columns:minmax(270px,.85fr) minmax(0,1.4fr)}.tasks-topics{display:none}.tasks-toolbar{flex-wrap:wrap}.tasks-toolbar>input{flex-basis:100%}.tasks-toolbar>.tasks-topic-filter{display:flex;flex:1 1 200px}.tasks-toolbar>.select{min-width:130px;flex:1 1 150px}.tasks-results{border-left:0}}@media(max-width:720px){.tasks-heading-row{display:block}.tasks-heading-row>a{display:inline-flex;margin-top:16px}.tasks-heading-row h2{font-size:29px}.tasks-summary{line-height:1.8;font-size:12px}.tasks-workbench{display:block;height:auto;min-height:0}.tasks-results{border-right:0;border-bottom:1px solid var(--ds-color-line)}.tasks-list{max-height:310px}.tasks-detail{max-height:none;padding:24px 18px 32px}.task-detail-heading h2{font-size:29px}.task-row{padding:16px}.task-claim-dialog{padding:20px}.task-claim-heading h2{font-size:23px}}.exercises-toolbar>.select{flex:0 1 180px;min-width:140px}.exercises-toolbar>.exercises-chapter-filter{flex:0 1 260px}.page-head .page-lede{max-width:70ch}.page-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin:20px 0 24px;padding:0;list-style:none;counter-reset:step}.page-steps li{counter-increment:step;display:flex;flex-direction:column;gap:6px;padding-top:14px;border-top:1px solid var(--ds-color-line);position:relative}.page-steps li::after{content:"";position:absolute;top:-1px;left:0;width:32px;height:2px;background:var(--ds-color-accent)}.page-steps .step-title{display:flex;align-items:baseline;gap:10px;font:400 19px/1.2 var(--ds-font-serif);color:var(--ds-color-heading);letter-spacing:-.2px}.page-steps .step-text{font-size:13px;line-height:1.6;color:var(--ds-color-muted)}.page-steps code{font-size:12px}.how-to{margin:28px 0 6px}.how-to .contrib-note{font-size:15px;color:var(--ds-color-ink)}.how-to .contrib-note+.contrib-note,.how-to .contrib-list+.contrib-note{margin-top:12px}.contrib-list{margin:6px 0 0;padding-left:1.4em;font-size:15px;line-height:1.7;color:var(--ds-color-ink)}.contrib-list code{font-size:13px}.how-to .page-steps .step-title{font-size:21px}.how-to .page-steps .step-text{font-size:15px}.how-to .page-steps code,.how-to .contrib-note code{font-size:13px}.how-to>summary{display:inline-flex;align-items:center;gap:var(--ds-space-2);padding:var(--ds-space-2) 0;cursor:pointer;list-style:none;font:500 15px/1.3 var(--ds-font-sans);color:var(--ds-color-accent)}.how-to>summary:hover{text-decoration:underline}.how-to>summary::-webkit-details-marker{display:none}.how-to>summary::before{content:"";transform:rotate(-90deg)}.how-to[open]>summary::before{transform:none}.how-to-body{margin-top:16px;padding:0 0 4px}.how-to .page-steps{margin-top:22px}.how-to-links{margin-top:12px}.grouped-workbench{grid-template-columns:minmax(300px,400px) minmax(0,1fr);height:clamp(560px,calc(100dvh - 300px),900px)}.grouped-workbench .tasks-results{border-left:0}.grouped-workbench .tasks-results-count{padding:10px 16px}@media(max-width:720px){.grouped-workbench{height:auto}}.contrib-note{max-width:70ch;margin-top:0;font-size:13px;line-height:1.6;color:var(--ds-color-muted)}.contrib-page .tasks-section{margin-top:40px}.contrib-page .tasks-section .contrib-note{margin:6px 0 14px;color:var(--ds-color-ink);font-size:15px;max-width:none}.summary-line{display:block}.contrib-page .contributors-section{margin-top:48px}.task-row.compact-row{gap:3px;padding:9px 16px}.compact-row .task-row-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.compact-row .task-row-title{font-size:15px}.compact-row .task-row-id{flex:none;white-space:nowrap}.compact-row .task-row-goal{-webkit-line-clamp:1;font-size:12px;line-height:1.5}.group-domain{padding:18px 16px 8px;font:400 17px/1.3 var(--ds-font-serif);color:var(--ds-color-heading)}.group-head{position:sticky;top:0;z-index:1;display:flex;align-items:baseline;justify-content:space-between;gap:12px;width:100%;padding:11px 16px;border:0;border-bottom:1px solid var(--ds-color-line);background:var(--ds-color-surface);text-align:left;cursor:pointer;font:500 13px/1.4 var(--ds-font-sans);color:var(--ds-color-heading)}.group-head:hover{background:var(--ds-color-canvas)}.group-head.open{background:var(--ds-color-canvas);font-weight:600}.group-name{display:flex;align-items:center;gap:var(--ds-space-2)}.group-name::before{content:"";color:var(--ds-color-muted);transform:rotate(-90deg)}.group-head.open .group-name::before{transform:none}.exercise-row{gap:3px;padding:9px 16px}.exercise-row-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.exercise-row .task-row-title{font-size:15px}.exercise-row .exercise-row-meta{flex-wrap:nowrap;gap:12px;align-items:baseline}.exercise-row-section{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exercise-row .exercise-difficulty{flex:none;font-size:12px}.exercise-done{flex:none;color:var(--ds-color-accent)}@media(max-width:900px){.page-steps{grid-template-columns:1fr;gap:20px}}.exercise-row-meta{display:flex;flex-wrap:wrap;gap:4px 16px;color:var(--ds-color-muted);font-size:12px;line-height:1.5}.exercise-row-meta .task-row-id{font-size:12px}.exercise-difficulty{color:var(--ds-color-muted)}.exercise-statement{max-width:68ch;font:400 17px/1.6 var(--ds-font-serif);color:var(--ds-color-ink);hyphens:auto;overflow-wrap:break-word}.exercise-statement p{margin:0 0 .75em}.statement-credit.exercise-credit{padding:0;margin-top:var(--ds-space-3);color:var(--ds-color-muted);font-size:12px}.exercise-credit a{color:inherit}.exercise-note{max-width:68ch;margin:0;font:400 16px/1.6 var(--ds-font-serif);color:var(--ds-color-ink);overflow-wrap:break-word}.exercise-note mjx-container{overflow-x:auto;overflow-y:hidden;max-width:100%}.exercise-statement>:last-child,.exercise-statement li>:last-child{margin-bottom:0}.exercise-statement ol,.exercise-statement ul{margin:0 0 .75em;padding-left:2.4em}.exercise-statement ol{list-style:none;counter-reset:stacks-item}.exercise-statement ol>li{position:relative;counter-increment:stacks-item}.exercise-statement ol>li::before{content:"(" counter(stacks-item) ")";position:absolute;right:calc(100% + .6em);white-space:nowrap}.exercise-statement ol>li[data-marker]::before{content:attr(data-marker)}.exercise-statement li{margin:0 0 .45em}.exercise-statement li p{margin-bottom:.45em}.exercise-statement a{color:var(--ds-color-accent);text-decoration:none}.exercise-statement a:hover{text-decoration:underline}.exercise-statement .equation{margin:.6em 0 .9em;overflow-x:auto;overflow-y:hidden}.exercise-statement .footnotes{margin-top:1.1em;padding-top:.6em;border-top:1px solid var(--ds-color-line);font-size:14px;color:var(--ds-color-muted)}.exercise-statement .footnotes p{margin-bottom:.35em}.exercise-statement sup{line-height:0}.exercise-statement mjx-container[display=true]{margin:.4em 0!important;overflow-x:auto;overflow-y:hidden}@media(max-width:1100px){.exercises-toolbar>.exercises-chapter-filter{display:flex}.exercises-toolbar>.select{flex:1 1 150px;min-width:130px}}.library-shell{display:grid;min-height:0;flex:1;grid-template-columns:var(--site-index-width) minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.library-shell.index-collapsed{grid-template-columns:minmax(0,1fr)}.library-shell.index-collapsed .entity-index{display:none}.entity-index{min-height:0;overflow:auto;border-right:var(--ds-border-width) solid var(--ds-color-line)}.result-summary{position:sticky;z-index:2;top:0;padding:var(--ds-space-2) var(--ds-space-4);border-bottom:var(--ds-border-width) solid var(--ds-color-line);color:var(--ds-color-muted);background:var(--ds-color-surface);font-size:var(--ds-size-meta-compact)}.result-summary span+span{margin-left:var(--ds-space-4)}.chapter-group{border-bottom:var(--ds-border-width) solid var(--ds-color-line)}.chapter-group>summary,.section-group>summary{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:var(--ds-space-2);cursor:pointer;list-style:none}.chapter-group>summary::-webkit-details-marker,.section-group>summary::-webkit-details-marker{display:none}.chapter-group>summary::before,.section-group>summary::before{content:"";align-self:flex-start;height:1lh;-webkit-mask-size:12px;mask-size:12px;color:var(--ds-color-muted);transform:rotate(-90deg)}.chapter-group[open]>summary::before,.section-group[open]>summary::before{transform:none}.chapter-group>summary{padding:var(--ds-space-2) var(--ds-space-4);font-family:var(--ds-font-serif);font-size:16px;font-weight:var(--ds-weight-heading)}.chapter-number{display:inline-block;min-width:2.2ch;margin-right:var(--ds-space-2);color:var(--ds-color-muted);font-variant-numeric:tabular-nums}.chapter-group summary small,.section-group summary small{color:var(--ds-color-muted);font-family:var(--ds-font-sans);font-size:var(--ds-size-meta-compact);font-variant-numeric:tabular-nums}.chapter-group>summary:hover,.section-group>summary:hover{background:var(--ds-hover-surface)}.chapter-body{border-top:var(--ds-border-width) solid var(--ds-color-line)}.section-group>summary{padding:var(--ds-space-2) var(--ds-space-4) var(--ds-space-2) var(--ds-space-6);color:var(--ds-color-muted);font-family:var(--ds-font-serif);font-size:15px}.section-group[open]>summary{color:var(--ds-color-ink)}.search-group-label{padding:var(--ds-space-2) var(--ds-space-4);border-bottom:var(--ds-border-width) solid var(--ds-color-line);color:var(--ds-color-muted);font-family:var(--ds-font-serif);font-size:14px;display:grid;grid-template-columns:auto minmax(0,1fr)}.result-item{display:grid;width:100%;grid-template-columns:5ch minmax(0,1fr);align-items:baseline;gap:var(--ds-space-3);padding:var(--ds-space-2) var(--ds-space-4);border:0;border-bottom:var(--ds-border-width) solid var(--ds-color-line);background:transparent;text-align:left;cursor:pointer}.section-group .result-item{padding-left:var(--ds-space-7)}.result-item:hover{background:var(--ds-hover-surface)}.result-item.active{background:var(--ds-color-surface-subtle);box-shadow:inset 2px 0 var(--ds-color-accent)}.result-tag{color:var(--tag-color, var(--ds-color-accent));font-family:var(--ds-font-mono);font-size:13px;font-weight:600}.result-snippet{grid-column:2;color:var(--ds-color-ink);font-family:var(--ds-font-serif);font-size:var(--ds-size-meta);line-height:1.45}mark{background:color-mix(in srgb,var(--ds-color-accent) 14%,transparent);color:inherit}.result-item small{overflow:hidden;color:var(--ds-color-muted);font-size:var(--ds-size-meta-compact);text-overflow:ellipsis;white-space:nowrap}.entity-workspace{display:flex;min-width:0;min-height:0;flex-direction:column}.empty-state{display:grid;flex:1;place-items:center;padding:var(--ds-space-7) var(--site-gutter);color:var(--ds-color-muted);font-size:var(--ds-size-meta);text-align:center}.empty-state p{margin:0}.empty-state[hidden]{display:none}#entity-detail{display:flex;min-height:0;flex:1;flex-direction:column}.entity-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--ds-space-4) var(--ds-space-5);padding:var(--ds-space-5);border-bottom:var(--ds-border-width) solid var(--ds-color-line)}.entity-header .meta{margin-bottom:var(--ds-space-2)}.entity-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--ds-space-1) var(--ds-space-4)}.entity-title .tag-title{font-size:28px}.section-title{color:var(--ds-color-ink);font-family:var(--ds-font-serif);font-size:22px;font-weight:var(--ds-weight-heading);line-height:1.2}.entity-sources{display:contents}.entity-sources[hidden]{display:none}.entity-source{color:var(--ds-color-ink);font-family:var(--ds-font-serif);font-size:14px;font-weight:400;text-decoration:none;border-bottom:1px dotted color-mix(in srgb,var(--ds-color-muted) 70%,transparent)}.entity-source sub{font-size:70%;line-height:0;vertical-align:-0.15em}a.entity-source:hover{color:var(--ds-color-accent);border-bottom-color:currentColor}a.entity-source::after{content:"↗";margin-left:2px;color:var(--ds-color-muted);font-family:var(--ds-font-sans);font-size:10px}.workspace-grid{display:grid;min-height:0;flex:1;grid-template-areas:"statement code";grid-template-columns:var(--statement-width, minmax(0, 1fr)) minmax(0,1.25fr);grid-template-rows:minmax(0,1fr)}.workspace-grid.is-resizing iframe{pointer-events:none}.statement-column{position:relative;display:grid;grid-area:statement;min-width:0;min-height:0;grid-template-rows:auto minmax(0,1fr);border-right:var(--ds-border-width) solid var(--ds-color-line)}.workspace-resize{position:absolute;z-index:3;top:0;right:-4px;bottom:0;width:8px;cursor:col-resize;touch-action:none}.workspace-resize:hover,.workspace-resize:focus-visible{outline:0;box-shadow:inset -4px 0 0 -2px var(--ds-color-accent)}#graph-inspector-detail{position:relative}.frame-away{position:absolute;z-index:4;display:flex;flex-wrap:wrap;align-items:center;gap:var(--ds-space-2);padding:var(--ds-space-2) var(--ds-space-3);border:var(--ds-border-width) solid var(--ds-color-line);background:var(--ds-color-surface);color:var(--ds-color-ink);font-size:var(--ds-size-meta)}.frame-away[hidden]{display:none}.statement-frame{display:block;width:100%;height:100%;min-height:0;border:0;background:#fff}.code-column{display:flex;grid-area:code;min-width:0;min-height:0;flex-direction:column}.panel-heading{display:flex;min-height:48px;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--ds-space-2) var(--ds-space-4);padding:var(--ds-space-2) var(--ds-space-5);border-bottom:var(--ds-border-width) solid var(--ds-color-line)}#source-location{display:block;flex:1 1 100%;min-width:0;overflow-wrap:anywhere}.decl-pager{display:flex;flex:1 1 100%;min-width:0;align-items:center;gap:var(--ds-space-3)}.decl-tabs{position:relative;display:flex;flex:1;min-width:0;gap:var(--ds-space-1);overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}.decl-tabs::-webkit-scrollbar{display:none}.decl-tab{flex:none;max-width:100%;padding:var(--ds-space-1) var(--ds-space-2);border:var(--ds-border-width) solid var(--ds-color-line);border-radius:var(--ds-radius-sm);color:var(--ds-color-muted);background:var(--ds-color-surface);cursor:pointer;font-family:var(--ds-font-mono);font-size:13px;overflow-wrap:anywhere;scroll-snap-align:start;text-align:left}.decl-pages{display:flex;flex:none;gap:var(--ds-space-1)}.decl-pages[hidden]{display:none}.decl-page-button{display:grid;width:28px;height:28px;place-items:center;border:var(--ds-border-width) solid var(--ds-color-line);border-radius:var(--ds-radius-sm);color:var(--ds-color-muted);background:var(--ds-color-surface);cursor:pointer}.decl-page-button:hover:not(:disabled){border-color:var(--ds-hover-border);color:var(--ds-hover-text)}.decl-page-button:disabled{opacity:.4;cursor:default}#decl-prev .caret{transform:rotate(90deg)}#decl-next .caret{transform:rotate(-90deg)}.decl-tab:hover{border-color:var(--ds-hover-border);color:var(--ds-hover-text)}.decl-tab.active{border-color:var(--ds-color-accent);color:var(--ds-color-accent);background:var(--ds-color-surface-subtle)}.lean-code{min-height:0;flex:1;margin:0;overflow:auto;padding:var(--ds-space-3) 0;color:var(--ds-color-ink);background:var(--ds-color-surface);font:13px/1.62 var(--ds-font-mono);tab-size:2}.lean-code code{font:inherit}.source-view .ds-container{padding-block:var(--ds-space-6)}.source-file-path{margin:0 0 var(--ds-space-4);font:500 15px/1.4 var(--ds-font-mono);overflow-wrap:anywhere}.source-file{overflow-x:auto;border:var(--ds-border-width) solid var(--ds-color-line);border-radius:var(--ds-radius-sm)}.code-line.is-cited{background:color-mix(in srgb,var(--ds-color-accent) 12%,transparent)}.lean-code.is-message{padding:var(--ds-space-4) var(--ds-space-5);color:var(--ds-color-muted);font-family:var(--ds-font-sans);font-size:var(--ds-size-meta);white-space:pre-wrap}.code-line{display:grid;grid-template-columns:56px minmax(0,1fr)}.code-line:hover{background:var(--ds-color-surface-subtle)}.code-line-number{padding-right:var(--ds-space-3);border-right:var(--ds-border-width) solid var(--ds-color-line);color:var(--ds-color-muted);text-align:right;user-select:none}.code-line-source{--hang: calc(var(--indent, 0ch) + 4ch);display:block;padding:0 var(--ds-space-5) 0 calc(var(--ds-space-5) + var(--hang));text-indent:calc(-1 * var(--hang));white-space:pre-wrap;overflow-wrap:anywhere}.code-line-source[data-indent="2"]{--indent: 2ch}.code-line-source[data-indent="4"]{--indent: 4ch}.code-line-source[data-indent="6"]{--indent: 6ch}.code-line-source[data-indent="8"]{--indent: 8ch}.code-line-source[data-indent="10"]{--indent: 10ch}.code-line-source[data-indent="12"]{--indent: 12ch}.code-line-source[data-indent="14"]{--indent: 14ch}.code-line-source[data-indent="16"]{--indent: 16ch}.code-line-source[data-indent="18"]{--indent: 18ch}.code-line-source[data-indent="20"]{--indent: 20ch}.code-line-source[data-indent="22"]{--indent: 22ch}.code-line-source[data-indent="24"]{--indent: 24ch}.tok-keyword{color:var(--code-keyword);font-weight:600}.tok-tactic{color:var(--ds-color-accent)}.tok-string{color:var(--ds-color-diagram-green)}.tok-number{color:var(--ds-color-danger-strong)}.tok-type{color:var(--ds-color-diagram-green)}.lean-ref{color:inherit;text-decoration:none;text-underline-offset:3px}.lean-ref:hover{color:var(--ds-color-accent);text-decoration:underline}.is-mathlib{--tag-color: var(--status-mathlib)}.is-not-applicable{--tag-color: var(--status-not-applicable)}.small-copy{color:var(--ds-color-muted);font-size:var(--ds-size-meta-compact)}#view-contributing .home-heading{margin-top:var(--ds-space-7, 48px);font:400 26px/1.2 var(--ds-font-serif);letter-spacing:-.4px}.contrib-text{max-width:var(--ds-reading-measure);margin-top:var(--ds-space-3);color:var(--ds-color-ink);line-height:1.6}.step-title{color:var(--ds-color-heading);font-family:var(--ds-font-sans);font-size:16px;font-weight:600;line-height:1.4}.page-lede{max-width:var(--ds-reading-measure);margin-top:var(--ds-space-4);font-size:var(--ds-size-body);line-height:1.6}.ds-icon-button{width:32px;height:32px;font-size:22px;line-height:1}@media(max-width:1050px){#entity-detail{overflow-y:auto}.workspace-grid{flex:none;grid-template-areas:"statement" "code";grid-template-columns:1fr;grid-template-rows:auto auto}.statement-column{border-right:0;border-bottom:var(--ds-border-width) solid var(--ds-color-line)}.statement-frame{height:50vh}.workspace-resize,.index-toggle{display:none}.library-shell.index-collapsed{grid-template-columns:var(--site-index-width) minmax(0,1fr)}.library-shell.index-collapsed .entity-index{display:block}.lean-code{flex:none;max-height:60vh}.entity-neighbours summary{grid-template-columns:12px repeat(2,minmax(0,1fr))}.entity-neighbours summary>span:nth-child(odd){grid-column:2}.neighbour-lists{grid-template-columns:12px repeat(2,minmax(0,1fr))}.neighbour-lists>section:nth-child(odd){grid-column:2}.neighbour-lists h3{display:block}.library-shell{grid-template-columns:264px minmax(0,1fr)}.home-hero{height:auto}.home-intro{position:relative;width:auto;padding:var(--ds-space-7) var(--ds-gutter);overflow:visible}html.home #view-graph{display:none}html.home #view-home{position:static;pointer-events:auto}}@media(max-width:880px){:root{--site-fold: calc(100dvh - 56px - var(--ds-border-width))}.topnav-inner{height:56px}.logo{width:96px;height:36px}.topnav-end{gap:var(--ds-space-4)}.theme-toggle{margin-left:0}.nav-toggle{display:inline-flex}.site-menu{position:fixed;z-index:49;inset:57px 0 0;display:flex;flex-direction:column;justify-content:center;gap:var(--ds-space-6);padding:var(--ds-space-6) var(--ds-gutter);overflow-y:auto;background:var(--ds-color-surface);visibility:hidden;opacity:0;pointer-events:none;transition:opacity var(--ds-duration-base) var(--ds-ease-standard),visibility 0s linear var(--ds-duration-base)}html.menu-open .site-menu{visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s}html.menu-open body{overflow:hidden}.site-menu .navlinks{flex-direction:column;align-items:center;align-self:auto;gap:var(--ds-space-2)}.site-menu .navlinks a{padding-block:var(--ds-space-2);border-bottom:0;color:var(--ds-color-ink);font-family:var(--ds-font-serif);font-size:clamp(28px,7vw,36px);letter-spacing:-0.02em}.site-menu .navlinks a[aria-current=page]{color:var(--ds-color-accent)}.site-menu .navlinks-out a{color:var(--ds-color-muted);font-family:inherit;font-size:17px;letter-spacing:0}}@media(max-width:720px){.graph-search{max-width:none}.graph-view.active{display:flex;min-height:var(--site-fold)}.graph-view.active .graph-shell{display:flex;flex:1;flex-direction:column}.graph-view.active .graph-stage{flex:1 0 auto}.graph-head{gap:var(--ds-space-3);padding-block:var(--ds-space-5) var(--ds-space-4)}.graph-head-main{gap:var(--ds-space-4)}.graph-head-aside{display:none}.graph-head .ds-toolbar{flex-direction:column;align-items:stretch}.graph-search-row{display:flex;order:-1;gap:var(--ds-space-3)}.graph-search-row .graph-search{flex:1}.graph-search input{height:44px}.graph-filters-open{display:inline-flex;flex:none;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:var(--ds-border-width) solid var(--ds-color-line);border-radius:var(--ds-radius-sm);background:var(--ds-color-canvas);color:var(--ds-color-ink);cursor:pointer}.graph-filters-open svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round}.graph-filters-open[aria-expanded=true]{border-color:var(--ds-color-ink)}.graph-modes button{height:42px}.graph-sheet-backdrop:not([hidden]){display:block;position:fixed;z-index:60;inset:0;background:rgb(0 0 0 / 0.32)}.graph-sheet:not([hidden]){display:flex;position:fixed;z-index:61;inset:auto 0 0;max-height:min(78dvh,640px);flex-direction:column;border-top:var(--ds-border-width) solid var(--ds-color-line);border-radius:16px 16px 0 0;background:var(--ds-color-surface);box-shadow:0 -12px 32px rgb(0 0 0 / 0.18)}html.sheet-open body{overflow:hidden}.graph-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:var(--ds-space-4) var(--site-gutter);border-bottom:var(--ds-border-width) solid var(--ds-color-line)}.graph-sheet-head h2{margin:0;color:var(--ds-color-heading);font:600 18px var(--ds-font-sans)}.graph-sheet-close{width:36px;height:36px;border:0;border-radius:50%;background:var(--ds-color-canvas);color:var(--ds-color-ink);font-size:22px;line-height:1;cursor:pointer}.graph-sheet-body{display:grid;gap:var(--ds-space-5);padding:var(--ds-space-5) var(--site-gutter);overflow-y:auto}.graph-sheet-body h3{margin:0 0 var(--ds-space-3);color:var(--ds-color-ink);font:500 15px var(--ds-font-sans)}.graph-sheet-body .graph-trail{flex-wrap:nowrap}.graph-sheet-body .graph-trail-next{flex:1;width:auto}.graph-sheet-body .edge-key{gap:var(--ds-space-3) var(--ds-space-5);color:var(--ds-color-ink);font-size:15px}.graph-sheet-body .edge-key input{width:18px;height:18px;margin:0}.graph-sheet-body .graph-kind-key{gap:var(--ds-space-3) var(--ds-space-5);font-size:15px}.graph-sheet-foot{display:grid;grid-template-columns:1fr 1fr;gap:var(--ds-space-3);padding:var(--ds-space-4) var(--site-gutter) calc(var(--ds-space-4) + env(safe-area-inset-bottom));border-top:var(--ds-border-width) solid var(--ds-color-line)}.graph-sheet-foot .ds-button{height:44px;justify-content:center}.graph-trail{flex:1 1 100%}.ds-title,.home-intro .ds-title{font-size:34px}.home-stats{grid-template-columns:repeat(3,max-content);justify-content:space-between}.home-stats>div{padding-right:0}.home-stats dd{font-size:26px}.home-actions .hero-cta{width:100%}.graph-trail-next{flex:1;min-width:0}.library-view.active{display:block;height:auto;min-height:0}.graph-view.active{height:auto}.graph-shell{display:block}.graph-modes{width:100%;justify-content:space-between}.graph-modes button{flex:1;padding:0 var(--ds-space-2)}.graph-stage,#dependency-canvas{min-height:64vh}.graph-shell.has-selection .graph-inspector-resize{display:none}.graph-inspector{scroll-margin-top:96px;border-top:var(--ds-border-width) solid var(--ds-color-line);border-left:0}.library-shell{display:block;min-height:0}.workspace-grid{display:block}.statement-frame{height:60vh}.lean-code{max-height:60vh}.entity-index{max-height:264px;border-right:0;border-bottom:var(--ds-border-width) solid var(--ds-color-line)}.library-shell:has(#entity-empty:not([hidden])) .entity-index{max-height:none}.entity-neighbours summary{grid-template-columns:auto minmax(0,1fr)}.entity-neighbours summary>span,.neighbour-lists>section{grid-column:2}.neighbour-lists{grid-template-columns:12px minmax(0,1fr)}.code-line{grid-template-columns:44px minmax(0,1fr);font-size:12px}.code-line-source{--hang: calc(var(--indent, 0ch) + 2ch);padding:0 var(--ds-space-3) 0 calc(var(--ds-space-3) + var(--hang))}.entity-header{align-items:flex-start;flex-direction:column;padding-inline:var(--site-gutter)}.panel-heading{padding-inline:var(--site-gutter)}.ds-action-link,.edge-key label,.tag-list a{min-height:24px}.tag-list a{display:inline-flex;align-items:center}}
