:is(html:has(.hub),body:has(.hub)){height:100%;overflow:hidden}@media (max-height:340px){:is(html:has(.hub),body:has(.hub)){height:auto;overflow:auto}}.hub{--bg:#0c0d10;--s1:#131419;--b:#25272e;--bs:#33363f;--t:#e6e7ea;--tm:#9a9ca4;--tf:#71747c;--ok:#74c496;--w:#d9a441;--icon:64px;--gap:14px;background:var(--bg);height:100dvh;color:var(--t);font-family:var(--font-satoshi), "Satoshi", -apple-system, system-ui, sans-serif;-webkit-font-smoothing:antialiased;flex-direction:column;display:flex;position:relative;overflow:hidden}.hub p{margin:0}.hub:before{content:"";pointer-events:none;background:radial-gradient(45% 45% at 50% 100%,#5b7fa652,#0000 70%),radial-gradient(40% 35% at 30% 90%,#6d5a9c38,#0000 70%);position:absolute;inset:0}.hub .hub__top,.hub .hub__hero{z-index:1;position:relative}.hub .hub__top{justify-content:space-between;align-items:center;padding:32px clamp(20px,4.5vw,64px);display:flex}.hub .hub__name{color:var(--t);letter-spacing:-.02em;font-size:17px;font-weight:900;text-decoration:none}.hub .hub__links{align-items:center;gap:22px;font-size:13.5px;display:flex}.hub .hub__links a{color:var(--tm);text-decoration:none;transition:color .15s}.hub .hub__links a:hover{color:var(--t)}.hub .langs{font-family:var(--font-jetbrains), "JetBrains Mono", monospace;letter-spacing:.1em;gap:2px;margin-left:4px;font-size:11px;display:flex}.hub .hub__links .langs__l{color:var(--tf);border-radius:5px;padding:2px 6px}.hub .hub__links .langs__l:hover{color:var(--t)}.hub .hub__links .langs__l--on{box-shadow:inset 0 0 0 1px var(--bs);color:var(--t)}.hub .hub__hero{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:0;padding:0 20px 4vh;display:flex}.hub .hub__hero h1{letter-spacing:-.04em;text-wrap:balance;margin:0;font-size:clamp(42px,6vw,68px);font-weight:900;line-height:1}.hub .hub__hero p{text-wrap:balance;max-width:44ch;color:var(--tm);margin-top:18px;font-size:16px;line-height:1.5}.hub .dock-hub{z-index:1;flex-direction:column;flex:none;align-items:center;gap:clamp(16px,3vh,26px);margin:0 auto clamp(20px,5vh,56px);display:flex;position:relative}.hub .dock-hub__card{border:1px solid var(--bs);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#131419eb;border-radius:16px;width:380px;padding:22px;display:grid;position:relative;box-shadow:0 40px 80px -30px #000000f2}.hub .dock-hub__face{visibility:hidden;opacity:0;grid-area:1/1;transition:opacity .2s,translate .25s cubic-bezier(.2,1,.4,1),visibility .2s;translate:0 4px}.hub .dock-hub__face--on{visibility:visible;opacity:1;translate:none}.hub .dock-hub__head{justify-content:space-between;align-items:center;gap:12px;display:flex}.hub .dock-hub__head b{letter-spacing:-.02em;font-size:24px;font-weight:900}.hub .dock-hub__card p{color:var(--tm);margin-top:8px;font-size:14px;line-height:1.55}.hub .dock-hub__foot{justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}.hub .dock-hub__plats{gap:6px;display:flex}.hub .dock-hub__pill{border:1px solid var(--bs);color:var(--tm);white-space:nowrap;border-radius:6px;padding:3px 9px;font-size:11.5px;display:inline-flex}.hub .dock-hub__pill--ok{color:var(--ok);border-color:#74c49666}.hub .dock-hub__soon{color:var(--w);font-family:var(--font-jetbrains), "JetBrains Mono", monospace;letter-spacing:.08em;text-transform:uppercase;background:#d9a44129;border-radius:6px;padding:3px 9px;font-size:10px}.hub .dock-hub__open{color:#7da3cc;white-space:nowrap;font-size:14px;font-weight:700;text-decoration:none}.hub .dock-hub__open:hover{text-decoration:underline}.hub .dock-hub__arrow{bottom:-8px;left:calc(190px + (var(--i) - (var(--n) - 1) / 2) * (var(--icon) + var(--gap)));border-right:1px solid var(--bs);border-bottom:1px solid var(--bs);background:#131419;width:14px;height:14px;margin-left:-7px;transition:left .3s cubic-bezier(.2,1,.4,1);position:absolute;rotate:45deg}.hub .dock-hub__bar{align-items:flex-end;gap:var(--gap);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#1e202699;border:1px solid #ffffff1f;border-radius:26px;padding:12px 16px;display:flex;box-shadow:0 30px 60px -20px #000000e6}.hub .dock-hub__item{width:var(--icon);color:var(--tf);outline:none;flex-direction:column;align-items:center;display:flex;position:relative}.hub .dock-hub__icon{width:var(--icon);height:var(--icon);border-radius:15px;place-items:center;font-size:22px;transition:translate .25s cubic-bezier(.2,1,.4,1),scale .25s cubic-bezier(.2,1,.4,1),box-shadow .25s;display:grid}.hub .dock-hub__item--on .dock-hub__icon{translate:0 -12px;scale:1.18;box-shadow:0 16px 30px -10px #000c}.hub .dock-hub__item:focus-visible .dock-hub__icon{outline-offset:4px;outline:2px solid #7da3cc}.hub .dock-hub__run{background:var(--t);border-radius:50%;width:5px;height:5px;position:absolute;bottom:-8px}.hub .dock-hub__item--free .dock-hub__icon{border:1px dashed var(--bs)}.hub .hub-redact{background:repeating-linear-gradient(135deg,#05060a 0 5px,#12141a 5px 10px);border-radius:2px;display:inline-block;box-shadow:inset 0 0 0 1px #ffffff14}.hub .dock-hub__icon.hub-redact{border-radius:15px}@media (max-width:520px){.hub .dock-hub__card{width:calc(100vw - 32px)}.hub .dock-hub__arrow{display:none}.hub .dock-hub__foot{flex-direction:column;align-items:flex-start}}@media (max-height:560px){.hub{--icon:48px;--gap:12px}.hub .hub__top{padding-block:16px}.hub .hub__hero{padding-bottom:12px}.hub .hub__hero h1{font-size:36px}.hub .hub__hero p{margin-top:8px;font-size:14px}.hub .dock-hub{gap:14px;margin-bottom:14px}.hub .dock-hub__card{padding:14px 18px}.hub .dock-hub__head b{font-size:20px}.hub .dock-hub__card p{margin-top:4px}.hub .dock-hub__foot{margin-top:10px}.hub .dock-hub__bar{border-radius:20px;padding:9px 14px}.hub .dock-hub__icon{border-radius:12px}.hub .dock-hub__item--on .dock-hub__icon{translate:0 -8px}}@media (max-height:340px){.hub{height:auto;min-height:100dvh}}.hub .hub__word{vertical-align:bottom;margin:-.14em -.04em -.18em;padding:.14em .04em .18em;display:inline-block;overflow:hidden}.hub .hub__word+.hub__word{margin-left:.24em}.hub .hub__word>span{display:inline-block}.hub:not(.hub--seen):before{animation:1.4s cubic-bezier(.2,1,.4,1) both hub-aurora}.hub:not(.hub--seen) .hub__top{animation:.6s .1s both hub-fade}.hub:not(.hub--seen) .hub__word>span{animation:hub-word .75s cubic-bezier(.2, 1, .3, 1) calc(.22s + var(--w) * 90ms) both}.hub:not(.hub--seen) .hub__hero p{animation:.6s .55s both hub-fade}.hub:not(.hub--seen) .dock-hub__bar{animation:.7s cubic-bezier(.2,1,.3,1) .55s both hub-dock}.hub:not(.hub--seen) .dock-hub__item{animation:hub-pop .5s cubic-bezier(.3, 1.5, .5, 1) calc(.8s + var(--k) * 80ms) both}.hub:not(.hub--seen) .dock-hub__item:first-child .dock-hub__icon{animation:.75s ease-in-out 1.05s both hub-launch}.hub:not(.hub--seen) .dock-hub__card{transform-origin:50% 100%;animation:.5s cubic-bezier(.2,1,.3,1) 1.45s both hub-card}@media (prefers-reduced-motion:reduce){.hub *,.hub{transition:none!important;animation:none!important}}@keyframes hub-aurora{0%{opacity:0;transform:translateY(90px)scale(.92)}}@keyframes hub-fade{0%{opacity:0;transform:translateY(10px)}}@keyframes hub-word{0%{transform:translateY(110%)}}@keyframes hub-dock{0%{opacity:0;transform:translateY(140%)}}@keyframes hub-pop{0%{opacity:0;transform:scale(.4)}}@keyframes hub-launch{0%,to{transform:none}25%{transform:translateY(-22px)}50%{transform:none}72%{transform:translateY(-10px)}}@keyframes hub-card{0%{opacity:0;transform:translateY(14px)scale(.92)}}
