:root{color-scheme:light;--loom-site-bg:#82919b;--loom-site-bg-channels:130 145 155;--loom-site-bg-soft:#8f9ca5;--loom-site-surface:#9da8af;--loom-site-surface-solid:#9da8af;--loom-site-surface-raised:#aeb7bd;--loom-site-menu-bg:#667684;--loom-site-scrollbar-thumb:#f4f8fa94;--loom-site-border:#f8fafc2e;--loom-site-border-strong:#ffffff52;--loom-site-text:#fff;--loom-site-text-muted:#e0e6ea;--loom-site-text-subtle:#c3cdd3;--loom-site-silver:#edf1f3;--loom-site-accent:#dce6eb;--loom-site-accent-strong:#fff;--loom-site-accent-soft:#f4f8fa2e;--loom-site-violet:#d9ddea;--loom-site-success:#d9eee4;--loom-site-danger:#f0d8dc;--loom-site-font-sans:"Avenir Next", "Hiragino Sans", "PingFang SC", "Helvetica Neue", ui-sans-serif, sans-serif;--loom-site-font-display:"Hiragino Kaku Gothic ProN", "Yu Gothic", "Hiragino Sans", "PingFang SC", sans-serif;--loom-site-font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--loom-site-radius-sm:6px;--loom-site-radius-md:12px;--loom-site-radius-lg:20px;--loom-site-radius-xl:32px;--loom-site-max-width:1200px;--loom-site-header-height:72px}html[data-theme=dark]{color-scheme:dark;--loom-site-bg:#252b31;--loom-site-bg-channels:37 43 49;--loom-site-bg-soft:#2e353c;--loom-site-surface:#394149;--loom-site-surface-solid:#394149;--loom-site-surface-raised:#46515b;--loom-site-menu-bg:#343e47;--loom-site-scrollbar-thumb:#e1e6e97a;--loom-site-border:#ebf0f31f;--loom-site-border-strong:#ebf0f338;--loom-site-text:#f2f4f5;--loom-site-text-muted:#ced4d8;--loom-site-text-subtle:#9ea9b0;--loom-site-silver:#e1e6e9;--loom-site-accent:#b9c7cf;--loom-site-accent-strong:#f7f8f9;--loom-site-accent-soft:#b9c7cf29;--loom-site-violet:#c5c9d2;--loom-site-success:#b8d2c2;--loom-site-danger:#d6b4b9}*{box-sizing:border-box}html{background:var(--loom-site-bg);color:var(--loom-site-text);font-family:var(--loom-site-font-sans);font-feature-settings:"palt" 1;scroll-behavior:smooth;scrollbar-width:none}html::-webkit-scrollbar,body::-webkit-scrollbar{width:0;height:0;display:none}html[data-menu-open]{overflow:hidden}body{background:var(--loom-site-bg);min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}body>main,body>footer{z-index:1;position:relative}.page-scrollbar{z-index:250;background:var(--loom-site-scrollbar-thumb);width:7px;min-height:48px;box-shadow:none;cursor:ns-resize;opacity:.82;touch-action:none;will-change:height, transform;border:0;border-radius:999px;padding:0;transition:opacity .16s;position:fixed;top:0;right:4px}.page-scrollbar:hover,.page-scrollbar:focus-visible{opacity:1}html[data-menu-open] .page-scrollbar{opacity:0;pointer-events:none}html[data-scrollbar-dragging]{scroll-behavior:auto;user-select:none}::selection{color:var(--loom-site-bg);background:var(--loom-site-accent-strong)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}img,svg{max-width:100%;display:block}.container{width:min(calc(100% - 40px), var(--loom-site-max-width));margin-inline:auto}.eyebrow{color:var(--loom-site-accent);font-family:var(--loom-site-font-mono);letter-spacing:.2em;text-transform:uppercase;align-items:center;gap:10px;margin:0 0 20px;font-size:12px;font-weight:560;display:inline-flex}.eyebrow:before{display:none}.button{min-height:46px;color:var(--loom-site-text);background:var(--loom-site-surface-raised);border:0;border-radius:999px;justify-content:center;align-items:center;gap:9px;padding:0 20px;font-size:14px;font-weight:620;transition:background .16s,color .16s,transform .16s;display:inline-flex}.button:hover{background:var(--loom-site-surface-solid);transform:translateY(-1px)}.button--primary{color:var(--loom-site-bg);background:var(--loom-site-accent-strong);box-shadow:none}.button--primary:hover{background:var(--loom-site-silver)}:focus-visible{outline:2px solid var(--loom-site-accent-strong);outline-offset:4px}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){backface-visibility:hidden;mix-blend-mode:normal;animation:none}html[data-route-transition=curtain]::view-transition-new(root){z-index:2;animation:.68s cubic-bezier(.55,0,.1,1) both loom-route-curtain-in}@keyframes loom-route-curtain-in{0%{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}@media (width<=720px){:root{--loom-site-header-height:64px}.container{width:min(calc(100% - 28px), var(--loom-site-max-width))}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}::view-transition-old(root),::view-transition-new(root){animation:none!important}}.site-controls{z-index:400;height:var(--loom-site-header-height);pointer-events:none;position:fixed;inset:0 0 auto}.menu-trigger,.theme-toggle{pointer-events:auto;position:absolute}.menu-trigger{width:44px;height:44px;color:var(--loom-site-text);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0;top:10px;left:10px}.menu-trigger__line{filter:drop-shadow(0 2px 3px #04080d9e);transform-origin:50%;background:currentColor;border-radius:999px;width:24px;height:3px;transition:top .32s cubic-bezier(.55,0,.1,1),left .32s cubic-bezier(.55,0,.1,1),width .32s cubic-bezier(.55,0,.1,1),opacity .18s,transform .36s cubic-bezier(.55,0,.1,1);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-38deg)}.menu-trigger__line:before{content:"";background:var(--loom-site-accent);transform-origin:0;transition:transform .22s cubic-bezier(.55,0,.1,1);position:absolute;inset:0;transform:scaleX(0)}.menu-trigger:hover .menu-trigger__line:before{transform:scaleX(1)}.menu-trigger__line--top{width:12px;top:14px;left:18px}.menu-trigger__line--middle{top:22px}.menu-trigger__line--bottom{width:12px;top:30px;left:26px}html[data-menu-open] .menu-trigger__line--top{width:24px;top:22px;left:22px;transform:translate(-50%,-50%)rotate(45deg)}html[data-menu-open] .menu-trigger__line--middle{opacity:0;transform:translate(-50%,-50%)rotate(-38deg)scaleX(0)}html[data-menu-open] .menu-trigger__line--bottom{width:24px;top:22px;left:22px;transform:translate(-50%,-50%)rotate(-45deg)}.theme-toggle{z-index:2;width:44px;height:44px;color:var(--loom-site-text);cursor:pointer;filter:drop-shadow(0 2px 3px #04080d9e);view-transition-name:theme-toggle;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;transition:opacity .18s,transform .18s;display:grid;top:10px;right:10px}.theme-toggle:hover{transform:translateY(-1px)rotate(8deg)scale(1.06)}.theme-toggle__moon,html[data-theme=dark] .theme-toggle__sun{display:none}html[data-theme=dark] .theme-toggle__moon{display:block}.route-menu{z-index:300;color:var(--loom-site-text);background:var(--loom-site-menu-bg);position:fixed;inset:0;overflow:hidden auto}.route-menu[hidden]{display:none}html[data-menu-transition] .menu-trigger{view-transition-name:menu-toggle}html[data-menu-transition] .route-menu{view-transition-name:route-menu}.route-menu__content{grid-template-rows:auto 1fr auto;width:min(100% - 80px,1440px);min-height:100%;margin-inline:auto;padding:10px 0 34px;display:grid}.route-menu__brand{letter-spacing:.02em;align-items:center;gap:11px;width:fit-content;min-height:44px;font-size:15px;font-weight:680;display:flex;position:fixed;top:10px;left:64px}.route-menu__brand img{width:38px;height:38px}.route-menu__brand small{opacity:.58;font:8px var(--loom-site-font-mono);letter-spacing:.18em;margin-left:6px}.route-menu__routes{touch-action:pan-y;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;grid-row:2;min-height:min(62vh,580px);position:relative}.route-menu__routes:focus-visible{outline:0}.route-menu__routes:focus-visible .route-menu__route[data-front] .route-menu__route-title{outline:2px solid var(--loom-site-accent-strong);outline-offset:6px;border-radius:8px}.route-menu__routes[data-dragging],.route-menu__routes[data-dragging] .route-menu__route{cursor:grabbing}.route-menu__route{width:260px;height:190px;color:var(--loom-site-text);text-align:center;cursor:pointer;opacity:.42;filter:blur(.8px);transform-origin:50%;transition:opacity .42s,filter .42s,transform .52s cubic-bezier(.22,.8,.2,1);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.72)}.route-menu__route[data-stage-offset="-2"]{transform:translate(-50%,-50%)translate(clamp(-660px,-43vw,-390px))scale(.72)}.route-menu__route[data-stage-offset="-1"]{opacity:.68;filter:blur(.35px);transform:translate(-50%,-50%)translate(clamp(-360px,-24vw,-230px))scale(.86)}.route-menu__route[data-stage-offset="0"]{opacity:1;filter:none;transform:translate(-50%,-50%)scale(1)}.route-menu__route[data-stage-offset="1"]{opacity:.68;filter:blur(.35px);transform:translate(-50%,-50%)translate(clamp(230px,24vw,360px))scale(.86)}.route-menu__route[data-stage-offset="2"]{transform:translate(-50%,-50%)translate(clamp(390px,43vw,660px))scale(.72)}.route-menu__route:hover{opacity:.9;filter:none}.route-menu__route[data-front]{color:var(--loom-site-accent-strong)}.route-menu__route[data-front]:hover{opacity:1;transform:translate(-50%,-50%)scale(1.03)}.route-menu__route small,.route-menu__route em,.route-menu__route-title{width:100%;position:absolute;left:50%;transform:translate(-50%)}.route-menu__route small{font:9px var(--loom-site-font-mono);letter-spacing:.2em;top:17px}.route-menu__route-title{max-width:100%;font-family:var(--loom-site-font-display);letter-spacing:-.025em;white-space:nowrap;font-weight:650;line-height:.96;top:50%;transform:translate(-50%,-50%)}.route-menu__route-title[data-title-size=short]{font-size:clamp(46px,5vw,70px)}.route-menu__route-title[data-title-size=medium]{font-size:clamp(40px,4.3vw,60px)}.route-menu__route-title[data-title-size=long]{letter-spacing:-.04em;font-size:clamp(26px,2.5vw,36px)}.route-menu__route em{letter-spacing:.13em;text-transform:uppercase;white-space:nowrap;font-size:8px;font-style:normal;bottom:17px}.route-menu__footer{letter-spacing:.12em;grid-row:3;justify-content:flex-end;align-items:center;gap:24px;padding-top:20px;font-size:11px;display:flex}.route-menu__footer a{opacity:.72;transition:opacity .16s}.route-menu__footer a:hover{opacity:1}.route-menu__github{align-items:center;gap:7px;display:inline-flex}html[data-menu-transition]::view-transition-old(root),html[data-menu-transition]::view-transition-new(root){animation:none}::view-transition-group(route-menu){z-index:1000;animation-duration:.68s;animation-timing-function:cubic-bezier(.55,0,.1,1)}::view-transition-old(route-menu),::view-transition-new(route-menu){mix-blend-mode:normal}::view-transition-group(theme-toggle){z-index:1002;animation:none}::view-transition-old(theme-toggle),::view-transition-new(theme-toggle){mix-blend-mode:normal;animation:none}html[data-menu-transition=opening]::view-transition-new(route-menu){animation:.68s cubic-bezier(.55,0,.1,1) both route-menu-curtain-in}html[data-menu-transition=closing]::view-transition-old(route-menu){animation:.68s cubic-bezier(.55,0,.1,1) both route-menu-curtain-out}::view-transition-group(menu-toggle){z-index:1001;animation-duration:.32s}::view-transition-old(menu-toggle),::view-transition-new(menu-toggle){mix-blend-mode:normal}html[data-menu-transition]::view-transition-old(menu-toggle){animation:.22s ease-in both menu-toggle-out}html[data-menu-transition]::view-transition-new(menu-toggle){animation:.3s cubic-bezier(.16,1,.3,1) 70ms both menu-toggle-in}@keyframes route-menu-curtain-in{0%{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}@keyframes route-menu-curtain-out{0%{clip-path:inset(0)}to{clip-path:inset(100% 0 0)}}@keyframes menu-toggle-out{to{opacity:0;transform:scale(.76)rotate(-10deg)}}@keyframes menu-toggle-in{0%{opacity:0;transform:scale(.76)rotate(10deg)}}@media (width<=980px){.route-menu__routes{min-height:min(58vh,500px)}.route-menu__route{width:220px}}@media (width<=720px){.route-menu__content{width:calc(100% - 36px);padding:10px 0 24px}.route-menu__brand small{display:none}.route-menu__routes{min-height:440px}.route-menu__route{width:160px;height:160px}.route-menu__route[data-stage-offset="-2"]{transform:translate(-50%,-50%)translate(-74vw)scale(.68)}.route-menu__route[data-stage-offset="-1"]{transform:translate(-50%,-50%)translate(-39vw)scale(.82)}.route-menu__route[data-stage-offset="1"]{transform:translate(-50%,-50%)translate(39vw)scale(.82)}.route-menu__route[data-stage-offset="2"]{transform:translate(-50%,-50%)translate(74vw)scale(.68)}.route-menu__route-title[data-title-size=short]{font-size:38px}.route-menu__route-title[data-title-size=medium]{font-size:32px}.route-menu__route-title[data-title-size=long]{font-size:22px}.route-menu__footer{align-items:flex-end}.route-menu__github{padding-bottom:2px}}@media (prefers-reduced-motion:reduce){.menu-trigger__line,.route-menu__route{transition-duration:.01ms!important}html[data-menu-transition]::view-transition-old(*),html[data-menu-transition]::view-transition-new(*){animation:none!important}}.footer[data-astro-cid-nns7i3if]{background:0 0;padding:42px 0 48px}.footer--solid[data-astro-cid-nns7i3if]{background:var(--loom-site-bg-soft)}html[data-sky-text=dark] .footer--sky[data-astro-cid-nns7i3if]{--loom-site-text:#26343d;--loom-site-text-muted:#3d4c55;--loom-site-text-subtle:#53636c}.footer__inner[data-astro-cid-nns7i3if]{justify-content:space-between;align-items:flex-end;gap:32px;display:flex}.footer[data-astro-cid-nns7i3if] img[data-astro-cid-nns7i3if]{opacity:.82;width:34px;height:34px}.footer__mark[data-astro-cid-nns7i3if]{-webkit-appearance:none;appearance:none;width:34px;height:34px;color:inherit;box-shadow:none;cursor:pointer;background:0 0;border:0;margin:0;padding:0;transition:transform .18s,opacity .18s;display:block}.footer__mark[data-astro-cid-nns7i3if]:hover{transform:rotate(-8deg)scale(1.08)}.footer__mark[data-astro-cid-nns7i3if][aria-pressed=true]{transform:rotate(8deg)scale(1.08)}.footer__mark[data-astro-cid-nns7i3if]:disabled{cursor:default;opacity:.5;transform:none}.footer[data-astro-cid-nns7i3if] p[data-astro-cid-nns7i3if]{color:var(--loom-site-text-muted);font-family:var(--loom-site-font-display);margin:14px 0 0}.footer__links[data-astro-cid-nns7i3if]{color:var(--loom-site-text-subtle);flex-wrap:wrap;justify-content:flex-end;gap:10px 22px;font-size:12px;display:flex}.footer__links[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]:hover{color:var(--loom-site-text)}@media (width<=680px){.footer__inner[data-astro-cid-nns7i3if]{flex-direction:column;align-items:flex-start}.footer__links[data-astro-cid-nns7i3if]{justify-content:flex-start}}
