body{background-color:#1a1a1a;justify-content:center;align-items:center;height:100vh;margin:0;font-family:sans-serif;display:flex}#root{justify-content:center;width:100%;display:flex}:root{--bg-color:#1a1a1a;--panel-bg:#242424;--panel-bg-alpha:#242424cc;--primary:#fff;--primary-hover:#e5e5e5;--text-main:#fff;--text-muted:#9ca3af;--text-inverse:#000;--border:#404040;--shadow-color:#ffffff1a;--modal-shadow:#0006}:root.light-mode{--bg-color:#f3f4f6;--panel-bg:#fff;--panel-bg-alpha:#fffc;--primary:#111827;--primary-hover:#374151;--text-main:#111827;--text-muted:#6b7280;--text-inverse:#fff;--border:#d1d5db;--shadow-color:#0000001a;--modal-shadow:#00000026}body{background-color:var(--bg-color);color:var(--text-main);justify-content:center;align-items:center;height:100vh;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;display:flex}*{box-sizing:border-box}.game-container{background-color:var(--bg-color);flex-direction:column;width:100%;max-width:800px;height:100vh;max-height:900px;display:flex;position:relative;overflow:hidden}@media (width>=800px){.game-container{border:1px solid var(--border);border-radius:12px;height:90vh;box-shadow:0 20px 25px -5px #00000080}}.home-bg{background:var(--bg-color);overflow-y:auto}.home-content{width:100%;max-width:600px;margin:0 auto;padding:40px 20px}.home-header{text-align:center;margin-bottom:40px}.home-logo{width:100px;height:100px;filter:drop-shadow(0 0 10px var(--shadow-color));margin-bottom:16px}.home-header h1{margin:0 0 8px;font-size:28px}.home-header p{color:var(--text-muted);margin:0}.section-title{color:var(--text-muted);align-items:center;gap:8px;margin:0 0 16px;font-size:18px;display:flex}.challenge-section{margin-bottom:32px}.challenge-card{background:var(--panel-bg);border:1px solid var(--border);cursor:pointer;border-radius:12px;padding:24px;transition:all .2s;position:relative}.challenge-card:hover{border-color:var(--primary);transform:translateY(-2px)}.challenge-card.featured{border:2px solid var(--border)}.challenge-card.featured:hover{border-color:var(--primary)}.card-badge{background:var(--primary);color:var(--text-inverse);border-radius:12px;padding:4px 12px;font-size:12px;font-weight:700;position:absolute;top:-10px;right:20px}.challenge-card h3{margin:0 0 8px;font-size:20px}.challenge-card p{color:var(--text-muted);margin:0 0 16px;font-size:14px;line-height:1.5}.start-btn.mini{padding:8px 16px;font-size:14px}.archive-list{flex-direction:column;gap:12px;display:flex}.challenge-card.archive{padding:16px 20px}.challenge-card.archive h3{margin-bottom:4px;font-size:16px}.challenge-card.archive p{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:13px;overflow:hidden}.intro-bg{background:radial-gradient(circle at center, var(--panel-bg) 0%, var(--bg-color) 100%);justify-content:center;align-items:center}.back-to-home{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;font-size:14px;display:flex;position:absolute;top:20px;left:20px}.back-to-home:hover{color:var(--primary)}.intro-card{text-align:center;background:var(--panel-bg-alpha);border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;max-width:500px;padding:40px}.intro-logo{width:120px;height:120px;filter:drop-shadow(0 0 10px var(--shadow-color));object-fit:contain;margin-bottom:20px}.intro-card h1{color:var(--primary);margin:0 0 16px;font-size:24px}.intro-desc{color:var(--text-muted);margin-bottom:30px;font-size:16px;line-height:1.6}.start-btn{background-color:var(--primary);color:var(--text-inverse);cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:12px 24px;font-size:16px;font-weight:600;transition:all .2s;display:inline-flex}.start-btn:hover{background-color:var(--primary-hover);transform:translateY(-2px)}.rpg-header{background-color:var(--panel-bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;padding:16px 20px;display:flex}.rpg-title-wrap{flex:1}.rpg-title{margin:0 0 8px;font-size:18px;font-weight:700}.rpg-subtitle{color:var(--text-muted);align-items:flex-start;gap:6px;margin:0;font-size:13px;line-height:1.4;display:flex}.rpg-icon{color:var(--primary);flex-shrink:0;margin-top:2px}.rpg-status{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.quit-btn{color:var(--text-muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;padding:4px 8px;font-size:12px}.quit-btn:hover{color:#fff;border-color:#fff}.status-badge{color:#ef4444;background-color:#ef44441a;border:1px solid #ef444433;border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;display:flex}.theme-toggle-btn{color:var(--text-muted);border:1px solid var(--border);cursor:pointer;z-index:10;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex;position:absolute;top:20px;right:20px}.theme-toggle-btn:hover{background:var(--panel-bg);color:var(--primary);border-color:var(--primary)}.rpg-chat-window{flex-direction:column;flex:1;display:flex;overflow:hidden}.rpg-chat-scroll{flex-direction:column;flex:1;gap:20px;padding:20px;display:flex;overflow-y:auto}.rpg-bubble-row{align-items:flex-start;gap:12px;display:flex}.rpg-bubble-row.user{flex-direction:row-reverse}.rpg-avatar{flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:20px;display:flex}.rpg-bubble-row.user .rpg-avatar{background-color:#1f2937;border-radius:50%}.rpg-avatar-img{object-fit:contain;width:100%;height:100%}.rpg-bubble{word-break:break-word;border-radius:12px;max-width:80%;padding:12px 16px;font-size:15px;line-height:1.5}.rpg-bubble.assistant{background-color:var(--panel-bg);border:1px solid var(--border);border-top-left-radius:4px}.rpg-bubble.user{background-color:var(--primary);color:var(--text-inverse);border-top-right-radius:4px}.typing-indicator span{background-color:var(--text-muted);border-radius:50%;width:6px;height:6px;margin:0 2px;animation:1.4s ease-in-out infinite both typing;display:inline-block}.typing-indicator span:first-child{animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes typing{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.rpg-input-area{background-color:var(--panel-bg);border-top:1px solid var(--border);gap:12px;padding:16px 20px;display:flex}.rpg-input-area input{background-color:var(--bg-color);border:1px solid var(--border);color:var(--text-main);border-radius:8px;outline:none;flex:1;padding:12px 16px;font-size:15px;transition:border-color .2s}.rpg-input-area input:focus{border-color:var(--primary)}.rpg-input-area input:disabled{opacity:.5;cursor:not-allowed}.rpg-input-area button{background-color:var(--primary);color:var(--text-inverse);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;width:46px;height:46px;transition:background-color .2s;display:flex}.rpg-input-area button:hover:not(:disabled){background-color:var(--primary-hover)}.rpg-input-area button:disabled{opacity:.5;cursor:not-allowed}.victory-modal-overlay{z-index:100;background-color:#000c;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:absolute;inset:0}.victory-modal{background-color:var(--panel-bg);border:1px solid var(--border);text-align:center;max-width:400px;box-shadow:0 20px 40px var(--modal-shadow);border-radius:16px;padding:40px}.victory-modal h2{color:var(--primary);margin-top:0;font-size:28px}.victory-modal p{color:var(--text-main);margin-bottom:30px;line-height:1.6}.share-btn{background-color:var(--primary);width:100%;color:var(--text-inverse);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;margin-bottom:12px;padding:14px;font-size:16px;font-weight:600;display:flex}.share-btn:hover{background-color:var(--primary-hover)}.back-btn{width:100%;color:var(--text-muted);border:1px solid var(--border);cursor:pointer;background-color:#0000;border-radius:8px;padding:12px;font-size:14px}.back-btn:hover{color:#fff;background-color:#ffffff0d}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.challenge-card.empty{cursor:default}.challenge-card.empty:hover{border-color:var(--border);transform:none}
