.hub{background: var(--paper);color: var(--ink);padding: 0 var(--gutter) 48px;}.hub *{box-sizing: border-box;}.hub > *{max-width: 1760px;margin-inline: auto;}.hub-hero{display: grid;gap: 24px;align-items: center;padding: clamp(24px, 3vw, 44px) 0 clamp(20px, 3vw, 36px);border-bottom: 1px solid var(--paper-line);}.hub-hero h1{margin: 0;max-width: 16ch;font-size: clamp(2.45rem, 4.7vw, 4.3rem);line-height: 1.01;text-wrap: balance;}.hub-lede{margin: 14px 0 0;font-size: clamp(1.05rem, 1.4vw, 1.4rem);line-height: 1.5;color: var(--ink);}.hub-lede a{color: var(--work-ink);}.hub-first-routes{display: grid;gap: 14px;align-self: stretch;align-content: center;padding: 16px 20px;background: var(--sheet);border-top: 6px solid var(--number);border-radius: 3px;box-shadow: 0 1px 0 var(--paper-line), 8px 8px 0 rgba(20, 22, 28, .08);}.hub-first-work{display: grid;gap: 2px;color: var(--ink);text-decoration: none;}.hub-first-work strong{color: var(--work-ink);font-size: 1.1rem;}.hub-first-work span{color: var(--ink-soft);font-size: .9rem;}.hub-first-skills{padding-top: 12px;border-top: 1px solid var(--paper-line);}.hub-first-skills > strong{display: block;margin-bottom: 8px;font-size: .88rem;}.hub-first-skills > div{display: flex;flex-wrap: wrap;gap: 8px 12px;}.hub-first-skills a{display: inline-flex;align-items: center;min-height: 44px;color: var(--work-ink);font-size: .88rem;font-weight: 700;text-decoration: none;}@media (min-width: 900px){.hub-hero{grid-template-columns: minmax(0, 3fr) minmax(280px, 1fr);gap: clamp(32px, 5vw, 96px);}}@media (max-width: 359px){.hub-lede{font-size: .95rem;line-height: 1.45;margin-top: 10px;}}.hub-section-label{margin: 0 0 14px;color: var(--ink-soft);font-size: 1rem;font-weight: 700;}.hub-stories, .hub-sites, .hub-routes, .hub-ladder{padding-top: clamp(24px, 4vw, 48px);}.pf-pair{display: grid;gap: 10px;}@media (min-width: 560px){.pf-pair{grid-template-columns: 1fr 1fr;gap: 14px;}}.pf-story{display: grid;align-content: start;gap: 6px;padding: 16px 18px;background: var(--sheet);border: 1px solid var(--paper-line);border-top: 5px solid var(--edge);border-radius: 10px;color: var(--ink);text-decoration: none;}.pf-story--up{--edge: var(--understood-ink);}.pf-story--down{--edge: var(--miss);}.pf-tag{justify-self: start;padding: 2px 10px;border-radius: 12px;background: var(--edge);color: #fff;font-size: .78rem;font-weight: 800;}.pf-title{font-size: clamp(1.25rem, 1.05rem + 1vw, 1.7rem);font-weight: 850;letter-spacing: -.02em;line-height: 1.15;}.pf-stat{color: var(--ink-soft);font-size: .9rem;line-height: 1.4;}.pf-stat strong{display: block;color: var(--ink);font-size: 1.25rem;font-variant-numeric: tabular-nums;}.pf-line{color: var(--ink-soft);font-size: .95rem;line-height: 1.5;}.pf-go{color: var(--work-ink);font-weight: 800;}@media (max-width: 559px){.pf-line{display: none;}}@media (hover: hover){.pf-numbers > summary:hover{border-color: var(--ink-soft);}}.hub-doors{list-style: none;margin: 20px auto 0;padding: 4px;display: grid;gap: 4px;background: var(--field);}@media (min-width: 760px){.hub-doors{grid-template-columns: repeat(2, 1fr);}}@media (min-width: 1040px){.hub-doors{grid-template-columns: repeat(4, 1fr);}}.hub-doors a{display: flex;align-items: center;gap: 14px;height: 100%;min-height: 64px;padding: 12px 14px;background: var(--field);color: var(--bone);text-decoration: none;box-shadow: none;}.hub-doors span{display: grid;gap: 2px;font-size: .9rem;color: var(--bone-soft);line-height: 1.35;}.hub-doors strong{color: var(--bone);font-size: 1.05rem;}@media (max-width: 359px){.hub-doors{margin-top: 12px;}.hub-doors a{min-height: 50px;padding: 6px 10px;}.hub-doors span{font-size: .84rem;}}.hub-piece{--cell: 9px;display: grid !important;flex: none;width: 36px;height: 27px;grid-template-columns: repeat(4, 8px);grid-template-rows: repeat(3, 8px);gap: 1px !important;place-content: center;background: none;}.hub-piece i{display: block;width: 8px;height: 8px;background: var(--tile);box-shadow: inset 0 -2px 0 rgba(0,0,0,.22);}.hub-piece--t i:nth-child(1){grid-area: 1 / 1;}.hub-piece--t i:nth-child(2){grid-area: 1 / 2;}.hub-piece--t i:nth-child(3){grid-area: 1 / 3;}.hub-piece--t i:nth-child(4){grid-area: 2 / 2;}.hub-piece--i i:nth-child(1){grid-area: 2 / 1;}.hub-piece--i i:nth-child(2){grid-area: 2 / 2;}.hub-piece--i i:nth-child(3){grid-area: 2 / 3;}.hub-piece--i i:nth-child(4){grid-area: 2 / 4;}.hub-piece--o i:nth-child(1){grid-area: 1 / 1;}.hub-piece--o i:nth-child(2){grid-area: 1 / 2;}.hub-piece--o i:nth-child(3){grid-area: 2 / 1;}.hub-piece--o i:nth-child(4){grid-area: 2 / 2;}.hub-piece--s i:nth-child(1){grid-area: 1 / 2;}.hub-piece--s i:nth-child(2){grid-area: 1 / 3;}.hub-piece--s i:nth-child(3){grid-area: 2 / 1;}.hub-piece--s i:nth-child(4){grid-area: 2 / 2;}.hub-piece--l i:nth-child(1){grid-area: 1 / 3;}.hub-piece--l i:nth-child(2){grid-area: 2 / 1;}.hub-piece--l i:nth-child(3){grid-area: 2 / 2;}.hub-piece--l i:nth-child(4){grid-area: 2 / 3;}.hub-report{margin: clamp(32px, 5vw, 64px) 0;}.pf-numbers[open] > .hub-report{margin-top: 14px;}.hub-groups{display: block;}.hub-group{margin: 0 0 8px;}.hub-group h3{margin: 28px 0 12px;padding-bottom: 8px;border-bottom: 1px solid var(--paper-line);font-size: 1.2rem;font-weight: 800;letter-spacing: -.02em;line-height: 1.25;}.hub-group-line{margin: -4px 0 12px;color: var(--ink-soft);font-size: 1.05rem;line-height: 1.4;}.pf-sites{display: grid;gap: 12px;margin: 0;padding: 0;list-style: none;}.pf-site-li{position: relative;}@media (min-width: 640px){.pf-sites{grid-template-columns: repeat(2, minmax(0, 1fr));}}@media (min-width: 1040px){.pf-sites{grid-template-columns: repeat(var(--cols-mid, 3), minmax(0, 1fr));}}@media (min-width: 1500px){.pf-sites{grid-template-columns: repeat(min(var(--n, 3), 4), minmax(0, 1fr));}}.pf-site{position: relative;display: flex;flex-direction: column;gap: 6px;height: 100%;box-sizing: border-box;padding: 16px 18px 14px;background: var(--sheet);border: 1px solid var(--paper-line);border-top: 4px solid var(--tile);border-radius: 10px;color: var(--ink);text-decoration: none;}.pf-site--stealth{border-top-color: var(--step);border-style: dashed;background: transparent;}.pf-site-head{display: flex;align-items: flex-start;justify-content: space-between;gap: 12px;}.pf-mascot{flex: none;margin: -4px -4px 0 0;}.pf-mascot .sprite{--spx: 3;display: block;}.pf-site-name{font-size: 1.12rem;font-weight: 800;line-height: 1.2;}.pf-site-for{font-size: .98rem;line-height: 1.45;color: var(--ink);}.pf-site-what{font-size: .84rem;color: var(--ink-soft);}.pf-site-meta{display: flex;flex-wrap: wrap;gap: 6px;margin-top: 4px;}.pf-site-meta span{padding: 2px 8px;background: var(--paper);border-radius: 10px;font-size: .76rem;font-weight: 700;color: var(--ink-soft);}.pf-site-pillar{display: flex;align-items: center;gap: 8px;margin-top: auto;padding-top: 12px;border-top: 1px solid var(--paper-line);color: var(--ink-soft);font-size: .8rem;font-weight: 700;}.pf-site-evo{image-rendering: pixelated;}.pf-site-go{margin-top: 2px;color: var(--work-ink);font-size: .88rem;font-weight: 800;}.hub-source{margin: 14px 0 0;color: var(--ink-soft);font-size: .9rem;}.hub-route-grid{display: grid;gap: 16px;}@media (min-width: 760px){.hub-route-grid{grid-template-columns: 1fr 1fr;}.hub-route{padding-right: 24px;}}.hub-route{display: grid;gap: 6px;padding: 20px 0;border-top: 1px solid var(--paper-line);color: var(--ink);text-decoration: none;}.hub-route-title{font-size: 1.35rem;font-weight: 800;letter-spacing: -.02em;line-height: 1.2;text-decoration: underline;text-decoration-thickness: 1px;text-underline-offset: .15em;}.hub-route-line{color: var(--ink-soft);}.hub-skills{max-width: var(--measure);margin: 20px auto 0;}.hub-skills a{color: var(--work-ink);}.pf-ladder{width: 100%;border-collapse: collapse;font-size: .95rem;line-height: 1.4;}.pf-ladder :is(th, td){padding: 10px 12px 10px 0;border-bottom: 1px solid var(--paper-line);text-align: left;vertical-align: middle;}.pf-ladder thead th{color: var(--ink-soft);font-size: .8rem;}.pf-ladder tbody th{font-weight: 800;}.pf-ladder tbody th a{display: inline-flex;align-items: center;gap: 8px;min-height: 44px;color: var(--ink);text-decoration: underline;text-underline-offset: .15em;}.pf-ladder tbody th a::before{content: "";width: 4px;height: 28px;background: var(--tile);border-radius: 1px;}.pf-ladder-mascot .sprite{--spx: 1;}.pf-ladder-n{color: var(--ink-soft);font-weight: 800;font-variant-numeric: tabular-nums;}.pf-ladder-num strong{font-variant-numeric: tabular-nums;}@media (max-width: 759px){.pf-ladder thead{position: absolute;width: 1px;height: 1px;overflow: hidden;clip-path: inset(50%);}.pf-ladder tr{display: grid;grid-template-columns: 2em minmax(0, 1fr);gap: 0 8px;padding: 8px 0;border-bottom: 1px solid var(--paper-line);}.pf-ladder :is(th, td){padding: 0;border: 0;grid-column: 2;}.pf-ladder .pf-ladder-n{grid-column: 1;grid-row: 1 / span 5;}.pf-ladder td{color: var(--ink-soft);font-size: .88rem;}}.hub-dir-c .hub-hero{margin-inline: calc(-1 * var(--gutter));max-width: none;padding-inline: var(--gutter);border-bottom: 0;color: var(--bone);}.hub-dir-c .hub-hero > *{max-width: 1760px;margin-inline: auto;width: 100%;}.hub-dir-c .hub-hero h1{color: var(--bone);}.hub-dir-c .hub-lede{color: var(--bone-soft);}.hub-dir-c .hub-lede a{color: var(--bone);}.hub-dir-c .hub-crumb ol{color: var(--bone-soft);}.hub-dir-c .hub-hero .hub-doors{grid-column: 1 / -1;margin-top: 8px;padding: 0;gap: 4px;background: transparent;}.hub-dir-c .hub-hero .hub-doors a{background: var(--field-2);}.hub-dir-c .hub-first-routes{background: var(--field-2);color: var(--bone);box-shadow: none;}.hub-dir-c .hub-first-work{color: var(--bone);}.hub-dir-c .hub-first-work strong, .hub-dir-c .hub-first-skills a{color: var(--bone);}.hub-dir-c .hub-first-work span{color: var(--bone-soft);}.hub-cadence{padding-top: clamp(28px, 4vw, 56px);}.cad{margin: 0;}.cad .kit-take, .cad .kit-src{max-width: var(--measure, 68ch);margin-inline: auto;}.cad-grid{display: grid;gap: 20px;align-items: start;justify-content: center;}.cad-play{max-width: 440px;}.cad-board{margin: 0;padding: 10px 12px;list-style: none;display: grid;gap: 8px;}.cad-row{display: grid;grid-template-columns: minmax(34px, auto) minmax(0, 1fr);align-items: end;gap: 10px;}.cad-m{color: var(--bone-soft);font-size: .78rem;font-weight: 700;line-height: 1;padding-bottom: 2px;white-space: nowrap;}.cad-band{display: block;width: 100%;height: auto;border-bottom: 1px solid var(--field-line);}.cad-row--gap{align-items: center;}.cad-row--gap .cad-m{padding-bottom: 0;}.cad-gap{display: flex;align-items: center;gap: 10px;min-height: 18px;color: var(--bone-soft);font-size: .72rem;line-height: 1;}.cad-gap::after{content: "";flex: 1;border-top: 1px dotted var(--field-line);}.cad-piece rect{fill: var(--kit-c);}.cad-piece--ghost rect{fill: color-mix(in srgb, var(--kit-c) 30%, transparent);stroke: var(--kit-c);stroke-width: 1.4;}.cad-data table{width: 100%;border-collapse: collapse;font-size: .95rem;}.cad-data th, .cad-data td{padding: 9px 8px 9px 0;border-bottom: 1px solid var(--paper-line);text-align: left;vertical-align: top;}.cad-data thead th{color: var(--ink-soft);font-size: .85rem;}.cad-data tbody th{white-space: nowrap;}.cad-data tbody th > .kit-b{vertical-align: middle;margin-right: 8px;}.cad-data tbody th a{display: inline-flex;align-items: center;min-height: 44px;max-width: calc(100% - 44px);vertical-align: middle;white-space: normal;color: var(--ink);font-weight: 700;text-underline-offset: .15em;}.cad-data tbody th, .cad-data tbody td{padding-block: 0;vertical-align: middle;}.cad-data tbody td{color: var(--ink-soft);}@media (max-width: 559px){.cad-data thead{position: absolute;width: 1px;height: 1px;overflow: hidden;clip-path: inset(50%);}.cad-data tbody tr{display: grid;grid-template-columns: minmax(0, 1fr) auto;align-items: center;column-gap: 12px;padding-bottom: 10px;border-bottom: 1px solid var(--paper-line);}.cad-data tbody :is(th, td){border: 0;padding: 0;}.cad-data tbody th{grid-row: 1;grid-column: 1;}.cad-data tbody td:last-child{grid-row: 1;grid-column: 2;text-align: right;}.cad-data tbody td:first-of-type{grid-row: 2;grid-column: 1 / -1;margin-top: -6px;padding-left: 26px;font-size: .9rem;line-height: 1.4;}.cad-data tbody td:first-of-type::before{content: "Reached search " / "";}}@media (min-width: 900px){.cad-grid{grid-template-columns: minmax(300px, 440px) minmax(0, 520px);gap: clamp(28px, 4vw, 64px);}}@media (min-width: 900px){.hub-hero{grid-template-columns: minmax(0, 50rem) minmax(260px, 22rem);justify-content: space-between;}.hub-lede{max-width: none;}}.hub-ft{padding: clamp(24px, 4vw, 44px) 0 8px;}.hub-ft-h{margin-block: 0 14px;font-size: clamp(1.35rem, 1.1rem + 1vw, 1.75rem);font-weight: 800;letter-spacing: -0.01em;}.hub-ask-line{max-width: var(--measure);margin: 14px auto 0;color: var(--ink-soft);}.hub-ask-line a{display: inline-flex;align-items: center;min-height: 44px;font-weight: 750;}.af{max-width: calc(var(--measure, 68ch) + 32px);margin: 0 auto clamp(24px, 4vw, 40px);padding: clamp(8px, 2vw, 16px) 16px 0;box-sizing: border-box;}.af-goal{max-width: none;margin: 0;line-height: 1.55;}.af-tiles{grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));max-width: none;}.af .hub-source{max-width: none;margin-inline: 0;}@media (max-width: 559px){.af-tiles{grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));gap: 8px;}.af-tiles .rp-tile{padding: 12px;}}