*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-dark: #1a1a2e;--bg-card: #16213e;--bg-input: #0f3460;--accent-yellow: #ffd700;--accent-blue: #4fc3f7;--accent-green: #66bb6a;--accent-red: #ef5350;--text-primary: #e0e0e0;--text-secondary: #9e9e9e;--tile-bg: #1e3a5f;--tile-highlight: #2e5a8f;--tile-eaten: #0d1b2a;--border-color: #2a4a6b;font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:var(--text-primary);background-color:var(--bg-dark)}body{min-height:100vh;display:flex;justify-content:center;align-items:flex-start;padding:2rem 1rem}#root{width:100%;max-width:800px}button{cursor:pointer;font-family:inherit}input{font-family:inherit}.app-container{display:flex;flex-direction:column;gap:1.5rem}.app-header{text-align:center;padding:1rem 0}.app-header h1{font-size:2rem;color:var(--accent-yellow);text-shadow:2px 2px 4px rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;gap:.5rem}.app-header p{color:var(--text-secondary);margin-top:.5rem;font-size:.9rem}.pacman-icon{display:inline-block;width:32px;height:32px;background:var(--accent-yellow);border-radius:50%;clip-path:polygon(100% 50%,50% 50%,75% 15%,100% 0%,100% 100%,75% 85%,50% 50%,100% 50%);animation:chomp .4s ease-in-out infinite alternate}@keyframes chomp{0%{clip-path:polygon(100% 50%,50% 50%,65% 5%,100% 0%,100% 100%,65% 95%,50% 50%,100% 50%)}to{clip-path:circle(50% at 50% 50%)}}.username-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem}.section-label{display:block;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-blue);margin-bottom:.5rem}.username-input{width:100%;padding:.75rem 1rem;font-size:1rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);outline:none;transition:border-color .2s}.username-input:focus{border-color:var(--accent-blue)}.username-input:disabled{opacity:.5;cursor:not-allowed}.password-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem}.password-display{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.password-dots{font-family:monospace;font-size:1.5rem;letter-spacing:.25em;color:var(--accent-yellow);min-height:2rem;display:flex;align-items:center;flex:1}.password-dots .cursor-blink{animation:blink 1s step-end infinite;color:var(--accent-blue)}@keyframes blink{50%{opacity:0}}.password-actions{display:flex;gap:.5rem}.password-actions button{padding:.4rem .8rem;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-input);color:var(--text-primary);font-size:.8rem;font-weight:600;transition:all .2s}.password-actions button:hover{background:var(--tile-highlight);border-color:var(--accent-blue)}.password-actions .submit-btn{background:#66bb6a33;border-color:var(--accent-green);color:var(--accent-green)}.password-actions .submit-btn:hover{background:#66bb6a4d}.game-instructions{text-align:center;color:var(--text-secondary);font-size:.85rem;margin-bottom:1rem;line-height:1.5}.game-instructions kbd{display:inline-block;background:var(--bg-input);border:1px solid var(--border-color);border-radius:4px;padding:.1rem .4rem;font-size:.8rem;font-family:monospace;color:var(--accent-yellow)}.game-area{position:relative;width:100%;border-radius:8px;overflow:hidden;border:2px solid var(--border-color);background:var(--bg-dark)}.game-area canvas{display:block;width:100%;height:auto}.game-area:focus{outline:2px solid var(--accent-blue);outline-offset:2px}.result-panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:2rem;text-align:center}.result-title{font-size:1.5rem;margin-bottom:1.5rem}.result-card{background:var(--bg-dark);border:1px solid var(--border-color);border-radius:8px;padding:1.25rem;text-align:left;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.result-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.result-label{font-weight:600;color:var(--accent-blue);min-width:130px}.result-value{color:var(--text-primary)}.password-value{font-family:monospace;letter-spacing:.1em}.result-badge{font-size:.9rem;font-weight:700;padding:.1rem .5rem;border-radius:4px}.badge-success{background:#66bb6a33;color:var(--accent-green)}.badge-error{background:#ef535033;color:var(--accent-red)}.reveal-btn{background:var(--bg-input);border:1px solid var(--border-color);border-radius:6px;padding:.25rem .75rem;color:var(--text-primary);font-size:.8rem;transition:background .2s}.reveal-btn:hover{background:var(--tile-highlight)}.success-message{margin-top:.5rem;padding:.75rem;background:#66bb6a1a;border:1px solid rgba(102,187,106,.3);border-radius:8px;color:var(--accent-green);font-size:1.1rem}.error-message{margin-top:.5rem;padding:.75rem;background:#ef53501a;border:1px solid rgba(239,83,80,.3);border-radius:8px;color:var(--accent-red)}.result-warning{background:#ffd7001a;border:1px solid rgba(255,215,0,.3);border-radius:8px;padding:.75rem 1rem;color:var(--accent-yellow);font-size:.85rem;margin-bottom:1.25rem}.back-btn{background:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;padding:.75rem 2rem;color:var(--text-primary);font-size:1rem;font-weight:600;transition:all .2s}.back-btn:hover{background:var(--tile-highlight);border-color:var(--accent-blue)}.continue-btn{background:#66bb6a26;border-color:var(--accent-green);color:var(--accent-green)}.continue-btn:hover{background:#66bb6a4d;border-color:var(--accent-green)}.todo-app{display:flex;flex-direction:column;gap:1.25rem}.todo-header{display:flex;align-items:center;justify-content:flex-end}.todo-logout-btn{background:var(--bg-input);border:1px solid var(--border-color);border-radius:6px;padding:.35rem .9rem;color:var(--text-secondary);font-size:.8rem;transition:all .2s}.todo-logout-btn:hover{color:var(--accent-red);border-color:var(--accent-red)}.todo-input-area{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:1rem 1.25rem;position:relative;min-height:70px;display:flex;align-items:center;gap:.75rem}.todo-input{flex:1;background:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;padding:.6rem .85rem;color:var(--text-primary);font-size:.95rem;outline:none;transition:border-color .2s}.todo-input::placeholder{color:var(--text-secondary)}.todo-input:focus{border-color:var(--accent-blue)}.todo-add-btn{background:var(--accent-blue);border:none;border-radius:8px;padding:.6rem 1.4rem;color:#fff;font-size:.95rem;font-weight:600;white-space:nowrap;transition:background .15s,transform .1s;position:absolute;right:1.25rem;top:50%;transform:translateY(-50%);z-index:2}.todo-add-btn:hover{background:#3ab0e8}.todo-add-btn:active{transform:translateY(-50%) scale(.96)}.todo-list{display:flex;flex-direction:column;gap:.5rem}.todo-empty{text-align:center;color:var(--text-secondary);font-size:.9rem;padding:2rem 0}.todo-toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);background:#222;color:var(--accent-yellow);font-size:.85rem;padding:.6rem 1.2rem;border-radius:8px;box-shadow:0 4px 14px #00000080;z-index:900;animation:toast-in .25s ease;pointer-events:none}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.todo-item{display:flex;align-items:center;gap:.6rem;padding:.6rem .75rem;background:var(--bg-dark);border:1px solid var(--border-color);border-radius:8px;transition:background .15s}.todo-item:hover{background:#111a30}.todo-item.completed{opacity:.55}.todo-checkbox-zone{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;position:relative}.todo-checkbox{appearance:none;-webkit-appearance:none;width:20px;height:20px;border:2px solid var(--border-color);border-radius:4px;background:var(--bg-input);cursor:pointer;transition:transform .12s ease,border-color .2s,background .2s;position:relative;flex-shrink:0}.todo-checkbox:checked{background:var(--accent-green);border-color:var(--accent-green)}.todo-checkbox:checked:after{content:"✓";position:absolute;top:-1px;left:3px;font-size:14px;color:#fff;font-weight:700}.todo-text{flex:1;font-size:.95rem;color:var(--text-primary);word-break:break-word}.todo-text.struck{text-decoration:line-through;color:var(--text-secondary)}.todo-text.reversed{font-style:italic;color:#b0b0c0}.upgrade-icon-wrapper{position:relative;flex-shrink:0}.upgrade-icon{background:none;border:none;cursor:pointer;font-size:1.1rem;padding:.2rem;color:var(--accent-yellow);transition:transform .15s}.upgrade-icon:hover{transform:scale(1.2)}.upgrade-tooltip{display:none;position:absolute;bottom:130%;right:0;background:#222;color:gold;font-size:.72rem;padding:.45rem .65rem;border-radius:6px;white-space:nowrap;pointer-events:none;z-index:20;box-shadow:0 2px 8px #0006}.upgrade-icon-wrapper:hover .upgrade-tooltip{display:block}.todo-delete-btn{flex-shrink:0;background:none;border:none;color:var(--text-secondary);font-size:1.1rem;padding:.25rem;cursor:pointer;transition:color .15s}.todo-delete-btn:hover{color:var(--accent-red)}.si-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.si-modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;display:flex;flex-direction:column;align-items:center;gap:1rem;max-width:460px;width:90vw;position:relative}.si-modal h3{color:var(--accent-yellow);font-size:1.2rem;text-align:center}.si-close-btn{position:absolute;top:.75rem;right:.75rem;background:none;border:none;color:var(--text-secondary);font-size:1.4rem;line-height:1;padding:.25rem;transition:color .2s}.si-close-btn:hover{color:var(--accent-red)}.si-canvas{border:1px solid var(--border-color);border-radius:4px;display:block;background:#0a0a1a;image-rendering:pixelated}.si-instructions{color:var(--text-secondary);font-size:.75rem;text-align:center;line-height:1.4}.si-message{text-align:center;padding:.75rem 1rem;border-radius:8px;font-weight:600;font-size:1rem}.si-message-win{background:#66bb6a26;border:1px solid rgba(102,187,106,.3);color:var(--accent-green)}.si-message-lose{background:#ef535026;border:1px solid rgba(239,83,80,.3);color:var(--accent-red)}.si-retry-btn{background:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;padding:.5rem 1.5rem;color:var(--text-primary);font-size:.9rem;font-weight:600;transition:all .2s}.si-retry-btn:hover{background:var(--tile-highlight);border-color:var(--accent-blue)}
