.world-shell{color:#eee;height:100dvh;font-family:var(--font-pixel), monospace;background:#000;position:fixed;inset:0;overflow:hidden}.world-game{grid-template-columns:minmax(0,1fr);place-items:center;width:100%;min-width:0;height:100%;display:grid;position:relative;overflow:hidden}.world-stage{width:100%;height:100%;position:absolute;inset:0}.world-canvas{width:100%;height:100%;image-rendering:pixelated;touch-action:none;background:#000;outline:none;transition:opacity .3s;display:block}.world-canvas[data-hover]:not([data-hover=""]){cursor:pointer}@media (any-pointer:coarse){.world-shell,.world-shell *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.world-shell button,.world-shell a{-webkit-tap-highlight-color:transparent}}.world-game[data-custom-cursor=true],.world-game[data-custom-cursor=true] *{cursor:none!important}.world-cursor{z-index:30;opacity:0;visibility:hidden;pointer-events:none;width:64px;height:64px;image-rendering:pixelated;will-change:left, top;background-repeat:no-repeat;background-size:512px 192px;position:fixed;top:0;left:0}.world-cursor[data-visible=true]{opacity:1;visibility:visible}.world-cursor[data-mode=press]{translate:0 1px}.world-game:has(.world-canvas:focus-visible) .world-legend{color:#8a8a8a}.world-context{bottom:max(70px, calc(env(safe-area-inset-bottom) + 60px));text-align:center;color:#aaa;pointer-events:none;width:max-content;max-width:min(85vw,360px);font-size:13px;line-height:1.4;position:absolute;left:50%;transform:translate(-50%)}.world-context kbd{color:#fff;font:inherit;margin-right:6px}.world-context button{pointer-events:auto;color:#fff;cursor:pointer;font:inherit;background:#000;border:1px solid #777;margin-left:8px;padding:2px 6px}.world-legend{bottom:max(24px, env(safe-area-inset-bottom));color:#777;text-align:center;width:100%;padding-inline:12px;font-size:13px;line-height:1.5;position:absolute;left:0}.world-legend span{color:#444;padding-inline:10px}.world-touch-charms,.touch-charm,.touch-context{display:none}.world-menu{z-index:10;color:#ddd;clip-path:polygon(0 6px,3px 6px,3px 3px,6px 3px,6px 0,calc(100% - 6px) 0,calc(100% - 6px) 3px,calc(100% - 3px) 3px,calc(100% - 3px) 6px,100% 6px,100% calc(100% - 6px),calc(100% - 6px) calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,6px calc(100% - 3px),0 calc(100% - 3px));transform-origin:25% 0;background:#090909;border:2px solid #aaa;width:224px;padding:9px 5px 7px;animation:.18s steps(4,end) both menu-unfold;position:absolute;box-shadow:5px 5px #000}.world-menu-heading{padding:4px 8px 9px;font-size:18px;line-height:1.15}.world-menu-heading>span{color:#888;margin-right:5px;display:inline-block}.world-menu-heading small{color:#777;margin-top:5px;font-size:12px;display:block}.world-menu button{color:#bbb;width:100%;min-height:44px;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;padding:1px 5px;font-size:14px;display:flex}.world-menu button:hover,.world-menu button:focus-visible{color:#fff;outline-offset:-2px;background:#202020;outline:1px dashed #777}.world-menu button:active{translate:1px 1px}.world-menu button .orbit-sprite{--sprite-size:32px;flex:none;margin:0;animation-duration:2.4s}.world-menu kbd{font:inherit;color:#777;margin-left:auto;font-size:10px}.world-menu-footnote{color:#666;text-align:center;padding-top:5px;font-size:11px;display:block}@keyframes menu-unfold{0%{opacity:0;transform:translateY(-5px)scaleY(.92)}to{opacity:1;transform:none}}.world-legend .keyboard-hint,.world-legend .touch-hint{color:inherit;padding:0}.world-legend .touch-hint{display:none}.world-speech{z-index:3;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .18s steps(3,end);position:absolute;transform:translate(-50%,calc(-100% - 8px))}.world-speech[data-visible=true]{opacity:1;visibility:visible}.world-speech-paper{color:#eee;text-align:center;isolation:isolate;clip-path:polygon(0 6px,3px 6px,3px 3px,6px 3px,6px 0,calc(100% - 6px) 0,calc(100% - 6px) 3px,calc(100% - 3px) 3px,calc(100% - 3px) 6px,100% 6px,100% calc(100% - 6px),calc(100% - 3px) calc(100% - 6px),calc(100% - 3px) calc(100% - 3px),calc(100% - 6px) calc(100% - 3px),calc(100% - 6px) 100%,6px 100%,6px calc(100% - 3px),3px calc(100% - 3px),3px calc(100% - 6px),0 calc(100% - 6px));background:#d9d9d9;padding:13px 16px;font-size:18px;line-height:1.2;display:block;position:relative}.world-speech-paper:before{content:"";clip-path:inherit;z-index:-1;background:#090909;position:absolute;inset:2px}.world-speech-tail{left:var(--tail-x);clip-path:polygon(0 0,100% 0,100% 4px,7px 4px,7px 7px,4px 7px,4px 100%,0 100%);background:#d9d9d9;width:10px;height:10px;position:absolute;bottom:-8px}.world-speech-tail:before{content:"";clip-path:inherit;background:#090909;position:absolute;inset:0 2px 2px}.world-water{justify-content:center;gap:4px;margin-top:8px;display:flex}.world-water i{background:#292929;width:18px;height:3px;display:block}.world-water b{transform-origin:0;background:#ddd;width:100%;height:100%;display:block}.world-orbits{pointer-events:none;transition:opacity .26s;position:absolute;inset:0}.orbit-fragment{left:clamp(114px, var(--orbit-left), calc(100% - 114px));width:170px;transform:translate(calc(-50% + var(--orbit-x,0px) * var(--depth)), calc(-50% + var(--orbit-y,0px) * var(--depth)));z-index:2;transition:transform .65s cubic-bezier(.2,.8,.2,1);position:absolute}.orbit-northwest{--orbit-left:13%;top:25%}.orbit-east{--orbit-left:88%;top:62%}.orbit-northeast{--orbit-left:85%;top:29%}.orbit-southwest{--orbit-left:13%;top:77%}.orbit-southeast{--orbit-left:84%;top:85%}.world-game[data-destination="1"] .orbit-northwest{--orbit-left:15%;top:18%}.world-game[data-destination="1"] .orbit-northeast{--orbit-left:82%;top:max(112px,11%)}.world-game[data-destination="2"] .orbit-northwest{--orbit-left:11%;top:19%}.world-game[data-destination="2"] .orbit-northeast{--orbit-left:76%;top:max(104px,8%)}.world-game[data-destination="2"] .orbit-southwest{--orbit-left:6%;top:79%}.world-game[data-destination="2"] .orbit-southeast{--orbit-left:86%;top:76%}.world-game[data-destination="2"] .orbit-east{--orbit-left:90%;top:53%}.orbit-drifter{animation:orbit-drift var(--period) steps(12, end) var(--phase) infinite;position:relative}.orbit-drifter:before{content:"";pointer-events:none;background:#444;width:2px;height:2px;position:absolute;top:30%;left:26%;box-shadow:-12px 8px #292929,-25px 12px #161616}.orbit-object{color:#bbb;width:100%;font:inherit;cursor:pointer;pointer-events:auto;background:0 0;border:0;flex-direction:column;align-items:center;padding:0 4px 8px;font-size:14px;line-height:1.4;text-decoration:none;display:flex}.orbit-caption{cursor:default;color:#ddd}.orbit-figure{isolation:isolate;transform-origin:50% 90%;display:block;position:relative}.orbit-particle{z-index:3;pointer-events:none;opacity:0;background:#aaa;display:block;position:absolute}.orbit-particle-grain{width:2px;height:2px;animation:orbit-grain var(--particle-duration) steps(10, end) var(--particle-delay) both}.orbit-particle-grain:nth-of-type(3n){background:#555}.orbit-particle-grain:nth-of-type(3n+1){background:#777;width:3px}.orbit-particle-leaf{clip-path:polygon(0 25%,2px 25%,2px 0,4px 0,4px 25%,100% 25%,100% 75%,4px 75%,4px 100%,2px 100%,2px 75%,0 75%);transform-origin:50%;width:6px;height:4px;animation:orbit-leaf var(--particle-duration) steps(12, end) var(--particle-delay) both}.orbit-particle-leaf:nth-of-type(2n){background:#666}.orbit-figure:after{content:"";opacity:0;pointer-events:none;background:#ddd;width:2px;height:2px;position:absolute;top:50%;left:50%;box-shadow:-26px -10px #777,24px -25px #bbb,19px 13px #555}.orbit-sprite{--sprite-size:80px;z-index:1;width:var(--sprite-size);height:var(--sprite-size);image-rendering:pixelated;background-image:var(--orbit-atlas);background-repeat:no-repeat;background-size:calc(var(--sprite-size) * 12) calc(var(--sprite-size) * 4);background-position-y:calc(var(--sprite-size) * var(--row) * -1);animation:orbit-frames 3.6s steps(12, jump-none) var(--phase) infinite;margin-bottom:-2px;transition:filter .2s;display:block;position:relative}.orbit-telescope{animation:telescope-frames 3.2s steps(5, end) var(--phase) infinite alternate}.orbit-label{text-align:center;text-shadow:0 2px #000,2px 0 #000,-2px 0 #000;display:block}.orbit-spark{color:#555}.orbit-object:hover,.orbit-object:focus-visible{color:#fff}.orbit-object:hover .orbit-sprite,.orbit-object:focus-visible .orbit-sprite{filter:drop-shadow(0 0 5px #ffffff35)}.world-game[data-destination="0"] .world-orbits .orbit-sprite{--sprite-size:128px}.world-game[data-destination="0"] .orbit-object{font-size:20px}.orbit-object:is(:hover,:focus-visible) .orbit-figure:after{animation:.85s steps(8,end) both orbit-pollen}.orbit-object:active .orbit-figure{translate:0 3px}.orbit-object:active .orbit-sprite{filter:drop-shadow(0 0 7px #ffffff70)}.orbit-object:is(:hover,:focus-visible) .orbit-spark{color:#ddd}.orbit-fragment:hover .orbit-drifter,.orbit-fragment:focus-within .orbit-drifter{animation-play-state:paused}.orbit-fragment[data-reading=true] .orbit-drifter{animation-name:orbit-read}.orbit-object:focus-visible{outline-offset:5px;outline:1px dashed #666}.orbit-object:disabled{cursor:default}.orbit-note{color:#919191;text-align:center;white-space:pre-line;pointer-events:auto;text-shadow:0 2px #000,2px 0 #000,-2px 0 #000;width:200px;margin:0;padding:3px 10px 4px;font-size:14px;line-height:1.6;position:relative;left:50%;transform:translate(-50%)}.orbit-whisper{color:#666;text-align:center;width:max-content;max-width:90vw;font-size:12px;position:absolute;bottom:78px;left:50%;transform:translate(-50%)}.world-game[data-travelling=true] .world-orbits,.world-game[data-travelling=true] .orbit-object,.world-game[data-travelling=true] .orbit-note{pointer-events:none}.world-game[data-travelling=true] .world-context{opacity:0;pointer-events:none}.world-game[data-travelling=true] .orbit-drifter{animation-play-state:paused}.orbit-fragment[data-arriving=true] .orbit-sprite{filter:drop-shadow(0 0 8px #ffffff60)}.world-game[data-destination="0"] .orbit-fragment[data-gate-anchor]{will-change:translate;width:144px;transition:none;transform:translate(-50%)}@keyframes orbit-greet{0%{transform:translateY(0)}45%{transform:translateY(-5px)}75%{transform:translateY(-2px)}to{transform:translateY(-3px)}}@keyframes orbit-pollen{0%{opacity:0;transform:translateY(3px)}20%{opacity:.8}to{opacity:0;transform:translateY(-14px)}}@keyframes orbit-grain{0%{opacity:0;transform:translateY(-3px)}12%{opacity:.9}55%{opacity:.75;transform:translate(calc(var(--particle-x) * .45), calc(var(--particle-y) * .35))}to{opacity:0;transform:translate(var(--particle-x), var(--particle-y))}}@keyframes orbit-leaf{0%{opacity:0;transform:translate(3px,-4px)rotate(0)}10%{opacity:.9}28%{transform:translate(calc(var(--particle-x) * .25), calc(var(--particle-y) * .1)) rotate(calc(var(--particle-turn) * -.35))}58%{transform:translate(calc(var(--particle-x) * .55 + 7px), calc(var(--particle-y) * .45)) rotate(calc(var(--particle-turn) * .55))}82%{opacity:.75;transform:translate(calc(var(--particle-x) * .8 - 4px), calc(var(--particle-y) * .72)) rotate(calc(var(--particle-turn) * -.75))}to{opacity:0;transform:translate(var(--particle-x), var(--particle-y)) rotate(var(--particle-turn))}}@keyframes orbit-drift{0%,to{transform:translate(0)}25%{transform:translate(5px,-6px)}55%{transform:translate(-2px,-11px)}80%{transform:translate(-6px,-3px)}}@keyframes orbit-read{0%,to{transform:translate(0)}50%{transform:translate(2px,-3px)}}@keyframes orbit-frames{0%{background-position-x:0}to{background-position-x:calc(var(--sprite-size) * -11)}}@keyframes telescope-frames{0%{background-position-x:0}to{background-position-x:calc(var(--sprite-size) * -5)}}@keyframes touch-life{0%{background-position-x:0}to{background-position-x:-1152px}}@keyframes touch-turn{0%,to{transform:rotate(0)translateY(0)}40%{transform:rotate(-12deg)translateY(-2px)}70%{transform:rotate(10deg)translateY(-1px)}}@keyframes touch-hint-away{0%,76%{opacity:1}to{opacity:0}}@keyframes touch-walk{0%{background-position-x:0}to{background-position-x:-1536px}}@keyframes touch-hop{0%,to{translate:0}25%{translate:0 3px}60%{translate:0 -8px}}@media (max-width:639px){.world-canvas{width:100%;height:100%}.orbit-fragment{width:min(160px,50vw - 28px)}.world-game[data-destination="0"] .orbit-fragment[data-gate-anchor]{width:112px}.orbit-object{font-size:12px}.orbit-sprite{--sprite-size:64px}.world-game[data-destination="0"] .world-orbits .orbit-sprite{--sprite-size:96px}.world-game[data-destination="0"] .orbit-object{font-size:17px}.orbit-northwest,.world-game[data-destination="1"] .orbit-northwest,.world-game[data-destination="2"] .orbit-northwest{top:13%;left:25%}.orbit-east{top:24%;left:78%}.orbit-northeast,.world-game[data-destination="1"] .orbit-northeast,.world-game[data-destination="2"] .orbit-northeast{top:17%;left:75%}.orbit-southwest,.world-game[data-destination="2"] .orbit-southwest{top:74%;left:25%}.orbit-southeast,.world-game[data-destination="2"] .orbit-southeast{top:76%;left:75%}.orbit-note{width:100%;padding-inline:8px;font-size:12px}.orbit-northwest .orbit-note,.orbit-southwest .orbit-note{left:0;transform:none}.orbit-northeast .orbit-note,.orbit-southeast .orbit-note{left:0;right:auto;transform:none}.orbit-whisper{display:none}.world-game[data-destination="1"] .orbit-southwest{top:min(64%,100% - 292px)}.world-game[data-destination="1"] .orbit-southeast{top:min(60%,100% - 292px)}.world-game[data-destination="2"] .orbit-east{top:45%;left:75%}.world-game[data-destination="2"] .orbit-southwest{top:min(61%,100% - 338px)}.world-game[data-destination="2"] .orbit-southeast{top:min(60%,100% - 284px)}.world-game:not([data-destination="0"]) .orbit-note{background:#000c}.world-context{font-size:12px}}@media (hover:none) and (pointer:coarse){.world-touch-charms{z-index:5;pointer-events:none;display:block;position:absolute;inset:0}.touch-charm{color:#777;width:64px;height:76px;font:12px/1.2 var(--font-pixel), monospace;text-align:center;touch-action:none;-webkit-user-select:none;user-select:none;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:0 0;border:0;outline:0;flex-direction:column;justify-content:flex-start;align-items:center;padding:0;display:flex;position:absolute}.touch-charm:disabled,.world-touch-charms[data-ready=false] .touch-charm{opacity:.28;pointer-events:none}.touch-walk-zone{left:max(14px, env(safe-area-inset-left));bottom:max(34px, calc(env(safe-area-inset-bottom) + 18px));width:132px;height:206px;position:absolute}.touch-action-zone{right:max(14px, env(safe-area-inset-right));bottom:max(34px, calc(env(safe-area-inset-bottom) + 18px));width:148px;height:176px;position:absolute}.touch-stick{color:#484848;touch-action:none;pointer-events:auto;outline:none;width:132px;height:132px;position:absolute;bottom:0}.touch-stick[aria-disabled=true]{opacity:.28;pointer-events:none}.touch-stick-ring{width:120px;height:120px;transition:color .16s;position:absolute;inset:6px}.touch-stick[data-held=true],.touch-stick:focus-visible{color:#a2a2a2}.touch-stick-thumb{width:64px;height:64px;transform:translate(var(--stick-x,0px), var(--stick-y,0px));transition:transform .24s cubic-bezier(.2,1.4,.4,1);position:absolute;top:34px;left:34px}.touch-stick[data-held=true] .touch-stick-thumb{transition:none}.touch-walker{background:var(--touch-player) 0 -64px / 1536px 128px no-repeat;width:64px;height:64px;image-rendering:pixelated;opacity:.8;display:block}.world-game[data-touch-held="1"] .touch-walker,.world-game[data-touch-held="2"] .touch-walker{opacity:1;background-position-y:0;animation:1.2s steps(24,end) infinite touch-walk}.world-game[data-touch-held="1"] .touch-walker{scale:-1 1}.touch-stick-arrow{font:26px/1 var(--font-pixel), monospace;position:absolute;top:50px}.touch-stick-left{left:15px}.touch-stick-right{right:15px}.world-game[data-touch-held="1"] .touch-stick-left,.world-game[data-touch-held="2"] .touch-stick-right{color:#eee}.touch-stick-caption{text-align:center;color:#777;width:100%;font-size:12px;position:absolute;bottom:-10px}.touch-charm:focus-visible .touch-art{filter:brightness(1.8)drop-shadow(0 0 4px #fff6)}.touch-charm:focus-visible .touch-caption{color:#ddd}.touch-art{width:48px;height:48px;image-rendering:pixelated;background-repeat:no-repeat;flex:none;display:block}.touch-caption{color:#666;text-shadow:0 2px #000,2px 0 #000,-2px 0 #000;margin-top:1px;display:block}.touch-turn{height:64px;top:0;left:34px}.touch-turn .touch-art{background-image:var(--touch-terrain);background-position:50%;background-size:contain;width:44px;height:44px;margin:2px}.touch-turn:is(:active,:focus-visible) .touch-art{filter:brightness(1.7)drop-shadow(0 0 4px #fff5);animation:.42s steps(5,end) both touch-turn}.touch-flight{top:0;right:4px}.touch-jump{width:80px;height:88px;bottom:0;right:0}.touch-jump .touch-art{background:var(--touch-player) -832px -64px / 1536px 128px no-repeat;width:64px;height:64px}.touch-jump:before{content:"";background:#555;width:28px;height:2px;position:absolute;bottom:21px;box-shadow:-4px 3px #222,4px 3px #222}.touch-jump[data-pressed=true] .touch-art{animation:.4s steps(8,end) both touch-hop}.touch-charm[data-pressed=true] .touch-caption{color:#fff}.touch-flight .touch-art{background-image:var(--touch-life);opacity:.62;background-position:0 0;background-size:1152px 192px;animation:3.8s steps(24,end) infinite touch-life}.touch-flight:active .touch-art,.world-game[data-boosting=true] .touch-flight .touch-art{opacity:1;filter:brightness(1.8)drop-shadow(0 0 5px #fff8);animation-duration:.8s}.touch-flight:active .touch-caption,.world-game[data-boosting=true] .touch-flight .touch-caption{color:#fff}.world-context[data-kind=water]{display:none}.touch-water{bottom:36px;left:0}.touch-water .touch-art{background-image:var(--touch-props);background-position:calc(var(--water-frame,0) * -48px) 0;background-size:1152px 288px}.touch-water[data-ready=true] .touch-art{filter:brightness(1.5)drop-shadow(0 0 4px #fff4)}.touch-drops{gap:6px;display:flex;position:absolute;bottom:0}.touch-drops i{clip-path:polygon(2px 0,4px 0,4px 2px,6px 2px,6px 6px,4px 6px,4px 8px,2px 8px,2px 6px,0 6px,0 2px,2px 2px);background:#282828;width:6px;height:8px;display:block}.touch-drops b{transform-origin:bottom;background:#ddd;width:100%;height:100%;display:block}.keyboard-context{display:none}.world-context[data-kind=gate] .touch-context{display:inline}.world-legend{bottom:max(10px, env(safe-area-inset-bottom));pointer-events:none;font-size:12px}.world-legend span{padding-inline:5px}.world-legend .keyboard-hint{display:none}.world-legend .touch-hint{display:inline}.world-game[data-ready=true] .world-legend .touch-hint{animation:6s steps(4,end) both touch-hint-away}.world-context{bottom:max(84px, calc(env(safe-area-inset-bottom) + 72px))}.world-speech-paper{font-size:16px}.orbit-whisper{display:none}}@media (max-height:540px) and (min-width:640px){.orbit-fragment{width:160px}.world-orbits .orbit-sprite,.world-game[data-destination="0"] .world-orbits .orbit-sprite{--sprite-size:64px}.orbit-object,.world-game[data-destination="0"] .orbit-object{font-size:14px}.orbit-note{width:170px;font-size:12px;line-height:1.3}.orbit-northwest,.world-game[data-destination="1"] .orbit-northwest,.world-game[data-destination="2"] .orbit-northwest{--orbit-left:13%;top:26%}.orbit-northeast,.world-game[data-destination="1"] .orbit-northeast,.world-game[data-destination="2"] .orbit-northeast{--orbit-left:86%;top:24%}.orbit-east{--orbit-left:86%;top:43%}.world-game[data-destination="2"] .orbit-east{--orbit-left:60%;top:82%}.orbit-southwest,.world-game[data-destination="2"] .orbit-southwest{--orbit-left:13%;top:64%}.orbit-southeast,.world-game[data-destination="2"] .orbit-southeast{--orbit-left:86%;top:64%}.touch-walk-zone,.touch-action-zone{bottom:max(14px, env(safe-area-inset-bottom))}.world-legend{font-size:11px;bottom:12px}}@media (min-width:640px) and (max-height:540px) and (hover:none) and (pointer:coarse){.world-game[data-destination="2"] .orbit-southwest{--orbit-left:47%;width:160px;top:78%}.world-game[data-destination="2"] .orbit-southwest .orbit-note{width:160px}.world-game[data-destination="2"] .orbit-east{--orbit-left:35%;top:42%}.world-game[data-destination="2"] .orbit-southeast{--orbit-left:70%;top:61%}}@media (max-height:540px) and (hover:none) and (pointer:coarse){.world-legend{display:none}}@media (prefers-reduced-motion:reduce){.world-game .touch-stick .touch-walker{animation:none}.touch-stick-thumb,.touch-stick-ring{transition:none}.world-game[data-ready] .touch-charm .touch-art,.orbit-drifter,.orbit-object .orbit-sprite,.orbit-object .orbit-figure,.orbit-object .orbit-figure:after,.orbit-particle,.orbit-note,.touch-art{animation:none}.world-canvas,.world-orbits,.world-speech,.orbit-fragment{transition:none}.world-menu{animation:none}}
