@font-face{font-family:"Cubic 11";src:url(/fonts/Cubic_11.woff2) format("woff2");font-display:swap}@font-face{font-family:"Press Start 2P";src:url(/fonts/PressStart2P.woff2) format("woff2");font-display:swap}:root{--sky-hi:#54BAE8;--sky:#2F9FE0;--sky-lo:#1F7FC0;--ink:#1A1A2E;--cream:#FFFBE9;--deep:#1F4E8C;--gold:#F2C033;--gold-dk:#C98F1B;--red:#E23B2E;--pink:#E85A9B;--grass:#7ED27F;--night:#141428;--night-2:#1D1D3A;--px:"Cubic 11","Press Start 2P",monospace;--num:"Press Start 2P",monospace;--body:"PingFang TC","Microsoft JhengHei",sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--body);color:var(--ink);background:linear-gradient(var(--sky-lo) 0%,var(--sky) 35%,var(--sky-hi) 100%) fixed}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.px-card{background:var(--cream);border:4px solid var(--ink);border-radius:12px;box-shadow:0 6px 0 var(--ink);padding:18px}.px-btn{font-family:var(--px);font-size:20px;letter-spacing:2px;line-height:1;display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--red);color:#fff;border:4px solid var(--ink);border-radius:10px;box-shadow:0 5px 0 var(--ink);padding:14px 26px;cursor:pointer;white-space:nowrap;transition:transform .06s,box-shadow .06s;-webkit-user-select:none;user-select:none;text-decoration:none}.px-btn:active{transform:translateY(4px);box-shadow:0 1px 0 var(--ink)}.px-btn.gold{background:var(--gold);color:var(--ink)}.px-btn.blue{background:var(--deep);color:#fff}.px-btn.ghost{background:var(--cream);color:var(--deep)}.px-btn.big{font-size:24px;padding:18px 34px}.px-btn.sm{font-size:15px;padding:9px 14px;border-width:3px;box-shadow:0 4px 0 var(--ink)}.px-btn[disabled]{filter:grayscale(.9);opacity:.6;cursor:not-allowed}.px-input{width:100%;font-family:var(--px);font-size:20px;color:var(--ink);background:#fff;border:4px solid var(--ink);border-radius:10px;padding:12px 14px;box-shadow:inset 0 4px #1a1a2e1f;outline:none}.px-input:focus{border-color:var(--deep);box-shadow:inset 0 4px #1f4e8c2e}.px-input::placeholder{color:#9aa0b5;font-size:16px}.px-label{font-family:var(--px);font-size:15px;color:var(--deep);letter-spacing:2px;display:block;margin:0 0 6px}.px-label .opt{color:#9aa0b5;font-size:12px}.px-h1{font-family:var(--px);font-size:30px;color:#fff;letter-spacing:3px;text-shadow:3px 3px 0 var(--deep);text-align:center}.px-sub{font-family:var(--px);display:inline-block;background:var(--gold);color:#7a4a00;font-size:14px;letter-spacing:2px;padding:5px 16px;border-radius:20px;border:3px solid var(--ink)}.err{display:none;font-family:var(--px);font-size:14px;letter-spacing:1px;color:#fff;background:var(--red);border:3px solid var(--ink);border-radius:8px;padding:9px 12px;margin-top:10px}.err.on{display:block;animation:shake .35s steps(2)}.err .tip{display:block;color:#ffd9d4;font-size:12px;margin-top:4px}.toast{position:fixed;left:50%;bottom:96px;transform:translate(-50%) translateY(20px);z-index:90;font-family:var(--px);font-size:15px;letter-spacing:1px;background:var(--ink);color:var(--gold);border:3px solid var(--gold);border-radius:10px;padding:11px 18px;opacity:0;pointer-events:none;transition:.25s;white-space:nowrap}.toast.on{opacity:1;transform:translate(-50%) translateY(0)}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px,3px)}50%{transform:translate(5px,-4px)}75%{transform:translate(-3px,2px)}}@keyframes okpop{0%{transform:scale(.3)}to{transform:scale(1)}}@keyframes blink{50%{opacity:.25}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}body.shake{animation:shake .4s steps(2)}.spark{position:absolute;width:10px;height:10px;background:var(--gold);z-index:5;pointer-events:none;animation:burst .6s ease-out forwards}@keyframes burst{0%{opacity:1;transform:translate(0) rotate(0)}to{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(200deg)}}.confetti{position:fixed;width:10px;height:10px;z-index:70;pointer-events:none;animation:fall 1.6s linear forwards}@keyframes fall{0%{transform:translateY(-20px) rotate(0)}to{transform:translateY(105vh) rotate(540deg);opacity:.2}}
