:root{--cyan:#1927e2;--yellow:#ffd966;--green:#00ff88;--border-dim:#1a2350;--border-glow:#2a3a7a}.hacker-puzzle{font-family:'Courier New',monospace;background:#060b1a;border:1px solid #3141d3;border-radius:4px;box-shadow:0 0 6px #1f6feb;padding:20px 16px 16px;margin:0 auto;width:100%;max-width:500px;height:auto;min-height:0;color:#e8f0ff;position:relative;display:flex;flex-direction:column;transition:height 0.2s ease}.hp-stats{display:flex;justify-content:space-between;align-items:center;gap:4px;margin-bottom:8px;flex-wrap:wrap}.hp-stat{font-family:'Courier New',monospace;background:rgb(17 31 71 / .7);border:1px solid #1b2e81;border-radius:4px;color:#ccdaff;font-weight:600;font-size:.7rem;padding:4px 12px;display:flex;justify-content:center;align-items:center;cursor:pointer;letter-spacing:1px;transition:all 0.2s;align-items:center;gap:4px;width:auto;height:30px}.hp-stat-value{color:var(--yellow);font-weight:700;font-size:.9rem}.hp-btn{font-family:'Courier New',monospace;background:rgb(20 30 60 / .7);border:1px solid #253570;border-radius:4px;color:#ccdaff;font-weight:600;font-size:.7rem;padding:8px 14px;cursor:pointer;letter-spacing:1px;backdrop-filter:blur(4px);transition:all 0.2s;display:inline-flex;align-items:center;gap:4px}.hp-btn.primary{background:rgb(0 180 220 / .15);border-color:var(--cyan);color:#fff;justify-content:center;letter-spacing:1.2px;font-size:.9rem;font-weight:700}.hp-btn:hover{border-color:var(--cyan);box-shadow:0 0 14px rgb(3 16 196 / .6)}.hp-grid{display:grid;gap:8px;background:#020617;border:2px solid var(--border-glow);border-radius:4px;padding:12px;flex:1 1 auto;box-shadow:inset 0 0 20px rgb(0 0 0 / .7);aspect-ratio:1 / 1;width:100%;max-height:100%}.hp-tile{aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;font-weight:800;background:#0d1a33;border:2px solid #1f3170;border-radius:4px;color:#d0e0ff;cursor:pointer;box-shadow:0 4px 8px rgb(0 0 0 / .6);font-size:clamp(1rem, 5vw, 1.8rem);transition:0.1s;text-shadow:0 0 6px #000}.hp-tile.hp-correct{background:#005a42!important;border:2px solid #00ff88!important;color:white!important;box-shadow:0 0 24px #00ff88!important;font-weight:900}.hp-tile:not(.hp-empty):active{transform:scale(.94);background:#1a2f60}.hp-tile.hp-empty{background:#0a0f20;border:2px dashed #2c3b6b;box-shadow:none;cursor:default;color:#fff0}.hp-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#fff0;border-radius:4px;display:flex;align-items:center;justify-content:center;z-index:20;backdrop-filter:blur(8px);border:none;transition:0.3s}.hp-overlay.hp-hidden{opacity:0;visibility:hidden;pointer-events:none}.hp-overlay-content{text-align:center;padding:20px;width:100%}.hp-overlay-title{font-size:2.2rem;font-weight:700;color:#58a6ff;text-shadow:0 0 8px #1f6feb,0 0 18px #1f6feb80;letter-spacing:2px;text-transform:uppercase;margin-top:6px;letter-spacing:1.5px}.hp-terminal{background:#010314;border-left:4px solid var(--cyan);padding:8px;margin:8px 0;color:#779ce6;text-align:left;border-radius:4px}@media (max-width:548px){.hp-overlay-title{font-size:1.8rem;font-weight:650;letter-spacing:1.5px}.hp-terminal{padding:6px;font-size:14px}}.hp-diff-options{display:flex;flex-direction:column;gap:10px;margin-bottom:15px}.hp-diff-opt{background:#0a0d2e;backdrop-filter:blur(8px);border:1px solid #253b70;border-radius:4px;padding:8px 12px;display:flex;justify-content:space-between;align-items:center;font-weight:600;cursor:pointer}.hp-diff-opt.hp-selected{border-color:var(--cyan);box-shadow:0 0 16px #1923b9;background:#002b44}.hp-badge-easy{color:#fff;font-size:14px;border:1px solid #fff;padding:2px;width:100px;border-radius:40px}.hp-badge-medium{color:#059b05;font-size:14px;border:1.5px solid #049b04;padding:2px;width:100px;border-radius:40px}.hp-badge-hard{color:#ee072d;font-size:14px;font-size:14px;border:1.5px solid #eb082e;padding:2px;width:100px;border-radius:40px}.hp-result-rating{font-size:2.2rem;font-weight:800;margin:10px 0}.hp-rating-genius{color:#ffd966;text-shadow:0 0 20px gold}.hp-header,.hp-dpad,.hp-message{display:none!important}.desktop-home-only{display:inline-flex}