:root{--safe-top:max(env(safe-area-inset-top,0px), var(--duo-safe-top,0px));--safe-right:max(env(safe-area-inset-right,0px), var(--duo-safe-right,0px));--safe-bottom:max(env(safe-area-inset-bottom,0px), var(--duo-safe-bottom,0px));--safe-left:max(env(safe-area-inset-left,0px), var(--duo-safe-left,0px));--bg:#faf6ef;--card:#fff;--ink:#2a2b38;--muted:#5e6070;--faint:#8a8b96;--line:#efede8;--off:#dad6ce;--p0:#3f72db;--p1:#ff8a3d;--p0-tint:#e7eefc;--p1-tint:#ffede0;--cheek:#ff7a8c73;--scrim:#2a2b385c;--font:"Chiron GoRound TC", "PingFang TC", "Noto Sans TC", sans-serif;--num:"Fredoka", "Chiron GoRound TC", sans-serif;--btn-max:360px}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--font);-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;overscroll-behavior:none;margin:0}html{touch-action:pan-x pan-y}*{-webkit-touch-callout:none;-webkit-user-select:none!important;user-select:none!important}img,a,svg{-webkit-user-drag:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}[hidden]{display:none!important}#app{min-height:100dvh}.icon-btn{background:0 0;border:none;border-radius:22px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:flex}.primary,.ghost{border:none;border-radius:28px;justify-content:center;align-items:center;gap:10px;height:56px;padding:0 22px;font-size:17px;font-weight:700;transition:transform .12s;display:flex}.primary{background:var(--ink);color:#fff}.ghost{background:var(--card);color:var(--ink)}.primary:not(.small),.ghost:not(.small){width:100%;max-width:var(--btn-max);margin-inline:auto}.primary:active:not(:disabled),.ghost:active:not(:disabled){transform:scale(.97)}.primary:disabled{opacity:.35}.primary.small,.ghost.small{gap:6px;height:48px;padding:0 18px;font-size:15px}.round-btn{background:var(--card);border:none;border-radius:22px;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:flex}.home{max-width:480px;padding:calc(16px + var(--safe-top)) calc(20px + var(--safe-right)) calc(24px + var(--safe-bottom)) calc(20px + var(--safe-left));flex-direction:column;gap:16px;margin:0 auto;animation:.25s ease-out fade-in;display:flex}.scroll-edge{height:calc(var(--safe-top) + min(var(--safe-top), 12px));z-index:5;pointer-events:none;-webkit-backdrop-filter:saturate(180%)blur(24px);backdrop-filter:saturate(180%)blur(24px);background:color-mix(in srgb, var(--bg) 55%, transparent);position:fixed;inset:0 0 auto;-webkit-mask-image:linear-gradient(#000 60%,#0000);mask-image:linear-gradient(#000 60%,#0000)}.home-bar{align-items:center;gap:4px;display:flex}.home-title{letter-spacing:1px;flex-grow:1;margin:0;font-size:22px;font-weight:900}.stage{background:var(--card);border-radius:28px;justify-content:center;align-items:flex-end;gap:10px;height:164px;padding-bottom:20px;display:flex;position:relative}.stage-num{font-family:var(--num);text-align:center;min-width:30px;padding-bottom:16px;font-size:48px;font-weight:700;line-height:1}.stage-colon{font-family:var(--num);color:var(--faint);padding-bottom:22px;font-size:28px;font-weight:600}.stage-reset{color:var(--faint);position:absolute;top:8px;right:8px}.slime-btn{background:0 0;border:none;padding:0;line-height:0}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:4px;display:grid}.card{text-align:left;border:none;border-radius:22px;flex-direction:column;align-items:stretch;height:148px;padding:10px 12px 12px;transition:transform .12s;display:flex;position:relative;overflow:hidden}.card:active:not(:disabled){transform:scale(.97)}.card-art{flex-grow:1;justify-content:center;align-items:center;min-height:0;display:flex}.picto{--ink:#2a2b38;width:100%;max-width:150px;height:auto}.card.is-locked .picto{opacity:.35}.card-title{color:var(--ink);font-size:18px;font-weight:900}.picto .bob{transform-box:fill-box;transform-origin:50% 100%;animation:2.6s ease-in-out infinite bob}@keyframes bob{0%,to{transform:scale(1)}50%{transform:scale(1.05,.93)}}.badge{background:var(--ink);color:#fff;border-radius:12px;align-items:center;gap:4px;padding:4px 8px;font-size:12px;font-weight:700;display:inline-flex;position:absolute;top:16px;right:16px}.empty{text-align:center;color:var(--muted);margin:24px 0}.slime{--c:var(--p0);transform-origin:50% 100%;line-height:0;display:inline-block}.slime.p1{--c:var(--p1)}.slime-svg{width:100%;height:auto;display:block;overflow:visible}.slime-ground{fill:#2a2b381a}.slime-body{fill:var(--c)}.slime-curl{fill:none;stroke:var(--c);stroke-width:5px;stroke-linecap:round}.slime-limb,.slime-ring{fill:none;stroke:var(--c);stroke-linecap:round}.slime-limb{stroke-width:24px}.slime-ring{stroke-width:22px}.slime-shine{fill:none;stroke:#fff;stroke-width:5px;stroke-linecap:round;opacity:.5}.slime-gloss{fill:#fff;opacity:.5}.slime-cheek{fill:var(--cheek)}.slime-white{fill:#fff}.slime-ink,.slime-o{fill:var(--ink)}.slime-eyes-joy path,.slime-mouth{fill:none;stroke:var(--ink);stroke-width:3.2px;stroke-linecap:round}.slime-squash{transform-box:fill-box;transform-origin:50% 100%;animation:2.6s ease-in-out infinite slime-breathe}.slime.p1 .slime-squash{animation-delay:-1.3s}.slime-eyes-open{transform-box:fill-box;transform-origin:50%;transition:transform 70ms}.slime.blink .slime-eyes-open{transform:scaleY(.12)}.slime .slime-mouth,.slime .slime-o,.slime .slime-eyes-joy{display:none}.slime.mood-happy .m-happy,.slime.mood-cheer .m-happy,.slime.mood-neutral .m-neutral,.slime.mood-pout .m-pout,.slime.mood-sulk .m-pout,.slime.mood-focus .m-focus{display:inline}.slime.mood-cheer .slime-eyes-open{display:none}.slime.mood-cheer .slime-eyes-joy{display:inline}.slime.mood-sulk .slime-pupils{transform:translateY(2.5px)}.slime.hop{animation:.55s cubic-bezier(.3,.7,.4,1) slime-hop}.slime.mood-cheer{animation:.7s cubic-bezier(.3,.7,.4,1) infinite slime-hop}.slime.mood-sulk{animation:2.4s ease-in-out infinite slime-sulk}.slime.mood-sulk .slime-squash{animation-duration:3.8s}@keyframes slime-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.045,.95)}}@keyframes slime-hop{0%{transform:translateY(0)scale(1)}18%{transform:translateY(0)scale(1.14,.84)}45%{transform:translateY(-30%)scale(.92,1.1)}72%{transform:translateY(0)scale(1.1,.9)}86%{transform:translateY(0)scale(.97,1.03)}to{transform:translateY(0)scale(1)}}@keyframes slime-sulk{0%,to{transform:rotate(0)scaleY(.97)}30%{transform:rotate(-5deg)scaleY(.95)}70%{transform:rotate(5deg)scaleY(.95)}}.match{touch-action:none;animation:.2s ease-out fade-in;position:fixed;inset:0;overflow:hidden}.match-stage{z-index:0;background:linear-gradient(var(--p0-tint) 50%, var(--p1-tint) 50%);position:absolute;inset:0}.half{pointer-events:none;height:50%;position:absolute;left:0;right:0}.half-0{top:0;transform:rotate(180deg)}.half-1{bottom:0}.game-layer{position:absolute;inset:0}.game-layer>*{pointer-events:auto}.hud-center{inset:0 0 var(--pad-bottom);flex-direction:column;justify-content:center;align-items:center;gap:16px;transition:opacity .2s;display:flex;position:absolute}.hud-center.gone{opacity:0;visibility:hidden}.hud-center button{pointer-events:auto}.hud-info{flex-direction:column;align-items:center;gap:14px;min-height:56px;display:flex}.tag{background:var(--card);border-radius:20px;align-items:center;height:40px;padding:0 18px;font-size:17px;font-weight:900;display:inline-flex}.tag.strong{background:var(--ink);color:#fff;font-family:var(--num);font-size:20px}.count{font-family:var(--num);font-size:88px;font-weight:700;line-height:56px;animation:.3s cubic-bezier(.3,1.4,.5,1) count-pop}.result{color:var(--muted);font-size:28px;font-weight:900}.result.strong{color:var(--ink)}.result-actions{gap:10px;display:flex}.match-pause{right:calc(6px + var(--safe-right));z-index:3;width:40px;height:40px;position:absolute;top:50%;transform:translateY(-50%)}.match-score{left:calc(14px + var(--safe-left));z-index:3;pointer-events:none;flex-direction:column;align-items:center;gap:14px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.match-score .score-row{flex-direction:column;gap:6px;display:flex}.match-score .score-row.p0{flex-direction:column-reverse}.match-score .pip{background:#fff;border-radius:5px;width:10px;height:10px;box-shadow:0 0 0 1px #2a2b3829}.match-score .p0 .pip.on{background:var(--p0)}.match-score .p1 .pip.on{background:var(--p1)}.doors{z-index:2;pointer-events:auto;position:absolute;inset:0;overflow:hidden}.doors.open{pointer-events:none}.doors .door{justify-content:center;align-items:center;height:50%;transition:transform .34s cubic-bezier(.5,0,.3,1);display:flex;position:absolute;left:0;right:0}.doors .door.d0{background:var(--p0-tint);border-bottom:3px solid #2a2b381f;top:0}.doors .door.d1{background:var(--p1-tint);border-top:3px solid #2a2b381f;bottom:0}.doors .door.d0{--pad-bottom:calc(22px + var(--safe-top))}.doors .door.d1{--pad-bottom:calc(22px + var(--safe-bottom))}.doors .door.d0 .hud-center{transform:rotate(180deg)}.doors.ajar .door.d0{transform:translateY(-24%)}.doors.ajar .door.d1{transform:translateY(24%)}.doors.open .door.d0{transform:translateY(-101%)}.doors.open .door.d1{transform:translateY(101%)}@media (prefers-reduced-motion:reduce){.doors .door{transition:none}}.game-canvas{width:100%;height:100%;position:absolute;inset:0}.touch-pad{touch-action:none;position:absolute;inset:0}.turn-glow{pointer-events:none;transition:box-shadow .2s;position:absolute;inset:0;box-shadow:inset 0 -6px #0000}.turn-glow.p0.on{box-shadow:inset 0 -6px 0 var(--p0)}.turn-glow.p1.on{box-shadow:inset 0 -6px 0 var(--p1)}.turn-pill{right:20px;bottom:calc(18px + var(--safe-bottom));background:var(--card);min-width:56px;height:36px;color:var(--muted);font-family:var(--num);pointer-events:none;border-radius:18px;justify-content:center;align-items:center;padding:0 12px;font-size:18px;font-weight:700;display:flex;position:absolute}.half-0 .turn-pill{bottom:calc(18px + var(--safe-top))}.turn-pill.on{background:var(--ink);color:#fff}.turn-pill.on.low{background:#d9483b}.grid{z-index:1;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.grid-cell{background:#ffffffd9;border:none;border-radius:12px;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.piece-wrap{line-height:0;display:inline-block}.piece-wrap.flip{transform:rotate(180deg)}.pause-layer{z-index:5;background:var(--scrim);justify-content:center;align-items:center;animation:.15s ease-out fade-in;display:flex;position:absolute;inset:0}.pause-card{background:var(--bg);border-radius:28px;flex-direction:column;gap:10px;width:min(300px,82vw);padding:22px;display:flex}.pause-title{text-align:center;margin:0 0 6px;font-size:20px;font-weight:900}@keyframes count-pop{0%{opacity:0;scale:.6}to{opacity:1;scale:1}}.scrim{z-index:10;background:var(--scrim);justify-content:center;align-items:flex-end;animation:.18s ease-out fade-in;display:flex;position:fixed;inset:0}.scrim.leaving{animation:.18s ease-in forwards fade-out}.sheet{width:100%;max-width:480px;max-height:88dvh;padding:6px 20px calc(24px + var(--safe-bottom));background:var(--bg);border-radius:28px 28px 0 0;animation:.24s cubic-bezier(.2,.8,.2,1) sheet-up;overflow-y:auto}.scrim.leaving .sheet{animation:.18s ease-in forwards sheet-down}.scrim.center{align-items:center;padding:20px}.scrim.center .sheet{border-radius:28px;max-width:400px;padding-bottom:22px;animation:.24s cubic-bezier(.2,1.2,.4,1) pop-in}.scrim.center.leaving .sheet{animation:.16s ease-in forwards fade-out}@keyframes pop-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.intro-frame{border-radius:22px;position:relative;overflow:hidden}.intro-pages{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x;display:flex;overflow-x:auto}.intro-pages::-webkit-scrollbar{display:none}.intro-page{box-sizing:border-box;scroll-snap-align:start;scroll-snap-stop:always;text-align:center;flex-direction:column;flex:0 0 100%;justify-content:center;align-items:center;gap:8px;height:318px;padding:18px 20px 40px;display:flex}.intro-cover .picto{max-width:260px}.intro-cover.is-active .bob{animation-duration:1.4s}.intro-summary{text-wrap:balance;max-width:16em;margin:6px 0 0;font-size:17px;font-weight:700;line-height:1.5}.intro-scene{--ink:#2a2b38;flex-shrink:0;width:100%;max-width:300px;height:auto}.intro-glyph{width:76px;height:76px;color:var(--ink);background:#ffffffb3;border-radius:38px;justify-content:center;align-items:center;line-height:0;display:flex}.intro-label{margin:2px 0 0;font-size:19px;font-weight:900}.intro-detail{max-width:18em;color:var(--muted);text-wrap:balance;margin:0;font-size:14px;line-height:1.5}.intro-dots{pointer-events:none;justify-content:center;gap:2px;display:flex;position:absolute;bottom:8px;left:0;right:0}.intro-dot{pointer-events:auto;background:0 0;border:none;justify-content:center;align-items:center;width:22px;height:22px;padding:0;display:flex}.intro-dot:after{content:"";background:#2a2b3838;border-radius:4px;width:7px;height:7px;transition:width .2s,background .2s}.intro-dot[aria-current=true]:after{background:var(--ink);width:18px}.is-active .i-tap svg,.is-active .i-two svg,.is-active .i-hold svg{animation:.9s ease-in-out infinite g-press}.is-active .i-drag svg{animation:1.4s ease-in-out infinite g-drag}.is-active .i-swipe svg{animation:1s ease-in-out infinite g-swipe}.is-active .i-pull svg{animation:1.2s ease-in-out infinite g-pull}.is-active .i-dice svg,.is-active .i-turn svg{animation:1.6s ease-in-out infinite g-spin}.is-active .i-goal svg,.is-active .i-clock svg{animation:1.2s ease-in-out infinite g-wave}@keyframes g-press{0%,to{transform:scale(1)}40%{transform:scale(.82)}}@keyframes g-drag{0%,to{transform:translate(-6px,3px)}50%{transform:translate(6px,-3px)}}@keyframes g-swipe{0%{opacity:.3;transform:translate(-8px)}60%{opacity:1;transform:translate(6px)}to{opacity:0;transform:translate(8px)}}@keyframes g-pull{0%,to{transform:translateY(0)}70%{transform:translateY(7px)}80%{transform:translateY(-4px)}}@keyframes g-spin{0%{transform:rotate(0)}60%,to{transform:rotate(360deg)}}@keyframes g-wave{0%,to{transform:rotate(0)}30%{transform:rotate(-10deg)}60%{transform:rotate(8deg)}}.intro-start{height:60px;font-size:19px}.intro-actions{justify-content:center;gap:10px;display:flex}.intro-actions .intro-start{flex:1}.intro-actions .intro-gear{background:var(--card);width:60px;height:60px;color:var(--ink);border-radius:30px;flex-shrink:0}.sheet-head{justify-content:space-between;align-items:center;height:56px;display:flex}.sheet-title{margin:0;font-size:20px;font-weight:900}.sheet-body{flex-direction:column;gap:16px;display:flex}.group{background:var(--card);border-radius:20px;overflow:hidden}.group-title{color:var(--muted);padding:14px 16px 4px;font-size:13px;font-weight:700}.row{width:100%;min-height:52px;color:var(--ink);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:0 16px;font-size:16px;text-decoration:none;display:flex}.row+.row{border-top:1px solid var(--line)}.row-value{font-family:var(--num);color:var(--muted);font-size:13px}.switch{background:var(--off);border:none;border-radius:16px;flex-shrink:0;width:52px;height:32px;padding:0;transition:background .2s;position:relative}.switch[aria-checked=true]{background:var(--ink)}.knob{background:#fff;border-radius:13px;width:26px;height:26px;transition:transform .2s;position:absolute;top:3px;left:3px}.switch[aria-checked=true] .knob{transform:translate(20px)}.shop-art{border-radius:20px;justify-content:center;align-items:center;height:128px;display:flex}.shop-art .picto{width:200px;height:112px}.shop-actions{flex-direction:column;gap:10px;display:flex}.plans{width:100%;max-width:var(--btn-max);flex-direction:column;gap:10px;margin:0 auto;display:flex}.plans .plan{background:var(--card);color:var(--ink);text-align:left;border:none;border-radius:20px;flex-direction:column;gap:10px;padding:16px 18px;transition:transform .12s;display:flex}.plans .plan:active:not(:disabled){transform:scale(.98)}.plans .plan:disabled{opacity:.55}.plans .plan-pro{background:var(--ink);color:#fff}.plans .plan-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.plans .plan-name{font-size:19px;font-weight:900}.plans .plan-price{font-family:var(--num);font-size:18px;font-weight:700}.plans .plan-perks{flex-wrap:wrap;gap:6px 14px;display:flex}.plans .plan-perk{opacity:.8;align-items:center;gap:4px;font-size:14px;font-weight:700;display:inline-flex}.custom-folder{flex-direction:column;display:flex}.custom-tabs{align-items:flex-end;gap:4px;display:flex}.custom-tabs:empty{display:none}.custom-tabs .custom-tab{height:40px;color:var(--muted);background:#2a2b380f;border:none;border-radius:14px 14px 0 0;padding:0 16px;font-size:15px;font-weight:800;transition:background .15s,color .15s}.custom-tabs .custom-tab.on{background:var(--card);height:44px;color:var(--ink)}.custom-tabs:not(:empty)+.custom-list{border-top-left-radius:0}.custom-foot{bottom:calc(-24px - var(--safe-bottom));margin:0 -20px calc(-24px - var(--safe-bottom));padding:12px 20px calc(24px + var(--safe-bottom));background:var(--bg);position:sticky}.custom-actions{width:100%;max-width:var(--btn-max);gap:10px;margin:0 auto;display:flex}.custom-actions .ghost{flex:none;width:auto;padding:0 18px}.custom-actions .primary{flex:1;width:auto;min-width:0}.custom-list{background:var(--card);border-radius:18px;flex-direction:column;display:flex;overflow:hidden}.custom-list .custom-row{justify-content:space-between;align-items:center;gap:12px;min-height:64px;padding:10px 14px 10px 16px;display:flex}.custom-list .custom-row+.custom-row{border-top:1px solid #2a2b3812}.custom-list .custom-text{flex-direction:column;gap:2px;min-width:0;display:flex}.custom-list .custom-label{font-size:16px;font-weight:800}.custom-list .custom-sub{color:var(--muted);font-size:12px;font-family:var(--num)}.custom-list .range{align-items:center;gap:6px;display:flex}.custom-list .range-dash{color:var(--muted);font-weight:700}.stepper{align-items:center;display:flex}.stepper .step-btn{width:30px;height:30px;color:var(--ink);background:#2a2b380f;border:none;border-radius:15px;justify-content:center;align-items:center;padding:0;display:flex}.stepper .step-btn:disabled{opacity:.3}.stepper .step-value{text-align:center;min-width:30px;font-family:var(--num);font-size:17px;font-weight:700}.stepper .step-value.wide{min-width:64px;padding:0 6px}.stepper .step-value.changed{color:var(--p1)}.notice{top:calc(12px + var(--safe-top));z-index:20;background:var(--ink);color:#fff;border-radius:20px;padding:10px 18px;font-size:15px;font-weight:700;transition:opacity .2s;animation:.2s ease-out fade-in;position:fixed;left:50%;transform:translate(-50%)}.notice.leaving{opacity:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sheet-down{0%{transform:translateY(0)}to{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.picto .bob,.intro-glyph svg,.slime,.slime-squash,.count,.home,.match,.sheet,.scrim{animation:none!important}}.fake-banner{z-index:5;box-sizing:border-box;border:2px dashed var(--ink);background:var(--bg);height:50px;color:var(--ink);font-family:var(--num);justify-content:center;align-items:center;font-size:14px;display:flex;position:fixed;bottom:0;left:0;right:0}.sim-banner .home{padding-bottom:calc(24px + var(--safe-bottom) + 50px)}.fake-ad{z-index:100;background:#2a2b38;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.fake-ad .fake-ad-tag{color:#fff;font-family:var(--num);letter-spacing:.08em;opacity:.7;font-size:20px}
