.home-hero-copy[data-astro-cid-ge2uvauf]{animation:.28s cubic-bezier(.22,1,.36,1) both hero-copy-enter}@keyframes hero-copy-enter{0%{opacity:0;transform:translateY(12px)}}@media (prefers-reduced-motion:reduce){.home-hero-copy[data-astro-cid-ge2uvauf]{animation:none}}.constellation{border:1px solid color-mix(in srgb, var(--color-base-400) 32%, transparent);border-radius:var(--radius-32);background:#080a10;overflow:hidden}.constellation__toolbar{border-bottom:1px solid color-mix(in srgb, var(--color-base-400) 24%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;min-height:3.75rem;padding:.75rem 1.5rem;display:flex}.constellation__status,.constellation__reset{font-family:var(--font-jetbrains);font-size:var(--text-12);letter-spacing:.08em;text-transform:uppercase}.constellation__status{min-width:0;color:var(--color-base-200);text-transform:none}.constellation__reset{border:1px solid var(--color-base-200);border-radius:var(--radius-full);color:var(--color-base-50);cursor:pointer;background:0 0;padding:.5rem .75rem;transition:color .18s,background-color .18s}.constellation__reset:hover,.constellation__reset:focus-visible{color:var(--color-base-900);background:var(--color-base-50);outline:none}.constellation__viewport{isolation:isolate;min-height:clamp(29rem,52vw,43rem);position:relative;overflow:clip}.constellation__world,.constellation__entry-galaxies,.constellation__accent-stars{position:absolute;inset:0}.constellation__entry-galaxies{z-index:1}.constellation__galaxy{--galaxy-drift-scale:1;--galaxy-diameter:clamp(5.75rem, 14vw, 11.5rem);--galaxy-spin:-12deg;--galaxy-rim:#ff7c3c;top:var(--galaxy-y);left:var(--galaxy-x);width:clamp(9rem,18vw,16.5rem);height:clamp(7.5rem,15.75vw,13.5rem);color:var(--color-base-50);cursor:pointer;background:0 0;border:0;padding:0;transition:transform .72s cubic-bezier(.16,1,.3,1),opacity .42s;position:absolute;transform:translate(-50%,-50%)}.constellation__galaxy:nth-child(2n){--galaxy-spin:14deg;--galaxy-rim:#71dfd5}.constellation__galaxy:nth-child(3){--galaxy-spin:8deg}.constellation__galaxy:nth-child(4){--galaxy-spin:-18deg}.constellation__galaxy-drift{perspective:44rem;transition:transform .22s ease-out;position:absolute;inset:0;transform:translate(0,0)}.constellation[data-entry-motion=true] .constellation__galaxy-drift{animation:constellation-galaxy-drift var(--galaxy-drift-duration) ease-in-out var(--galaxy-drift-delay) infinite alternate}.constellation__galaxy-entrance{width:var(--galaxy-diameter);aspect-ratio:1;isolation:isolate;transform:translateX(-50%) scale(var(--galaxy-scale));transition:transform .72s cubic-bezier(.16,1,.3,1),opacity .42s;position:absolute;top:0;left:50%}.constellation__galaxy-rings{transform:rotateZ(var(--galaxy-spin));transform-style:preserve-3d;transition:transform .72s cubic-bezier(.16,1,.3,1),filter .18s;position:absolute;inset:0}.constellation__galaxy-ring{border:clamp(1.5px, .16vw, 2.5px) solid var(--galaxy-rim);box-shadow:0 .22rem 0 color-mix(in srgb, var(--galaxy-rim) 48%, transparent);transform-style:preserve-3d;border-radius:50%;position:absolute;inset:10%}.constellation__galaxy-ring--back{border-color:color-mix(in srgb, var(--galaxy-rim) 54%, var(--color-base-50));transform:rotateX(68deg)rotate(18deg)translateZ(-.3rem)}.constellation__galaxy-ring--middle{border-color:var(--galaxy-rim);transform:rotateY(64deg)rotate(-26deg)}.constellation__galaxy-ring--front{border-color:color-mix(in srgb, var(--galaxy-rim) 80%, var(--color-base-50));transform:rotateX(32deg)rotate(70deg)translateZ(.3rem)}.constellation__galaxy-icon{box-sizing:border-box;aspect-ratio:1;width:34%;color:var(--color-base-50);transform:translate(-50%, -50%) scale(var(--galaxy-icon-scale,1));z-index:2;background:#080a10;border-radius:50%;place-items:center;padding:clamp(.15rem,.45vw,.32rem);transition:transform .72s cubic-bezier(.16,1,.3,1);display:grid;position:absolute;top:50%;left:50%}.constellation__galaxy-icon>svg{fill:currentColor;width:100%;height:100%}.constellation__galaxy-mark{fill:currentColor;place-items:center;width:100%;height:100%;display:grid}.constellation__galaxy-mark--pair{justify-content:center;align-items:center;gap:.12rem;width:100%;height:100%;display:flex}.constellation__galaxy-mark--pair svg{fill:currentColor;width:47%;height:47%}.constellation__galaxy-entrance--pair .constellation__galaxy-icon{width:38%}.constellation__galaxy-mark:not(.constellation__galaxy-mark--pair) svg{fill:currentColor;width:100%;height:100%}.constellation__galaxy:hover .constellation__galaxy-rings,.constellation__galaxy:focus-visible .constellation__galaxy-rings{filter:brightness(1.18)}.constellation__galaxy-label{top:calc(var(--galaxy-diameter) + 1rem);width:min(100%,14rem);font-family:var(--font-jetbrains);text-align:center;text-shadow:0 2px 12px var(--color-base-900);font-size:clamp(1rem,1.35vw,1.125rem);font-weight:700;line-height:1.2;transition:opacity .16s;position:absolute;left:50%;transform:translate(-50%)}.constellation__galaxy:focus-visible{outline:2px solid var(--color-base-50);outline-offset:5px}.constellation__accent-stars{pointer-events:none}.constellation__accent-stars span{clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);opacity:.82;background:#fff5ef;width:.8rem;height:.8rem;position:absolute}.constellation__accent-stars span:first-child{top:12%;left:12%}.constellation__accent-stars span:nth-child(2){background:#71dfd5;width:.48rem;height:.48rem;top:20%;left:54%}.constellation__accent-stars span:nth-child(3){width:.56rem;height:.56rem;top:46%;right:9%}.constellation__accent-stars span:nth-child(4){background:#ff9b69;width:.46rem;height:.46rem;bottom:13%;left:46%}.constellation__accent-stars span:nth-child(5){background:#71dfd5;width:.65rem;height:.65rem;bottom:20%;right:27%}.constellation[data-selected=true] .constellation__entry-galaxies{pointer-events:none}.constellation[data-selected=true] .constellation__galaxy{opacity:0}.constellation[data-selected=true] .constellation__galaxy[data-chosen=true]{opacity:1;transition:transform .72s cubic-bezier(.16,1,.3,1);transform:translate(-50%,-50%)}.constellation[data-selected=true][data-handoff-ready=true] .constellation__galaxy[data-chosen=true]{transform:translate(-50%, -50%) translate(var(--handoff-x), var(--handoff-y));transition:transform .72s cubic-bezier(.16,1,.3,1),opacity .18s}.constellation[data-selected=true][data-handoff-ready=true] .constellation__galaxy[data-chosen=true] .constellation__galaxy-entrance{transform:translateX(-50%) scale(calc(var(--galaxy-scale) * var(--handoff-scale)))}.constellation[data-selected=true][data-handoff-ready=true] .constellation__galaxy[data-chosen=true] .constellation__galaxy-rings{transform:rotate(0)}.constellation[data-selected=true][data-handoff-ready=true] .constellation__galaxy[data-chosen=true] .constellation__galaxy-icon{--galaxy-icon-scale:1.47}.constellation[data-selected=true] .constellation__galaxy[data-chosen=true] .constellation__galaxy-label,.constellation[data-selected=true][data-handoff-complete=true][data-handoff-persistent=false] .constellation__galaxy[data-chosen=true]{opacity:0}.constellation[data-handoff-persistent=true] .constellation__node[data-selected=true] .constellation__icon{visibility:visible}.constellation[data-selected=true] .constellation__galaxy-drift{animation:none}@keyframes constellation-galaxy-drift{0%{transform:translate3d(calc(var(--galaxy-drift-x) * var(--galaxy-drift-scale) * -1), calc(var(--galaxy-drift-y) * var(--galaxy-drift-scale) * -1), 0)}to{transform:translate3d(calc(var(--galaxy-drift-x) * var(--galaxy-drift-scale)), calc(var(--galaxy-drift-y) * var(--galaxy-drift-scale)), 0)}}.constellation__stars{pointer-events:none;transition:transform .8s cubic-bezier(.16,1,.3,1),opacity .8s;position:absolute;inset:-18%}.constellation__stars--far{opacity:.3;background-image:radial-gradient(circle at 9% 16%,#fff 0 .5px,#0000 .9px),radial-gradient(circle at 27% 81%,#fff 0 .45px,#0000 .85px),radial-gradient(circle at 49% 32%,#fff 0 .55px,#0000 .95px),radial-gradient(circle at 71% 12%,#fff 0 .45px,#0000 .85px),radial-gradient(circle at 87% 70%,#fff 0 .5px,#0000 .9px),radial-gradient(circle at 96% 38%,#fff 0 .4px,#0000 .8px);background-size:187px 211px,251px 179px,293px 229px,223px 269px,281px 197px,317px 241px}.constellation__stars--mid{opacity:.42;background-image:radial-gradient(circle at 14% 39%,#fff 0 .75px,#0000 1.2px),radial-gradient(circle at 38% 10%,#fff 0 .65px,#0000 1.1px),radial-gradient(circle at 68% 78%,#fff 0 .75px,#0000 1.25px),radial-gradient(circle at 91% 49%,#fff 0 .65px,#0000 1.1px);background-size:311px 251px,359px 293px,337px 277px,389px 317px}.constellation__stars--near{opacity:.6;background-image:radial-gradient(circle at 20% 23%,#fff 0 1px,#0000 1.7px),radial-gradient(circle at 57% 84%,#fff 0 1.1px,#0000 1.8px),radial-gradient(circle at 85% 30%,#fff 0 1px,#0000 1.7px)}.constellation[data-selected=true] .constellation__stars--far{transform:translate(-3%,2%)scale(1.1)}.constellation[data-selected=true] .constellation__stars--mid{transform:translate(4%,-3%)scale(1.24)}.constellation[data-selected=true] .constellation__stars--near{transform:translate(-7%,5%)scale(1.42)}.constellation__orbits{width:100%;height:100%;position:absolute;overflow:visible}.constellation__orbit{fill:none;stroke:#71dfd5b3;stroke-width:1px;stroke-dasharray:3 7;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .32s}.constellation[data-selected=true] .constellation__orbit{opacity:.72}.constellation__node{top:var(--node-y);left:var(--node-x);width:7rem;color:var(--color-base-0);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;transition:opacity .25s,transform .18s;display:grid;position:absolute;transform:translate(-50%,-50%)}.constellation__node[data-interactive=false]{cursor:default}.constellation__node[data-visible=false]{opacity:0;pointer-events:none}.constellation__node[data-selected=true]{z-index:2}.constellation__node:hover,.constellation__node:focus-visible{outline:none}.constellation__node:focus-visible .constellation__node-motion{outline:2px solid var(--color-base-0);outline-offset:5px}.constellation__node[data-interactive=true]:hover .constellation__icon,.constellation__node[data-interactive=true]:focus-visible .constellation__icon{color:var(--color-primary-300)}.constellation__icon,.constellation__node-motion{place-items:center;display:grid}.constellation__node-motion{will-change:transform;transition:transform .62s cubic-bezier(.16,1,.3,1)}.constellation__icon svg,.constellation__icon img{fill:currentColor;width:2.2rem;height:2.2rem}.constellation__combined-icon{align-items:center;gap:.35rem;display:flex}.constellation__combined-icon svg{width:1.25rem;height:1.25rem}.constellation__label{color:var(--color-base-50);font-family:var(--font-jetbrains);font-size:var(--text-12);text-align:center;text-shadow:0 2px 8px var(--color-base-900);margin-top:.65rem;font-weight:700;line-height:1.2}.constellation__node[data-selected=true] .constellation__icon{width:5.25rem;height:5.25rem;box-shadow:none;background:#ff5702;border-radius:50%}.constellation[data-selected-id=javascript] .constellation__node[data-selected=true] .constellation__icon,.constellation[data-selected-id=react] .constellation__node[data-selected=true] .constellation__icon{background:#71dfd5}.constellation__node[data-selected=true] .constellation__icon svg,.constellation__node[data-selected=true] .constellation__icon img{width:2.65rem;height:2.65rem;fill:var(--color-base-50)}.constellation__node[data-selected=true] .constellation__galaxy-mark svg{fill:#080a10;width:2.65rem;height:2.65rem}.constellation__node[data-selected=true] .constellation__combined-icon svg{width:1.5rem;height:1.5rem}.constellation[data-selected-id=javascript] .constellation__node[data-selected=true] .constellation__galaxy-mark--pair{gap:.22rem;width:auto;height:1.2rem}.constellation[data-selected-id=javascript] .constellation__node[data-selected=true] .constellation__galaxy-mark--pair svg{fill:#080a10;width:1.2rem;height:1.2rem}.constellation__node[data-selected=true] .constellation__label{color:var(--color-primary-200);margin-top:.85rem}.constellation[data-selected=true] .constellation__node[data-visible=true]{transition-delay:.64s}.constellation__node[data-secondary=true] .constellation__icon,.constellation__node[data-secondary=true] .constellation__label{opacity:0;transition:opacity .22s,transform .22s cubic-bezier(.16,1,.3,1)}.constellation__node[data-secondary=true] .constellation__icon{transform:scale(.7)}.constellation__node[data-secondary=true] .constellation__label{transform:translateY(-4px)}.constellation__node[data-secondary=true][data-visible=true] .constellation__icon{opacity:1;transition-delay:.18s;transform:scale(1)}.constellation__node[data-secondary=true][data-visible=true] .constellation__label{opacity:1;transition-delay:.29s;transform:translateY(0)}.constellation-mobile{gap:.75rem;display:grid}.constellation-mobile__disclosure{border:1px solid color-mix(in srgb, var(--color-base-400) 32%, transparent);background:#080a10;border-radius:.9rem;overflow:clip}.constellation-mobile__disclosure summary{min-height:3.5rem;color:var(--color-base-50);font-family:var(--font-jetbrains);cursor:pointer;grid-template-columns:2rem 2.2rem minmax(0,1fr) 2.5rem;align-items:center;gap:.65rem;padding:.65rem .85rem;font-size:1rem;font-weight:700;line-height:1.2;list-style:none;display:grid}.constellation-mobile__disclosure summary::-webkit-details-marker{display:none}.constellation-mobile__gyro{width:1.7rem;height:1.7rem;position:relative}.constellation-mobile__gyro span{border:1.5px solid var(--color-primary-400);border-radius:50%;position:absolute;inset:.15rem;transform:rotateX(65deg)rotate(25deg)}.constellation-mobile__gyro span+span{border-color:var(--color-secondary-400);transform:rotateY(65deg)rotate(-22deg)}.constellation-mobile__root-icon,.constellation-mobile__tool-icon{place-items:center;display:grid}.constellation-mobile__root-icon svg,.constellation-mobile__root-icon img{fill:currentColor;width:1.75rem;height:1.75rem}.constellation-mobile__root-icon .constellation__combined-icon{gap:.2rem}.constellation-mobile__root-icon .constellation__combined-icon svg{width:.8rem;height:.8rem}.constellation-mobile__toggle{border:1px solid color-mix(in srgb, var(--color-primary-400) 70%, transparent);border-radius:50%;grid-column:4;width:3rem;height:3rem;position:relative}.constellation-mobile__toggle:before,.constellation-mobile__toggle:after{background:var(--color-primary-300);content:"";width:.7rem;height:1.5px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.constellation-mobile__toggle:after{transform:translate(-50%,-50%)rotate(90deg)}.constellation-mobile__disclosure[open] .constellation-mobile__toggle:after{transform:translate(-50%,-50%)rotate(0)}.constellation-mobile__disclosure--other summary>span:nth-child(2){grid-column:2/span 2}.constellation-mobile__tools{border-top:1px solid color-mix(in srgb, var(--color-base-400) 20%, transparent);grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:0;padding:0 .85rem .85rem;list-style:none;animation:.18s ease-out constellation-mobile-open;display:grid}.constellation-mobile__tools li{min-width:0;color:var(--color-base-100);font-family:var(--font-jetbrains);align-items:center;gap:.45rem;padding-top:.5rem;font-size:.875rem;line-height:1.4;display:flex}.constellation-mobile__tool-icon svg,.constellation-mobile__tool-icon img{fill:currentColor;flex:none;width:1rem;height:1rem}.constellation-mobile__tool-icon .constellation__combined-icon{gap:.12rem}.constellation-mobile__tool-icon .constellation__combined-icon svg{width:.55rem;height:.55rem}@keyframes constellation-mobile-open{0%{opacity:0;transform:translateY(-.2rem)}to{opacity:1;transform:translateY(0)}}@media (width<=42rem){.constellation__toolbar{padding-inline:1rem}.constellation__status,.constellation__reset{font-size:.625rem}.constellation__viewport{min-height:38rem}.constellation__galaxy{--galaxy-diameter:5.5rem;--galaxy-drift-scale:.68;top:var(--galaxy-mobile-y);left:var(--galaxy-mobile-x);width:7.75rem;height:7.75rem}.constellation__galaxy-label{font-size:.75rem;top:auto;bottom:.45rem}.constellation__galaxy-mark--pair{gap:.22rem}.constellation__galaxy-mark--pair svg{width:50%;height:50%}.constellation__node{width:5.75rem}.constellation__icon svg,.constellation__icon img{width:1.75rem;height:1.75rem}.constellation__label{font-size:.625rem}.constellation__node[data-selected=true] .constellation__icon{width:4.5rem;height:4.5rem}.constellation__node[data-selected=true] .constellation__icon svg,.constellation__node[data-selected=true] .constellation__icon img{width:2.25rem;height:2.25rem}.constellation__node[data-selected=true] .constellation__combined-icon svg{width:1.35rem;height:1.35rem}}@media (prefers-reduced-motion:reduce){.constellation__galaxy,.constellation__galaxy-drift,.constellation__galaxy-entrance,.constellation__galaxy-rings,.constellation__galaxy-icon,.constellation__galaxy-label,.constellation__stars,.constellation__node,.constellation__reset,.constellation__node-motion,.constellation__node[data-secondary=true] .constellation__icon,.constellation__node[data-secondary=true] .constellation__label{transition:none}}.project-drawer[data-astro-cid-gm7hxvoa]{background:0 0;border:none;width:100%;max-width:none;height:100%;max-height:none;padding:0;overflow:visible}.project-drawer[data-astro-cid-gm7hxvoa]::backdrop{background:0 0;transition:background .3s ease-out}.project-drawer[data-astro-cid-gm7hxvoa].open::backdrop{background:#000c}.drawer-panel[data-astro-cid-gm7hxvoa]{border-left:1px solid var(--color-base-600);background-color:var(--color-base-800);width:100%;max-width:480px;height:100%;transition:transform .3s ease-out;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%)}.project-drawer[data-astro-cid-gm7hxvoa].open .drawer-panel[data-astro-cid-gm7hxvoa]{transform:translate(0)}@media (width<=767px){.drawer-panel[data-astro-cid-gm7hxvoa]{border-top:1px solid;border-left:none;border-radius:24px 24px 0 0;max-width:none;inset:auto 0 0;transform:translateY(100%)}.project-drawer[data-astro-cid-gm7hxvoa].open .drawer-panel[data-astro-cid-gm7hxvoa]{transform:translateY(0)}}
