:root{--snes-black: #000000;--snes-white: #f8f8f8;--snes-dark-blue: #000080;--snes-blue: #0078f8;--snes-light-blue: #3cbcfc;--snes-red: #f83800;--snes-green: #00a800;--snes-yellow: #f8d878;--snes-purple: #9878f8;--snes-cyan: #00e8d8;--snes-orange: #f87858;--snes-gray: #7c7c7c;--snes-light-gray: #bcbcbc;--bg-primary: var(--snes-dark-blue);--bg-secondary: var(--snes-black);--text-primary: var(--snes-white);--text-secondary: var(--snes-light-blue);--accent: var(--snes-yellow);--error: var(--snes-red);--success: var(--snes-green);--dialog-bg: var(--snes-dark-blue);--dialog-border: var(--snes-white);--dialog-shadow: var(--snes-black);--font-pixel: "Press Start 2P", monospace;--font-size-xs: 8px;--font-size-sm: 10px;--font-size-base: 12px;--font-size-lg: 14px;--font-size-xl: 16px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--touch-target: 44px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-pixel);font-size:var(--font-size-base);line-height:1.6;color:var(--text-primary);background-color:var(--bg-primary);min-height:100vh;overflow-x:hidden}#app{min-height:100vh;display:flex;flex-direction:column}.dialog-box{background-color:var(--dialog-bg);border:4px solid var(--dialog-border);padding:var(--space-md);position:relative;box-shadow:inset 0 0 0 2px var(--snes-black),4px 4px 0 var(--dialog-shadow)}.btn{font-family:var(--font-pixel);font-size:var(--font-size-sm);padding:var(--space-sm) var(--space-md);min-height:var(--touch-target);min-width:var(--touch-target);border:3px solid var(--snes-white);background-color:var(--snes-dark-blue);color:var(--text-primary);cursor:pointer;text-transform:uppercase;transition:none}.btn:hover{background-color:var(--snes-blue);color:var(--snes-white)}.btn:active{background-color:var(--snes-light-blue);color:var(--snes-black);transform:translate(2px,2px);box-shadow:none}.btn:disabled{opacity:.5;cursor:not-allowed}.input{font-family:var(--font-pixel);font-size:var(--font-size-base);padding:var(--space-sm) var(--space-md);min-height:var(--touch-target);border:3px solid var(--snes-white);background-color:var(--snes-black);color:var(--text-primary);width:100%}.input:focus{outline:none;border-color:var(--snes-yellow);box-shadow:0 0 0 2px var(--snes-yellow)}.input::placeholder{color:var(--snes-gray)}.text-center{text-align:center}.text-error{color:var(--error)}.text-success{color:var(--success)}.text-accent{color:var(--accent)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.loading{display:inline-block;animation:blink .5s infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.error-message{color:var(--error);background-color:var(--snes-black);border:2px solid var(--error);padding:var(--space-sm);margin-top:var(--space-sm)}.screen{flex:1;display:flex;flex-direction:column;padding:var(--space-md);max-width:100%}.screen-centered{justify-content:center;align-items:center}.chat-screen{height:100vh;max-height:100vh;overflow:hidden}.chat-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--space-sm);border-bottom:2px solid var(--snes-gray);margin-bottom:var(--space-sm)}.chat-header h1{font-size:var(--font-size-sm);color:var(--accent)}.connection-status{font-size:var(--font-size-xs);padding:2px 6px;border:1px solid currentColor}.status-offline{color:var(--snes-gray)}.status-connecting{color:var(--snes-yellow);animation:blink .5s infinite}.status-online{color:var(--snes-green)}.status-error{color:var(--error)}.chat-messages{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm)}.chat-empty{color:var(--snes-gray);text-align:center;padding:var(--space-lg)}.chat-empty .hint{font-size:var(--font-size-xs);margin-top:var(--space-sm);color:var(--snes-light-blue)}.chat-message{display:flex;gap:var(--space-sm);padding:var(--space-xs)}.message-icon{font-size:var(--font-size-sm);flex-shrink:0;width:16px}.message-content{flex:1;min-width:0}.message-content pre{font-family:var(--font-pixel);font-size:var(--font-size-xs);white-space:pre-wrap;word-break:break-word;margin:0}.message-time{font-size:6px;color:var(--snes-gray);display:block;margin-top:2px}.message-user .message-icon{color:var(--snes-yellow)}.message-assistant .message-icon{color:var(--snes-light-blue)}.message-system .message-icon{color:var(--snes-cyan)}.message-system .message-content pre{color:var(--snes-cyan);font-style:italic}.message-error .message-content pre{color:var(--error)}.chat-input-row{display:flex;gap:var(--space-sm);padding-top:var(--space-sm);border-top:2px solid var(--snes-gray);margin-top:var(--space-sm)}.chat-input{flex:1;font-size:var(--font-size-xs)}.chat-send-btn{flex-shrink:0;min-width:60px;font-size:var(--font-size-xs)}.chat-send-btn.loading{animation:blink .3s infinite}.gate-screen{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--space-md)}.gate-container{width:100%;max-width:320px}.gate-title{font-size:var(--font-size-sm);color:var(--accent);text-align:center;margin-bottom:var(--space-md)}.gate-subtitle{font-size:var(--font-size-xs);color:var(--snes-gray);text-align:center;margin-bottom:var(--space-lg)}.gate-prompt{font-size:var(--font-size-xs);color:var(--snes-light-blue);margin-bottom:var(--space-sm)}.gate-error{font-size:var(--font-size-xs);color:var(--error);margin-top:var(--space-sm);text-align:center}@supports (-webkit-touch-callout: none){.input,.chat-input{font-size:16px}}.chat-screen{height:100dvh;max-height:100dvh}@media (min-width: 768px){.screen{padding:var(--space-lg)}.gate-container{max-width:400px}.gate-title,.chat-header h1{font-size:var(--font-size-base)}.message-content pre,.chat-input{font-size:var(--font-size-sm)}.chat-send-btn{min-width:80px;font-size:var(--font-size-sm)}}@media (min-width: 1024px){.screen{max-width:800px;margin:0 auto}.gate-container{max-width:480px}.gate-title,.chat-header h1{font-size:var(--font-size-lg)}.message-content pre{font-size:var(--font-size-base)}}@media (min-width: 1280px){.screen{max-width:960px}}
