:root{--ink:#111;--brand:#511878;--hover:#b874e7;--sans:"VT323", "Courier New", monospace;--pixel:"Press Start 2P", "VT323", monospace}*{box-sizing:border-box}html,body{color:#fff;height:100%;font-family:var(--sans);background:#0f1216;margin:0}body{flex-direction:column;min-height:100vh;display:flex}a{color:inherit;text-decoration:none}.menu{left:1.6%;top:var(--head-top);z-index:5;font-family:var(--pixel);font-size:var(--menu-fs);align-items:baseline;gap:2.2vw;line-height:1;display:flex;position:absolute}.menu a{color:#fff;text-shadow:2px 2px #000,-1px -1px #000,1px -1px #000,-1px 1px #000;letter-spacing:.02em}.menu a:hover,.menu a:focus-visible{color:var(--hover);outline:none;text-decoration:none}.menu .brand{font-size:calc(var(--brand-scale) * 1em)}.tools{right:1.4%;top:var(--head-top);margin-top:calc(var(--menu-fs) * var(--brand-scale) * .4375 - var(--tool) / 2);z-index:5;--tool:clamp(28px, 3.2vw, 46px);align-items:center;gap:clamp(11px,1.5vw,22px);display:flex;position:absolute}.tools .lang{font-family:var(--pixel);font-size:var(--menu-fs);color:#fff;text-shadow:2px 2px #000,-1px -1px #000,1px -1px #000,-1px 1px #000;letter-spacing:.02em;line-height:1;transition:color .15s;position:relative;top:.0625em}.tools .lang:hover,.tools .lang:focus-visible{color:var(--hover);outline:none;text-decoration:none}.tools button{width:var(--tool);height:var(--tool);cursor:pointer;image-rendering:pixelated;filter:drop-shadow(2px 2px #0009);background:0 0;border:0;padding:0;transition:transform .1s}.tools button:hover,.tools button:focus-visible{outline:none;transform:scale(1.12)}.tools button img{width:100%;height:100%;display:block}.tools #mode{margin-left:calc(var(--tool) * -.05)}.tools #hint{margin-left:calc(var(--tool) * -.2125)}html[data-mode=night] .tools #mode{margin-left:0}html[data-mode=night] .tools #hint{margin-left:calc(var(--tool) * -.1625)}.tools #mode .sun,html[data-mode=night] .tools #mode .moon{display:none}html[data-mode=night] .tools #mode .sun{display:block}.tools #hint[aria-pressed=true]{transform:scale(1.12)rotate(-8deg)}.stage-wrap{flex:1;justify-content:center;align-items:center;display:flex;overflow:auto}.stage{--head-top:2.6%;--menu-fs:clamp(9px, 1.05vw, 15px);--brand-scale:1.35;width:100vw;max-width:179.167vh;max-height:100vh;margin:auto;position:relative}.stage img{object-fit:contain;width:100%;height:100%;display:block}@media (aspect-ratio<=5504/3072) and (width<=760px){.stage-wrap{justify-content:flex-start}.stage{aspect-ratio:5504/3072;--head-top:19px;--menu-fs:10px;--brand-scale:1.32;width:auto;max-width:none;height:100vh}.menu{flex-direction:column;align-items:flex-start;gap:24px;position:fixed;left:12px}.tools{--tool:32px;gap:11px;position:fixed;right:10px}}.prop-blur{pointer-events:none;transform-origin:50%;animation:2.4s linear infinite spin;position:absolute}.prop-blur img{width:100%;height:100%;display:block}.prop{pointer-events:none;transform-origin:50%;will-change:transform;opacity:.72;filter:blur(.6px);animation:.42s linear infinite spin;position:absolute}.prop img{width:100%;height:100%;display:block}.spinner{pointer-events:none;position:absolute}.spinner img{width:100%;height:100%;display:block}@keyframes spin{0%{transform:rotate(var(--a0,0deg))}to{transform:rotate(calc(var(--a0,0deg) + 180deg))}}@media (prefers-reduced-motion:reduce){.prop,.prop-blur{animation:none}.prop{opacity:1;filter:none}}.tail{pointer-events:none;animation:30s ease-in-out infinite swing;position:absolute}.tail img{width:100%;height:100%;display:block}@keyframes swing{0%,to{transform:rotate(0)}2%{transform:rotate(-12deg)}4.5%{transform:rotate(9deg)}6.5%{transform:rotate(-4deg)}8%{transform:rotate(0)}}@media (prefers-reduced-motion:reduce){.tail{animation:none}}html[data-mode=night] .prop,html[data-mode=night] .prop-blur,html[data-mode=night] .spinner,html[data-mode=night] .tail,html[data-mode=night] .sun-glow,html[data-mode=night] .sun-warm,html[data-mode=day] .lamp-glow,html[data-mode=day] .moon-glow,html[data-mode=day] .stars{display:none}.stars{pointer-events:none;position:absolute;inset:0}.stars i{mix-blend-mode:screen;opacity:0;width:1.6%;transform:scale(calc(var(--k,1) * .7));animation:twinkle var(--d,4s) ease-in-out var(--o,0s) infinite alternate;background:radial-gradient(closest-side,#fffffff2,#dce6ff80 30%,#c8d7ff00 70%);border-radius:50%;margin:-.8% 0 0 -.8%;padding-top:1.6%;position:absolute}@keyframes twinkle{0%{opacity:0;transform:scale(calc(var(--k,1) * .6))}to{opacity:.55;transform:scale(var(--k,1))}}@media (prefers-reduced-motion:reduce){.stars i{opacity:.2;animation:none}}html[data-mode=night]{background:#05060a}.lamp-glow{pointer-events:none;mix-blend-mode:screen;opacity:.16;background:radial-gradient(closest-side,#ffdc96cc,#ffc8784d 45%,#ffbe6e00 100%);border-radius:50%;width:16%;height:26%;animation:7s ease-in-out infinite alternate lampglow;position:absolute;top:4%;left:30%}.moon-glow{pointer-events:none;mix-blend-mode:screen;opacity:.1;background:radial-gradient(closest-side,#c8d2ffb3,#b4beff40 45%,#a0aaff00 100%);border-radius:50%;width:24%;height:40%;animation:53s ease-in-out infinite alternate moonglow;position:absolute;top:-8%;left:74%}@keyframes lampglow{0%{opacity:.12}to{opacity:.22}}@keyframes moonglow{0%{opacity:.06}to{opacity:.16}}@media (prefers-reduced-motion:reduce){.lamp-glow,.moon-glow{animation:none}}.sun-glow{pointer-events:none;mix-blend-mode:screen;opacity:.1;will-change:opacity, transform;background:radial-gradient(closest-side,#ffd68cbf,#ffbe6e59 45%,#ffaa5a00 100%);border-radius:50%;width:30%;height:44%;animation:46s ease-in-out infinite alternate sunglow;position:absolute;top:20%;left:78%;transform:translate(0)scale(1)}.sun-warm{pointer-events:none;mix-blend-mode:soft-light;opacity:.35;will-change:opacity;background:linear-gradient(255deg,#ffc4788c 0%,#ffc4782e 38%,#ffc47800 62%);animation:73s ease-in-out infinite alternate sunwarm;position:absolute;inset:0}@keyframes sunglow{0%{opacity:.08;transform:translate(0)scale(1)}to{opacity:.22;transform:translate(-1.2%,1.5%)scale(1.08)}}@keyframes sunwarm{0%{opacity:.22}to{opacity:.55}}@media (prefers-reduced-motion:reduce){.sun-glow,.sun-warm{animation:none}}html[data-mode=day] .spot[data-mode=night],html[data-mode=night] .spot[data-mode=day]{display:none}.spot{cursor:pointer;color:inherit;font:inherit;background:0 0;border:0;border-radius:6px;margin:0;padding:0;position:absolute}.halo{pointer-events:none;opacity:0;mix-blend-mode:screen;z-index:1;transition:opacity .25s;position:absolute}.halo.lit{opacity:1;animation:1.3s ease-in-out infinite alternate flick}.frame{pointer-events:none;opacity:0;z-index:1;transition:opacity .2s;position:absolute}.frame.lit{opacity:1}.frame i{width:18px;height:18px;filter:drop-shadow(0 0 2px var(--hover));border:2px solid #fff;position:absolute}.frame i:first-child{border-bottom:0;border-right:0;border-top-left-radius:7px;top:-2px;left:-2px}.frame i:nth-child(2){border-bottom:0;border-left:0;border-top-right-radius:7px;top:-2px;right:-2px}.frame i:nth-child(3){border-top:0;border-left:0;border-bottom-right-radius:7px;bottom:-2px;right:-2px}.frame i:nth-child(4){border-top:0;border-right:0;border-bottom-left-radius:7px;bottom:-2px;left:-2px}.frame.lit i:first-child{animation:1.1s ease-in-out infinite alternate brk1}.frame.lit i:nth-child(2){animation:1.1s ease-in-out infinite alternate brk2}.frame.lit i:nth-child(3){animation:1.1s ease-in-out infinite alternate brk3}.frame.lit i:nth-child(4){animation:1.1s ease-in-out infinite alternate brk4}@keyframes brk1{to{transform:translate(-3px,-3px)}}@keyframes brk2{to{transform:translate(3px,-3px)}}@keyframes brk3{to{transform:translate(3px,3px)}}@keyframes brk4{to{transform:translate(-3px,3px)}}.frame .scan{opacity:.9;background:repeating-linear-gradient(90deg,#39ff6a 0 14px,#0000 14px 19px,#b9ffc9 19px 27px,#0000 27px 33px);height:2px;position:absolute;top:0;left:6px;right:6px;box-shadow:0 0 5px #39ff6a,0 0 12px #39ff6a80}.frame.lit .scan{animation:2.4s ease-in-out infinite alternate scan,.55s step-end infinite glitch}@keyframes scan{to{top:calc(100% - 2px)}}@keyframes glitch{0%{opacity:.9;background-position:0 0;transform:translate(0)scaleY(1)}18%{opacity:.55;background-position:9px 0;transform:translate(-5px)scaleY(1)}27%{opacity:1;background-position:-6px 0;transform:translate(3px)scaleY(2.2)}41%{opacity:.25;transform:translate(0)scaleY(1)}55%{opacity:.95;background-position:21px 0;transform:translate(7px)scaleY(1)}70%{opacity:.7;transform:translate(-2px)scaleY(1.6)}84%{opacity:1;background-position:4px 0;transform:translate(0)scaleY(1)}}.frame[data-for=pad] i{border-radius:4px;width:9px;height:9px}.frame[data-for=pad] i:first-child{border-radius:4px 0 0}.frame[data-for=pad] i:nth-child(2){border-radius:0 4px 0 0}.frame[data-for=pad] i:nth-child(3){border-radius:0 0 4px}.frame[data-for=pad] i:nth-child(4){border-radius:0 0 0 4px}@media (width<=760px){.frame i{width:12px;height:12px}.frame[data-for=pad] i{width:7px;height:7px}}@media (prefers-reduced-motion:reduce){.frame.lit i,.frame.lit .scan{animation:none}.frame .scan{top:50%}}.halo[data-kind=ring]{transform-origin:50%}.halo[data-kind=ring].lit{opacity:1;filter:brightness(1.25)saturate(1.2);animation:1.3s ease-in-out infinite alternate flick,9s linear infinite turn}@keyframes turn{to{transform:rotate(360deg)}}html[data-mode=day] .halo[data-mode=night],html[data-mode=night] .halo[data-mode=day]{display:none}@keyframes flick{0%{opacity:.55}to{opacity:1}}.spot{z-index:2}@media (prefers-reduced-motion:reduce){.halo.lit,.halo[data-kind=ring].lit{animation:none}}.spot:focus{outline:none}.spot .tag{white-space:nowrap;background:var(--ink);color:#fff;font-family:var(--pixel);opacity:0;pointer-events:none;border:2px solid #fff;border-radius:4px;padding:.2rem .55rem;font-size:.55rem;font-weight:400;transition:opacity .15s;position:absolute;bottom:100%;left:50%;transform:translate(-50%,-6px);box-shadow:2px 2px #000}.spot:hover .tag,.spot:focus-visible .tag{opacity:1}.spot.on .tag{opacity:0!important}.stage.hint .spot:after{content:"";clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);filter:drop-shadow(0 0 5px #fff)drop-shadow(0 0 10px #ffffffb3);background:#fff;width:16px;height:16px;margin:-8px 0 0 -8px;animation:1.4s ease-in-out infinite alternate twinkle-star;position:absolute;top:50%;left:50%}.stage.hint .spot:before{content:"";background:0 0;border:0;border-radius:50%;width:12px;height:12px;margin:-6px 0 0 -6px;animation:1.4s infinite pulse;position:absolute;top:50%;left:50%;box-shadow:0 0 #b22234d9}.stage.hint .spot:after,.stage.hint .spot:before{left:var(--sx,50%);top:var(--sy,50%)}html[data-mode=night] .stage.hint .spot:after,html[data-mode=night] .stage.hint .spot:before{left:var(--nsx,var(--sx,50%));top:var(--nsy,var(--sy,50%))}@keyframes twinkle-star{0%{transform:scale(.8)rotate(0)}to{transform:scale(1.15)rotate(45deg)}}@keyframes pulse{to{box-shadow:0 0 0 14px #b2223400}}.foot{font-family:var(--sans);color:#ffffffbf;text-align:center;pointer-events:none;background:linear-gradient(#0000,#0000008c);margin:0;padding:.6rem 1.1rem;font-size:1.1rem;position:fixed;bottom:0;left:0;right:0}.foot a{pointer-events:auto;text-decoration:underline}.pop{z-index:6;width:26%;min-width:220px;max-width:420px;position:absolute}.pop .tail{width:0;height:0;position:absolute}.pop .close{border:2px solid var(--ink);width:26px;height:26px;color:var(--ink);font:400 20px/1 var(--sans);cursor:pointer;z-index:3;background:#fff;padding:0;position:absolute;top:-11px;right:-11px}.pop-dim{z-index:5;background:#00000080;position:fixed;inset:0}.pop.big{z-index:7;width:min(56vw,760px);max-width:none;max-height:86vh;position:fixed;overflow:auto;transform:translate(-50%,-50%);top:50%!important;left:50%!important}.pop.big .tail{display:none}.pop.big .close{top:8px;right:8px}.pop.big .pop-foot{display:none}.pop.big p{font-size:1.3rem}.pop.big .para{margin:0 0 .7em;display:block}.pop.big .sub{font-family:var(--pixel);border-top:2px solid var(--ink);margin:1.1em 0 .5em;padding-top:.8em;font-size:.6rem;line-height:1.6;display:block}.pop.big .sub:first-child{border-top:0;margin-top:0;padding-top:0}.pop.big em{font-style:italic}.pop.big a{color:var(--ink);text-underline-offset:3px;text-decoration:underline 2px}.pop.big a:hover{background:var(--brand);color:#fff;text-decoration:none}.pop.big .pop-body{padding:1rem 1.3rem 1.1rem}.pop .pop-foot button{font-family:var(--pixel);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);background:var(--brand);color:#fff;cursor:pointer;padding:.55rem .7rem;font-size:.5rem;line-height:1;transition:background .15s}.pop .pop-foot button:hover,.pop .pop-foot button:focus-visible{background:var(--hover);color:var(--ink)}.pop h2{font-family:var(--pixel);margin:0 0 .5rem;font-size:.62rem;font-weight:400;line-height:1.6}.pop p{font-family:var(--sans);margin:0 0 .6rem;font-size:1.25rem;line-height:1.18}.pop .pop-foot{align-items:center;gap:.6rem;min-height:1.2rem;margin:0;display:flex}.pop picture{display:none}.pop[hidden],.pop picture[hidden],.pop h2[hidden],.pop p[hidden],.pop button[hidden],.pop input[hidden]{display:none!important}.pop.bubble picture{max-width:62%;margin:0 auto .6rem;display:block}.pop.bubble picture:last-child,.pop.bubble picture+[hidden]+[hidden]+.pop-foot:empty{margin-bottom:0}.pop.bubble .pop-foot:has(>[hidden]:only-child){display:none}.pop.bubble picture img{object-fit:contain;width:100%;height:auto;max-height:34vh;image-rendering:pixelated;display:block}.pop.bubble.big picture{float:right;max-width:40%;margin:0 0 .6rem 1rem}.pop.bubble.pic-only{width:auto;min-width:0;max-width:none}.pop.bubble.pic-only .pop-body{padding:0;line-height:0}.pop.bubble.pic-only picture{max-width:none;margin:0}.pop.bubble.pic-only picture img{object-fit:unset;width:auto;max-width:80vw;height:min(42vh,360px);max-height:none}.pop.bubble.pic-only .pop-foot,.pop.bubble.pic-only h2,.pop.bubble.pic-only p,.pop .crt-bar{display:none}.pop.bubble{color:var(--ink);border:3px solid var(--ink);background:#fff;box-shadow:4px 4px #00000080}.pop.bubble .pop-body{padding:.9rem 1rem .8rem}.pop.bubble .tail:before,.pop.bubble .tail:after{content:"";width:0;height:0;position:absolute}.pop.bubble[data-dir=down] .tail{bottom:-4px;transform:translate(-50%)}.pop.bubble[data-dir=down] .tail:before{border-left:16px solid #0000;border-right:16px solid #0000;border-top:26px solid var(--ink);top:0;left:-16px}.pop.bubble[data-dir=down] .tail:after{border-top:18px solid #fff;border-left:10px solid #0000;border-right:10px solid #0000;top:-1px;left:-10px}.pop.bubble[data-dir=up] .tail{top:-4px;transform:translate(-50%)}.pop.bubble[data-dir=up] .tail:before{border-left:16px solid #0000;border-right:16px solid #0000;border-bottom:26px solid var(--ink);bottom:0;left:-16px}.pop.bubble[data-dir=up] .tail:after{border-bottom:18px solid #fff;border-left:10px solid #0000;border-right:10px solid #0000;bottom:-1px;left:-10px}.pop.bubble[data-dir=left] .tail{left:-4px;transform:translateY(-50%)}.pop.bubble[data-dir=left] .tail:before{border-top:16px solid #0000;border-bottom:16px solid #0000;border-right:26px solid var(--ink);top:-16px;right:0}.pop.bubble[data-dir=left] .tail:after{border-top:10px solid #0000;border-bottom:10px solid #0000;border-right:18px solid #fff;top:-10px;right:-1px}.pop.bubble[data-dir=right] .tail{right:-4px;transform:translateY(-50%)}.pop.bubble[data-dir=right] .tail:before{border-top:16px solid #0000;border-bottom:16px solid #0000;border-left:26px solid var(--ink);top:-16px;left:0}.pop.bubble[data-dir=right] .tail:after{border-top:10px solid #0000;border-bottom:10px solid #0000;border-left:18px solid #fff;top:-10px;left:-1px}.pop.crt{color:#7dff9a;background:#061109;border:2px solid #3a4a3d;border-radius:8px;width:30%;max-width:440px;overflow:hidden;box-shadow:0 0 0 1px #000,0 0 24px #7dff9a38,inset 0 0 30px #000000b3}.pop.crt:before{content:"";pointer-events:none;z-index:1;background:repeating-linear-gradient(0deg,#00000047 0 2px,#0000 2px 4px);position:absolute;inset:0}.pop.crt .crt-bar{font-family:var(--pixel);background:#0f2a16;border-bottom:1px solid #1f4a2a;justify-content:space-between;padding:.45rem 2rem .45rem .65rem;font-size:.45rem;display:flex}.pop.crt .close{color:#7dff9a;z-index:2;background:0 0;border:1px solid #7dff9a;width:18px;height:18px;font-size:15px;top:3px;right:5px}.pop.crt .pop-foot button{display:none}.pop.crt .pop-body{text-shadow:0 0 6px #7dff9a99;padding:.55rem .75rem .5rem}.pop.crt h2{color:#b9ffc9;display:none}.pop.crt p{white-space:pre-line;min-height:1.2em;font-size:1.15rem}.pop.crt p#p-text:before{content:"> ";color:#b9ffc9}.pop.crt .pop-foot:before{content:">";color:#b9ffc9;font-family:var(--sans);font-size:1.15rem}.pop.crt .term-in{color:#7dff9a;min-width:0;font:1.15rem var(--sans);text-shadow:0 0 6px #7dff9a99;caret-color:#7dff9a;background:0 0;border:0;outline:none;flex:1;padding:0}.pop.crt p#p-text:empty,.pop.crt .cur[hidden]{display:none}.pop.crt .cur{background:#7dff9a;width:.6rem;height:1.1rem;animation:1s steps(2,end) infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}@media (width<=760px){.pop,.pop.big,.pop.crt{z-index:7;width:92vw;min-width:0;max-width:none;max-height:82vh;position:fixed;transform:translate(-50%,-50%);top:50%!important;left:50%!important}.pop{overflow:auto}.pop .tail{display:none}.pop.bubble .close,.pop.crt .close{color:#0000;background:0 0;border:0;width:44px;height:44px;font-size:0;top:0;right:0}.pop.bubble .close:before,.pop.crt .close:before{content:"×";text-align:center;display:block;position:absolute}.pop.bubble .close:before{border:2px solid var(--ink);width:26px;height:26px;color:var(--ink);font:400 20px/22px var(--sans);background:#fff;top:6px;right:6px}.pop.crt .close:before{color:#7dff9a;width:22px;height:22px;font:400 17px/20px var(--sans);border:1px solid #7dff9a;top:5px;right:6px}.pop p{font-size:1.1rem}.pop.bubble .pop-body{padding:1.1rem 1.1rem .9rem}.pop.bubble picture{max-width:72%}.pop.bubble picture img{max-height:42vh}.pop.bubble.big picture{float:none;max-width:72%;margin:0 auto .6rem}.pop.bubble.big p{font-size:1.15rem}.pop.bubble.pic-only{max-width:92vw;overflow:visible}.pop.bubble.pic-only picture img{width:auto;max-width:92vw;height:auto;max-height:70vh}.pop.crt{flex-direction:column;display:flex;overflow:hidden}.pop.crt .crt-bar{flex:none;padding:.54rem 2.4rem .54rem .78rem;font-size:.54rem}.pop.crt .pop-body{flex:1;min-height:0;overflow:auto}}@media (prefers-reduced-motion:reduce){.stage.hint .spot:after,.pop.crt .cur{animation:none}}
