html,body{color:#cfd8b8;background:#050805;height:100%;margin:0;font-family:JetBrains Mono,ui-monospace,Menlo,monospace}.root{--ink:#e8f0d0;--sap:#c8e64a;--dim:#8a9a78;grid-template-rows:auto 1fr auto;min-height:100%;display:grid;overflow-x:clip}.root__bar{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid #1c2416;flex-wrap:wrap;align-items:baseline;gap:.4rem 1.4rem;padding:.55rem .9rem;font-size:.7rem;display:flex}.root__bar a{color:var(--sap);text-decoration:none}.root__bar b{color:var(--ink)}.root__keys{margin-left:auto}.root__stage{aspect-ratio:16/10;place-self:center;width:min(100vw,160vh - 8rem);position:relative}.root__stage canvas{width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;cursor:crosshair;position:absolute;inset:0}.root [data-ascii]{pointer-events:none;display:none}.root[data-ascii=true] [data-ascii]{display:block}.root__noscript{text-align:center}.pad{display:none}.root[data-touch=true]{--inset-t:calc(max(env(safe-area-inset-top,0px), var(--tg-safe-area-inset-top,0px)) + var(--tg-content-safe-area-inset-top,0px));--inset-r:max(env(safe-area-inset-right,0px), var(--tg-safe-area-inset-right,0px));--inset-b:max(env(safe-area-inset-bottom,0px), var(--tg-safe-area-inset-bottom,0px));--inset-l:max(env(safe-area-inset-left,0px), var(--tg-safe-area-inset-left,0px));box-sizing:border-box;min-height:0;padding:var(--inset-t) var(--inset-r) var(--inset-b) var(--inset-l);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:radial-gradient(120% 60% at 50% 100%,#c8e64a12,#0000 70%),#050805;flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.root[data-touch=true] .root__keys,.root[data-tg=true] .root__bar{display:none}.root[data-touch=true] .root__bar{flex:none;padding:.5rem .9rem}.root[data-touch=true] .root__stage{width:min(100%, calc((100vh - var(--inset-t) - var(--inset-b)) * 1.6));width:min(100%, calc((100dvh - var(--inset-t) - var(--inset-b)) * 1.6));flex:none;margin:0 auto;box-shadow:0 0 0 1px #1c2416,0 18px 40px #0009}.root[data-touch=true] .root__stage canvas{cursor:default}@media (orientation:landscape){.root[data-touch=true]{justify-content:center}.root[data-touch=true] .root__bar{display:none}}.root[data-touch=true] .pad{z-index:5;touch-action:none;font-family:inherit;display:block;position:absolute;inset:0}.pad[data-face=menu] .pad__controls,.pad[data-face=play] .pad__menu{display:none}.pad button{font:inherit;-webkit-tap-highlight-color:transparent;touch-action:none;cursor:pointer}.pad__btn{min-width:3.1rem;height:2.6rem;color:var(--ink);letter-spacing:.08em;-webkit-backdrop-filter:blur(6px);background:#080e089e;border:1px solid #c8e64a66;border-radius:.8rem;place-items:center;padding:0 .7rem;font-size:.72rem;font-weight:700;display:grid;position:absolute}.pad__btn:active,.pad__btn.is-on{border-color:var(--sap);color:var(--sap);box-shadow:0 0 14px #c8e64a59}.pad__fire{right:calc(var(--inset-r) + 1.1rem);bottom:calc(var(--inset-b) + 1.3rem);border:2px solid var(--sap);width:5.6rem;height:5.6rem;color:var(--ink);-webkit-backdrop-filter:blur(6px);background:radial-gradient(circle at 50% 38%,#c8e64a4d,#080e08b8 70%);border-radius:50%;place-content:center;gap:.15rem;display:grid;position:absolute;box-shadow:0 0 22px #c8e64a47,inset 0 0 12px #c8e64a33}.pad__fire b{letter-spacing:.06em;font-size:.82rem}.pad__fire small{letter-spacing:.2em;opacity:.7;font-size:.55rem}.pad__fire.is-down{background:var(--sap);color:#0b1206;transform:scale(.96);box-shadow:0 0 34px #c8e64aa6}.pad__tool{right:calc(var(--inset-r) + 7.5rem);bottom:calc(var(--inset-b) + 1.9rem);border-radius:1.6rem;height:3.2rem}.pad__map{right:calc(var(--inset-r) + 1.6rem);bottom:calc(var(--inset-b) + 7.8rem)}.pad__pause{top:calc(var(--inset-t) + .6rem);left:calc(var(--inset-l) + .6rem)}.pad__stick{pointer-events:none;background:radial-gradient(circle,#c8e64a1a,#05080540 70%);border:1.5px solid #c8e64a73;border-radius:50%;width:7rem;height:7rem;margin:-3.5rem 0 0 -3.5rem;position:absolute;top:0;left:0}.pad__stick[hidden]{display:none}.pad__ghost{left:calc(var(--inset-l) + 1.4rem);bottom:calc(var(--inset-b) + 1.4rem);letter-spacing:.2em;color:#c8e64a4d;pointer-events:none;border:1.5px dashed #c8e64a38;border-radius:50%;place-items:center;width:6.4rem;height:6.4rem;font-size:.55rem;transition:opacity .2s;display:grid;position:absolute}.pad[data-stick-on=true] .pad__ghost{opacity:0}.pad__knob{background:#c8e64a66;border-radius:50%;width:3rem;height:3rem;margin:-1.5rem 0 0 -1.5rem;position:absolute;top:50%;left:50%;box-shadow:0 0 16px #c8e64a66}.pad__hint{left:calc(var(--inset-l) + 1rem);right:calc(var(--inset-r) + 1rem);top:calc(var(--sy) + var(--sh) + (100% - var(--sy) - var(--sh)) * .42);letter-spacing:.14em;text-transform:uppercase;color:#c8e64a47;pointer-events:none;justify-content:space-around;margin:0;font-size:.62rem;display:flex;position:absolute}.pad__menu{flex-direction:column;gap:.6rem;display:flex;position:absolute}.pad__menu[hidden]{display:none}.pad__title{text-align:center;letter-spacing:.14em;color:#ffe696;margin:0;font-size:.72rem;font-weight:700}.pad__items{gap:.5rem;display:grid}.pad__item{min-height:2.9rem;color:var(--ink);letter-spacing:.06em;text-align:center;-webkit-backdrop-filter:blur(8px);background:#080e08c7;border:1px solid #c8e64a59;border-radius:.8rem;padding:.45rem .8rem;font-size:.74rem;font-weight:700}.pad__item:active{border-color:var(--sap);color:var(--sap)}.pad__item.is-accent{border-color:var(--sap);background:var(--sap);color:#0b1206;box-shadow:0 0 18px #c8e64a4d}.pad__item.is-selected{border-color:var(--sap);box-shadow:inset 0 0 0 1px var(--sap)}.pad__tip{text-align:center;letter-spacing:.1em;text-transform:uppercase;color:#c8e64a59;margin:0;font-size:.6rem;display:none}.pad[data-shape=tall] .pad__menu{left:calc(var(--inset-l) + 1rem);right:calc(var(--inset-r) + 1rem);top:calc(var(--sy) + var(--sh) + 1.2rem);bottom:calc(var(--inset-b) + 1rem);justify-content:center;max-width:26rem;margin:0 auto}.pad[data-shape=tall] .pad__menu[data-place=bar] .pad__items{grid-auto-columns:1fr;grid-auto-flow:column}.pad[data-shape=tall] .pad__tip{display:block}.pad[data-shape=tall] .pad__pause{top:calc(var(--sy) + var(--sh) + .8rem)}.pad[data-shape=tall] .pad__map{top:calc(var(--sy) + var(--sh) + .8rem);right:calc(var(--inset-r) + .6rem);bottom:auto}.pad[data-shape=wide] .pad__hint{display:none}.pad[data-shape=wide] .pad__menu{left:calc(var(--sx) + var(--sw) * .08);width:calc(var(--sw) * .84);top:calc(var(--sy) + var(--sh) * .5)}.pad[data-shape=wide] .pad__menu .pad__items{grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr))}.pad[data-shape=wide] .pad__item{min-height:2.5rem;padding:.35rem .6rem;font-size:.68rem}.pad[data-shape=wide] .pad__menu[data-place=bar]{left:calc(var(--sx) + var(--sw) * .2);width:calc(var(--sw) * .6);top:auto;bottom:calc(100% - var(--sy) - var(--sh) + var(--sh) * .03)}.pad[data-shape=wide] .pad__menu[data-place=bar] .pad__items{grid-template-columns:none;grid-auto-columns:1fr;grid-auto-flow:column}.pad[data-shape=wide]{--fire:clamp(3.8rem, calc(var(--mx) - 1rem), 5.6rem);--gutter:calc((var(--mx) - var(--inset-r) - var(--fire)) / 2)}.pad[data-shape=wide] .pad__fire{right:calc(var(--inset-r) + max(.5rem, var(--gutter)));bottom:calc(var(--inset-b) + 1rem);width:var(--fire);height:var(--fire)}.pad[data-shape=wide] .pad__tool{right:calc(var(--inset-r) + max(.5rem, var(--gutter)));bottom:calc(var(--inset-b) + 1.6rem + var(--fire));min-width:0;width:var(--fire);border-radius:.8rem;height:2.6rem;padding:0}.pad[data-shape=wide] .pad__map{top:calc(var(--inset-t) + .6rem);right:calc(var(--inset-r) + max(.5rem, var(--gutter)));min-width:0;width:var(--fire);padding:0;bottom:auto}.pad[data-shape=wide] .pad__pause{left:calc(var(--inset-l) + max(.5rem, (var(--mx) - var(--inset-l) - var(--fire)) / 2));min-width:0;width:var(--fire);padding:0}.pad[data-shape=wide] .pad__ghost{width:clamp(4.6rem, calc(var(--mx) * 1.1), 6.4rem);height:clamp(4.6rem, calc(var(--mx) * 1.1), 6.4rem);left:calc(var(--inset-l) + .6rem);bottom:calc(var(--inset-b) + 1rem)}
