:root{--blue:#1185fe;--ink:#0b1f33;--pink:#ec4899;--card:#fffffff0;color:var(--ink);font-family:ui-rounded,SF Pro Rounded,Nunito,system-ui,sans-serif}*{box-sizing:border-box}html,body{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;background:#dff1ff;height:100%;margin:0;overflow:hidden}canvas#game{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{display:none!important}button{font:inherit;background:var(--blue);color:#fff;cursor:pointer;border:0;border-radius:999px;padding:.7em 1.4em;font-weight:800;box-shadow:0 3px #0a5fc0}button:active{transform:translateY(2px);box-shadow:0 1px #0a5fc0}button:disabled{opacity:.55;cursor:progress}button.secondary{color:var(--blue);background:#fff;box-shadow:0 3px #b9d8fb,inset 0 0 0 2px #b9d8fb}.screen{z-index:10;background:radial-gradient(circle at 30% 20%,#ffffff8c,#1185fe40);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.card{background:var(--card);text-align:center;-webkit-user-select:text;user-select:text;border-radius:28px;width:100%;max-width:460px;max-height:calc(100% - 16px);padding:28px 28px 20px;overflow:auto;box-shadow:0 20px 60px #0b1f3340}.card.wide{max-width:760px}h1{letter-spacing:-.02em;color:var(--blue);margin:0;font-size:3rem;transform:rotate(-2deg)}h1 span{color:var(--pink)}h2{color:var(--blue);margin:0 0 8px}.tag{margin:6px 0 10px;font-size:1.15rem;font-weight:800}.card p{line-height:1.45}.fine{opacity:.7;font-size:.8rem}.error{color:#c81e4b;min-height:1.2em;margin:6px 0;font-weight:700}form#handleForm{gap:8px;margin:18px 0 10px;display:flex}form#handleForm input{min-width:0;font:inherit;-webkit-user-select:text;user-select:text;border:2px solid #b9d8fb;border-radius:999px;outline:none;flex:1;padding:.6em 1em;font-size:1.1rem}form#handleForm input:focus{border-color:var(--blue)}.modes{justify-content:center;gap:14px;font-size:.95rem;font-weight:700;display:flex}.modes label{cursor:pointer}.progress{margin-top:14px}.bar{background:#e3effc;border-radius:999px;height:10px;overflow:hidden}.bar>div{background:linear-gradient(90deg, var(--blue), var(--pink));width:0;height:100%;transition:width .2s}.progress p{margin:6px 0 0;font-size:.9rem}#hud{pointer-events:none;z-index:5;position:fixed;inset:0}.hud-top{top:max(12px, env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));align-items:flex-start;gap:8px;display:flex;position:absolute}.hud-main{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.pills{flex-wrap:wrap;gap:8px;display:flex}.pill{background:var(--card);border-radius:999px;padding:6px 14px;font-size:1rem;font-weight:800;box-shadow:0 4px 14px #0b1f3326}.pill.big{color:var(--blue);font-size:1.5rem}.hud-buttons{pointer-events:auto;gap:8px;display:flex}button.round{width:44px;height:44px;padding:0;font-size:1.1rem;line-height:44px}.goal{background:#ffffffbf;border-radius:999px;width:min(420px,100%);height:22px;position:relative;overflow:hidden;box-shadow:0 4px 14px #0b1f331f}.goal-fill{background:linear-gradient(90deg, #7fd36a, var(--blue));width:0;transition:width .3s;position:absolute;inset:0}.goal-text{white-space:nowrap;text-overflow:ellipsis;padding:0 10px;font-size:.8rem;font-weight:800;line-height:22px;position:absolute;inset:0;overflow:hidden}.toast{background:var(--card);border-radius:18px;align-items:center;gap:10px;max-width:calc(100% - 24px);padding:8px 16px 8px 8px;animation:.25s ease-out pop;display:flex;position:absolute;bottom:84px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #0b1f3340}.toast img{object-fit:cover;background:#e3effc;border-radius:12px;width:44px;height:44px}.toast b{font-size:1.05rem;display:block}.toast span{opacity:.75;font-size:.85rem}.banner{color:#fff;text-shadow:0 3px 0 var(--pink), 0 6px 20px #0b1f3366;text-align:center;width:max-content;max-width:92vw;font-size:clamp(1.4rem,5vw,2.6rem);font-weight:900;line-height:1.15;animation:.35s ease-out pop;position:absolute;top:32%;left:50%;transform:translate(-50%,-50%)}@keyframes pop{0%{opacity:0;transform:translate(-50%)scale(.6)}}.banner{animation-name:popc}@keyframes popc{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}}.pointer{right:max(16px, env(safe-area-inset-right));bottom:calc(max(10px, env(safe-area-inset-bottom)) + 44px);flex-direction:column;align-items:center;gap:2px;animation:1.2s ease-in-out infinite pulse;display:flex;position:absolute}.pointer svg{filter:drop-shadow(0 3px 6px #0b1f3359);width:56px;height:56px;transition:transform .15s linear}.pointer path{fill:var(--pink);stroke:#fff;stroke-width:3px;stroke-linejoin:round}.pointer span{background:var(--card);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:800}@keyframes pulse{50%{transform:scale(1.08)}}.log{right:max(12px, env(safe-area-inset-right));top:calc(max(12px, env(safe-area-inset-top)) + 60px);background:#fffc;border-radius:16px;width:210px;max-height:46vh;padding:8px 10px;font-size:.82rem;position:absolute;overflow:hidden;box-shadow:0 4px 14px #0b1f331f}.log-head{margin-bottom:4px;font-weight:800}.log ol{margin:0;padding:0;list-style:none}.log li{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;padding:2px 0;animation:.2s ease-out slide;display:flex;overflow:hidden}.log li img,.log li i{object-fit:cover;text-align:center;background:#e3effc;border-radius:5px;flex:none;width:18px;height:18px;font-size:12px;font-style:normal;line-height:18px}.log li small{opacity:.6;margin-left:auto;padding-left:4px}@keyframes slide{0%{opacity:0;transform:translate(20px)}}.hint{bottom:max(10px, env(safe-area-inset-bottom));white-space:nowrap;background:#ffffffb3;border-radius:999px;padding:4px 12px;font-size:.8rem;font-weight:700;position:absolute;left:50%;transform:translate(-50%)}#labels{pointer-events:none;z-index:4;position:fixed;inset:0;overflow:hidden}.label{white-space:nowrap;background:#ffffffe6;border-radius:999px;align-items:center;gap:5px;padding:3px 9px 3px 3px;font-size:.78rem;font-weight:800;display:flex;position:absolute;transform:translate(-50%,-100%);box-shadow:0 2px 8px #0b1f3333}.label img{object-fit:cover;background:#e3effc;border-radius:50%;width:20px;height:20px}.label.ok{color:#1d7a37}.label.big{color:#c81e4b}.label em{opacity:.65;font-style:normal;font-weight:700}.stick{pointer-events:none;z-index:6;background:#1185fe1f;border:3px solid #ffffffb3;border-radius:50%;width:120px;height:120px;margin:-60px 0 0 -60px;display:none;position:fixed}.stick.on{display:block}.stick>div{background:#ffffffd9;border-radius:50%;width:50px;height:50px;position:absolute;top:35px;left:35px}.collection{flex-wrap:wrap;justify-content:center;gap:4px;max-height:38vh;margin:12px 0;padding:4px;display:flex;overflow:auto}.collection a{background:#e3effc;border-radius:10px;display:block;overflow:hidden}.collection img{object-fit:cover;width:100%;height:100%;display:block}.collection a.ph{color:#fff;place-items:center;font-weight:800;display:grid}.row{flex-wrap:wrap;justify-content:center;gap:8px;margin:8px 0;display:flex}.status{color:#1d7a37;min-height:1.2em;margin:4px 0;font-size:.85rem;font-weight:700}.touch-only{display:none}body.touch .touch-only{display:inline}body.touch .keys{display:none}@media (max-width:700px),(max-height:500px){.pill{padding:4px 10px;font-size:.85rem}.pill.big{font-size:1.15rem}.goal{height:18px}.goal-text{font-size:.7rem;line-height:18px}button.round{width:38px;height:38px;font-size:1rem;line-height:38px}.log{left:max(12px, env(safe-area-inset-left));right:auto;top:calc(max(12px, env(safe-area-inset-top)) + 86px);background:#ffffffa6;width:46vw;max-width:200px;max-height:7.6em;padding:5px 8px;font-size:.7rem}.log li img,.log li i{width:14px;height:14px;font-size:10px;line-height:14px}.toast{bottom:calc(max(10px, env(safe-area-inset-bottom)) + 34px);padding:6px 12px 6px 6px}.toast img{width:36px;height:36px}.toast b{font-size:.95rem}.toast span{font-size:.75rem}.label{padding:2px 7px 2px 2px;font-size:.68rem}.label img{width:16px;height:16px}h1{font-size:2.4rem}.card{border-radius:22px;padding:22px 18px 16px}.modes{gap:10px;font-size:.9rem}}@media (max-height:500px){.log{display:none}.card p:not(.tag):not(.error){margin:6px 0;font-size:.85rem}.collection{max-height:30vh}}.pill.score{color:#b7791f}.mutual-note{color:#b7791f;margin:4px 0 0;font-weight:800}.label.mutual{box-shadow:0 0 0 2px #ffd75e,0 2px 10px #ffbe288c}.toast.mutual{box-shadow:0 0 0 3px #ffd75e,0 8px 30px #ffbe2873}.log li.mutual span{color:#b7791f;font-weight:800}.collection a.mutual{box-shadow:0 0 0 3px #ffd75e,0 0 10px #ffbe28b3}.popup{color:#ffd75e;pointer-events:none;text-shadow:0 2px #b7791f,0 0 12px #ffc83ccc;white-space:nowrap;font-size:1.3rem;font-weight:900;animation:1.1s ease-out forwards rise;position:absolute;transform:translate(-50%,-100%)}@keyframes rise{0%{opacity:0;transform:translate(-50%,-60%)scale(.7)}15%{opacity:1;transform:translate(-50%,-100%)scale(1.1)}to{opacity:0;transform:translate(-50%,-260%)scale(1)}}
