.ground[data-astro-cid-vvvc6b4u]{z-index:-3;pointer-events:none;background:url(/_astro/ground-poster-wide.BUMDOKwU.webp) center / cover no-repeat, url(data:image/webp;base64,UklGRloCAABXRUJQVlA4IE4CAACQDgCdASpgACgAPmEokEWkIqGY7Z98QAYEoAskurCKjaApQGwp4tQysJb6wqOT3CHmA+T7hhQdAPDM+4Qi6WkvIbsvD7KjbSRg67GevF+Hc4onNwYqnzZi2/9i5TAiIdAQWRW/1oJO6+YF7/b/jW7DmNjOJYTnY3KBGblBwAD+iRIYDJbVXCTlAM3JXYVfBBBv/q0P/qF5f+Wh+59+21ScEgg/+1poApAXnVoSJrglDqKeimW/FmbrP+2pIZQ7mz3dpbFvoovKcf/qM1eMGYOO5Z79e70tupGRPq/M5i6jzrVs635b1GprBaZ/kkxZqGdrSXMqtE+GXmjmr4QNBb4+HmOPKX3cJ1BcCDMO68PE3Gwn2AZ5Ihjz6fY7fnAk3md1njXKGzHwfTMIFGAX+5QIhzNEUOZD8JMc7Ni99nYg7tdCYKdLryN7MjkukzBuoOITsOkfoKYoTaf/lr8Evi0qUEpb6HksBikPmWv1ty8wQhDibUjkpyk8Hg+FaYGNi7ggC1/OHP+oEGW1S3HhxIZgZwn17G5Zc7HqWHbE5JtZg0z/DCnZ6tmXm39wgIdJnIkZY8Tta9Ntlne+BP8F66s9P19+aFr4LwOZlzpg6Qf93NgnUK2zo4SqPfxOvTIRFZuwbL9skNUz+TvxRYYjjaHJAfpAPmXXRIQaYbbBdyD/zf5aCAOsC96ujvje822qs/GcxoOht3Z5P/pHiCDHHue5ijPlNZKgq7MJQ8IrWFxDrTWnSZvsYDBGpu75Bk6R02a+sF4lDtYKvOdJPjfgAA==) center / cover no-repeat, var(--color-hack-violet);position:fixed;inset:0}@media (aspect-ratio<=999/1000){.ground[data-astro-cid-vvvc6b4u]{background:url(/_astro/ground-poster-tall.xHsdiOYu.webp) center / cover no-repeat, url(data:image/webp;base64,UklGRtQBAABXRUJQVlA4IMgBAACQCwCdASogAE0APmkoj0WkIqEZnVYAQAaEsQBfPbj/bkTXg6HsLA0wCPyQn9rlkva+KvfJuvf32OO2A8FphYxTuchB6BXst0xym3/beAwF/TSArCCVFDshFl8XqsRdcHolem+RgAD++f0YpLMmplkbhecJ4c21lEpt118ZPsH0//yVLreUeO+0Qu1Uecj/yp7LTxdK0mWHwV4fpd89qI0i53gpgA8/DIjHNVDcEkecrBQm790urLFWPY9MnpJMNX3oPqusxjmbRCcXUxJH7h9q2cogzBaaksgX8/83d2GzGkLMY/X0ym2jiIVmfCEh5xnTlREb61d7Ph6EYMiEuYwOkfQJk+gkEMV7HnFzvfZ/GGvGFtrD0GM2qS5nCq9hZQ+gNz/j3nqaLP87SKKWRxSRKbDFkYy1K1/YRzmlorUH435UgJbLzmQsPUcgRSjoKSr9FhxMCo23OhyU3WvD6P0tLE4JO4E+FGs79LhNzPQ3/9iom4xI5gPdhVmZkGkdJ/qxOrcE63VW5gPPcS+kcfBdjIrNPEPffflIscbzYtVaIwi0wCZe4TZ75YNE2enMglOkWgosFAL4lwtIf3FaTklOynhk17aAAAA=) center / cover no-repeat, var(--color-hack-violet)}}.ground-canvas[data-astro-cid-vvvc6b4u]{opacity:0;width:100%;height:100%;display:block}.ground-canvas[data-astro-cid-vvvc6b4u][data-live]{opacity:1}@media (prefers-reduced-motion:no-preference){.ground-canvas[data-astro-cid-vvvc6b4u]{transition:opacity var(--duration-hack-reveal) var(--ease-emphasized)}}.motion-toggle[data-astro-cid-vvvc6b4u]{left:var(--padding-global);bottom:var(--space-sm);z-index:5;border:1px solid color-mix(in srgb, var(--color-white) 35%, transparent);border-radius:var(--radius-circle);background-color:color-mix(in srgb, var(--color-hack-ink) 78%, transparent);width:2.75rem;height:2.75rem;color:var(--color-white);cursor:pointer;backdrop-filter:blur(6px);transition:background-color var(--duration-hover) var(--ease-snappy);place-items:center;padding:0;display:grid;position:fixed}.motion-toggle[data-astro-cid-vvvc6b4u]:hover{background-color:var(--color-hack-ink)}.motion-icon[data-astro-cid-vvvc6b4u]{fill:currentColor;grid-area:1/1}.motion-toggle[data-astro-cid-vvvc6b4u] .is-play[data-astro-cid-vvvc6b4u],.motion-toggle[data-astro-cid-vvvc6b4u][aria-pressed=true] .is-pause[data-astro-cid-vvvc6b4u]{display:none}.motion-toggle[data-astro-cid-vvvc6b4u][aria-pressed=true] .is-play[data-astro-cid-vvvc6b4u]{display:block}@media (width<=767px){.motion-toggle[data-astro-cid-vvvc6b4u]{top:var(--space-sm);position:absolute;bottom:auto}}@media (prefers-reduced-motion:reduce){.motion-toggle[data-astro-cid-vvvc6b4u]{display:none}}.fragments[data-astro-cid-bpy5omgz]{z-index:-2;pointer-events:none;-webkit-mask-image:linear-gradient(90deg, var(--color-black) 0 9%, transparent 12% 88%, var(--color-black) 91%);mask-image:linear-gradient(90deg, var(--color-black) 0 9%, transparent 12% 88%, var(--color-black) 91%);position:fixed;inset:0;overflow:hidden}.frag[data-astro-cid-bpy5omgz]{top:var(--rest);width:calc(var(--w) * var(--frag-k,1));height:calc(var(--h) * var(--frag-k,1));background:var(--paint);-webkit-mask:var(--shape) center / 100% 100% no-repeat;mask:var(--shape) center / 100% 100% no-repeat;position:absolute}.frag[data-astro-cid-bpy5omgz].is-left{left:calc(var(--inset) * var(--lane-k,1))}.frag[data-astro-cid-bpy5omgz].is-right{right:calc(var(--inset) * var(--lane-k,1))}@media (width<=1279px){.fragments[data-astro-cid-bpy5omgz]{--lane-k:.25;--frag-k:.5;--sway-scale:.3;-webkit-mask-image:linear-gradient(90deg, var(--color-black) 0 4.5%, transparent 6% 94%, var(--color-black) 95.5%);mask-image:linear-gradient(90deg, var(--color-black) 0 4.5%, transparent 6% 94%, var(--color-black) 95.5%)}}@media (width<=767px){.frag[data-astro-cid-bpy5omgz].is-wide{display:none}.fragments[data-astro-cid-bpy5omgz]{--frag-k:.42}}@media (prefers-reduced-motion:no-preference){.frag[data-astro-cid-bpy5omgz]{animation:hack-fall calc(var(--duration-hack-fall) * var(--speed)) var(--ease-hack-fall) calc(var(--duration-hack-fall) * var(--speed) * var(--phase) * -1) infinite, hack-sway calc(var(--duration-hack-sway) * var(--speed)) var(--ease-hack-sway) calc(var(--duration-hack-sway) * var(--phase) * -1) infinite alternate;top:0}[data-motion=paused] .frag[data-astro-cid-bpy5omgz],[data-ground=hidden] .frag[data-astro-cid-bpy5omgz]{animation-play-state:paused}}@keyframes hack-fall{0%{translate:0 -20vh}to{translate:0 115vh}}@keyframes hack-sway{0%{transform:translateX(0) rotate(calc(var(--turn) * -.5))}to{transform:translateX(calc(var(--sway) * var(--sway-scale,1))) rotate(var(--turn))}}.hack-world[data-astro-cid-vjcgudaw]{--hack-seam:clamp(12rem, 36svh, 22rem);--hack-seam-out:calc(var(--hack-seam) * 1.35);--hack-seam-in:clamp(10rem, 32svh, 18rem);--hack-seam-join:color-mix(in srgb, var(--color-hack-haze) 42%, var(--color-white));--hack-nav:calc(4rem + 1px);clip-path:inset(0);background-color:var(--color-hack-violet);position:relative;overflow-x:clip}.hack-surface[data-astro-cid-vjcgudaw]{background:linear-gradient(to bottom, var(--hack-seam-join), color-mix(in srgb, var(--hack-seam-join) 79%, var(--color-white)) 10%, color-mix(in srgb, var(--hack-seam-join) 61%, var(--color-white)) 20%, color-mix(in srgb, var(--hack-seam-join) 46%, var(--color-white)) 30%, color-mix(in srgb, var(--hack-seam-join) 33%, var(--color-white)) 40%, color-mix(in srgb, var(--hack-seam-join) 22%, var(--color-white)) 50%, color-mix(in srgb, var(--hack-seam-join) 13%, var(--color-white)) 60%, color-mix(in srgb, var(--hack-seam-join) 7%, var(--color-white)) 70%, color-mix(in srgb, var(--hack-seam-join) 3%, var(--color-white)) 80%, color-mix(in srgb, var(--hack-seam-join) 0.6%, var(--color-white)) 90%, var(--color-white)) top / 100% var(--hack-seam-in) no-repeat, linear-gradient(to top, var(--hack-seam-join), color-mix(in srgb, var(--hack-seam-join) 79%, var(--color-white)) 10%, color-mix(in srgb, var(--hack-seam-join) 61%, var(--color-white)) 20%, color-mix(in srgb, var(--hack-seam-join) 46%, var(--color-white)) 30%, color-mix(in srgb, var(--hack-seam-join) 33%, var(--color-white)) 40%, color-mix(in srgb, var(--hack-seam-join) 22%, var(--color-white)) 50%, color-mix(in srgb, var(--hack-seam-join) 13%, var(--color-white)) 60%, color-mix(in srgb, var(--hack-seam-join) 7%, var(--color-white)) 70%, color-mix(in srgb, var(--hack-seam-join) 3%, var(--color-white)) 80%, color-mix(in srgb, var(--hack-seam-join) 0.6%, var(--color-white)) 90%, var(--color-white)) bottom / 100% var(--hack-seam-in) no-repeat, var(--color-white);position:relative}.hack-surface[data-astro-cid-vjcgudaw]:before,.hack-surface[data-astro-cid-vjcgudaw]:after{content:"";height:var(--hack-seam-out);pointer-events:none;position:absolute;left:0;right:0}.hack-surface[data-astro-cid-vjcgudaw]:before{background:radial-gradient(closest-side at 50% 82%, color-mix(in srgb, var(--color-hack-haze) 14%, transparent), color-mix(in srgb, var(--color-hack-haze) 9%, transparent) 35%, color-mix(in srgb, var(--color-hack-haze) 4%, transparent) 65%, color-mix(in srgb, var(--color-hack-haze) 1%, transparent) 85%, transparent), linear-gradient(to bottom, transparent 40%, color-mix(in srgb, var(--hack-seam-join) 2.2%, transparent) 46%, color-mix(in srgb, var(--hack-seam-join) 8.3%, transparent) 52%, color-mix(in srgb, var(--hack-seam-join) 17.4%, transparent) 58%, color-mix(in srgb, var(--hack-seam-join) 28.9%, transparent) 64%, color-mix(in srgb, var(--hack-seam-join) 41.8%, transparent) 70%, color-mix(in srgb, var(--hack-seam-join) 55.3%, transparent) 76%, color-mix(in srgb, var(--hack-seam-join) 68.7%, transparent) 82%, color-mix(in srgb, var(--hack-seam-join) 81.2%, transparent) 88%, color-mix(in srgb, var(--hack-seam-join) 91.9%, transparent) 94%, var(--hack-seam-join)), linear-gradient(to bottom, transparent, color-mix(in srgb, var(--color-hack-glow) 4%, transparent) 12%, color-mix(in srgb, var(--color-hack-glow) 10%, transparent) 24%, color-mix(in srgb, var(--color-hack-glow) 15%, transparent) 34%, color-mix(in srgb, var(--color-hack-glow) 18%, transparent) 44%, color-mix(in srgb, var(--color-hack-glow) 20%, transparent) 56%);bottom:100%}.hack-surface[data-astro-cid-vjcgudaw]:after{background:radial-gradient(closest-side at 50% 18%, color-mix(in srgb, var(--color-hack-haze) 14%, transparent), color-mix(in srgb, var(--color-hack-haze) 9%, transparent) 35%, color-mix(in srgb, var(--color-hack-haze) 4%, transparent) 65%, color-mix(in srgb, var(--color-hack-haze) 1%, transparent) 85%, transparent), linear-gradient(to top, transparent 40%, color-mix(in srgb, var(--hack-seam-join) 2.2%, transparent) 46%, color-mix(in srgb, var(--hack-seam-join) 8.3%, transparent) 52%, color-mix(in srgb, var(--hack-seam-join) 17.4%, transparent) 58%, color-mix(in srgb, var(--hack-seam-join) 28.9%, transparent) 64%, color-mix(in srgb, var(--hack-seam-join) 41.8%, transparent) 70%, color-mix(in srgb, var(--hack-seam-join) 55.3%, transparent) 76%, color-mix(in srgb, var(--hack-seam-join) 68.7%, transparent) 82%, color-mix(in srgb, var(--hack-seam-join) 81.2%, transparent) 88%, color-mix(in srgb, var(--hack-seam-join) 91.9%, transparent) 94%, var(--hack-seam-join)), linear-gradient(to top, transparent, color-mix(in srgb, var(--color-hack-glow) 4%, transparent) 12%, color-mix(in srgb, var(--color-hack-glow) 10%, transparent) 24%, color-mix(in srgb, var(--color-hack-glow) 15%, transparent) 34%, color-mix(in srgb, var(--color-hack-glow) 18%, transparent) 44%, color-mix(in srgb, var(--color-hack-glow) 20%, transparent) 56%);top:100%}
