.search-root{position:relative}.search-trigger{display:flex;align-items:center;gap:.5rem;width:100%;padding:.625rem .875rem;background:var(--crumb-surface);border:1px solid var(--crumb-border);border-radius:.5rem;color:var(--sl-color-gray-3);font-size:.9375rem;cursor:pointer;transition:border-color .15s ease;text-align:left}.search-trigger:hover{border-color:var(--sl-color-gray-4)}.search-icon{font-size:.875rem}.search-label{flex:1}.search-kbd{font-size:.6875rem;padding:.125rem .375rem;background:var(--crumb-surface-raised);border:1px solid var(--crumb-border);border-radius:.25rem;color:var(--sl-color-gray-4);font-family:JetBrains Mono,monospace}.search-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding-top:10vh}.search-overlay[hidden]{display:none}.search-backdrop{position:absolute;inset:0;background:#0a0a0fd9;backdrop-filter:blur(4px)}.search-panel{position:relative;width:100%;max-width:640px;background:var(--crumb-surface);border:1px solid var(--crumb-border);border-radius:.75rem;box-shadow:0 20px 60px #0009;overflow:hidden;display:flex;flex-direction:column;max-height:70vh}.search-input-row{display:flex;align-items:center;gap:.5rem;padding:.875rem 1rem;border-bottom:1px solid var(--crumb-border)}.search-input{flex:1;background:transparent;border:none;color:var(--sl-color-white);font-size:1rem;outline:none;font-family:inherit}.search-input::placeholder{color:var(--sl-color-gray-4)}.search-facets{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--crumb-border)}.facet-select{background:var(--crumb-surface-raised);border:1px solid var(--crumb-border);border-radius:.375rem;color:var(--sl-color-gray-2);font-size:.8125rem;padding:.375rem .5rem;outline:none;cursor:pointer}.facet-select:focus{border-color:var(--crumb-oxide)}.search-results{flex:1;overflow-y:auto;padding:.5rem}.search-hint{text-align:center;color:var(--sl-color-gray-4);font-size:.875rem;padding:2rem;margin:0}.search-result{display:block;padding:.75rem 1rem;border-radius:.5rem;text-decoration:none;transition:background .1s ease}.search-result:hover,.search-result.selected{background:var(--crumb-surface-raised)}.search-result-link{display:block;text-decoration:none;color:inherit}.search-result-link:hover{text-decoration:none}.result-header{display:flex;align-items:center;gap:.375rem;margin-bottom:.25rem;flex-wrap:wrap}.result-id{font-size:.6875rem;font-family:JetBrains Mono,monospace;color:var(--sl-color-gray-4)}.result-badge{font-size:.625rem;padding:.0625rem .375rem;border-radius:999px;font-weight:500}.result-project{background:#5e8caa26;color:#5e8caa}.result-difficulty--beginner{background:#5a9e6e26;color:#5a9e6e}.result-difficulty--intermediate{background:#c9a84c26;color:#c9a84c}.result-difficulty--advanced{background:#c44d4d26;color:#c44d4d}.result-time{background:#ffffff0d;color:var(--sl-color-gray-3)}.result-title{font-size:.9375rem;font-weight:600;color:var(--sl-color-white);margin-bottom:.25rem}.result-title mark{background:#e85d3e40;color:var(--sl-color-white);border-radius:.125rem;padding:0 .125rem}.result-preview{font-size:.8125rem;color:var(--sl-color-gray-3);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.result-preview mark{background:#e85d3e33;color:var(--sl-color-gray-2);border-radius:.125rem;padding:0 .125rem}.result-use-when{font-size:.75rem;color:var(--sl-color-gray-4);margin-top:.25rem}.result-use-when mark{background:#e85d3e26;color:var(--sl-color-gray-3);border-radius:.125rem;padding:0 .125rem}.result-prereqs{font-size:.7rem;color:var(--sl-color-gray-4);margin-top:.375rem;padding-top:.375rem;border-top:1px solid rgba(255,255,255,.05)}.prereq-label{font-weight:600;color:var(--sl-color-gray-3)}.search-footer{display:flex;gap:1rem;padding:.5rem 1rem;border-top:1px solid var(--crumb-border);font-size:.6875rem;color:var(--sl-color-gray-4)}.search-footer kbd{font-size:.625rem;padding:.0625rem .25rem;background:var(--crumb-surface-raised);border:1px solid var(--crumb-border);border-radius:.25rem;font-family:JetBrains Mono,monospace}.resume-panel:where(.astro-ff6xywl6)[data-resume-hidden]{display:none}.resume-panel:where(.astro-ff6xywl6){margin:0 0 2rem;display:flex;flex-direction:column;gap:.375rem}.resume-line:where(.astro-ff6xywl6){margin:0;font-size:.9375rem;color:var(--sl-color-gray-3);line-height:1.6}.resume-line:where(.astro-ff6xywl6)[hidden]{display:none}.resume-label:where(.astro-ff6xywl6){color:var(--sl-color-gray-2)}.resume-link:where(.astro-ff6xywl6){color:var(--crumb-oxide);text-decoration:none;transition:color .15s ease}.resume-link:where(.astro-ff6xywl6):hover{color:#ff7d5e}.resume-link:where(.astro-ff6xywl6):focus-visible{outline:2px solid var(--crumb-oxide);outline-offset:2px;border-radius:2px}.trail-rail:where(.astro-sczsnaf2){display:flex;flex-direction:column;gap:.5rem}.trail-rail-title:where(.astro-sczsnaf2){margin:0 0 .25rem;font-size:.6875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--sl-color-gray-3)}.trail-rail-subhead:where(.astro-sczsnaf2){margin:.625rem 0 .125rem;font-size:.6875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--sl-color-gray-4)}.trail-rail-list:where(.astro-sczsnaf2){list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.0625rem}.trail-row:where(.astro-sczsnaf2){display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:.625rem;padding:.375rem .5rem;border-radius:.375rem;color:var(--sl-color-gray-2);text-decoration:none;font-size:.875rem;line-height:1.3;transition:background .15s ease,color .15s ease}.trail-row:where(.astro-sczsnaf2):hover,.trail-row:where(.astro-sczsnaf2):focus-visible{background:var(--crumb-surface);color:var(--sl-color-white);outline:none;text-decoration:none}.trail-dot:where(.astro-sczsnaf2){width:8px;height:8px;border-radius:50%}.trail-name:where(.astro-sczsnaf2){text-transform:capitalize;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trail-count:where(.astro-sczsnaf2){font-size:.75rem;color:var(--sl-color-gray-4);font-variant-numeric:tabular-nums}.trail-row:where(.astro-sczsnaf2):hover .trail-count:where(.astro-sczsnaf2),.trail-row:where(.astro-sczsnaf2):focus-visible .trail-count:where(.astro-sczsnaf2){color:var(--sl-color-gray-3)}.diagram-index:where(.astro-5jcmfbe4){margin-bottom:2.5rem}.di-header:where(.astro-5jcmfbe4){display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.875rem;flex-wrap:wrap}.di-title:where(.astro-5jcmfbe4){margin:0;font-size:.6875rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-variant:small-caps;color:var(--sl-color-gray-3)}.di-stat:where(.astro-5jcmfbe4){font-size:.75rem;color:var(--crumb-dust);font-variant-numeric:tabular-nums;white-space:nowrap}.di-rows:where(.astro-5jcmfbe4){display:flex;flex-direction:column;gap:.5rem}.di-row:where(.astro-5jcmfbe4){display:flex;align-items:flex-start;gap:.75rem;flex-wrap:nowrap}.di-project:where(.astro-5jcmfbe4){display:inline-flex;align-items:center;gap:.375rem;flex-shrink:0;width:6rem;padding-top:.225rem}.di-dot:where(.astro-5jcmfbe4){width:6px;height:6px;border-radius:50%;background:var(--dot);flex-shrink:0}.di-project-name:where(.astro-5jcmfbe4){font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--crumb-dust);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.di-chips:where(.astro-5jcmfbe4){display:flex;flex-wrap:wrap;gap:.3rem;min-width:0}.di-chip:where(.astro-5jcmfbe4){display:inline-block;padding:.25rem .5625rem;background:var(--crumb-surface);border:1px solid var(--crumb-border);border-radius:4px;font-size:.75rem;color:var(--sl-color-gray-2);text-decoration:none;white-space:nowrap;transition:background .1s ease,color .1s ease,border-color .1s ease;line-height:1.4}.di-chip:where(.astro-5jcmfbe4):hover,.di-chip:where(.astro-5jcmfbe4):focus-visible{background:var(--crumb-surface-raised);border-color:color-mix(in srgb,var(--crumb-border) 160%,transparent);color:var(--sl-color-white);outline:none;text-decoration:none}@media(max-width:560px){.di-row:where(.astro-5jcmfbe4){flex-direction:column;gap:.375rem}.di-project:where(.astro-5jcmfbe4){width:auto;padding-top:0}}.hub:where(.astro-j7pv25f6){max-width:1120px;margin:0 auto;padding:2rem 1.5rem 4rem}.hub-header:where(.astro-j7pv25f6){margin-bottom:1.75rem;padding-bottom:1.25rem;border-bottom:1px solid color-mix(in srgb,var(--crumb-border) 70%,transparent)}.hub-title:where(.astro-j7pv25f6){margin:0 0 .625rem;display:inline-flex;align-items:baseline;gap:.5rem;font-size:1.75rem;font-weight:700;line-height:1.1;letter-spacing:-.02em;color:var(--sl-color-white)}.hub-title-mark:where(.astro-j7pv25f6){font-size:1.375rem;line-height:1;transform:translateY(.05em)}.hub-title-word:where(.astro-j7pv25f6){display:inline-block}.hub-dek:where(.astro-j7pv25f6){margin:0;max-width:56ch;font-size:.9375rem;color:var(--sl-color-gray-2);line-height:1.6}.hub-header-grid:where(.astro-j7pv25f6){display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2.75rem;align-items:start}.hub-header-main:where(.astro-j7pv25f6){min-width:0}.hub-key:where(.astro-j7pv25f6){margin:.25rem 0 0;padding:0 0 0 1.5rem;border-left:1px solid color-mix(in srgb,var(--crumb-border) 70%,transparent);display:grid;row-gap:.4375rem}.hub-key-row:where(.astro-j7pv25f6){display:grid;grid-template-columns:1.25rem auto;column-gap:.875rem;align-items:baseline}.hub-key-letter:where(.astro-j7pv25f6){margin:0;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace;font-size:.8125rem;font-weight:600;color:var(--sl-color-white);text-align:center;line-height:1.3}.hub-key-word:where(.astro-j7pv25f6){margin:0;font-size:.8125rem;color:var(--crumb-dust);line-height:1.3;letter-spacing:.005em}@media(max-width:720px){.hub-header-grid:where(.astro-j7pv25f6){grid-template-columns:minmax(0,1fr);gap:1.25rem}.hub-key:where(.astro-j7pv25f6){margin-top:0;padding:1rem 0 0;border-left:0;border-top:1px solid color-mix(in srgb,var(--crumb-border) 70%,transparent)}}.hub-session:where(.astro-j7pv25f6){margin-bottom:2.25rem}.hub-session:where(.astro-j7pv25f6)>:where(.astro-j7pv25f6):last-child{margin-bottom:0}.hub-pulse:where(.astro-j7pv25f6){margin:0 0 .75rem;font-size:.9375rem;color:var(--sl-color-gray-3);line-height:1.6}.hub-pulse:where(.astro-j7pv25f6) strong:where(.astro-j7pv25f6){color:var(--crumb-oxide);font-weight:600}.hub-section:where(.astro-j7pv25f6){margin-bottom:1.75rem}.hub-map:where(.astro-j7pv25f6){display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:1.5rem;margin-bottom:2.5rem;align-items:start}.hub-map-graph:where(.astro-j7pv25f6){min-width:0}@media(max-width:820px){.hub-map:where(.astro-j7pv25f6){grid-template-columns:minmax(0,1fr);gap:1rem}}.hub-projects:where(.astro-j7pv25f6){margin-top:.875rem}.hub-projects-title:where(.astro-j7pv25f6){margin:0 0 .625rem;font-size:.6875rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--sl-color-gray-3)}.hub-projects-list:where(.astro-j7pv25f6){list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.375rem}.project-pill:where(.astro-j7pv25f6){display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem .375rem .625rem;border-radius:999px;background:var(--crumb-surface);border:1px solid var(--crumb-border);color:var(--sl-color-gray-2);font-size:.8125rem;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease}.project-pill:where(.astro-j7pv25f6):hover,.project-pill:where(.astro-j7pv25f6):focus-visible{background:var(--crumb-surface-raised);border-color:var(--crumb-border);color:var(--sl-color-white);outline:none;text-decoration:none}.project-pill-dot:where(.astro-j7pv25f6){width:7px;height:7px;border-radius:50%}.project-pill-count:where(.astro-j7pv25f6){color:var(--sl-color-gray-4);font-size:.75rem;font-variant-numeric:tabular-nums}.project-pill:where(.astro-j7pv25f6):hover .project-pill-count:where(.astro-j7pv25f6),.project-pill:where(.astro-j7pv25f6):focus-visible .project-pill-count:where(.astro-j7pv25f6){color:var(--sl-color-gray-3)}.hub-footer:where(.astro-j7pv25f6){margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--crumb-border);text-align:center;font-size:.875rem;color:var(--sl-color-gray-4)}.hub-footer:where(.astro-j7pv25f6) a:where(.astro-j7pv25f6){color:var(--crumb-oxide)}
