: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;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{background:var(--bg1);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-family:"M PLUS Rounded 1c",Fredoka,PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,sans-serif}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,.menu button: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}.dialect{position:relative}.menu{transform-origin:100% 0;background:#ffffffeb;border-radius:18px;min-width:156px;margin:0;padding:6px;list-style:none;animation:.22s cubic-bezier(.3,1.6,.5,1) menu-in;position:absolute;top:calc(100% + 8px);right:0}@keyframes menu-in{0%{opacity:0;transform:scale(.85)}}.menu button{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;display:flex}.menu button 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{background:#fff0f6}.menu button[aria-selected=true]{background:#ffe3ee}.menu button[aria-selected=true]:after{content:"♥";color:var(--moe);margin-left:auto}.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}#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{letter-spacing:.01em;margin:0;font-family:Fredoka,"M PLUS Rounded 1c",sans-serif;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-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{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{color:var(--ink);margin:6px 0 0;font-family:Fredoka,"M PLUS Rounded 1c",sans-serif;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;color:var(--ink);-webkit-user-select:text;user-select:text;margin:0;padding:16px 96px 16px 18px;font:500 14px/1.7 "M PLUS Rounded 1c",PingFang SC,system-ui,sans-serif}.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}}
