.controller{font-family:var(--font-ui);box-sizing:border-box;width:100%;height:100%;min-height:0;padding:8px max(14px, env(safe-area-inset-right,0px)) max(10px, env(safe-area-inset-bottom,0px)) max(14px, env(safe-area-inset-left,0px));touch-action:none;-webkit-user-select:none;user-select:none;flex-direction:column;flex:1;justify-content:center;align-items:stretch;gap:12px;display:flex}.ctl-prompt{text-transform:uppercase;letter-spacing:-.02em;text-align:center;color:var(--ink);text-shadow:0 3px 0 var(--card-edge);margin:0;font-size:20px;font-weight:900;transform:skew(-2deg)}.ctl-wait{background:var(--card);border:3px solid var(--border);box-shadow:0 6px 0 var(--card-edge);clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);flex:1;place-items:center;padding:24px;display:grid}.ctl-wait p{text-transform:uppercase;color:var(--muted);font-size:24px;font-weight:900}.ctl-grid{flex:1;grid-auto-rows:minmax(72px,1fr);gap:14px;width:100%;min-height:0;display:grid}.ctl-grid.ctl-dpad-grid{grid-template-rows:repeat(3,minmax(0,1fr));grid-auto-rows:auto;grid-auto-flow:row}.ctl-dpad-grid .ctl-btn[data-id=hold-up]{grid-area:1/2}.ctl-dpad-grid .ctl-btn[data-id=hold-left]{grid-area:2/1}.ctl-dpad-grid .ctl-btn[data-id=hold-right]{grid-area:2/3}.ctl-dpad-grid .ctl-btn[data-id=hold-down]{grid-area:3/2}.ctl-dpad-grid .ctl-dpad-button{place-items:center;padding:0;display:grid}.ctl-dpad-arrow{fill:#fff;filter:drop-shadow(0 3px #00000073);width:55%;height:55%;display:block;overflow:visible}.ctl-dpad-arrow.arrow-left{transform:rotate(-90deg)}.ctl-dpad-arrow.arrow-right{transform:rotate(90deg)}.ctl-dpad-arrow.arrow-down{transform:rotate(180deg)}.ctl-grid.count-1 .ctl-btn{letter-spacing:-.01em;font-size:42px}.ctl-grid.count-2 .ctl-btn{font-size:32px}.ctl-btn{text-transform:uppercase;letter-spacing:-.02em;color:#fff;background:var(--me);clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);touch-action:none;border:0;border-radius:0;width:100%;min-width:72px;height:100%;min-height:72px;padding:16px;font-size:28px;font-weight:900;box-shadow:inset 0 -8px #0000006b}.ctl-btn:active{transform:translateY(4px);box-shadow:inset 0 -2px #0000006b}.ctl-mash{flex:1;grid-template-rows:1fr;grid-auto-rows:1fr;gap:14px;width:100%;min-height:0;display:grid}.ctl-mash.zones-1{grid-template-columns:1fr}.ctl-mash.zones-2{grid-template-columns:1fr 1fr}.ctl-pad{background:var(--me);color:#fff;text-transform:uppercase;letter-spacing:-.03em;text-shadow:0 3px #00000073;clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);touch-action:none;cursor:pointer;place-items:center;min-width:72px;height:100%;min-height:96px;padding:16px;font-size:36px;font-weight:900;display:grid;box-shadow:inset 0 -10px #0000006b}.ctl-pad.hit{animation:.14s ease-out ctl-pad-hit}@keyframes ctl-pad-hit{0%{filter:brightness(1.3);transform:translateY(6px)scale(.95)}to{filter:brightness();transform:translateY(0)scale(1)}}.ctl-targets-grid{border:3px solid var(--border);background:#00000040;flex:1;gap:10px;width:100%;min-height:0;padding:6px;display:grid}.ctl-target-cell{background:var(--card);border:2px solid #ffffff0d;place-items:center;min-width:64px;min-height:64px;display:grid;position:relative}.ctl-target{touch-action:none;border:0;place-items:center;width:86%;min-width:64px;height:86%;min-height:64px;padding:0;animation:.16s cubic-bezier(.2,1.4,.4,1) ctl-pop-in;display:grid}.ctl-target.good{background:var(--target-color,var(--me));clip-path:polygon(22% 0%,78% 0%,100% 22%,100% 78%,78% 100%,22% 100%,0% 78%,0% 22%);box-shadow:inset 0 -7px #00000061}.ctl-target.bad{border:3px solid var(--danger);clip-path:polygon(15% 0%,85% 0%,100% 15%,100% 85%,85% 100%,15% 100%,0% 85%,0% 15%);background:#171920;box-shadow:inset 0 -6px #000000a6}.ctl-target-eyes{gap:8px;display:flex}.ctl-target-eyes i{background:#fff;border-radius:50%;width:10px;height:14px;box-shadow:inset 0 -5px #14161c}.ctl-target-skull{color:var(--danger);font-size:32px;line-height:1}.ctl-target.popped{pointer-events:none;animation:.16s ease-out forwards ctl-pop-out}@keyframes ctl-pop-in{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@keyframes ctl-pop-out{0%{opacity:1;transform:scale(1.25)}to{opacity:0;transform:scale(0)}}.ctl-swipe-pad{background:var(--card);border:4px solid var(--border);box-shadow:0 6px 0 var(--card-edge);clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);touch-action:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;display:flex}.ctl-swipe-pad.flicked{animation:.22s ease-out ctl-swipe-flash}@keyframes ctl-swipe-flash{0%{border-color:var(--me);background:#ff572240;transform:scale(.98)}to{border-color:var(--border);background:var(--card);transform:scale(1)}}.ctl-lasso-wrap{flex-direction:column;flex:1;gap:12px;width:100%;min-height:0;display:flex}.ctl-lasso-flick-pad{background:var(--card);border:4px solid var(--border);min-height:0;box-shadow:0 6px 0 var(--card-edge);clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);touch-action:none;flex:1;align-content:center;justify-items:center;gap:10px;display:grid}.ctl-lasso-arrow{color:var(--me);text-shadow:0 6px 0 var(--card-edge);font-size:clamp(72px,18dvh,132px);font-weight:900;line-height:.85}.ctl-lasso-hint{color:var(--muted);letter-spacing:.04em;font-size:clamp(20px,4dvh,30px);font-weight:900}.ctl-swipe-arrow{color:var(--me);text-shadow:0 6px 0 var(--card-edge);font-size:84px;line-height:1}.ctl-swipe-hint{letter-spacing:.04em;color:var(--muted);font-size:24px;font-weight:900}.ctl-hold-wrap{flex:1;place-items:center;display:grid}.ctl-hold-wrap.has-zone{flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex}.ctl-hold-btn{background:var(--card);border:4px solid var(--border);width:min(72vw,280px);height:min(72vw,280px);box-shadow:0 8px 0 var(--card-edge), inset 0 -10px 0 #00000073;touch-action:none;border-radius:50%;place-items:center;padding:0;display:grid;position:relative}.ctl-hold-btn.holding{background:var(--me);border-color:var(--ink);transform:translateY(4px)scale(.97)}.ctl-hold-ring{pointer-events:none;width:calc(100% + 24px);height:calc(100% + 24px);position:absolute;inset:-12px;transform:rotate(-90deg)}.ctl-hold-ring circle{fill:none;stroke-width:6px}.ctl-hold-ring .ring-bg{stroke:#ffffff1a}.ctl-hold-ring .ring-fill{stroke:var(--me);stroke-linecap:round}.ctl-hold-btn.holding .ctl-hold-ring .ring-fill{stroke:var(--ink)}.ctl-hold-label{letter-spacing:-.02em;text-shadow:0 3px 0 var(--card-edge);font-size:36px;font-weight:900}.ctl-hold-zone{border:3px solid var(--ink);box-sizing:border-box;background:#171920;width:min(78vw,320px);height:24px;position:relative;overflow:hidden}.ctl-hold-zone-window{box-sizing:border-box;background:#00b894;border-left:2px solid #fff;border-right:2px solid #fff;position:absolute;top:0;bottom:0}.ctl-hold-zone-label{color:var(--muted);letter-spacing:.06em;margin-top:-12px;font-size:14px;font-weight:900}.ctl-timing-area{background:var(--card);border:4px solid var(--border);box-shadow:0 6px 0 var(--card-edge);clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);touch-action:none;cursor:pointer;flex-direction:column;flex:1;justify-content:center;align-items:stretch;gap:24px;padding:20px;display:flex}.ctl-timing-area.flash-good{animation:.28s ease-out ctl-flash-good}.ctl-timing-area.flash-bad{animation:.28s ease-out ctl-flash-bad}@keyframes ctl-flash-good{0%{background:#1db954;border-color:#fff}to{background:var(--card);border-color:var(--border)}}@keyframes ctl-flash-bad{0%{background:var(--danger);border-color:#fff}to{background:var(--card);border-color:var(--border)}}.ctl-timing-bar{border:4px solid var(--ink);background:#0e1015;width:100%;height:68px;position:relative;overflow:hidden}.ctl-timing-zone{background:#1db954;border-left:3px solid #fff;border-right:3px solid #fff;position:absolute;top:0;bottom:0}.ctl-timing-marker{background:var(--me);border:2px solid #fff;width:12px;margin-left:-6px;position:absolute;top:-4px;bottom:-4px;box-shadow:0 0 10px #000000b3}.ctl-timing-tap{text-align:center;letter-spacing:-.02em;color:var(--ink);font-size:32px;font-weight:900}.ctl-drag-pad{background:var(--card);border:4px solid var(--border);box-shadow:0 6px 0 var(--card-edge);touch-action:none;flex:1;place-items:center;display:grid;position:relative;overflow:hidden}.ctl-drag-hint{color:var(--muted);pointer-events:none;font-size:24px;font-weight:900}.ctl-drag-ring{border:3px dashed var(--ink);pointer-events:none;border-radius:50%;place-items:center;display:grid;position:absolute;transform:translate(-50%,-50%)}.ctl-drag-puck{background:var(--me);width:56px;height:56px;box-shadow:0 4px 0 var(--card-edge);border:3px solid #fff;border-radius:50%}.ctl-draw-wrap{flex:1;place-items:center;min-height:0;display:grid}.ctl-draw-canvas{aspect-ratio:1;border:4px solid var(--ink);width:min(85vw,55vh,320px);height:min(85vw,55vh,320px);box-shadow:0 6px 0 var(--card-edge);touch-action:none;background:#0e1015}.ctl-joystick-wrap{flex:1;grid-template-columns:1fr 1fr;align-items:center;gap:16px;width:100%;min-height:0;display:grid}.ctl-joystick-wrap--solo{grid-template-columns:1fr;justify-items:center}.ctl-joy-left{touch-action:none;place-items:center;height:100%;display:grid}.ctl-joy-base{background:var(--card);border:4px solid var(--border);width:min(42vw,38vh,180px);height:min(42vw,38vh,180px);box-shadow:inset 0 6px 0 #00000073, 0 6px 0 var(--card-edge);border-radius:50%;place-items:center;display:grid}.ctl-joy-stick{background:var(--me);border:4px solid var(--ink);width:76px;height:76px;box-shadow:0 5px 0 var(--card-edge);border-radius:50%}@media (orientation:landscape){.ctl-joy-base{width:min(52vw,47.5vh,225px);height:min(52vw,47.5vh,225px)}.ctl-joy-stick{width:95px;height:95px}}.ctl-joy-stick.active{filter:brightness(1.12)}.ctl-joy-right{flex-direction:column;justify-content:center;gap:14px;height:100%;display:flex}.ctl-joy-btn{flex:1;max-height:140px;position:relative}.ctl-joy-btn:disabled{filter:saturate(.7)brightness(.82)}.ctl-cooldown-ring{pointer-events:none;width:calc(100% - 8px);height:calc(100% - 8px);position:absolute;inset:4px;transform:rotate(-90deg)}.ctl-cooldown-ring circle{fill:none;stroke:#ffffffeb;stroke-width:6px;stroke-dasharray:283;stroke-dashoffset:0;animation:1s linear forwards ctl-cooldown-drain}@keyframes ctl-cooldown-drain{to{stroke-dashoffset:283px}}.ctl-motion-gate,.ctl-tilt-wrap{flex:1;place-items:center;display:grid}.ctl-tilt-actions{width:100%;min-height:92px;display:flex}.ctl-tilt-action{flex:1;font-size:38px}.ctl-tilt-action[data-id=jump]{min-height:184px}.ctl-tilt-ring{background:var(--card);border:5px solid var(--border);width:min(70vw,240px);height:min(70vw,240px);box-shadow:inset 0 6px 0 #00000073, 0 6px 0 var(--card-edge);border-radius:50%;place-items:center;display:grid;position:relative}.ctl-tilt-crosshair{border:2px dashed var(--muted);border-radius:50%;width:36px;height:36px;position:absolute}.ctl-tilt-ball{background:var(--me);width:54px;height:54px;box-shadow:0 4px 0 var(--card-edge);border:3px solid #fff;border-radius:50%;transition:transform 40ms linear}.ctl-shake-wrap{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:24px;display:flex}.ctl-shake-graphic{background:var(--me);color:#fff;letter-spacing:-.03em;text-shadow:0 4px 0 var(--card-edge);clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);box-shadow:0 8px 0 var(--card-edge);padding:28px 36px;font-size:48px;font-weight:900;transition:transform 50ms linear}.ctl-shake-meter{border:3px solid var(--ink);background:#0e1015;width:100%;max-width:280px;height:24px}.ctl-shake-fill{background:var(--me);width:0%;height:100%;transition:width 80ms linear}.ctl-pointer-wrap{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;width:100%;display:flex}.ctl-pointer-reticle{background:var(--card);border:3px solid var(--border);touch-action:none;cursor:crosshair;border-radius:50%;place-items:center;width:120px;height:120px;display:grid}.ctl-pointer-dot{background:var(--me);border:2px solid #fff;border-radius:50%;width:22px;height:22px;transition:transform 40ms linear}.ctl-pointer-fire{flex:1;max-height:200px;font-size:38px}.ctl-pointer-recenter{width:100%;max-width:240px;min-height:64px}.pg-page{height:100%;padding:max(10px, env(safe-area-inset-top)) 12px max(10px, env(safe-area-inset-bottom));flex-direction:column;gap:10px;display:flex}.pg-tabs{flex-wrap:nowrap;gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.pg-tab{background:var(--card);min-width:auto;min-height:38px;color:var(--ink);border:2px solid var(--border);box-shadow:0 3px 0 var(--card-edge);flex-shrink:0;padding:6px 12px;font-size:14px}.pg-tab.active{background:var(--me);color:#fff;border-color:var(--ink)}.pg-stage{flex-direction:column;flex:1;min-height:0;display:flex}.pg-log{border:2px solid var(--border);font-family:var(--font-ui);color:var(--muted);text-align:left;background:#0e1015;flex-direction:column;justify-content:flex-end;gap:2px;min-height:76px;padding:6px 10px;font-size:12px;display:flex;overflow:hidden}.pg-log div{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ctl-shake-wrap{touch-action:manipulation;-webkit-user-select:none;user-select:none}.ctl-shake-wrap.tap-fallback{cursor:pointer}.ctl-shake-hint{opacity:.7;text-transform:uppercase;margin:0;font-size:14px;font-weight:800}.ctl-tilt-ring{touch-action:none}.ctl-flick-up-prompt{color:var(--ink);text-align:center;text-shadow:0 3px 0 var(--card-edge);margin:0;font-size:clamp(24px,7vw,36px);font-weight:1000;line-height:1.05}.ctl-flick-up-display{flex:1;place-items:center;min-height:0;display:grid}.ctl-flick-up-icon{width:min(52vw,250px);max-height:100%;fill:var(--me);filter:drop-shadow(0 8px 0 var(--card-edge));transition:transform .12s ease-out}.ctl-flick-up-display.flicked .ctl-flick-up-icon{transform:translateY(-18px)scale(1.08)}.ctl-flick-up-arrow,.ctl-flick-up-screen{fill:var(--card);stroke:var(--ink);stroke-width:5px;stroke-linejoin:round}.ctl-flick-up-phone{stroke:var(--ink);stroke-width:5px}.ctl-flick-up-home{fill:var(--ink)}.ctl-flick-up-tap{flex:0 0 100px;font-size:28px}
