:root{--bg:#fdfdfc;--ink:#1f1d1a;--muted:#6b665e;--accent:#fac775;--card:#fff3dc;--ok:#2f7d4f;--miss:#b8452f;--saved:#2f5f8a;--edge:24px;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}html,body{overscroll-behavior:none;background:var(--bg);height:100%;margin:0;overflow:hidden}#app{box-sizing:border-box;height:100vh;height:100dvh;padding:0 var(--edge);padding:env(safe-area-inset-top,0px) calc(var(--edge) + env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) calc(var(--edge) + env(safe-area-inset-left,0px));position:relative}.play{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;touch-action:manipulation;flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.bar{flex:none;justify-content:space-between;gap:8px;padding:14px 96px 8px 0;font-weight:700;display:flex}.muted{color:var(--muted);font-weight:600}.card{background:var(--card);text-align:center;border-radius:18px;flex:none;margin-top:6px;padding:14px 16px}.name{min-height:1.3em;margin:0;font-size:1.1rem;line-height:1.3}.price{font-variant-numeric:tabular-nums;min-height:1.2em;margin:6px 0 0;font-size:1.9rem;font-weight:800;line-height:1.2}.price.ticking{color:var(--muted)}.asof{min-height:1.2em;color:var(--muted);margin:4px 0 0;font-size:.8rem}.between{flex:none;align-items:center;gap:10px;height:84px;margin:6px 0;display:flex}.between.tight{text-align:left;height:auto;min-height:72px;margin:0}.mascot{flex:none;width:72px;height:72px}.bubble{box-sizing:border-box;border:2px solid var(--accent);border-radius:14px;flex:1;max-height:100%;margin:0;padding:10px 12px;font-weight:700;line-height:1.3;overflow:hidden}.bubble-first{font-size:1.05rem}.bubble-long{font-size:.9rem}.gap{flex:1;margin:0;font-weight:700;line-height:1.4}.verdict{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 8px;margin:8px 0 0;font-weight:800;display:flex}.verdict.ok{color:var(--ok)}.verdict.miss{color:var(--miss)}.verdict.saved{color:var(--saved)}.hint{margin:8px 0 0;font-weight:700}.icon{flex:none;width:22px;height:22px}.tray{flex:none;gap:8px;margin-top:8px;display:flex}.item{border:2px solid var(--accent);min-height:44px;color:var(--ink);font:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:4px;padding:0 6px;font-weight:700;transition:transform 80ms ease-out;display:flex}.item:active{transform:scale(.96)}.item.empty{opacity:.45}.item.on{background:var(--accent)}.item.busy{opacity:.6}.progress{text-align:left}.title{margin:0;font-weight:600}.title b{font-weight:800}.meter{background:var(--bg);border-radius:5px;height:10px;margin:8px 0 2px;overflow:hidden}.meter i{background:var(--ok);transform-origin:0;height:100%;animation:.7s ease-out .2s both meter-grow;display:block}.reached{color:var(--ok);font-weight:800}.choices{flex:none;margin-top:auto;padding:14px 0 22px;display:flex}.choice{background:var(--accent);min-height:64px;color:var(--ink);font:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:0;border-radius:18px;flex:1;font-size:1.2rem;font-weight:800;transition:transform 80ms ease-out}.choice+.choice{margin-left:12px}.choice:active{transform:scale(.96)}.choice:disabled{opacity:.6}.choice.chosen{opacity:1}.link{border:2px solid var(--ink);min-height:44px;color:var(--ink);font:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:12px;margin-top:8px;padding:0 16px;font-weight:700}.corner{top:calc(env(safe-area-inset-top,0px) + 6px);right:calc(var(--edge) + env(safe-area-inset-right,0px));background:var(--bg);touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:0;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-size:1.3rem;display:flex;position:absolute}.profile-button{right:calc(var(--edge) + env(safe-area-inset-right,0px) + 48px)}.share{flex:0 auto;min-height:0;overflow:hidden}.share .squares{white-space:pre-wrap;margin:0 0 6px;font-family:inherit;font-size:1.1rem}.share code{letter-spacing:.04em;font-weight:800}.pulse{animation:1.1s ease-in-out 5 pulse}@keyframes pulse{50%{opacity:.85;transform:scale(1.04)}}.hop{animation:.6s ease-out hop}@keyframes hop{30%{transform:translateY(-14px)rotate(-6deg)}60%{transform:translateY(0)rotate(4deg)}to{transform:translateY(0)rotate(0)}}.missed .shake-target{animation:.45s ease-in-out shake}@keyframes shake{20%{transform:translate(-8px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(3px)}}.item.armed{animation:1.1s ease-in-out 3 pulse}@keyframes meter-grow{0%{transform:scaleX(var(--from,0))}}.drop{border:2px solid var(--accent);background:var(--bg);color:var(--ink);opacity:0;border-radius:10px;align-items:center;gap:4px;padding:2px 8px;font-size:.85rem;animation:.45s ease-out both drop-pop;display:inline-flex}.drop .icon{width:18px;height:18px}.drop.r1{border-color:#5aa9e6}.drop.r2,.drop.r3{border-color:var(--ink);animation-name:drop-pop-big;animation-duration:.7s}.drop.r3{background:var(--accent)}.drop.lost{color:var(--muted);border-style:dashed;animation-name:drop-pop-dim}@keyframes drop-pop{0%{opacity:0;transform:translateY(8px)scale(.6)}60%{opacity:1;transform:translateY(-3px)scale(1.08)}to{opacity:1;transform:none}}@keyframes drop-pop-big{0%{opacity:0;transform:scale(.3)rotate(-12deg)}50%{opacity:1;transform:scale(1.3)rotate(6deg)}to{opacity:1;transform:none}}@keyframes drop-pop-dim{0%{opacity:0}to{opacity:.7}}.confetti{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.confetti i{opacity:0;border-radius:2px;width:10px;height:10px;animation:1.1s ease-in forwards fall;position:absolute;top:-12px}.confetti.big i{width:14px;height:14px;animation-name:fall-big;animation-duration:1.3s}@keyframes fall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(70vh)rotate(300deg)}}@keyframes fall-big{0%{opacity:1;transform:translate(0)rotate(0)scale(1)}50%{opacity:1;transform:translate(-30px,35vh)rotate(360deg)scale(1.3)}to{opacity:0;transform:translate(30px,80vh)rotate(720deg)scale(.8)}}.skeleton .card,.skeleton .between{opacity:.5}.notice{text-align:center;justify-content:center}.notice .choices{margin-top:32px}.notice-title{margin:0 0 8px;font-size:1.5rem}.notice-body{color:var(--muted);margin:0;line-height:1.5}@media (max-height:620px){.bar{padding-top:10px;padding-bottom:4px}.card{padding:10px 14px}.price{font-size:1.6rem}.between{height:72px;margin:4px 0}.mascot,.mascot svg{width:56px;height:56px}.choices{padding:10px 0 14px}}@media (prefers-reduced-motion:reduce){html:not([data-motion=full]) *,html:not([data-motion=full]) :before,html:not([data-motion=full]) :after{transition:none!important;animation:none!important}html:not([data-motion=full]) .drop{opacity:1}html:not([data-motion=full]) .drop.lost{opacity:.7}}html[data-motion=reduce] *,html[data-motion=reduce] :before,html[data-motion=reduce] :after{transition:none!important;animation:none!important}html[data-motion=reduce] .drop{opacity:1}html[data-motion=reduce] .drop.lost{opacity:.7}.avatar{box-sizing:border-box;border-radius:50%;flex:none;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex;overflow:hidden}.avatar svg{width:84%;height:84%}.page{box-sizing:border-box;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;height:100%;padding-bottom:calc(32px + env(safe-area-inset-bottom,0px));touch-action:manipulation;overflow-y:auto}.page .card{text-align:left;margin-top:10px}.page-head{align-items:center;gap:8px;min-height:56px;padding-right:52px;display:flex}.page-head h1{margin:0;font-size:1.3rem}.back{width:44px;height:44px;color:var(--ink);font:inherit;-webkit-tap-highlight-color:transparent;background:0 0;border:0;margin-left:-10px;font-size:2rem;line-height:1}.page h2{margin:12px 0 8px;font-size:1rem}.page h2:first-child{margin-top:0}.who{align-items:center;gap:14px;display:flex}.who-name{word-break:break-word;margin:0;font-size:1.15rem;font-weight:800}.field label{margin-bottom:8px;font-weight:700;display:block}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row .link{margin-top:0}.field input{box-sizing:border-box;border:2px solid var(--ink);background:var(--bg);min-width:0;min-height:44px;color:var(--ink);font:inherit;border-radius:12px;flex:1;padding:0 12px;font-size:16px}.asof.over,.msg{color:var(--miss)}.msg{margin:8px 0 0;font-weight:700}.msg.ok{color:var(--ok)}.grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.tile{background:var(--bg);min-height:44px;color:var(--ink);font:inherit;-webkit-tap-highlight-color:transparent;border:3px solid transparent;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:6px 2px;transition:transform 80ms ease-out;display:flex}.tile:active{transform:scale(.96)}.tile.on{border-color:var(--ink)}.tile.locked{opacity:.45}.tile small{text-align:center;min-height:1.2em;font-size:.7rem;line-height:1.2}.swatch{border-radius:50%;width:40px;height:40px}.link.wide{background:var(--card);border-color:var(--card);width:100%;margin-top:10px;display:block}.link.danger{border-color:var(--miss);color:var(--miss)}.link.quiet{color:var(--muted);border-color:transparent}.link.small{margin-top:0;padding:0 10px;font-size:.85rem}.link:disabled{opacity:.6}.code{letter-spacing:.06em;text-align:center;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;word-break:break-all;margin:10px 0 6px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1.45rem;font-weight:800}.code.small{font-size:1.1rem}.warn{color:var(--miss);text-align:center;margin:0 0 4px;font-weight:800}.confirm{border:2px solid var(--miss);background:var(--bg);border-radius:12px;margin-top:10px;padding:10px 12px}.confirm p{margin:0 0 8px;font-weight:700;line-height:1.4}.setting{margin:12px 0 6px;font-weight:700}.seg{gap:6px;display:flex}.seg button{border:2px solid var(--accent);min-height:44px;color:var(--ink);font:inherit;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:12px;flex:1;padding:0 6px;font-weight:700}.seg button.on{background:var(--accent)}.people{margin:0;padding:0;list-style:none}.people li+li{margin-top:10px}.person{align-items:center;gap:10px;display:flex}.grow{word-break:break-word;flex:1;min-width:0}.person small{color:var(--muted);display:block}.nudge{text-align:left}.nudge p{margin:0;font-weight:700;line-height:1.35}.nudge .row{margin-top:6px}.ladder{contain:layout;flex:none;height:30px;margin:2px 6px 0;position:relative}.ladder .track{background:var(--card);border-radius:3px;height:6px;position:absolute;top:5px;left:0;right:0;overflow:hidden}.ladder .track i{background:var(--accent);transform-origin:0;height:100%;transition:transform .3s ease-out;display:block}.ghost{opacity:.75;pointer-events:none;flex-direction:column;align-items:center;max-width:34%;display:flex;position:absolute;top:0;transform:translate(-50%)}.ghost.past{opacity:.4}.ghost b{border:1px solid var(--ink);box-sizing:border-box;border-radius:50%;width:12px;height:12px;margin-top:2px}.ghost em{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.65rem;font-style:normal;line-height:1.3;overflow:hidden}.cheer{background:var(--ok);color:#fff;white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:.8rem;font-weight:800;animation:.7s ease-out cheer;position:absolute;top:-4px;right:0}@keyframes cheer{0%{opacity:0;transform:translateY(8px)scale(.6)}50%{opacity:1;transform:scale(1.12)}to{transform:none}}@media (max-height:620px){.ladder{height:26px}}@media (max-width:360px){.bar{font-size:.9rem}}
