:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.App{display:flex;flex-direction:column;height:100vh;width:100vw;background-color:#282c34;color:#fff;text-align:left}.App-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background-color:#20232a;border-bottom:1px solid #444}.App-header h1{margin:0;font-size:1.5rem}.status-indicators{display:flex;gap:1rem}.App-body{flex-grow:1;padding:2rem;overflow-y:auto}.main-container{display:flex;gap:2rem;height:100%}.game-content{flex-grow:1;display:flex;flex-direction:column;gap:1.5rem}.lobby-sidebar{width:220px;flex-shrink:0;background-color:#20232a;padding:1rem;border-radius:8px;display:flex;flex-direction:column;gap:1rem}.lobby-sidebar h2,.lobby-sidebar h3{margin-top:0;border-bottom:1px solid #444;padding-bottom:.5rem;font-size:1rem}.lobby-sidebar h3{font-size:.85rem}.lobby-sidebar ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem;max-height:240px;overflow-y:auto}.lobby-sidebar li{background-color:#282c34;padding:.4rem;border-radius:4px;font-size:.85rem}.lobby-sidebar li strong{display:block}.lobby-sidebar li small{color:#aaa}.start-game-button{margin-top:auto;width:100%;padding:.75rem;font-size:1rem;background-color:#61dafb;border:none;border-radius:4px;color:#20232a;cursor:pointer;font-weight:700}.start-game-button:hover{background-color:#52b8d8}.character-form,form{background-color:#20232a;padding:1.5rem;border-radius:8px}.character-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.character-form h2,form h2{margin-top:0}.character-form div,form div{margin-bottom:1rem}.character-form label,form label{display:block;margin-bottom:.5rem}.character-form input,.character-form textarea,.character-form select,form input,form textarea,form select{width:100%;padding:.5rem;border-radius:4px;border:1px solid #444;background-color:#282c34;color:#fff;box-sizing:border-box}form button{padding:.75rem 1.5rem;border:none;border-radius:4px;background-color:#61dafb;color:#20232a;cursor:pointer;font-weight:700}.voting-container{background-color:#20232a;padding:.75rem;border-radius:8px}.voting-container h2{margin:0 0 .5rem;font-size:1rem}.voting-header h2{margin:0}.voting-hidden-placeholder{color:#666;font-style:italic;font-size:.9rem;padding:.5rem 0}.options-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.option-button{background-color:#282c34;border:1px solid #444;color:#fff;padding:.5rem .65rem;border-radius:4px;cursor:pointer;text-align:left;display:flex;flex-direction:column;justify-content:space-between;font-size:.875rem;gap:.2rem}.option-button:hover{background-color:#3a3f47}.option-button:disabled{cursor:not-allowed;background-color:#282c34;opacity:.6}.vote-avatars{display:flex;flex-wrap:wrap;gap:3px;margin-top:6px}.vote-avatar{width:26px;height:26px;border-radius:50%;border:1px solid rgba(255,255,255,.15)}.vote-avatar-fallback{width:26px;height:26px;border-radius:50%;background:#ffffff1a;font-size:.65rem;display:flex;align-items:center;justify-content:center;color:#ccc}.end-story-container{margin-top:.75rem;border-top:1px solid #444;padding-top:.75rem;text-align:center}.end-story-button{background-color:#f44336;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-weight:700}.end-story-button:hover{background-color:#d32f2f}.end-story-button:disabled{opacity:.6;cursor:not-allowed}.story-scroll-container{overflow-y:auto;max-height:62vh;display:flex;flex-direction:column;gap:1rem;padding:1.5rem;background:#20232a;border-radius:8px;scroll-behavior:smooth}.story-scroll-container--ended{max-height:70vh}.story-segment{padding:1rem 1.25rem;border-radius:6px;line-height:1.7;font-size:1rem}.story-segment--narration{background:#282c34;color:#e8e8e8}.story-segment--choice{background:#1a2a1a;border-left:3px solid #4ade80;color:#a8d8a8;font-style:italic}.story-segment--choice:before{content:"Your Choice: ";font-weight:700;font-style:normal}.story-empty{color:#666;text-align:center;padding:2rem;font-style:italic}.option-button--selected{border-color:#4ade80;background-color:#1a2a1a;color:#4ade80}.start-game-button:disabled{opacity:.6;cursor:not-allowed}.voting-timer{background-color:#282c34;padding:.75rem;border-radius:6px}.voting-timer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem;font-size:.85rem;color:#aaa}.voting-timer-seconds{font-weight:700;color:#fff}.timer-bar-track{background:#444;border-radius:4px;height:6px;overflow:hidden}.timer-bar-fill{height:100%;border-radius:4px;transition:width 1s linear,background-color .5s}.sidebar-meta-row{display:flex;flex-direction:column;gap:.5rem}.sidebar-state-block,.sidebar-settings-block{min-width:0}.lobby-state-label{margin:0;font-size:.8rem;color:#aaa;font-style:italic}.player-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0}.player-card-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.player-card-badges{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.alignment-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;padding:.1rem .35rem;border-radius:3px;background:#ffffff14}.voted-badge{font-size:.75rem;color:#4ade80}.player-appearance{display:block;color:#777;font-size:.75rem;margin-top:.2rem}.offline-badge{font-size:.75rem;color:#f87171}.no-prompts-placeholder{color:#666;font-style:italic;font-size:.9rem;margin:0}.sidebar-mobile-toggle{display:none;background:none;border:1px solid #444;color:#aaa;padding:.3rem .75rem;border-radius:4px;cursor:pointer;font-size:.85rem;align-self:flex-start;margin-top:.25rem}.discord-icon-wrapper{position:relative;display:flex;align-items:center;gap:4px;cursor:default}.discord-icon{width:20px;height:20px;fill:#5865f2}.discord-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.discord-status-dot.connected{background:#4ade80}.discord-status-dot.disconnected{background:#f87171}.socket-icon-wrapper{position:relative;display:flex;align-items:center;gap:4px;cursor:default}.socket-icon{width:20px;height:20px;fill:#aaa}.socket-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.socket-status-dot.connected{background:#4ade80}.socket-status-dot.connecting{background:#facc15}.socket-status-dot.disconnected{background:#f87171}.segment-image-container{width:100%;aspect-ratio:16 / 9;border-radius:6px;overflow:hidden;background:#1a1d23;margin-bottom:.75rem}.segment-image-placeholder{width:100%;height:100%;background:linear-gradient(90deg,#20232a 25%,#282c34,#20232a 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.segment-image-placeholder--error{background:#2a1a1a;animation:none}.segment-image{width:100%;height:100%;object-fit:cover;display:block}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ending-container{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem;background:#20232a;border-radius:8px}.ending-spinner{width:48px;height:48px;border:4px solid #444;border-top-color:#61dafb;border-radius:50%;animation:spin 1s linear infinite}.modal-backdrop{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:100}.modal-container{position:relative;background:#20232a;border:1px solid #444;border-radius:10px;padding:1.5rem;width:min(480px,92vw);max-height:90vh;overflow-y:auto}.modal-close-btn{position:absolute;top:.75rem;right:.75rem;background:none;border:none;color:#888;font-size:1rem;cursor:pointer;line-height:1;padding:.25rem .4rem;border-radius:4px}.modal-close-btn:hover{color:#fff;background:#ffffff14}.player-card--editable{cursor:pointer;border-radius:4px;transition:background .15s}.player-card--editable:hover{background:#ffffff0d}.player-card-edit-hint{font-weight:400;font-size:.8rem;color:#666;margin-left:.2rem}.player-card--editable:hover .player-card-edit-hint{color:#b89ee0}.player-card--viewable{cursor:pointer;border-radius:4px;transition:background .15s}.player-card--viewable:hover{background:#ffffff0d}.story-segment--narration{position:relative}.segment-play-btn{position:absolute;top:8px;right:8px;background:#2a2d35d9;border:1px solid #444;color:#888;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.7rem;padding:0;transition:border-color .15s,color .15s,opacity .15s;opacity:0}.story-segment--narration:hover .segment-play-btn{opacity:1}.segment-play-btn--playing{border-color:#7c5cbf;color:#b89ee0;opacity:1}.segment-play-spinner{display:inline-block;width:10px;height:10px;border:2px solid #555;border-top-color:#b89ee0;border-radius:50%;animation:spin .7s linear infinite}.narration-controls{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.narration-btn{background:#2a2d35;border:1px solid #444;color:#888;border-radius:6px;padding:5px 12px;cursor:pointer;font-size:.85rem;transition:border-color .15s,color .15s}.narration-btn.active{border-color:#7c5cbf;color:#b89ee0}.narration-volume{display:flex;align-items:center;gap:.35rem}.narration-volume-icon{font-size:.85rem;width:1.2rem;text-align:center}.narration-volume-slider{-webkit-appearance:none;appearance:none;width:80px;height:4px;border-radius:2px;background:#444;outline:none;cursor:pointer}.narration-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#7c5cbf;cursor:pointer;transition:background .15s}.narration-volume-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#7c5cbf;border:none;cursor:pointer}.narration-volume-slider:hover::-webkit-slider-thumb{background:#b89ee0}.narration-controls select{background:#2a2d35;border:1px solid #444;color:#ccc;border-radius:6px;padding:4px 8px;font-size:.85rem}@media(max-width:768px){.App{height:auto;min-height:100dvh}.App-header{padding:.75rem 1rem;flex-wrap:wrap;gap:.5rem}.App-header h1{font-size:1.1rem}.App-body{padding:.75rem}.main-container{flex-direction:column;height:auto}.game-content,.lobby-sidebar{width:100%}.sidebar-meta-row{flex-direction:row;align-items:flex-start;gap:1rem}.sidebar-state-block,.sidebar-settings-block{flex:1}.story-scroll-container{max-height:50vh}.options-grid,.character-form-row{grid-template-columns:1fr}.sidebar-mobile-toggle{display:flex}.sidebar-collapsible.collapsed{display:none}}@media(min-width:769px){.sidebar-collapsible{display:flex;flex-direction:column}}.voting-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.token-badge{font-size:1rem;color:#b89ee0;letter-spacing:.05em;-webkit-user-select:none;user-select:none}.option-card{display:flex;flex-direction:column;gap:.25rem}.option-force-button{background:none;border:1px solid #555;color:#b89ee0;padding:.2rem .4rem;border-radius:3px;font-size:.75rem;font-family:inherit;cursor:pointer;transition:border-color .15s,color .15s}.option-force-button:hover{border-color:#b89ee0;color:#d4bef5}.custom-prompt-waiting{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#1e1f2a;border:1px solid #3a3b4a;border-radius:6px;color:#aaa;font-size:.875rem;margin-bottom:.5rem}.custom-prompt-trigger{margin-top:.5rem;text-align:center}.custom-prompt-trigger-button{background:none;border:1px solid #7c5cbf;color:#b89ee0;padding:.4rem .9rem;border-radius:4px;font-size:.85rem;font-family:inherit;cursor:pointer;transition:border-color .15s,background .15s}.custom-prompt-trigger-button:hover{background:#7c5cbf26;border-color:#b89ee0}.custom-prompt-container{background-color:#1e1f2a;border:1px solid #3a3b4a;padding:.75rem;border-radius:6px;margin-bottom:.5rem}.custom-prompt-title{margin:0 0 .35rem;font-size:.9rem;color:#d4bef5}.custom-prompt-hint{color:#888;font-size:.8rem;margin:0 0 .5rem}.custom-prompt-input-wrapper{position:relative;margin-bottom:.5rem}.custom-prompt-textarea{display:block;width:100%;min-height:90px;padding:.6rem .75rem;border-radius:4px;border:1px solid #555;background-color:#282c34;color:#e8e8e8;box-sizing:border-box;resize:vertical;font-family:inherit;font-size:.875rem;line-height:1.6;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none}.custom-prompt-textarea::placeholder{color:#555}.custom-prompt-textarea:focus{outline:none;border-color:#7c5cbf;box-shadow:0 0 0 2px #7c5cbf33}.custom-prompt-autocomplete{position:absolute;top:100%;left:0;right:0;z-index:10;background:#20232a;border:1px solid #444;border-top:none;border-radius:0 0 4px 4px;list-style:none;margin:0;padding:0;max-height:140px;overflow-y:auto}.custom-prompt-autocomplete-item{padding:.35rem .5rem;cursor:pointer;font-size:.875rem;color:#ccc}.custom-prompt-autocomplete-item:hover{background:#282c34;color:#b89ee0}.custom-prompt-footer{display:flex;justify-content:space-between;align-items:center}.custom-prompt-char-count{font-size:.75rem;color:#666}.custom-prompt-buttons{display:flex;gap:.4rem}.custom-prompt-cancel{background:#282c34;border:1px solid #444;color:#aaa;padding:.35rem .75rem;border-radius:4px;font-size:.85rem;font-family:inherit;cursor:pointer;transition:border-color .15s,color .15s}.custom-prompt-cancel:hover{border-color:#666;color:#ccc}.custom-prompt-submit{background:#61dafb;border:none;color:#20232a;padding:.35rem .75rem;border-radius:4px;font-size:.85rem;font-weight:700;font-family:inherit;cursor:pointer;transition:background .15s}.custom-prompt-submit:hover{background:#52b8d8}.custom-prompt-submit:disabled{opacity:.5;cursor:not-allowed}.sign-out-btn{background:none;border:1px solid #555;color:#aaa;font-size:.7rem;padding:.15rem .5rem;border-radius:3px;cursor:pointer;margin-left:6px;flex-shrink:0}.sign-out-btn:hover{color:#f87171;border-color:#f87171}.discord-status-dot.standalone-unauthenticated{background:#fbbf24}.copy-invite-btn{width:100%;padding:.4rem;font-size:.8rem;background-color:#282c34;border:1px solid #444;color:#ccc;border-radius:4px;cursor:pointer;text-align:center;transition:background .15s,border-color .15s}.copy-invite-btn:hover{background-color:#3a3f47;border-color:#61dafb;color:#fff}.standalone-login{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1.25rem;text-align:center}.standalone-login h1{margin:0;font-size:2rem}.standalone-login p{color:#aaa;margin:0;max-width:400px}.discord-login-btn{display:flex;align-items:center;gap:.6rem;background-color:#5865f2;color:#fff;border:none;border-radius:8px;padding:.75rem 2rem;font-size:1.1rem;font-weight:600;cursor:pointer;transition:background .15s}.discord-login-btn:hover{background-color:#4752c4}.discord-login-btn svg{width:24px;height:24px;fill:#fff}.login-footer{color:#666;font-size:.8rem;margin-top:.5rem}.lobby-join{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1rem;text-align:center}.lobby-join h2{margin:0;font-size:1.5rem}.lobby-join p{color:#aaa;margin:0;max-width:400px}.lobby-join-form{display:flex;gap:.5rem;margin-top:.5rem}.lobby-join-form input{padding:.6rem 1rem;border-radius:6px;border:1px solid #444;background-color:#282c34;color:#fff;font-size:1rem;width:250px}.lobby-join-form input::placeholder{color:#666}.lobby-join-btn{padding:.6rem 1.25rem;border-radius:6px;border:none;background-color:#61dafb;color:#20232a;font-weight:600;font-size:1rem;cursor:pointer}.lobby-join-btn:hover{background-color:#52b8d8}.lobby-join-btn:disabled{opacity:.5;cursor:not-allowed}.auth-callback{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:1rem;text-align:center;background:#282c34;color:#fff;font-family:inherit}.auth-callback-spinner{width:32px;height:32px;border:3px solid #444;border-top-color:#61dafb;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-callback-error{color:#f87171;max-width:300px}.auth-callback-retry{padding:.5rem 1rem;border-radius:4px;border:1px solid #61dafb;background:transparent;color:#61dafb;cursor:pointer}.auth-callback-retry:hover{background:#61dafb1a}.auth-expiry-banner{background:#fbbf2426;border-bottom:1px solid rgba(251,191,36,.3);color:#fbbf24;text-align:center;padding:.5rem 1rem;font-size:.85rem}.tool-overlay{background:#20232a;border-radius:8px;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.dice-header{display:flex;justify-content:space-between;align-items:center}.dice-header h2{margin:0;font-size:1.2rem}.dice-badges{display:flex;gap:.5rem}.dice-dc-badge{background:#444;color:#fff;padding:.2rem .6rem;border-radius:4px;font-weight:700;font-size:.9rem}.dice-mod-badge{padding:.2rem .6rem;border-radius:4px;font-weight:600;font-size:.8rem}.dice-mod-badge.advantage{background:#4ade8033;color:#4ade80}.dice-mod-badge.disadvantage{background:#f8717133;color:#f87171}.dice-prompt{color:#ccc;font-size:1rem;margin:0;font-style:italic}.dice-actions{display:flex;align-items:center;gap:1rem}.dice-roll-btn{padding:.75rem 2rem;font-size:1.1rem;font-weight:700;background:#61dafb;color:#20232a;border:none;border-radius:8px;cursor:pointer;transition:background .15s}.dice-roll-btn:hover:not(:disabled){background:#52b8d8}.dice-roll-btn:disabled{opacity:.5;cursor:not-allowed}.dice-timer{color:#aaa;font-size:.9rem}.dice-results{display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto}.dice-player{display:flex;justify-content:space-between;align-items:center;padding:.4rem .6rem;border-radius:4px;background:#282c34;font-size:.9rem}.dice-player.waiting{color:#666}.dice-player.pass{border-left:3px solid #4ade80}.dice-player.fail{border-left:3px solid #f87171}.dice-roll-result{display:flex;align-items:center;gap:.4rem}.dice-pass{color:#4ade80;font-weight:700}.dice-fail{color:#f87171;font-weight:700}.puzzle-form{display:flex;gap:.5rem}.puzzle-input{flex:1;padding:.6rem 1rem;border-radius:6px;border:1px solid #444;background:#282c34;color:#fff;font-size:1rem}.puzzle-input::placeholder{color:#666}.puzzle-solved{color:#4ade80;font-weight:700;font-size:1.1rem;text-align:center;padding:.5rem}.puzzle-hints{margin-top:.5rem}.puzzle-hint{color:#fbbf24;font-size:.9rem;margin:.25rem 0}.puzzle-attempts{margin-top:.5rem;display:flex;flex-direction:column;gap:.3rem}.puzzle-player{display:flex;gap:.5rem;align-items:center}.puzzle-answers{display:flex;gap:.3rem;flex-wrap:wrap}.puzzle-attempt-badge{background:#3a1a1a;color:#f87171;padding:.1rem .4rem;border-radius:3px;font-size:.8rem}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}
