html,body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;touch-action:manipulation;background:#000;height:100%;margin:0;overflow:hidden}body{position:fixed;inset:0}#app{width:100%;height:100%}.root{background:radial-gradient(#10102a 0%,#000 75%);width:100%;height:100%;position:relative}.stage{transform-origin:0 0;width:320px;height:224px;image-rendering:pixelated;color:#fff;font-family:Courier New,monospace;position:absolute;overflow:hidden}.stage.framed{background:#000;box-shadow:0 0 0 1px #000,0 0 0 3px #49496d,0 0 30px #000000e6}.stage canvas{image-rendering:crisp-edges;image-rendering:pixelated}.stage canvas.layer{width:100%;height:100%}.layer{scrollbar-width:none;position:absolute;inset:0}.layer::-webkit-scrollbar{display:none}.px{flex:none;align-self:auto;display:block}.center{flex-direction:column;align-items:center;display:flex}.row{align-items:center;gap:4px;display:flex}.menu{touch-action:none;flex-direction:column;gap:3px;display:flex}.menu-item{cursor:pointer;align-items:center;gap:4px;height:13px;display:flex}.menu-item .cursor{align-items:flex-end;width:12px;height:11px;display:flex;overflow:visible}.menu-item .cursor canvas{margin-top:-5px}.menu-item.disabled{opacity:.4}.menu-item .icon{flex:none}.menu-item.back{box-sizing:content-box;border-top:1px solid #49496d;height:14px;margin-top:4px;padding-top:4px}.btn.back{background:#4a1a2e;border-color:#b64949;align-items:center;gap:3px;padding:3px 6px 3px 4px;display:inline-flex}.btn.back:hover,.btn.back:focus-visible{background:#6d2440;border-color:#ffdb00}.btn.arrow{justify-content:center;align-items:center;min-width:26px;min-height:20px;padding:2px 4px;display:inline-flex}.btn.back.corner{z-index:5;position:absolute;top:4px;left:4px}.panel{background:#000024e0;border:1px solid #6d6db6;padding:6px;box-shadow:inset 0 0 0 1px #000,0 0 0 1px #000}.field{flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:4px;display:flex}.field input{color:#fff;background:#000024;border:1px solid #6d6db6;outline:none;width:180px;max-width:100%;height:13px;padding:0 2px;font:700 8px Courier New,monospace}.field input:focus{background:#000049;border-color:#ffdb00}.tabs{gap:3px;margin-bottom:5px;display:flex}.tab{cursor:pointer;border:1px solid #49496d;flex:1;justify-content:center;padding:3px;display:flex}.tab.on{background:#24246d;border-color:#ffdb00}.btn{cursor:pointer;color:inherit;font:inherit;background:#24246d;border:1px solid #6d6db6;padding:4px 6px;line-height:0;display:inline-block}.btn:hover,.btn:focus-visible{border-color:#ffdb00;outline:none}.btn:disabled{opacity:.6;cursor:default}.link{cursor:pointer;background:0 0;border:0;padding:0;line-height:0}.link:hover canvas,.link:focus-visible canvas{filter:brightness(1.5)}.tab:focus-visible{outline:1px solid #ffdb00}.blink{animation:1s steps(2,start) infinite blink}@keyframes blink{to{visibility:hidden}}.bob{animation:.8s steps(4,end) infinite alternate bob}@keyframes bob{0%{transform:translateY(0)}to{transform:translateY(-4px)}}.table{gap:1px 6px;display:grid}.speech{background:#fff;border:1px solid #000;padding:4px;position:relative;box-shadow:0 0 0 1px #fff,2px 2px 0 1px #000}.toast{background:#490000;border:1px solid #ff4949;flex-direction:column;align-items:center;gap:2px;padding:3px;display:flex;position:absolute;bottom:6px;left:8px;right:8px}.hidden-input{opacity:0;pointer-events:none;position:absolute}.touch{pointer-events:none;touch-action:none;position:absolute;inset:0}.touch-half{position:absolute}.touch-flip{transform:rotate(180deg)}.face-panel{pointer-events:none;position:absolute}.stage.face-to-face canvas[data-stage]{opacity:0}.stage.face-to-face{box-shadow:none;background:0 0}.touch-cluster{justify-content:center;align-items:center;display:flex;position:absolute}.dpad,.rot,.touch-pause{pointer-events:auto;touch-action:none}.dpad{background:radial-gradient(circle at 40% 35%,#24246d,#000024 70%);border-radius:50%;position:relative;box-shadow:0 0 0 3px #000,0 0 0 5px #49496d,inset 0 0 12px #000c}.dpad-arm{color:#ededff;background:linear-gradient(#9292db,#49496d);border-radius:22%;justify-content:center;align-items:center;width:36%;height:36%;display:flex;position:absolute;box-shadow:0 0 0 2px #000,inset 0 2px #dbdbff,inset 0 -3px #24246d}.dpad-icon{pointer-events:none;width:56%;height:56%;display:block}.dpad-arm.on{color:#492400;background:linear-gradient(#ffdb00,#db9200);box-shadow:0 0 0 2px #000,inset 0 2px #ffff92,inset 0 -3px #926d00}.arm-left{top:32%;left:6%}.arm-right{top:32%;right:6%}.arm-down{bottom:6%;left:32%}.dpad-hub{background:#000024;border-radius:50%;width:20%;height:20%;position:absolute;top:40%;left:40%;box-shadow:inset 0 0 0 2px #49496d}.rot-pair{align-items:center;display:flex}.touch-label{color:#9292db;text-shadow:0 1px #000;pointer-events:none;font:700 12px sans-serif;position:absolute}.rot{color:#fff;text-shadow:0 2px #0009;border-radius:50%;justify-content:center;align-items:center;font-family:sans-serif;font-weight:700;display:flex;position:relative;box-shadow:0 0 0 3px #000,0 4px 0 3px #000,inset 0 3px #ffffff8c,inset 0 -5px #00000059}.rot-cw{background:radial-gradient(circle at 38% 32%,#ff9292,#ff2424 45%,#920000)}.rot-ccw{background:radial-gradient(circle at 38% 32%,#b6dbff,#2492ff 45%,#002492)}.rot-icon{width:86%;height:86%;overflow:visible}.rot-shadow path,.rot-shadow polygon{fill:none;stroke:#0000008c;stroke-width:6px;stroke-linecap:round;stroke-linejoin:round}.rot-shadow polygon{fill:#0000008c}.rot-arc{fill:none;stroke:#fff;stroke-width:6px;stroke-linecap:round}.rot-head{fill:#fff;stroke:#fff;stroke-width:2px;stroke-linejoin:round}.rot-pivot{fill:#fff;stroke:#00000080;stroke-width:1.5px}.rot-sat{fill:#ffdb00;stroke:#00000080;stroke-width:1.5px}.touch-pad-area{pointer-events:auto;touch-action:none}.rot.on{filter:brightness(1.25);transform:translateY(3px)scale(.95)}.touch-pause{color:#dbdbff;background:#24246d;border-radius:13px;justify-content:center;align-items:center;width:44px;height:26px;display:flex;position:absolute;box-shadow:0 0 0 2px #000,inset 0 0 0 1px #6d6db6}.pause-icon{pointer-events:none;width:18px;height:18px;display:block}.stage.narrow>.layer.center{justify-content:center}.stage.narrow .menu-item{height:17px}.stage.narrow .menu{gap:2px}.shop-grid-wrap{overscroll-behavior:contain;scrollbar-width:thin;padding:1px;overflow-y:auto}.shop-grid{gap:4px;display:grid}.shop-card{cursor:pointer;background:#000024;border:1px solid #24246d;flex-direction:column;align-items:center;gap:3px;min-width:84px;padding:4px 3px;display:flex}.shop-card.on{background:#24246d;border-color:#ffdb00}.shop-card{position:relative}.shop-card.owned{background:#001a0a;border:2px solid #24b624}.shop-card.owned.on{background:#0a3a16}.shop-card.wearing{background:#2a2000;border-color:#ffdb00}.shop-card.wearing.on{background:#4a3a00}.shop-tag{background:#24b624;border-bottom-right-radius:3px;padding:1px 3px 0;line-height:0;position:absolute;top:-1px;left:-1px}.shop-tag.wearing{background:#ffdb00}.owned-label{background:#001a0a;border:1px solid #24b624;padding:3px 6px;line-height:0}.shop-preview{justify-content:center;align-items:center;height:42px;display:flex}.btn.on{border-color:#ffdb00}.btn.disabled{opacity:.6;pointer-events:none}.cust-row{border:1px solid #0000;align-items:center;gap:4px;padding:1px 2px;display:flex}.cust-row.on{background:#000049;border-color:#49496d}.cust-arrow{cursor:pointer;background:#24246d;border:1px solid #6d6db6;padding:2px 5px;line-height:0}.rainbow{line-height:0;animation:2.4s linear infinite hue;display:inline-block}@keyframes hue{to{filter:hue-rotate(360deg)}}.badge{vertical-align:top;width:7px;height:7px;margin-left:1px;display:inline-block}.badge.supporter{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);background:#ffdb00}.badge.tipper{clip-path:polygon(50% 100%,10% 55%,10% 30%,30% 15%,50% 30%,70% 15%,90% 30%,90% 55%);background:#ff6d92}.ad-banner{background:#00002499;justify-content:center;display:flex;overflow:hidden}.menu-item{border-radius:2px;margin:0 -4px;padding:0 4px}.menu-item.selected{background:#ffffff1a;box-shadow:0 0 0 1px #fff3}.logo-row{margin-top:10px}.title-menu{margin-top:8px}.title-menu .menu{gap:1px}@media (pointer:coarse){.menu-item{min-width:140px;height:15px}.menu{gap:2px}.stage:not(.narrow) .logo-row{margin-top:6px}.stage:not(.narrow) .title-menu .menu{gap:1px}.stage:not(.narrow) .title-menu{margin-top:2px}.stage:not(.narrow) .shop-menu .menu-item{height:14px}.stage.narrow .menu-item{min-width:180px;height:24px}.stage.narrow .menu{gap:4px}}.scene-bar{background:#000000bf;justify-content:center;align-items:center;height:14px;display:flex;position:absolute;left:0;right:0}.scene-strip{background:#00000059;position:absolute;left:50%;transform:translate(-50%)}.scene-slot{opacity:.45;transition:opacity .15s}.scene-slot.speaking{opacity:1;animation:.5s ease-in-out infinite alternate talk}.scene-slot.aside{opacity:.7}@keyframes talk{0%{transform:translateY(0)}to{transform:translateY(-2px)}}.scene-next{position:absolute;bottom:2px;right:4px}.scene-skip{min-width:0;padding:0 4px}.stage.narrow .ladder{width:224px}.stage.narrow .rung{width:188px}.ladder{touch-action:pan-y;scrollbar-width:none;background:linear-gradient(#6d6db6,#6d6db6) 50px 0/4px 100% no-repeat,linear-gradient(#6d6db6,#6d6db6) calc(100% - 54px) 0/4px 100% no-repeat;width:300px;padding:6px 0;position:relative;overflow:hidden auto}.ladder::-webkit-scrollbar{display:none}.rung{box-sizing:border-box;background:linear-gradient(#49496d,#24246d);border:2px solid #9292b6;align-items:center;gap:6px;width:208px;height:40px;margin:0 auto 4px;padding:0 6px;display:flex;position:relative;box-shadow:2px 2px #000}.rung.left{transform:translate(-18px)}.rung.right{transform:translate(18px)}.rung.first{background:linear-gradient(#b66d00,#492400);border-color:#ffdb00}.rung.second{background:linear-gradient(#6d6d92,#242449);border-color:#dbdbdb}.rung.third{background:linear-gradient(#92491c,#492400);border-color:#db9249}.rung.mine{outline-offset:1px;outline:2px solid #49ff49}.rung .rank{text-align:right;min-width:34px}.ladder-sentinel{height:1px}.chat-list{overscroll-behavior:contain;scrollbar-width:thin;flex-direction:column;gap:4px;display:flex;overflow-y:auto}.chat-msg{border-left:2px solid #49496d;padding:2px 3px}.chat-msg.mine{border-left-color:#49ff6d}
