.toast-container{z-index:10000;pointer-events:none;flex-direction:column;gap:12px;max-width:400px;display:flex;position:fixed;top:20px;right:20px}@media (width<=768px){.toast-container{max-width:none;inset:auto 20px 20px;bottom:max(20px, env(safe-area-inset-bottom));left:max(20px, env(safe-area-inset-left));right:max(20px, env(safe-area-inset-right))}}.toast{pointer-events:auto;background:#fff;border-radius:8px;align-items:center;gap:12px;min-width:280px;max-width:100%;padding:16px;animation:.3s ease-out toast-slide-in;display:flex;box-shadow:0 4px 12px #00000026}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@media (width<=768px){@keyframes toast-slide-in{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}}.toast__icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:18px;font-weight:700;display:flex}.toast__message{color:#1a1a1a;flex:1;font-size:14px;line-height:1.4}.toast__close{color:#666;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:18px;font-weight:700;transition:background-color .2s;display:flex}.toast__close:hover{background-color:#0000000d}.toast__close:active{background-color:#0000001a}.toast--success{border-left:4px solid #22c55e}.toast--success .toast__icon{color:#22c55e;background-color:#dcfce7}.toast--error{border-left:4px solid #ef4444}.toast--error .toast__icon{color:#ef4444;background-color:#fee2e2}.toast--warning{border-left:4px solid #f59e0b}.toast--warning .toast__icon{color:#f59e0b;background-color:#fef3c7}.toast--info{border-left:4px solid #3b82f6}.toast--info .toast__icon{color:#3b82f6;background-color:#dbeafe}.selection-grid{width:100%;margin:0;padding:0}.selection-grid--horizontal{scrollbar-width:thin;scrollbar-color:#78787880 #2828284d}.selection-grid--horizontal::-webkit-scrollbar{height:8px}.selection-grid--horizontal::-webkit-scrollbar-track{background:#2828284d;border-radius:4px}.selection-grid--horizontal::-webkit-scrollbar-thumb{background:#78787880;border-radius:4px}.selection-grid--horizontal::-webkit-scrollbar-thumb:hover{background:#969696b3}.selection-grid__item{cursor:pointer;text-align:left;color:var(--text-color,#e2e8f0);font-family:inherit;font-size:inherit;background:linear-gradient(135deg,#42424299 0%,#2c2c2c99 100%);border:2px solid #6464644d;border-radius:12px;flex-direction:column;width:100%;padding:1.5rem;transition:all .2s;display:flex;position:relative}.selection-grid__item:hover:not(:disabled){border-color:var(--accent-color,#7c3aed);background:linear-gradient(135deg,#505050b3 0%,#323232b3 100%);transform:translateY(-2px);box-shadow:0 8px 16px #0000004d}.selection-grid__item:active:not(:disabled){transform:translateY(0)}.selection-grid__item:focus:not(:focus-visible){outline:none}.selection-grid__item:focus-visible{outline:2px solid var(--accent-color,#7c3aed);outline-offset:2px}.selection-grid__item--disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.5)}.selection-grid__item--disabled:hover{box-shadow:none;border-color:#6464644d;transform:none}.selection-grid--cards .selection-grid__item{background:linear-gradient(135deg,#2a2a2a 0%,#1a1a1a 100%);border-radius:8px;min-width:200px;padding:1rem}.selection-grid--cards .selection-grid__item:hover:not(:disabled){border-color:var(--card-border-color,#fbbf24);box-shadow:0 4px 12px #fbbf2466}.selection-grid--choices .selection-grid__item{border:2px solid var(--border-color,#475569);text-align:center;background:linear-gradient(135deg,#334155 0%,#1e293b 100%);border-radius:8px;justify-content:center;align-items:center;gap:.5rem;min-height:180px;padding:1.25rem}.selection-grid--choices .selection-grid__item:hover:not(:disabled){border-color:var(--primary-color,#60a5fa);background:linear-gradient(135deg,#3b4f6b 0%,#2a3f5f 100%);transform:translateY(-4px);box-shadow:0 8px 16px #60a5fa4d}.selection-grid--archetypes .selection-grid__item{text-align:left;background:linear-gradient(135deg,#42424299 0%,#2c2c2c99 100%);border:2px solid #6464644d;border-radius:12px;gap:.75rem;padding:1.5rem}.selection-grid--archetypes .selection-grid__item:hover:not(:disabled){border-color:var(--accent-color,#7c3aed)}.selection-grid--genres .selection-grid__item{text-align:center;background:linear-gradient(135deg,#323232cc 0%,#1e1e1ecc 100%);border:2px solid #78787866;border-radius:16px;justify-content:center;align-items:center;gap:1rem;min-height:160px;padding:2rem}.selection-grid--genres .selection-grid__item:hover:not(:disabled){border-color:var(--primary-color,#60a5fa);background:linear-gradient(135deg,#464646e6 0%,#282828e6 100%);transform:scale(1.02);box-shadow:0 12px 24px #60a5fa4d}@media (width<=768px){.selection-grid__item{padding:1rem}.selection-grid--choices .selection-grid__item{min-height:150px;padding:1rem}.selection-grid--genres .selection-grid__item{min-height:140px;padding:1.5rem}}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.selection-grid{animation:.3s ease-in fadeIn}.genre-select{width:100%;margin:1rem 0}.genre-select__header{text-align:center;margin-bottom:1rem}.genre-select__header h2{color:var(--text-primary,#e0e0e0);margin-bottom:.25rem;font-size:1.5rem}.genre-select__subtitle{color:var(--text-secondary,#a0a0a0);margin:0;font-size:.9rem}.genre-content{flex-direction:column;align-items:center;gap:.5rem;width:100%;display:flex;position:relative}.genre-icon{margin-bottom:.25rem;font-size:2.5rem;line-height:1}.genre-name{color:var(--text-primary,#fff);text-align:center;font-size:1.1rem;font-weight:600;line-height:1.2}.genre-description{color:var(--text-secondary,#b0b0b0);text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.85rem;line-height:1.3;display:-webkit-box;overflow:hidden}.genre-selected-badge{background:var(--success-color,#10b981);color:#fff;border-radius:12px;padding:.25rem .75rem;font-size:.75rem;font-weight:600;position:absolute;top:-.5rem;right:-.5rem;box-shadow:0 2px 4px #0000004d}.genre-showcase-badge{color:#1a202c;white-space:nowrap;background:linear-gradient(135deg,#d69e2e,#f6e05e);border-radius:10px;padding:.2rem .6rem;font-size:.7rem;font-weight:700;position:absolute;top:-.5rem;left:-.5rem;box-shadow:0 2px 4px #0000004d}@media (width<=768px){.genre-select__header h2{font-size:1.25rem}.genre-icon{font-size:2rem}.genre-name{font-size:1rem}.genre-description{font-size:.8rem}}.player-list{flex-direction:column;gap:.75rem;width:100%;display:flex}.player-list-empty{text-align:center;color:var(--text-secondary,#a0a0a0);padding:2rem;font-style:italic}.player-list-item{background:#1e1e1e99;border:2px solid #6464644d;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem 1rem;transition:all .2s;display:flex}.player-list-item--local{background:#60a5fa1a;border-color:#60a5fa4d}.player-list-item:hover{background:#282828b3}.player-list-item--local:hover{background:#60a5fa26}.player-info{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.connection-status{flex-shrink:0;font-size:.75rem;line-height:1}.player-name{color:var(--text-primary,#e0e0e0);flex:1;align-items:center;gap:.5rem;font-size:1rem;font-weight:500;display:flex}.you-badge{color:var(--primary-color,#60a5fa);font-size:.75rem;font-style:italic;font-weight:400}.ready-status{white-space:nowrap;border-radius:12px;padding:.25rem .75rem;font-size:.85rem;font-weight:500}.ready-status.ready{color:var(--success-color,#10b981);background:#10b98133}.ready-status.not-ready{color:var(--warning-color,#fbbf24);background:#fbbf2433}.status-text{white-space:nowrap;border-radius:12px;padding:.25rem .75rem;font-size:.85rem;font-weight:500}.status-text.status-connecting{color:var(--warning-color,#fbbf24);background:#fbbf2433}.status-text.status-creating-character{color:var(--info-color,#60a5fa);background:#60a5fa33}.status-text.status-ready{color:var(--success-color,#10b981);background:#10b98133}.status-text.status-booted{color:var(--error-color,#ef4444);background:#ef444433}.boot-button{color:var(--error-color,#ef4444);cursor:pointer;white-space:nowrap;background:#ef44441a;border:1px solid #ef44444d;border-radius:6px;flex-shrink:0;min-width:32px;padding:.25rem .5rem;font-size:.85rem;transition:all .2s}.boot-button:hover{background:#ef444433;border-color:#ef444480}.boot-button--confirm{background:#ef44444d;border-color:#ef444499;animation:.5s ease-in-out infinite pulse-confirm}@keyframes pulse-confirm{0%,to{opacity:1}50%{opacity:.7}}@media (width<=768px){.player-list-item{padding:.65rem .85rem}.player-name{font-size:.9rem}.ready-status,.status-text{padding:.2rem .6rem;font-size:.75rem}.you-badge{font-size:.7rem}}.enhanced-lobby-container{color:#fff;background:linear-gradient(135deg,#1a202c 0%,#2d3748 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.enhanced-lobby-content{width:100%;max-width:800px}.enhanced-lobby-title{text-align:center;color:var(--color-brass,#d4af37);text-shadow:2px 2px 4px #0000004d;margin-bottom:2rem;font-size:2rem;font-weight:700}.lobby-panel{background:#0000004d;border:1px solid #ffffff1a;border-radius:8px;margin-bottom:20px;padding:20px;transition:all .3s}.lobby-panel:hover{background:#00000059;border-color:#fff3}.lobby-panel h2{color:var(--color-brass,#d4af37);justify-content:space-between;align-items:center;margin:0 0 16px;font-size:1.2rem;font-weight:600;display:flex}.lobby-panel-section{margin-top:1.5rem}.lobby-panel-section h3{color:#ffffffe6;margin:0 0 .75rem;font-size:1rem;font-weight:500}.player-count{color:#fff9;margin-top:.5rem;font-size:.85rem}.genre-display-panel{background:#0000004d;border:1px solid #ffffff1a;border-radius:8px;margin-bottom:20px;padding:20px}.genre-display-panel h2{color:var(--color-brass,#d4af37);margin:0 0 16px;font-size:1.2rem;font-weight:600}.genre-display-content{background:#7c3aed1a;border:2px solid #7c3aed4d;border-radius:8px;align-items:center;gap:1rem;padding:1rem;display:flex}.genre-display-badge{font-size:3rem;line-height:1}.genre-display-text{flex:1}.genre-display-name{color:#fffffff2;margin-bottom:.25rem;font-size:1.25rem;font-weight:600}.genre-display-description{color:#ffffffb3;font-size:.9rem}.genre-panel .settings-form{flex-direction:column;gap:12px;display:flex}.setting-label{flex-direction:column;gap:6px;display:flex}.setting-label>span{color:#fffc;font-size:.9rem;font-weight:500}.lobby-select{color:#fff;cursor:pointer;background:#0000004d;border:1px solid #fff3;border-radius:6px;padding:10px 12px;font-size:.95rem;transition:all .2s}.lobby-select:hover:not(:disabled){background:#0006;border-color:#ffffff4d}.lobby-select:focus{border-color:#60a5fa99;outline:none;box-shadow:0 0 0 3px #60a5fa1a}.lobby-select:disabled{opacity:.5;cursor:not-allowed}.genre-description{color:#ffffffe6;background:#60a5fa1a;border-left:3px solid #60a5fa80;border-radius:4px;padding:10px;font-size:.9rem;font-style:italic}.hook-display{flex-direction:column;gap:12px;display:flex}.hook-text{color:#fffffff2;background:#0000004d;border:1px solid #ffffff1a;border-radius:6px;min-height:80px;padding:14px;font-size:.95rem;line-height:1.6}.hook-actions{gap:8px;display:flex}.hook-edit{flex-direction:column;gap:12px;display:flex}.hook-textarea{color:#fff;resize:vertical;background:#0000004d;border:1px solid #fff3;border-radius:6px;padding:12px;font-family:inherit;font-size:.95rem;line-height:1.6}.hook-textarea:focus{border-color:#60a5fa99;outline:none;box-shadow:0 0 0 3px #60a5fa1a}.hook-edit-actions{gap:8px;display:flex}.character-regen-btn{margin-left:auto}.character-preview{flex-direction:column;gap:10px;display:flex}.character-field{background:#0003;border-left:3px solid #60a5fa4d;border-radius:4px;gap:10px;padding:10px;display:flex}.field-label{color:#60a5fa;min-width:90px;font-weight:600}.field-value{color:#ffffffe6;flex:1}.player-item{background:#0003;border:1px solid #ffffff1a;border-radius:6px;justify-content:space-between;align-items:center;padding:12px;transition:all .2s;display:flex}.player-item:hover{background:#0000004d;border-color:#fff3}.player-local{background:#60a5fa0d;border-color:#60a5fa4d}.player-info{flex-direction:column;gap:4px;display:flex}.player-name{color:#fff;font-weight:600}.player-status{font-size:.85rem}.player-status.ready{color:#22c55e}.player-status.not-ready{color:#9ca3af}.connection-indicator{border-radius:50%;width:10px;height:10px}.connection-indicator.green{background:#22c55e}.connection-indicator.yellow{background:#eab308}.connection-indicator.red{background:#ef4444}.ready-checkbox{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.ready-checkbox input[type=checkbox]{cursor:pointer;accent-color:#22c55e;width:20px;height:20px}.ready-label{color:#ffffffe6;font-size:.9rem;font-weight:500}.room-code-panel{background:#60a5fa1a;border-color:#60a5fa4d}.room-code-input-container{align-items:center;gap:10px;display:flex}.room-code-input{color:#fff;text-align:center;text-transform:uppercase;letter-spacing:.1em;background:#0000004d;border:1px solid #fff3;border-radius:6px;flex:1;padding:12px;font-size:1.2rem;font-weight:600}.room-code-input:focus{border-color:#60a5fa99;outline:none;box-shadow:0 0 0 3px #60a5fa1a}.room-code-input::placeholder{color:#fff6;text-transform:none;letter-spacing:normal}.room-code-input:disabled{opacity:.6;cursor:not-allowed}.connection-status{text-align:center;border-radius:6px;margin-top:12px;padding:10px 14px;font-size:.9rem;font-weight:500}.connection-status.connecting{color:#fbbf24;background:#fbbf2426;border:1px solid #fbbf244d}.connection-status.connected{color:#22c55e;background:#22c55e26;border:1px solid #22c55e4d}.connection-status.failed{color:#ef4444;background:#ef444426;border:1px solid #ef44444d}.send-link-panel{background:#60a5fa1a;border-color:#60a5fa4d}.btn-share{justify-content:center;align-items:center;gap:8px;width:100%;max-width:300px;font-size:1rem;display:flex}.share-icon{font-size:1.2rem}.btn{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:6px;padding:8px 16px;font-size:.9rem;font-weight:500;transition:all .2s}.btn:hover:not(:disabled){background:#ffffff26;border-color:#ffffff4d;transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-sm{padding:6px 12px;font-size:.85rem}.btn-lg{padding:14px 28px;font-size:1.1rem}.btn-primary{background:#60a5fa4d;border-color:#60a5fa80}.btn-primary:hover:not(:disabled){background:#60a5fa66;border-color:#60a5fa99}.btn-ready{background:#22c55e4d;border-color:#22c55e80}.btn-ready:hover:not(:disabled){background:#22c55e66;border-color:#22c55e99}.lobby-actions{text-align:center;margin-top:24px}.start-btn{width:100%;max-width:400px}body.genre-fantasy{--color-brass:#d4af37;--theme-primary:#d4af374d}body.genre-cyberpunk{--color-brass:#0ff;--theme-primary:#00ffff4d}body.genre-gothic{--color-brass:#8b0000;--theme-primary:#8b00004d}body.genre-space{--color-brass:#9333ea;--theme-primary:#9333ea4d}body.genre-mystery{--color-brass:#f59e0b;--theme-primary:#f59e0b4d}@media (width<=640px){.enhanced-lobby-container{padding:16px}.enhanced-lobby-title{margin-bottom:1.5rem;font-size:1.5rem}.lobby-panel{padding:16px}.lobby-panel h2{font-size:1rem}.hook-actions,.hook-edit-actions{flex-direction:column}.btn,.btn-share{max-width:100%}.room-code-input-container{flex-direction:column}.room-code-input-container .btn{width:100%}.character-field{flex-direction:column;gap:6px}.field-label{min-width:auto}.ready-checkbox{justify-content:flex-end;min-width:90px}}.room-code-display-panel{background:#60a5fa1a;border-color:#60a5fa4d}.room-code-display{flex-direction:column;align-items:center;gap:16px;display:flex}.room-code-value{letter-spacing:.5em;color:var(--color-brass,#d4af37);text-shadow:0 0 10px #d4af374d;-webkit-user-select:all;user-select:all;cursor:text;background:#0006;border:2px solid #60a5fa80;border-radius:12px;padding:20px 30px;font-family:Courier New,monospace;font-size:2.5rem;font-weight:700}.room-code-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.room-code-hint{color:#fff9;text-align:center;margin:0;font-size:.9rem}.room-code-loading{flex-direction:column;align-items:center;gap:1rem;padding:2rem 0;display:flex}.room-code-loading .spinner{border:4px solid #60a5fa33;border-top-color:#60a5fa;border-radius:50%;width:48px;height:48px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.room-code-loading .room-code-hint{opacity:.7;margin-top:.5rem;font-size:.875rem}@media (width<=768px){.room-code-value{letter-spacing:.3em;padding:15px 20px;font-size:1.8rem}.room-code-actions{width:100%}.room-code-actions .btn{flex:1;min-width:140px}}.player-name-section{margin-bottom:1.5rem}.player-list-section{margin-top:1rem}.waiting-message{text-align:center;background:#fbbf241a;border:2px solid #fbbf244d;border-radius:8px;margin-top:1.5rem;padding:1rem}.waiting-message p{color:var(--warning-color,#fbbf24);margin:0;font-size:.95rem}.genre-selection-screen{background:linear-gradient(135deg,#0a0a0a 0%,#1a1a1a 100%);justify-content:center;align-items:center;width:100%;min-height:100vh;padding:2rem;display:flex}.genre-selection-screen.loading{justify-content:center;align-items:center;display:flex}.genre-selection-content{flex-direction:column;gap:3rem;width:100%;max-width:1200px;display:flex}.genre-selection-header{text-align:center}.genre-selection-title{color:var(--text-primary,#e0e0e0);margin-bottom:1rem;font-size:3rem;font-weight:700}.genre-selection-subtitle{color:var(--text-secondary,#a0a0a0);margin:0;font-size:1.2rem}.genre-selection-body{flex-direction:column;flex:1;align-items:stretch;gap:2rem;display:flex}.genre-selection-footer{justify-content:center;padding-top:2rem;display:flex}.button-group{align-items:center;gap:1rem;display:flex}.btn{cursor:pointer;border:none;border-radius:8px;min-width:150px;padding:1rem 2rem;font-size:1.1rem;font-weight:600;transition:all .2s}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 16px #7c3aed66}.btn-secondary:hover{background:#78787866;border-color:#aaaaaab3}@media (width<=768px){.genre-selection-screen{padding:1rem}.genre-selection-title{font-size:2rem}.genre-selection-subtitle{font-size:1rem}.genre-selection-content{gap:2rem}.button-group{flex-direction:column;width:100%}.btn{width:100%;min-width:unset}}.genre-tier-section{flex-direction:column;gap:1rem;display:flex}.genre-tier-label{letter-spacing:.08em;text-transform:uppercase;border-radius:6px;align-items:center;gap:.4rem;width:fit-content;padding:.35rem .75rem;font-size:.85rem;font-weight:700;display:inline-flex}.genre-tier-label--campfire{color:#fb923c;background:#fb923c26;border:1px solid #fb923c59}.genre-tier-label--hearthside{color:#94a3b8;background:#94a3b81a;border:1px solid #94a3b833}.genre-tier-section--locked{opacity:.7}.genre-locked-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;display:grid}.genre-locked-card{cursor:not-allowed;-webkit-user-select:none;user-select:none;filter:grayscale(.5);background:#28282899;border:1px solid #50505066;border-radius:10px;min-height:90px;padding:1rem;position:relative;overflow:hidden}.genre-locked-overlay{opacity:.7;font-size:1.1rem;position:absolute;top:.5rem;right:.6rem}.genre-locked-card .genre-name{color:#9ca3af;margin-bottom:.25rem;font-size:.95rem;font-weight:600}.genre-locked-card .genre-description{color:#6b7280;font-size:.78rem;line-height:1.4}.lobby-container{background:linear-gradient(135deg,#1a202c 0%,#2d3748 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.lobby-content{width:100%;max-width:600px}.lobby-title{text-align:center;color:var(--color-brass,#d4af37);text-shadow:2px 2px 4px #0000004d;margin-bottom:.5rem;font-size:3rem;font-weight:700}.lobby-subtitle{text-align:center;color:#fffc;margin-bottom:3rem;font-size:1.1rem;font-style:italic}.lobby-buttons{flex-direction:column;gap:15px;display:flex}.game-btn{color:#fff;cursor:pointer;text-align:left;background:#ffffff0d;border:2px solid #ffffff1a;border-radius:12px;align-items:center;gap:20px;width:100%;padding:20px 24px;font-size:1rem;transition:all .3s;display:flex}.game-btn:hover{background:#ffffff1a;border-color:#ffffff4d;transform:translateY(-2px);box-shadow:0 8px 20px #0000004d}.game-btn:active{transform:translateY(0)}.game-btn-primary{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-color:#0000}.game-btn-primary:hover{background:linear-gradient(135deg,#7c8ff0 0%,#8a5cb5 100%);box-shadow:0 8px 25px #667eea66}.game-btn-icon{flex-shrink:0;font-size:2rem}.game-btn-text{flex-direction:column;flex:1;gap:4px;display:flex}.game-btn-label{font-size:1.2rem;font-weight:600}.game-btn-subtitle{color:#ffffffb3;font-size:.9rem;font-weight:400}.section-divider{text-align:center;margin:10px 0;position:relative}.section-divider:before,.section-divider:after{content:"";background:#fff3;width:calc(50% - 80px);height:1px;position:absolute;top:50%}.section-divider:before{left:0}.section-divider:after{right:0}.section-divider span{color:#ffffff80;text-transform:uppercase;letter-spacing:1px;padding:0 20px;font-size:.9rem;font-weight:500}.lobby-footer{text-align:center;color:#fff6;margin-top:3rem;font-size:.85rem}.lobby-footer a{color:#ffffffb3;text-decoration:underline}.lobby-footer a:hover{color:#fff}.modal-overlay{z-index:1000;background:#000c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:#2d3748;border-radius:12px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000080}.modal-header{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:24px;display:flex}.modal-header h2{color:#fff;margin:0;font-size:1.5rem}.modal-close{color:#fff9;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:2rem;transition:all .2s;display:flex}.modal-close:hover{color:#fff;background:#ffffff1a}.modal-body{padding:24px}.saved-games-list{flex-direction:column;gap:12px;display:flex}.saved-game-item{color:#fff;cursor:pointer;text-align:left;background:#ffffff0d;border:2px solid #ffffff1a;border-radius:8px;justify-content:space-between;align-items:center;width:100%;padding:16px 20px;transition:all .3s;display:flex}.saved-game-item:hover{background:#ffffff1a;border-color:#ffffff4d;transform:translate(4px)}.saved-game-info{flex-direction:column;flex:1;gap:6px;display:flex}.saved-game-name{font-size:1.1rem;font-weight:600}.saved-game-meta{color:#fff9;gap:12px;font-size:.9rem;display:flex}.saved-game-theme{background:#667eea4d;border-radius:4px;padding:2px 8px;font-size:.85rem}.saved-game-date{font-variant-numeric:tabular-nums}.saved-game-arrow{color:#fff6;font-size:1.5rem;transition:transform .3s}.saved-game-item:hover .saved-game-arrow{color:#fffc;transform:translate(4px)}@media (width<=640px){.lobby-title{font-size:2.5rem}.lobby-subtitle{font-size:1rem}.game-btn{gap:15px;padding:16px 20px}.game-btn-icon{font-size:1.75rem}.game-btn-label{font-size:1.1rem}.game-btn-subtitle{font-size:.85rem}.section-divider:before,.section-divider:after{width:calc(50% - 60px)}}.game-log{padding:var(--space-md,16px);max-height:400px;margin-bottom:var(--space-lg,24px);border-left:3px solid var(--color-brass-dim,#a08850);font-size:.95rem;font-family:var(--font-ui,sans-serif);background:#0000004d;border-radius:6px;overflow-y:auto}.game-log::-webkit-scrollbar{width:8px}.game-log::-webkit-scrollbar-track{background:#0003;border-radius:4px}.game-log::-webkit-scrollbar-thumb{background:#4a546780;border-radius:4px}.game-log::-webkit-scrollbar-thumb:hover{background:#4a5467b3}.log-empty{text-align:center;color:var(--color-slate-light,#5f6a7f);padding:var(--space-lg,24px);font-style:italic}.log-show-earlier{width:100%;margin-bottom:var(--space-sm,8px);color:var(--color-slate-light,#5f6a7f);cursor:pointer;text-align:center;background:#4a546740;border:1px dashed #4a546766;border-radius:4px;padding:6px 0;font-size:.8rem;display:block}.log-show-earlier:hover{color:var(--color-cream,#f0e6d2);background:#4a546766}.log-entry{align-items:flex-start;gap:var(--space-md,16px);padding:var(--space-md,16px);margin-bottom:var(--space-sm,8px);background:#25253080;border-radius:4px;line-height:1.6;animation:.3s ease-out fadeIn;display:flex}.log-entry-narrative{font-family:var(--font-narrative,Georgia, serif);background:#8b5cb61f;border-left:2px solid #a78bfa80}.log-entry-encounter{border-left:2px solid var(--color-crimson,#a84448);background:#a844481f;font-weight:500}.log-entry-card{border-left:2px solid var(--color-green,#6b8e5f);background:#6b8e5f1f}.log-entry-system{border-left:2px solid var(--color-slate,#4a5467);color:var(--color-slate-light,#5f6a7f);background:#4a54671a;font-size:.85rem}.log-entry-debug{color:#969696e6;background:#64646414;border-left:2px solid #96969666;font-family:Courier New,Courier,monospace;font-size:.8rem}.log-entry-spotlight-in-progress{border-left:2px solid var(--color-brass-dim,#a08850);background:#c9a96126}.log-entry-card-selection{border-left:2px solid var(--color-green,#6b8e5f);background:#6b8e5f1a}.log-entry-waiting-in-progress{border-left:2px solid var(--color-brass-dim,#a08850);background:#a088501f}.log-entry-ai-loading{background:#8b5cb61f;border-left:2px solid #8b5cb680}.log-ai-progress-bar{width:100%;height:6px;margin-top:var(--space-sm,8px);background:#0000004d;border-radius:3px;overflow:hidden}.log-ai-progress-fill{background:var(--color-brass-dim,#a08850);height:100%;transition:width .3s}.log-entry-placeholder{border-left:2px solid var(--color-brass-dim,#a08850);color:var(--color-off-white-dim,#d4d3cf);background:#a0885026;font-style:italic;animation:2s ease-in-out infinite gentle-pulse}@keyframes gentle-pulse{0%,to{opacity:.7}50%{opacity:1}}.log-entry-streaming{animation:2s ease-in-out infinite streamPulse;box-shadow:0 0 12px #c9a9614d;border-left-color:var(--color-brass-dim,#a08850)!important;background:#c9a96126!important}@keyframes streamPulse{0%,to{box-shadow:0 0 12px #c9a9614d}50%{box-shadow:0 0 20px #c9a96180}}.streaming-cursor{background:var(--color-brass,#c9a961);vertical-align:text-bottom;border-radius:1px;width:8px;height:16px;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.log-entry-stream-complete{animation:.5s ease-out forwards streamComplete}@keyframes streamComplete{0%{box-shadow:0 0 20px #6b8e5f80}to{box-shadow:none}}.log-icon{flex-shrink:0;font-size:1.2rem;line-height:1}.log-text{color:var(--color-off-white,#f5f4f0);flex:1}.log-rich{width:100%;display:block}.log-rich-title{color:#cbd5e1;margin-bottom:8px;font-weight:700}.log-rich-instruction{color:#cbd5e1;margin-bottom:10px;font-size:.85rem}.inline-reveal-btn{border-radius:8px;width:100%;min-height:44px;margin-top:8px}.inline-dismiss-waiting-btn[disabled]{opacity:.6}.inline-cards-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;display:grid}.inline-play-card{color:#e5e7eb;text-align:left;background:linear-gradient(135deg,#3f4b5e 0%,#253042 100%);border:2px solid #667eea;border-radius:10px;flex-direction:column;align-items:flex-start;gap:6px;min-height:122px;padding:10px;display:flex}.inline-play-card.is-selected{border-color:#3b82f6;box-shadow:0 0 16px #3b82f666}.inline-play-card.is-faded{opacity:.35}.inline-play-card[disabled]{opacity:.5}.inline-play-card-type{text-transform:uppercase;color:#cbd5e1;font-size:.68rem}.inline-play-card-name{color:#fde047;font-size:.9rem;font-weight:700}.inline-play-card-tags{color:#9ca3af;font-size:.7rem}.log-time{color:#666;flex-shrink:0;align-self:flex-end;font-size:.75rem}.log-entry-npc-dialogue{background:#3b82f614;border-left:3px solid #3b82f6;flex-direction:row;align-items:flex-start;padding:12px}.log-entry-npc-dialogue[data-alignment=right] .npc-dialogue-container{flex-direction:row-reverse}.log-entry-npc-dialogue[data-alignment=right] .npc-dialogue-content{align-items:flex-end}.log-entry-npc-dialogue[data-alignment=right] .npc-dialogue-bubble{background:#22c55e26;border-color:#22c55e}.npc-dialogue-container{flex:1;align-items:flex-start;gap:12px;display:flex}.npc-portrait{flex-shrink:0;font-size:2.5rem;line-height:1}.npc-dialogue-content{flex-direction:column;gap:6px;max-width:80%;display:flex}.npc-name{color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;font-size:.75rem;font-weight:600}.npc-dialogue-bubble{color:#e0e0e0;background:#3b82f626;border:2px solid #3b82f64d;border-radius:12px;padding:12px 16px;line-height:1.5;box-shadow:0 2px 8px #0003}.log-entry-inn-choices{background:0 0;border-left:none;padding:8px 0}.inn-choices-container{flex-direction:column;gap:10px;width:100%;display:flex}.inn-choice-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:2px solid #8b5cf6;border-radius:10px;min-height:50px;padding:12px 20px;font-size:1rem;font-weight:600;transition:all .2s;box-shadow:0 4px 12px #667eea4d}.inn-choice-btn:hover{background:linear-gradient(135deg,#7c8ef7 0%,#8b5ab2 100%);transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.inn-choice-btn:active{transform:translateY(0);box-shadow:0 2px 8px #667eea4d}.log-entry-placeholder{opacity:.7;background:#4a546714;border-left:2px solid #6b8e5f4d}.log-text-placeholder{color:var(--color-slate-light,#5f6a7f);font-style:italic}.loading-dots{font-weight:700;animation:1.5s infinite loadingDots;display:inline-block}.loading-dots span{animation:1.5s infinite loadingDotsFade}.loading-dots span:first-child{animation-delay:0s}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes loadingDotsFade{0%,60%,to{opacity:.3}30%{opacity:1}}.streaming-cursor{background:var(--color-brass-dim,#a08850);width:2px;height:1em;margin-left:2px;animation:1s infinite cursorBlink;display:inline-block}@keyframes cursorBlink{0%,49%{opacity:1}50%,to{opacity:0}}@media (width<=768px){.game-log{max-height:300px;padding:12px;font-size:.9rem}.log-entry{margin-bottom:6px;padding:8px}.log-icon{font-size:1rem}.log-time{display:none}}.card{background:var(--color-charcoal-light);border:1px solid var(--color-slate);padding:var(--space-md);cursor:pointer;transition:all var(--transition-normal);border-radius:6px;position:relative;overflow:hidden;box-shadow:0 2px 4px #0003}.card:hover:not(.card-disabled){box-shadow:0 6px 16px var(--color-shadow-warm);border-color:var(--color-brass-dim);transform:translateY(-3px)}.card:active:not(.card-disabled){transform:translateY(-1px)}.card-disabled{opacity:.4;cursor:not-allowed;border-color:#4a54674d}.card-type-ability{border-color:#8b7fc6}.card-type-ability:hover:not(.card-disabled){border-color:#a89dd4}.card-type-item{border-color:#6b8e5f}.card-type-item:hover:not(.card-disabled){border-color:#7fa572}.card-type-badge{text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-sm);color:var(--color-off-white-dim);background:#4a54674d;border-radius:3px;padding:3px 8px;font-size:.65rem;font-weight:500;display:inline-block}.card-name{color:var(--color-brass);margin-bottom:var(--space-sm);font-size:.95rem;font-weight:600;line-height:1.3}.card-level{color:var(--color-green);margin-left:4px;font-size:.85rem}.card-description{color:var(--color-off-white-dim);font-size:.85rem;line-height:1.5}.card-tags{color:var(--color-slate-light);margin-top:var(--space-sm);font-size:.7rem;font-style:italic}.card-appeal-badge{cursor:help;z-index:1;opacity:.8;font-size:1.1rem;position:absolute;top:8px;right:8px}.card-selected{border-color:var(--color-brass);transform:translateY(-2px);box-shadow:0 0 16px #c9a96166}.card-locked-in{border-color:var(--color-brass);animation:.4s ease-out forwards seal-lock}@keyframes seal-lock{0%{opacity:1;transform:scale(1)}30%{opacity:.8;transform:scale(.95)}to{opacity:1;box-shadow:0 0 20px var(--color-spotlight-glow), 0 4px 12px var(--color-shadow-warm);transform:scale(1)}}.card-committed{animation:.3s ease-out slide-commit}@keyframes slide-commit{0%{transform:translateY(0)}50%{transform:translateY(-8px)}to{transform:translateY(0)}}.sheet-card{min-height:86px;transition:all var(--transition-fast);background:#0f172a99;border:1px solid #94a3b84d;border-radius:6px;padding:8px}.sheet-card-face-up{border-color:#22c55e80}.sheet-card-face-up:hover{background:#0f172abf;border-color:#22c55eb3}.sheet-card-face-down{background:#1e293ba6;border-color:#64748b99}.sheet-card-name{color:#fde047;margin-bottom:4px;font-size:.82rem;font-weight:700}.sheet-card-type{color:#cbd5e1;text-transform:uppercase;margin-bottom:4px;font-size:.65rem}.sheet-card-tags{color:#94a3b8;font-size:.65rem}.card-exhausted{filter:grayscale(.8)brightness(.6);border-color:#4a546766!important}.card-exhausted-overlay{color:#ef4444;letter-spacing:.15em;text-transform:uppercase;z-index:10;pointer-events:none;background:#0000008c;border-radius:6px;justify-content:center;align-items:center;font-size:.6rem;font-weight:800;display:flex;position:absolute;inset:0}.card-on-cooldown{filter:brightness(.7)saturate(.6);border-color:#60a5fa66!important}.card-cooldown-overlay{color:#93c5fd;letter-spacing:.05em;z-index:10;pointer-events:none;background:#1e40af59;border-radius:6px;justify-content:center;align-items:center;font-size:.65rem;font-weight:700;animation:1.2s ease-in-out infinite cooldown-pulse;display:flex;position:absolute;inset:0}@keyframes cooldown-pulse{0%,to{opacity:.9}50%{opacity:.6}}.card-use-pips{gap:4px;margin-bottom:4px;display:flex}.use-pip{border-radius:50%;width:8px;height:8px;transition:background .3s;display:inline-block}.pip-fresh{background:var(--color-brass);box-shadow:0 0 4px #c9a96180}.pip-used{background:#4a546780;border:1px solid #4a5467b3}.card-armed{animation:.9s ease-in-out infinite card-armed-pulse;box-shadow:0 0 18px #f59e0b99,inset 0 0 6px #f59e0b4d;border-color:#f59e0b!important}@keyframes card-armed-pulse{0%,to{box-shadow:0 0 18px #f59e0b99}50%{box-shadow:0 0 28px #f59e0be6,inset 0 0 8px #f59e0b66}}@media (width<=768px){.card{padding:var(--space-sm)}.card-name{font-size:.9rem}.card-description{font-size:.8rem}.sheet-card{min-height:76px;padding:6px}.sheet-card-name{font-size:.75rem}}.cards-section{margin-bottom:var(--space-lg)}.cards-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.cards-header h2{color:var(--color-brass);font-family:var(--font-accent);letter-spacing:.03em;text-transform:uppercase;font-size:.9rem;font-weight:600}.cards-count{color:var(--color-off-white-dim);font-size:.85rem}.cards-grid{gap:var(--space-md);margin-bottom:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));max-height:370px;padding:5px;display:grid;overflow:auto}.cards-empty{text-align:center;padding:var(--space-lg);color:var(--color-slate-light);font-style:italic}@media (width<=768px){.cards-grid{gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(120px,1fr));max-height:300px}.sheet-cards-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.cards-header h2{font-size:.85rem}.cards-count{font-size:.75rem}}.character-info{padding:var(--space-md,16px);background:#0003;border:1px solid #4a54674d;border-radius:6px;display:block;position:relative}.character-info.has-spotlight{border:2px solid #ffd70099;animation:2s ease-in-out infinite spotlight-glow;box-shadow:0 0 20px #ffd70066}@keyframes spotlight-glow{0%,to{box-shadow:0 0 20px #ffd70066}50%{box-shadow:0 0 30px #ffd700b3}}.character-readonly-indicator{text-align:center;color:#ffc107;background:#ffc10733;border:1px solid #ffc10780;border-radius:6px;margin-bottom:15px;padding:8px 12px;font-size:.85rem}.character-readonly-indicator-icon{margin-right:6px}.character-spotlight-badge{text-align:center;color:gold;background:linear-gradient(135deg,#ffd70033 0%,#ffa50033 100%);border:1px solid #ffd70080;border-radius:6px;margin-bottom:15px;padding:8px 12px;font-size:.85rem;font-weight:600}.character-fields{gap:12px;display:grid}.character-field{flex-direction:column;gap:5px;display:flex}.character-field-label{color:#aaa;text-transform:uppercase;letter-spacing:.5px;font-size:.85rem}.character-field-value{color:#e0e0e0;line-height:1.5}.character-field-name{color:gold;font-size:1.3rem;font-weight:700}.character-attachments{border-top:1px solid #ffffff1a;margin-top:15px;padding-top:15px}.character-attachments-label{color:#aaa;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:.85rem}.character-attachments-list{flex-wrap:wrap;gap:8px;display:flex}.attachment-chip{cursor:help;border-radius:20px;align-items:center;gap:6px;min-height:44px;padding:6px 12px;font-size:.85rem;font-weight:500;transition:all .2s;display:flex}.attachment-icon{font-size:1.1rem}.attachment-name{flex:1}.attachment-modifier{background:#0000004d;border-radius:10px;padding:2px 6px;font-size:.8rem;font-weight:700}.attachment-success{color:#4ade80;background:#22c55e33;border:1px solid #22c55e80}.attachment-success:hover{background:#22c55e4d}.attachment-danger{color:#f87171;background:#ef444433;border:1px solid #ef444480}.attachment-danger:hover{background:#ef44444d}.attachment-warning{color:#fbbf24;background:#fbbf2433;border:1px solid #fbbf2480}.attachment-warning:hover{background:#fbbf244d}.attachment-info{color:#60a5fa;background:#3b82f633;border:1px solid #3b82f680}.attachment-info:hover{background:#3b82f64d}.character-hand-info{border-top:1px solid #ffffff1a;margin-top:15px;padding-top:15px}.character-hand-header{color:gold;margin-bottom:8px;font-size:.9rem;font-weight:600}.character-hand-empty{color:#94a3b8;padding:var(--space-md,16px);text-align:center;font-size:.8rem}.sheet-cards-grid{margin-top:var(--space-md,16px);gap:var(--space-sm,8px);grid-template-columns:repeat(auto-fill,minmax(112px,1fr));display:grid}@media (width<=640px){.character-info{padding:12px}.character-field-name{font-size:1.1rem}.sheet-cards-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.attachment-chip{padding:5px 10px;font-size:.75rem}}.debug-panel{color:#0f0;z-index:10000;background:#000000e6;border:2px solid #0f0;border-radius:8px;min-width:280px;font-family:Courier New,monospace;font-size:12px;position:fixed;bottom:20px;right:20px;box-shadow:0 4px 12px #00ff004d}.debug-panel-header{cursor:move;-webkit-user-select:none;user-select:none;background:#00ff001a;border-bottom:1px solid #0f0;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.debug-panel-title{text-transform:uppercase;letter-spacing:1px;font-weight:700}.debug-panel-toggle{color:#0f0;cursor:pointer;background:0 0;border:1px solid #0f0;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:16px;line-height:1;display:flex}.debug-panel-toggle:hover{background:#0f03}.debug-panel-toggle:active{background:#00ff004d}.debug-panel-content{max-height:400px;padding:12px;overflow-y:auto}.debug-row{border-bottom:1px solid #0f03;justify-content:space-between;padding:6px 0;display:flex}.debug-row:last-child{border-bottom:none}.debug-label{color:#0a0;margin-right:12px;font-weight:700}.debug-value{color:#0f0;text-align:right;word-break:break-all;max-width:150px}@media (width<=768px){.debug-panel{min-width:240px;font-size:11px;bottom:10px;left:auto;right:10px}.debug-panel-header{padding:6px 10px}.debug-panel-content{max-height:300px;padding:10px}.debug-row{padding:4px 0}.debug-label{font-size:10px}.debug-value{max-width:120px;font-size:10px}}@media (width<=480px){.debug-panel{min-width:200px;font-size:10px;bottom:80px;right:5px}.debug-value{max-width:100px}}@supports (padding:env(safe-area-inset-bottom)){.debug-panel{bottom:calc(20px + env(safe-area-inset-bottom));right:calc(20px + env(safe-area-inset-right))}@media (width<=480px){.debug-panel{bottom:calc(80px + env(safe-area-inset-bottom));right:calc(5px + env(safe-area-inset-right))}}}.context-inspector{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:9999;background:#1e1e28fa;border:2px solid #6478c866;border-radius:12px 12px 0 0;flex-direction:column;width:100%;max-width:100vw;max-height:90vh;transition:transform .3s cubic-bezier(.4,0,.2,1);display:none;position:fixed;bottom:0;left:0;right:0;overflow:hidden;transform:translateY(100%);box-shadow:0 8px 32px #00000080}.context-inspector-inline{border-radius:12px!important;width:100%!important;max-width:none!important;max-height:none!important;display:flex!important;position:static!important;inset:auto!important;overflow:visible!important;transform:none!important}.context-inspector-inline .close-btn{display:none}.context-inspector.open{display:flex;transform:translateY(0)}@media (width>=768px){.context-inspector{border-bottom-right-radius:12px;border-bottom-left-radius:12px;width:380px;max-width:400px;inset:20px 20px 20px auto;transform:translate(120%)}.context-inspector.open{transform:translate(0)}}.context-inspector .panel-header{background:#14141e99;border-bottom:1px solid #6478c84d;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.context-inspector .panel-header h3{color:#e0e0ff;text-shadow:0 0 10px #6478c880;margin:0;font-size:1.4em}.context-inspector .close-btn{color:#f99;cursor:pointer;background:#c8505033;border:1px solid #c8505066;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:1.8em;line-height:1;transition:all .2s;display:flex}.context-inspector .close-btn:hover{background:#c8505066;transform:scale(1.1)}.context-inspector .panel-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.context-inspector .context-tabs{background:#14141e66;border-bottom:1px solid #6478c833;gap:4px;padding:12px;display:flex;overflow-x:auto}.context-inspector .tab{color:#b0b0d0;cursor:pointer;background:#28283c80;border:1px solid #5064b44d;border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:4px;min-width:70px;padding:10px 8px;font-size:.9em;transition:all .2s;display:flex}.context-inspector .tab:hover{background:#3c3c6499;border-color:#6478c880}.context-inspector .tab.active{color:#e0e0ff;background:#5064b466;border-color:#788cdc99;box-shadow:0 0 15px #6478c84d}.context-inspector .tab-label{font-size:.85em}.context-inspector .context-list{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.context-inspector .context-list::-webkit-scrollbar{width:8px}.context-inspector .context-list::-webkit-scrollbar-track{background:#14141e4d;border-radius:4px}.context-inspector .context-list::-webkit-scrollbar-thumb{background:#6478c866;border-radius:4px}.context-inspector .context-list::-webkit-scrollbar-thumb:hover{background:#788cdc99}.context-item{background:#28283c99;border:1px solid #5064b44d;border-radius:10px;padding:14px;transition:all .2s;animation:.2s ease-out slideIn}.context-item:hover{background:#323250b3;border-color:#6478c880;box-shadow:0 4px 12px #6478c833}.context-item.visited{border-left:3px solid #64c87899}.context-item.unvisited{border-left:3px solid #b4b4c866}.context-item .item-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.context-item h4{color:#e0e0ff;flex:1;margin:0;font-size:1.1em}.context-item .item-badge{color:#c0c0e0;text-transform:capitalize;white-space:nowrap;background:#6478c84d;border:1px solid #788cdc66;border-radius:12px;padding:4px 10px;font-size:.75em}.context-item .item-badge.owned{color:#d0ffd0;background:#64c8784d;border-color:#78dc8c66}.context-item .item-description{color:#b0b0d0;margin:8px 0;font-size:.9em;line-height:1.4}.context-item .item-meta{color:#8080a0;margin-top:8px;font-size:.8em;display:block}.relationship-container{margin:10px 0}.relationship-bar{background:#3c3c5080;border:1px solid #5064b44d;border-radius:8px;height:16px;margin-bottom:6px;overflow:hidden}.relationship-fill{border-radius:7px;height:100%;transition:width .3s,background-color .3s}.relationship-label{text-align:center;color:#c0c0e0;font-size:.85em;font-weight:500;display:block}.context-item.quest-active{border-left-color:#6496fa99}.context-item.quest-complete{opacity:.8;border-left-color:#64c87899}.context-item.quest-failed{opacity:.7;border-left-color:#c8646499}.objectives-list{margin:10px 0;padding:0;list-style:none}.objectives-list li{color:#b0b0d0;padding:6px 0;font-size:.9em}.objectives-list li.complete{color:#90d090;text-decoration:line-through}.objectives-list li.incomplete{color:#c0c0e0}.empty-state p{margin-bottom:8px;font-size:1.1em}.empty-state small{color:#707090;font-size:.9em}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@media (width<=767px){.context-inspector{max-height:70vh}.context-inspector .tab-label{display:none}.context-inspector .tab{min-width:50px;padding:12px 8px;font-size:1.2em}}@media (hover:none){.context-inspector .tab{min-height:44px;padding:14px 10px}.context-inspector .close-btn{width:44px;height:44px}}.settings-tab{max-height:100%;padding:20px;overflow-y:auto}.dev-mode-banner{text-align:center;color:#eab308;background:#eab30833;border:2px solid #eab30880;border-radius:8px;margin-bottom:20px;padding:12px;font-weight:600}.settings-section{background:#0003;border:1px solid #ffffff1a;border-radius:8px;margin-bottom:16px;padding:16px}.settings-section h3{color:var(--color-brass,#d4af37);margin:0 0 16px;font-size:1.1rem;font-weight:600}.model-selector{flex-direction:column;display:flex}.settings-select{color:#fff;cursor:pointer;background:#0000004d;border:1px solid #fff3;border-radius:6px;padding:10px 12px;font-size:.95rem;transition:all .2s}.settings-select:hover{background:#0006;border-color:#ffffff4d}.settings-select:focus{border-color:#60a5fa99;outline:none;box-shadow:0 0 0 3px #60a5fa1a}.settings-toggles{flex-direction:column;gap:12px;display:flex}.settings-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:flex}.settings-toggle input[type=checkbox]{cursor:pointer;accent-color:#60a5fa;width:20px;height:20px}.settings-toggle span{color:#ffffffe6;font-size:.95rem}.settings-sliders{flex-direction:column;gap:20px;display:flex}.settings-slider{flex-direction:column;gap:8px;display:flex}.slider-label{color:#fffc;font-size:.9rem;font-weight:500}.settings-slider input[type=range]{cursor:pointer;-webkit-appearance:none;background:#ffffff1a;border-radius:3px;outline:none;width:100%;height:6px}.settings-slider input[type=range]::-webkit-slider-thumb{appearance:none;cursor:pointer;background:#60a5fa;border-radius:50%;width:18px;height:18px;transition:all .2s}.settings-slider input[type=range]::-webkit-slider-thumb:hover{background:#60a5facc;transform:scale(1.1)}.settings-slider input[type=range]::-moz-range-thumb{cursor:pointer;background:#60a5fa;border:none;border-radius:50%;width:18px;height:18px;transition:all .2s}.settings-slider input[type=range]::-moz-range-thumb:hover{background:#60a5facc;transform:scale(1.1)}.slider-value{color:#60a5fa;text-align:right;font-size:.9rem;font-weight:600}@media (width<=640px){.settings-tab{padding:16px}.settings-section{padding:12px}.settings-section h3{font-size:1rem}}.adventure-description{background:var(--surface-color,#1e293b);border:2px solid var(--border-color,#334155);border-radius:12px;margin:1rem 0;padding:1.5rem;transition:all .3s;box-shadow:0 2px 8px #0003}.adventure-description:hover{border-color:var(--primary-color,#60a5fa);box-shadow:0 4px 12px #60a5fa33}.adventure-description.empty{opacity:.7;border-style:dashed}.adventure-placeholder{text-align:center;color:var(--text-muted,#94a3b8);margin:0;padding:1rem;font-style:italic}.adventure-display-mode{position:relative}.adventure-text{color:var(--text-color,#e2e8f0);white-space:pre-wrap;word-wrap:break-word;font-size:1rem;line-height:1.6}.adventure-edit-button{background:var(--primary-color,#60a5fa);color:#fff;cursor:pointer;opacity:0;border:none;border-radius:8px;padding:.5rem 1rem;font-size:.85rem;transition:all .2s;position:absolute;top:-.5rem;right:-.5rem;box-shadow:0 2px 4px #0003}.adventure-description:hover .adventure-edit-button{opacity:1}.adventure-edit-button:hover{background:#3b82f6;transform:translateY(-2px);box-shadow:0 4px 8px #0000004d}.adventure-edit-button:active{transform:translateY(0)}.adventure-edit-mode{flex-direction:column;gap:1rem;display:flex}.adventure-textarea{border:2px solid var(--border-color,#334155);width:100%;min-height:150px;color:var(--text-color,#e2e8f0);resize:vertical;background:#0f172acc;border-radius:8px;padding:1rem;font-family:inherit;font-size:1rem;line-height:1.6;transition:border-color .2s}.adventure-textarea:focus{border-color:var(--primary-color,#60a5fa);outline:none;box-shadow:0 0 0 3px #60a5fa33}.adventure-edit-actions{justify-content:flex-end;gap:.75rem;display:flex}.adventure-btn{cursor:pointer;border:none;border-radius:8px;padding:.6rem 1.25rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .2s}.adventure-btn-save{background:var(--success-color,#10b981);color:#fff}.adventure-btn-save:hover{background:#059669;transform:translateY(-2px);box-shadow:0 4px 8px #10b9814d}.adventure-btn-cancel{background:var(--danger-color,#ef4444);color:#fff}.adventure-btn-cancel:hover{background:#dc2626;transform:translateY(-2px);box-shadow:0 4px 8px #ef44444d}.adventure-btn:active{transform:translateY(0)}@media (width<=768px){.adventure-description{margin:.75rem 0;padding:1rem}.adventure-text{font-size:.95rem}.adventure-edit-button{opacity:1;width:100%;margin-top:.75rem;position:static}.adventure-textarea{min-height:120px;font-size:.95rem}.adventure-edit-actions{flex-direction:column}.adventure-btn{width:100%}}:root{--surface-color:#1e293b;--border-color:#334155;--primary-color:#60a5fa;--text-color:#e2e8f0;--text-muted:#94a3b8;--success-color:#10b981;--danger-color:#ef4444}.spotlight-indicator{border:2px solid var(--border-color,#334155);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1e293bf2;border-radius:12px;margin:1rem 0;padding:1rem 1.5rem;transition:all .3s;box-shadow:0 4px 12px #0000004d}.spotlight-indicator.has-spotlight{border-color:var(--highlight-color,#fbbf24);background:linear-gradient(135deg,#fbbf2433 0%,#f59e0b1a 100%);animation:2s ease-in-out infinite pulseGlow;box-shadow:0 4px 20px #fbbf2466,0 0 30px #fbbf2433}@keyframes pulseGlow{0%,to{box-shadow:0 4px 20px #fbbf2466,0 0 30px #fbbf2433}50%{box-shadow:0 4px 24px #fbbf2499,0 0 40px #fbbf244d}}.spotlight-indicator.other-player{border-color:var(--primary-color,#60a5fa);background:#1e293be6}.spotlight-content{align-items:center;gap:1rem;display:flex}.spotlight-icon{filter:drop-shadow(0 2px 4px #0000004d);font-size:2rem}.spotlight-indicator.has-spotlight .spotlight-icon{animation:2s ease-in-out infinite iconPulse}@keyframes iconPulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.spotlight-info{flex-direction:column;flex:1;gap:.25rem;display:flex}.spotlight-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted,#94a3b8);font-size:.75rem;font-weight:600}.spotlight-indicator.has-spotlight .spotlight-label{color:var(--highlight-color,#fbbf24);font-weight:700}.spotlight-name{color:var(--text-color,#e2e8f0);font-size:1.1rem;font-weight:700}.spotlight-indicator.has-spotlight .spotlight-name{color:var(--highlight-color,#fbbf24)}.spotlight-badge{font-size:1.5rem;animation:1s ease-in-out infinite badgeBounce}@keyframes badgeBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@media (width<=768px){.spotlight-indicator{margin:.75rem 0;padding:.75rem 1rem}.spotlight-icon{font-size:1.5rem}.spotlight-label{font-size:.7rem}.spotlight-name{font-size:1rem}.spotlight-badge{font-size:1.2rem}}@media (prefers-reduced-motion:reduce){.spotlight-indicator.has-spotlight,.spotlight-indicator.has-spotlight .spotlight-icon,.spotlight-badge{animation:none}}:root{--highlight-color:#fbbf24;--border-color:#334155;--primary-color:#60a5fa;--text-color:#e2e8f0;--text-muted:#94a3b8}.players-tab{max-height:100%;padding:20px;overflow-y:auto}.player-list-panel{margin-bottom:20px;overflow:hidden}.panel-title{color:#fffc;z-index:1;margin:0 0 12px;padding-left:4px;font-size:1rem;font-weight:600;line-height:1.4;position:relative}.adventure-panel{background:#0003;border:1px solid #ffffff1a;border-radius:8px;margin-bottom:20px;padding:16px}.adventure-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.adventure-title{color:var(--color-brass,#d4af37);font-size:1.1rem;font-weight:600}.adventure-edit-btn{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:6px;padding:6px 12px;font-size:.9rem;transition:all .2s}.adventure-edit-btn:hover{background:#ffffff26;border-color:#ffffff4d;transform:translateY(-1px)}.adventure-description{color:#ffffffe6;font-size:.95rem;line-height:1.6}.spotlight-status-container{margin-bottom:20px}.character-section-title{color:#fffc;margin:0 0 12px;padding-left:4px;font-size:1rem;font-weight:600}.character-sheet-container{margin-bottom:16px}.remote-characters-container{margin-top:24px}.player-list-legend{border-top:1px solid #ffffff1a;flex-wrap:wrap;gap:8px 16px;margin-top:12px;padding-top:8px;display:flex}.legend-item{color:#fff9;white-space:nowrap;align-items:center;gap:6px;font-size:.8rem;display:flex}.legend-icon{line-height:1;display:inline-block}.legend-text{line-height:1}.empty-state{text-align:center;color:#fff9;padding:40px 20px}.empty-state p{margin:0;font-style:italic}@media (width<=640px){.players-tab{padding:16px}.adventure-panel{padding:12px}.adventure-header{flex-direction:column;align-items:flex-start;gap:8px}.adventure-edit-btn{align-self:flex-end}}.room-code-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;background:#000000b3;justify-content:center;align-items:center;padding:1rem;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.room-code-modal{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);border:2px solid #0f3460;border-radius:16px;width:100%;max-width:500px;animation:.3s ease-out slideUp;overflow:hidden;box-shadow:0 20px 60px #0006}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.room-code-header{background:#0f34604d;border-bottom:1px solid #444;justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.room-code-header h2{color:#e94560;margin:0;font-size:1.5rem}.room-code-close{color:#aaa;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:2rem;transition:all .2s;display:flex}.room-code-close:hover{color:#e94560;background:#e945601a}.room-code-body{padding:2rem 1.5rem}.room-code-instructions{color:#ccc;text-align:center;margin:0 0 1.5rem;font-size:.95rem}.room-code-create{text-align:center}.room-code-display{align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.room-code-value{color:#fff;letter-spacing:.2em;text-align:center;background:#0f3460;border:2px solid #1a5490;border-radius:8px;flex:1;padding:1rem;font-family:Courier New,monospace;font-size:2.5rem;font-weight:700}.room-code-copy{color:#fff;cursor:pointer;background:#e94560;border:none;border-radius:8px;flex-shrink:0;width:48px;height:48px;font-size:1.5rem;transition:all .2s}.room-code-copy:hover{background:#ff6b6b;transform:scale(1.05)}.room-code-copy:active{transform:scale(.95)}.room-code-status{color:#aaa;background:#0f34604d;border-radius:8px;justify-content:center;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:1rem;font-size:.9rem;display:flex}.room-code-loading{flex-direction:column;justify-content:center;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:2rem;display:flex}.room-code-loading p{color:#aaa;margin:0;font-size:.9rem}.room-code-spinner{border:2px solid #e945604d;border-top-color:#e94560;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}.room-code-join{text-align:center}.room-code-input-wrapper{margin-bottom:.75rem}.room-code-input{color:#fff;letter-spacing:.2em;text-align:center;background:#0f3460;border:2px solid #1a5490;border-radius:8px;width:100%;padding:1rem;font-family:Courier New,monospace;font-size:2.5rem;font-weight:700;transition:border-color .2s}.room-code-input:focus{border-color:#e94560;outline:none}.room-code-input::placeholder{color:#555;letter-spacing:.1em}.room-code-hint{color:#888;margin:0 0 1.5rem;font-size:.85rem}.room-code-btn{cursor:pointer;text-transform:uppercase;letter-spacing:.05em;border:none;border-radius:8px;width:100%;padding:1rem 1.5rem;font-size:1.1rem;font-weight:600;transition:all .2s}.room-code-btn-primary{color:#fff;background:linear-gradient(135deg,#e94560 0%,#d63447 100%);box-shadow:0 4px 12px #e945604d}.room-code-btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #e9456066}.room-code-btn-primary:active:not(:disabled){transform:translateY(0)}.room-code-btn-secondary{color:#fff;background:#444}.room-code-btn-secondary:hover{background:#555}.room-code-btn:disabled{opacity:.5;cursor:not-allowed}.room-code-footer{background:#0f346033;border-top:1px solid #0f3460;padding:1rem 1.5rem}.room-code-fallback{color:#aaa;cursor:pointer;background:0 0;border:1px solid #0f3460;border-radius:8px;width:100%;padding:.75rem;font-size:.9rem;transition:all .2s}.room-code-fallback:hover{color:#fff;background:#0f34604d;border-color:#1a5490}.room-code-inline{width:100%;padding:1rem}.room-code-card{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);border:2px solid #0f3460;border-radius:12px;padding:2rem;box-shadow:0 4px 12px #0000004d}.room-code-card h3{color:#e94560;text-align:center;margin:0 0 1.5rem;font-size:1.5rem}.room-code-fallback-inline{width:100%;margin-top:1rem}@media (width<=768px){.room-code-card{padding:1.5rem}.room-code-card h3{font-size:1.25rem}}@media (width<=600px){.room-code-modal{border-radius:0;max-width:100%;margin:0}.room-code-value,.room-code-input{font-size:2rem}.room-code-header h2{font-size:1.25rem}}.connection-status{z-index:1000;border:2px solid var(--border-color,#334155);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1e293bf2;border-radius:8px;padding:.75rem 1rem;transition:all .3s;position:fixed;top:1rem;left:1rem;box-shadow:0 4px 12px #0000004d}.connection-status.status-connected{border-color:var(--success-color,#10b981)}.connection-status.status-connecting{border-color:var(--warning-color,#fbbf24)}.connection-status.status-disconnected{border-color:var(--danger-color,#ef4444)}.connection-indicator{align-items:center;gap:.75rem;display:flex}.connection-icon{filter:drop-shadow(0 2px 4px #0000004d);font-size:1.2rem}.connection-info{flex-direction:column;gap:.15rem;display:flex}.connection-text{color:var(--text-color,#e2e8f0);font-size:.9rem;font-weight:600}.connection-role{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted,#94a3b8);font-size:.75rem;font-weight:500}.connection-players{border-top:1px solid #ffffff1a;margin-top:.5rem;padding-top:.5rem}.players-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted,#94a3b8);margin-bottom:.35rem;font-size:.75rem;font-weight:600}.players-list{flex-direction:column;gap:.25rem;display:flex}.player-name{color:var(--text-color,#e2e8f0);border-left:3px solid var(--primary-color,#60a5fa);background:#60a5fa1a;border-radius:4px;padding:.25rem .5rem;font-size:.85rem}.connection-status.status-connecting .connection-icon{animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}@media (width<=768px){.connection-status{padding:.6rem .8rem;top:.5rem;left:.5rem}.connection-icon{font-size:1rem}.connection-text{font-size:.85rem}.connection-role,.players-label{font-size:.7rem}.player-name{font-size:.8rem}}@media (prefers-reduced-motion:reduce){.connection-status.status-connecting .connection-icon{animation:none}}:root{--success-color:#10b981;--warning-color:#fbbf24;--danger-color:#ef4444;--primary-color:#60a5fa;--border-color:#334155;--text-color:#e2e8f0;--text-muted:#94a3b8}.multiplayer-tab{max-height:100%;padding:20px;overflow-y:auto}.multiplayer-header{margin-bottom:24px}.multiplayer-header h2{color:var(--color-brass,#d4af37);margin:0 0 8px;font-size:1.5rem;font-weight:600}.multiplayer-subtitle{color:#ffffffb3;margin:0;font-size:.95rem}.connection-status-container,.qr-multiplayer-container,.room-code-container{margin-bottom:20px}.multiplayer-instructions{background:#0003;border:1px solid #ffffff1a;border-radius:8px;padding:20px}.instruction-section{margin-bottom:24px}.instruction-section:last-of-type{margin-bottom:20px}.instruction-section h3{color:#60a5fa;margin:0 0 12px;font-size:1.1rem;font-weight:600}.instruction-section ol{color:#ffffffe6;margin:0;padding-left:24px}.instruction-section li{margin-bottom:8px;line-height:1.5}.feature-notes{background:#60a5fa1a;border:1px solid #60a5fa4d;border-radius:6px;padding:16px}.feature-notes h4{color:#60a5fa;margin:0 0 10px;font-size:1rem;font-weight:600}.feature-notes ul{color:#ffffffe6;margin:0;padding-left:24px}.feature-notes li{margin-bottom:6px}@media (width<=640px){.multiplayer-tab,.multiplayer-instructions{padding:16px}.instruction-section h3{font-size:1rem}}.console-log-tab{color:#d4d4d4;background-color:#1e1e1e;flex-direction:column;height:100%;font-family:Consolas,Monaco,Courier New,monospace;font-size:13px;display:flex}.console-log-controls{background-color:#252526;border-bottom:1px solid #3e3e42;flex-shrink:0;align-items:center;gap:8px;padding:8px 12px;display:flex}.console-btn{color:#ccc;cursor:pointer;background-color:#2d2d30;border:1px solid #3e3e42;border-radius:3px;padding:4px 12px;font-size:12px;transition:all .15s}.console-btn:hover{background-color:#3e3e42}.console-btn:active{background-color:#4e4e52}.console-btn-primary{color:#fff;background-color:#0e639c;border-color:#0e639c}.console-btn-primary:hover{background-color:#17b}.console-btn-primary:active{background-color:#18c}.console-autoscroll{cursor:pointer;-webkit-user-select:none;user-select:none;color:#ccc;align-items:center;gap:6px;font-size:12px;display:flex}.console-autoscroll input[type=checkbox]{cursor:pointer}.console-log-count{color:#858585;margin-left:auto;font-size:11px}.console-log-container{background-color:#1e1e1e;flex:1;padding:4px;overflow:hidden auto}.console-log-empty{text-align:center;color:#858585;padding:20px;font-style:italic}.console-log-entry{border-bottom:1px solid #2d2d30;grid-template-columns:80px 60px 1fr;align-items:start;gap:8px;padding:4px 8px;display:grid}.console-log-entry:hover{background-color:#2a2d2e}.console-log-time{color:#858585;white-space:nowrap;font-size:11px}.console-log-type{white-space:nowrap;font-size:11px;font-weight:700}.console-log-message{white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:inherit;margin:0}.console-log-stack{color:#d4d4d4;white-space:pre-wrap;word-break:break-word;background-color:#2d2d30;border-left:3px solid #ff6b6b;grid-column:3;margin:4px 0 0;padding:8px;font-size:11px;overflow-x:auto}.console-log-log .console-log-type{color:#4fc3f7}.console-log-warn .console-log-type,.console-log-warn .console-log-message{color:#ffca28}.console-log-error .console-log-type,.console-log-error .console-log-message{color:#ff6b6b}.console-log-info .console-log-type,.console-log-info .console-log-message{color:#66bb6a}.console-log-debug .console-log-type,.console-log-debug .console-log-message{color:#ba68c8}@media (width<=768px){.console-log-entry{grid-template-columns:70px 50px 1fr;gap:6px;font-size:12px}.console-log-time,.console-log-type{font-size:10px}.console-log-controls{flex-wrap:wrap;gap:6px}.console-btn{padding:4px 10px;font-size:11px}}.console-log-container::-webkit-scrollbar{width:10px}.console-log-container::-webkit-scrollbar-track{background:#1e1e1e}.console-log-container::-webkit-scrollbar-thumb{background:#424242;border-radius:5px}.console-log-container::-webkit-scrollbar-thumb:hover{background:#4e4e4e}.encounter-display{border:2px solid var(--border-color,#334155);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1e293bf2;border-radius:12px;margin:1rem 0;padding:1rem;box-shadow:0 4px 12px #0000004d}.encounter-header{flex-wrap:wrap;align-items:center;gap:1.5rem;display:flex}.encounter-type{align-items:center;gap:.5rem;display:flex}.type-icon{filter:drop-shadow(0 2px 4px #0000004d);font-size:1.5rem}.type-name{color:var(--text-color,#e2e8f0);font-size:1rem;font-weight:700}.encounter-challenge{align-items:center;display:flex}.challenge-stars{gap:.15rem;display:flex}.star{font-size:.9rem}.star.filled{opacity:1}.star.empty{opacity:.3}.encounter-round{color:var(--text-muted,#94a3b8);background:#64748b33;border-radius:6px;padding:.35rem .75rem;font-size:.9rem;font-weight:600}.encounter-balance{border-radius:6px;align-items:center;gap:.5rem;padding:.35rem .75rem;font-size:.85rem;font-weight:600;display:flex}.balance-dominant{color:#22c55e;background:#22c55e33;border:1px solid #22c55e4d}@keyframes pulse-danger{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 8px #ef444400}}.balance-gaining{color:#3b82f6;background:#3b82f633;border:1px solid #3b82f64d}.balance-stalemate{color:#94a3b8;background:#94a3b833;border:1px solid #94a3b84d}.balance-pressure{color:#fbbf24;background:#fbbf2433;border:1px solid #fbbf244d}.balance-brink{color:#ef4444;background:#ef444433;border:1px solid #ef44444d;animation:1.5s ease-in-out infinite balancePulse}@keyframes balancePulse{0%,to{opacity:1}50%{opacity:.7}}.balance-icon{font-size:1rem}.encounter-telegraph,.encounter-goal{border-left:3px solid var(--primary-color,#60a5fa);background:#0f172a99;border-radius:6px;align-items:center;gap:.5rem;margin-top:.75rem;padding:.75rem;display:flex}.encounter-telegraph{border-left-color:var(--danger-color,#ef4444)}.telegraph-icon,.goal-icon{filter:drop-shadow(0 2px 4px #0000004d);font-size:1.2rem}.telegraph-text,.goal-text{color:var(--text-color,#e2e8f0);flex:1;font-size:.9rem;font-style:italic}@media (width<=768px){.encounter-display{padding:.85rem}.encounter-header{gap:1rem;font-size:.9rem}.type-icon{font-size:1.3rem}.type-name{font-size:.95rem}.star{font-size:.8rem}.encounter-round{padding:.3rem .6rem;font-size:.85rem}.encounter-balance{padding:.3rem .6rem;font-size:.8rem}.encounter-telegraph,.encounter-goal{margin-top:.6rem;padding:.6rem}.telegraph-icon,.goal-icon{font-size:1rem}.telegraph-text,.goal-text{font-size:.85rem}}@media (prefers-reduced-motion:reduce){.balance-brink{animation:none}}:root{--border-color:#334155;--text-color:#e2e8f0;--text-muted:#94a3b8;--primary-color:#60a5fa;--danger-color:#ef4444}.encounter-display--compact{margin:.5rem 0;padding:.6rem .85rem}.encounter-display--compact .encounter-header{flex-wrap:nowrap;gap:.5rem}.encounter-display--compact .type-icon{font-size:1.1rem}.encounter-display--compact .type-name{white-space:nowrap;font-size:.85rem}.encounter-challenge-inline{gap:.1rem;font-size:.75rem;display:flex}.encounter-round-inline{color:var(--text-muted,#94a3b8);font-size:.75rem;font-weight:600}.encounter-balance-inline{margin-left:auto;font-size:.9rem}.npc-detail-backdrop{z-index:900;background:#00000080;justify-content:center;align-items:flex-end;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.npc-detail-sheet{background:linear-gradient(135deg,#1e2533 0%,#273244 100%);border-top-left-radius:16px;border-top-right-radius:16px;width:100%;max-width:480px;max-height:70vh;padding:1.25rem;animation:.2s sheetSlideUp;overflow-y:auto;box-shadow:0 -4px 24px #0009}.npc-detail-header{border-bottom:1px solid #fff5c81a;align-items:center;gap:.6rem;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.npc-detail-icon{font-size:1.5rem}.npc-detail-name{color:#f6e05e;flex:1;margin:0;font-size:1.2rem;font-weight:700}.npc-detail-close{color:#ffffff80;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:.25rem;font-size:1.1rem;display:flex}.npc-detail-body{flex-direction:column;gap:.6rem;display:flex}.npc-detail-row{justify-content:space-between;align-items:center;padding:.3rem 0;display:flex}.npc-detail-label{color:#fff5c880;text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:600}.npc-detail-value{color:#fff5c8d9;font-size:.88rem}.npc-detail-section{flex-direction:column;gap:.3rem;padding-top:.4rem;display:flex}.npc-detail-text{color:#ffffffc7;margin:0;font-size:.85rem;line-height:1.45}.npc-detail-attachments{flex-wrap:wrap;gap:.35rem;display:flex}.npc-detail-attachment{color:#fff5c8cc;background:#ffffff0f;border-radius:4px;padding:.2rem .5rem;font-size:.78rem}.npc-detail-secrets{color:#fff5c8bf;margin:0;padding-left:1.2rem;font-size:.82rem;line-height:1.5}.npc-detail-hint{color:#f6e05e99;margin:.4rem 0 0;font-size:.78rem;font-style:italic}@keyframes sheetSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.scene-display{background:var(--bg-surface,#1a1a1a);border-radius:8px;margin-bottom:1rem;padding:1rem;box-shadow:0 2px 8px #0000004d}.scene-header{border-bottom:1px solid var(--border-color,#333);align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.scene-type{flex:1;align-items:center;gap:.5rem;display:flex}.scene-icon{font-size:1.5rem}.scene-name{color:var(--text-primary,#fff);font-size:1.25rem;font-weight:600}.scene-atmosphere{color:var(--text-secondary,#aaa);align-items:center;gap:.5rem;font-size:.875rem;display:flex}.atmosphere-icon{font-size:1rem}.scene-turn{color:var(--text-secondary,#aaa);background:var(--bg-tertiary,#2a2a2a);border-radius:12px;padding:.25rem .75rem;font-size:.875rem}.scene-description{background:var(--bg-tertiary,#2a2a2a);color:var(--text-primary,#eee);border-radius:6px;margin-bottom:1.5rem;padding:1rem;font-size:.9375rem;line-height:1.6}.scene-description p{margin:0}.scene-section{margin-bottom:1.5rem}.section-heading{color:var(--text-primary,#fff);align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:1rem;font-weight:600;display:flex}.section-icon{font-size:1.125rem}.entity-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;display:grid}@media (width<=640px){.entity-grid{grid-template-columns:1fr}}.entity-card{cursor:pointer;color:var(--color-off-white,#f5f4f0);background:#ffffff0f;border:1px solid #ffffff1f;border-radius:6px;padding:.75rem;transition:all .2s}.entity-card:hover{border-color:var(--accent-color,#4a9eff);transform:translateY(-2px);box-shadow:0 2px 8px #4a9eff33}.entity-card.has-secrets{background:linear-gradient(135deg,#ffffff0f 0%,#ffd7000d 100%);border-color:gold}.entity-card.has-secrets:hover{border-color:#ffed4e;box-shadow:0 2px 12px #ffd7004d}.entity-header{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.entity-icon{font-size:1.125rem}.entity-name{color:var(--text-primary,#fff);flex:1;font-weight:600}.secret-indicator{opacity:.8;font-size:.875rem;animation:2s ease-in-out infinite pulse-glow}@keyframes pulse-glow{0%,to{opacity:.6}50%{opacity:1}}.entity-description{color:var(--text-secondary,#ccc);margin:0 0 .5rem;font-size:.875rem;line-height:1.4}.entity-tags{flex-wrap:wrap;gap:.25rem;margin-top:.5rem;display:flex}.entity-tags .tag{background:var(--bg-tertiary,#2a2a2a);border:1px solid var(--border-color,#333);color:var(--text-secondary,#aaa);border-radius:10px;padding:.125rem .5rem;font-size:.75rem}.npc-card{position:relative}.npc-state-label{text-transform:uppercase;letter-spacing:.5px;opacity:.7;margin-bottom:.5rem;font-size:.75rem;font-weight:600}.npc-card.npc-passive .npc-state-label{color:#888}.npc-card.npc-engaging .npc-state-label{color:#ff9f00}.npc-card.npc-active .npc-state-label{color:#0f8}.npc-card.npc-hostile .npc-state-label{color:#f44}.npc-attachments{flex-wrap:wrap;gap:.3rem;margin-top:.4rem;display:flex}.npc-attachments .attachment-chip{color:var(--text-secondary,#aaa);background:#ffffff14;border:1px solid #ffffff26;border-radius:10px;align-items:center;gap:.2rem;padding:.15rem .4rem;font-size:.7rem;font-weight:600;display:inline-flex}.npc-attachments .attachment-chip.attachment-success{color:#6ee7b7;background:#34d39926;border-color:#34d39959}.npc-attachments .attachment-chip.attachment-danger{color:#fca5a5;background:#ef444426;border-color:#ef444459}.npc-attachments .attachment-chip.attachment-warning{color:#fde68a;background:#fbbf2426;border-color:#fbbf2459}.npc-attachments .attachment-chip.attachment-info{color:#93c5fd;background:#60a5fa26;border-color:#60a5fa59}.npc-attachments .attachment-modifier{font-weight:700}.npc-hint{color:#4a9eff;background:#4a9eff1a;border:1px solid #4a9eff4d;border-radius:4px;align-items:center;gap:.375rem;margin-top:.5rem;padding:.5rem;font-size:.8125rem;display:flex}.hint-icon{font-size:1rem}.hint-text{flex:1;line-height:1.3}.scene-progress{background:var(--bg-tertiary,#2a2a2a);border-radius:6px;padding:.75rem}.progress-info{align-items:center;gap:1rem;display:flex}.secrets-count{color:gold;font-size:.875rem;font-weight:600}@media (width<=768px){.scene-display{padding:.75rem}.scene-header{flex-direction:column;align-items:flex-start;gap:.5rem}.scene-type,.scene-atmosphere{width:100%}.scene-description{padding:.75rem;font-size:.875rem}.entity-header{flex-wrap:wrap}}@media (prefers-color-scheme:light){.scene-display{background:#f5f5f5}.scene-description{color:#222;background:#fff}.entity-card{background:#fff;border-color:#ddd}.entity-card:hover{border-color:#4a9eff}.entity-tags .tag{color:#666;background:#f0f0f0;border-color:#ddd}}.journal-display{max-width:900px;margin:0 auto;padding:1rem}.journal-display.empty{justify-content:center;align-items:center;min-height:400px;display:flex}.empty-state{text-align:center;padding:2rem}.empty-state h2{color:var(--text-primary,#fff);margin-bottom:1rem}.empty-state p{color:var(--text-secondary,#aaa);font-size:.9375rem}.journal-header{border-bottom:2px solid var(--border-color,#333);margin-bottom:1.5rem;padding-bottom:1rem}.journal-header h2{color:var(--text-primary,#fff);margin:0 0 .5rem}.journal-subtitle{color:var(--text-secondary,#aaa);margin:0;font-size:.875rem;font-style:italic}.journal-entries{flex-direction:column;gap:1rem;margin-bottom:1.5rem;display:flex}.journal-entry{background:var(--bg-surface,#1a1a1a);border:1px solid var(--border-color,#333);border-radius:8px;padding:1rem;box-shadow:0 2px 4px #0003}.journal-entry.entry-scene{border-left:4px solid #4a9eff}.journal-entry.entry-npc{border-left:4px solid #ff9f00}.journal-entry.entry-object{border-left:4px solid #0f8}.journal-entry.entry-secret{border-left:4px solid gold}.journal-entry.entry-quest{border-left:4px solid #f44}.entry-header{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.entry-icon{font-size:1.5rem}.entry-name{color:var(--text-primary,#fff);flex:1;font-size:1.125rem;font-weight:600}.entry-type{text-transform:uppercase;letter-spacing:.5px;background:var(--bg-tertiary,#2a2a2a);color:var(--text-secondary,#aaa);border-radius:4px;padding:.25rem .5rem;font-size:.75rem}.entry-description{color:var(--text-secondary,#ccc);margin:0 0 .75rem;font-size:.9375rem;line-height:1.6}.entry-meta{color:var(--text-tertiary,#888);gap:1rem;margin-bottom:.75rem;font-size:.8125rem;display:flex}.entry-discovered,.entry-discoverer{align-items:center;gap:.25rem;display:flex}.entry-secrets{border-top:1px solid var(--border-color,#333);margin-top:1rem;padding-top:1rem}.secrets-heading{color:var(--text-primary,#fff);margin:0 0 .75rem;font-size:.9375rem;font-weight:600}.secrets-list{flex-direction:column;gap:.75rem;display:flex}.secret-item{background:var(--bg-secondary,#252525);border:1px solid var(--border-color,#333);border-radius:6px;padding:.75rem}.secret-header{align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.secret-revealed,.secret-hidden{border-radius:4px;padding:.25rem .5rem;font-size:.8125rem;font-weight:600}.secret-revealed{color:#0f8;background:#00ff881a;border:1px solid #00ff884d}.secret-hidden{color:#888;background:#ffffff0d;border:1px solid #ffffff1a}.secret-category{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary,#aaa);font-size:.75rem}.secret-content{color:var(--text-primary,#eee);background:var(--bg-tertiary,#2a2a2a);border-radius:4px;margin:0;padding:.5rem;font-size:.875rem;line-height:1.5}.entry-related{border-top:1px solid var(--border-color,#333);margin-top:1rem;padding-top:1rem}.related-heading{color:var(--text-primary,#fff);margin:0 0 .5rem;font-size:.875rem;font-weight:600}.related-list{flex-wrap:wrap;gap:.5rem;display:flex}.related-tag{background:var(--bg-tertiary,#2a2a2a);border:1px solid var(--border-color,#333);color:var(--text-secondary,#aaa);border-radius:12px;align-items:center;gap:.25rem;padding:.25rem .75rem;font-size:.8125rem;display:flex}.journal-stats{background:var(--bg-tertiary,#2a2a2a);border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;padding:1rem;display:grid}.stat{flex-direction:column;gap:.25rem;display:flex}.stat-label{color:var(--text-secondary,#aaa);font-size:.8125rem}.stat-value{color:var(--text-primary,#fff);font-size:1.5rem;font-weight:700}@media (width<=768px){.journal-display{padding:.75rem}.journal-header{margin-bottom:1rem}.entry-header{flex-wrap:wrap}.entry-type{order:-1;width:100%;margin-bottom:.5rem}.secrets-list{gap:.5rem}.related-list{gap:.375rem}.journal-stats{grid-template-columns:repeat(2,1fr)}}.lore-journal{font-family:var(--font-ui,sans-serif);padding:.75rem}.lore-journal__title{color:#f6e05e;margin:0 0 .6rem;font-size:1rem}.lore-journal__filters{flex-wrap:wrap;gap:.3rem;margin-bottom:.75rem;display:flex}.lore-journal__filter{color:#fff5c8a6;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #fff5c840;border-radius:99px;padding:.2rem .5rem;font-size:.72rem;transition:background .15s,color .15s}.lore-journal__filter.active,.lore-journal__filter:hover{color:#f6e05e;background:#f6e05e2e;border-color:#f6e05e66}.lore-journal__empty{color:#fff5c873;font-size:.8rem;font-style:italic}.lore-journal__list{flex-direction:column;gap:.45rem;max-height:320px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.lore-journal__entry{color:#fff5c8d9;background:#fff5c80d;border-left:3px solid #0000;border-radius:6px;align-items:flex-start;gap:.45rem;padding:.35rem .5rem;font-size:.82rem;line-height:1.45;display:flex}.lore-journal__entry--discovery{border-left-color:#63b3ed}.lore-journal__entry--secret{border-left-color:#fc8181}.lore-journal__entry--relationship{border-left-color:#68d391}.lore-journal__entry--world{border-left-color:#a0aec0}.lore-journal__entry--legend{border-left-color:#f6e05e}.lore-journal__entry--rumor{border-left-color:#d69e2e}.lore-journal__entry--outcome{border-left-color:#e9d8fd}.lore-journal__icon{flex-shrink:0;font-size:1rem;line-height:1.4}.lore-journal__text{flex:1}.lore-journal__list::-webkit-scrollbar{width:3px}.lore-journal__list::-webkit-scrollbar-thumb{background:#fff5c833;border-radius:2px}.game-layout{z-index:9000;color:#fff;background:linear-gradient(135deg,#0a0a0a 0%,#1a1a1a 100%);flex-direction:column;animation:.2s ease-in fadeIn;display:flex;position:fixed;inset:0;overflow:hidden}.game-header{background:#0000004d;border-bottom:1px solid #ffffff1a;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.game-header-left{align-items:center;gap:16px;display:flex}.game-title{color:var(--color-brass,#d4af37);margin:0;font-size:1.5rem;font-weight:700}.character-name-badge{background:#667eea4d;border-radius:6px;padding:6px 12px;font-size:.9rem;font-weight:500}.game-header-right{gap:8px;display:flex}.icon-btn{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.2rem;transition:all .2s;display:flex}.icon-btn:hover{background:#fff3;transform:translateY(-2px)}.icon-btn:active{transform:translateY(0)}.tab-nav{background:#0003;border-bottom:1px solid #ffffff1a;flex-shrink:0;padding:0;display:flex;overflow:auto hidden}.tab-nav-btn{color:#fff9;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;flex:1;min-width:100px;padding:12px 16px;font-size:.95rem;font-weight:500;transition:all .2s}.tab-nav-btn:hover{color:#ffffffe6;background:#ffffff0d}.tab-nav-btn.active{color:var(--color-brass,#d4af37);border-bottom-color:var(--color-brass,#d4af37);background:#d4af371a}.game-main,.tab-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.tab-panel{flex:1;overflow:hidden auto}.card-hand-panel{background:#0000004d;border-top:1px solid #ffffff1a;flex-shrink:0;max-height:200px;padding:16px;overflow-y:auto}.no-cards-message{text-align:center;color:#fff6;padding:40px;font-style:italic}.debug-panel-container{z-index:100;position:fixed;bottom:20px;right:20px}@media (width<=1024px){.tab-nav{overflow-x:auto}.tab-nav-btn{flex:none;min-width:90px;padding:10px 12px;font-size:.9rem}}@media (width<=640px){.game-header{padding:8px 12px}.game-title{font-size:1.2rem}.character-name-badge{padding:4px 8px;font-size:.8rem}.icon-btn{width:36px;height:36px;font-size:1rem}.tab-nav-btn{min-width:80px;padding:10px 8px;font-size:.85rem}.card-hand-panel{max-height:180px;padding:12px}}.tab-panel::-webkit-scrollbar{width:8px}.card-hand-panel::-webkit-scrollbar{width:8px}.tab-panel::-webkit-scrollbar-track{background:#0003;border-radius:4px}.card-hand-panel::-webkit-scrollbar-track{background:#0003;border-radius:4px}.tab-panel::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.card-hand-panel::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.tab-panel::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.card-hand-panel::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.arrival-style-prompt{flex-direction:column;gap:1.5rem;width:100%;max-width:800px;min-height:0;margin:0 auto;display:flex;overflow-y:auto}.arrival-style-prompt.custom-mode{max-width:600px}.prompt-header{text-align:center;margin-bottom:2rem}.prompt-header h3{color:var(--text-primary,#e0e0e0);margin-bottom:.5rem;font-size:1.75rem}.prompt-subtitle{color:var(--text-secondary,#a0a0a0);font-size:1rem}.arrival-style-grid{margin-bottom:1.5rem}.arrival-style-content{text-align:left;flex-direction:column;gap:.5rem;height:100%;padding:1.5rem;transition:all .3s;display:flex}.arrival-style-content:hover{transform:translateY(-2px)}.arrival-style-content.custom-option{background:linear-gradient(135deg, var(--accent-color,#f0f0f0) 0%, var(--bg-light,#fafafa) 100%);border:2px dashed var(--border-color,#ccc)}.arrival-label{color:var(--text-primary,#e0e0e0);font-size:1.1rem;font-weight:600}.arrival-description{color:var(--text-secondary,#a0a0a0);flex:1;font-size:.9rem;line-height:1.4}.custom-badge{background:var(--primary-color,#4a90e2);color:#fff;border-radius:4px;align-self:flex-start;padding:.25rem .75rem;font-size:.85rem;font-weight:600;display:inline-block}.custom-input-section{margin-bottom:1.5rem}.custom-arrival-input{resize:vertical;width:100%;color:var(--text-primary,#e0e0e0);background:#1e1e1ecc;border:2px solid #6464644d;border-radius:8px;padding:1rem;font-family:inherit;font-size:1rem;line-height:1.5;transition:border-color .3s}.custom-arrival-input:focus{border-color:var(--accent-color,#7c3aed);outline:none}.custom-arrival-input::placeholder{color:#a0a0a099}.char-counter{text-align:right;color:var(--text-secondary,#a0a0a0);margin-top:.5rem;font-size:.85rem}.button-group{justify-content:center;gap:1rem;display:flex}.btn-primary,.btn-secondary{cursor:pointer;border:none;border-radius:8px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .3s}.btn-primary:hover:not(:disabled){background:var(--primary-color-dark,#357abd);transform:translateY(-1px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg-light,#f5f5f5);color:var(--text-primary,#333);border:1px solid var(--border-color,#ddd)}.btn-secondary:hover{background:var(--bg-hover,#e8e8e8)}@media (width<=640px){.arrival-style-grid{grid-template-columns:1fr!important}.prompt-header h3{font-size:1.5rem}.button-group{flex-direction:column}.btn-primary,.btn-secondary{width:100%}}.signature-card-prompt{flex-direction:column;gap:1.5rem;width:100%;max-width:1200px;min-height:0;margin:0 auto;padding:1.5rem;display:flex;overflow-y:auto}.signature-card-prompt .prompt-header{text-align:center}.signature-card-prompt .prompt-header h2{color:var(--text-primary,#fff);margin-bottom:.5rem;font-size:1.8rem}.signature-card-prompt .prompt-subtitle{color:var(--text-secondary,#ccc);margin-bottom:.5rem;font-size:1.1rem}.signature-card-prompt .prompt-hint{color:var(--text-tertiary,#999);max-width:600px;margin:0 auto;font-size:.9rem;font-style:italic}.signature-card-content{text-align:center;flex-direction:column;justify-content:space-between;align-items:center;gap:.5rem;height:100%;min-height:300px;padding:1rem;display:flex}.signature-card-prompt .prompt-actions{justify-content:center;gap:1rem;margin-top:auto;padding:1rem 0;display:flex}.signature-card-prompt .btn-primary{border-radius:8px;min-width:150px;padding:.75rem 2rem;font-size:1rem}.signature-card-icon{margin-bottom:.5rem;font-size:3rem}.signature-card-name{color:var(--text-primary,#fff);font-size:1.2rem;font-weight:700}.signature-card-type{text-transform:uppercase;color:var(--text-tertiary,#999);background:#ffffff1a;border-radius:12px;padding:.25rem .75rem;font-size:.85rem}.signature-card-description{color:var(--text-secondary,#ccc);margin:.5rem 0;font-size:.95rem;line-height:1.4}.signature-card-flavor{color:var(--text-tertiary,#999);border-top:1px solid #ffffff1a;margin-top:auto;padding-top:.5rem;font-size:.85rem;font-style:italic}.signature-card-tags{flex-wrap:wrap;justify-content:center;gap:.25rem;margin-top:.5rem;display:flex}.signature-card-tag{color:var(--text-secondary,#ccc);background:#ffffff26;border-radius:8px;padding:.25rem .5rem;font-size:.75rem}.signature-card-prompt .prompt-actions{justify-content:center;gap:1rem;margin-top:1rem;display:flex}.signature-card-prompt .prompt-actions .btn{cursor:pointer;border:none;border-radius:8px;min-width:120px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .2s}.signature-card-prompt .prompt-actions .btn-primary{background:var(--primary-color,#4a90e2);color:#fff}.signature-card-prompt .prompt-actions .btn-primary:hover:not(:disabled){background:var(--primary-color-hover,#357abd);transform:translateY(-1px)}.signature-card-prompt .prompt-actions .btn-primary:disabled{opacity:.5;cursor:not-allowed}.signature-card-prompt .prompt-actions .btn-secondary{color:var(--text-primary,#fff);background:#ffffff1a;border:1px solid #fff3}.signature-card-prompt .prompt-actions .btn-secondary:hover{background:#ffffff26}.signature-card-prompt .selection-preview{background:#4a90e233;border:1px solid #4a90e266;border-radius:8px;justify-content:center;align-items:center;gap:.75rem;margin-top:1rem;padding:1rem;display:flex}.selection-preview-icon{font-size:2rem}.selection-preview-text{color:var(--text-primary,#fff);font-size:1rem}.signature-card-prompt.loading,.signature-card-prompt.error{flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:400px;display:flex}.loading-spinner{color:var(--text-secondary,#ccc);font-size:1.2rem}.signature-card-prompt.error h2{color:var(--error-color,#e74c3c)}@media (width<=768px){.signature-card-prompt{padding:1rem}.signature-card-prompt .prompt-header h2{font-size:1.5rem}.signature-card-prompt .prompt-subtitle{font-size:1rem}.signature-card-prompt .prompt-hint{font-size:.85rem}.signature-card-icon{font-size:2.5rem}.signature-card-name{font-size:1rem}.signature-card-description{font-size:.9rem}.signature-card-prompt .prompt-actions{flex-direction:column-reverse;width:100%}.signature-card-prompt .prompt-actions .btn{width:100%}}.selection-grid.signature-cards .grid-item{background:linear-gradient(135deg,#ffffff0d 0%,#ffffff05 100%);border:2px solid #ffffff1a;border-radius:12px;min-height:320px;transition:all .3s}.selection-grid.signature-cards .grid-item:hover{background:linear-gradient(135deg,#4a90e21a 0%,#4a90e20d 100%);border-color:#4a90e280;transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.selection-grid.signature-cards .grid-item.selected{background:linear-gradient(135deg,#4a90e233 0%,#4a90e21a 100%);border-color:#4a90e2cc;box-shadow:0 0 20px #4a90e266}.selection-grid.signature-cards .grid-item.selected:after{content:"✓";background:var(--primary-color,#4a90e2);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.2rem;font-weight:700;display:flex;position:absolute;top:.5rem;right:.5rem}.onboarding-prompt{flex-direction:column;gap:2rem;max-width:800px;margin:0 auto;padding:2rem;animation:.3s ease-in fadeIn;display:flex}.onboarding-header{text-align:center;margin-bottom:1rem}.onboarding-header h2{color:var(--text-primary,#e0e0e0);margin-bottom:.5rem;font-size:2rem}.onboarding-subtitle{color:var(--text-secondary,#a0a0a0);margin:0;font-size:1rem}.archetype-content{text-align:left;flex-direction:column;gap:.75rem;width:100%;height:100%;display:flex}.archetype-label{color:var(--text-primary,#fff);font-size:1.25rem;font-weight:600}.archetype-description{color:var(--text-secondary,#b0b0b0);font-size:.9rem;line-height:1.4}.archetype-tags{flex-wrap:wrap;gap:.5rem;display:flex}.archetype-tag{color:var(--accent-color,#a78bfa);text-transform:lowercase;background:#7c3aed33;border-radius:12px;padding:.25rem .75rem;font-size:.75rem}.prompt-body{flex-direction:column;gap:1.5rem;display:flex}.input-wrapper{position:relative}.pronoun-picker{margin-bottom:.75rem}.pronoun-label{color:var(--text-secondary,#888);margin-bottom:.5rem;font-size:.85rem}.pronoun-buttons{flex-wrap:wrap;gap:.5rem;display:flex}.pronoun-btn{color:var(--text-secondary,#aaa);cursor:pointer;background:#1e1e1e99;border:1.5px solid #64646466;border-radius:20px;padding:.4rem .9rem;font-size:.85rem;transition:border-color .15s,color .15s,background .15s}.pronoun-btn:hover{border-color:var(--accent-color,#7c3aed);color:var(--text-primary,#e0e0e0)}.pronoun-btn.selected{border-color:var(--accent-color,#7c3aed);color:var(--text-primary,#e0e0e0);background:#7c3aed26}.pronoun-custom-inputs{gap:.5rem;margin-top:.5rem;display:flex}.pronoun-custom-inputs input{min-width:0;color:var(--text-primary,#e0e0e0);background:#1e1e1ecc;border:1.5px solid #6464644d;border-radius:6px;flex:1;padding:.4rem .6rem;font-family:inherit;font-size:.85rem}.pronoun-custom-inputs input:focus{border-color:var(--accent-color,#7c3aed);outline:none}.description-input,.name-input{width:100%;color:var(--text-primary,#e0e0e0);resize:none;background:#1e1e1ecc;border:2px solid #6464644d;border-radius:8px;padding:1rem;font-family:inherit;font-size:1rem;transition:border-color .2s}.description-input:focus,.name-input:focus{border-color:var(--accent-color,#7c3aed);outline:none;box-shadow:0 0 0 3px #7c3aed1a}.description-input.over-limit{border-color:var(--error-color,#ef4444)}.char-counter{color:var(--text-secondary,#888);font-size:.75rem;position:absolute;bottom:.5rem;right:.5rem}.char-counter.over-limit{color:var(--error-color,#ef4444);font-weight:600}.prompt-actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.btn{cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:.75rem 2rem;font-size:1rem;font-weight:600;transition:all .2s}.btn-primary{background:var(--accent-color,#7c3aed);color:#fff}.btn-primary:hover{background:var(--accent-hover,#6d28d9);transform:translateY(-1px);box-shadow:0 4px 12px #7c3aed4d}.btn-primary:disabled{cursor:not-allowed;background:#7c3aed4d;transform:none}.btn-secondary{color:var(--text-primary,#e0e0e0);background:#6464644d;border:1px solid #64646480}.btn-secondary:hover{background:#78787866;transform:translateY(-1px)}.skip-hint{text-align:center;color:var(--text-secondary,#a0a0a0);font-size:.875rem;font-style:italic;animation:.5s ease-in fadeIn}@media (width<=768px){.onboarding-prompt{padding:1rem}.onboarding-header h2{font-size:1.5rem}.archetype-grid{grid-template-columns:1fr}.prompt-actions{flex-direction:column}.btn{width:100%}}.tavern-patron-panel{max-width:1200px;margin:0 auto;padding:1rem}.tavern-header{text-align:center;margin-bottom:2rem}.tavern-header h2{margin-bottom:.5rem;font-family:Georgia,serif;font-size:2rem}.tavern-scene-description{color:var(--text-secondary,#666);max-width:600px;margin:0 auto;font-style:italic;line-height:1.6}.waiting-for-decision{background:var(--bg-highlight,#fff3cd);border:2px solid var(--border-warning,#ffc107);text-align:center;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.waiting-message{color:var(--text-dark,#333);margin:0;font-weight:600}.patron-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}@media (width<=640px){.patron-grid{grid-template-columns:1fr}}.patron-card{background:var(--card-bg,#fff);border:2px solid var(--border-color,#ddd);cursor:pointer;border-radius:12px;padding:1rem;transition:all .3s;position:relative}.patron-card:hover{border-color:var(--primary-color,#4a90e2);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.patron-card.expanded{border-color:var(--primary-color,#4a90e2);box-shadow:0 6px 16px #00000026}.patron-card.disabled{opacity:.6;cursor:not-allowed}.patron-card.disabled:hover{box-shadow:none;transform:none}.patron-card-header{align-items:flex-start;gap:1rem;margin-bottom:.75rem;display:flex}.patron-portrait{flex-shrink:0;font-size:3rem;line-height:1}.patron-name-section{flex:1}.patron-name{color:var(--text-dark,#222);margin:0;font-size:1.25rem;font-weight:700}.patron-meta{flex-wrap:wrap;gap:.5rem;margin-top:.25rem;display:flex}.quest-style,.urgency{text-transform:uppercase;border-radius:4px;padding:.25rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.quest-style-combat{color:#fff;background:#dc3545}.quest-style-social{color:#fff;background:#17a2b8}.quest-style-exploration{color:#fff;background:#28a745}.quest-style-puzzle{color:#fff;background:#6f42c1}.urgency-urgent{color:#fff;background:#fd7e14}.urgency-desperate{color:#fff;background:#dc3545}.urgency-measured{color:#fff;background:#6c757d}.patron-description-preview{color:var(--text-secondary,#666);margin:0;font-size:.9rem;line-height:1.4}.patron-details{margin-top:1rem;animation:.3s patronExpand}@keyframes patronExpand{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.patron-description{color:var(--text-secondary,#666);margin:0 0 1rem;line-height:1.6}.patron-greeting-section{background:var(--bg-accent,#f8f9fa);border-left:4px solid var(--primary-color,#4a90e2);border-radius:4px;margin:1rem 0;padding:1rem}.patron-greeting{color:var(--text-dark,#333);margin:0;font-style:italic;line-height:1.6}.patron-tags{flex-wrap:wrap;gap:.5rem;margin:1rem 0;display:flex}.patron-tag{background:var(--tag-bg,#e9ecef);color:var(--text-dark,#495057);border-radius:4px;padding:.25rem .5rem;font-size:.8rem}.select-patron-btn{background:var(--primary-color,#4a90e2);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:background .3s}.select-patron-btn:hover{background:var(--primary-color-dark,#357abd)}.select-patron-btn:active{transform:scale(.98)}.no-patrons{text-align:center;color:var(--text-secondary,#666);padding:3rem 1rem}.tavern-patron-panel.genre-fantasy{--primary-color:#d4af37;--border-color:#c19a2e}.tavern-patron-panel.genre-cyberpunk{--primary-color:#0ff;--border-color:#0cc}.tavern-patron-panel.genre-gothic{--primary-color:#8b0000;--border-color:#600}.tavern-patron-panel.genre-space{--primary-color:#4169e1;--border-color:#1e3a8a}.tavern-patron-panel.genre-mystery{--primary-color:#2f4f4f;--border-color:#1a2a2a}@media (hover:none) and (pointer:coarse){.patron-card{min-height:100px}.select-patron-btn{padding:1rem 1.5rem;font-size:1.1rem}}.onboarding-overlay{z-index:1000;background:linear-gradient(135deg,#0a0a0a 0%,#1a1a1a 100%);justify-content:center;align-items:flex-start;animation:.3s ease-in fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.onboarding-content{gap:2rem;width:100%;max-width:1400px;min-height:100%;padding:2rem;display:flex}.onboarding-left{flex:1;justify-content:center;align-items:flex-start;min-height:0;display:flex}.onboarding-right{flex-direction:column;gap:1rem;width:320px;display:flex}.waiting-message{text-align:center;color:var(--text-primary,#e0e0e0);animation:.5s ease-in fadeIn}.waiting-message h2{margin-bottom:.5rem;font-size:1.75rem}.waiting-message p{color:var(--text-secondary,#a0a0a0);font-size:1rem}.player-ready-list{background:#1e1e1e80;border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;gap:1rem;max-width:400px;margin:2rem auto;padding:1.5rem;display:flex}.player-ready-item{background:#3232324d;border-radius:8px;align-items:center;gap:1rem;padding:.75rem;transition:background .2s;display:flex}.player-ready-item:hover{background:#3c3c3c66}.player-ready-icon{color:var(--accent-color,#7c3aed);text-align:center;min-width:2rem;font-size:1.5rem}.player-ready-name{color:var(--text-primary,#e0e0e0);font-size:1.1rem;font-weight:500}@media (width<=1024px){.onboarding-content{flex-direction:column;padding:1rem}.onboarding-right{width:100%;max-width:500px;margin:0 auto}}@media (width<=768px){.onboarding-content{gap:1rem}.waiting-icon{font-size:3rem}.waiting-message h2{font-size:1.5rem}}.character-intro-overlay{z-index:1000;background:linear-gradient(135deg,#111827f2,#1f2937f2);justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.character-intro-panel{background:#1f2937e6;border:2px solid #fbbf244d;border-radius:1rem;width:100%;max-width:700px;padding:2rem;box-shadow:0 8px 32px #00000080}.intro-header{border-bottom:2px solid #fbbf2433;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;display:flex}.intro-title{color:#fbbf24;margin:0;font-size:1.75rem;font-weight:700}.intro-progress{color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;font-size:.875rem}.intro-content{margin-bottom:2rem}.character-name{color:#fbbf24;text-align:center;margin:0 0 1rem;font-size:1.5rem;font-weight:700}.intro-narrative{color:#e5e7eb;white-space:pre-wrap;margin:0;font-size:1.125rem;line-height:1.7}.intro-actions{justify-content:center;display:flex}.continue-button{color:#1f2937;cursor:pointer;background:linear-gradient(135deg,#fbbf24,#f59e0b);border:none;border-radius:.5rem;padding:.75rem 2rem;font-size:1.125rem;font-weight:600;transition:all .2s;box-shadow:0 4px 12px #fbbf244d}.continue-button:hover{background:linear-gradient(135deg,#f59e0b,#d97706);transform:translateY(-2px);box-shadow:0 6px 16px #fbbf2466}.continue-button:active{transform:translateY(0);box-shadow:0 2px 8px #fbbf244d}@media (width<=768px){.character-intro-panel{max-width:100%;padding:1.5rem}.intro-title{font-size:1.5rem}.intro-progress{font-size:.75rem}.character-name{font-size:1.25rem}.intro-narrative{font-size:1rem}.intro-header{flex-direction:column;align-items:flex-start;gap:.5rem}}@supports (padding:env(safe-area-inset-bottom)){.character-intro-overlay{padding-bottom:max(1rem, env(safe-area-inset-bottom))}}.spotlight-narrative-panel.character-intro-panel{max-width:780px}.spotlight-title-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.spotlight-badge{letter-spacing:.05em;text-transform:uppercase;color:#9ca3af;border:1px solid #9ca3af4d;border-radius:999px;padding:.15rem .5rem;font-size:.85rem;font-weight:700}.spotlight-player-name{color:#fbbf24;text-align:left;margin:0;font-size:1.25rem;font-weight:700}.spotlight-attachments{flex-wrap:wrap;gap:.4rem;margin-top:.5rem;display:flex}.spotlight-attachments .attachment-chip{color:#d1d5db;background:#fbbf241a;border:1px solid #fbbf2440;border-radius:12px;align-items:center;gap:.25rem;padding:.2rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.spotlight-attachments .attachment-chip.attachment-success{background:#34d39926;border-color:#34d39959}.spotlight-attachments .attachment-chip.attachment-danger{background:#ef444426;border-color:#ef444459}.spotlight-attachments .attachment-chip.attachment-warning{background:#fbbf2426;border-color:#fbbf2459}.spotlight-attachments .attachment-chip.attachment-info{background:#60a5fa26;border-color:#60a5fa59}.attachment-modifier{color:#fbbf24;font-weight:700}.spotlight-impact-row{border-top:1px solid #fbbf2426;flex-wrap:wrap;gap:.4rem;margin-top:.5rem;padding:.75rem 0;display:flex}.impact-chip{color:#9ca3af;background:#1f293799;border:1px solid #9ca3af40;border-radius:999px;padding:.2rem .55rem;font-size:.78rem}.impact-chip--signature{color:#fbbf24;background:#fbbf2426;border-color:#fbbf2480}@media (width<=768px){.spotlight-player-name{font-size:1.1rem}.impact-chip{font-size:.72rem}}.waiting-for-decision{max-width:1200px;margin:0 auto;padding:1.5rem}.waiting-header{text-align:center;margin-bottom:2rem}.waiting-icon{margin-bottom:1rem;font-size:3rem;animation:2s ease-in-out infinite pulse}.waiting-message{color:var(--text-primary,#e0e0e0);margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.waiting-hint{color:var(--text-secondary,#a0a0a0);margin:0;font-size:1rem;font-style:italic}.choice-preview-grid{opacity:.6;pointer-events:none;position:relative}.choice-preview-grid:after{content:"";pointer-events:none;background:linear-gradient(#0000 0%,#0000001a 50%,#0000 100%);position:absolute;inset:0}.choice-content.dimmed{filter:grayscale(50%);cursor:not-allowed}@media (width<=768px){.waiting-for-decision{padding:1rem}.waiting-icon{font-size:2.5rem}.waiting-message{font-size:1.1rem}.waiting-hint{font-size:.9rem}}@media (prefers-reduced-motion:reduce){.waiting-icon{animation:none}}.choice-panel{background:var(--surface-color,#1e293b);border-radius:12px;margin:1rem 0;padding:1.5rem;animation:.3s ease-out slideInUp;box-shadow:0 4px 6px #0000004d}.choice-panel-header{border-bottom:2px solid var(--border-color,#334155);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.choice-panel-header h3{color:var(--primary-color,#60a5fa);margin:0;font-size:1.25rem;font-weight:600}.decision-maker-hint{color:var(--success-color,#10b981);border-left:3px solid var(--success-color,#10b981);background:#10b9811a;border-radius:4px;margin:.5rem 0 0;padding:.5rem .75rem;font-size:.95rem;font-weight:500}.choice-waiting-indicator{color:var(--warning-color,#fbbf24);font-size:.9rem;font-style:italic}.choice-content{flex-direction:column;justify-content:center;align-items:center;gap:.5rem;width:100%;height:100%;display:flex}.choice-icon{font-size:2.5rem;line-height:1}.choice-title{color:var(--primary-color,#60a5fa);font-size:1.1rem;font-weight:700}.choice-description{color:var(--text-secondary,#cbd5e1);text-align:center;font-size:.9rem;line-height:1.4}.choice-preview{color:var(--text-muted,#94a3b8);text-align:center;font-size:.85rem;font-style:italic;line-height:1.3}@media (width<=768px){.choice-panel{margin:.75rem 0;padding:1rem}.choice-panel-header{flex-direction:column;align-items:flex-start;gap:.5rem}.decision-maker-hint{padding:.4rem .6rem;font-size:.85rem}.choice-icon{font-size:2rem}.choice-title{font-size:1rem}.choice-description{font-size:.85rem}.choice-preview{font-size:.8rem}}@media (prefers-color-scheme:dark){.choice-panel{--surface-color:#1e293b;--border-color:#334155;--primary-color:#60a5fa;--text-color:#e2e8f0;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--warning-color:#fbbf24}}.target-selector{z-index:10;background:linear-gradient(135deg,#1e1408f2,#0f0a04fa);border:1px solid #f59e0b80;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 14px;animation:.2s ease-out target-selector-in;display:flex;position:relative;box-shadow:0 0 20px #f59e0b33,0 4px 12px #0006}@keyframes target-selector-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.target-prompt{color:#f59e0b;letter-spacing:.05em;white-space:nowrap;margin-right:4px;font-size:.75rem;font-weight:700}.target-divider{background:#f59e0b40;width:1px;height:20px;margin:0 4px}.target-btn{color:#fde68a;cursor:pointer;white-space:nowrap;background:#f59e0b1f;border:1px solid #f59e0b59;border-radius:20px;align-items:center;gap:5px;padding:6px 12px;font-family:inherit;font-size:.78rem;font-weight:600;transition:all .15s;display:flex}.target-btn:hover{background:#f59e0b40;border-color:#f59e0bb3;transform:translateY(-1px);box-shadow:0 0 10px #f59e0b4d}.target-btn:active{transform:translateY(0)}.target-btn-icon{font-size:1rem}.target-btn-hint{color:#fde68a99;font-size:.65rem;font-weight:400}.target-cancel{color:#94a3b8b3;cursor:pointer;background:0 0;border:1px solid #94a3b84d;border-radius:50%;margin-left:auto;padding:4px 8px;font-family:inherit;font-size:.8rem;line-height:1;transition:all .15s}.target-cancel:hover{color:#ef4444;background:#ef44441a;border-color:#ef444480}.target-no-targets{color:#94a3b8b3;font-size:.75rem;font-style:italic}@media (width<=640px){.target-selector{gap:4px;padding:8px 10px}.target-prompt{width:100%;margin-bottom:2px;font-size:.7rem}.target-btn{padding:5px 10px;font-size:.72rem}}.spotlight-indicator{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#1e1e1ef2 0%,#141414f2 100%);border:1px solid #6464644d;border-radius:12px;padding:1rem}.spotlight-header{border-bottom:1px solid #64646433;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.spotlight-title{color:var(--text-secondary,#a0a0a0);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem;font-weight:600}.player-list{flex-direction:column;gap:.75rem;display:flex}.player-item{background:#28282880;border:1px solid #64646433;border-radius:8px;align-items:center;gap:.75rem;padding:.75rem;transition:all .3s;display:flex}.player-item.active{background:#7c3aed26;border-color:#7c3aed80;box-shadow:0 0 12px #7c3aed33}.player-item.active-pulse{animation:2s ease-in-out infinite pulse}.player-item.ready{border-color:#22c55e80}.player-item.pending{opacity:.7}.player-item.waiting{opacity:.5}.player-icon{text-align:center;min-width:1.5rem;font-size:1.25rem}.player-info{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.player-name{color:var(--text-primary,#e0e0e0);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:500;overflow:hidden}.player-archetype{color:var(--text-secondary,#888);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;font-style:italic;overflow:hidden}.player-status-label{color:var(--text-secondary,#888);white-space:nowrap;font-size:.75rem;font-weight:500}.player-item.active .player-status-label{color:var(--accent-color,#a78bfa)}.player-item.ready .player-status-label{color:#22c55e}.spotlight-message{text-align:center;color:var(--text-secondary,#b0b0b0);background:#7c3aed1a;border:1px solid #7c3aed4d;border-radius:8px;margin-top:1rem;padding:.75rem;font-size:.875rem;font-style:italic}@media (width<=768px){.spotlight-indicator{padding:.75rem}.player-item{padding:.5rem}.player-name{font-size:.875rem}.player-status-label{display:none}}.scene-goal-banner{background:linear-gradient(135deg,#2a1a00 0%,#3d2800 100%);border:1px solid #c8941a;border-radius:8px;margin:0 0 8px;transition:all .3s;overflow:hidden;box-shadow:0 2px 8px #c8941a33}.scene-goal-banner.goal-resolved{background:linear-gradient(135deg,#0a2a0a 0%,#163d16 100%);border-color:#4caf50;animation:.5s ease-in-out goal-pulse}@keyframes goal-pulse{0%{transform:scale(1)}50%{transform:scale(1.02);box-shadow:0 4px 16px #4caf5080}to{transform:scale(1)}}.goal-collapse-btn{cursor:pointer;color:#e8c87a;text-align:left;background:0 0;border:none;align-items:center;gap:6px;width:100%;min-height:44px;padding:8px 12px;font-size:.85rem;font-weight:600;display:flex}.goal-collapse-btn:hover{background:#c8941a1a}.goal-short-label{color:#ffd966;flex:1}.goal-progress-chip{color:#e8c87a;background:#c8941a4d;border:1px solid #c8941a;border-radius:10px;padding:1px 7px;font-size:.75rem}.goal-chevron{color:#c8941a;opacity:.7;font-size:.65rem}.goal-body{border-top:1px solid #c8941a33;padding:0 12px 10px}.goal-display-text{color:#d4b978;margin:8px 0 4px;font-size:.82rem;line-height:1.4}.goal-success-text{color:#81c784;margin:8px 0 4px;font-size:.9rem;font-weight:600}.goal-sub-goals{flex-direction:column;gap:4px;margin:6px 0 4px;padding:0;list-style:none;display:flex}.sub-goal{color:#a89060;align-items:center;gap:6px;font-size:.78rem;transition:color .3s;display:flex}.sub-goal.met{color:#81c784;-webkit-text-decoration:line-through #81c78480;text-decoration:line-through #81c78480}.sub-goal-check{text-align:center;min-width:14px;font-size:.7rem}.goal-hint{color:#7a6840;margin:6px 0 0;font-size:.75rem;font-style:italic;line-height:1.3}@media (width<=600px){.scene-goal-banner{border-top:none;border-radius:0 0 8px 8px;margin:0}.goal-display-text{font-size:.78rem}}.pressure-clock-panel{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:wrap;gap:6px;max-height:80px;padding:6px 8px;display:flex;overflow:auto hidden}.pressure-clock-panel::-webkit-scrollbar{display:none}.clock-card{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000073;border:1px solid #ffffff26;border-radius:6px;flex-direction:column;flex-shrink:0;gap:3px;min-width:80px;max-width:120px;padding:5px 7px;transition:background .3s,border-color .3s;display:flex}.clock-card.normal{border-color:#96b4ff66}.clock-card.warning{background:#3c2d008c;border-color:#ffc85099}.clock-card.urgent{background:#46000099;border-color:#ff4646b3;animation:1.2s ease-in-out infinite urgentPulse}.clock-card.clock-fired{background:#640000b3;border-color:#ff5050e6;animation:.4s steps(2,end) 3 firedFlash}.clock-card.clock-interrupted{background:#003c1499;border-color:#50dc78b3}.clock-label{color:#ffffffe6;white-space:nowrap;text-overflow:ellipsis;max-width:106px;font-size:10px;font-weight:600;line-height:1.2;overflow:hidden}.clock-countdown-row{align-items:center;gap:4px;display:flex}.clock-bar{background:#ffffff1a;border-radius:3px;flex:1;height:5px;position:relative;overflow:hidden}.clock-bar:after{content:"";inset-block:0;width:calc(var(--pct,1) * 100%);background:linear-gradient(90deg,#5af,#88f);border-radius:3px;transition:width .4s;position:absolute;left:0}.clock-card.warning .clock-bar:after{background:linear-gradient(90deg,#fa0,#f80)}.clock-card.urgent .clock-bar:after{background:linear-gradient(90deg,#f44,red)}.clock-turns{color:#fffc;white-space:nowrap;text-align:right;min-width:20px;font-size:10px;font-weight:700}.clock-card.clock-fired .clock-turns{color:#ff7070;font-size:9px}.clock-card.clock-interrupted .clock-turns{color:#7dff9a;font-size:9px}@keyframes urgentPulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes firedFlash{0%{background:#c80000cc}50%{background:#ff7800e6}to{background:#640000b3}}@media (width<=380px){.clock-card{min-width:65px;max-width:90px;padding:4px 5px}.clock-label{font-size:9px}}.secret-toast-container{bottom:calc(80px + env(safe-area-inset-bottom,0px));z-index:1000;pointer-events:none;flex-direction:column-reverse;gap:6px;width:min(90vw,360px);display:flex;position:fixed;left:50%;transform:translate(-50%)}.secret-toast{pointer-events:all;cursor:pointer;background:#10141ef2;border:1px solid #64a0dc80;border-left:3px solid #64a0dc;border-radius:8px;align-items:center;gap:8px;padding:10px 14px;animation:.3s ease-out toast-slide-up;display:flex;box-shadow:0 4px 16px #0006}@keyframes toast-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.secret-toast-icon{flex-shrink:0;font-size:1rem}.secret-toast-text{color:#a8c8e8;flex:1;font-size:.82rem;line-height:1.3}@media (width<=600px){.secret-toast-container{bottom:calc(70px + env(safe-area-inset-bottom,0px));width:calc(100vw - 24px)}}.narrative-log{max-height:220px;padding:0 .25rem;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000 0%,#000 18% 100%);mask-image:linear-gradient(#0000 0%,#000 18% 100%)}.narrative-log__inner{flex-direction:column;gap:.55rem;padding:.5rem .25rem .25rem;display:flex}.narrative-log__entry{color:#fff5dc8c;margin:0;font-size:.82rem;font-style:italic;line-height:1.5;transition:color .4s}.narrative-log__entry--latest{color:#fff5dce0;font-style:normal}.narrative-log::-webkit-scrollbar{width:3px}.narrative-log::-webkit-scrollbar-track{background:0 0}.narrative-log::-webkit-scrollbar-thumb{background:#fff5dc33;border-radius:2px}@media (height<=600px){.narrative-log{max-height:100px}}.momentum-tooltip-wrapper{align-items:center;display:inline-flex;position:relative}.momentum-tooltip-trigger{color:#fff5c8d9;cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:.25rem;padding:.2rem .4rem;font-size:.85rem;transition:background .15s;display:inline-flex}.momentum-tooltip-trigger:hover,.momentum-tooltip-trigger:focus-visible{background:#ffffff14}.momentum-value{font-weight:600}.momentum-info-icon{opacity:.6;font-size:.75rem}.momentum-tooltip-bubble{z-index:100;background:#1e2533;border:1px solid #fff5c826;border-radius:8px;width:260px;padding:.75rem .85rem;animation:.15s tooltipFadeIn;position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000080}.momentum-tooltip-title{color:#f6e05e;margin:0 0 .3rem;font-size:.82rem;font-weight:700}.momentum-tooltip-body{color:#ffffffd1;margin:0;font-size:.78rem;line-height:1.45}.momentum-tooltip-desc{color:#fff5c899;margin:.4rem 0 0;font-size:.75rem;font-style:italic}.momentum-tooltip-close{color:#fff6;cursor:pointer;background:0 0;border:none;padding:.15rem;font-size:.75rem;position:absolute;top:.35rem;right:.35rem}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%)translateY(4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.spotlight-play-view{width:100%;min-height:100vh;color:var(--text-primary,#e0e0e0);background:linear-gradient(135deg,#0a0a0a 0%,#1a1a1a 100%);flex-direction:column;display:flex;overflow-y:auto}.spotlight-play-view.waiting{justify-content:center;align-items:center;padding:2rem}.waiting-content{text-align:center;max-width:600px}.waiting-icon{font-size:4rem;animation:2s ease-in-out infinite pulse}.waiting-content h2{color:var(--text-primary,#e0e0e0);margin:1rem 0;font-size:2rem}.waiting-hint{color:var(--text-secondary,#a0a0a0);margin-bottom:2rem;font-size:1rem}.waiting-scene-preview{opacity:.6;margin-top:2rem}.waiting-banner{z-index:900;color:#fff;text-align:center;background:#000000d9;padding:.75rem 1rem;font-size:.95rem;position:fixed;top:0;left:0;right:0}.waiting-banner .waiting-main{display:inline}.waiting-banner .waiting-subline{color:#d7d7d7;margin-top:.2rem;font-size:.82rem;display:block}.waiting-banner .waiting-icon{margin-right:.5rem;font-size:1.1rem}.spotlight-play-view.active{grid-template-rows:auto 1fr auto;gap:1rem;padding:1rem;display:grid}.play-header{background:#0000004d;border:1px solid #ffffff1a;border-radius:8px;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem 1rem;display:flex}.lore-pulse{color:#d6d6d6;justify-content:flex-end;gap:.45rem;font-size:.78rem;display:flex}.lore-pulse__summary{color:#ffd27a;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:999px;padding:.2rem .55rem;font-weight:600}.lore-pulse span{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:999px;padding:.2rem .45rem}.context-toggle-btn{color:#efe3c1;background:#ffffff12;border:1px solid #fff3;border-radius:8px;padding:.35rem .55rem;font-size:.74rem;font-weight:600}.scene-details-panel{background:#0b0d12c7;border:1px solid #ffffff1f;border-radius:10px;padding:.6rem}.scene-details-copy{color:#cfd7e1;margin:0 0 .45rem;font-size:.75rem}.play-body{flex-direction:column;gap:1rem;padding:0 1rem;display:flex;overflow-y:auto}.stakes-strip{background:linear-gradient(135deg,#281c0ad9,#1a1208e6);border:1px solid #ffe18c4d;border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:.5rem;padding:.6rem .75rem;display:flex}.stakes-label{text-transform:uppercase;letter-spacing:.04em;color:#f1c979;font-size:.72rem;font-weight:700}.stakes-text{color:#e9dfc6;font-size:.84rem;line-height:1.35}.play-footer{background:#00000080;border-top:1px solid #ffffff1a;padding:1rem}@media (width<=768px){.spotlight-play-view.active{gap:.5rem;padding:.5rem}.play-header{padding:.5rem}.play-body{padding:0 .5rem}.stakes-text{font-size:.8rem}.play-footer{padding:.5rem}.waiting-content h2{font-size:1.5rem}.waiting-icon{font-size:3rem}}@supports (padding:env(safe-area-inset-bottom)){.play-footer{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}}.privacy-page{background:var(--color-bg,#1a1a2e);min-height:100vh;color:var(--color-text,#fff5c8);font-family:var(--font-ui,Inter, system-ui, sans-serif);padding:2rem;overflow-y:auto}.privacy-content{max-width:640px;margin:0 auto;line-height:1.6}.privacy-back-btn{color:var(--color-text,#fff5c8);cursor:pointer;background:0 0;border:1px solid #fff5c84d;border-radius:4px;margin-bottom:1.5rem;padding:.5rem 1rem;font-size:.9rem}.privacy-back-btn:hover{background:#fff5c81a}.privacy-content h1{margin-bottom:.25rem;font-size:1.75rem}.privacy-updated{opacity:.6;margin-bottom:2rem;font-size:.85rem}.privacy-content h2{color:var(--color-brass,#c9a86c);margin-top:2rem;margin-bottom:.5rem;font-size:1.2rem}.privacy-content p{opacity:.9;margin-bottom:.75rem}.privacy-content ul{opacity:.9;margin:.5rem 0 1rem 1.5rem}.privacy-content li{margin-bottom:.35rem}.privacy-content section{margin-bottom:1rem}.feedback-badge{bottom:env(safe-area-inset-bottom,12px);z-index:900;font-family:var(--font-ui,Inter, system-ui, sans-serif);background:#1a1a2eeb;border:1px solid #c9a86c66;border-radius:6px;align-items:center;gap:4px;padding:.4rem .7rem;animation:.5s ease-out fadeInUp;display:flex;position:fixed;right:12px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.feedback-badge__link{color:var(--color-brass,#c9a86c);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:.78rem;text-decoration:underline}.feedback-badge__link:hover{color:var(--color-accent,#e5c07b)}.feedback-badge__dismiss{color:#fff5c866;cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:.75rem;line-height:1}.feedback-badge__dismiss:hover{color:#fff5c8cc}.error-boundary{background:var(--color-bg,#1a1a2e);min-height:100vh;color:var(--color-text,#fff5c8);font-family:var(--font-narrative,Georgia, "Times New Roman", serif);justify-content:center;align-items:center;padding:2rem;display:flex}.error-boundary__content{text-align:center;max-width:420px;animation:.6s ease-out fadeIn}.error-boundary__icon{margin-bottom:1rem;font-size:3rem}.error-boundary__title{margin-bottom:.75rem;font-size:1.5rem}.error-boundary__message{opacity:.85;margin-bottom:1.5rem;font-size:1rem;line-height:1.5}.error-boundary__btn{background:var(--color-brass,#c9a86c);color:var(--color-bg,#1a1a2e);cursor:pointer;border:none;border-radius:6px;padding:.75rem 2rem;font-size:1rem;font-weight:600;transition:background .2s;display:inline-block}.error-boundary__btn:hover{background:var(--color-accent,#e5c07b)}.error-boundary__details{text-align:left;opacity:.6;margin-top:1.5rem;font-size:.8rem}.error-boundary__details pre{white-space:pre-wrap;word-break:break-word;margin-top:.5rem}:root{--color-charcoal:#1a1a1f;--color-charcoal-light:#252530;--color-off-white:#f5f4f0;--color-off-white-dim:#d4d3cf;--color-brass:#c9a961;--color-brass-dim:#a08850;--color-slate:#4a5467;--color-slate-light:#5f6a7f;--color-crimson:#a84448;--color-green:#6b8e5f;--color-spotlight-glow:#c9a96126;--color-spotlight-border:#c9a96166;--color-shadow-warm:#0000004d;--font-ui:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-narrative:"Georgia", "Lora", "Spectral", serif;--font-accent:"Inter", sans-serif;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-xxl:48px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease}*{box-sizing:border-box;margin:0;padding:0}html,body{overscroll-behavior:none}body{font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-charcoal);color:var(--color-off-white);touch-action:manipulation}#root,.app{flex-direction:column;min-height:100vh;display:flex}.app-header{text-align:center;background-color:#2a2a2a;border-bottom:2px solid #3a3a3a;padding:1rem}.app-header h1{margin-bottom:.5rem}.app-header p{color:#888;font-size:.9rem}.app-header button{color:#fff;cursor:pointer;background-color:#444;border:none;border-radius:4px;margin-top:.5rem;padding:.5rem 1rem}.app-header button:hover{background-color:#555}.app-main{flex:1;justify-content:center;align-items:center;padding:2rem;display:flex}.lobby-placeholder,.game-placeholder{text-align:center;background-color:#2a2a2a;border-radius:8px;min-width:300px;padding:3rem}.lobby-placeholder h2,.game-placeholder h2{color:#f0f0f0;margin-bottom:1rem}.lobby-placeholder button,.game-placeholder button{color:#fff;cursor:pointer;background-color:#4a9eff;border:none;border-radius:4px;padding:.75rem 1.5rem;font-size:1rem;transition:background-color .2s}.lobby-placeholder button:hover,.game-placeholder button:hover{background-color:#3a8eef}.app-footer{text-align:center;color:#888;background-color:#2a2a2a;border-top:2px solid #3a3a3a;padding:1rem;font-size:.85rem}.loading-screen{color:#f0f0f0;background-color:#1a1a1a;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;display:flex}.loading-screen h1{margin-bottom:1rem;font-size:2.5rem}.loading-screen p{color:#888}@media (width<=768px){.app-header h1{font-size:1.5rem}.app-main{padding:1rem}.lobby-placeholder,.game-placeholder{min-width:100%;padding:2rem}}.gear-icon-toggle{z-index:10000;background-color:var(--color-charcoal-light);border:2px solid var(--color-brass);width:48px;height:48px;color:var(--color-brass);cursor:pointer;transition:all var(--transition-normal);box-shadow:0 2px 8px var(--color-shadow-warm);border-radius:50%;justify-content:center;align-items:center;font-size:24px;display:flex;position:fixed;top:16px;right:16px}.gear-icon-toggle:hover{background-color:var(--color-brass);color:var(--color-charcoal);box-shadow:0 4px 12px var(--color-shadow-warm);transform:rotate(90deg)}.gear-icon-toggle:active{transform:rotate(90deg)scale(.95)}@media (width<=768px){.gear-icon-toggle{width:56px;height:56px;font-size:28px;top:12px;right:12px}}@supports (padding:env(safe-area-inset-top)){.gear-icon-toggle{top:calc(16px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right))}@media (width<=768px){.gear-icon-toggle{top:calc(12px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right))}}}
