:root,.hub-shell{--hub-anim-dur: 1;--hub-anim-card-rise: 22px;--hub-anim-card-stagger: .11s;--hub-anim-entry-base: .42s;--hub-anim-shine-dur: 1.1s;--hub-anim-tilt-y: -2.2deg;--hub-anim-tilt-x: 1deg;--hub-anim-shake-amp: 1.5px;--hub-anim-modal-scale: 1.06;--hub-anim-iris-dur: .42s}@keyframes hub-card-land{0%{opacity:0;transform:translateY(var(--hub-anim-card-rise)) rotate(-.9deg);filter:blur(5px)}55%{opacity:1;filter:blur(0)}78%{transform:translateY(-2px) rotate(.12deg);filter:blur(0)}to{opacity:1;transform:translateY(0) rotate(0);filter:blur(0)}}@keyframes hub-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.card-seal{opacity:1;inset:auto auto 14px 14px;transform:rotate(-3deg);background:#0d0a068c;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:6}.card-seal:not(.card-seal--soon){color:#d83828;text-shadow:0 0 1px #d83828,.5px 0 0 rgba(184,40,24,.35);border-color:#c8321e;outline-color:#b8281859;box-shadow:0 0 0 1px #b8281826,0 2px 6px #00000080}.card-seal.card-seal--soon{color:var(--hub-gold-hi);text-shadow:0 0 1px var(--hub-gold-hi),.5px 0 0 rgba(240,208,128,.35);border-color:#f0d080cc;outline-color:#f0d0804d;box-shadow:0 0 0 1px #c8971a26,0 2px 6px #00000080,0 0 14px #f0d08026}.card[data-state=locked]:has(.card-link:hover) .card-seal,.card[data-state=locked][data-hover=true] .card-seal{background:#140e08bf}.card[data-state=locked] .card-meta-locked{display:none}.card[data-state=locked] .card-meta:not(:has(.card-meta-block)){display:none}.card[data-state=locked] .card-rule{margin-bottom:6px}.card[data-state=locked] .card-body{padding-bottom:56px}.card-title{overflow-wrap:anywhere;word-break:break-word;hyphens:auto;text-wrap:pretty}.card-desc{overflow-wrap:break-word;hyphens:auto;text-wrap:pretty}.card-meta-value{overflow-wrap:anywhere}.card[data-mode=external] .card-meta-locked{padding-right:78px;flex-wrap:wrap;row-gap:4px}.card-meta-locked{flex-wrap:wrap;row-gap:4px}@container hub (max-width: 400px){.card .card-title{font-size:clamp(17px,5.5cqi,22px)}.card .card-desc{font-size:clamp(13px,3.6cqi,15px)}}@keyframes hub-stamp-press{0%{opacity:0;transform:scale(1.8) rotate(2deg);filter:blur(3px)}60%{opacity:1;transform:scale(.94) rotate(-1deg);filter:blur(0)}to{opacity:1;transform:scale(1) rotate(0);filter:blur(0)}}@keyframes hub-seal-press{0%{opacity:0;transform:scale(1.8) rotate(2deg);filter:blur(3px)}60%{opacity:1;transform:scale(.94) rotate(-4deg);filter:blur(0)}to{opacity:1;transform:scale(1) rotate(-3deg);filter:blur(0)}}@keyframes hub-index-attach{0%{opacity:0;transform:translateY(-6px) rotate(-1deg)}to{opacity:1;transform:translateY(0) rotate(0)}}@keyframes hub-title-shine{0%{background-position:200% 0;opacity:1}to{background-position:-100% 0;opacity:1}}@keyframes hub-stamp-hit{0%{opacity:0;transform:scale(1.3) rotate(-1.4deg);filter:blur(4px)}55%{opacity:1;transform:scale(.94) rotate(-.5deg);filter:blur(0)}78%{transform:scale(1.035) rotate(.25deg)}to{opacity:1;transform:scale(1) rotate(0);filter:blur(0)}}@keyframes hub-shake{0%,to{transform:translate(0)}18%{transform:translate(calc(var(--hub-anim-shake-amp) * -1),.8px)}35%{transform:translate(var(--hub-anim-shake-amp),-1px)}55%{transform:translate(calc(var(--hub-anim-shake-amp) * -.6),.5px)}78%{transform:translate(calc(var(--hub-anim-shake-amp) * .4),-.2px)}}@keyframes hub-modal-backdrop{0%{backdrop-filter:blur(0) saturate(1);-webkit-backdrop-filter:blur(0) saturate(1);opacity:0}to{backdrop-filter:blur(8px) saturate(.9);-webkit-backdrop-filter:blur(8px) saturate(.9);opacity:1}}@keyframes hub-modal-impact{0%{opacity:0;transform:scale(var(--hub-anim-modal-scale)) translateY(-4px);filter:blur(3px)}45%{opacity:1;filter:blur(0)}to{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}@keyframes hub-modal-exit{0%{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}to{opacity:0;transform:scale(.96) translateY(2px);filter:blur(2px)}}@keyframes hub-iris-close{0%{clip-path:circle(150% at 50% 50%)}to{clip-path:circle(0% at 50% 50%)}}@keyframes hub-iris-flash{0%{opacity:0}35%{opacity:1}to{opacity:0}}@keyframes hub-seal-restamp{0%{transform:rotate(-7deg) scale(.86);filter:blur(.6px)}55%{transform:rotate(-1deg) scale(1.07);filter:blur(0)}to{transform:rotate(-3deg) scale(1);filter:blur(0)}}@keyframes hub-lock-glow{0%,to{box-shadow:0 0 0 transparent;color:var(--hub-gold-ink)}35%{box-shadow:0 0 12px #f0d0808c,inset 0 0 6px #f0d08040;color:var(--hub-gold-hi)}70%{box-shadow:0 0 18px #f0d08059,inset 0 0 4px #f0d08026}}.hub-shell.is-entering .hub-header,.hub-shell.is-entering .hub-eyebrow,.hub-shell.is-entering .hub-grid>.card,.hub-shell.is-entering .hub-coming-soon,.hub-shell.is-entering .hub-footer,.hub-shell.is-entering .card-stamp,.hub-shell.is-entering .card-seal,.hub-shell.is-entering .card-index,.hub-shell.is-entering .hub-back,.hub-shell.is-entering .module-error{opacity:0}.hub-shell.has-entered .hub-header{animation:hub-fade-up calc(.55s * var(--hub-anim-dur)) var(--hub-ease-out) .18s both}.hub-shell.has-entered .hub-eyebrow{animation:hub-fade-up calc(.45s * var(--hub-anim-dur)) var(--hub-ease-out) .32s both}.hub-shell.has-entered .hub-grid>.card{animation:hub-card-land calc(.72s * var(--hub-anim-dur)) var(--hub-ease-out) both;transform-origin:50% 100%}.hub-shell.has-entered .hub-grid>.card:nth-child(1){animation-delay:calc(var(--hub-anim-entry-base) + 0 * var(--hub-anim-card-stagger))}.hub-shell.has-entered .hub-grid>.card:nth-child(2){animation-delay:calc(var(--hub-anim-entry-base) + 1 * var(--hub-anim-card-stagger))}.hub-shell.has-entered .hub-grid>.card:nth-child(3){animation-delay:calc(var(--hub-anim-entry-base) + 2 * var(--hub-anim-card-stagger))}.hub-shell.has-entered .hub-grid>.card:nth-child(4){animation-delay:calc(var(--hub-anim-entry-base) + 3 * var(--hub-anim-card-stagger))}.hub-shell.has-entered .hub-grid>.card:nth-child(5){animation-delay:calc(var(--hub-anim-entry-base) + 4 * var(--hub-anim-card-stagger))}.hub-shell.has-entered .hub-grid>.card:nth-child(6){animation-delay:calc(var(--hub-anim-entry-base) + 5 * var(--hub-anim-card-stagger))}.hub-shell.has-entered .hub-grid>.card .card-index{animation:hub-index-attach calc(.38s * var(--hub-anim-dur)) var(--hub-ease-out) both}.hub-shell.has-entered .hub-grid>.card:nth-child(1) .card-index{animation-delay:calc(var(--hub-anim-entry-base) + 0 * var(--hub-anim-card-stagger) + .35s)}.hub-shell.has-entered .hub-grid>.card:nth-child(2) .card-index{animation-delay:calc(var(--hub-anim-entry-base) + 1 * var(--hub-anim-card-stagger) + .35s)}.hub-shell.has-entered .hub-grid>.card:nth-child(3) .card-index{animation-delay:calc(var(--hub-anim-entry-base) + 2 * var(--hub-anim-card-stagger) + .35s)}.hub-shell.has-entered .hub-grid>.card:nth-child(4) .card-index{animation-delay:calc(var(--hub-anim-entry-base) + 3 * var(--hub-anim-card-stagger) + .35s)}.hub-shell.has-entered .hub-grid>.card:nth-child(5) .card-index{animation-delay:calc(var(--hub-anim-entry-base) + 4 * var(--hub-anim-card-stagger) + .35s)}.hub-shell.has-entered .hub-grid>.card .card-stamp{animation:hub-stamp-press calc(.45s * var(--hub-anim-dur)) cubic-bezier(.6,-.2,.4,1.4) both;transform-origin:70% 30%}.hub-shell.has-entered .hub-grid>.card:nth-child(1) .card-stamp{animation-delay:calc(var(--hub-anim-entry-base) + 0 * var(--hub-anim-card-stagger) + .55s)}.hub-shell.has-entered .hub-grid>.card:nth-child(2) .card-stamp{animation-delay:calc(var(--hub-anim-entry-base) + 1 * var(--hub-anim-card-stagger) + .55s)}.hub-shell.has-entered .hub-grid>.card[data-state=locked] .card-seal{animation:hub-seal-press calc(.5s * var(--hub-anim-dur)) cubic-bezier(.6,-.2,.4,1.4) both;transform-origin:30% 70%}.hub-shell.has-entered .hub-grid>.card[data-state=locked]:nth-child(1) .card-seal{animation-delay:calc(var(--hub-anim-entry-base) + 0 * var(--hub-anim-card-stagger) + .55s)}.hub-shell.has-entered .hub-grid>.card[data-state=locked]:nth-child(2) .card-seal{animation-delay:calc(var(--hub-anim-entry-base) + 1 * var(--hub-anim-card-stagger) + .55s)}.hub-shell.has-entered .hub-grid>.card[data-state=locked]:nth-child(3) .card-seal{animation-delay:calc(var(--hub-anim-entry-base) + 2 * var(--hub-anim-card-stagger) + .55s)}.hub-shell.has-entered .hub-grid>.card[data-state=locked]:nth-child(4) .card-seal{animation-delay:calc(var(--hub-anim-entry-base) + 3 * var(--hub-anim-card-stagger) + .55s)}.hub-shell.has-entered .hub-grid>.card[data-state=locked]:nth-child(5) .card-seal{animation-delay:calc(var(--hub-anim-entry-base) + 4 * var(--hub-anim-card-stagger) + .55s)}.hub-shell.has-entered .hub-coming-soon{animation:hub-fade-up calc(.5s * var(--hub-anim-dur)) var(--hub-ease-out) calc(var(--hub-anim-entry-base) + var(--cards-count, 1) * var(--hub-anim-card-stagger) + .25s) both}.hub-shell.has-entered .hub-footer{animation:hub-fade-up calc(.5s * var(--hub-anim-dur)) var(--hub-ease-out) calc(var(--hub-anim-entry-base) + var(--cards-count, 1) * var(--hub-anim-card-stagger) + .4s) both}.hub-shell.has-entered .hub-back{animation:hub-fade-up calc(.45s * var(--hub-anim-dur)) var(--hub-ease-out) .22s both}.hub-shell.has-entered .module-error{animation:hub-fade-up calc(.55s * var(--hub-anim-dur)) var(--hub-ease-out) .42s both}.hub-shell:not([data-hover-variant]) .card[data-state=accessible] .card-title,.hub-shell[data-hover-variant=shine] .card[data-state=accessible] .card-title,.hub-shell[data-hover-variant=both] .card[data-state=accessible] .card-title{position:relative;isolation:isolate}.hub-shell:not([data-hover-variant]) .card[data-state=accessible] .card-title:after,.hub-shell[data-hover-variant=shine] .card[data-state=accessible] .card-title:after,.hub-shell[data-hover-variant=both] .card[data-state=accessible] .card-title:after{content:"";position:absolute;inset:-70% -18% -50%;background:linear-gradient(105deg,transparent 30%,rgba(255,245,200,.35) 47%,rgba(255,240,180,.65) 50%,rgba(255,245,200,.35) 53%,transparent 70%);background-size:200% 100%;background-position:200% 0;mix-blend-mode:screen;pointer-events:none;opacity:0;z-index:2;-webkit-mask:linear-gradient(180deg,transparent 0%,#000 35%,#000 65%,transparent 100%);mask:linear-gradient(180deg,transparent 0%,#000 35%,#000 65%,transparent 100%)}.hub-shell:not([data-hover-variant]) .card[data-state=accessible]:has(.card-link:hover) .card-title:after,.hub-shell:not([data-hover-variant]) .card[data-state=accessible]:has(.card-link:focus-visible) .card-title:after,.hub-shell:not([data-hover-variant]) .card[data-state=accessible][data-hover=true] .card-title:after,.hub-shell[data-hover-variant=shine] .card[data-state=accessible]:has(.card-link:hover) .card-title:after,.hub-shell[data-hover-variant=shine] .card[data-state=accessible]:has(.card-link:focus-visible) .card-title:after,.hub-shell[data-hover-variant=shine] .card[data-state=accessible][data-hover=true] .card-title:after,.hub-shell[data-hover-variant=both] .card[data-state=accessible]:has(.card-link:hover) .card-title:after,.hub-shell[data-hover-variant=both] .card[data-state=accessible]:has(.card-link:focus-visible) .card-title:after,.hub-shell[data-hover-variant=both] .card[data-state=accessible][data-hover=true] .card-title:after{opacity:1;animation:hub-title-shine var(--hub-anim-shine-dur) ease-out}.hub-shell[data-hover-variant=tilt] .hub-grid{perspective:1000px;perspective-origin:50% 30%}.hub-shell[data-hover-variant=tilt] .card[data-state=accessible]{transition:transform var(--hub-dur) var(--hub-ease),box-shadow var(--hub-dur) var(--hub-ease);transform-style:preserve-3d}.hub-shell[data-hover-variant=tilt] .card[data-state=accessible]:has(.card-link:hover),.hub-shell[data-hover-variant=tilt] .card[data-state=accessible]:has(.card-link:focus-visible),.hub-shell[data-hover-variant=tilt] .card[data-state=accessible][data-hover=true]{transform:translateY(-4px) rotateY(var(--hub-anim-tilt-y)) rotateX(var(--hub-anim-tilt-x)) rotate(-.25deg)!important}.hub-shell[data-hover-variant=both] .hub-grid{perspective:1000px;perspective-origin:50% 30%}.hub-shell[data-hover-variant=both] .card[data-state=accessible]{transition:transform var(--hub-dur) var(--hub-ease);transform-style:preserve-3d}.hub-shell[data-hover-variant=both] .card[data-state=accessible]:has(.card-link:hover),.hub-shell[data-hover-variant=both] .card[data-state=accessible]:has(.card-link:focus-visible),.hub-shell[data-hover-variant=both] .card[data-state=accessible][data-hover=true]{transform:translateY(-4px) rotateY(calc(var(--hub-anim-tilt-y) * .7)) rotateX(calc(var(--hub-anim-tilt-x) * .7)) rotate(-.25deg)!important}.hub-shell[data-hover-variant=lift] .card[data-state=accessible]{transition:transform var(--hub-dur) var(--hub-ease),box-shadow var(--hub-dur) var(--hub-ease)}.hub-shell[data-hover-variant=lift] .card[data-state=accessible]:has(.card-link:hover),.hub-shell[data-hover-variant=lift] .card[data-state=accessible]:has(.card-link:focus-visible),.hub-shell[data-hover-variant=lift] .card[data-state=accessible][data-hover=true]{transform:translateY(-7px) rotate(-.6deg)!important}.card[data-state=locked]:has(.card-link:hover) .card-seal,.card[data-state=locked]:has(.card-link:focus-visible) .card-seal,.card[data-state=locked][data-hover=true] .card-seal{animation:hub-seal-restamp .38s cubic-bezier(.6,-.15,.35,1.3) both;filter:brightness(1.12) contrast(1.05)}.card[data-state=locked]:has(.card-link:hover) .card-lock,.card[data-state=locked]:has(.card-link:focus-visible) .card-lock,.card[data-state=locked][data-hover=true] .card-lock{animation:hub-lock-glow .72s ease-out both}.hub-shell>.card-lock-modal,.hub-shell>.hub-announce{position:fixed;inset:0;z-index:100}.card-lock-modal.is-open{animation:hub-fade calc(.18s * var(--hub-anim-dur)) var(--hub-ease-out) both}.card-lock-modal.is-open .card-lock-modal-backdrop{animation:hub-modal-backdrop calc(.3s * var(--hub-anim-dur)) var(--hub-ease-out) both}.card-lock-modal.is-open .card-lock-modal-inner{animation:hub-modal-impact calc(.46s * var(--hub-anim-dur)) var(--hub-ease-out) .06s both;transform-origin:50% 45%}.card-lock-modal.is-open .card-lock-modal-inner h3{animation:hub-stamp-hit calc(.5s * var(--hub-anim-dur)) cubic-bezier(.6,-.2,.4,1.4) .28s both;transform-origin:50% 60%}.card-lock-modal.is-open .card-lock-modal-kicker{animation:hub-fade-up calc(.4s * var(--hub-anim-dur)) var(--hub-ease-out) .14s both}.card-lock-modal.is-open .card-lock-modal-body{animation:hub-fade-up calc(.4s * var(--hub-anim-dur)) var(--hub-ease-out) .46s both}.card-lock-modal.is-open .card-lock-modal-actions{animation:hub-fade-up calc(.4s * var(--hub-anim-dur)) var(--hub-ease-out) .56s both}.card-lock-modal.is-open .card-lock-modal-foot{animation:hub-fade-up calc(.4s * var(--hub-anim-dur)) var(--hub-ease-out) .66s both}.card-lock-modal.is-closing{animation:hub-fade calc(.22s * var(--hub-anim-dur)) var(--hub-ease) reverse both;pointer-events:none}.card-lock-modal.is-closing .card-lock-modal-inner{animation:hub-modal-exit calc(.26s * var(--hub-anim-dur)) var(--hub-ease) both}.card-lock-modal.is-closing .card-lock-modal-backdrop{animation:hub-modal-backdrop calc(.22s * var(--hub-anim-dur)) var(--hub-ease) reverse both}.hub-announce.is-open .hub-announce-backdrop{animation:hub-modal-backdrop calc(.32s * var(--hub-anim-dur)) var(--hub-ease-out) both}.hub-announce.is-open .hub-announce-inner{animation:hub-modal-impact calc(.48s * var(--hub-anim-dur)) var(--hub-ease-out) .08s both;transform-origin:50% 0%}.hub-announce.is-open .hub-announce-stamp{animation:hub-stamp-hit calc(.55s * var(--hub-anim-dur)) cubic-bezier(.6,-.2,.4,1.4) .42s both;transform-origin:50% 50%}.hub-announce.is-open h3{animation:hub-fade-up calc(.45s * var(--hub-anim-dur)) var(--hub-ease-out) .32s both}.hub-announce.is-open .hub-announce-body{animation:hub-fade-up calc(.4s * var(--hub-anim-dur)) var(--hub-ease-out) .55s both}.hub-announce.is-open .btn,.hub-announce.is-open .hub-announce-sig{animation:hub-fade-up calc(.4s * var(--hub-anim-dur)) var(--hub-ease-out) .72s both}.hub-announce.is-closing{animation:hub-fade calc(.22s * var(--hub-anim-dur)) var(--hub-ease) reverse both;pointer-events:none}.hub-announce.is-closing .hub-announce-inner{animation:hub-modal-exit calc(.26s * var(--hub-anim-dur)) var(--hub-ease) both}.hub-shell.is-shake .hub-grid,.hub-shell.is-shake>.card-zoom,.hub-shell.is-shake .hub-header,.hub-shell.is-shake .hub-eyebrow,.hub-shell.is-shake .hub-coming-soon,.hub-shell.is-shake .hub-footer{animation:hub-shake .19s cubic-bezier(.34,.07,.27,.96) 1}.btn.is-iris-closing{position:relative;pointer-events:none;isolation:isolate}.btn.is-iris-closing:before{content:"";position:absolute;inset:-2px;background:radial-gradient(circle at 50% 50%,#0a0703,#050402);border-radius:inherit;clip-path:circle(150% at 50% 50%);animation:hub-iris-close var(--hub-anim-iris-dur) cubic-bezier(.55,0,.8,.4) both;z-index:5}.btn.is-iris-closing:after{content:"";position:absolute;inset:-4px;border-radius:inherit;background:radial-gradient(circle at 50% 50%,rgba(240,208,128,.6) 0%,rgba(200,151,26,.25) 30%,transparent 65%);mix-blend-mode:screen;animation:hub-iris-flash var(--hub-anim-iris-dur) ease-out both;z-index:4;pointer-events:none}.hub-grade-cycle{position:relative}.hub-grade-cycle .hub-grade{position:absolute;inset:0;display:grid;place-items:center;opacity:0;transition:opacity .6s var(--hub-ease);pointer-events:none}.hub-grade-cycle .hub-grade.is-current{opacity:1}.hub-grade-cycle .hub-grade svg{width:56px;height:56px;filter:drop-shadow(0 0 14px rgba(240,208,128,.35))}@media(prefers-reduced-motion:reduce){.hub-grade-cycle .hub-grade{transition:none}}@media(prefers-reduced-motion:reduce){.hub-shell.is-entering .hub-header,.hub-shell.is-entering .hub-eyebrow,.hub-shell.is-entering .hub-grid>.card,.hub-shell.is-entering .hub-coming-soon,.hub-shell.is-entering .hub-footer,.hub-shell.is-entering .card-stamp,.hub-shell.is-entering .card-seal,.hub-shell.is-entering .card-index,.hub-shell.is-entering .hub-back,.hub-shell.is-entering .module-error{opacity:1}.hub-shell.has-entered .hub-header,.hub-shell.has-entered .hub-eyebrow,.hub-shell.has-entered .hub-grid>.card,.hub-shell.has-entered .hub-grid>.card .card-index,.hub-shell.has-entered .hub-grid>.card .card-stamp,.hub-shell.has-entered .hub-grid>.card .card-seal,.hub-shell.has-entered .hub-coming-soon,.hub-shell.has-entered .hub-footer,.hub-shell.has-entered .hub-back,.hub-shell.has-entered .module-error,.card-lock-modal.is-open,.card-lock-modal.is-open .card-lock-modal-inner,.card-lock-modal.is-open .card-lock-modal-backdrop,.card-lock-modal.is-open .card-lock-modal-inner h3,.card-lock-modal.is-open .card-lock-modal-kicker,.card-lock-modal.is-open .card-lock-modal-body,.card-lock-modal.is-open .card-lock-modal-actions,.card-lock-modal.is-open .card-lock-modal-foot,.card-lock-modal.is-closing,.card-lock-modal.is-closing .card-lock-modal-inner,.card-lock-modal.is-closing .card-lock-modal-backdrop,.hub-announce.is-open .hub-announce-inner,.hub-announce.is-open .hub-announce-backdrop,.hub-announce.is-open .hub-announce-stamp,.hub-announce.is-open h3,.hub-announce.is-open .hub-announce-body,.hub-announce.is-open .btn,.hub-announce.is-open .hub-announce-sig,.hub-shell.is-shake .hub-grid,.hub-shell.is-shake>.card-zoom,.hub-shell.is-shake .hub-header,.btn.is-iris-closing:before,.btn.is-iris-closing:after,.card[data-state=locked]:has(.card-link:hover) .card-seal,.card[data-state=locked][data-hover=true] .card-seal,.card[data-state=locked]:has(.card-link:hover) .card-lock,.card[data-state=locked][data-hover=true] .card-lock,.card[data-state=accessible]:has(.card-link:hover) .card-title:after,.card[data-state=accessible][data-hover=true] .card-title:after{animation-duration:.01ms!important;animation-delay:0ms!important}}
