#app canvas{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}#ui{--f:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Pretendard","Noto Sans KR","Malgun Gothic",sans-serif;word-break:keep-all;-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Pretendard,Noto Sans KR,Malgun Gothic,sans-serif;position:absolute;inset:0}.screen{padding:max(16px,env(safe-area-inset-top)) 20px 16px;box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.screen[hidden]{display:none}.dim{background:linear-gradient(#0a0d248c,#0a0d24cc)}.title{letter-spacing:.02em;text-align:center;text-transform:uppercase;text-shadow:0 4px #b3410f,0 10px 30px #00000073;color:#fff;margin:0;font:900 clamp(40px,12vw,76px)/.95 DIN Condensed,Bahnschrift Condensed,Arial Narrow,-apple-system,sans-serif}.title b{color:var(--accent);font-weight:900}.hook{text-align:center;text-shadow:0 2px 12px #0009;max-width:520px;margin:14px 0 4px;font-size:clamp(16px,4.6vw,22px);font-weight:700;line-height:1.4}.sub{color:var(--ink2);text-align:center;text-shadow:0 2px 10px #0009;margin:0 0 22px;font-size:14px}.stack{flex-direction:column;gap:12px;width:min(100%,360px);display:flex}.btn{appearance:none;min-height:56px;font:800 18px/1 var(--f);color:#1a1208;background:var(--accent);cursor:pointer;touch-action:manipulation;border:0;border-radius:20px;padding:0 22px;transition:transform 60ms;box-shadow:0 5px #b3410f}.btn:active{transform:translateY(3px);box-shadow:0 2px #b3410f}.btn.sec{color:var(--ink);border:1px solid var(--hair);background:#ffffff1f;box-shadow:0 5px #00000059}.btn.ghost{box-shadow:none;color:var(--ink2);background:0 0;min-height:48px;font-size:16px;font-weight:700}.btn:disabled{opacity:.45;cursor:default}.btn:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #fff}.row2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.card{box-sizing:border-box;border:1px solid var(--hair);background:#161c42eb;border-radius:26px;width:min(100%,400px);max-height:100%;padding:22px 20px;overflow:auto;box-shadow:0 18px 50px #00000073}.card h2{text-align:center;margin:0 0 6px;font-size:26px;line-height:1.25}.card p{color:var(--ink2);text-align:center;margin:0 0 14px;font-size:15px;line-height:1.55}.status{min-height:20px;color:var(--ink2);text-align:center;margin:8px 0;font-size:14px}.big{font:900 56px/1 var(--f);text-align:center;color:#fff;font-variant-numeric:tabular-nums;margin:6px 0 2px}.badge{color:#2a1d00;background:#ffd24a;border-radius:999px;padding:3px 12px;font-size:13px;font-weight:800;display:inline-block}.center{text-align:center;min-height:22px;margin-bottom:10px}.kv{color:var(--ink2);font-variant-numeric:tabular-nums;grid-template-columns:auto auto;justify-content:space-between;gap:6px 12px;margin:10px 0 16px;font-size:15px;display:grid}.kv b{color:#fff;text-align:right}.list{margin:10px 0 16px;padding:0;list-style:none}.list li{border-bottom:1px solid var(--hair);font-variant-numeric:tabular-nums;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;min-height:44px;display:grid}.list li.me{background:#ff8a3d29;border-radius:10px}.list .rk{color:var(--accent);text-align:center;font-weight:900}.list .dt{color:var(--ink3);font-size:12px;display:block}.list .sc{font-weight:800}.empty{color:var(--ink3);text-align:center;padding:18px 0;font-size:15px}.dots{justify-content:center;gap:8px;margin:6px 0 14px;display:flex}.dots i{background:var(--hair);border-radius:50%;width:8px;height:8px}.dots i.on{background:var(--accent)}.demo{text-align:center;letter-spacing:6px;margin:4px 0 8px;font-size:54px}.gate{font:900 28px/1 var(--f);letter-spacing:0;border-radius:14px;margin:0 4px;padding:12px 18px;display:inline-block}.gate.g{background:#2f7bff}.gate.b{background:#e5484d}.setrow{border-bottom:1px solid var(--hair);justify-content:space-between;align-items:center;gap:12px;min-height:52px;font-size:16px;display:flex}.setrow .btn{min-height:40px;box-shadow:none;border-radius:14px;padding:0 14px;font-size:14px}.links{flex-wrap:wrap;justify-content:center;gap:4px 14px;margin:12px 0 0;font-size:13px;display:flex}.links a{color:var(--ink2);align-items:center;min-height:32px;display:inline-flex}.hud{pointer-events:none;position:absolute;inset:0}.hud-top{top:max(10px,env(safe-area-inset-top));justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:absolute;left:12px;right:12px}.hud-top .btn{pointer-events:auto;min-width:44px;min-height:44px;box-shadow:none;border-radius:14px;padding:0 14px;font-size:15px}.stage-pill{border:1px solid var(--hair);background:#0a0d2499;border-radius:999px;padding:8px 14px;font-size:15px;font-weight:800}.bar{top:calc(max(10px,env(safe-area-inset-top)) + 58px);background:#ffffff24;border-radius:99px;height:8px;position:absolute;left:16px;right:16px;overflow:hidden}.bar i{background:var(--accent);border-radius:99px;width:0;height:100%;display:block}.hint{text-align:center;text-shadow:0 2px 10px #000000b3;font-size:18px;font-weight:800;transition:opacity .5s;position:absolute;bottom:18%;left:0;right:0}.zones{touch-action:none;grid-template-columns:1fr 1fr;display:grid;position:absolute;inset:0}.zone{color:#ffffff47;-webkit-user-select:none;user-select:none;justify-content:center;align-items:flex-end;padding-bottom:7%;font-size:34px;display:flex}.zone.on{color:#fff9;background:linear-gradient(#0000 50%,#ffffff24)}.pop{font:900 44px/1 var(--f);text-shadow:0 3px 14px #0009;pointer-events:none;animation:.8s ease-out forwards pop;position:absolute;top:34%;left:50%;transform:translate(-50%)}.pop.g{color:#7fb2ff}.pop.b{color:#ff7b7f}@keyframes pop{0%{opacity:1;transform:translate(-50%)scale(.8)}to{opacity:0;transform:translate(-50%,-60px)scale(1.25)}}@media (max-height:640px){.title{font-size:clamp(34px,9vw,56px)}.sub{margin-bottom:12px}.btn{min-height:50px}}@media (prefers-reduced-motion:reduce){.pop{animation-duration:10ms}}.splash{padding-top:max(7vh,env(safe-area-inset-top));background:linear-gradient(#0a0d24c7 0,#0a0d2459 32%,#0a0d2400 46%,#0a0d2459 62%,#0a0d24d9 100%);justify-content:space-between;padding-bottom:12px}.splash .top,.splash .bottom{flex-direction:column;align-items:center;width:100%;display:flex}.splash .sub{margin-bottom:14px}
