:root{--ink:#1d2430;--paper:#fffdf7;--brand:#ff7928;--warn:#e8412c;--ok:#1f9d6a;font-family:Noto Sans HK,PingFang HK,Microsoft JhengHei,system-ui,sans-serif}*{box-sizing:border-box}html,body{background:var(--ink);height:100%;color:var(--ink);touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}#game{touch-action:none;width:100vw;height:100dvh;display:block;position:fixed;inset:0}#hud{pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:fixed;inset:0}.brand{top:calc(10px + env(safe-area-inset-top));left:calc(10px + env(safe-area-inset-left));background:var(--paper);letter-spacing:.01em;border-radius:999px;align-items:center;gap:6px;padding:4px 12px 4px 4px;font-size:15px;font-weight:800;display:flex;position:absolute;box-shadow:0 2px 8px #0003}.brand img{width:30px;height:30px}.brand b{color:var(--brand)}.clock{top:calc(10px + env(safe-area-inset-top));text-align:center;color:#fff;background:#10151ddd;border-radius:14px;min-width:118px;padding:4px 14px 6px;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 2px 10px #0004}.clock small{opacity:.75;letter-spacing:.08em;font-size:11px;display:block}.clock b{font-variant-numeric:tabular-nums;font-size:30px;line-height:1.1;display:block}.clock span{font-size:12px}.clock.warn b{color:#ffd23f}.clock.closing b{color:#ff6b57;font-size:24px}.lunge{pointer-events:auto;touch-action:none;right:calc(18px + env(safe-area-inset-right));bottom:calc(22px + env(safe-area-inset-bottom));background:var(--brand);color:#fff;width:92px;height:92px;font:inherit;border:4px solid #fff;border-radius:50%;font-size:28px;font-weight:900;position:absolute;box-shadow:0 4px 14px #0006}.lunge small{opacity:.85;font-size:11px;font-weight:600;display:block}.lunge:active,.lunge.down{background:#e9641a;transform:scale(.93)}.lunge.cool{opacity:.55}.tip{left:calc(10px + env(safe-area-inset-left));bottom:calc(22px + env(safe-area-inset-bottom));align-items:flex-end;gap:6px;max-width:min(300px,100vw - 140px);transition:opacity .3s;display:flex;position:absolute}.tip img{flex:none;width:46px;height:46px}.tip p{background:var(--paper);border-radius:14px 14px 14px 4px;margin:0 0 18px;padding:8px 12px;font-size:14px;line-height:1.45;box-shadow:0 2px 8px #0003}.tip.hide{opacity:0}.card{pointer-events:auto;background:var(--paper);text-align:center;border-radius:20px;width:min(360px,100vw - 28px);padding:20px 20px 18px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 40px #0007}.card h1{letter-spacing:.06em;margin:0;font-size:40px}.card h2{margin:0 0 6px;font-size:32px}.card .sub{opacity:.7;margin:2px 0 12px;font-size:14px}.card .keys{text-align:left;grid-template-columns:auto 1fr;gap:4px 10px;width:-moz-fit-content;width:fit-content;margin:10px auto 12px;font-size:15px;display:grid}.card .keys kbd{font:inherit;color:var(--brand);font-weight:700}.card .note{opacity:.7;margin:8px 0 12px;font-size:12.5px}.card .bill{color:var(--warn);margin:6px 0 2px;font-size:18px;font-weight:800}.card .stats{opacity:.7;margin-bottom:10px;font-size:13px}.card .say{text-align:left;background:#fff1e6;border-radius:12px;align-items:center;gap:8px;margin:8px 0 14px;padding:8px 10px;font-size:14px;display:flex}.card .say img{flex:none;width:40px;height:40px}.card.made h2{color:var(--ok)}.card.missed h2{color:var(--warn)}.card button{font:inherit;background:var(--brand);color:#fff;touch-action:manipulation;border:0;border-radius:999px;padding:10px 34px;font-size:20px;font-weight:800;box-shadow:0 3px #c55410}.hidden{display:none!important}.pop{color:#fff;-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill;white-space:nowrap;font-size:30px;font-weight:900;animation:.9s ease-out forwards pop;position:absolute;transform:translate(-50%,-100%)}.pop:not(.small){color:#ffd23f;-webkit-text-stroke:2px var(--ink);font-size:38px}.pop.small{color:#ffd23f;font-size:20px}@keyframes pop{0%{opacity:0;transform:translate(-50%,-60%)scale(.5)}15%{opacity:1;transform:translate(-50%,-100%)scale(1.15)}to{opacity:0;transform:translate(-50%,-190%)scale(1)}}.stick{background:#fff2;border:3px solid #fff8;border-radius:50%;width:110px;height:110px;margin:-55px 0 0 -55px;position:absolute}.stick i{background:#fffc;border-radius:50%;width:44px;height:44px;margin:-22px 0 0 -22px;position:absolute;top:50%;left:50%}.toast{top:calc(84px + env(safe-area-inset-top));background:var(--warn);color:#fff;white-space:nowrap;border-radius:999px;padding:5px 14px;font-size:15px;font-weight:800;transition:opacity .3s;position:absolute;left:50%;transform:translate(-50%)}.toast.hide{opacity:0}.banner{top:calc(98px + env(safe-area-inset-top));text-align:center;color:#fff;border-bottom:6px solid var(--brand);background:#1d3557;border-radius:10px;min-width:220px;padding:8px 22px 6px;transition:opacity .35s,transform .35s;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #0005}.banner b{letter-spacing:.12em;font-size:34px;line-height:1.15;display:block}.banner span{opacity:.9;font-size:14px;font-weight:700;display:block}.banner small{color:#ffd23f;margin-top:4px;font-size:13px;font-weight:700;display:block}.banner.hide{opacity:0;transform:translate(-50%,-12px)}.chips{grid-template-columns:repeat(3,1fr);gap:6px;margin:4px 0 14px;display:grid}.chips .chip{font:inherit;color:var(--ink);box-shadow:none;touch-action:manipulation;background:#fff;border:2px solid #e3ddd0;border-radius:12px;padding:6px 4px 5px;position:relative}.chips .chip b{font-size:16px;display:block}.chips .chip small{opacity:.65;white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;display:block;overflow:hidden}.chips .chip.on{border-color:var(--brand);background:#fff1e6}.chips .chip.locked{opacity:.45}.chips .chip i{color:var(--ok);font-size:12px;font-style:normal;position:absolute;top:2px;right:6px}.card .best{color:var(--brand);min-height:1em;font-size:13px;font-weight:700}.card .badge{background:#ffd23f;border-radius:999px;align-items:center;gap:6px;margin-bottom:6px;padding:4px 14px 4px 4px;font-weight:900;display:inline-flex}.card .badge img{width:34px;height:34px}.card.citizen h2{color:var(--brand)}.card .row{justify-content:center;align-items:center;gap:12px;display:flex}.card .thumb{object-fit:cover;border-radius:10px;flex:none;width:96px;height:120px;box-shadow:0 3px 10px #0003}.card .btns{flex-direction:column;align-items:stretch;gap:8px;display:flex}.card .btns button{padding:9px 22px;font-size:18px}.card .minor{gap:6px;display:flex}.card button.ghost{color:var(--ink);box-shadow:none;background:#fff;border:2px solid #e3ddd0;flex:1;padding:6px 10px;font-size:15px}.later{color:#fff;letter-spacing:.15em;background:#10151d;justify-content:center;align-items:center;font-size:34px;font-weight:900;animation:.5s ease-out fadein;display:flex;position:absolute;inset:0}@keyframes fadein{0%{opacity:0}}@media (max-width:480px){.brand{padding:3px 9px 3px 3px;font-size:13px}.brand img{width:24px;height:24px}.clock{left:auto;right:calc(10px + env(safe-area-inset-right));min-width:92px;padding:3px 10px 5px;transform:none}.clock b{font-size:24px}.clock.closing b{font-size:19px}.banner{top:calc(76px + env(safe-area-inset-top))}}
