:root{font-size:12px;--color-text: #fff;--color-bg: #fff;--color-link: #fff;--color-link-hover: #fff;--page-padding: 1.5rem;--ui-tracking: .08em}body{margin:0;background-color:var(--color-bg);-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__back{grid-area:back;justify-self:start}.frame .frame__archive{grid-area:archive;justify-self:start}@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__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}@media screen and (min-width:53em){.content{min-height:100vh;justify-content:center;align-items:center}}.content__message{position:fixed;left:50%;bottom:max(2rem,env(safe-area-inset-bottom));transform:translate(-50%);z-index:1200;max-width:min(90vw,42rem);padding:.75rem 1rem;border:1px solid rgba(255,255,255,.2);background:#040a12b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--color-text);text-align:center;pointer-events:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.frame__toolbar{display:inline-flex;align-items:center;gap:.75rem;flex-wrap:wrap;pointer-events:auto}.frame__back-link{display:inline-flex;align-items:center;color:#fffffff5!important;text-shadow:0 6px 18px rgba(0,0,0,.28)}.frame__back-link:hover{color:#fff!important}.frame__icon-button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.9rem;height:2.9rem;padding:0;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:#060a1061;color:#fffffff5!important;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 14px 30px #00000029,inset 0 1px #ffffff14;cursor:pointer;text-shadow:0 6px 18px rgba(0,0,0,.28);transition:transform .22s ease,background-color .22s ease,border-color .22s ease,opacity .22s ease,color .22s ease}.frame__icon-button:hover:not(:disabled){transform:translateY(-1px);background:#060a107a;border-color:#ffffff47}.frame__icon-button:focus-visible{outline:2px solid rgba(255,255,255,.72);outline-offset:4px}.frame__icon-button:disabled{opacity:.45;cursor:not-allowed}.frame__icon{width:1.2rem;height:1.2rem;flex:0 0 auto}@media screen and (max-width:52.99em){.frame{padding-top:max(1.25rem,env(safe-area-inset-top))}.frame__toolbar{gap:.6rem}.frame__icon-button{width:2.7rem;height:2.7rem}}.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;text-transform:uppercase;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 .26s ease;color:#f4f4f4eb}.plane-label-overlay__left{position:absolute;left:clamp(2.5rem,8vw,12rem);top:50%;transform:translateY(-50%);display:block}.plane-label-card__word{margin:0;text-transform:uppercase;letter-spacing:var(--ui-tracking);line-height:1.15;font-size:clamp(10px,.9vw,13px);white-space:nowrap}@media(max-width:53em){.plane-label-overlay{inset:auto 0 max(6.25rem,env(safe-area-inset-bottom)) 0;padding:0 max(1rem,env(safe-area-inset-right)) 0 max(1rem,env(safe-area-inset-left))}.plane-label-overlay__left{position:static;transform:none}.plane-label-card__word{font-size:10px}}.art-play-btn{position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(30rem,calc(100vw - 2rem));border:0;background:transparent;cursor:pointer;z-index:90;isolation:isolate;transition:opacity .45s ease,visibility .45s ease,transform .3s ease}.art-play-btn__panel{display:flex;flex-direction:column;gap:.7rem;padding:1.2rem 1.4rem;border-radius:1.5rem;background:#060a1085;border:1px solid rgba(255,255,255,.18);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 18px 44px #00000047,inset 0 1px #ffffff1a;text-align:center}.art-play-btn__title,.art-play-btn__hint{display:block;color:#fffffff5}.art-play-btn__title{font-size:clamp(1rem,1.4vw,1.25rem);font-weight:700;text-transform:uppercase}.art-play-btn__hint{font-size:clamp(.76rem,.9vw,.88rem);line-height:1.5;opacity:.84}.art-play-btn[data-state=starting],.art-play-btn[data-state=started],.art-play-btn[data-state=hidden]{opacity:0;visibility:hidden;pointer-events:none}.art-play-btn:focus-visible{outline:2px solid rgba(255,255,255,.72);outline-offset:6px}@media(max-width:768px){.art-play-btn{width:min(28rem,calc(100vw - 1.5rem))}.art-play-btn__panel{padding:1rem 1.05rem;border-radius:1.25rem}}
