:root{--outline:#3b2a40;--cream:#fff8e8;--yellow:#ffcf3f;--orange:#ff9d3c;--pink:#ff6f91;--green:#6fd05a;--blue:#5fb8ff;--font:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;font-family:var(--font);color:var(--outline);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:none;background:#1d1830;margin:0;overflow:hidden}#stage{background:radial-gradient(circle at 20% 20%,#ffcf3f2e,#0000 40%),radial-gradient(circle at 80% 70%,#5fb8ff33,#0000 45%),repeating-linear-gradient(45deg,#241d3a 0 22px,#211a35 22px 44px);place-items:center;display:grid;position:fixed;inset:0}#frame{border-radius:0;position:relative;overflow:hidden;box-shadow:0 20px 60px #00000073;container-type:size}@media (aspect-ratio>=10/16){#frame{border-radius:2.4cqw}}#game{touch-action:none;cursor:crosshair;width:100%;height:100%;display:block;position:absolute;inset:0}#ui{pointer-events:none;font-size:3.6cqw;position:absolute;inset:0}#ui button,#ui .modal,#ui .card{pointer-events:auto}button{color:inherit;cursor:pointer;font-family:inherit}button:focus-visible{outline-offset:.4cqw;outline:.8cqw solid #fff}#loading{background:linear-gradient(#7fd0ff,#e9f9ff);place-content:center;justify-items:center;gap:3cqw;font-size:4.4cqw;font-weight:800;display:grid;position:absolute;inset:0}.spinner{border:2cqw solid #3b2a4026;border-top-color:var(--outline);border-radius:50%;width:14cqw;height:14cqw;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.boot-error{background:var(--cream);border:.8cqw solid var(--outline);text-align:center;border-radius:4cqw;padding:6cqw;font-size:4cqw;position:absolute;inset:20% 8%}.btn{border:.75cqw solid var(--outline);letter-spacing:.05em;min-height:12cqw;box-shadow:0 1.2cqw 0 var(--outline);background:#fff;border-radius:6cqw;justify-content:center;align-items:center;gap:1.5cqw;padding:0 6cqw;font-size:4.6cqw;font-weight:900;transition:transform 80ms,box-shadow 80ms;display:inline-flex}.btn:active:not(:disabled){box-shadow:0 .2cqw 0 var(--outline);transform:translateY(1cqw)}.btn.primary{background:linear-gradient(#ffe066,#ffbe2e)}.btn.big{min-height:16cqw;padding:0 10cqw;font-size:6.4cqw}.btn.small{min-height:10cqw;box-shadow:0 .9cqw 0 var(--outline);padding:0 3.6cqw;font-size:3.6cqw}.btn:disabled{opacity:.55;cursor:default}.btn small{opacity:.7;font-size:.7em}.btn kbd{opacity:.6;border:.4cqw solid;border-radius:1cqw;padding:0 1cqw;font-family:inherit;font-size:.65em}.icon-btn{border:.75cqw solid var(--outline);width:12cqw;height:12cqw;box-shadow:0 1cqw 0 var(--outline);background:#fff;border-radius:50%;place-items:center;padding:0;font-size:5cqw;font-weight:900;display:grid}.icon-btn:active{box-shadow:0 .2cqw 0 var(--outline);transform:translateY(.8cqw)}.toggles{justify-content:center;gap:2.4cqw;display:flex}.toggle{border:.6cqw solid var(--outline);opacity:.6;background:#fff9;border-radius:5cqw;padding:1.6cqw 3.6cqw;font-size:3.6cqw;font-weight:800;text-decoration:line-through}.toggle.on{opacity:1;background:#fff;text-decoration:none}.honey,.star-badge{pointer-events:auto;border:.6cqw solid var(--outline);white-space:nowrap;background:#ffffffe6;border-radius:5cqw;padding:1cqw 3cqw;font-size:4cqw;font-weight:900}.star{color:#3b2a4038}.star.on{color:var(--yellow);-webkit-text-stroke:.35cqw var(--outline)}.title-screen{background:linear-gradient(#1d183033,#1d18300d 70%);flex-direction:column;align-items:center;display:flex;position:absolute;inset:0}.title-top{justify-content:space-between;align-self:stretch;padding:4cqw 4cqw 0;display:flex}.logo{text-align:center;margin-top:8cqw;animation:3s ease-in-out infinite bob}.logo h1{letter-spacing:.04em;color:#fff;-webkit-text-stroke:1.6cqw var(--outline);paint-order:stroke fill;text-shadow:0 1.6cqw 0 var(--outline);margin:0;font-size:19cqw;font-weight:900;line-height:1}.logo h1 span:first-child{color:var(--yellow)}.logo h1 span{display:inline-block}.logo h1 span:last-child{color:#ffb3c4;transform:rotate(4deg)}.logo p{border:.6cqw solid var(--outline);background:#fff;border-radius:5cqw;margin:3cqw auto 0;padding:1.2cqw 4cqw;font-size:4.4cqw;font-weight:800;display:inline-block;transform:rotate(-2deg)}@keyframes bob{50%{transform:translateY(-1.5cqw)}}.menu{flex-direction:column;align-items:stretch;gap:3.6cqw;width:72cqw;margin-top:9cqw;display:flex}.map-screen,.shop-screen{background:linear-gradient(#ffffff1a,#1d183059);flex-direction:column;gap:3.6cqw;padding:4cqw;display:flex;position:absolute;inset:0}.bar{align-items:center;gap:3cqw;display:flex}.bar h2{color:#fff;-webkit-text-stroke:1cqw var(--outline);paint-order:stroke fill;flex:1;margin:0;font-size:6.4cqw;font-weight:900}.world-tabs{justify-content:center;gap:2.4cqw;display:flex}.world-tab{pointer-events:auto;border:.7cqw solid var(--outline);width:13cqw;height:13cqw;box-shadow:0 1cqw 0 var(--outline);background:#fff;border-radius:4cqw;font-size:5.4cqw;font-weight:900}.world-tab.on{background:var(--accent);transform:translateY(-.8cqw)scale(1.08)}.world-tab.locked{opacity:.75;font-size:4.4cqw}.world-card{background:var(--cream);border:.75cqw solid var(--outline);box-shadow:0 1.2cqw 0 var(--outline);border-radius:5cqw;align-items:center;gap:3cqw;padding:3cqw 4cqw;display:flex}.world-card h3{margin:0;font-size:5.4cqw}.world-card p{opacity:.85;margin:1cqw 0 0;font-size:3.6cqw}.world-card .world-progress{opacity:1;font-weight:800}.locked-note{text-align:center;background:#ffffffd9;border-radius:4cqw;margin:0;padding:2cqw;font-weight:800}.level-grid{grid-template-columns:repeat(3,1fr);gap:3.6cqw;margin-top:2cqw;display:grid}.level-tile{pointer-events:auto;aspect-ratio:1/1.08;border:.75cqw solid var(--outline);box-shadow:0 1.3cqw 0 var(--outline);background:#fff;border-radius:5cqw;flex-direction:column;justify-content:center;align-items:center;gap:1cqw;padding:1cqw;display:flex}.level-tile b{font-size:10cqw;line-height:1}.level-tile .name{font-size:3.2cqw;font-weight:800}.level-tile .stars{letter-spacing:-.1em;font-size:5cqw}.level-tile.fresh{background:linear-gradient(#ffe98a,#ffc93f);animation:1.4s ease-in-out infinite pulse}.level-tile.locked{background:#ffffff8c;box-shadow:0 1.3cqw #3b2a4080}.level-tile:active:not(:disabled){box-shadow:0 .3cqw 0 var(--outline);transform:translateY(1cqw)}@keyframes pulse{50%{transform:scale(1.04)}}.tabs{justify-content:center;gap:2cqw;display:flex}.tabs button{pointer-events:auto;border:.7cqw solid var(--outline);background:#fff9;border-radius:5cqw;padding:1.6cqw 7cqw;font-size:4.4cqw;font-weight:900}.tabs button.on{background:var(--yellow)}.shop-list{pointer-events:auto;touch-action:pan-y;flex-direction:column;gap:2.8cqw;padding-bottom:2cqw;display:flex;overflow-y:auto}.shop-card{background:var(--cream);border:.7cqw solid var(--outline);box-shadow:0 1cqw 0 var(--outline);border-radius:4.5cqw;align-items:center;gap:3cqw;padding:2.4cqw 3cqw;display:flex}.shop-card .portrait{background:#fff;border:.5cqw solid #3b2a4033;border-radius:50%;flex:none;place-items:center;width:18cqw;height:18cqw;display:grid}.shop-card .portrait canvas{width:16cqw!important;height:16cqw!important}.shop-card.locked .portrait canvas{filter:grayscale(.85)brightness(.9)}.shop-card .portrait.icon{font-size:9cqw}.shop-card .info{flex:1;min-width:0}.shop-card h4{margin:0;font-size:4.6cqw}.shop-card h4 small{opacity:.7;font-size:.7em}.shop-card p{opacity:.85;margin:.8cqw 0 0;font-size:3.3cqw}.shop-card .hint{color:#b0407a;font-weight:800}.shop-foot{text-align:center;color:#fff;text-shadow:0 .3cqw 0 var(--outline);margin:auto 0 0;font-size:3.4cqw;font-weight:800}.hud-top{align-items:flex-start;gap:2.4cqw;display:flex;position:absolute;top:3.4cqw;left:3.4cqw;right:3.4cqw}.left-col{flex-direction:column;gap:1.4cqw;max-width:32cqw;display:flex}.hearts{flex-direction:column;gap:.8cqw;display:flex}.heart-row{border:.5cqw solid var(--outline);background:#ffffffd9;border-radius:3cqw;align-items:center;gap:.4cqw;width:max-content;padding:.3cqw 1.8cqw;font-size:2.8cqw;font-weight:900;display:flex}.heart-row span{margin-right:.6cqw}.heart-row i{color:#3b2a4033;font-size:3.6cqw;font-style:normal}.heart-row i.on{color:#ff4f6d}.heart-row b{margin-left:.6cqw;font-size:2.8cqw}.level-chip{border:.65cqw solid var(--outline);background:#ffffffeb;border-radius:4cqw;flex-direction:column;max-width:30cqw;padding:1cqw 3cqw;font-size:4.6cqw;font-weight:900;line-height:1.15;display:flex}.level-chip span{opacity:.75;white-space:nowrap;text-overflow:ellipsis;font-size:3cqw;font-weight:800;overflow:hidden}.wave-chip{background:var(--yellow);border:.65cqw solid var(--outline);border-radius:4cqw;padding:.6cqw 3cqw;font-weight:900;position:absolute;top:24cqw;left:50%;transform:translate(-50%)}.timer{border:.75cqw solid var(--outline);width:21cqw;height:21cqw;box-shadow:0 1.1cqw 0 var(--outline);background:#fff;border-radius:50%;place-items:center;margin:0 auto;display:grid;position:relative;transform:translate(-3cqw)}.timer svg{position:absolute;inset:.6cqw;transform:rotate(-90deg)}.timer circle{fill:none;stroke-width:9px}.ring-bg{stroke:#f1e9da}.ring{stroke:var(--green);stroke-dasharray:264;stroke-linecap:round;transition:stroke .2s}.timer b{margin-top:-1.4cqw;font-size:9cqw;line-height:1;position:relative}.timer small{opacity:.6;font-size:2.6cqw;font-weight:800;position:absolute;bottom:3.2cqw}.timer.urgent{animation:.5s ease-in-out infinite throb}.timer.urgent .ring{stroke:var(--pink)}.timer.urgent b{color:#e2365b}@keyframes throb{50%{transform:translate(-3cqw)scale(1.1)}}.hud-bottom{flex-direction:column;align-items:stretch;gap:2.4cqw;display:flex;position:absolute;bottom:3.6cqw;left:3.4cqw;right:3.4cqw}.tip{border:.65cqw solid var(--outline);text-align:center;background:#fff;border-radius:4cqw;width:max-content;max-width:88cqw;padding:2cqw 4cqw;font-size:3.9cqw;font-weight:800;animation:.4s cubic-bezier(.3,1.6,.6,1) both tipIn;position:absolute;top:29cqw;left:50%;translate:-50%;box-shadow:0 1cqw #3b2a4059}@keyframes tipIn{0%{opacity:0;transform:scale(.6)}}.spray-info{border:.6cqw solid var(--outline);background:#d8ffe8;border-radius:4cqw;align-self:center;padding:1.2cqw 3.6cqw;font-weight:800}.go-btn{border:.75cqw solid var(--outline);box-shadow:0 1.2cqw 0 var(--outline);background:linear-gradient(#8ff07a,#4fc33d);border-radius:6cqw;align-self:center;padding:2.4cqw 7cqw;font-size:5cqw;font-weight:900}.ink-row{align-items:center;gap:2.4cqw;display:flex}.ink-bar{border:.7cqw solid var(--outline);background:#ffffffd9;border-radius:4cqw;flex:1;height:8cqw;position:relative;overflow:hidden}.ink-fill{background:linear-gradient(#7d73ff,#4b3fd8);transition:width 50ms linear;position:absolute;inset:0 auto 0 0}.ink-fill.over-par{background:linear-gradient(#a9a2ff,#786ee8)}.ink-par{background:var(--yellow);width:.7cqw;box-shadow:0 0 0 .3cqw var(--outline);margin-left:-.35cqw;position:absolute;top:0;bottom:0}.ink-par:after{content:"★";color:var(--yellow);-webkit-text-stroke:.3cqw var(--outline);font-size:3.4cqw;position:absolute;top:-.6cqw;left:50%;transform:translate(-50%)}.ink-pen{font-size:4cqw;position:absolute;top:50%;left:1.8cqw;transform:translateY(-50%)}.ink-text{color:var(--outline);text-shadow:0 0 1cqw #fff;font-size:3.6cqw;font-weight:900;position:absolute;top:50%;right:2.4cqw;transform:translateY(-50%)}.hint-btn.used{background:var(--yellow)}.tray{justify-content:center;gap:2cqw;display:flex}.booster{border:.65cqw solid var(--outline);width:15.2cqw;height:15.2cqw;box-shadow:0 1cqw 0 var(--outline);background:#ffffffe6;border-radius:4cqw;flex-direction:column;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.booster i{font-size:6.4cqw;font-style:normal;line-height:1}.booster span{margin-top:.4cqw;font-size:2.8cqw;font-weight:900}.booster.empty{opacity:.75}.booster.empty i{filter:grayscale(.7)}.booster.on{box-shadow:0 2.2cqw 0 var(--outline), 0 0 0 1cqw #ffd23f73;background:linear-gradient(#fff3a6,#ffd23f);transform:translateY(-1.2cqw)}.booster:disabled{opacity:.4}.toast{color:#fff;white-space:nowrap;text-overflow:ellipsis;background:#3b2a40eb;border-radius:4cqw;max-width:92cqw;padding:2cqw 4.4cqw;font-weight:800;animation:1.9s both toast;position:absolute;top:30cqw;left:50%;overflow:hidden;transform:translate(-50%)}@keyframes toast{0%{opacity:0;transform:translate(-50%,2cqw)}12%,80%{opacity:1;transform:translate(-50%)}to{opacity:0}}.banner{flex-direction:column;align-items:center;gap:1.6cqw;display:none;position:absolute;top:38%;left:0;right:0}.banner.show{animation:.45s cubic-bezier(.3,1.6,.6,1) both tipIn;display:flex}.banner b{color:var(--yellow);-webkit-text-stroke:1.2cqw var(--outline);paint-order:stroke fill;font-size:10cqw}.banner span{border:.6cqw solid var(--outline);background:#fff;border-radius:4cqw;padding:1cqw 4cqw;font-weight:800}.modal{background:#1d183073;place-items:center;animation:.25s both fade;display:grid;position:absolute;inset:0}.modal[hidden]{display:none}@keyframes fade{0%{opacity:0}}.card{background:var(--cream);border:.9cqw solid var(--outline);width:84cqw;box-shadow:0 1.8cqw 0 var(--outline);text-align:center;border-radius:6cqw;flex-direction:column;align-items:stretch;gap:3cqw;padding:6cqw 6cqw 5cqw;animation:.45s cubic-bezier(.3,1.6,.6,1) both pop;display:flex}@keyframes pop{0%{opacity:0;transform:scale(.5)rotate(-4deg)}}.card h2{margin:0;font-size:7.6cqw;font-weight:900}.card .sub{opacity:.85;margin:0;font-size:3.9cqw;line-height:1.5}.card .row{gap:2.4cqw;display:flex}.card .row .btn{white-space:nowrap;letter-spacing:0;flex:1;padding:0 2cqw;font-size:4.2cqw}.ribbon{background:var(--pink);color:#fff;border:.75cqw solid var(--outline);white-space:nowrap;border-radius:3cqw;align-self:center;margin-top:-11cqw;padding:1.4cqw 5cqw;font-size:4.2cqw;font-weight:900}.big-stars{justify-content:center;gap:1cqw;font-size:17cqw;line-height:1;display:flex}.big-stars .star:nth-child(2){font-size:1.15em;transform:translateY(-3cqw)}.big-stars .star.pop{animation:.5s cubic-bezier(.3,1.8,.5,1) both starPop}.big-stars .star:nth-child(2).pop{animation-name:starPopMid}@keyframes starPop{0%{opacity:0;transform:scale(2.4)rotate(-40deg)}}@keyframes starPopMid{0%{opacity:0;transform:translateY(-3cqw)scale(2.4)rotate(-40deg)}to{transform:translateY(-3cqw)}}.checks{opacity:.9;flex-direction:column;gap:1cqw;margin:0;padding:0;font-size:4cqw;font-weight:800;list-style:none;display:flex}.checks li{color:#3b2a4073}.checks li.ok{color:var(--outline)}.reward{margin:0;font-size:6cqw;font-weight:900}.reward small{opacity:.65;font-size:.55em}.suggest{background:#fff;border:.5cqw dashed #3b2a4066;border-radius:3cqw;margin:0;padding:2cqw;font-size:3.5cqw}.result-pet{place-items:center;margin-top:-2cqw;display:grid}.result.lose .result-pet canvas{filter:saturate(.7)}.unlock{border:.6cqw solid var(--outline);text-align:left;background:#fff3c4;border-radius:4cqw;align-items:center;gap:3cqw;padding:2cqw 3cqw;animation:1.4s ease-in-out infinite pulse;display:flex}.unlock p{margin:0;font-size:3.8cqw}.pause-card .toggles{margin-top:1cqw}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}
