@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/cdf703449fd42bc8-s.3gh0it7uhdum8.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/3f10656f33c57dec-s.1x_wmg1bpi7y6.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/56eb15be423b6220-s.321_9ike18iql.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/96074e70a40501da-s.1dfv6z-5f19bh.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/de161955856a921d-s.p.0fxeqrss3ag9h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Press Start 2P Fallback";src:local(Arial);ascent-override:44.58%;descent-override:0.0%;line-gap-override:0.0%;size-adjust:224.32%}.press_start_2p_f9a2955c-module__mI6poG__className{font-family:"Press Start 2P","Press Start 2P Fallback";font-style:normal;font-weight:400}.press_start_2p_f9a2955c-module__mI6poG__variable{--font-press:"Press Start 2P", "Press Start 2P Fallback"}
@font-face{font-family:VT323;font-style:normal;font-weight:400;font-display:swap;src:url(../media/42b07301cbfb88de-s.01esg-5vzborl.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:VT323;font-style:normal;font-weight:400;font-display:swap;src:url(../media/674d141a92451548-s.2n-wf6s8aqfs0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:VT323;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0c8c4ded07fff55c-s.p.2tcyrya9o07vu.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:VT323 Fallback;src:local(Arial);ascent-override:89.16%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:89.73%}.vt323_414c8acf-module__6x2T5a__className{font-family:VT323,VT323 Fallback;font-style:normal;font-weight:400}.vt323_414c8acf-module__6x2T5a__variable{--font-vt323:"VT323", "VT323 Fallback"}
@font-face{font-family:FpxCJK;src:url(/fonts/fpx-cjk.woff2)format("woff2");font-display:swap;unicode-range:U+2000-206F,U+3000-303F,U+3400-9FFF,U+F900-FAFF,U+FF00-FFEF}:root{--cream:#fff6e6;--cream-2:#ffeccf;--ink:#2b2233;--ink-soft:#5a4f63;--coral:#ff6b6b;--pink:#ff8fab;--teal:#2ec4b6;--yellow:#ffd23f;--blue:#4d79ff;--line:#2b2233;--shadow:4px 4px 0 var(--ink);--shadow-lg:7px 7px 0 var(--ink)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background-color:var(--cream);background-image:radial-gradient(var(--cream-2) 1.5px, transparent 1.5px);color:var(--ink);font-family:var(--font-vt323), "FpxCJK", ui-monospace, "PingFang SC", "Microsoft YaHei", monospace;-webkit-font-smoothing:none;image-rendering:pixelated;background-size:22px 22px;font-size:22px;line-height:1.5}.pixel{font-family:var(--font-press), "FpxCJK", monospace;letter-spacing:1px}a{color:var(--blue)}.wrap{max-width:880px;margin:0 auto;padding:28px 18px 64px}.panel{border:3px solid var(--line);box-shadow:var(--shadow);background:#fff;padding:20px}.tag{background:var(--yellow);border:3px solid var(--line);box-shadow:3px 3px 0 var(--ink);font-family:var(--font-press), "FpxCJK", monospace;padding:6px 10px;font-size:10px;display:inline-block}.btn{font-family:var(--font-press), "FpxCJK", monospace;background:var(--coral);color:#fff;border:3px solid var(--line);box-shadow:var(--shadow);cursor:pointer;text-transform:uppercase;padding:12px 16px;font-size:11px;transition:transform 50ms,box-shadow 50ms}.btn:hover{box-shadow:5px 5px 0 var(--ink);transform:translate(-1px,-1px)}.btn:active{box-shadow:0 0 0 var(--ink);transform:translate(4px,4px)}.btn.teal{background:var(--teal)}.btn:disabled{opacity:.6;cursor:not-allowed}.input,.textarea{font-family:var(--font-vt323), monospace;border:3px solid var(--line);width:100%;color:var(--ink);background:#fff;padding:10px 12px;font-size:20px;box-shadow:inset 2px 2px #2b22331f}.input:focus,.textarea:focus{border-color:var(--coral);outline:none}.textarea{resize:vertical;min-height:70px}.hero{text-align:center;flex-direction:column;align-items:center;padding:26px 0 10px;display:flex}.face{font-family:var(--font-press), "FpxCJK", monospace;-webkit-user-select:none;user-select:none;align-items:center;gap:clamp(4px,1.5vw,14px);font-size:clamp(46px,13vw,110px);display:inline-flex}.face span{display:inline-block}.ear{color:var(--ink);animation:4s ease-in-out infinite wiggle}.ear.r{animation-delay:.4s}.eye{color:var(--ink);transform-origin:50%;animation:3.4s step-end infinite blink}.eye.r{animation-delay:.15s}.mouth{color:var(--ink);animation:2.6s ease-in-out infinite pout}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.15)}}@keyframes pout{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(4px)scale(1.12)}}@keyframes wiggle{0%,to{transform:rotate(0)}50%{transform:rotate(-7deg)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.decode{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px;display:flex}.chip{border:3px solid var(--line);box-shadow:3px 3px 0 var(--ink);background:#fff;padding:6px 10px;font-size:18px}.chip b{color:var(--coral);font-family:var(--font-press), "FpxCJK", monospace;margin-right:6px;font-size:13px}.section{margin-top:44px}.h2{font-family:var(--font-press), "FpxCJK", monospace;background:var(--ink);color:var(--cream);box-shadow:4px 4px 0 var(--coral);margin:0 0 18px;padding:8px 12px;font-size:16px;display:inline-block}.sub{color:var(--ink-soft);margin:-8px 0 16px}.grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;display:grid}.toy{border:3px solid var(--line);box-shadow:var(--shadow);background:#fff;flex-direction:column;gap:6px;min-height:120px;padding:16px;transition:transform 80ms;display:flex}.toy:hover{box-shadow:6px 6px 0 var(--ink);transform:translate(-2px,-2px)}a.toy{color:inherit;text-decoration:none}.toy.live{cursor:pointer}.toy.live .soon{color:var(--teal)}.toy.maintenance{opacity:.5}.toy.maintenance .soon{color:var(--coral)}.toy .emoji{font-size:34px;animation:3s ease-in-out infinite floaty}.toy .soon{font-family:var(--font-press), "FpxCJK", monospace;color:var(--ink-soft);margin-top:auto;font-size:11px}.msg{background:var(--cream-2);border:3px solid var(--line);box-shadow:3px 3px 0 var(--ink);margin-bottom:10px;padding:10px 12px}.msg .who{font-family:var(--font-press), "FpxCJK", monospace;color:var(--teal);font-size:11px}.msg .when{color:var(--ink-soft);float:right;font-size:14px}.msg .what{word-break:break-word;margin-top:4px}.row{flex-wrap:wrap;align-items:stretch;gap:10px;display:flex}.row .grow{flex:1;min-width:160px}.note{color:var(--ink-soft);font-size:18px}.ok{color:var(--teal)}.err{color:var(--coral)}.langtoggle{z-index:60;font-family:var(--font-press), "FpxCJK", monospace;background:var(--yellow);color:var(--ink);border:3px solid var(--line);box-shadow:3px 3px 0 var(--ink);cursor:pointer;padding:9px 12px;font-size:11px;transition:transform 50ms,box-shadow 50ms;position:fixed;top:14px;right:14px}.langtoggle:hover{box-shadow:4px 4px 0 var(--ink);transform:translate(-1px,-1px)}.langtoggle:active{box-shadow:0 0 0 var(--ink);transform:translate(3px,3px)}.topnav{z-index:50;background:var(--cream);border-bottom:3px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;min-height:56px;padding:10px 22px;transition:transform .22s;display:flex;position:fixed;top:0;left:0;right:0;transform:translateY(-110%);box-shadow:0 4px #2b223326}.topnav.show{transform:translateY(0)}.topnav .brand{font-family:var(--font-press), "FpxCJK", monospace;color:var(--ink);cursor:pointer;background:0 0;border:0;padding:4px 6px;font-size:16px}.navgroup{align-items:center;gap:9px;margin-left:auto;display:flex}.navbtn,.navlang{font-family:var(--font-press), "FpxCJK", monospace;color:var(--ink);border:3px solid var(--line);box-shadow:2px 2px 0 var(--ink);cursor:pointer;background:#fff;padding:9px 11px;font-size:13px;line-height:1;transition:transform 50ms,box-shadow 50ms}.navlang{background:var(--yellow)}.navbtn:hover,.navlang:hover{box-shadow:3px 3px 0 var(--ink);transform:translate(-1px,-1px)}.navbtn:hover{background:var(--cream-2)}.navbtn:active,.navlang:active{box-shadow:0 0 0 var(--ink);transform:translate(2px,2px)}html{scroll-behavior:smooth}.section{scroll-margin-top:70px}.footer{text-align:center;color:var(--ink-soft);margin-top:56px;font-size:18px}.footer .bigface{font-family:var(--font-press), "FpxCJK", monospace;color:var(--ink);font-size:26px}
