:root{--c-bg:#000;--c-text:#fff;--c-muted:#9a9a9a;--c-soft:#bdbdbd;--c-amber:#ffb829;--c-violet:#8052ff;--c-violet-hover:#5a35d6;--c-rule:#2a2a2a;--ff-heading:var(--font-archivo), var(--font-noto-tc), sans-serif;--ff-body:var(--font-newsreader), var(--font-noto-serif-tc), serif;--ff-mono:var(--font-geist-mono), ui-monospace, monospace;--fs-hero:9.375rem;--lh-hero:1.1;--ls-hero:-.04em;--fw-hero:400;--fs-section:6.5rem;--lh-section:1.1;--ls-section:-.04em;--fw-section:400;--fs-intro:3.5rem;--lh-intro:1.1;--ls-intro:-.04em;--fw-intro:400;--fs-statement:3rem;--lh-statement:1.1;--ls-statement:-.02em;--fw-statement:400;--fs-closing:4rem;--lh-closing:1.1;--ls-closing:-.04em;--fw-closing:400;--fs-body:1.5rem;--lh-body:1.9;--ls-body:.025em;--fw-body:200;--fs-kicker:1rem;--lh-kicker:1.2;--ls-kicker:.025em;--fw-kicker:600;--fs-button:1rem;--lh-button:1;--ls-button:.025em;--fw-button:600;--fs-nav:1.1667rem;--lh-nav:1.2;--ls-nav:.025em;--fw-nav:600;--fs-foot:1rem;--lh-foot:1.4;--ls-foot:0em;--fw-foot:400;--wrap-hero:wrap;--wrap-closing:wrap;--pad-x:2.5rem;--body-max:35rem;--closing-max:60rem;--intro-w:30rem;--btn-h:3.3333rem;--btn-r:1.875rem;--btn-px:1.33rem;--header-pad:1.25rem;--ease-color:cubic-bezier(.5, 1, .89, 1);--dur-color:.5s;--dur-wipe:1.1s;--ease-wipe:cubic-bezier(.215, .61, .355, 1);--wipe-from:ellipse(120% 180% at 50% 310%);--wipe-to:ellipse(120% 180% at 50% 60%);--c-icon-hover:#ffb829}@media (max-width:1439px){:root{--wrap-hero:balance}}:root:lang(zh-Hant){--fs-hero:8.4417rem;--lh-hero:1.3;--ls-hero:-.02em;--fw-hero:400;--fs-section:5.85rem;--lh-section:1.3;--ls-section:-.02em;--fw-section:400;--fs-intro:3.5rem;--lh-intro:1.3;--ls-intro:-.02em;--fw-intro:400;--fs-statement:3rem;--lh-statement:1.3;--ls-statement:0em;--fw-statement:400;--fs-closing:4rem;--lh-closing:1.3;--ls-closing:0em;--fw-closing:400;--fs-body:1.5rem;--lh-body:2;--ls-body:.025em;--fw-body:200;--fs-kicker:1rem;--lh-kicker:1.4;--ls-kicker:.05em;--fw-kicker:600;--fs-button:1.1667rem;--lh-button:1.4;--ls-button:.05em;--fw-button:600;--fs-nav:1.25rem;--lh-nav:1.4;--ls-nav:.05em;--fw-nav:600;--fs-foot:1rem;--lh-foot:1.5;--ls-foot:.025em;--fw-foot:400;--wrap-hero:balance;--wrap-closing:balance}@media (min-width:768px){:root{--pad-x:3rem}}@media (min-width:1024px){:root{--pad-x:4rem}}@media (min-width:1366px){:root{--pad-x:10rem}}@media (min-width:768px) and (max-width:1023px){:root{--fs-hero:6.5rem;--fs-section:4rem}:root:lang(zh-Hant){--fs-hero:5.85rem;--fs-section:3.6rem}:root,:root:lang(zh-Hant){--fs-closing:3rem}}@media (max-width:767px){:root,:root:lang(zh-Hant){--fs-section:4rem;--fs-intro:2rem;--fs-statement:1.5rem;--fs-closing:2.5rem}:root{--fs-hero:5rem;--fs-button:.9167rem}:root:lang(zh-Hant){--fs-hero:4rem;--fs-button:1.0833rem}}@media (max-width:359px){:root,:root:lang(zh-Hant){--fs-section:3.5rem}:root{--fs-hero:3.5rem}}
*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--c-bg);font-size:max(12px,.833333vw)}body{background:var(--c-bg);color:var(--c-text);font-family:var(--ff-heading);font-size:var(--fs-body);line-height:var(--lh-body);font-weight:var(--fw-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}h1,h2,h3,p,ul,figure{margin:0}ul{padding:0;list-style:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}:focus-visible{outline:2px solid var(--c-text);outline-offset:4px}.section{min-height:calc(var(--vh,1vh) * 50);padding-inline:var(--pad-x);flex-direction:column;justify-content:center;display:flex;position:relative}@media (min-width:768px){.section{min-height:calc(var(--vh,1vh) * 100)}}.section--tall{min-height:calc(var(--vh,1vh) * 100)}@media (min-width:1366px){.section--tall{min-height:calc(var(--vh,1vh) * 150)}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.scene-layer{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.site{z-index:1;position:relative;overflow-x:clip}html.lenis,html.lenis body{height:auto}.lenis-smooth{scroll-behavior:auto!important}html.is-scroll-locked{overflow:hidden}.js [data-reveal]{visibility:hidden;animation:0s linear 12s forwards reveal-failsafe}@keyframes reveal-failsafe{to{visibility:visible}}.is-runtime [data-reveal]{animation:none}[tabindex="-1"]:focus{outline:none}.reveal-line-mask{overflow-clip-margin:.15em}.is-reveal-measuring,.is-reveal-measuring *{white-space:nowrap!important}
.kicker{font-size:var(--fs-kicker);line-height:var(--lh-kicker);letter-spacing:var(--ls-kicker);font-weight:var(--fw-kicker);text-transform:uppercase;color:var(--c-amber)}.body{font-family:var(--ff-body);font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);font-weight:var(--fw-body);max-width:var(--body-max);text-wrap:pretty}.keep{white-space:nowrap}.line{white-space:nowrap;display:block}.line--md{white-space:normal;display:inline}@media (min-width:768px){.line--md{white-space:nowrap;display:block}}@media (min-width:1024px){.line--narrow{display:inline}}[data-fit]{max-width:100%}.btn-violet{height:var(--btn-h);padding-inline:var(--btn-px);border-radius:var(--btn-r);background:var(--c-violet);color:var(--c-text);font-size:var(--fs-button);line-height:var(--lh-button);letter-spacing:var(--ls-button);font-weight:var(--fw-button);text-transform:uppercase;white-space:nowrap;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:hidden}.btn-violet__hover{background:var(--c-violet-hover);clip-path:var(--wipe-from);transition:clip-path var(--dur-wipe) var(--ease-wipe);pointer-events:none;position:absolute;inset:0}.btn-violet__label{position:relative}.btn-violet:focus-visible .btn-violet__hover,.text-link:focus-visible .btn-violet__hover{clip-path:var(--wipe-to)}@media (hover:hover){.btn-violet:hover .btn-violet__hover,.text-link:hover .btn-violet__hover{clip-path:var(--wipe-to)}}.text-link{border-radius:var(--btn-r);min-height:44px;font-size:var(--fs-button);letter-spacing:var(--ls-button);font-weight:var(--fw-button);text-transform:uppercase;align-items:center;margin-inline:-1.25rem;padding-inline:1.25rem;display:inline-flex;position:relative;overflow:hidden}:root{--blur-bg:linear-gradient(1turn, #00000080, #0000001a);--blur-amount:1.6667rem}@media (max-width:1023px){.mobile-blur{isolation:isolate;padding-block:2rem;position:relative}.mobile-blur:after{content:"";z-index:-1;background:var(--blur-bg);width:calc(100% + 6.25rem);height:100%;-webkit-backdrop-filter:blur(var(--blur-amount));backdrop-filter:blur(var(--blur-amount));position:absolute;top:0;left:-3.125rem}}a[role=link][aria-disabled=true]{cursor:pointer}
.constellation__line{fill:none;stroke:var(--c-text);stroke-linecap:round;stroke-linejoin:round}.constellation__star{fill:var(--c-text);stroke:none}.constellation__line--draw{stroke-width:2px;stroke-dasharray:100;stroke-dashoffset:0}.site-loader__spinner-svg .constellation__star,.transition-mask__spinner .constellation__star{r:4.5px}.site-loader__spinner-svg .constellation__line--draw,.transition-mask:not([data-state=idle]) .constellation__line--draw{animation:2.4s ease-in-out infinite constellation-draw}@keyframes constellation-draw{0%{stroke-dashoffset:100px;opacity:1}55%{stroke-dashoffset:0;opacity:1}80%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}@media (max-width:767px){.constellation__line--draw{stroke-width:3px}.site-loader__spinner-svg .constellation__star,.transition-mask__spinner .constellation__star{r:6px}}
:root{--toggle-size:3.25rem}.header{z-index:1000;position:fixed;inset:0 0 auto}.header__bg{background:var(--blur-bg);-webkit-backdrop-filter:blur(var(--blur-amount));backdrop-filter:blur(var(--blur-amount));transform-origin:top;pointer-events:none;position:absolute;inset:0;transform:scaleY(0)}.header__inner{padding:var(--header-pad);justify-content:space-between;align-items:center;display:flex;position:relative}@media (min-width:768px){.header__inner{padding:1.5rem 3.125rem;transform:translateY(1rem)}}.header__logo{z-index:2;height:3rem;font-size:var(--fs-nav);font-weight:var(--fw-nav);letter-spacing:var(--ls-nav);text-transform:uppercase;align-items:center;gap:.8rem;display:inline-flex;position:relative}.header__mark{flex:none;width:1.5rem;height:1.5rem}.header__mark .constellation__line{stroke-width:5px;opacity:.7}.header__mark .constellation__star{r:7.5px}.header__wordmark{display:inline-flex;overflow:hidden}.header__letter,.nav__char{display:inline-block}.nav__list{gap:2.5rem;display:flex}.nav__item{display:flex}.nav__link{min-height:3rem;font-size:var(--fs-nav);line-height:var(--lh-nav);letter-spacing:var(--ls-nav);font-weight:var(--fw-nav);text-transform:uppercase;color:var(--c-muted);transition:color var(--dur-color) var(--ease-color);align-items:center;display:inline-flex;overflow:hidden}.nav__link:hover,.nav__link:focus-visible,.nav__item.is-active .nav__link{color:var(--c-text)}.nav__aside{align-items:center;gap:2rem;display:flex}.lang-switch{color:var(--c-muted);font-size:var(--fs-nav);font-weight:var(--fw-nav);align-items:center;gap:.25rem;display:flex}.lang-switch button{min-height:44px;color:var(--c-muted);transition:color var(--dur-color) var(--ease-color);padding:0 .5rem}.lang-switch button[aria-pressed=true],.lang-switch button:hover{color:var(--c-text)}.nav-toggle{display:none}.nav-toggle svg{fill:none;width:100%;height:100%;stroke:var(--c-text);stroke-width:1.6px;stroke-linecap:round}.nav-toggle__cross,.nav-toggle[aria-expanded=true] .nav-toggle__burger{display:none}.nav-toggle[aria-expanded=true] .nav-toggle__cross{display:inline}@media (min-width:768px){.nav{align-items:center;gap:2.5rem;display:flex}.nav__bg,.nav__aside .btn-violet{display:none}.lang-switch{margin-inline:-.5rem}}@media (max-width:767px){.nav-toggle{z-index:1001;width:var(--toggle-size);height:var(--toggle-size);background:var(--c-violet);border-radius:50%;padding:1rem;display:flex;position:fixed;top:1.35rem;right:1.25rem}.nav{pointer-events:none;position:fixed;inset:0 0 auto}.header[data-menu-open] .nav{pointer-events:auto}.nav__bg{background:var(--blur-bg);-webkit-backdrop-filter:blur(var(--blur-amount));backdrop-filter:blur(var(--blur-amount));transform-origin:top;position:absolute;inset:0;transform:scaleY(0)}.header[data-menu-open] .nav__bg{transform:scaleY(1)}.nav__link{color:var(--c-text)}.nav__list{flex-direction:column;align-items:center;gap:1.5rem;padding:6.813rem 0 1.5rem;position:relative}.nav__aside{flex-direction:column;gap:1.5rem;padding-bottom:4.313rem;position:relative}.header:not([data-menu-open]) [data-nav-panel-item]{visibility:hidden}}
:root{--foot-pad-y:2.5rem;--foot-pad-x:3.125rem;--foot-h:7rem}.footer-bar{padding:var(--foot-pad-y) var(--foot-pad-x);border-top:1px solid var(--c-rule);font-size:var(--fs-foot);line-height:var(--lh-foot);letter-spacing:var(--ls-foot);font-weight:var(--fw-foot);text-transform:uppercase;color:var(--c-muted);grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.footer-bar__copy{justify-self:start}.footer-bar__nav{gap:2.5rem;display:flex}.footer-bar__nav a,.footer-bar__github{transition:color var(--dur-color) var(--ease-color)}.footer-bar__nav a:focus-visible{color:var(--c-text)}.footer-bar__github:focus-visible{color:var(--c-icon-hover)}@media (hover:hover){.footer-bar__nav a:hover{color:var(--c-text)}.footer-bar__github:hover{color:var(--c-icon-hover)}}.footer-bar__github{justify-content:center;justify-self:end;align-items:center;width:44px;height:44px;margin-block:-.8333rem;display:inline-flex}.footer-bar__github svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:1.5rem;height:1.5rem}@media (max-width:1023px){:root{--foot-h:16.6rem}.footer-bar{grid-template-columns:1fr;justify-items:center;row-gap:2.4rem}.footer-bar__copy,.footer-bar__github{justify-self:center}.footer-bar__github{order:1;margin-block:0}.footer-bar__nav{order:2}.footer-bar__copy{order:3}}
:root{--loader-ease:cubic-bezier(.76, 0, .24, 1);--loader-line-dur:1s;--loader-line-delay:0s;--loader-line-stagger:0s;--loader-loading-dur:2s;--loader-dots-delay:1.5s;--loader-dots-dur:1s;--loader-spinner-dur:.6s;--loader-spinner-ease:cubic-bezier(.14, -.14, .78, .52);--loader-spinner-size:8.333rem;--loader-inset:3.125rem;--loader-edge-bottom:2.125rem;--loader-completed-from:translateY(87.5%) rotate(-3deg)}.site-loader{z-index:2000;background:var(--c-bg);color:var(--c-text);position:fixed;inset:0}.site-loader[hidden],html:not(.js) .site-loader{display:none}.js .site-loader{animation:0s linear 12s forwards loader-failsafe}.is-runtime .site-loader{animation:none}@keyframes loader-failsafe{to{visibility:hidden}}.site-loader__spinner{width:var(--loader-spinner-size);height:var(--loader-spinner-size);margin:calc(var(--loader-spinner-size) / -2) 0 0 calc(var(--loader-spinner-size) / -2);animation:loader-in-spinner var(--loader-spinner-dur) var(--loader-spinner-ease) backwards;position:absolute;top:50%;left:50%}.site-loader__spinner-svg{width:100%;height:100%;display:block;overflow:visible}.site-loader__tagline{text-align:center;font-size:var(--fs-intro);line-height:var(--lh-intro);letter-spacing:var(--ls-intro);flex-direction:column;align-items:center;display:flex;position:absolute;top:58%;left:0;right:0}.site-loader__mask{display:block;overflow:hidden}.site-loader__line{animation:loader-in-line var(--loader-line-dur) var(--loader-ease) backwards;animation-delay:calc(var(--loader-line-delay) + var(--i) * var(--loader-line-stagger));display:block}.site-loader__status{left:var(--loader-inset);bottom:var(--loader-edge-bottom);font-family:var(--ff-mono);text-transform:uppercase;font-size:1.25rem;line-height:1.8;display:grid;position:absolute}.site-loader__status>*{grid-area:1/1}.site-loader__loading{animation:loader-in-loading var(--loader-loading-dur) var(--loader-ease) backwards;display:block}.site-loader__dots{animation:loader-in-dots var(--loader-dots-dur) ease var(--loader-dots-delay) backwards}.site-loader__dots span{animation:1s steps(2,jump-none) infinite loader-dot}.site-loader__dots span:nth-child(2){animation-delay:.2s}.site-loader__dots span:nth-child(3){animation-delay:.4s}.site-loader__completed{transform:var(--loader-completed-from);display:block}.site-loader__progress{right:var(--loader-inset);bottom:var(--loader-edge-bottom);font-family:var(--ff-mono);visibility:hidden;opacity:0;font-size:2rem;line-height:1.5;display:flex;position:absolute}.site-loader__progress>span{text-align:center;min-width:.6em;display:block}@keyframes loader-in-line{0%{transform:translateY(110%)rotate(4deg)}to{transform:none}}@keyframes loader-in-loading{0%{transform:translateY(110%)rotate(10deg)}to{transform:none}}@keyframes loader-in-spinner{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes loader-in-dots{0%{opacity:0}to{opacity:1}}@keyframes loader-dot{0%{opacity:0}to{opacity:1}}@media (max-width:767px){:root{--loader-spinner-size:5rem;--loader-inset:1.125rem;--loader-edge-bottom:1.125rem}}@media (prefers-reduced-motion:reduce){.site-loader *,.site-loader__spinner{animation:none!important}}
.transition-mask{z-index:1500;pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.transition-mask__bg{background:var(--c-bg);opacity:0;visibility:hidden;position:absolute;inset:0}.transition-mask__spinner{opacity:0;visibility:hidden;width:8.333rem;height:8.333rem;position:relative;overflow:visible}@media (max-width:767px){.transition-mask__spinner{width:5rem;height:5rem}}
.not-found{text-align:center;align-items:center;gap:1rem}.not-found__code{font-family:var(--ff-heading);font-size:var(--fs-section);line-height:var(--lh-section);letter-spacing:var(--ls-section);font-weight:var(--fw-section);margin:0}.not-found__text{color:var(--c-muted);font-family:var(--ff-body);font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);font-weight:var(--fw-body);margin:0}
