@font-face{font-family:"Baloo 2";src:url(../fonts/baloo2-latin.woff2)format("woff2");font-weight:400 800;font-style:normal;font-display:swap;unicode-range:U+??,U+2000-206F,U+2191,U+2193,U+2212}:root{--ink:#2d2a32;--blue:#3fa1ff;--blue-d:#2477d6;--pink:#ff5fe9;--pink-d:#c93bc0;--gold:#f5b82e;--cream:#f4efe6;--font:"Baloo 2", -apple-system, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;font-family:var(--font);color:var(--ink);-webkit-user-select:none;user-select:none;touch-action:manipulation;background:#1b1a20;margin:0;overflow:hidden}body{background:radial-gradient(120% 80% at 50% 0,#34303d 0%,#141318 70%);justify-content:center;align-items:center;display:flex}#stage{background:#fff;width:min(100vw,50dvh);height:100dvh;position:relative;overflow:hidden;box-shadow:0 30px 80px #0000008c}@media (aspect-ratio>=3/5){#stage{border-radius:26px;width:calc(min(100dvh - 24px,940px)/2);height:min(100dvh - 24px,940px)}}#gl{width:100%;height:100%;display:block;position:absolute;inset:0}#ui{pointer-events:auto;touch-action:manipulation;position:absolute;inset:0}#ui *{pointer-events:none}#ui button,#ui .cell,#ui .choice,#ui .retry .ring,#ui .retry .nothanks,#ui [data-tap],#ui .dev,#ui .dev *{pointer-events:auto}#boot{background:var(--cream);z-index:50;flex-direction:column;justify-content:center;align-items:center;transition:opacity .6s;display:flex;position:absolute;inset:0}#boot.hide{opacity:0;pointer-events:none}.boot-logo{letter-spacing:4px;color:#f2a516;text-shadow:0 4px #c97d0a,0 10px 20px #c8780040;font-size:44px;font-weight:900}.boot-sub{letter-spacing:8px;color:#b9a98c;margin-top:4px;font-size:13px;font-weight:800}.boot-bar{background:#e6dccb;border-radius:8px;width:160px;height:8px;margin-top:28px;overflow:hidden}.boot-start{opacity:0;pointer-events:none;color:#fff;cursor:pointer;font-size:18px;font-weight:800;font-family:var(--font);background:linear-gradient(#ffd34d,#f59b1a);border:0;border-radius:30px;margin-top:26px;padding:12px 34px;transition:all .4s;animation:1.4s ease-in-out infinite pulse;transform:translateY(8px);box-shadow:0 5px #b46a06,0 12px 24px #c878004d}#boot.ready .boot-start{opacity:1;pointer-events:auto;transform:none}#boot.ready .boot-bar{display:none}.boot-tip{color:#b9a98c;font-size:12px;font-weight:600;position:absolute;bottom:7%}.audio-btn{cursor:pointer;pointer-events:auto;background:#ffffffe0;border:0;border-radius:50%;width:30px;height:30px;margin-left:8px;margin-right:auto;font-size:15px;box-shadow:0 3px 10px #0000001f}.boot-bar i{background:linear-gradient(90deg,#ffcf4a,#f59b1a);border-radius:8px;width:0;height:100%;transition:width .2s;display:block}.hud{height:64px;padding:max(10px, env(safe-area-inset-top)) 14px 0;pointer-events:none;z-index:5;justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;left:0;right:0}.gems{background:#ffffffe0;border-radius:20px;align-items:center;gap:6px;padding:4px 6px;font-size:16px;font-weight:800;transition:transform .2s;display:flex;box-shadow:0 3px 10px #0000001f}.gems .gem{width:22px;height:22px}.gems .plus{color:#fff;background:#45c45a;border-radius:6px;place-items:center;width:20px;height:20px;font-size:16px;line-height:1;display:grid}.gems.bump{transform:scale(1.18)}.age-pill{opacity:0;background:#ffffffe0;border-radius:20px;padding:4px 12px;font-size:14px;font-weight:800;transition:opacity .3s;box-shadow:0 3px 10px #0000001f}.age-pill.show{opacity:1}.year-title{text-align:center;color:#222;letter-spacing:1px;pointer-events:none;opacity:0;font-size:40px;font-weight:800;transition:all .45s cubic-bezier(.2,1.4,.4,1);position:absolute;top:9%;left:0;right:0;transform:translateY(-10px)scale(.9)}.year-title.show{opacity:1;transform:none}.btn-play{color:#fff;letter-spacing:1px;cursor:pointer;font-size:24px;font-weight:800;font-family:var(--font);background:linear-gradient(#5db8ff,#2c86ea);border:0;border-radius:40px;padding:10px 46px;transition:transform .4s cubic-bezier(.2,1.5,.4,1);position:absolute;bottom:17%;left:50%;transform:translate(-50%)scale(0);box-shadow:0 5px #1d5fb0,0 12px 24px #1e64c859,inset 0 2px #fff6}.btn-play.show{animation:1.4s ease-in-out .5s infinite pulse;transform:translate(-50%)scale(1)}.btn-play:active{transform:translate(-50%)translateY(3px)scale(.98);box-shadow:0 2px #1d5fb0}@keyframes pulse{0%,to{scale:1}50%{scale:1.06}}.choices{pointer-events:none;justify-content:space-between;gap:10px;padding:0 5%;display:flex;position:absolute;bottom:21%;left:0;right:0}.choice{pointer-events:auto;color:#fff;min-height:54px;font-family:var(--font);cursor:pointer;opacity:0;text-shadow:0 1px 1px #0003;border:0;border-radius:12px;flex:0 44%;padding:8px 10px;font-size:17px;font-weight:700;line-height:1.15;transition:transform .4s cubic-bezier(.2,1.5,.4,1),opacity .25s;position:relative;transform:translateY(30px)scale(.8)}.choice.a{background:linear-gradient(#64b4ff,#3a8ef2);box-shadow:0 5px #2465b8,0 10px 20px #1e5ac84d,inset 0 2px #ffffff59}.choice.b{background:linear-gradient(#ff7cf0,#e443d6);box-shadow:0 5px #a42c9b,0 10px 20px #c828b44d,inset 0 2px #ffffff59}.choice.a.alt{background:linear-gradient(#64b4ff,#3a8ef2)}.choice.show{opacity:1;transform:none}.choice:active{transform:translateY(3px)}.choice.picked{animation:.35s ease-out forwards picked}.choice.gone{opacity:0;transform:scale(.6)}.choice .cost{color:#fff;text-shadow:0 1px 1px #00000059;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 1l9.5 5.5v11L12 23l-9.5-5.5v-11z' fill='%233fc9c0' stroke='%23218f88' stroke-width='1.6'/></svg>") 50%/contain no-repeat;place-items:center;width:28px;height:28px;font-size:13px;font-weight:800;display:grid;position:absolute;top:-12px;left:-8px}@keyframes picked{0%{transform:scale(1)}40%{transform:scale(1.12)}to{opacity:0;transform:scale(0)}}.bubble{color:#1f1d22;text-align:center;transform-origin:50% 100%;pointer-events:none;white-space:pre-line;background:#fff;border-radius:16px;max-width:62%;padding:9px 13px;font-size:15px;font-weight:700;line-height:1.3;transition:transform .3s cubic-bezier(.2,1.5,.4,1);position:absolute;top:0;left:0;transform:translate(-50%,-100%)scale(0);box-shadow:0 6px 18px #0000002e}.bubble.show{transform:translate(-50%,-100%)scale(1)}.bubble:after{content:"";border:9px solid #0000;border-top-color:#fff;border-bottom:0;margin-left:-9px;position:absolute;bottom:-9px;left:50%}.bubble.think{border-radius:50%;min-width:96px;padding:18px}.bubble.think:after{background:#fff;border:0;border-radius:50%;width:12px;height:12px;margin-left:-6px;bottom:-18px;box-shadow:-10px 12px 0 -3px #fff}.bubble.left:after{left:22%}.bubble.right:after{left:78%}.bubble.side{transform-origin:0;transform:translateY(-50%)scale(0)}.bubble.side.show{transform:translateY(-50%)scale(1)}.caption{text-align:center;color:#fff;text-shadow:0 2px 6px #0000008c,0 0 2px #00000080;opacity:0;pointer-events:none;padding:0 20px;font-size:22px;font-weight:800;transition:opacity .4s;position:absolute;top:46%;left:0;right:0}.caption.show{opacity:1}.caption.dark{color:#222;text-shadow:none}.big-title{text-align:center;color:#2c2830;pointer-events:none;opacity:0;padding:0 16px;font-size:30px;font-weight:900;transition:opacity .35s;position:absolute;top:14%;left:0;right:0}.big-title.show{opacity:1}.retry{-webkit-backdrop-filter:blur(3px);opacity:0;z-index:20;background:#140e0a73;flex-direction:column;justify-content:center;align-items:center;transition:opacity .35s;display:flex;position:absolute;inset:0}.retry.show{opacity:1}.retry .ring{cursor:pointer;background:radial-gradient(circle at 50% 40%,#ffd86b,#f0a51a 70%);border-radius:50%;place-items:center;width:150px;height:150px;transition:transform .5s cubic-bezier(.2,1.6,.4,1);display:grid;position:relative;transform:scale(0);box-shadow:0 10px 30px #00000059,inset 0 -6px #0000001f,inset 0 4px #fff6}.retry.show .ring{transform:scale(1)}.retry .ring svg{width:170px;height:170px;position:absolute;inset:-10px;transform:rotate(-90deg)}.retry .ring .lbl{color:#fff;text-shadow:0 2px #0003;text-align:center;font-size:26px;font-weight:800;line-height:1.1}.retry .ring .lbl small{opacity:.9;margin-top:6px;font-size:13px;display:block}.retry .nothanks{color:#ffffffe6;cursor:pointer;text-underline-offset:3px;margin-top:26px;font-size:15px;font-weight:700;text-decoration:underline}.retry .fail-text{color:#fff;text-shadow:0 2px 8px #0006;text-align:center;margin-bottom:22px;padding:0 20px;font-size:26px;font-weight:900}.picker{opacity:0;flex-direction:column;align-items:center;gap:16px;transition:opacity .4s;display:flex;position:absolute;top:30%;left:0;right:0}.picker.show{opacity:1}.picker h2{color:#333;letter-spacing:2px;margin:0;font-size:26px;font-weight:900}.picker .grid{grid-template-columns:repeat(2,86px);gap:12px;display:grid}.picker .cell{cursor:pointer;background:linear-gradient(#bfe2ff,#8cc6ff);border-radius:16px;place-items:center;width:86px;height:86px;transition:transform .2s;display:grid;overflow:hidden;box-shadow:0 4px #5c9be0,0 8px 16px #2864b440}.picker .cell img{object-fit:cover;width:100%;height:100%}.picker .cell:active{transform:scale(.94)}.gender{justify-content:center;gap:34px;display:flex;position:absolute;bottom:22%;left:0;right:0}.gender button{color:#fff;cursor:pointer;width:74px;height:50px;font-size:30px;font-weight:800;font-family:var(--font);border:0;border-radius:10px;transition:transform .45s cubic-bezier(.2,1.6,.4,1);transform:scale(0)}.gender.show button{transform:scale(1)}.gender .f{background:linear-gradient(#ff8af2,#e44fd8);box-shadow:0 5px #a8329f}.gender .m{background:linear-gradient(#ffad4a,#f08a17);box-shadow:0 5px #b45f08}.hint{color:#fff;pointer-events:none;opacity:0;white-space:nowrap;background:#00000059;border-radius:30px;padding:8px 18px;font-size:18px;font-weight:800;transition:opacity .3s;position:absolute;bottom:14%;left:50%;transform:translate(-50%)}.hint.dark{color:#333;background:#ffffffbf}.hint.show{opacity:1;animation:1s ease-in-out infinite bob}@keyframes bob{50%{translate:0 -6px}}.hand{pointer-events:none;opacity:0;filter:drop-shadow(0 4px 6px #0000004d);width:56px;height:56px;font-size:46px;transition:opacity .3s;position:absolute}.hand.show{opacity:1;animation:.8s ease-in-out infinite tap}@keyframes tap{50%{transform:translate(6px,8px)scale(.9)}}.rank{color:#fff;-webkit-text-stroke:2px #a01818;paint-order:stroke fill;text-shadow:0 3px #a01818;pointer-events:none;opacity:0;font-size:34px;font-weight:800;transition:opacity .3s;position:absolute;bottom:16px;right:16px}.rank.show{opacity:1}.rank.first{color:#ffde3b;-webkit-text-stroke-color:#b06a00;text-shadow:0 3px #b06a00}.count{pointer-events:none;color:#fff;-webkit-text-stroke:4px #222;paint-order:stroke fill;place-items:center;font-size:110px;font-weight:900;display:grid;position:absolute;inset:0}.count span{animation:.8s ease-out forwards countIn}@keyframes countIn{0%{opacity:0;transform:scale(2.2)}25%{opacity:1;transform:scale(1)}80%{opacity:1}to{opacity:0;transform:scale(.7)}}.toast{pointer-events:none;white-space:nowrap;background:#fffffff2;border-radius:20px;padding:8px 18px;font-size:17px;font-weight:800;animation:1.8s forwards toast;position:absolute;top:18%;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #0000002e}@keyframes toast{0%{opacity:0;transform:translate(-50%,10px)}15%{opacity:1;transform:translate(-50%)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-14px)}}.meter{pointer-events:none;opacity:0;background:#00000040;border-radius:10px;height:18px;transition:opacity .3s;position:absolute;top:14%;left:10%;right:10%;overflow:hidden;box-shadow:inset 0 2px 4px #0003}.meter.show{opacity:1}.meter i{background:linear-gradient(90deg,#ffd34d,#ff8a1f);border-radius:10px;position:absolute;top:0;bottom:0;left:0}.meter b{background:#5adc6ea6;border:2px solid #3cb44b;border-radius:6px;width:18%;position:absolute;top:-3px;bottom:-3px}.meter u{background:#fff;border-radius:2px;width:4px;position:absolute;top:-4px;bottom:-4px;box-shadow:0 0 6px #0006}.hpbar{text-align:center;pointer-events:none;color:#444;width:92px;font-size:12px;font-weight:800;position:absolute;left:50%;transform:translate(-50%)}.hpbar div{background:#e1e1e1;border-radius:4px;height:6px;margin-top:2px;overflow:hidden}.hpbar div i{background:#46c35a;height:100%;transition:width .2s;display:block}.dmg{color:#f0332a;pointer-events:none;font-size:20px;font-weight:900;animation:.8s ease-out forwards dmg;position:absolute}@keyframes dmg{to{opacity:0;transform:translateY(-40px)}}.flash{opacity:0;pointer-events:none;background:#fff;transition:opacity .25s;position:absolute;inset:0}.flash.on{opacity:1}.black{opacity:0;pointer-events:none;z-index:15;background:#000;transition:opacity .5s;position:absolute;inset:0}.black.on{opacity:1}.tray-ui{flex-wrap:wrap;justify-content:center;gap:8px;padding:0 10px;display:flex;position:absolute;bottom:6%;left:0;right:0}.tray-ui button{cursor:pointer;background:#fff;border:0;border-radius:14px;width:68px;height:68px;font-size:34px;transition:transform .35s cubic-bezier(.2,1.5,.4,1);transform:scale(0);box-shadow:0 4px #c9c2b8,0 8px 14px #00000026}.tray-ui.show button{transform:scale(1)}.tray-ui button:active{transform:scale(.92)}.order{pointer-events:none;background:#fff;border-radius:14px;align-items:center;gap:6px;padding:8px 14px;font-size:26px;display:flex;position:absolute;top:12%;left:50%;transform:translate(-50%);box-shadow:0 6px 16px #0000002e}.order .done{opacity:.25}.ending{color:#fff;text-align:center;opacity:0;background:radial-gradient(circle at 50% 40%,#1e143c4d,#05050fd9);flex-direction:column;justify-content:center;align-items:center;padding:30px;transition:opacity 1s;display:flex;position:absolute;inset:0}.ending.show{opacity:1}.ending h1{margin:0 0 8px;font-size:34px;font-weight:900}.ending p{opacity:.85;margin:4px 0 24px;font-weight:600}.ending button{color:#fff;cursor:pointer;font-size:18px;font-weight:800;font-family:var(--font);background:linear-gradient(#ffd34d,#f59b1a);border:0;border-radius:30px;padding:12px 34px;box-shadow:0 5px #b46a06}.dev{z-index:40;flex-wrap:wrap;gap:4px;max-width:96%;display:none;position:absolute;bottom:6px;left:6px}.dev.show{display:flex}.dev button{color:#fff;cursor:pointer;background:#0000008c;border:0;border-radius:6px;padding:3px 6px;font-size:11px}canvas.fx{pointer-events:none;z-index:8;width:100%;height:100%;position:absolute;inset:0}.tmeter{pointer-events:none;position:absolute;left:12%;right:12%}.tm-bar{border-radius:6px;height:26px;display:flex;position:relative;overflow:visible;box-shadow:0 4px 10px #0003}.tm-bar i{flex:1;display:block}.tm-bar i:first-child{border-radius:6px 0 0 6px}.tm-bar i:nth-last-child(2){border-radius:0 6px 6px 0}.tm-bar .g{background:#46c35a;flex:1.6}.tm-bar .y{background:#f6d23a}.tm-bar .o{background:#f39a2b;flex:.7}.tm-bar .r{background:#e8433a;flex:.55}.tm-bar u{border:9px solid #0000;border-top:14px solid #222;width:0;height:0;margin-left:-9px;text-decoration:none;position:absolute;top:-12px}.tm-bar u:after{content:"";background:#222;border-radius:2px;width:4px;height:40px;position:absolute;top:-2px;left:-2px}.tmeter.stop .tm-bar{animation:.3s 2 pulse}.tm-label{text-align:center;color:#fff;text-shadow:0 2px 4px #00000080;margin-top:12px;font-size:16px;font-weight:800}.tmeter.dark .tm-label{color:#4a4450;text-shadow:none}.tm-feedback{text-align:center;pointer-events:none;font-size:30px;font-weight:900;animation:1.2s ease-out forwards dmg;position:absolute;top:52%;left:0;right:0}.tm-feedback.perfect{color:#e8233a;text-shadow:0 2px #fff}.tm-feedback.good{color:#f39a2b;text-shadow:0 2px #fff}.tm-feedback.ok{color:#f6d23a;text-shadow:0 2px #333}.tm-feedback.miss{color:#888}canvas.tvstatic{z-index:18;width:100%;height:100%;image-rendering:pixelated;position:absolute;inset:0}.phone{background:#fff;border:8px solid #1d1d22;border-radius:26px;flex-direction:column;transition:transform .5s cubic-bezier(.2,1.2,.4,1);display:flex;position:absolute;inset:10% 8% 18%;overflow:hidden;transform:translateY(110%);box-shadow:0 20px 50px #00000059}.phone.show{transform:none}.ph-top{text-align:center;background:#f4f4f7;border-bottom:1px solid #e3e3e8;padding:12px;font-weight:800}.ph-body{flex-direction:column;flex:1;gap:10px;padding:12px;display:flex}.ph-msg{border-radius:16px;max-width:75%;padding:8px 12px;font-size:15px;font-weight:700;animation:.3s msgIn}.ph-msg.them{color:#fff;background:#ff8ad8;border-bottom-left-radius:4px;align-self:flex-start}.ph-msg.me{color:#fff;background:#3fa1ff;border-bottom-right-radius:4px;align-self:flex-end}@keyframes msgIn{0%{opacity:0;transform:translateY(10px)scale(.9)}}
