:root{--color-text-strong:#191f28;--color-text-default:#333d4b;--color-text-subtle:#4e5968;--color-text-hint:#8b95a1;--color-text-disabled:#b0b8c1;--color-text-inverse:#fff;--color-bg:#fff;--color-bg-canvas:#f2f4f6;--color-danger:#f04452;--color-success:#03b26c;--color-warning:#fe9800;--brand-primary:#191f28;--font-size-display:28px;--font-weight-display:700;--font-size-title:20px;--font-weight-title:700;--font-size-subtitle:15px;--font-weight-subtitle:600;--font-size-body:17px;--font-weight-body:400;--font-size-body-small:15px;--font-weight-body-small:400;--font-size-caption:13px;--font-weight-caption:400;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--dim:#0006}*,:before,:after{box-sizing:border-box}body{word-break:keep-all;overflow-wrap:break-word;letter-spacing:0;color:var(--color-text-default);background:var(--color-bg);margin:0;font-family:Tossface,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Malgun Gothic,sans-serif}.tf{font-family:Tossface,sans-serif;font-style:normal}.canvas{min-height:100vh;min-height:100dvh}.text-hint{color:var(--color-text-hint)}.text-inverse{color:var(--color-text-inverse)}.bg-canvas{background:var(--color-bg-canvas)}:root{--brand:#ef8a2b;--brand-strong:#cf5f06;--brand-soft:#fff0e1;--ink:var(--color-text-strong);--card:#f6f7f9;--line:#e5e8eb;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--panel-h:clamp(256px, 40vh, 410px)}[hidden]{display:none!important}html,body{overscroll-behavior:none;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;height:100%;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}#app{background:var(--page,#8d87a4);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.stage{flex:1;min-height:0;position:relative;overflow:hidden}.world-canvas{touch-action:none;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.hud-top{top:calc(var(--safe-top) + 10px);left:calc(var(--safe-left) + 12px);right:calc(var(--safe-right) + 112px);pointer-events:none;display:flex;position:absolute}.hud-bottom{left:calc(var(--safe-left) + 12px);right:calc(var(--safe-right) + 12px);pointer-events:none;justify-content:space-between;align-items:flex-end;gap:8px;display:flex;position:absolute;bottom:12px}.hud-top>*,.hud-bottom>*{pointer-events:auto}.rush-text{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.rush-text span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.wallet{background:#ffffffeb;border-radius:18px;flex-direction:column;gap:1px;padding:8px 14px 8px 10px;display:flex;box-shadow:0 2px 10px #4a2e1d24}.money{color:var(--ink);font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:22px;font-weight:700;line-height:1.15;display:flex}.money svg{flex:none;width:24px;height:24px}.rate{color:var(--color-text-subtle);font-variant-numeric:tabular-nums;padding-left:30px;font-size:13px;font-weight:600}.hud-row{align-items:center;gap:8px;display:flex}.round-btn{background:#ffffffeb;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:relative;box-shadow:0 2px 10px #4a2e1d24}.round-btn svg{width:24px;height:24px}.round-btn .dot{background:var(--color-danger);border-radius:50%;width:10px;height:10px;position:absolute;top:6px;right:6px;box-shadow:0 0 0 2px #fff}.rush{background:var(--brand-strong);color:#fff;border-radius:22px;align-items:center;gap:8px;min-width:0;min-height:44px;padding:6px 14px 6px 8px;font-size:15px;font-weight:700;display:flex;box-shadow:0 3px 12px #cf5f0659}.rush .badge{background:#ffffff38;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.rush .badge svg{width:16px;height:16px}.rush.active{color:var(--brand-strong);background:#fffffff0;box-shadow:0 2px 10px #4a2e1d24}.rush.active .badge{background:var(--brand-soft)}.rush .sub{opacity:.9;font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.floaters{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.floater{color:var(--brand-strong);white-space:nowrap;font-variant-numeric:tabular-nums;will-change:transform, opacity;background:#ffffffe6;border-radius:10px;padding:2px 8px;font-size:15px;font-weight:700;animation:1.1s ease-out forwards float-up;position:absolute;top:0;left:0}@keyframes float-up{0%{opacity:0;transform:translate(var(--x), var(--y)) translate(-50%, 0) scale(.5)}14%{opacity:1;transform:translate(var(--x), var(--y)) translate(-50%, -16px) scale(1.18)}26%{transform:translate(var(--x), var(--y)) translate(-50%, -20px) scale(1)}to{opacity:0;transform:translate(var(--x), var(--y)) translate(-50%, -62px) scale(1)}}.floater.big{color:#a85a00;background:linear-gradient(#fff6d6,#ffe08a);border-radius:14px;padding:4px 12px;font-size:22px;animation-duration:1.6s;box-shadow:0 4px 14px #a85a004d}.coins{pointer-events:none;z-index:3;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.coins .coin{will-change:transform, opacity;filter:drop-shadow(0 2px 2px #7846004d);width:22px;height:22px;position:absolute;top:0;left:0}.coins .coin svg{width:100%;height:100%;display:block}.wallet.bump .money{animation:.22s ease-out wallet-bump}.wallet.bump .coin-mark{animation:.3s ease-out coin-spin}@keyframes wallet-bump{40%{transform:scale(1.09)}}@keyframes coin-spin{50%{transform:scale(1.25)rotate(-12deg)}}.coin-mark{display:inline-flex}.money .regulars{color:#4f64a0;white-space:nowrap;background:#eef1fb;border-radius:9px;margin-left:2px;padding:2px 7px;font-size:12px;font-weight:700}.list .upgrades{display:contents}.list .move{grid-column:1/-1}.dialog p.note{color:var(--color-text-hint);margin-top:-8px;font-size:13px}.banner{left:50%;top:calc(var(--band-top,80px) + (100% - var(--band-top,80px) - var(--band-bottom,70px)) * .32);z-index:4;pointer-events:none;flex-direction:column;align-items:center;gap:4px;animation:1.9s cubic-bezier(.2,1,.3,1) forwards banner;display:flex;position:absolute;transform:translate(-50%,-50%)}.banner:before{content:"";z-index:-1;background:repeating-conic-gradient(#ffe2968c 0deg 10deg,#ffe29600 10deg 24deg);border-radius:50%;width:320px;height:320px;margin:-160px 0 0 -160px;animation:1.9s linear forwards rays;position:absolute;top:50%;left:50%;-webkit-mask:radial-gradient(circle,#000 18%,#0000 68%);mask:radial-gradient(circle,#000 18%,#0000 68%)}.banner strong{color:#fff;letter-spacing:-.02em;white-space:nowrap;background:linear-gradient(#ffb04a,#f07a1a);border-radius:18px;padding:8px 20px;font-size:26px;font-weight:800;box-shadow:0 6px 18px #cf5f0659,inset 0 -3px #0000001f}.banner span{color:var(--brand-strong);white-space:nowrap;background:#fffffff0;border-radius:12px;padding:4px 12px;font-size:15px;font-weight:700}@keyframes banner{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}12%{opacity:1;transform:translate(-50%,-50%)scale(1.12)}22%{transform:translate(-50%,-50%)scale(1)}82%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-60%)scale(.96)}}@keyframes rays{0%{transform:rotate(0)scale(.6)}to{transform:rotate(70deg)scale(1.1)}}.btn,.round-btn,.rush,.mode,.segmented button,.card .bar,.next-stall{transition:transform .16s cubic-bezier(.3,1.6,.5,1)}.btn:active:not(:disabled),.round-btn:active,.rush:active:not(:disabled),.mode:active,.segmented button:active,.card .bar:active:not(:disabled){transition-duration:50ms;transform:scale(.93)}.card.flash{animation:.45s ease-out card-flash}@keyframes card-flash{0%{background:#fff4dd;box-shadow:inset 0 0 0 3px #ffc46a}}.card .title .lv.pop{animation:.45s cubic-bezier(.2,1.8,.4,1) lv-pop;display:inline-block}@keyframes lv-pop{0%{color:var(--brand-strong);transform:scale(1.6)}60%{color:var(--brand-strong)}}.next-stall{min-height:36px;color:var(--color-text-subtle);white-space:nowrap;will-change:transform;background:#ffffffeb;border-radius:18px;padding:6px 12px;font-size:13px;font-weight:700;position:absolute;top:0;left:0;box-shadow:0 2px 8px #4a2e1d24}.next-stall.ready{background:var(--brand-strong);color:#fff;animation:1.2s ease-in-out infinite next-ready}@keyframes next-ready{50%{box-shadow:0 2px 16px #cf5f068c}}.hint{left:50%;bottom:calc(var(--band-bottom,56px) + 12px);color:#fff;text-align:center;pointer-events:none;background:#191f28e0;border-radius:16px;max-width:calc(100% - 32px);padding:12px 16px;font-size:15px;font-weight:600;line-height:1.4;animation:.3s ease-out hint-in;position:absolute;transform:translate(-50%)}.hint[hidden]{display:none}.hint.under-toast{visibility:hidden}@keyframes hint-in{0%{opacity:0;transform:translate(-50%,8px)}}.away{text-align:center;background:#fff;border-radius:22px;width:min(320px,100% - 32px);padding:20px 18px 16px;animation:.35s cubic-bezier(.2,1.4,.4,1) pop-in;position:absolute;top:50%;left:50%;transform:translate(-50%,-40%);box-shadow:0 10px 30px #4a2e1d40}@keyframes pop-in{0%{opacity:0;transform:translate(-50%,-40%)scale(.85)}}.away h2{color:var(--color-text-subtle);margin:0 0 6px;font-size:17px;font-weight:600}.away .amount{color:var(--ink);font-variant-numeric:tabular-nums;margin:0 0 4px;font-size:28px;font-weight:700}.away .note{color:var(--color-text-hint);margin:0 0 14px;font-size:13px}.panel{height:calc(var(--panel-h) + var(--safe-bottom));z-index:2;background:#fff;border-radius:22px 22px 0 0;flex-direction:column;display:flex;position:relative;box-shadow:0 -6px 18px #4a2e1d1f}.panel-head{justify-content:space-between;align-items:center;gap:8px;padding:12px 16px 8px;display:flex}.segmented{background:var(--card);border-radius:14px;padding:4px;display:flex}.segmented button{min-width:76px;height:40px;color:var(--color-text-subtle);border-radius:10px;font-size:15px;font-weight:600}.segmented button.dot{position:relative}.segmented button.dot:after{content:"";background:var(--color-danger);border-radius:50%;width:7px;height:7px;position:absolute;top:7px;right:8px}.segmented button[aria-pressed=true]{color:var(--ink);background:#fff;font-weight:700;box-shadow:0 1px 4px #00000014}.mode{background:var(--brand-soft);min-width:64px;height:44px;color:var(--brand-strong);border-radius:12px;padding:0 12px;font-size:15px;font-weight:700}.list{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0;padding:2px 12px calc(var(--safe-bottom) + 16px);flex:1;overflow-y:auto}.card{background:var(--card);border-radius:18px;grid-template-columns:52px minmax(0,1fr) auto;grid-template-areas:"icon info buy""bar bar action";align-items:center;gap:10px 12px;margin-bottom:8px;padding:12px;display:grid}.card.simple{grid-template-areas:"icon info buy"}.card[hidden],.card .bar[hidden],.card .action[hidden],.card [hidden]{display:none}.card .icon{border-radius:14px;grid-area:icon;place-items:center;width:52px;height:52px;display:grid}.card .icon svg{width:40px;height:40px}.card .info{grid-area:info;min-width:0}.card .title{color:var(--ink);font-size:17px;font-weight:700}.card .title .lv{color:var(--color-text-subtle);margin-left:4px;font-size:15px;font-weight:600}.card .meta{color:var(--color-text-subtle);font-variant-numeric:tabular-nums;margin-top:2px;font-size:13px}.card .goal{color:var(--brand-strong);margin-top:1px;font-size:13px;font-weight:600}.card .buy{grid-area:buy}.card .bar{background:var(--line);border-radius:12px;grid-area:bar;height:44px;position:relative;overflow:hidden}.card .bar.call{box-shadow:inset 0 0 0 2px var(--brand);animation:1.4s ease-in-out infinite bar-call}@keyframes bar-call{50%{background:var(--brand-soft)}}.card .bar i{background:var(--brand);transform-origin:0;position:absolute;top:0;bottom:0;left:0;right:0;transform:scaleX(0)}.card .bar span{color:var(--ink);font-variant-numeric:tabular-nums;align-items:center;gap:4px;padding:0 12px;font-size:15px;font-weight:700;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.card .bar .time{justify-content:flex-end;font-weight:600}.card .bar b{font-weight:inherit}.card .bar svg{width:16px;height:16px;color:var(--ink);flex:none}.card .bar.hurry:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000 30%,#ffffff73 50%,#0000 70%);animation:2.4s ease-in-out infinite bar-sweep;position:absolute;top:0;bottom:0;left:0;right:0;transform:translate(-100%)}@keyframes bar-sweep{60%,to{transform:translate(100%)}}.card .bar.boosted i{animation:.3s ease-out bar-boost}.card .bar.boosted svg{animation:.3s ease-out bolt-zap}@keyframes bar-boost{0%{filter:brightness(1.35)}}@keyframes bolt-zap{40%{transform:scale(1.45)rotate(-14deg)}}.card{position:relative}.boost-pop{z-index:2;background:var(--brand-strong);color:#fff;font-variant-numeric:tabular-nums;pointer-events:none;border-radius:10px;padding:2px 8px;font-size:13px;font-weight:800;animation:.7s ease-out forwards boost-pop;position:absolute}@keyframes boost-pop{0%{opacity:0;transform:translateY(6px)scale(.6)}25%{opacity:1;transform:translateY(-8px)scale(1.1)}to{opacity:0;transform:translateY(-22px)scale(1)}}.card .action{grid-area:action}.btn{background:var(--brand-strong);color:#fff;white-space:nowrap;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-width:96px;min-height:44px;padding:4px 12px;font-size:15px;font-weight:700;line-height:1.2;display:flex}.btn small{opacity:.92;font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.btn.soft{background:var(--brand-soft);color:var(--brand-strong)}.btn.quiet{color:var(--color-text-default);box-shadow:inset 0 0 0 1px var(--line);background:#fff}.btn:disabled{background:var(--line);color:var(--color-text-hint);box-shadow:none}.auto{min-width:96px;min-height:44px;color:var(--color-success);place-items:center;font-size:13px;font-weight:700;display:grid}.section{color:var(--color-text-subtle);margin:14px 4px 8px;font-size:15px;font-weight:700}.empty{color:var(--color-text-hint);text-align:center;margin:24px 8px;font-size:15px}.scrim{z-index:20;background:var(--dim);justify-content:center;align-items:center;padding:24px 16px;animation:.2s ease-out fade-in;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}@keyframes fade-in{0%{opacity:0}}.dialog{background:#fff;border-radius:24px;width:min(360px,100%);max-height:100%;padding:24px 20px 20px;animation:.28s cubic-bezier(.2,1.3,.4,1) dialog-in;overflow-y:auto}@keyframes dialog-in{0%{opacity:0;transform:scale(.92)}}.dialog h2{color:var(--ink);margin:0 0 8px;font-size:20px;font-weight:700}.dialog p{color:var(--color-text-subtle);margin:0 0 16px;font-size:15px;line-height:1.5}.dialog .actions{gap:8px;margin-top:8px;display:flex}.dialog .actions .btn{flex:1;min-height:52px;font-size:16px}.stack{flex-direction:column;gap:8px;display:flex}.stack .btn{width:100%;min-height:52px;font-size:16px}.switch-row{min-height:52px;color:var(--ink);justify-content:space-between;align-items:center;font-size:17px;display:flex}.switch{background:var(--line);border-radius:16px;width:52px;height:32px;transition:background .2s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:26px;height:26px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.switch[aria-checked=true]{background:var(--brand-strong)}.switch[aria-checked=true]:after{transform:translate(20px)}.shop-row{background:var(--card);border-radius:16px;align-items:center;gap:12px;margin-top:12px;padding:14px 16px;display:flex}.shop-text{flex:1;min-width:0}.shop-text strong{color:var(--ink);font-size:17px;font-weight:700;display:block}.shop-text span{color:var(--color-text-subtle);margin-top:2px;font-size:15px;line-height:1.4;display:block}.shop-row .btn{min-width:88px}.shop-owned{color:var(--color-success);white-space:nowrap;align-items:center;gap:4px;font-size:15px;font-weight:700;display:flex}.shop-owned svg{width:18px;height:18px}.text-btn{width:100%;min-height:44px;color:var(--color-text-subtle);font-size:15px}.days{grid-template-columns:repeat(7,1fr);gap:4px;margin:4px 0 16px;display:grid}.days div{background:var(--card);color:var(--color-text-subtle);border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:8px 0;font-size:13px;font-weight:600;display:flex}.days div.done{background:var(--brand-soft);color:var(--brand-strong)}.days div.today{background:var(--brand-strong);color:#fff}.days svg{width:20px;height:20px}.gift-amount{text-align:center;color:var(--ink);margin:0 0 16px;font-size:22px;font-weight:700}.footnote{color:var(--color-text-hint);text-align:center;margin-top:16px;font-size:13px}.toast{left:50%;bottom:calc(var(--band-bottom,56px) + 12px);z-index:30;color:#fff;text-align:center;background:#191f28e6;border-radius:14px;max-width:calc(100% - 32px);padding:12px 16px;font-size:15px;font-weight:600;animation:.25s ease-out toast-in;position:absolute;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.ad-cover{z-index:40;color:#fff;background:#191f28;place-items:center;font-size:17px;font-weight:700;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}@media (min-width:640px){.list>div:not([hidden]){grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;column-gap:8px;display:grid}.list .section,.list .empty{grid-column:1/-1}}@media (min-width:1000px){.list>div:not([hidden]){grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:380px){.card{grid-template-columns:44px minmax(0,1fr) auto;column-gap:10px;padding:10px}.card .icon{width:44px;height:44px}.card .icon svg{width:34px;height:34px}.btn{min-width:88px;padding:4px 10px}.rush{padding-right:10px}.rush .sub{font-size:12px}}
