*,*:after,*:before{box-sizing:border-box}:root{font-size:12px;--color-text: #fff;--color-bg: #b9bfd6;--color-link: #fff;--color-link-hover: #fff;--page-padding: 1.5rem;--ui-font: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--ui-tracking: .04em}body{margin:0;color:var(--color-text);background-color:var(--color-bg);font-family:var(--ui-font);letter-spacing:var(--ui-tracking);font-size:.82rem;line-height:1.2;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:color .52s ease}body.frame-text-dark{--color-text: #121212;--color-link: #121212;--color-link-hover: #121212}@media(scripting:enabled){.loading:before,.loading:after{content:"";position:fixed;z-index:10000}.loading:before{top:0;left:0;width:100%;height:100%;background:var(--color-bg)}.loading:after{top:50%;left:50%;width:100px;height:1px;margin:0 0 0 -50px;background:var(--color-link);animation:loaderAnim 1.5s ease-in-out infinite alternate forwards}}@keyframes loaderAnim{0%{transform:scaleX(0);transform-origin:0% 50%}50%{transform:scaleX(1);transform-origin:0% 50%}50.1%{transform:scaleX(1);transform-origin:100% 50%}to{transform:scaleX(0);transform-origin:100% 50%}}a{text-decoration:none;color:var(--color-link);outline:none;cursor:pointer;transition:color .52s ease}a:hover{text-decoration:underline;color:var(--color-link-hover)}a:focus{outline:none;background:#d3d3d3}a:focus:not(:focus-visible){background:transparent}a:focus:focus-visible{outline:2px solid red;background:transparent}.frame,.frame span,.frame p,.frame h1{transition:color .52s ease}.frame{padding:3rem var(--page-padding) 0;display:grid;z-index:1000;position:relative;grid-row-gap:1rem;grid-column-gap:2rem;pointer-events:none;justify-items:start;grid-template-columns:auto auto auto 1fr;grid-template-areas:"title title title title" "back archive github ..." "credit credit credit credit" "tags tags tags tags" "sponsor sponsor sponsor sponsor"}.frame #cdawrap{justify-self:start;grid-area:sponsor}.frame a,.frame button{pointer-events:auto}.frame .frame__title{grid-area:title;font-size:inherit;font-weight:600;margin:0}.frame .frame__back{grid-area:back;justify-self:start}.frame .frame__archive{grid-area:archive;justify-self:start}.frame .frame__github{grid-area:github}.frame .frame__tags{grid-area:tags;display:flex;flex-wrap:wrap;gap:1rem}.frame .frame__demos{grid-area:demos;display:flex;flex-wrap:wrap;gap:1rem}.frame .frame__credit{grid-area:credit;margin:0;opacity:.78;font-size:.78rem;font-weight:500;letter-spacing:var(--ui-tracking);line-height:1.2;text-align:right}.frame .frame__credit p{margin-bottom:0}@media screen and (min-width:53em){.frame{padding:var(--page-padding);height:100%;position:fixed;top:0;left:0;width:100%;grid-template-columns:auto auto auto auto 1fr;grid-template-rows:auto auto;align-content:space-between;grid-template-areas:"title back github archive sponsor" "tags tags tags credit credit"}.frame .frame__tags{align-self:end}.frame .frame__credit,.frame #cdawrap{justify-self:end;text-align:right;max-width:300px}}.content{padding:var(--page-padding);display:flex;flex-direction:column;width:100vw;position:relative;pointer-events:none}@media screen and (min-width:53em){.content{min-height:100vh;justify-content:center;align-items:center}}.webgl{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:auto;touch-action:none;z-index:0}.debug-pane{position:fixed;right:1rem;top:4rem;z-index:2000}.fps-stats{position:fixed!important;left:max(1.5rem,env(safe-area-inset-left))!important;top:max(3.5rem,env(safe-area-inset-top))!important;right:auto!important;bottom:auto!important;z-index:2000!important;pointer-events:none}@media(max-width:53em){.debug-pane{top:auto;right:max(1.2rem,env(safe-area-inset-right));bottom:max(.75rem,env(safe-area-inset-bottom))}}.velocity-visualizer{position:fixed;left:max(1.52rem,env(safe-area-inset-left));bottom:max(4.75rem,env(safe-area-inset-bottom));z-index:2000;width:220px;padding:.5rem .625rem;border:1px solid rgba(255,255,255,.2);background:#040a12cc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-family:var(--ui-font);letter-spacing:var(--ui-tracking);pointer-events:none}.velocity-visualizer__label,.velocity-visualizer__value{margin:0;font-size:10px}.velocity-visualizer__value{margin-top:.25rem}.velocity-visualizer__track{position:relative;margin-top:.5rem;width:100%;height:6px;background:#ffffff1f}.velocity-visualizer__fill{position:absolute;top:0;left:50%;width:0;height:100%;background:#7fffd4}.plane-label-overlay{position:fixed;inset:0;z-index:80;pointer-events:none;transition:opacity .32s ease;color:#1f2128;font-family:var(--ui-font)}.plane-label{position:absolute;left:clamp(2.5rem,8vw,11rem);top:50%;transform:translateY(-50%);max-width:min(40rem,46vw);display:grid;gap:.95rem}.plane-label__index{margin:0 0 .25rem;font-size:1.05rem;font-weight:700;letter-spacing:.32em;text-transform:uppercase;opacity:.6}.plane-label__headline{position:relative;margin:0;font-weight:800;font-size:clamp(2.6rem,4.5vw,4.25rem);line-height:1;letter-spacing:-.025em}.plane-label__chip{position:absolute;left:-1.7rem;top:50%;transform:translateY(-50%);width:.85rem;height:.85rem;border-radius:50%;box-shadow:0 0 0 1.5px #1f212880}.plane-label__supporting{margin:0;max-width:34ch;font-size:clamp(1.15rem,1.5vw,1.45rem);font-weight:500;line-height:1.5;letter-spacing:normal;color:#3a3a44}@media(min-width:53.01em){.plane-label-overlay.text-right .plane-label{left:auto;right:clamp(2.5rem,8vw,11rem)}}@media(max-width:53em){.plane-label{left:max(1.25rem,env(safe-area-inset-left));right:max(1.25rem,env(safe-area-inset-right));top:auto;bottom:max(5rem,env(safe-area-inset-bottom));transform:none;max-width:none;gap:.6rem}.plane-label__headline{font-size:clamp(2rem,8vw,2.8rem)}.plane-label__supporting{max-width:42ch}.plane-label__chip{display:none}}.scroll-cue{position:fixed;left:50%;bottom:clamp(1.6rem,4vh,3rem);transform:translate(-50%);z-index:90;display:flex;flex-direction:column;align-items:center;gap:.85rem;color:#1f2128;pointer-events:none;transition:opacity .6s ease,transform .6s ease}.scroll-cue.is-hidden{opacity:0;transform:translate(-50%,12px)}.scroll-cue__label{font-family:var(--ui-font);font-size:.68rem;font-weight:600;letter-spacing:.32em;text-transform:uppercase;opacity:.55}.scroll-cue__track{position:relative;width:1px;height:46px;background:#1f212838;overflow:hidden}.scroll-cue__dot{position:absolute;left:50%;top:0;width:3px;height:9px;margin-left:-1.5px;border-radius:2px;background:#1f2128;animation:scrollCueTravel 1.9s cubic-bezier(.65,0,.35,1) infinite}@keyframes scrollCueTravel{0%{transform:translateY(-12px);opacity:0}25%{opacity:1}75%{opacity:1}to{transform:translateY(46px);opacity:0}}@media(prefers-reduced-motion:reduce){.scroll-cue__dot{animation:none;top:6px}}@media(max-width:53em){.scroll-cue{display:none}}
