.mochi-hop-app{--mh-ink:#5a3b2e;--mh-accent:#e06a86;--mh-paper:#fff6ee;touch-action:manipulation;-moz-user-select:none;user-select:none;-webkit-user-select:none}.mochi-hop-app .mh-scene{position:absolute;inset:0;width:100%;height:100%;display:block}.mochi-hop-app .mh-fx{position:absolute;inset:0;pointer-events:none;z-index:6;overflow:hidden}.mochi-hop-app .mh-flash{position:absolute;inset:0;pointer-events:none;z-index:5;opacity:0;background:radial-gradient(circle at 50% 40%,#fff6,transparent 60%)}.mochi-hop-app .mh-flash.go{animation:mh-flash .5s ease-out}.mochi-hop-app .mh-flash[data-tone=gold]{background:radial-gradient(circle at 50% 40%,#ffdf8fcc,transparent 62%)}.mochi-hop-app .mh-flash[data-tone=bad]{background:radial-gradient(circle at 50% 45%,#ff9aa0cc,transparent 62%)}@keyframes mh-flash{0%{opacity:.9}to{opacity:0}}.mochi-hop-app .mh-topbar{position:absolute;top:env(safe-area-inset-top,0);left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;z-index:4}.mochi-hop-app .mh-back{border:2px solid #fff;border-radius:13px;padding:8px 13px;background:var(--mh-paper);color:var(--mh-ink);font-size:13px;font-weight:800;text-decoration:none}.mochi-hop-app .mh-logo{background:#65422b;color:#ffdc9e;border:3px solid #e7b985;border-radius:16px;padding:7px 15px;font-size:16px;line-height:1;letter-spacing:1px}.mochi-hop-app .mh-logo em{color:#ffb3c7;font-style:normal}.mochi-hop-app .mh-topbtns{display:flex;gap:8px}.mochi-hop-app .mh-icon-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:2px solid #fff;border-radius:13px;background:var(--mh-paper);color:var(--mh-ink);cursor:pointer}.mochi-hop-app .mh-icon-btn .off,.mochi-hop-app .mh-icon-btn[aria-pressed=true] .on{display:none}.mochi-hop-app .mh-icon-btn[aria-pressed=true] .off{display:inline}.mochi-hop-app[data-phase=menu] .mh-topbar #mh-pause,.mochi-hop-app[data-phase=results] .mh-topbar #mh-pause{display:none}.mochi-hop-app .mh-hud{position:absolute;top:calc(64px + env(safe-area-inset-top, 0));left:14px;right:14px;display:grid;grid-template-columns:1fr auto;grid-gap:7px;gap:7px;z-index:4;pointer-events:none;opacity:0;transition:opacity .25s}.mochi-hop-app[data-phase=countdown] .mh-hud,.mochi-hop-app[data-phase=over] .mh-hud,.mochi-hop-app[data-phase=play] .mh-hud{opacity:1}.mochi-hop-app .mh-world{align-self:center;justify-self:start;padding:7px 14px;font-size:12px;letter-spacing:.06em;color:#6a4530}.mochi-hop-app .mh-score,.mochi-hop-app .mh-world{background:#fff7ec;border:2px solid #d9b48c;border-radius:11px;font-weight:900;box-shadow:0 3px 0 #d6b58f}.mochi-hop-app .mh-score{padding:6px 13px;font-size:22px;color:#c84f6c}.mochi-hop-app .mh-combo{grid-column:1/-1;text-align:center;color:#fff;font-weight:900;font-size:13px;min-height:16px;opacity:0}.mochi-hop-app .mh-combo.on{opacity:1;text-shadow:0 2px 6px #0005}.mochi-hop-app .mh-combo.burst{animation:mh-burst .4s ease-out}@keyframes mh-burst{0%{transform:scale(1.5)}to{transform:scale(1)}}.mochi-hop-app .mh-saves{grid-column:1/-1;text-align:center;color:#ffd27a;font-size:15px;letter-spacing:3px}.mochi-hop-app .mh-saves i{font-style:normal}.mochi-hop-app .mh-saves i.used{opacity:.3}.mochi-hop-app .mh-progress{grid-column:1/-1;text-align:center;color:#5a3b2e;background:#fff7ecd0;border-radius:10px;padding:3px 8px;justify-self:center;font-size:12px;font-weight:800}.mochi-hop-app .mh-thread{grid-column:1/-1;height:7px;background:#ffffff66;border-radius:8px;overflow:hidden;box-shadow:inset 0 1px 2px #0002}.mochi-hop-app .mh-thread i{display:block;height:100%;background:#ffd34d;transform-origin:left;transition:transform .08s linear}.mochi-hop-app .mh-thread.urgent i{background:#ff6f7a}.mochi-hop-app .mh-controls{position:absolute;left:5%;right:5%;bottom:calc(26px + env(safe-area-inset-bottom, 0));display:flex;gap:22px;z-index:4;opacity:0;pointer-events:none;transition:opacity .25s}.mochi-hop-app[data-phase=play] .mh-controls{opacity:1;pointer-events:auto}.mochi-hop-app .mh-ctl{flex:1 1;border:none;border-radius:28px;padding:16px 12px;font-size:24px;font-weight:900;line-height:1.05;color:#fff;cursor:pointer;touch-action:manipulation;box-shadow:0 7px 0 #0003,inset 0 3px 8px #fff6}.mochi-hop-app .mh-ctl strong{display:block;font-size:30px}.mochi-hop-app .mh-step{background:linear-gradient(#ffd86a,#ffbe3d);color:#6a4713}.mochi-hop-app .mh-step strong{color:#c6611b}.mochi-hop-app .mh-hop{background:linear-gradient(#8fd6f7,#4fb0e6)}.mochi-hop-app .mh-hop strong{color:#ffe36a}.mochi-hop-app .mh-ctl:active{transform:translateY(5px);box-shadow:0 2px 0 #0003,inset 0 3px 8px #fff6}.mochi-hop-app .mh-countdown{position:absolute;top:40%;left:0;right:0;text-align:center;z-index:7;font-size:64px;font-weight:900;color:#fff;text-shadow:0 4px 0 #e06a86,0 8px 16px #0004;pointer-events:none}.mochi-hop-app .mh-countdown:empty{display:none}.mochi-hop-app .mh-countdown.tick{animation:mh-pop .4s ease-out}@keyframes mh-pop{0%{transform:scale(.4);opacity:0}50%{opacity:1}to{transform:scale(1)}}.mochi-hop-app .mh-toast{position:absolute;top:30%;left:50%;transform:translate(-50%,-8px);z-index:7;padding:10px 18px;border-radius:14px;background:#fff7ecf2;border:2px solid #d9b48c;color:#5a3b2e;font-weight:900;font-size:15px;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;max-width:80%;text-align:center}.mochi-hop-app .mh-toast.show{opacity:1;transform:translate(-50%)}.mochi-hop-app .mh-toast[data-tone=good]{border-color:#8ac47f}.mochi-hop-app .mh-toast[data-tone=bad]{border-color:#e88;color:#b3454f}.mochi-hop-app .mh-pop{position:absolute;z-index:6;font-weight:900;font-size:20px;color:#fff;text-shadow:0 2px 4px #0006;transform:translate(-50%,-50%);animation:mh-float .9s ease-out forwards;pointer-events:none;white-space:nowrap}.mochi-hop-app .mh-pop-gold{color:#ffd54a}.mochi-hop-app .mh-pop-bad{color:#ff8a90}@keyframes mh-float{0%{opacity:0;transform:translate(-50%,-30%) scale(.7)}20%{opacity:1}to{opacity:0;transform:translate(-50%,-150%) scale(1.1)}}.mochi-hop-app .overlay{position:absolute;inset:0;display:none;flex-direction:column;align-items:center}.mochi-hop-app .mh-card-panel,.mochi-hop-app .mh-panel{width:min(430px,100%);text-align:center}.mochi-hop-app .mh-kicker{display:block;font-size:10px;font-weight:900;letter-spacing:2px;color:var(--mh-accent);margin-bottom:8px}.mochi-hop-app .mh-title{font:900 clamp(32px,6vw,46px)/1.02 Playful,sans-serif;color:var(--mh-accent);letter-spacing:-1px;margin:4px 0 12px}.mochi-hop-app .mh-title-sm{font:900 30px/1.05 Playful,sans-serif;color:var(--mh-accent);margin:2px 0 16px;text-align:center}.mochi-hop-app .mh-sub{font-size:14px;line-height:1.5;color:#6a5244;margin:0 0 18px}.mochi-hop-app .mh-label{font-size:13px!important;font-weight:900;color:#6a4530!important;margin:14px 0 10px!important;text-align:center}.mochi-hop-app .mh-cards{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.mochi-hop-app .mh-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 4px;border:2px solid #e6c9ad;border-radius:16px;background:#fff7ee;color:var(--mh-ink);cursor:pointer;min-width:0}.mochi-hop-app .mh-card-icon{font-size:26px}.mochi-hop-app img.mh-card-icon{width:52px;height:52px;object-fit:contain;filter:drop-shadow(0 2px 2px #0002)}.mochi-hop-app .mh-card b{font-size:12px}.mochi-hop-app .mh-card small{font-size:9px;color:#8a7159;line-height:1.15}.mochi-hop-app .mh-card[aria-checked=true]{background:#ffe0ea;border-color:var(--mh-accent);box-shadow:0 3px 0 #e8a9ba}.mochi-hop-app .mh-char-note{font-size:12px;color:#8a7159;min-height:16px;margin:10px 0 4px}.mochi-hop-app .mh-chips{display:flex;gap:8px;justify-content:center}.mochi-hop-app .mh-chip{flex:1 1;padding:10px 6px;border:2px solid #e6c9ad;border-radius:13px;background:#fff7ee;color:var(--mh-ink);font-weight:800;cursor:pointer}.mochi-hop-app .mh-chip[aria-checked=true]{background:#ffe0ea;border-color:var(--mh-accent)}.mochi-hop-app .mh-tour-note{font-size:11px;color:#8a7159;margin:12px 0 6px;line-height:1.4}.mochi-hop-app .mh-best-line{font-size:15px;font-weight:800;color:#6a4530;margin:8px 0}.mochi-hop-app .mh-best-line b,.mochi-hop-app .mh-r-best b{color:var(--mh-accent)}.mochi-hop-app .mh-settings{display:flex;gap:10px;margin-top:12px}.mochi-hop-app .mh-setting{flex:1 1;padding:9px;border:2px solid #cdb7c0;border-radius:12px;background:#fdf0f4;color:var(--mh-ink);font-size:12px;font-weight:700;cursor:pointer}.mochi-hop-app .mh-r-score{font:900 60px/1 Playful,sans-serif;color:#c84f6c;margin:10px 0 4px}.mochi-hop-app .mh-r-new{display:none;color:#e39a2a;font-weight:900;letter-spacing:1px;margin:0 0 4px}.mochi-hop-app .mh-r-new.show{display:block}.mochi-hop-app .mh-r-best{font-size:15px;color:#6a4530;margin:2px 0}.mochi-hop-app .mh-r-summary{font-size:12px;color:#8a7159;margin:6px 0 14px}.mochi-hop-app .mh-r-stats{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px;padding:0;margin:0 0 16px}.mochi-hop-app .mh-r-stats li{display:flex;flex-direction:column;padding:10px 2px;border-radius:14px;background:#fff0f4}.mochi-hop-app .mh-r-stats b{font-size:22px;color:#c84f6c}.mochi-hop-app .mh-r-stats span{font-size:10px;color:#8a7159}.mochi-hop-app .mh-r-row{display:flex;gap:10px}.mochi-hop-app .mh-r-row .a-secondary{flex:1 1;font-size:14px}.mochi-hop-app .mh-charm-count{font-size:14px;font-weight:800;color:#6a4530;margin:4px 0 14px}.mochi-hop-app .mh-charm-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;margin-bottom:14px}.mochi-hop-app .mh-charm-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 4px;border:2px solid #e6c9ad;border-radius:16px;background:#fff7ee;color:var(--mh-ink);cursor:pointer}.mochi-hop-app .mh-charm-card.owned{background:#fff0f4;border-color:var(--mh-accent)}.mochi-hop-app .mh-charm-card.locked{opacity:.6}.mochi-hop-app .mh-charm-art{font-size:30px}.mochi-hop-app .mh-charm-card strong{font-size:12px}.mochi-hop-app .mh-charm-card small{font-size:9px;color:#8a7159}.mochi-hop-app .mh-charm-detail{min-height:34px;font-size:12px;font-weight:700;color:#6a5244;margin-bottom:8px}@media (max-width:420px){.mochi-hop-app .mh-card-icon{font-size:22px}.mochi-hop-app .mh-ctl{font-size:20px;padding:14px 10px}.mochi-hop-app .mh-ctl strong{font-size:25px}.mochi-hop-app .mh-r-score{font-size:50px}}