.pixel-canvas{image-rendering:pixelated;image-rendering:crisp-edges}.binary-font{font-family:monospace;letter-spacing:.1em}.binary-border{position:relative}.binary-border:before{content:"";position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;background:repeating-linear-gradient(45deg,#000,#000 10px,#333 0,#333 20px);z-index:-1;border-radius:8px}.binary-button{position:relative;overflow:hidden}.binary-button:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.1) 50%,hsla(0,0%,100%,0));z-index:1;transform:translateX(-100%);animation:binary-shimmer 2s infinite}@keyframes binary-shimmer{to{transform:translateX(100%)}}.fog-of-war{position:relative}.fog-of-war:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.8);z-index:10;pointer-events:none}.revealed{position:relative}.revealed:after{content:none}.binary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(32px,1fr));gap:1px}.binary-cell{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-family:monospace;font-size:14px;border:1px solid #333;background-color:#111;color:#0f0;transition:all .2s ease}.binary-cell:hover{background-color:#222;transform:scale(1.1);z-index:1}.binary-cell.visited{background-color:#010}.binary-cell.current{background-color:#030;border-color:#0f0;box-shadow:0 0 10px #0f0}.dialogue-box{border:2px solid #333;border-radius:8px;padding:12px;background-color:rgba(0,0,0,.8);color:#fff;font-family:monospace;position:relative;overflow:hidden}.dialogue-box:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#0f0,#00f)}.dialogue-text{min-height:60px}.dialogue-options{margin-top:12px;border-top:1px dashed #333;padding-top:12px}.dialogue-option{padding:6px 12px;margin-bottom:4px;border-radius:4px;background-color:#222;transition:all .2s ease;cursor:pointer}.dialogue-option:hover{background-color:#333;transform:translateX(4px)}@keyframes sprite-idle{0%{transform:translateY(0)}50%{transform:translateY(-2px)}to{transform:translateY(0)}}.character-sprite{animation:sprite-idle 1s infinite}