.roofline[data-astro-cid-b2cwtdjk]{margin:0}svg[data-astro-cid-b2cwtdjk]{width:100%;height:auto;display:block;overflow:visible}.grid[data-astro-cid-b2cwtdjk] line[data-astro-cid-b2cwtdjk]{stroke:var(--rule-soft);stroke-width:1px}.axis[data-astro-cid-b2cwtdjk] line[data-astro-cid-b2cwtdjk]{stroke:var(--rule);stroke-width:1px}.drop[data-astro-cid-b2cwtdjk]{stroke:var(--rule);stroke-width:1px;stroke-dasharray:2 4}.roof-mem[data-astro-cid-b2cwtdjk],.roof-compute[data-astro-cid-b2cwtdjk],.trail[data-astro-cid-b2cwtdjk]{fill:none;stroke-width:2.5px;stroke-linecap:round}.roof-mem[data-astro-cid-b2cwtdjk]{stroke:var(--mem)}.roof-compute[data-astro-cid-b2cwtdjk]{stroke:var(--compute)}.trail[data-astro-cid-b2cwtdjk]{stroke:var(--mem);stroke-width:4px;opacity:.35;stroke-dasharray:343;stroke-dashoffset:343px}.dot-mem[data-astro-cid-b2cwtdjk],.sweep-dot[data-astro-cid-b2cwtdjk]{fill:var(--mem)}.halo[data-astro-cid-b2cwtdjk]{fill:none;stroke:var(--mem);stroke-width:1.5px;opacity:0;transform-box:fill-box;transform-origin:50%}.sweep-glow[data-astro-cid-b2cwtdjk]{fill:var(--mem);opacity:.55}.sweep-dot[data-astro-cid-b2cwtdjk]{stroke:var(--paper);stroke-width:1.5px}.stage[data-astro-cid-b2cwtdjk]{fill:var(--mem);opacity:0}.dot-ridge[data-astro-cid-b2cwtdjk]{fill:var(--paper);stroke:var(--compute);stroke-width:2px;transform-box:fill-box;transform-origin:50%}text[data-astro-cid-b2cwtdjk]{font-family:var(--font-mono);fill:var(--ink-faint)}.tick[data-astro-cid-b2cwtdjk] text[data-astro-cid-b2cwtdjk]{font-size:10px}.axis-title[data-astro-cid-b2cwtdjk] text[data-astro-cid-b2cwtdjk]{letter-spacing:.06em;text-transform:uppercase;font-size:9.5px}.note[data-astro-cid-b2cwtdjk] text[data-astro-cid-b2cwtdjk],.cap[data-astro-cid-b2cwtdjk]{letter-spacing:.01em;font-size:11px}.n-mem[data-astro-cid-b2cwtdjk]{fill:var(--mem)}.n-mem[data-astro-cid-b2cwtdjk].sub{fill:var(--ink-faint);letter-spacing:.1em;text-transform:uppercase;font-size:10px}.n-compute[data-astro-cid-b2cwtdjk]{fill:var(--compute)}.n-ridge[data-astro-cid-b2cwtdjk]{fill:var(--ink-faint)}.cap[data-astro-cid-b2cwtdjk]{opacity:0}.cap-1[data-astro-cid-b2cwtdjk]{opacity:1}.sweep[data-astro-cid-b2cwtdjk],.trail[data-astro-cid-b2cwtdjk],.stage[data-astro-cid-b2cwtdjk]{display:none}.intro[data-astro-cid-b2cwtdjk]{opacity:0;animation:.7s ease-out forwards rl-fade}.axis[data-astro-cid-b2cwtdjk].intro{animation-delay:.1s}.tick[data-astro-cid-b2cwtdjk].intro,.axis-title[data-astro-cid-b2cwtdjk].intro{animation-delay:.5s}.roof-mem[data-astro-cid-b2cwtdjk]{stroke-dasharray:406;stroke-dashoffset:406px;animation:1.1s cubic-bezier(.4,0,.2,1) .35s forwards rl-draw}.roof-compute[data-astro-cid-b2cwtdjk]{stroke-dasharray:98;stroke-dashoffset:98px;animation:.45s ease-out 1.35s forwards rl-draw}.drop[data-astro-cid-b2cwtdjk]{stroke-dasharray:2 4;opacity:0;animation:.5s ease-out 1.5s forwards rl-fade}.dot-ridge[data-astro-cid-b2cwtdjk]{animation:.5s cubic-bezier(.34,1.56,.64,1) 1.65s forwards rl-pop;transform:scale(0)}.dot-mem[data-astro-cid-b2cwtdjk]{transform-box:fill-box;transform-origin:50%;animation:.5s cubic-bezier(.34,1.56,.64,1) 1.85s forwards rl-pop;transform:scale(0)}.halo[data-astro-cid-b2cwtdjk]{animation:2.6s ease-out 2.2s infinite rl-pulse}.note[data-astro-cid-b2cwtdjk]{opacity:0;animation:.6s ease-out 1.9s forwards rl-fade}@supports (offset-path:path('M0 0 L1 1')){.sweep[data-astro-cid-b2cwtdjk],.trail[data-astro-cid-b2cwtdjk],.stage[data-astro-cid-b2cwtdjk]{display:initial}.cap-1[data-astro-cid-b2cwtdjk]{opacity:0}.sweep[data-astro-cid-b2cwtdjk]{offset-path:path("M135 219 L403 47 L427 47");offset-rotate:0deg;opacity:0;animation:11s ease-in-out 2.6s infinite rl-sweep}.trail[data-astro-cid-b2cwtdjk]{animation:11s ease-in-out 2.6s infinite rl-trail}.stage-8[data-astro-cid-b2cwtdjk]{animation:11s linear 2.6s infinite rl-stage-8}.stage-64[data-astro-cid-b2cwtdjk]{animation:11s linear 2.6s infinite rl-stage-64}.cap-1[data-astro-cid-b2cwtdjk]{animation:11s linear 2.6s infinite rl-cap-1}.cap-8[data-astro-cid-b2cwtdjk]{animation:11s linear 2.6s infinite rl-cap-8}.cap-64[data-astro-cid-b2cwtdjk]{animation:11s linear 2.6s infinite rl-cap-64}.cap-256[data-astro-cid-b2cwtdjk]{animation:11s linear 2.6s infinite rl-cap-256}}@keyframes rl-sweep{0%{offset-distance:0%;opacity:0}3%,8%{offset-distance:0%;opacity:1}28%,36%{offset-distance:37.95%}56%,64%{offset-distance:75.9%}78%,83%{offset-distance:93%}89%,96%{offset-distance:100%;opacity:1}to{offset-distance:100%;opacity:0}}@keyframes rl-trail{0%,8%{stroke-dashoffset:343px;opacity:.35}28%,36%{stroke-dashoffset:212.8px}56%,64%{stroke-dashoffset:82.7px}78%,83%{stroke-dashoffset:24px}89%,96%{stroke-dashoffset:0;opacity:.35}to{stroke-dashoffset:0;opacity:0}}@keyframes rl-stage-8{0%,27%{opacity:0}29%,96%{opacity:1}to{opacity:0}}@keyframes rl-stage-64{0%,55%{opacity:0}57%,96%{opacity:1}to{opacity:0}}@keyframes rl-cap-1{0%{opacity:0}3%,12%{opacity:1}16%,to{opacity:0}}@keyframes rl-cap-8{0%,26%{opacity:0}29%,40%{opacity:1}44%,to{opacity:0}}@keyframes rl-cap-64{0%,54%{opacity:0}57%,68%{opacity:1}72%,to{opacity:0}}@keyframes rl-cap-256{0%,88%{opacity:0}91%,96%{opacity:1}to{opacity:0}}@keyframes rl-fade{to{opacity:1}}@keyframes rl-draw{to{stroke-dashoffset:0}}@keyframes rl-pop{to{transform:scale(1)}}@keyframes rl-pulse{0%{opacity:.7;transform:scale(1)}70%,to{opacity:0;transform:scale(4)}}@media (prefers-reduced-motion:reduce){.intro[data-astro-cid-b2cwtdjk],.note[data-astro-cid-b2cwtdjk],.drop[data-astro-cid-b2cwtdjk]{opacity:1;animation:none}.roof-mem[data-astro-cid-b2cwtdjk],.roof-compute[data-astro-cid-b2cwtdjk]{stroke-dashoffset:0;animation:none}.dot-mem[data-astro-cid-b2cwtdjk],.dot-ridge[data-astro-cid-b2cwtdjk]{animation:none;transform:none}.halo[data-astro-cid-b2cwtdjk],.sweep[data-astro-cid-b2cwtdjk],.trail[data-astro-cid-b2cwtdjk],.stage[data-astro-cid-b2cwtdjk]{animation:none;display:none}.cap[data-astro-cid-b2cwtdjk]{opacity:0;animation:none}.cap-1[data-astro-cid-b2cwtdjk]{opacity:1}}@media (width<=560px){.axis-title[data-astro-cid-b2cwtdjk] text[data-astro-cid-b2cwtdjk],.n-mem[data-astro-cid-b2cwtdjk].sub{display:none}.cap[data-astro-cid-b2cwtdjk]{font-size:10px}}.hero[data-astro-cid-lcdefpme]{grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,5vw,4rem);padding-block:clamp(3rem,8vw,5.5rem) clamp(2.5rem,6vw,4rem);display:grid}.thesis[data-astro-cid-lcdefpme] .label[data-astro-cid-lcdefpme]{margin-bottom:.9rem}h1[data-astro-cid-lcdefpme]{margin-bottom:1.25rem}.lede[data-astro-cid-lcdefpme]{color:var(--ink-soft);max-width:30rem;font-size:1.06rem}.byline[data-astro-cid-lcdefpme]{font-family:var(--font-mono);color:var(--ink-faint);border-top:var(--rule-weight) solid var(--rule);max-width:26rem;margin:1.6rem 0 0;padding-top:1.1rem;font-size:.78rem;line-height:1.6}.course[data-astro-cid-lcdefpme]{padding-top:.5rem;padding-bottom:2.5rem}.course-card[data-astro-cid-lcdefpme]{background:var(--paper-raised);border:var(--rule-weight) solid var(--rule);border-left:3px solid var(--mem);color:var(--ink);border-radius:4px;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.4rem 1.6rem;text-decoration:none;display:flex}.course-card[data-astro-cid-lcdefpme]:hover{border-color:var(--mem)}.course-card[data-astro-cid-lcdefpme] .label[data-astro-cid-lcdefpme]{margin-bottom:.4rem}.course-card[data-astro-cid-lcdefpme] h2[data-astro-cid-lcdefpme]{letter-spacing:0;margin-bottom:.4rem;font-size:1.25rem}.course-lede[data-astro-cid-lcdefpme]{color:var(--ink-soft);max-width:34rem;margin:0;font-size:.95rem;line-height:1.7}.course-cta[data-astro-cid-lcdefpme]{font-family:var(--font-mono);letter-spacing:.1em;color:var(--mem);flex:none;font-size:.74rem}.writing[data-astro-cid-lcdefpme]{padding-top:1rem}.section-head[data-astro-cid-lcdefpme]{border-bottom:var(--rule-weight) solid var(--rule);justify-content:space-between;align-items:baseline;gap:1rem;padding-bottom:.9rem;display:flex}.section-head[data-astro-cid-lcdefpme] h2[data-astro-cid-lcdefpme]{letter-spacing:.02em;font-size:1.1rem}.all[data-astro-cid-lcdefpme]{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-size:.72rem;text-decoration:none}.all[data-astro-cid-lcdefpme]:hover{color:var(--mem)}.empty[data-astro-cid-lcdefpme]{color:var(--ink-soft);padding-block:2.5rem}@media (width<=820px){.hero[data-astro-cid-lcdefpme]{grid-template-columns:1fr;gap:2.5rem}.plot[data-astro-cid-lcdefpme]{order:2}}
