*,*:after,*:before{box-sizing:border-box}:root{font-size:12px;--color-text: #fff;--color-bg: #F5F5F7;--color-link: #fff;--color-link-hover: #fff;--page-padding: 1.5rem}body{margin:0;color:var(--color-text);background-color:var(--color-bg);font-family:ui-monospace,monospace;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;height:100dvh;overflow:hidden}@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}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{display:none!important;padding:3rem var(--page-padding) 0;z-index:1000;position:relative;grid-row-gap:2rem;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 ..." "demos demos demos demos" "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;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}@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 1fr;align-content:start;grid-template-areas:"title back github archive ..." "demos demos demos ... ..." "tags tags tags sponsor sponsor"}.frame .frame__tags{align-self:end}.frame #cdawrap{justify-self:end;align-self:end;text-align:right;max-width:300px}}.lil-gui{display:none!important}.gallery-controls{z-index:20;position:fixed;inset:7rem 1.5rem auto;display:contents}.back-gallery-button{position:fixed;z-index:20;top:7rem;left:1.5rem}.next-gallery-button{position:fixed;z-index:20;top:7rem;right:1.5rem}.back-gallery-button svg{transform:scaleX(-1);margin:0 .3em 0 -.16em}.back-gallery-button:hover svg{margin:0 .3em 0 .66em}.back-gallery-button span{margin:0 .3em}.button{--main-size: 2em;--color-text: #ffffff;--color-background: #ff135a;--color-background-hover: #ff1472;--color-outline: #ff145a40;--color-shadow: #00000040;cursor:pointer;display:flex;justify-content:center;align-items:center;text-decoration:none;border:none;border-radius:calc(var(--main-size) * 100);min-width:5.65em;min-height:2.1em;padding:.33em .66em;font-family:Poppins,sans-serif;font-weight:600;font-size:var(--main-size);color:var(--color-text);background:var(--color-background);outline:.1em solid transparent;outline-offset:.2em;box-shadow:0 0 1em 0 var(--color-background);animation:ripple 1s linear infinite,colorize 1s infinite;transition:.5s}.button:active{transform:scale(.95)}.button:hover{outline:.1em solid transparent;outline-offset:.2em;box-shadow:0 0 1em 0 var(--color-background);animation:ripple 1s linear infinite,colorize 1s infinite;transition:.5s}.button span{margin:0 .3em;text-shadow:5px 5px 5px var(--color-shadow);transition:.5s}.button:hover span{text-shadow:5px 5px 5px var(--color-shadow)}.button:active span{text-shadow:none}.button svg{height:.8em;fill:var(--color-text);margin:0 .66em 0 0;position:relative;filter:drop-shadow(5px 5px 2.5px var(--color-shadow));transition:.5s}.back-gallery-button svg{margin:0 .3em 0 .66em}.button:hover svg{margin:0 .66em 0 0;transition:.5s;filter:drop-shadow(5px 5px 2.5px var(--color-shadow))}.button:active svg{filter:none}.button svg polygon:nth-child(1){transition:.4s;transform:translate(0);animation:opacity 1s infinite .6s}.button svg polygon:nth-child(2){transition:.5s;transform:translate(0);animation:opacity 1s infinite .4s}.button svg polygon:nth-child(3){animation:opacity 1s infinite .2s}.button:hover svg polygon:nth-child(1){transform:translate(0);animation:opacity 1s infinite .6s}.button:hover svg polygon:nth-child(2){transform:translate(0);animation:opacity 1s infinite .4s}.button:hover svg polygon:nth-child(3){animation:opacity 1s infinite .2s}@keyframes opacity{0%{opacity:1}50%{opacity:0}to{opacity:1}}@keyframes colorize{0%{background:var(--color-background)}50%{background:var(--color-background-hover)}to{background:var(--color-background)}}@keyframes ripple{0%{outline:0em solid transparent;outline-offset:-.1em}50%{outline:.2em solid var(--color-outline);outline-offset:.2em}to{outline:.4em solid transparent;outline-offset:.4em}}a.button:hover,a.button:focus{border-color:#5c5c5c;text-decoration:none;color:#fff}.content{padding:var(--page-padding);display:flex;flex-direction:column;width:100vw;height:100vh;position:relative}@media screen and (min-width:53em){.content{min-height:100vh;justify-content:center;align-items:center}}canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1}.gallery__wrapper,.gallery__wrapper__gl{position:relative;width:100%;overflow:hidden;-webkit-user-select:none;user-select:none}.gallery__image__container,.gallery__image__container__gl{display:flex;gap:2rem;will-change:transform;height:100%}.gallery__media,.gallery__media__gl,.gallery__empty__gl{flex-shrink:0;aspect-ratio:4 / 3;max-height:60vh;height:60vh;overflow:hidden;position:relative;display:block}.gallery__media__image{position:absolute;top:0;left:-12.5%;width:125%;height:100%;object-fit:cover}.gallery__media__image__gl{position:absolute;opacity:0;top:0;left:0;width:100%;height:100%;object-fit:cover}
