:root{--ink:#5a4a6a;--pink:#ff7fa8;--pink-soft:#ffe3ec;--green:#5ccf9a;--card:#fffffff2;--shadow:0 4px 14px #5a4a6a38;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}html,body{overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;background:#e3f7fb;height:100%;margin:0;overflow:hidden}#game{position:fixed;inset:0}#game canvas{display:block}#ui{pointer-events:none;position:fixed;inset:0}#ui button,#ui .panel{pointer-events:auto}#loading{background:#e3f7fb;place-items:center;font-size:22px;font-weight:700;transition:opacity .3s;display:grid;position:fixed;inset:0}#loading.done{opacity:0;pointer-events:none}button{font:inherit;color:inherit;cursor:pointer;border:0}.pill{background:var(--card);box-shadow:var(--shadow);border-radius:999px;padding:10px 16px;font-weight:700}.top-bar{align-items:center;gap:8px;display:flex;position:absolute;top:14px;left:14px;right:14px}.top-bar .pill{white-space:nowrap;flex:none}.top-bar button{font-size:15px}.word{margin-left:6px}.coins{align-items:center;gap:8px;font-size:20px;display:flex}.coin{vertical-align:-.12em;background:radial-gradient(circle at 35% 30%,#fff3b8,#ffd166 55%,#f2b53c);border-radius:50%;width:.95em;height:.95em;display:inline-block;box-shadow:inset 0 0 0 .09em #eaa92f}.coins.bump{animation:.5s bump}.quest{border-radius:18px;min-width:190px;font-size:15px;position:absolute;top:70px;left:14px}.quest[hidden],.badge[hidden]{display:none}.quest .bar{background:var(--pink-soft);border-radius:9px;height:9px;margin-top:7px;overflow:hidden}.quest .bar i{background:linear-gradient(90deg,#8fe3b0,#5ccf9a);height:100%;transition:width .25s;display:block}.inbox-button{font-size:16px;position:relative}.badge{box-sizing:border-box;background:var(--pink);color:#fff;text-align:center;border-radius:11px;min-width:22px;height:22px;padding:0 4px;font-size:13px;line-height:22px;position:absolute;top:-6px;right:-5px}.controls{flex-wrap:wrap;justify-content:center;gap:8px;width:max-content;max-width:calc(100vw - 20px);display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.controls button{padding:11px 16px;font-size:14px}.controls i{font-style:normal}.menu-button{display:none}.pill:hover{background:#fff5f8}.top-bar .place{text-overflow:ellipsis;flex:0 auto;min-width:0;margin-left:auto;font-size:16px;overflow:hidden}.place[hidden],.indoors .turn{display:none}.hint{white-space:nowrap;font-size:14px;transition:opacity .6s;position:absolute;bottom:74px;left:50%;transform:translate(-50%)}.hint.gone{opacity:0}.toast{box-sizing:border-box;white-space:nowrap;align-items:center;gap:10px;max-width:calc(100vw - 28px);font-size:15px;animation:.25s drop;display:flex;position:absolute;top:70px;left:50%;transform:translate(-50%)}.on-mission .toast{top:132px}.toast img{width:34px;height:34px}.panel{background:var(--card);border-radius:24px;box-shadow:0 10px 30px #5a4a6a4d}.call{box-sizing:border-box;text-align:center;width:min(390px,100vw - 28px);padding:22px;animation:.3s cubic-bezier(.2,1.6,.4,1) pop;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.call.ringing{animation:.3s cubic-bezier(.2,1.6,.4,1) pop,1.6s ease-in-out .3s infinite wobble}.call .face{background:var(--pink-soft);border-radius:50%;width:118px;height:118px}.call h2{margin:8px 0 4px;font-size:23px}.call p{margin:4px 0 0;font-size:18px;line-height:1.35}.call .reward{margin-top:10px;font-size:20px;font-weight:800}.actions{justify-content:center;gap:10px;margin-top:16px;display:flex}.yes,.no{border-radius:999px;padding:12px 20px;font-size:17px;font-weight:800}.yes{background:var(--green);color:#fff}.yes:disabled{cursor:default;background:#cfe6da}.no{background:var(--pink-soft)}.party{box-sizing:border-box;text-align:center;width:min(360px,100vw - 28px);padding:22px;animation:.3s cubic-bezier(.2,1.6,.4,1) pop;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.party h2{margin:8px 0 4px;font-size:24px}.party p{margin:4px 0;font-size:17px}.party .won{font-size:28px;font-weight:800}.party .face{background:var(--pink-soft);border-radius:50%;width:96px;height:96px}.inbox{box-sizing:border-box;flex-direction:column;width:min(460px,100vw - 28px);max-height:calc(100vh - 40px);padding:18px;animation:.25s pop;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.inbox header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.inbox h2{margin:0;font-size:22px}.inbox .close{background:var(--pink-soft);border-radius:50%;width:36px;height:36px;font-size:18px;font-weight:800}.inbox .list{touch-action:pan-y;overflow-y:auto}.inbox .empty{text-align:center;margin:20px 0;font-size:17px}.slots{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.slot{aspect-ratio:1;box-shadow:inset 0 0 0 2px var(--pink-soft);text-align:center;background:#fff5f8;border-radius:14px;place-items:center;font-size:13px;display:grid;position:relative}.slot b{position:absolute;bottom:4px;right:7px}.shop{width:min(620px,100vw - 28px);height:min(640px,100vh - 40px);animation:none}.shop header{justify-content:flex-start;gap:10px}.shop header .close{margin-left:auto}.keeper{background:var(--pink-soft);border-radius:50%;width:46px;height:46px}.purse{margin-left:6px;font-size:18px;font-weight:800}.tabs{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.tab{background:#fff5f8;border-radius:999px;padding:8px 13px;font-size:14px;font-weight:700}.tab.on{background:var(--pink);color:#fff}.goods{touch-action:pan-y;flex:1;overflow-y:auto}.ware{background:#fff5f8;border-radius:14px;grid-template-columns:42px 1fr auto auto;align-items:center;gap:10px;margin-bottom:6px;padding:7px 10px;display:grid}.ware .icon{text-align:center;font-size:28px}.ware .name{font-size:16px;font-weight:600}.ware small{opacity:.8;font-size:13px;font-weight:500;display:block}.ware .price{white-space:nowrap;font-weight:800}.ware .yes,.ware .no{padding:8px 14px;font-size:14px}.friends .ware{grid-template-columns:46px 1fr auto}.owned{opacity:1!important;font-size:15px!important}.news{background:#f4fbf7;border-radius:14px;margin-top:12px;padding:10px 12px}.news p{margin:5px 0 0;font-size:14px}.slot span{font-size:26px;display:block}.note{text-align:center;margin:0 0 10px;font-size:15px}.message{background:#fff5f8;border-radius:16px;grid-template-columns:64px 1fr;align-items:center;gap:4px 12px;margin-bottom:8px;padding:10px;display:grid}.message img{background:var(--pink-soft);border-radius:50%;grid-row:span 2;width:64px;height:64px}.message p{margin:0;font-size:15px;line-height:1.3}.message .row{justify-content:space-between;align-items:center;gap:8px;font-weight:800;display:flex}.message .yes,.message .no{padding:8px 13px;font-size:14px}.message .row div{gap:6px;display:flex}@keyframes pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.75)}}@keyframes drop{0%{opacity:0;transform:translate(-50%,-14px)}}@keyframes bump{40%{transform:scale(1.25)}}@keyframes wobble{0%,to{transform:translate(-50%,-50%)rotate(0)}20%{transform:translate(-50%,-50%)rotate(-2.2deg)}40%{transform:translate(-50%,-50%)rotate(2.2deg)}60%{transform:translate(-50%,-50%)rotate(-1.4deg)}80%{transform:translate(-50%,-50%)rotate(1.4deg)}}@media (width<=720px),(pointer:coarse) and (height<=500px){.word{display:none}.top-bar{gap:6px;top:10px;left:10px;right:10px}.top-bar .pill{padding:8px 11px}.top-bar button{font-size:18px;line-height:1}.coins{font-size:17px}.top-bar .place{max-width:calc(100vw - 90px);margin:0;font-size:14px;position:fixed;bottom:124px;left:10px}.quest{min-width:160px;padding:7px 12px;font-size:14px;top:58px;left:10px}.toast{white-space:normal;width:max-content;top:58px}.on-mission .toast{top:116px}}@media (width<=900px){.hint{display:none}}@media (pointer:coarse) and (width<=820px),(pointer:coarse) and (height<=500px){.menu-button{border-radius:50%;width:52px;height:52px;padding:0;font-size:22px;line-height:1;display:block;position:absolute;bottom:16px;right:14px}.controls{flex-flow:column;align-items:stretch;gap:6px;width:auto;max-height:calc(100vh - 100px);display:none;bottom:78px;left:auto;right:14px;overflow-y:auto;transform:none}.controls.open{display:flex}.controls button{text-align:left;padding:12px 18px;font-size:16px}.top-bar .place{bottom:22px}.controls i{display:none}}@media (pointer:coarse) and (height<=500px){.controls.open{grid-template-columns:1fr 1fr;max-height:none;display:grid;bottom:16px;right:76px}}
