:root{--bg1:#fff5f9;--bg2:#f3eeff;--ink:#4a3348;--ink-soft:#8a6f86;--one:#ff9cbc;--one-d:#e9789c;--x:#6fd5a9;--x-d:#44b486;--c:#ab95ff;--c-d:#8a70ec;--moe:#ff6f9c;--moe-d:#e04a7c;--glass:#ffffffb8;--glass-line:#ffaac873;--card:#ffffffc7;--font-text:"Fredoka", var(--font-cjk,"1xc Rounded zh-CN"), "PingFang SC", "HarmonyOS Sans SC", "MiSans", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Noto Sans CJK SC", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{background:var(--bg1);color:var(--ink);font-family:var(--font-text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0}body{overflow-x:hidden}.bg{z-index:-1;background:radial-gradient(1100px 760px at 15% 8%, #ffe1ec 0%, transparent 62%), radial-gradient(1000px 700px at 88% 14%, #e7deff 0%, transparent 60%), radial-gradient(1000px 640px at 50% 112%, #dcf6ea 0%, transparent 62%), linear-gradient(180deg, var(--bg1), var(--bg2));position:fixed;inset:0}.bg:after{content:"";background-image:radial-gradient(#ff8cb247 1.6px,#0000 1.8px);background-size:28px 28px;animation:18s linear infinite drift;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000c,#0000 75%);mask-image:linear-gradient(#000c,#0000 75%)}@keyframes drift{to{background-position:28px 28px}}.top{z-index:10;top:max(16px, env(safe-area-inset-top));pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:fixed;left:16px;right:16px}.top>*{pointer-events:auto}.top-right{align-items:center;gap:10px;display:flex}.meter,.round,.pill,.menu{background:var(--glass);border:2px solid var(--glass-line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 6px 20px #dc78aa24}.meter{height:44px;color:var(--ink-soft);-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:8px;padding:0 18px 0 14px;font-size:15px;font-weight:700;display:flex}.meter b{color:var(--moe);min-width:1.5ch;font-family:Fredoka,sans-serif;font-size:19px;display:inline-block}.meter b.pop{animation:.35s cubic-bezier(.3,1.8,.5,1) pop}.meter-heart{color:var(--moe);font-size:18px;animation:1.6s ease-in-out infinite beat;display:inline-block}@keyframes beat{0%,60%,to{transform:scale(1)}20%{transform:scale(1.25)}35%{transform:scale(.95)}}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.45)rotate(-6deg)}to{transform:scale(1)}}.round,.pill{cursor:pointer;height:44px;color:var(--moe);font:inherit;transition:transform .2s cubic-bezier(.3,1.8,.5,1)}.round:hover,.pill:hover{transform:scale(1.06)rotate(-4deg)}.round:active,.pill:active{transform:scale(.94)}.round:focus-visible,.pill:focus-visible,.btn:focus-visible,.scroll-cue:focus-visible{outline:3px solid var(--c);outline-offset:2px}.round{border-radius:50%;place-items:center;width:44px;padding:0;display:grid}.round .off,.round[aria-pressed=false] .on{display:none}.round[aria-pressed=false] .off{display:block}.round[aria-pressed=false]{color:var(--ink-soft)}.pill{border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:700;display:flex}.pill-label{color:var(--ink-soft)}.pill b{font-weight:800}.lang{position:relative}.menu{transform-origin:100% 0;background:#fffffff0;border-radius:18px;min-width:196px;max-height:calc(100svh - 96px);margin:0;padding:6px;animation:.22s cubic-bezier(.3,1.6,.5,1) menu-in;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto}@keyframes menu-in{0%{opacity:0;transform:scale(.85)}}.menu ul{margin:0;padding:0;list-style:none}.menu-heading{color:var(--ink-soft);margin:6px 12px 4px;font-size:12px;font-weight:700}.menu ul+.menu-heading{border-top:1.5px dashed var(--glass-line);margin-top:10px;padding-top:8px}.menu button,.menu a{width:100%;color:var(--ink);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:10px;padding:9px 12px;font-size:14px;font-weight:700;text-decoration:none;display:flex}.menu button b,.menu a b{min-width:34px;height:26px;color:var(--moe);background:#fff0f5;border-radius:8px;place-items:center;padding:0 6px;font-size:13px;display:inline-grid}.menu button:hover,.menu a:hover{background:#fff0f6}.menu button[aria-pressed=true],.menu a[aria-current=page]{background:#ffe3ee}.menu button[aria-pressed=true]:after,.menu a[aria-current=page]:after{content:"♥";color:var(--moe);margin-left:auto}.menu button:focus-visible,.menu a:focus-visible{outline:3px solid var(--c);outline-offset:2px}.lang-hint{z-index:9;top:calc(max(16px, env(safe-area-inset-top)) + 54px);background:var(--glass);border:2px solid var(--glass-line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;align-items:center;gap:4px;padding:4px 4px 4px 14px;font-size:13px;font-weight:700;animation:.3s cubic-bezier(.3,1.6,.5,1) menu-in;display:flex;position:fixed;right:16px;box-shadow:0 6px 20px #dc78aa24}.lang-hint a{color:var(--moe);text-decoration:none}.lang-hint button{width:26px;height:26px;color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%}.lang-hint button:hover{background:#fff0f6}.hero{-webkit-user-select:none;user-select:none;height:100svh;min-height:520px;position:relative;overflow:hidden}#stage{touch-action:pan-y;opacity:0;width:100%;height:100%;transition:opacity .8s;display:block;position:absolute;inset:0}body.ready #stage{opacity:1}.hero{background:radial-gradient(at 65% 45%,#e7dbf36b,#0000 62%)}@media (width>=900px){.hero .hero-text{width:40%;inset:50% auto auto 5%;transform:translateY(-45%)}.hero .logo{font-size:clamp(70px,8vw,112px)}.hero .tagline,.hero .hint{margin-top:24px}.hero .scroll-cue{margin-top:28px}}.sprite-error{text-align:center;width:min(90%,320px);color:var(--ink-soft);position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}body.load-error #loader{display:none}#loader{gap:10px;transition:opacity .4s;display:flex;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}#loader i{background:var(--one);border-radius:50%;width:16px;height:16px;animation:.9s ease-in-out infinite hop}#loader i:nth-child(2){background:var(--x);animation-delay:.12s}#loader i:nth-child(3){background:var(--c);animation-delay:.24s}@keyframes hop{0%,to{transform:translateY(0)scale(1.15,.85)}45%{transform:translateY(-18px)scale(.9,1.1)}}body.ready #loader{opacity:0;pointer-events:none}.hero-text{left:0;right:0;bottom:max(3.5vh, 18px, env(safe-area-inset-bottom));text-align:center;pointer-events:none;padding:0 16px;position:absolute}.logo{font-family:var(--font-text);letter-spacing:.01em;margin:0;font-size:clamp(52px,9vw,108px);font-weight:700;line-height:1}.logo span{color:var(--col);text-shadow:0 .055em 0 var(--shade), 0 .14em .22em #be649638;pointer-events:auto;cursor:pointer;animation:3.4s ease-in-out infinite wave;animation-delay:calc(var(--i) * .11s);display:inline-block}.logo span.dot{margin:0 -.04em}.logo span.boing{animation:.6s cubic-bezier(.3,1.6,.5,1) boing}@keyframes wave{0%,55%,to{transform:translateY(0)}25%{transform:translateY(-.1em)}}@keyframes boing{0%{transform:scale(1)}25%{transform:scale(1.3,.7)translateY(.1em)}55%{transform:scale(.85,1.2)translateY(-.18em)}to{transform:scale(1)}}.tagline{color:var(--ink-soft);margin:12px 0 0;font-size:clamp(15px,2vw,18px);font-weight:700}.kao{color:var(--moe);white-space:nowrap}.hint{flex-wrap:wrap;justify-content:center;gap:8px;margin:12px 0 0;display:flex}.chip{color:var(--ink-soft);background:var(--glass);border:1.5px dashed var(--glass-line);border-radius:999px;padding:6px 12px;font-family:inherit;font-size:13px;font-weight:700}kbd{border:1.5px solid var(--glass-line);min-width:1.6em;color:var(--moe);background:#fff;border-bottom-width:3px;border-radius:6px;margin:0 1px;padding:0 .35em;font-family:Fredoka,sans-serif;font-size:12px;line-height:1.4;display:inline-block}@media (hover:none){.chip.kb{display:none}}.scroll-cue{color:var(--moe);pointer-events:auto;border-radius:999px;align-items:center;gap:4px;margin-top:12px;padding:4px 10px;font-size:13px;font-weight:800;text-decoration:none;display:inline-flex}.scroll-cue svg{animation:1.6s ease-in-out infinite nudge}@keyframes nudge{50%{transform:translateY(3px)}}.bubble .rest{visibility:hidden}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.bubble{pointer-events:none;will-change:transform;--col:var(--c);position:absolute;top:0;left:0}.bubble>span{transform-origin:50% 100%;opacity:0;max-width:min(78vw,360px);color:var(--ink);border:2.5px solid var(--col);text-align:center;background:#fff;border-radius:18px;padding:8px 15px 9px;font-size:15px;font-weight:800;line-height:1.45;transition:transform .28s cubic-bezier(.3,1.7,.5,1),opacity .18s;display:block;position:relative;transform:translate(-50%,-100%)scale(.2);box-shadow:0 8px 20px #be64a02e}.bubble>span:after{content:"";border-right:2.5px solid var(--col);border-bottom:2.5px solid var(--col);background:#fff;border-bottom-right-radius:3px;width:12px;height:12px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)rotate(45deg)}.bubble.show>span{opacity:1;transform:translate(-50%,-100%)scale(1)}.skill{padding:72px 16px 56px;position:relative}.wrap{max-width:960px;margin:0 auto}.eyebrow{color:var(--moe);letter-spacing:.06em;margin:0;font-size:14px;font-weight:800}.skill h2{font-family:var(--font-text);color:var(--ink);margin:6px 0 0;font-size:clamp(32px,5vw,48px);font-weight:700;line-height:1.1}.lead{max-width:640px;color:var(--ink-soft);margin:14px 0 0;font-size:clamp(15px,2vw,17px);font-weight:500;line-height:1.75}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:32px;display:grid}.card{background:var(--card);border:2px solid #ffbed780;border-radius:22px;padding:18px 20px 20px;transition:transform .25s cubic-bezier(.3,1.6,.5,1);box-shadow:0 8px 24px #dc82b414}.card:hover{transform:translateY(-4px)rotate(-.6deg)}.card .ico{font-size:24px}.card h3{margin:8px 0 0;font-size:17px;font-weight:800}.card p{color:var(--ink-soft);margin:6px 0 0;font-size:14px;line-height:1.7}.install{background:linear-gradient(135deg,#ffe6f0e6,#ece4ffe6);border:2px solid #ffb4d299;border-radius:26px;margin-top:28px;padding:24px}.install h3{margin:0;font-size:22px;font-weight:800}.install>p{color:var(--ink-soft);margin:6px 0 0;font-size:14px;line-height:1.6}.prompt{background:#fff;border:2px dashed #ff96be99;border-radius:16px;margin-top:14px;position:relative}.prompt pre{white-space:pre-wrap;word-break:break-word;font:500 14px/1.7 var(--font-text);color:var(--ink);-webkit-user-select:text;user-select:text;margin:0;padding:16px 96px 16px 18px}.prompt .btn{position:absolute;top:10px;right:10px}.actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.btn{border:2px solid var(--glass-line);height:40px;color:var(--ink);font:inherit;cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:0 16px;font-size:14px;font-weight:800;text-decoration:none;transition:transform .2s cubic-bezier(.3,1.8,.5,1);display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn:active{transform:scale(.95)}.btn.primary{background:var(--moe);border-color:var(--moe);color:#fff;box-shadow:0 .18em 0 var(--moe-d)}.btn.ghost{background:0 0}.foot{padding:8px 16px max(28px, env(safe-area-inset-bottom));text-align:center;color:var(--ink-soft);font-size:13px}.foot a{color:var(--moe);font-weight:700;text-decoration:none}.noscript{place-items:center;font-weight:700;display:grid;position:fixed;inset:0}@media (width<=560px){.meter{height:40px;padding:0 14px 0 12px;font-size:14px}.round,.pill{height:40px}.round{width:40px}.pill{padding:0 12px}.pill-label{display:none}.chip{font-size:12px}.prompt pre{padding-bottom:60px;padding-right:18px}.prompt .btn{top:auto;bottom:10px}.install{padding:18px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.bg:after,.logo span,.meter-heart,.scroll-cue svg{animation:none}}button.chip{pointer-events:auto;cursor:pointer;transition:background .2s}button.chip:hover{background:#fff}button.chip:focus-visible{outline:3px solid var(--c);outline-offset:3px}button.chip:disabled{opacity:.5;cursor:wait}@media (prefers-reduced-motion:reduce){#stage,.bubble>span{transition:none}#loader i,.logo span.boing,.meter b.pop{animation:none}}.whiteout{z-index:2147483647;opacity:0;pointer-events:auto;background:#fff;transition:opacity .9s;position:fixed;inset:0}.whiteout.on{opacity:1}@font-face{font-family:"1xc Rounded zh-CN";src:url(/fonts/1xc-rounded-zh-CN-500.woff2)format("woff2");font-weight:100 500;font-display:swap}@font-face{font-family:"1xc Rounded zh-CN";src:url(/fonts/1xc-rounded-zh-CN-700.woff2)format("woff2");font-weight:600 900;font-display:swap}:root:lang(zh-CN){--font-cjk:"1xc Rounded zh-CN"}@font-face{font-family:"1xc Rounded zh-TW";src:url(/fonts/1xc-rounded-zh-TW-500.woff2)format("woff2");font-weight:100 500;font-display:swap}@font-face{font-family:"1xc Rounded zh-TW";src:url(/fonts/1xc-rounded-zh-TW-700.woff2)format("woff2");font-weight:600 900;font-display:swap}:root:lang(zh-TW){--font-cjk:"1xc Rounded zh-TW"}@font-face{font-family:"1xc Rounded zh-HK";src:url(/fonts/1xc-rounded-zh-HK-500.woff2)format("woff2");font-weight:100 500;font-display:swap}@font-face{font-family:"1xc Rounded zh-HK";src:url(/fonts/1xc-rounded-zh-HK-700.woff2)format("woff2");font-weight:600 900;font-display:swap}:root:lang(zh-HK){--font-cjk:"1xc Rounded zh-HK"}@font-face{font-family:"1xc Rounded ja";src:url(/fonts/1xc-rounded-ja-500.woff2)format("woff2");font-weight:100 500;font-display:swap}@font-face{font-family:"1xc Rounded ja";src:url(/fonts/1xc-rounded-ja-700.woff2)format("woff2");font-weight:600 900;font-display:swap}:root:lang(ja){--font-cjk:"1xc Rounded ja"}@font-face{font-family:"1xc Rounded en";src:url(/fonts/1xc-rounded-en-500.woff2)format("woff2");font-weight:100 500;font-display:swap}@font-face{font-family:"1xc Rounded en";src:url(/fonts/1xc-rounded-en-700.woff2)format("woff2");font-weight:600 900;font-display:swap}:root:lang(en){--font-cjk:"1xc Rounded en"}@font-face{font-family:"1xc Rounded ko";src:url(/fonts/1xc-rounded-ko-500.woff2)format("woff2");font-weight:100 500;font-display:swap}@font-face{font-family:"1xc Rounded ko";src:url(/fonts/1xc-rounded-ko-700.woff2)format("woff2");font-weight:600 900;font-display:swap}:root:lang(ko){--font-cjk:"1xc Rounded ko"}
