:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0f19;--bg-soft:#111729;--text:#e6e9f2;--text-dim:#7a8294;--accent:#a78bfa;--accent-soft:#a78bfa26;--danger:#ef4444}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100dvh}body{background:radial-gradient(1200px 800px at 20% -10%, #a78bfa14, transparent 60%), radial-gradient(900px 600px at 110% 10%, #38bdf80d, transparent 60%), var(--bg);color:var(--text);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:1.5;overflow-x:hidden}button{font-family:inherit}#app{justify-content:center;width:100%;display:flex}.app[data-v-c3494213]{flex-direction:column;gap:clamp(1.25rem,4vw,2rem);width:100%;max-width:520px;min-height:100dvh;margin:0 auto;padding:clamp(1rem,4vw,2rem);display:flex}.top[data-v-c3494213]{justify-content:space-between;align-items:center;gap:1rem;display:flex}.brand[data-v-c3494213]{align-items:baseline;gap:.55rem;display:flex}.pi-symbol[data-v-c3494213]{color:var(--accent);text-shadow:0 0 24px #a78bfa59;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.8rem,6vw,2.2rem);font-weight:700;line-height:1}.brand-text[data-v-c3494213]{color:var(--text-dim);letter-spacing:.22em;text-transform:uppercase;font-size:.9rem}.stats[data-v-c3494213]{gap:.5rem;display:flex}.stat[data-v-c3494213]{background:#ffffff08;border:1px solid #ffffff0f;border-radius:10px;flex-direction:column;align-items:flex-end;min-width:56px;padding:.4rem .7rem;display:flex}.stat-label[data-v-c3494213]{letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);font-size:.65rem}.stat-value[data-v-c3494213]{font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:600}.stat-value.accent[data-v-c3494213]{color:var(--accent)}.stage[data-v-c3494213]{flex-direction:column;flex:1;gap:clamp(1.25rem,4vw,2rem);display:flex}.display[data-v-c3494213]{letter-spacing:.04em;word-break:break-all;overflow-wrap:anywhere;min-height:clamp(92px,22vw,130px);color:var(--text);background:linear-gradient(#a78bfa0f,#ffffff05);border:1px solid #ffffff12;border-radius:16px;max-height:38vh;padding:clamp(1.1rem,4vw,1.6rem);font-family:JetBrains Mono,Fira Code,Menlo,monospace;font-size:clamp(1.2rem,4.5vw,1.6rem);line-height:1.55;transition:border-color .25s;position:relative;overflow-y:auto;box-shadow:inset 0 0 0 1px #a78bfa0f,0 20px 40px -24px #0009}.display.display-error[data-v-c3494213]{border-color:#ef44448c;animation:.45s cubic-bezier(.36,.07,.19,.97) shake-c3494213,.7s ease-out red-flash-c3494213}.prefix[data-v-c3494213]{color:var(--text-dim);margin-right:.1em}.digit[data-v-c3494213]{color:var(--text);display:inline-block}.digit-new[data-v-c3494213]{color:var(--accent);text-shadow:0 0 18px #a78bfa8c;animation:.32s cubic-bezier(.2,.9,.3,1.4) pop-c3494213}.digit-wrong[data-v-c3494213]{color:var(--danger);text-shadow:0 0 18px #ef44448c;-webkit-text-decoration:line-through #ef4444b3;text-decoration:line-through #ef4444b3}.cursor[data-v-c3494213]{color:var(--accent);opacity:.55;margin-left:.1em;animation:1.1s steps(2,start) infinite blink-c3494213;display:inline-block}.error-panel[data-v-c3494213]{text-align:center;background:#ef44440f;border:1px solid #ef44442e;border-radius:14px;flex-direction:column;align-items:center;gap:.9rem;padding:1.2rem 1rem;display:flex}.error-msg[data-v-c3494213]{color:var(--text);margin:0;font-size:.98rem}.score-line[data-v-c3494213]{color:var(--text-dim);margin:0;font-size:.92rem}.score-line strong[data-v-c3494213]{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:700}.chip[data-v-c3494213]{border-radius:7px;min-width:1.7em;margin:0 .15em;padding:.1em .45em;font-family:JetBrains Mono,Fira Code,monospace;font-weight:600;display:inline-block}.chip-wrong[data-v-c3494213]{color:var(--danger);background:#ef44442e}.chip-right[data-v-c3494213]{color:var(--accent);background:#a78bfa2e}.restart[data-v-c3494213]{appearance:none;background:linear-gradient(180deg, var(--accent), #7c5bea);color:#0b0f19;letter-spacing:.06em;cursor:pointer;border:0;border-radius:10px;margin-top:.2rem;padding:.75rem 1.6rem;font-size:.95rem;font-weight:700;transition:transform .15s,box-shadow .2s,filter .2s;box-shadow:0 10px 28px -10px #a78bfa8c}.restart[data-v-c3494213]:hover{filter:brightness(1.08);transform:translateY(-1px)}.restart[data-v-c3494213]:active{transform:translateY(0)}.restart[data-v-c3494213]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.keypad[data-v-c3494213]{grid-template-columns:repeat(5,1fr);gap:clamp(.5rem,2vw,.8rem);margin-top:auto;display:grid}.key[data-v-c3494213]{appearance:none;aspect-ratio:1;color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:linear-gradient(#ffffff0a,#ffffff04);border:1px solid #ffffff14;border-radius:14px;font-family:JetBrains Mono,Fira Code,monospace;font-size:clamp(1.25rem,5vw,1.7rem);font-weight:600;transition:transform 80ms,border-color .2s,background .2s,box-shadow .2s}@media (hover:hover){.key[data-v-c3494213]:hover{background:linear-gradient(#a78bfa14,#a78bfa08);border-color:#a78bfa80;box-shadow:0 0 0 3px #a78bfa0f}}.key[data-v-c3494213]:active{border-color:var(--accent);background:#a78bfa24;transform:scale(.94)}.key[data-v-c3494213]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.foot[data-v-c3494213]{text-align:center;color:var(--text-dim);letter-spacing:.04em;font-size:.82rem}.foot p[data-v-c3494213]{margin:0}.fade-enter-active[data-v-c3494213],.fade-leave-active[data-v-c3494213]{transition:opacity .25s,transform .25s}.fade-enter-from[data-v-c3494213],.fade-leave-to[data-v-c3494213]{opacity:0;transform:translateY(6px)}@keyframes pop-c3494213{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.25)}to{transform:scale(1)}}@keyframes blink-c3494213{0%,50%{opacity:.7}51%,to{opacity:.15}}@keyframes shake-c3494213{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(3px)}30%,50%,70%{transform:translate(-6px)}40%,60%{transform:translate(6px)}}@keyframes red-flash-c3494213{0%{background-color:#ef444438}to{background-color:#0000}}@media (prefers-reduced-motion:reduce){.digit-new[data-v-c3494213],.display.display-error[data-v-c3494213],.cursor[data-v-c3494213]{animation:none}}@media (width<=360px){.keypad[data-v-c3494213]{gap:.45rem}.brand-text[data-v-c3494213]{display:none}}
