html{background:var(--bg);overscroll-behavior:none;touch-action:manipulation;-webkit-text-size-adjust:100%;height:100%}body{max-width:560px;box-shadow:0 0 0 1px var(--line);overscroll-behavior:none;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);-webkit-tap-highlight-color:transparent;margin:0 auto}.lib-scroll{overscroll-behavior:contain}.stage{touch-action:pan-y;overscroll-behavior:contain}.stage,.bar{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.bar{cursor:default}#close{display:none}.game{padding:10px}@media (width<=560px){body{box-shadow:none}}.web-settings{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:14px;min-width:260px;max-width:calc(100vw - 32px);padding:18px 20px}.web-settings::backdrop{background:#00000059}.web-settings h2{margin:0 0 12px;font-size:1.1rem}.web-settings fieldset{border:0;flex-direction:column;gap:4px;margin:0;padding:0;display:flex}.web-settings legend{margin-bottom:6px;padding:0;font-weight:600}.web-settings label{align-items:center;gap:8px;min-height:44px;display:flex}.web-settings-row{justify-content:flex-end;margin-top:16px;display:flex}.web-install{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.web-install h3{margin:0 0 6px;font-size:.95rem}.web-install p{color:var(--muted);margin:0 0 10px;font-size:.88rem}.web-note{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:20;background:var(--ink);max-width:calc(100vw - 32px);color:var(--card);border-radius:12px;padding:8px 14px;font-size:.85rem;position:fixed;transform:translate(-50%);box-shadow:0 6px 18px #00000040}.web-note[hidden]{display:none}.web-settings{max-height:calc(100dvh - 32px);overflow:auto}.web-license,.web-sync{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.web-license h3,.web-sync h3{margin:0 0 6px;font-size:.95rem}.web-license h4{margin:12px 0 4px;font-size:.88rem}.web-plan{margin:0 0 10px;font-size:.9rem}.web-key-masked{letter-spacing:.5px;font-family:ui-monospace,monospace}.web-hint{color:var(--muted);margin:0 0 8px;font-size:.85rem}.web-status{min-height:1.2em;margin:6px 0;font-size:.85rem}.web-status:empty{display:none}.web-form{margin:0}.web-label{margin-bottom:4px;font-size:.85rem;display:block}.web-inline{align-items:stretch;gap:8px;display:flex}.web-inline input{flex:1;min-width:0}.web-dialog input[type=text],.web-dialog input[type=email],.web-settings input[type=text],.web-settings input[type=email]{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--ink);box-sizing:border-box;border-radius:10px;min-height:44px;padding:8px 10px;font-size:.95rem}.web-key-input{text-transform:uppercase;letter-spacing:.5px;font-family:ui-monospace,monospace!important}.web-key-shown{text-transform:none}.web-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.web-settings-row.web-actions{justify-content:flex-end}.btn.link{color:var(--accent);background:0 0;border-color:#0000;padding-left:4px;padding-right:4px}.web-forgot{margin-top:10px}.web-forgot[hidden]{display:none}.web-devices{margin:0;padding:0;list-style:none}.web-devices li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;min-height:44px;display:flex}.web-devices li:last-child{border-bottom:0}.web-device-name{flex-direction:column;font-size:.9rem;display:flex}.web-device-name small{color:var(--muted);font-size:.78rem}.web-sync-state{margin:0 0 8px;font-size:.9rem}.web-sync-state[data-state=error]{color:#c0392b}.web-dialog{max-width:min(440px,100vw - 32px)}.web-dialog p{font-size:.92rem}@media (pointer:coarse){.web-settings .btn,.web-dialog .btn{min-height:44px}}.pn-banner{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:30;color:#fff;max-width:520px;font:inherit;background:#18224a;border-radius:22px;align-items:center;gap:12px;margin:0 auto;padding:12px 8px 12px 16px;font-size:15px;line-height:1.35;animation:.28s ease-out pn-banner-in;display:flex;position:fixed;box-shadow:0 10px 30px #18224a47}.pn-banner-icon{color:#fff;background:#2f5bd9;border-radius:12px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.pn-banner-glyph{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.pn-banner-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pn-banner-text b{font-weight:700}.pn-banner-install{color:#18224a;height:44px;font:inherit;cursor:pointer;white-space:nowrap;background:#f5c443;border:0;border-radius:14px;flex:none;padding:0 16px;font-size:15px;font-weight:700}.pn-banner-close{color:#fff;cursor:pointer;background:0 0;border:0;border-radius:14px;flex:none;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:flex}.pn-banner-x{fill:none;stroke:currentColor;stroke-width:2.88px;stroke-linecap:round;width:20px;height:20px}.pn-banner-install:focus-visible,.pn-banner-close:focus-visible{outline-offset:2px;outline:3px solid #f5c443}@media (width<=419.98px){.pn-banner.with-install{grid-template-columns:40px minmax(0,1fr) 44px;grid-template-areas:"icon text close"".install.";align-items:center;gap:10px 12px;display:grid}.pn-banner.with-install .pn-banner-icon{grid-area:icon}.pn-banner.with-install .pn-banner-text{grid-area:text}.pn-banner.with-install .pn-banner-close{grid-area:close;align-self:start}.pn-banner.with-install .pn-banner-install{grid-area:install;justify-self:start}}@keyframes pn-banner-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.pn-banner{animation:none}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pn-banner{background:#2f5bd9}:root:not([data-theme=light]) .pn-banner-icon{color:#2f5bd9;background:#fff}}:root[data-theme=dark] .pn-banner{background:#2f5bd9}:root[data-theme=dark] .pn-banner-icon{color:#2f5bd9;background:#fff}body.pn-banner-on{padding-bottom:calc(var(--pn-banner-h,64px) + 24px + env(safe-area-inset-bottom))}.pair-body{text-align:center;flex-direction:column;align-items:center;display:flex}.pair-qr{border-radius:8px;width:min(240px,70vw);height:auto;margin:6px 0}.pair-code{letter-spacing:3px;margin:4px 0;font-family:ui-monospace,monospace;font-size:2rem;font-weight:700}.pair-state{font-weight:600}