@import url(https://fonts.googleapis.com/css2?family=Cinzel:wght@400;700&family=Lora:ital,wght@0,400;0,700;1,400&family=Inter:wght@400;500;700&display=swap);:root{--light-bg:#f4e4bc;--light-surface:#fff9eb;--light-primary:#5d4037;--light-accent:#c0a080;--light-text:#2c1e1a;--light-text-secondary:#5d4037cc;--light-border:#d4c4a8;--light-shadow:#5d403726;--light-inventory-shelf-bg:#5d4037;--dark-bg:#121212;--dark-surface:#1e1e1e;--dark-primary:#d4af37;--dark-accent:#8e44ad;--dark-text:#e0e0e0;--dark-text-secondary:#b0b0b0;--dark-border:#333;--dark-shadow:#00000080;--dark-inventory-shelf-bg:#0a0a0a;--font-header:"Cinzel",serif;--font-body:"Lora",serif;--font-ui:"Inter",sans-serif;--surface-soft:#e9ecef;--border-soft:#d7dce1;--ink-strong:#2c3e50;--state-success:#2ecc71;--state-success-strong:#27ae60;--state-danger:#e74c3c;--state-danger-strong:#c0392b;--state-danger-bright:#ff5252;--state-danger-bright-10:#ff52521a;--state-danger-bright-30:#ff52524d;--state-warning:#f39c12;--state-warning-strong:#e67e22;--state-info:#3498db;--state-info-strong:#2980b9;--state-muted:#95a5a6;--state-muted-strong:#7f8c8d;--state-muted-faint:#bdc3c7;--state-highlight:#f1c40f;--state-success-deep:#229954;--state-warning-deep:#d35400;--state-violet:#6c5ce7;--state-violet-soft:#a29bfe;--control-text:#495057;--control-border:#ced4da;--control-hover:#dee2e6;--text-secondary-soft:#6c757d;--surface-game:#e8edf0;--shadow-black-10:#0000001a;--shadow-black-20:#0003;--shadow-black-30:#0000004d;--shadow-black-40:#0006;--glow-success-40:#27ae6066;--glow-success-60:#27ae6099;--glow-success-90:#27ae60e6;--glow-info-60:#3498db99;--glow-info-90:#3498dbe6;--glow-danger-30:#e74c3c4d;--glow-danger-60:#e74c3c99;--glow-highlight-60:#f1c40f99;--glow-info-30:#3498db4d;--shadow-black-08:#00000014;--shadow-black-15:#00000026;--overlay-dark-60:#0009;--on-dark:#fff;--primary-tint-05:#d4af370d;--primary-tint-10:#d4af371a;--encounter-luck-start:#00b894;--encounter-luck-end:#00cec9;--encounter-danger-start:#d63031;--encounter-danger-end:#e17055;--encounter-violet-glow-30:#6c5ce74d;--encounter-violet-glow-40:#6c5ce766;--encounter-violet-glow-50:#6c5ce780;--danger-tint-10:#e74c3c1a;--danger-tint-20:#e74c3c33;--danger-strong-tint-10:#c0392b1a;--danger-strong-tint-20:#c0392b33;--warning-tint-10:#f39c121a;--warning-strong-tint-10:#e67e221a;--success-tint-20:#27ae6033;--success-strong-tint-20:#2ecc7133;--success:var(--state-success-strong);--warning:var(--state-warning);--surface-light:var(--surface)}[data-theme=light-fantasy]{--bg:var(--light-bg);--surface:var(--light-surface);--primary:var(--light-primary);--accent:var(--light-accent);--text:var(--light-text);--text-secondary:var(--light-text-secondary);--border:var(--light-border);--shadow:var(--light-shadow);--inventory-shelf-bg:var(--light-inventory-shelf-bg);--header-font:var(--font-header);--body-font:var(--font-body)}[data-theme=dark-fantasy]{--bg:var(--dark-bg);--surface:var(--dark-surface);--primary:var(--dark-primary);--accent:var(--dark-accent);--text:var(--dark-text);--text-secondary:var(--dark-text-secondary);--border:var(--dark-border);--shadow:var(--dark-shadow);--inventory-shelf-bg:var(--dark-inventory-shelf-bg);--header-font:var(--font-header);--body-font:var(--font-body)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg);color:var(--text);font-family:var(--body-font),serif;line-height:1.6;margin:0;padding:0;transition:background-color .3s ease,color .3s ease}code{background-color:#e9ecef;background-color:var(--surface-soft);border-radius:3px;font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;padding:.2em .4em}h1,h2,h3,h4,h5,h6{color:var(--primary);font-family:var(--header-font);letter-spacing:.05em;margin-bottom:.8em;margin-top:1.5em}h2,h3,h4,h5,h6{text-transform:uppercase}h1{font-size:2.22rem}h2{font-size:1.88rem}h3{font-size:1.55rem}button{background-color:var(--primary);border:1px solid var(--primary);border-radius:4px;box-shadow:0 2px 4px var(--shadow);color:var(--bg);cursor:pointer;font-family:var(--header-font);font-size:.9rem;letter-spacing:.1em;padding:10px 24px;transition:all .2s ease}button:hover{background-color:initial;color:var(--primary)}button:active{transform:translateY(1px)}button:disabled{background-color:var(--text-secondary);border-color:var(--text-secondary);cursor:not-allowed;opacity:.5}input[type=number],input[type=password],input[type=text],select,textarea{background-color:var(--surface);border:1px solid var(--border);border-radius:4px;box-sizing:border-box;color:var(--text);font-family:var(--ui-font),sans-serif;font-size:1rem;margin-bottom:20px;padding:12px;transition:border-color .2s ease;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--shadow);outline:none}label{color:var(--text-secondary);display:block;font-family:var(--header-font);font-size:.85rem;font-weight:600;letter-spacing:.05em;margin-bottom:8px}.container{margin:20px auto;max-width:1200px;padding:0 20px}a{border-bottom:1px solid #0000;color:var(--primary);text-decoration:none;transition:all .2s ease}a:hover{border-bottom-color:var(--primary)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}a:focus-visible,button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.error-message{background-color:#ff52521a;background-color:var(--state-danger-bright-10);border:1px solid #ff52524d;border:1px solid var(--state-danger-bright-30);border-radius:4px;color:#ff5252;color:var(--state-danger-bright);font-family:var(--ui-font),sans-serif;font-size:.9rem;margin-top:10px;padding:12px}.debug-page{margin:0 auto;max-width:1200px;padding:20px}.debug-section{background:var(--bg-secondary);border-radius:8px;margin-bottom:20px;padding:20px}.debug-section h3{color:var(--primary);font-family:var(--header-font);margin-top:0}.debug-section .form-group,.debug-section h3{margin-bottom:15px}.debug-section .form-group label{color:var(--text);display:block;font-weight:700;margin-bottom:5px}.debug-section .form-group input,.debug-section .form-group select,.debug-section .form-group textarea{background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:inherit;font-size:.95rem;padding:8px 12px;width:100%}.debug-section .form-group textarea{font-family:monospace;resize:vertical}.debug-section .form-group input:focus,.debug-section .form-group select:focus,.debug-section .form-group textarea:focus{border-color:var(--primary);outline:none}.debug-section pre{color:var(--text);font-family:Courier New,monospace;font-size:.9rem;line-height:1.5}.debug-section code{background:var(--surface);border-radius:3px;color:var(--primary);font-family:monospace;font-size:.9em;padding:2px 6px}.error-section{border-color:var(--state-danger)}.success-section{border-color:var(--state-success)}.debug-section ol{margin:10px 0;padding-left:25px}.debug-section ol li{margin-bottom:8px}.debug-page .primary-button{background-color:var(--primary);border:1px solid var(--primary);border-radius:4px;color:var(--bg);cursor:pointer;font-family:var(--header-font);font-size:.95rem;padding:10px 20px;transition:all .2s ease}.debug-page .primary-button:hover:not(:disabled){background-color:initial;color:var(--primary)}.debug-page .primary-button:disabled{cursor:not-allowed;opacity:.5}.how-to-play-container{background:var(--background);color:var(--text);min-height:100vh;padding:2rem 1rem}.how-to-play-content{background:var(--surface);border-radius:12px;box-shadow:0 4px 6px #0000001a;margin:0 auto;max-width:1200px;padding:3rem}.how-to-play-content h1{border-bottom:3px solid var(--primary);color:var(--primary);font-size:2.5rem;margin-bottom:1.5rem;padding-bottom:1rem;text-align:center}.intro-section{margin-bottom:3rem}.intro-text{color:var(--text-secondary);font-size:1.2rem;line-height:1.8;margin:0 auto;max-width:800px;text-align:center}.feature-section{background:var(--background);border-radius:8px;border-top:4px solid var(--primary);margin-bottom:4rem;padding:2rem}.feature-section h2{color:var(--primary);font-size:2rem;margin-bottom:1.5rem}.feature-section h3{color:var(--accent);font-size:1.5rem;margin-bottom:1rem;margin-top:2rem}.feature-content{grid-gap:2rem;align-items:start;display:grid;gap:2rem;grid-template-columns:1fr 1fr}.feature-content.reverse .feature-text{order:2}.feature-content.reverse .feature-image-placeholder{order:1}@media (max-width:768px){.feature-content.reverse .feature-image-placeholder,.feature-content.reverse .feature-text{order:0}}.feature-text{line-height:1.7}.feature-text p{margin-bottom:1rem}.feature-text ul{margin:1.5rem 0;padding-left:1.5rem}.feature-text li{line-height:1.6;margin-bottom:.8rem}.feature-text li strong{color:var(--accent)}.tip{background:var(--surface);border-left:4px solid var(--accent);border-radius:4px;font-style:italic;margin-top:1.5rem;padding:1rem}.tip strong{color:var(--accent);font-style:normal}.feature-image-placeholder{align-items:center;display:flex;justify-content:center;min-height:300px}.feature-screenshot{border:2px solid var(--border);border-radius:8px;box-shadow:0 4px 12px #0003;height:auto;width:100%}.clickable-screenshot{cursor:pointer;transition:transform .3s ease,box-shadow .3s ease}.clickable-screenshot:hover{border-color:var(--primary);box-shadow:0 6px 16px #0000004d;transform:scale(1.02)}.clickable-screenshot:active{transform:scale(.98)}.placeholder-box{background:var(--surface);border:2px dashed var(--border);border-radius:8px;color:var(--text-secondary);padding:3rem;text-align:center;width:100%}.placeholder-box p{margin:.5rem 0}.placeholder-note{font-size:.9rem;font-style:italic;opacity:.7}.how-to-play-mini-gallery{display:flex;gap:1.5rem;justify-content:flex-start;margin:1.5rem 0}.how-to-play-hero-container{margin-bottom:1rem;width:100%}.hero-screenshot{max-height:400px;object-fit:cover;width:100%}.mini-gallery-item{align-items:center;display:flex;flex-direction:column;gap:.5rem}.mini-gallery-item img{background:var(--background);border:2px solid var(--border);border-radius:8px;height:80px;object-fit:cover;width:80px}.mini-gallery-item span{color:var(--text-secondary);font-size:.9rem;font-weight:700}.getting-started-section{background:var(--surface);border:2px solid var(--primary);border-radius:12px;color:var(--text);margin-bottom:3rem;padding:3rem;text-align:center}.getting-started-section h2{color:var(--primary);font-size:2rem;margin-bottom:1.5rem}.getting-started-section p{font-size:1.1rem;margin-bottom:1.5rem}.steps-list{font-size:1.1rem;line-height:1.8;margin:2rem auto;max-width:600px;text-align:left}.steps-list li{margin-bottom:1rem;padding-left:.5rem}.steps-list strong{color:var(--primary)}.cta-buttons{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:2rem}.cta-button{border:none;border-radius:8px;cursor:pointer;display:inline-block;font-size:1.1rem;font-weight:700;padding:1rem 2rem;text-decoration:none;transition:all .3s ease}.cta-button.primary{background:var(--primary);border:2px solid var(--primary);box-shadow:0 4px 12px #0003;color:var(--bg)}.cta-button.primary:hover{background:#0000;box-shadow:0 6px 16px #0000004d;color:var(--primary);transform:translateY(-2px)}.cta-button.secondary{background:var(--accent);border:2px solid var(--accent);box-shadow:0 4px 12px #0003;color:var(--bg)}.cta-button.secondary:hover{background:#0000;box-shadow:0 6px 16px #0000004d;color:var(--accent);transform:translateY(-2px)}.cta-button.tertiary{background:#0000;border:2px solid var(--border);color:var(--text)}.cta-button.tertiary:hover{background:var(--surface);border-color:var(--primary);color:var(--primary)}.faq-section{margin-bottom:3rem}.faq-section h2{color:var(--primary);font-size:2rem;margin-bottom:2rem;text-align:center}.faq-item{background:var(--background);border-left:4px solid var(--accent);border-radius:8px;margin-bottom:2rem;padding:1.5rem}.faq-item h3{color:var(--accent);font-size:1.3rem;margin-bottom:1rem}.faq-item p{color:var(--text-secondary);line-height:1.7}.footer-section{border-top:2px solid var(--border);margin-top:3rem;padding:2rem;text-align:center}.footer-section p{font-size:1.1rem;margin-bottom:1rem}.back-link{color:var(--primary);font-size:1.1rem;font-weight:700;text-decoration:none;transition:color .3s ease}.back-link:hover{color:var(--accent)}.image-modal-overlay{align-items:center;animation:fadeIn .2s ease;background:#000000e6;bottom:0;cursor:pointer;display:flex;justify-content:center;left:0;padding:2rem;position:fixed;right:0;top:0;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.image-modal-content{align-items:center;animation:zoomIn .3s ease;cursor:default;display:flex;flex-direction:column;max-height:95vh;max-width:95vw;position:relative}@keyframes zoomIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.image-modal-img{border:3px solid var(--primary);border-radius:8px;box-shadow:0 8px 32px #00000080;height:auto;max-height:85vh;max-width:100%;width:auto}.image-modal-close{align-items:center;background:var(--primary);border:none;border-radius:50%;box-shadow:0 4px 12px #0000004d;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:1.5rem;height:40px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0;position:absolute;right:0;top:-40px;transition:all .3s ease;width:40px}.image-modal-close:hover{background:var(--accent);transform:rotate(90deg)}.image-modal-caption{background:#00000080;border-radius:4px;color:#fff;font-size:1.1rem;margin-top:1rem;padding:.5rem 1rem;text-align:center}@media (max-width:768px){.how-to-play-content{padding:2rem 1.5rem}.how-to-play-content h1{font-size:2rem}.feature-content{grid-template-columns:1fr}.feature-section h2{font-size:1.5rem}.feature-section h3{font-size:1.3rem}.getting-started-section{padding:2rem 1.5rem}.cta-buttons{align-items:stretch;flex-direction:column}.cta-button{box-sizing:border-box;width:100%}.steps-list{padding-left:1.5rem}.image-modal-overlay{padding:1rem}.image-modal-close{font-size:1.2rem;height:35px;top:-35px;width:35px}.image-modal-caption{font-size:.9rem}}.App{background-color:var(--bg);color:var(--text);display:flex;flex-direction:column;font-family:var(--body-font);min-height:100vh;text-align:center}.main-content{box-sizing:border-box;flex-grow:1;margin:0 auto;max-width:1100px;padding:40px 20px;width:100%}.main-content.game-page-content{max-width:100%;padding:0}.Home-page,.character-creation-form,.page-container{background-color:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 32px var(--shadow);padding:40px;position:relative;text-align:left}.Home-page:before,.character-creation-form:before,.page-container:before{background:linear-gradient(90deg,#0000,var(--primary),#0000);content:"";height:3px;left:0;position:absolute;right:0;top:0}.hero-section{margin-bottom:40px;text-align:center}.hero-section h1{font-size:3.5rem;margin-bottom:.2em;text-shadow:0 4px 8px var(--shadow)}.subtitle{color:var(--text-secondary);font-family:var(--header-font);font-size:1.1rem;letter-spacing:.2em;text-transform:uppercase}.home-navigation{display:flex;flex-direction:column;gap:20px}.home-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr}.home-nav-card{align-items:center;background-color:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 6px var(--shadow);color:var(--text);display:flex;flex-direction:column;padding:24px;text-align:center;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.home-nav-card:hover{background-color:var(--shadow);border-color:var(--primary);box-shadow:0 12px 24px var(--shadow);transform:translateY(-5px)}.primary-card{background-color:var(--primary);border-color:var(--primary);flex-direction:row;gap:20px;justify-content:center;padding:30px}.primary-card .card-icon{font-size:2.5rem}.primary-card .card-content h3{color:var(--bg);font-size:1.5rem;margin:0}.primary-card .card-content p{color:var(--bg);margin:5px 0 0;opacity:.8}.primary-card:hover{background-color:initial}.primary-card:hover .card-content h3,.primary-card:hover .card-content p{color:var(--primary)}.card-icon{font-size:2rem;margin-bottom:15px}.home-nav-card h3{font-family:var(--header-font);font-size:1.2rem;margin:0}.home-nav-card p{color:var(--text-secondary);font-size:.9rem;margin:10px 0 0}.mobile-sign-in-card{display:none}@media (max-width:768px){.mobile-sign-in-card{display:flex}}.conversation{display:flex;flex-direction:column;flex-grow:1;gap:10px;margin-bottom:15px;overflow-y:auto;padding:10px;position:relative}.start-adventure-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:var(--shadow);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:5}.start-adventure-button{background-color:var(--state-success);border:none;border-radius:8px;box-shadow:0 4px 10px var(--shadow-black-20);color:#fff;cursor:pointer;font-size:1.2rem;font-weight:700;padding:15px 30px;transition:background-color .3s ease,transform .1s ease}.start-adventure-button:hover{background-color:var(--state-success-strong)}.start-adventure-button:active{transform:scale(.98)}.message{word-wrap:break-word;border-radius:15px;box-shadow:0 1px 2px var(--shadow-black-10);line-height:1.4;max-width:75%;padding:10px 15px}.message.user{align-self:flex-end;background-color:var(--primary);border-bottom-right-radius:5px;color:var(--bg);margin-left:auto}.message.ai{align-self:flex-start;background-color:var(--bg);border:1px solid var(--border);border-bottom-left-radius:5px;color:var(--text);margin-right:auto;text-align:left;white-space:pre-line}.message.system{align-self:center;background-color:var(--surface);border:1px solid var(--border);color:var(--text-secondary);font-size:.9rem;font-style:italic;max-width:90%;text-align:center}.message.quest-message{align-self:stretch;background-color:var(--surface);border-left:1px solid var(--primary);border:1px solid var(--primary);border-left-width:4px;color:var(--text);font-style:normal;max-width:100%;text-align:left}.message.error{align-self:center;background-color:var(--state-danger-bright-10);border:1px solid var(--state-danger-bright-30);color:var(--state-danger-bright);font-size:.9rem;font-style:italic;max-width:90%;text-align:center}.safe-markdown-message{overflow-wrap:anywhere;white-space:normal}.safe-markdown-message>:first-child{margin-top:0}.safe-markdown-message>:last-child{margin-bottom:0}.safe-markdown-message .md-heading{line-height:1.25;margin:0 0 .45rem}.safe-markdown-message .md-paragraph{margin:0 0 .55rem}.safe-markdown-message .md-list{margin:.15rem 0 .55rem 1.2rem;padding:0}.safe-markdown-message .md-list li+li{margin-top:.2rem}.safe-markdown-message .md-blockquote{border-left:3px solid var(--border);color:var(--text-secondary);margin:.2rem 0 .55rem;padding-left:.65rem}.safe-markdown-message .md-code-block{background:var(--shadow-black-20);border:1px solid var(--border);border-radius:6px;margin:.25rem 0 .55rem;overflow-x:auto;padding:.6rem;white-space:pre}.safe-markdown-message .md-inline-code{background:var(--shadow-black-20);border:1px solid var(--border);border-radius:4px;font-size:.92em;padding:.05rem .3rem}.safe-markdown-message a{color:inherit;text-decoration:underline}.message.ai .safe-markdown-message a{color:var(--primary)}.game-page-wrapper{height:calc(100vh - 60px);overflow:hidden;width:100%}.game-container{background-color:var(--surface-game);display:flex;height:100%;overflow:hidden;width:100%}.game-main{background-color:var(--surface);box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;height:100%;order:1;overflow-y:auto;padding:20px}.game-top{border-bottom:1px solid var(--border);margin-bottom:15px;padding-bottom:15px;text-align:left}.game-top h2{margin-bottom:10px;margin-top:0}.header-button-group{align-items:center;display:flex;flex-wrap:nowrap;gap:8px;justify-content:flex-end}.header-button-group button{flex-shrink:0;font-size:.7rem;letter-spacing:.5px;padding:8px 12px;white-space:nowrap}.game-info-header{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 12px var(--shadow);display:flex;gap:20px;justify-content:space-between;margin:15px 0;padding:20px 25px}.game-info-header p{color:var(--text-secondary);font-size:.9rem;line-height:1.5;margin:4px 0!important}.game-info-header strong{color:var(--primary);font-family:var(--header-font);font-size:.8rem;font-weight:700;letter-spacing:.5px;margin-right:4px;text-transform:uppercase}.how-to-play-button,.manual-save-button,.view-map-button,.view-settings-button{background-color:var(--bg);border:1px solid var(--border);border-radius:6px;box-shadow:0 2px 5px var(--shadow);color:var(--text);cursor:pointer;font-size:.85rem;letter-spacing:.5px;padding:8px 14px;transition:all .2s ease;white-space:nowrap}.how-to-play-button:hover,.manual-save-button:hover,.view-map-button:hover,.view-settings-button:hover{background-color:var(--surface);border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}.game-lower-section{margin-top:auto;width:100%}.game-lower-section form{align-items:center;display:flex;gap:10px}.user-input{flex-grow:1;height:60px;margin-bottom:0}.game-send-button{flex-shrink:0;padding:12px 20px}.info{font-size:.8rem;margin-top:10px}.game-main .model-info-text,.info{color:var(--text-secondary);text-align:center}.game-main .model-info-text{background:var(--bg);border:1px solid var(--border);border-radius:6px;display:block;font-size:.85rem;margin:10px auto;min-width:250px;padding:6px 15px;white-space:nowrap;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.game-main .model-label{font-weight:700;margin-right:5px}.game-main .model-value{color:var(--primary);font-family:monospace}.game-main .status-bar{align-items:center;display:flex;gap:15px;justify-content:space-between;margin-bottom:4px;margin-top:4px;padding:4px 10px}.session-info{flex:1 1;font-family:monospace;margin:0}.api-key-status,.session-info{color:var(--text-secondary);font-size:.7rem}.api-key-status{align-items:center;display:flex;gap:6px}.status-light{border-radius:50%;box-shadow:0 0 4px var(--shadow-black-30);display:inline-block;height:10px;width:10px}.status-active{animation:game-pulse-green 2s ease-in-out infinite;background-color:var(--state-success-strong);box-shadow:0 0 8px var(--glow-success-60)}.status-cli{animation:game-pulse-blue 2s ease-in-out infinite;background-color:var(--state-info);box-shadow:0 0 8px var(--glow-info-60)}.status-inactive{background-color:var(--state-danger);box-shadow:0 0 8px var(--glow-danger-60)}.status-text{font-weight:500}@keyframes game-pulse-green{0%,to{box-shadow:0 0 8px var(--glow-success-60)}50%{box-shadow:0 0 12px var(--glow-success-90)}}@keyframes game-pulse-blue{0%,to{box-shadow:0 0 8px var(--glow-info-60)}50%{box-shadow:0 0 12px var(--glow-info-90)}}.debug-toggle-button{background-color:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);cursor:pointer;display:block;font-size:.7rem;margin:4px auto;padding:4px 8px;transition:all .2s ease}.debug-toggle-button:hover{background-color:var(--surface);border-color:var(--primary);color:var(--primary)}.debug-info-box{background-color:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 15px var(--shadow);color:var(--text);font-size:.75rem;margin:10px auto;max-height:500px;max-width:600px;overflow-y:auto;padding:12px;text-align:left}.debug-info-box h4{border-bottom:1px solid var(--border);color:var(--primary);margin-bottom:12px;margin-top:0;padding-bottom:5px}.debug-prompt-pre{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);font-family:monospace;font-size:.7rem;max-height:350px;overflow-y:auto;padding:10px;white-space:pre-wrap}.debug-section{background-color:var(--surface);border:1px solid var(--border);border-radius:4px;margin-bottom:8px;padding:6px}.debug-section strong{color:var(--text);display:block;margin-bottom:4px}.debug-section pre{word-wrap:break-word;background-color:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);font-size:.7rem;margin:0;overflow-x:auto;padding:6px;white-space:pre-wrap}.game-chat-bar,.party-bar{background-color:var(--surface);border-left:1px solid var(--border);box-shadow:-2px 0 5px var(--shadow);box-sizing:border-box;color:var(--text);display:flex;flex-direction:column;flex-shrink:0;height:100%;overflow-y:auto;padding:15px;width:280px}.game-chat-bar{order:1}.party-bar{order:3}.party-bar h2{border-bottom:2px solid var(--border);font-size:1.4rem;letter-spacing:.1em;margin-bottom:20px;padding-bottom:10px;text-transform:uppercase}.new-chat-button,.party-bar h2{color:var(--primary);font-family:var(--header-font);text-align:center}.new-chat-button{background-color:initial;border:1px solid var(--primary);border-radius:20px;cursor:pointer;font-weight:500;margin-bottom:15px;padding:8px 15px;transition:all .2s ease}.new-chat-button:hover{background-color:var(--primary);color:var(--bg)}.history{flex-grow:1;list-style-type:none;margin:0;padding:0}.history li{border-radius:4px;color:var(--text-secondary);cursor:pointer;margin-bottom:5px;padding:10px 5px;transition:background-color .2s ease}.history li:hover{background-color:var(--primary-tint-10);color:var(--text)}.made-by{border-top:1px solid var(--border);color:var(--text-secondary);font-size:.8rem;margin-top:auto;padding-top:10px;text-align:center}.party-member{border-bottom:1px solid var(--border);border-radius:8px;margin-bottom:15px;padding:15px 10px;transition:background-color .3s ease}.party-member:hover{background-color:var(--primary-tint-05)}.party-member img{border:2px solid var(--primary);border-radius:50%;cursor:pointer;display:block;height:70px;margin-bottom:12px;margin-left:auto;margin-right:auto;object-fit:cover;transition:transform .3s cubic-bezier(.175,.885,.32,1.275),box-shadow .3s ease;width:70px}.party-member img:hover{box-shadow:0 0 15px var(--primary);transform:scale(1.1)}.party-member h3{color:var(--text);font-family:var(--header-font);font-size:1.1rem;margin:0 0 5px;text-align:center}.party-member p{color:var(--text-secondary);font-size:.85rem;margin:2px 0;text-align:center}.view-details-btn{background:#0000;border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);cursor:pointer;font-size:.7rem;letter-spacing:.05em;padding:4px 10px;text-transform:uppercase;transition:all .2s ease}.view-details-btn:hover{background:var(--primary-tint-10);border-color:var(--primary);color:var(--primary)}.party-member .stats{margin-top:10px;text-align:center}.party-member .stats h4{color:var(--text);font-size:.9rem;margin-bottom:8px}.party-member .stats-grid{grid-gap:5px 8px;color:var(--text-secondary);display:grid;font-size:.8rem;gap:5px 8px;grid-template-columns:repeat(3,1fr);margin:0;padding:0}.party-member .stat-item{background-color:var(--bg);border:1px solid var(--border);border-radius:3px;padding:3px 5px;text-align:center;white-space:nowrap}.modal-overlay{align-items:center;background-color:var(--overlay-dark-60);display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal-content{background-color:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 32px var(--shadow);max-height:85vh;max-width:600px;overflow-y:auto;padding:30px 40px;position:relative;width:90%}.modal-content h2{border-bottom:2px solid var(--border);color:var(--primary);font-family:var(--header-font);letter-spacing:.1em;margin-bottom:20px;margin-top:0;padding-bottom:10px;text-align:center;text-transform:uppercase}.modal-section{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:15px}.modal-section:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.modal-section h4{color:var(--text-secondary);margin-bottom:10px;margin-top:0}.modal-content p{color:var(--text);line-height:1.5;margin:5px 0}.modal-content p strong{color:var(--primary)}.modal-content p.kv-row strong{display:inline-block;min-width:100px}.modal-close-button{background-color:var(--primary);border:1px solid var(--primary);border-radius:4px;color:var(--bg);cursor:pointer;display:block;font-family:var(--header-font);font-size:1rem;margin:25px auto 0;padding:10px 30px;transition:all .2s ease}.modal-close-button:hover{background-color:initial;color:var(--primary)}.map-modal-content{align-items:center;display:flex;flex-direction:column;padding:30px}.dice-modal,.map-modal-content{background-color:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 32px var(--shadow);color:var(--text)}.dice-modal{padding:25px}.dice-mode-toggle{display:flex;gap:10px;justify-content:center;margin-bottom:20px}.dice-mode-toggle button{background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:8px 16px}.dice-mode-toggle button.active{background:var(--primary);border-color:var(--primary);color:var(--bg)}.dice-controls{background:var(--bg);border:1px solid var(--border);border-radius:8px;margin-bottom:20px;padding:20px}.control-group{display:flex;flex-direction:column;gap:5px;margin-bottom:15px}.control-group label{color:var(--text-secondary);font-size:.85rem}.character-stats-preview{background:var(--primary-tint-10);border-left:3px solid var(--primary);border-radius:4px;color:var(--text-secondary);margin-bottom:15px;padding:10px}.roll-result{background:var(--bg);border:1px solid var(--primary);border-radius:8px;margin-top:20px;padding:20px;text-align:center}.roll-value{color:var(--primary);display:block;font-family:var(--header-font);font-size:3rem}.roll-value.crit-success{color:var(--state-success-strong);text-shadow:0 0 10px var(--glow-success-40)}.roll-value.crit-fail{color:var(--state-danger)}.roll-details{color:var(--text-secondary);font-size:.9rem;margin-top:10px}.crit-text{display:block;font-weight:700;margin-top:5px}.warning-text{color:var(--accent);font-style:italic;margin-bottom:10px}.town-entrance-warning{color:var(--text-secondary);font-size:12px;margin-top:5px}.map-modal-content .world-map-grid{margin-bottom:25px;margin-top:15px}.modal-header-with-image{align-items:center;border-bottom:1px solid var(--primary);display:flex;gap:20px;margin-bottom:20px;padding-bottom:15px}.modal-profile-pic{border:4px solid var(--state-info);border-radius:50%;box-shadow:0 4px 10px var(--shadow-black-20);height:100px;object-fit:cover;width:100px}.modal-header-text h2{color:var(--primary);font-family:var(--header-font);margin:0}.modal-header-text .hero-subtitle{color:var(--text-secondary);font-size:.95rem;line-height:1.4;margin:8px 0 0}.character-subtitle{color:var(--state-muted-strong);font-style:italic;margin:5px 0 0}.stats-grid-modal{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(3,1fr);margin-top:10px}.stat-item-modal{align-items:center;background:var(--surface);border:1px solid var(--primary);border-radius:8px;display:flex;flex-direction:column;padding:10px}.stat-label{color:var(--text-secondary);font-size:.75rem;font-weight:700;margin-bottom:2px}.stat-value{color:var(--text);font-size:1.25rem;font-weight:700}.character-background-text{background:var(--bg);border-left:4px solid var(--primary);border-radius:8px;color:var(--text);font-size:.95rem;font-style:italic;line-height:1.6;padding:15px;white-space:pre-wrap}.encounter-action-modal{max-height:90vh;max-width:700px;overflow-y:auto}.encounter-header{margin-bottom:8px;text-align:center}.encounter-icon{display:block;font-size:64px;margin-bottom:10px}.encounter-description{color:var(--text);font-size:14px;font-style:italic;line-height:1.5;margin-bottom:15px;text-align:center}.encounter-actions h3{color:var(--primary);margin-bottom:10px;text-align:center}.action-buttons{display:flex;flex-direction:column;gap:8px}.action-button{background:var(--surface-light);border:2px solid var(--border);border-radius:8px;cursor:pointer;padding:10px 16px;text-align:left;transition:all .2s ease}.action-button:hover:not(:disabled){background:var(--surface);border-color:var(--primary);box-shadow:0 4px 12px var(--shadow);transform:translateX(5px)}.action-button:disabled{cursor:not-allowed;opacity:.5}.action-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.action-header strong{color:var(--primary);font-size:16px}.action-skill{color:var(--text-secondary);font-size:12px;font-style:italic}.action-description{color:var(--text);font-size:14px;line-height:1.4;margin:0}.resolving-indicator{margin-top:30px;padding:20px;text-align:center}.spinner{animation:spin 1s linear infinite;border-top:4px solid var(--border);border:4px solid var(--border);border-radius:50%;border-top-color:var(--primary);height:40px;margin:0 auto 15px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.encounter-result{text-align:center}.outcome-badge,.result-header{margin-bottom:20px}.outcome-badge{border-radius:20px;display:inline-block;font-size:14px;font-weight:700;letter-spacing:1px;padding:8px 20px;text-transform:uppercase}.outcome-badge.critical-success{background:linear-gradient(135deg,var(--encounter-luck-start),var(--encounter-luck-end));box-shadow:0 4px 15px var(--glow-success-40);color:#fff}.outcome-badge.success{background:var(--success);color:#fff}.outcome-badge.failure{background:var(--warning);color:#fff}.outcome-badge.critical-failure{background:linear-gradient(135deg,var(--encounter-danger-start),var(--encounter-danger-end));box-shadow:0 4px 15px var(--glow-danger-60);color:#fff}.dice-result{align-items:center;background:var(--surface-light);border:2px solid var(--border);border-radius:8px;display:flex;gap:10px;justify-content:center;margin-bottom:20px;padding:15px}.dice-icon{font-size:24px}.roll-total{color:var(--primary);font-size:32px;font-weight:700}.roll-breakdown{color:var(--text-secondary);font-size:14px}.ai-narration{background:var(--surface-light);border-left:4px solid var(--primary);color:var(--text);font-size:16px;font-style:italic;line-height:1.8;margin:20px 0;padding:20px;text-align:left}.faction-changes,.penalties-section,.rewards-section{background:var(--surface-light);border-radius:8px;margin:15px 0;padding:15px;text-align:left}.rewards-section h4{color:var(--success);margin-bottom:10px;margin-top:0}.penalties-section h4{color:var(--warning);margin-bottom:10px;margin-top:0}.faction-changes h4{color:var(--primary);margin-bottom:10px;margin-top:0}.faction-changes ul,.penalties-section ul,.rewards-section ul{margin:0;padding-left:20px}.rewards-section li{color:var(--success);margin:5px 0}.penalties-section li{color:var(--warning);margin:5px 0}.faction-changes li{color:var(--text);margin:5px 0}.round-indicator{background:var(--primary);border-radius:15px;color:#fff;display:inline-block;font-size:12px;font-weight:700;margin-top:10px;padding:5px 15px}.combat-status{background:var(--surface-light);border-radius:8px;margin:20px 0;padding:20px}.status-bar{margin-bottom:15px}.status-bar:last-child{margin-bottom:0}.status-label{color:var(--text);font-size:14px;font-weight:700;margin-bottom:8px}.status-bar-container{background:var(--surface);border:2px solid var(--border);border-radius:10px;display:inline-block;height:24px;margin-right:10px;overflow:hidden;position:relative;vertical-align:middle;width:200px}.status-bar-fill{border-radius:8px;height:100%;transition:width .5s ease}.status-bar-fill.morale{background:linear-gradient(90deg,var(--state-danger),var(--state-warning),var(--state-success-strong))}.status-value{color:var(--text);font-size:14px;font-weight:700;vertical-align:middle}.advantage-indicator{background:var(--surface);border:2px solid var(--border);border-radius:8px;color:var(--primary);display:inline-block;font-size:18px;font-weight:700;padding:8px 20px}.round-history{background:var(--surface-light);border-left:3px solid var(--primary);border-radius:4px;margin:15px 0;padding:15px}.round-history h4{color:var(--primary);font-size:14px;margin-bottom:10px;margin-top:0}.round-summary{border-bottom:1px solid var(--border);color:var(--text);font-size:13px;margin:5px 0;padding:5px 0}.round-summary:last-child{border-bottom:none}.round-count-badge{background:var(--primary);border-radius:15px;color:#fff;display:inline-block;font-size:12px;font-weight:700;margin-bottom:15px;padding:6px 15px}.outcome-summary{background:var(--surface-light);border:2px solid var(--primary);border-radius:8px;color:var(--text);font-size:16px;margin:15px 0;padding:15px;text-align:center}.outcome-summary strong{color:var(--primary)}.hp-damage-section{background:linear-gradient(135deg,var(--danger-tint-10),var(--danger-strong-tint-10));border:1px solid var(--border);border-radius:8px;margin:15px 0;padding:15px;text-align:center}.hp-damage-section h4{color:var(--state-danger);margin-bottom:10px;margin-top:0}.damage-amount{color:var(--state-danger);font-size:32px;font-weight:700;margin:10px 0;text-shadow:0 2px 4px var(--glow-danger-30)}.damage-description{color:var(--text);font-size:14px;font-style:italic;margin:10px 0 0}.encounter-hp-bar{background:var(--surface-light);border:2px solid var(--border);border-radius:8px;margin-top:15px;padding:12px}.enemy-hp-bar{background:linear-gradient(135deg,var(--warning-tint-10),var(--warning-strong-tint-10));border:1px solid var(--border)}.hp-label{align-items:center;display:flex;font-size:14px;font-weight:700;justify-content:space-between;margin-bottom:8px}.hp-bar-container{background:var(--surface);border:2px solid var(--border);border-radius:10px;height:20px;overflow:hidden;width:100%}.hp-bar-fill{border-radius:8px;height:100%;transition:width .5s ease,background .3s ease}.defeat-header{background:linear-gradient(135deg,var(--danger-tint-20),var(--danger-strong-tint-20));border:1px solid var(--border);border-radius:8px;margin-bottom:20px;padding:20px;text-align:center}.defeat-icon{display:block;font-size:64px;margin-bottom:10px}.defeat-header h2{color:var(--state-danger);font-size:32px;margin:0}.defeat-message{background:var(--surface-light);border-left:4px solid var(--state-danger);border-radius:8px;margin-bottom:20px;padding:20px}.defeat-message p{line-height:1.6;margin:0}.defeat-consequences{background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:20px;padding:15px}.defeat-consequences h4{color:var(--state-danger);margin-top:0}.defeat-consequences ul{margin:10px 0 0;padding-left:20px}.defeat-consequences li{color:var(--text);margin:8px 0}.enemy-damage-section{background:linear-gradient(135deg,var(--warning-tint-10),var(--warning-strong-tint-10));border:1px solid var(--border);border-radius:8px;margin:15px 0;padding:15px;text-align:center}.enemy-damage-section h4{color:var(--state-warning);margin-bottom:10px;margin-top:0}.defeat-warning{background:linear-gradient(135deg,var(--danger-tint-20),var(--danger-strong-tint-20))}.defeat-warning,.victory-banner{border:1px solid var(--border);border-radius:8px;padding:20px;text-align:center}.victory-banner{background:linear-gradient(135deg,var(--success-tint-20),var(--success-strong-tint-20))}.combat-damage-summary{display:flex;gap:15px;margin:15px 0}.combat-damage-summary .enemy-damage-section,.combat-damage-summary .player-damage-section{flex:1 1;margin:0}.player-damage-section{background:linear-gradient(135deg,var(--danger-tint-10),var(--danger-strong-tint-10));border:1px solid var(--border);border-radius:8px;padding:15px;text-align:center}.player-damage-section h4{color:var(--state-danger);margin-bottom:10px;margin-top:0}.round-action-buttons{display:flex;gap:12px;margin-top:15px}.round-action-buttons .fight-button{flex:1 1;font-size:16px;font-weight:700}.round-action-buttons .fight-button:hover{filter:brightness(1.1)}.round-action-buttons .secondary-button{background:var(--surface-light);border:2px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;flex:1 1;font-size:14px;padding:10px 20px;transition:all .2s ease}.round-action-buttons .secondary-button:hover{background:var(--border)}.character-hp-display{background:var(--surface-light);border-radius:8px;margin-top:10px;padding:10px}.character-hp-label{align-items:center;display:flex;font-size:14px;font-weight:700;justify-content:space-between;margin-bottom:6px}.character-hp-bar{background:var(--surface);border:2px solid var(--border);border-radius:8px;height:14px;overflow:hidden;width:100%}.character-hp-fill{border-radius:6px;height:100%;transition:width .5s ease,background .3s ease}.summary-hp-section{margin-top:15px}.summary-hp-section h4{margin-bottom:5px}.world-map-container{border-top:1px solid var(--state-muted-strong);margin-top:20px;padding-top:15px;text-align:center}.world-map-container h4{color:var(--surface-soft);margin-bottom:10px}.world-map-grid{margin:10px auto}.map-tile{border:1px solid var(--shadow-black-10);transition:all .3s ease}.map-tile:hover{filter:brightness(1.1);transform:scale(1.05)}.map-tile:active{transform:scale(.95);transition:transform .1s ease}.player-tile{animation:pulse-glow 2s ease-in-out infinite;box-shadow:inset 0 0 0 3px var(--state-highlight);filter:brightness(1.2)}.player-marker{animation:bounce-in .5s ease-out;filter:drop-shadow(0 2px 4px var(--shadow-black-30));font-size:24px;position:absolute;z-index:10}.player-marker-portrait{height:32px;left:-18px;position:absolute;top:-18px;width:32px;z-index:15}.player-marker-portrait img{background:#fff;border:3px solid var(--state-highlight);border-radius:50%;box-shadow:0 2px 8px var(--shadow-black-40);display:block;height:100%;position:relative;width:100%;z-index:1}.player-marker-pointer{border-bottom:9px solid var(--state-highlight);border-left:7px solid #0000;border-right:9px solid var(--state-highlight);border-top:7px solid #0000;bottom:0;filter:drop-shadow(0 2px 4px var(--shadow-black-30));height:0;position:absolute;right:0;transform:rotate(45deg);transform-origin:bottom right;width:0;z-index:0}@keyframes pulse-glow{0%,to{box-shadow:inset 0 0 0 3px var(--state-highlight)}50%{box-shadow:inset 0 0 0 3px var(--state-highlight),0 0 15px var(--glow-highlight-60)}}@keyframes bounce-in{0%{opacity:0;transform:scale(0) translateY(-20px)}50%{transform:scale(1.2) translateY(0)}to{opacity:1;transform:scale(1) translateY(0)}}.api-key-form{border-top:1px solid var(--border);margin-top:20px;padding-top:20px}.api-key-input-group{margin-bottom:15px}.api-key-input-group label{display:block;font-weight:500;margin-bottom:5px}.api-key-input-group input{width:calc(100% - 22px)}.form-row{align-items:flex-end;display:flex;flex-wrap:wrap;gap:15px}.form-row .form-item{flex:1 1;min-width:130px}.form-row .form-item label{font-size:.9rem;margin-bottom:5px}.form-row .form-item input,.form-row .form-item select{margin-bottom:0;padding:8px;width:100%}.stats-section .stat-input{align-items:center;display:flex;gap:10px;margin-bottom:12px}.stats-section .stat-input label{color:var(--text-secondary);font-weight:400;margin-bottom:0;width:110px}.stats-section .stat-input input{margin-bottom:0;padding:8px;width:70px}.form-actions{border-top:1px solid var(--border);display:flex;gap:20px;justify-content:center;margin-top:20px;padding-top:20px}.new-game-page .form-section{border-bottom:1px solid var(--border-soft);margin-bottom:30px;padding-bottom:20px}.new-game-page .form-section:last-of-type{border-bottom:none;margin-bottom:0}.new-game-page h2{color:var(--primary);margin-bottom:15px;margin-top:0}.new-game-page h3{color:var(--text);display:inline-block;margin-bottom:8px;position:relative}.new-game-page p{color:var(--text-secondary);line-height:1.5;margin:0 0 10px}.new-game-page .settings-textarea{background-color:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text);max-width:600px;padding:10px;resize:vertical;width:100%}.new-game-page .ai-settings-selectors,.new-game-page .mood-selectors,.new-game-page .world-settings-selectors{display:flex;flex-wrap:wrap;gap:40px}.new-game-page .ai-setting-item,.new-game-page .mood-selector-item,.new-game-page .world-setting-item{flex:1 1;min-width:200px}.new-game-page .settings-select{-webkit-appearance:none;appearance:none;background-color:var(--bg);background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23d4af37%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");background-position:right 10px top 50%;background-repeat:no-repeat;background-size:.65em auto;border:1px solid var(--border);border-radius:4px;box-sizing:border-box;color:var(--text);font-size:1rem;padding:10px 2.5em 10px 10px;width:100%}.new-game-page .provider-select,.new-game-page .verbosity-select{max-width:300px}.tooltip-trigger{border:1px solid var(--state-info);border-radius:50%;color:var(--state-info);cursor:help;display:inline-block;font-size:.8em;height:16px;line-height:16px;margin-left:8px;position:relative;text-align:center;width:16px}.tooltip-trigger:after,.tooltip-trigger:before{left:50%;opacity:0;pointer-events:none;position:absolute;transform:translateX(-50%);transition:opacity .3s ease;z-index:10}.tooltip-trigger:before{background-color:var(--ink-strong);border-radius:4px;bottom:150%;color:var(--on-dark);content:attr(data-tooltip);font-size:.9em;line-height:1.4;max-width:250px;padding:8px 12px;white-space:pre-wrap;width:-webkit-max-content;width:max-content}.tooltip-trigger:after{border:5px solid #0000;border-top:5px solid var(--ink-strong);bottom:150%;content:"";margin-bottom:-10px}.tooltip-trigger:hover:after,.tooltip-trigger:hover:before{opacity:1}.new-game-page .form-actions{margin-top:30px;position:relative;text-align:center}.new-game-page .error-message{color:var(--state-danger);font-size:.95rem;font-weight:700;margin-bottom:15px}.new-game-page .settings-submit-button{background-color:var(--primary);border:2px solid var(--primary);border-radius:6px;box-shadow:0 4px 12px var(--shadow);color:var(--bg);cursor:pointer;font-family:var(--header-font);font-size:1.1rem;font-weight:600;letter-spacing:.1em;padding:14px 30px;text-transform:uppercase;transition:all .3s ease}.new-game-page .settings-submit-button:hover{background-color:initial;box-shadow:0 6px 16px var(--shadow);color:var(--primary)}.story-settings-section{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 4px 20px var(--shadow);margin-bottom:30px;padding:30px}.settings-row{margin-bottom:25px}.settings-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.settings-group{display:flex;flex-direction:column;gap:8px}.settings-group label{color:var(--text-secondary);font-size:.85rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.settings-select,.settings-textarea{background-color:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--ui-font);font-size:1rem;padding:12px 16px;transition:all .2s ease}.settings-select:focus,.settings-textarea:focus{background-color:var(--bg);border-color:var(--primary);box-shadow:0 0 0 3px var(--shadow);outline:none}.settings-textarea{min-height:100px;resize:vertical}.settings-modal-refined{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:35px}.settings-modal-refined h2{font-size:1.8rem;margin-top:0}.settings-modal-refined label{font-weight:600}.template-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.template-card{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:12px;cursor:pointer;display:flex;gap:15px;padding:15px;transition:all .2s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none}.template-card:hover{border-color:var(--primary);box-shadow:0 4px 12px var(--shadow);transform:translateY(-2px)}.template-card.active{background-color:var(--shadow);border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.template-icon{align-items:center;background:var(--bg);border-radius:10px;display:flex;flex-shrink:0;font-size:2rem;height:50px;justify-content:center;width:50px}.template-card.active .template-icon{background:var(--surface)}.template-info h5{color:var(--text);font-family:var(--header-font);font-size:1rem;margin:0 0 4px}.template-info p{color:var(--text-secondary);font-size:.75rem;line-height:1.3;margin:0}@keyframes ai-pulse{0%{box-shadow:0 4px 15px var(--encounter-violet-glow-30);transform:scale(1)}50%{box-shadow:0 4px 25px var(--encounter-violet-glow-50);transform:scale(1.05)}to{box-shadow:0 4px 15px var(--encounter-violet-glow-30);transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.ai-generate-button:hover:not(:disabled){box-shadow:0 6px 20px var(--encounter-violet-glow-40);filter:brightness(1.1);transform:translateY(-2px)}.ai-generate-button:active:not(:disabled){transform:translateY(0)}.ai-generate-button.loading{animation:ai-pulse 1.5s ease-in-out infinite;animation:ai-pulse 1.5s ease-in-out infinite,shimmer 2s linear infinite;background:linear-gradient(90deg,var(--state-violet),var(--state-violet-soft),var(--state-violet));background-size:200% 100%;cursor:wait}.ai-generate-button:disabled{cursor:wait;opacity:.8}.page-header-actions{align-items:center;gap:12px;justify-content:center;margin-bottom:20px}.all-heroes-list{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));list-style:none;padding:0}.hero-item{align-items:center;background-color:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 12px var(--shadow);display:flex;flex-direction:column;padding:20px;transition:all .3s ease}.hero-item:hover{box-shadow:0 4px 10px var(--shadow-black-15)}.hero-item-image{border:3px solid var(--border);border-radius:50%;height:100px;margin-bottom:15px;overflow:hidden;width:100px}.hero-item-image img{height:100%;object-fit:cover;width:100%}.hero-item-info{margin-bottom:15px;text-align:center;width:100%}.hero-item-info h3{color:var(--text);font-family:var(--header-font);font-size:1.4em;margin-bottom:10px;margin-top:0}.hero-item-info p{color:var(--text-secondary);font-size:.95em;margin:5px 0}.detail-label{color:var(--text);font-weight:700}.hero-item-stats{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;list-style:none;margin-top:10px;padding:0}.hero-item-stats li{background-color:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);font-size:.85em;padding:3px 8px}.hero-item-actions{display:flex;gap:10px;justify-content:center;margin-top:auto;width:100%}.hero-item-actions .action-button{border:1px solid #0000;border-radius:4px;cursor:pointer;font-size:.9em;font-weight:500;padding:8px 16px;transition:all .2s ease}.hero-item-actions .edit-button{background-color:initial;border:1px solid var(--primary);color:var(--primary)}.hero-item-actions .edit-button:hover{background-color:var(--primary);color:var(--bg)}.hero-item-actions .download-button{background-color:initial;border:1px solid var(--primary);color:var(--primary)}.hero-item-actions .download-button:hover{background-color:var(--primary);color:var(--bg)}.hero-item-actions .delete-button{background-color:initial;border:1px solid var(--state-danger);color:var(--state-danger)}.hero-item-actions .delete-button:hover{background-color:var(--state-danger);color:var(--on-dark)}.delete-confirm-modal{max-width:450px;text-align:center}.delete-confirm-modal h3{color:var(--state-danger);font-family:var(--header-font);margin-top:0}.delete-confirm-modal p{color:var(--text);margin:15px 0}.delete-confirm-modal .warning-text{color:var(--state-warning);font-size:.9em;font-weight:600}.delete-confirm-modal .modal-actions{display:flex;gap:15px;justify-content:center;margin-top:25px}.delete-confirm-modal .action-button{border-radius:4px;cursor:pointer;font-size:1em;font-weight:500;padding:10px 20px;transition:all .2s ease}.delete-confirm-modal .cancel-button{background-color:var(--surface-light);border:1px solid var(--border);color:var(--text)}.delete-confirm-modal .cancel-button:hover{background-color:var(--border)}.delete-confirm-modal .delete-button{background-color:var(--state-danger);border:1px solid var(--state-danger);color:var(--on-dark)}.delete-confirm-modal .delete-button:hover{background-color:var(--state-danger-strong)}.summary-container{background-color:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 2px 10px var(--shadow-black-08);padding:30px 40px}.summary-content{grid-gap:32px;align-items:start;display:grid;gap:32px;grid-template-columns:180px minmax(0,1fr);margin-bottom:30px}.summary-image{flex-shrink:0}.summary-image img{border:1px solid var(--border-soft);border-radius:8px;height:160px;object-fit:cover;width:160px}.summary-details{flex-grow:1;text-align:left}.summary-details h2{color:var(--primary);font-size:2rem;margin-bottom:18px;margin-top:0}.summary-details p{color:var(--text);line-height:1.55;margin:0}.summary-details .detail-label{color:var(--text-secondary);display:inline-block;font-weight:600;min-width:110px}.summary-info-grid{grid-gap:8px 20px;display:grid;gap:8px 20px;grid-template-columns:repeat(2,minmax(220px,1fr));margin-bottom:12px}.summary-background{margin:0 0 16px}.summary-stats-list{border-top:1px solid var(--border-soft);list-style:none;margin-top:15px;padding:16px 0 0}.summary-stats-list h4{color:var(--primary);margin:0 0 12px}.summary-stats-list ul{grid-gap:8px 18px;display:grid;gap:8px 18px;grid-template-columns:repeat(2,minmax(180px,1fr));list-style:none;margin:0;padding:0}.summary-stats-list li{color:var(--text);font-size:.95rem;margin:0}.summary-max-hp{font-size:1.05rem;margin-top:14px}.summary-actions{border-top:1px solid var(--border-soft);display:flex;flex-wrap:wrap;gap:15px;justify-content:flex-end;padding-top:20px}.summary-action-btn{font-size:.85rem;min-width:200px;padding:12px 18px}.summary-primary-btn{background-color:var(--primary);border:1px solid var(--primary);color:var(--bg)}.summary-back-btn,.summary-download-btn,.summary-primary-btn:hover{background-color:initial;color:var(--primary)}.summary-back-btn,.summary-download-btn{border:1px solid var(--primary)}.summary-back-btn:hover,.summary-download-btn:hover{background-color:var(--primary);color:var(--bg)}.summary-feedback-modal{max-width:520px;text-align:left}.summary-feedback-modal h3{color:var(--primary);margin:0 0 12px}.summary-feedback-modal p{color:var(--text);line-height:1.6;margin:0}.summary-feedback-actions{display:flex;justify-content:flex-end;margin-top:20px}@media (max-width:900px){.summary-content{gap:20px;grid-template-columns:1fr}.summary-image{justify-self:center}.summary-info-grid,.summary-stats-list ul{grid-template-columns:1fr}.summary-actions{justify-content:center}}.all-heroes-page .page-header{align-items:center;border-bottom:1px solid var(--border-soft);display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.all-heroes-page .page-header h2{margin:0}.page-header-actions{display:flex;gap:15px}.all-heroes-page .start-game-button{background-color:var(--state-warning-strong);border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 15px;transition:background-color .3s ease}.all-heroes-page .start-game-button:hover{background-color:var(--state-warning-deep)}.all-heroes-page .create-new-button{background-color:var(--state-success);border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 15px;transition:background-color .3s ease}.all-heroes-page .create-new-button:hover{background-color:var(--state-success-strong)}.hero-selection-page .page-header{align-items:center;border-bottom:1px solid var(--border-soft);display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.hero-selection-page .page-header h2{margin:0}.hero-selection-page .create-new-button{background-color:var(--primary);border:1px solid var(--primary);border-radius:4px;color:var(--bg);cursor:pointer;font-family:var(--header-font);letter-spacing:.05em;padding:8px 15px;transition:all .2s ease}.hero-selection-page .create-new-button:hover{background-color:initial;color:var(--primary)}.hero-item{border:2px solid #0000;cursor:pointer;padding:13px;position:relative;transition:border-color .2s ease,box-shadow .2s ease}.hero-item.selected{border-color:var(--state-info);box-shadow:0 4px 12px var(--glow-info-30)}.selection-indicator{align-items:center;background-color:var(--state-info);border-radius:50%;box-shadow:0 1px 3px var(--shadow-black-20);color:#fff;display:flex;font-size:14px;font-weight:700;height:24px;justify-content:center;position:absolute;right:10px;top:10px;width:24px}.hero-selection-actions{align-items:center;display:flex;flex-direction:column;gap:15px}.hero-selection-actions .button-row{display:flex;gap:15px;justify-content:center;width:100%}.hero-selection-actions .error-message{color:var(--state-danger);font-size:.95rem;font-weight:700;margin-bottom:0;text-align:center;width:100%}.hero-selection-actions .back-button{background-color:initial;border:1px solid var(--primary);border-radius:4px;color:var(--primary);cursor:pointer;font-family:var(--header-font);letter-spacing:.05em;padding:10px 20px;transition:all .2s ease}.hero-selection-actions .back-button:hover,.hero-selection-actions .next-button{background-color:var(--primary);color:var(--bg)}.hero-selection-actions .next-button{border:1px solid var(--primary);border-radius:4px;cursor:pointer;font-family:var(--header-font);font-size:1rem;letter-spacing:.05em;padding:10px 20px;transition:all .2s ease}.hero-selection-actions .next-button:hover{background-color:initial;color:var(--primary)}.hero-selection-actions .next-button:disabled{background-color:var(--border);border-color:var(--border);color:var(--text-secondary);cursor:not-allowed}.conversations-list{display:flex;flex-direction:column;gap:20px;margin-top:20px}.conversation-item{background-color:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 12px var(--shadow);padding:20px}.conversation-header{margin-bottom:15px}.conversation-title{border-radius:4px;color:var(--ink-strong);cursor:pointer;margin:0;padding:5px;transition:background-color .2s ease}.conversation-title:hover{background-color:var(--surface-soft)}.edit-name-form{align-items:center;display:flex;gap:10px}.edit-name-form input{border:1px solid var(--border-soft);border-radius:4px;flex:1 1;padding:8px}.edit-name-form button{border:1px solid var(--primary);border-radius:4px;cursor:pointer;font-family:var(--header-font);font-size:.9rem;letter-spacing:.08em;padding:8px 16px;transition:all .2s ease}.edit-name-form .save-name-button{background-color:var(--primary);color:var(--bg)}.edit-name-form .save-name-button:disabled{background-color:var(--text-secondary);border-color:var(--text-secondary);cursor:not-allowed;opacity:.5}.edit-name-form .cancel-name-button,.edit-name-form .cancel-name-button:hover,.edit-name-form .save-name-button:hover:not(:disabled){background-color:initial;color:var(--primary)}.conversation-content{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:15px}.conversation-details p{color:var(--text-secondary);font-size:.9rem;margin:5px 0}.conversation-settings{background-color:var(--bg);border:1px solid var(--border);border-radius:6px;padding:15px}.conversation-settings h4{border-bottom:2px solid var(--state-info);color:var(--ink-strong);font-size:1rem;margin-bottom:10px;margin-top:0;padding-bottom:5px}.conversation-settings p{color:var(--text-secondary);font-size:.85rem;margin:5px 0}.conversation-actions{align-items:center;display:flex;gap:10px}.load-button{background-color:var(--state-info);border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:700;padding:10px 20px;transition:background-color .3s ease}.load-button:hover{background-color:var(--state-info-strong)}.delete-button{background-color:var(--state-danger);border:none;border-radius:4px;color:#fff;cursor:pointer;padding:10px 20px;transition:background-color .3s ease}.delete-button:hover{background-color:var(--state-danger-strong)}.conversation-actions .danger-button{background-color:initial;border-color:var(--state-danger);color:var(--state-danger);margin-left:auto}.conversation-actions .danger-button:hover:not(:disabled){background-color:var(--state-danger);border-color:var(--state-danger);color:var(--on-dark)}.danger-button .button-text{display:inline}.danger-button .button-icon{display:none}.navigation-buttons{display:flex;gap:15px;justify-content:center;margin-top:30px}.new-game-button{background-color:var(--primary);border:1px solid var(--primary);border-radius:4px;color:var(--bg);cursor:pointer;font-weight:700;padding:12px 24px;transition:all .2s ease}.new-game-button:hover{background-color:initial;color:var(--primary)}@media (max-width:768px){.conversation-content{grid-template-columns:1fr}}.top-container{margin-bottom:30px}.top-container .form-section{margin-bottom:25px}.top-container .form-section:last-child{margin-bottom:0}.middle-container{display:flex;gap:40px;margin-bottom:30px}.middle-left{display:flex;flex:2 1;flex-direction:column;gap:25px}.middle-right{flex:1 1}.middle-right h2{margin-bottom:8px;margin-top:0}.profile-pictures .picture-options{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));justify-content:start}.profile-pictures label{border:2px solid #0000;border-radius:5px;cursor:pointer;display:inline-block;line-height:0;padding:5px;transition:border-color .2s ease}.profile-pictures input[type=radio]{display:none}.profile-pictures img{border-radius:4px;display:block;height:100px;object-fit:cover;width:100px}.profile-pictures label.selected,.profile-pictures label:hover{border-color:var(--primary)}.name-section .name-input-group{align-items:center;display:flex;gap:10px}.name-section input{flex-grow:1;margin-bottom:0}.generate-name-btn{background-color:var(--surface-soft);border:1px solid var(--control-border);color:var(--control-text);flex-shrink:0;font-size:1.2rem;line-height:1;padding:8px 12px}.generate-name-btn:hover{background-color:var(--control-hover)}.template-controls{align-items:center;display:flex;gap:10px}.template-controls select{flex-grow:1}.apply-template-btn{flex-shrink:0;padding:8px 15px}.login-page{align-items:center;background-color:var(--bg);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-container{background-color:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 32px var(--shadow);max-width:400px;padding:40px;width:100%}.login-title{color:var(--primary);font-family:var(--font-header);font-size:2rem;font-weight:700;letter-spacing:.05em;margin:0 0 10px;text-align:center}.login-subtitle{color:var(--text-secondary);font-family:var(--font-body);font-size:1.2rem;font-weight:400;margin:0 0 30px;text-align:center}.login-form{display:flex;flex-direction:column;gap:5px}.login-form .form-group{display:flex;flex-direction:column;gap:8px}.login-form .form-group label{color:var(--text-secondary);font-family:var(--font-header);font-size:.85rem;font-weight:600;letter-spacing:.05em}.login-form .form-group input{background-color:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:var(--font-ui);font-size:1rem;margin-bottom:0;padding:12px;transition:border-color .2s ease}.login-form .form-group input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--shadow);outline:none}.login-form .form-group input::placeholder{color:var(--text-secondary);opacity:.6}.login-form .form-group input:disabled{cursor:not-allowed;opacity:.5}.login-form .error-message{background-color:var(--state-danger-bright-10);border:1px solid var(--state-danger-bright-30);border-radius:4px;color:var(--state-danger-bright)}.login-form .error-message,.login-form .success-message{font-family:var(--font-ui);font-size:.9rem;margin:0;padding:12px}.login-form .success-message{background-color:var(--success-tint-20);border:1px solid var(--state-success);border-radius:4px;color:var(--state-success)}.login-button{background-color:var(--primary);border:1px solid var(--primary);border-radius:4px;box-shadow:0 2px 4px var(--shadow);color:var(--bg);cursor:pointer;font-family:var(--font-header);font-size:.9rem;font-weight:600;letter-spacing:.1em;margin-top:15px;padding:12px 24px;transition:all .2s ease}.login-button:hover:not(:disabled){background-color:initial;color:var(--primary)}.login-button:active:not(:disabled){transform:translateY(1px)}.login-button:disabled{background-color:var(--text-secondary);border-color:var(--text-secondary);cursor:not-allowed;opacity:.5}.toggle-mode-button{background-color:initial;border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);cursor:pointer;font-family:var(--font-ui);font-size:.9rem;margin-top:20px;padding:12px;transition:all .2s ease;width:100%}.toggle-mode-button:hover:not(:disabled){background-color:var(--surface);border-color:var(--primary);color:var(--text)}.toggle-mode-button:disabled{cursor:not-allowed;opacity:.5}.login-links{border-top:1px solid var(--border);display:flex;flex-direction:column;gap:12px;margin-top:24px;padding-top:20px}.back-home-link,.how-to-play-link{border-radius:4px;font-family:var(--font-ui);font-size:.95rem;padding:10px;text-align:center;text-decoration:none;transition:all .2s ease}.how-to-play-link{background-color:var(--primary-tint-10);border:1px solid var(--primary);color:var(--primary)}.how-to-play-link:hover{background-color:var(--primary);color:var(--bg)}.back-home-link{background-color:initial;border:1px solid var(--border);color:var(--text-secondary)}.back-home-link:hover{border-color:var(--text-secondary);color:var(--text)}.sso-divider{color:var(--text-secondary);font-family:var(--font-ui);font-size:.85rem;margin:20px 0 16px;position:relative;text-align:center}.sso-divider:after,.sso-divider:before{background-color:var(--border);content:"";height:1px;position:absolute;top:50%;width:30%}.sso-divider:before{left:0}.sso-divider:after{right:0}.sso-buttons{display:flex;gap:10px}.sso-button{background-color:initial;border:1px solid var(--border);border-radius:4px;color:var(--text);cursor:pointer;flex:1 1;font-family:var(--font-ui);font-size:.85rem;font-weight:500;padding:10px;transition:all .2s ease}.sso-button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.sso-button:disabled{cursor:not-allowed;opacity:.5}@media (max-width:768px){.login-container{padding:30px 20px}.login-title{font-size:1.5rem}.login-subtitle{font-size:1rem}}.user-profile-indicator{align-items:center;display:flex;margin-left:auto;position:relative}.login-link{border:1px solid var(--primary);border-radius:4px;color:var(--primary);font-family:var(--font-header);font-size:.85rem;letter-spacing:.05em;padding:8px 16px;text-decoration:none;transition:all .2s ease}.login-link:hover,.profile-avatar-btn{background-color:var(--primary);color:var(--bg)}.profile-avatar-btn{align-items:center;aspect-ratio:1/1;border:none;border-radius:50%;box-shadow:0 2px 4px var(--shadow);cursor:pointer;display:flex;flex-shrink:0;font-family:var(--font-header);font-size:.9rem;font-weight:700;height:36px;justify-content:center;min-height:36px;min-width:36px;padding:0;transition:all .2s ease;width:36px}.profile-avatar-btn:hover{box-shadow:0 4px 8px var(--shadow);transform:scale(1.05)}.avatar-initials{text-transform:uppercase}.profile-dropdown{background-color:var(--surface);border:2px solid var(--primary);border-radius:4px;box-shadow:0 4px 16px var(--shadow);min-width:200px;overflow:hidden;position:absolute;right:0;top:calc(100% + 8px);z-index:1000}.profile-dropdown-header{background-color:var(--surface);border-bottom:1px solid var(--primary);padding:12px 16px}.profile-email{color:var(--primary);font-family:var(--font-ui);font-size:.85rem;word-break:break-all}.profile-dropdown-divider{background-color:var(--border);height:1px}.profile-dropdown-item{background:none;border:none;color:var(--primary);cursor:pointer;display:block;font-family:var(--font-header);font-size:.9rem;letter-spacing:.05em;padding:12px 16px;text-align:left;text-decoration:none;transition:background-color .2s ease;width:100%}.profile-dropdown-item:hover{background-color:var(--bg)}.profile-signout{border-top:1px solid var(--primary);color:var(--state-danger)}.profile-signout:hover{background-color:var(--danger-tint-10)}@media (max-width:768px){.profile-avatar-btn{font-size:.8rem;height:32px;width:32px}.profile-dropdown{min-width:180px}}:root{--mobile-breakpoint:768px;--tablet-breakpoint:1024px;--touch-target-min:44px}.hamburger-btn,.mobile-party-overlay,.mobile-party-toggle{display:none}@media (max-width:768px){#root,.App,body,html{max-width:100%;overflow-x:hidden;width:100%}.main-nav:not(.mobile-nav-open) .nav-settings-btn .settings-text,.nav-debug-item,.skip-link{display:none!important}.nav-settings-btn{min-width:auto!important;padding:8px 12px!important}.container{margin:12px auto;max-width:100%;padding:0 12px}.main-content{margin:0!important;max-width:100%!important;padding:20px 12px!important;width:100%!important}.Home-page,.character-creation-form,.page-container{box-sizing:border-box;margin:0!important;padding:20px 16px!important;width:100%!important}.game-container{flex-direction:column!important;position:relative}.party-bar{background-color:var(--surface)!important;box-shadow:-4px 0 20px #0000004d!important;height:100vh!important;max-height:100vh!important;max-width:280px!important;overflow-y:auto!important;position:fixed!important;right:-100%!important;top:0!important;transition:right .3s ease!important;width:280px!important;z-index:1500!important}.party-bar.mobile-open{right:0!important}.game-main{margin-left:0!important;max-width:100%!important;width:100%!important}.game-top h2{display:none!important}.hamburger-btn{align-items:center!important;background:var(--surface)!important;border:1px solid var(--primary)!important;border-radius:6px!important;color:var(--primary)!important;cursor:pointer!important;display:flex!important;font-size:1.5rem!important;height:44px!important;justify-content:center!important;left:8px!important;position:fixed!important;top:8px!important;width:44px!important;z-index:2001!important}.main-nav{display:none!important;padding:0 8px}.main-nav.mobile-nav-open{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:var(--surface)!important;bottom:0!important;display:flex!important;filter:none!important;flex-direction:column!important;left:0!important;overflow-y:auto!important;padding-top:60px!important;position:fixed!important;right:0!important;top:0!important;z-index:2000!important}.main-nav.mobile-nav-open>ul{align-items:stretch!important;flex-direction:column!important;flex-wrap:nowrap!important;gap:4px!important;height:auto!important;min-height:auto!important;padding:12px 16px!important}.main-nav.mobile-nav-open>ul>li{height:auto!important;width:100%!important}.main-nav.mobile-nav-open .nav-dropdown-toggle,.main-nav.mobile-nav-open .nav-settings-btn,.main-nav.mobile-nav-open>ul>li>a{border:none!important;font-size:.95rem!important;justify-content:flex-start!important;margin-left:0!important;min-height:48px!important;padding:12px 16px!important;width:100%!important}.nav-profile-item{height:auto!important;min-width:0!important;position:static!important;right:auto!important;width:100%!important}.main-nav.mobile-nav-open .nav-profile-item .user-profile-indicator{align-items:stretch!important;flex-direction:column!important;margin-left:0!important;width:100%!important}.mobile-profile-links{display:flex!important;flex-direction:column!important;width:100%!important}.mobile-profile-link{background:#0000!important;border:none!important;border-bottom:1px solid var(--border)!important;box-sizing:border-box!important;color:var(--text)!important;cursor:pointer!important;display:block!important;font-family:var(--font-header)!important;font-size:.95rem!important;letter-spacing:.1em!important;min-height:48px!important;padding:12px 16px!important;text-align:left!important;text-decoration:none!important;width:100%!important}.mobile-signout{color:var(--state-danger)!important}.main-nav.mobile-nav-open .login-link{border:none!important;border-radius:0!important;box-sizing:border-box!important;display:block!important;font-size:.95rem!important;line-height:2.5!important;min-height:48px!important;padding:12px 16px!important;text-align:left!important;width:100%!important}.mobile-nav-overlay{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background-color:#000000b3!important;bottom:0!important;filter:none!important;left:0!important;position:fixed!important;right:0!important;top:0!important;z-index:1999!important}.mobile-party-toggle{align-items:center!important;background-color:var(--surface)!important;border:2px solid var(--primary)!important;border-radius:50%!important;bottom:20px!important;box-shadow:0 4px 12px #0000004d!important;color:var(--primary)!important;cursor:pointer!important;display:flex!important;font-size:1.5rem!important;height:56px!important;justify-content:center!important;overflow:hidden!important;padding:0!important;position:fixed!important;right:20px!important;transition:all .3s ease!important;width:56px!important;z-index:1600!important}.mobile-party-toggle:hover{box-shadow:0 6px 16px #0006!important;transform:scale(1.1)!important}.mobile-party-toggle-portrait{border-radius:50%!important;height:100%!important;object-fit:cover!important;width:100%!important}.mobile-party-overlay{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background-color:#00000080!important;bottom:0!important;left:0!important;position:fixed!important;right:0!important;top:0!important;z-index:1400!important}.header-button-group{flex-wrap:wrap;gap:4px;justify-content:center}.header-button-group button{font-size:.8rem;min-height:44px;min-height:var(--touch-target-min);padding:6px 10px}.game-info-header{align-items:flex-start;flex-direction:column-reverse;gap:12px}.modal-content{margin:5vh auto;max-height:90vh;max-width:95vw!important;overflow-y:auto;width:95vw!important}.modal-overlay{padding:0}.town-map-container,.world-map-container{max-width:100%;overflow-x:auto}.town-map-grid,.world-map-grid{min-width:300px}.nav-dropdown{display:flex!important;flex-direction:column!important;position:static!important;width:100%!important}.nav-dropdown-menu{border:none!important;border-radius:0!important;border-top:1px solid var(--border)!important;bottom:auto!important;box-shadow:none!important;box-sizing:border-box!important;flex-direction:column!important;height:auto!important;left:auto!important;max-height:none!important;max-width:100%!important;min-height:0!important;overflow:hidden!important;position:static!important;right:auto!important;top:auto!important;z-index:auto!important}.nav-dropdown-menu,.nav-dropdown-menu li{background-color:var(--bg)!important;border-bottom:1px solid var(--border)!important;display:flex!important;margin:0!important;padding:0!important;width:100%!important}.nav-dropdown-menu li{flex:0 0 auto!important}.nav-dropdown-menu li:last-child{border-bottom:none!important}.nav-dropdown-menu a{word-wrap:break-word!important;align-items:center!important;background-color:var(--bg)!important;color:var(--text-secondary)!important;display:flex!important;flex:1 1!important;font-size:.9rem!important;height:auto!important;justify-content:flex-start!important;line-height:1.4!important;min-height:48px!important;overflow-wrap:break-word!important;padding:12px 16px 12px 32px!important;text-align:left!important;white-space:normal!important}button,input,select,textarea{font-size:16px;min-height:44px;min-height:var(--touch-target-min)}.all-heroes-list{gap:12px!important;grid-template-columns:1fr!important;padding:0!important}.hero-item{box-sizing:border-box!important;flex-direction:column;margin:0!important;padding:12px!important;text-align:center}.hero-item,.hero-item-info{max-width:100%!important;overflow:hidden!important;width:100%!important}.hero-item-info h3{word-wrap:break-word!important;font-size:1rem!important;overflow-wrap:break-word!important}.hero-item-info p{font-size:.8rem!important}.hero-item-image{height:80px!important;margin:0 auto 10px;width:80px!important}.hero-item-stats{gap:6px!important}.hero-item-stats li{font-size:.75rem!important;padding:2px 6px!important}.hero-item-actions{flex-direction:row!important;flex-wrap:wrap!important;gap:6px!important;justify-content:center!important;width:100%}.hero-item-actions button{flex:1 1 auto!important;font-size:.7rem!important;min-height:32px!important;min-width:60px!important;padding:6px 8px!important}.Home-page h1,.Home-page h2,.character-creation-form h1,.hero-creation-form h1,.page-container h1,.page-container h2{font-size:1.3rem!important;margin-bottom:10px!important}.page-header{align-items:flex-start!important;flex-direction:column!important;gap:12px!important}.page-header-actions{align-items:center!important;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:8px!important;justify-content:flex-start!important;width:100%!important}.page-header-actions .primary-button,.page-header-actions .secondary-button{flex:1 1!important;font-size:.7rem!important;max-width:none!important;min-height:32px!important;min-width:0!important;padding:6px 10px!important;white-space:nowrap!important}.conversation{padding:12px}.ai-message,.user-message{max-width:100%;padding:12px}.settings-container{padding:12px}.settings-grid{grid-template-columns:1fr!important}.encounter-modal-content{padding:16px}.encounter-actions{flex-direction:column;gap:8px}.encounter-actions button{width:100%}.inventory-grid{grid-template-columns:1fr!important}.nav-container{padding:0 12px}.nav-links{gap:8px}.icon-button-text{display:none}.home-grid{gap:12px!important;grid-template-columns:1fr!important}.home-nav-card{box-sizing:border-box!important;padding:16px!important;width:100%!important}.card-content p,.home-nav-card p{display:none!important}.primary-card{flex-direction:column!important;gap:12px!important;padding:20px 16px!important}.primary-card .card-icon{font-size:2rem!important}.primary-card .card-content h3{font-size:1.2rem!important}.hero-section h1{font-size:2rem!important}.subtitle{font-size:.9rem!important;letter-spacing:.1em!important}a,button,h1,h2,h3,h4,p,span{word-wrap:break-word!important;overflow-wrap:break-word!important}.primary-button,.secondary-button{word-wrap:break-word!important;box-sizing:border-box!important;max-width:100%!important;white-space:normal!important}.page-instructions{display:none!important}.conversation-item,.conversations-list{width:100%!important}.conversation-item{box-sizing:border-box!important;max-width:100%!important;overflow:hidden!important;padding:12px!important}.conversation-item>div:first-child{align-items:flex-start!important;flex-direction:column!important}.conversation-item>div:first-child>div:first-child{justify-content:center!important;margin-bottom:10px!important;width:100%!important}.conversation-item>div:first-child>div:last-child{width:100%!important}.conversation-item h3{font-size:.95rem!important}.conversation-item h3,.conversation-item p{word-wrap:break-word!important;overflow-wrap:break-word!important}.conversation-item p{font-size:.75rem!important}.conversation-item img{height:40px!important;width:40px!important}.conversation-actions{gap:6px!important}.conversation-actions button{font-size:.7rem!important;min-height:32px!important;padding:6px 10px!important}.danger-button .button-text{display:none!important}.danger-button .button-icon{display:inline!important}.middle-container{flex-direction:column!important;gap:20px!important}.middle-left,.middle-right{flex:none!important;width:100%!important}.template-controls{align-items:stretch!important;flex-direction:column!important;gap:10px!important;width:100%!important}.template-controls select{font-size:1rem!important}.template-controls .apply-template-btn,.template-controls select{min-height:44px!important;min-height:var(--touch-target-min)!important;width:100%!important}.stats-section,.stats-section .stat-input{box-sizing:border-box!important;width:100%!important}.stats-section .stat-input label{flex-shrink:0;font-size:.85rem!important;width:90px!important}.stats-section .stat-input input{flex-shrink:0;width:60px!important}.stats-section .stat-input input[type=range]{flex:1 1!important;min-width:80px!important;width:auto!important}.profile-pictures .picture-options{gap:10px!important;grid-template-columns:repeat(auto-fill,minmax(80px,1fr))!important}.profile-pictures img{height:80px!important;width:80px!important}.form-row,.form-section{box-sizing:border-box!important;width:100%!important}.form-row{flex-direction:column!important}.form-row .form-item{min-width:100%!important;width:100%!important}.name-input-group{flex-direction:column!important;gap:10px!important}.generate-name-btn,.name-input-group input{width:100%!important}.generate-name-btn{min-height:44px!important;min-height:var(--touch-target-min)!important}}@media (min-width:769px) and (max-width:1100px){.container{max-width:90%}.game-container,.game-page-wrapper{background-color:var(--bg)!important}.game-container{gap:16px;width:100%!important}.home-grid{gap:15px!important;grid-template-columns:1fr!important}.primary-card{flex-direction:column!important;text-align:center!important}.game-main{flex:1 1!important;min-width:0!important}.party-bar{flex-shrink:0!important;width:240px!important}.all-heroes-list{grid-template-columns:repeat(2,1fr)!important}.modal-content{max-width:800px;width:85vw}.nav-dropdown{position:static!important}.nav-dropdown-menu{border:1px solid var(--primary)!important;border-radius:8px!important;bottom:auto!important;box-shadow:0 4px 20px #0006!important;box-sizing:border-box!important;flex-direction:column!important;height:auto!important;left:50%!important;max-height:none!important;max-width:400px!important;min-width:300px!important;overflow:hidden!important;position:fixed!important;right:auto!important;top:90px!important;transform:translateX(-50%)!important;width:auto!important;z-index:2000!important}.nav-dropdown-menu,.nav-dropdown-menu li{background-color:var(--surface)!important;display:flex!important;margin:0!important;padding:0!important}.nav-dropdown-menu li{flex:0 0 auto!important;width:100%!important}.nav-dropdown-menu a{align-items:center!important;background-color:var(--surface)!important;color:var(--text)!important;display:flex!important;flex:1 1!important;font-size:.9rem!important;height:auto!important;min-height:56px!important;padding:14px 20px!important}}@media (max-height:500px) and (orientation:landscape){.modal-content{max-height:95vh;overflow-y:auto}.party-sidebar{max-height:150px}.header-button-group{gap:4px}.header-button-group button{font-size:.75rem;padding:4px 8px}}.skip-link{background:var(--primary);border-radius:0 0 4px 0;color:var(--bg);left:0;padding:8px 16px;position:absolute;text-decoration:none;top:-40px;z-index:10000}.skip-link:focus{top:0}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}@media (pointer:coarse){a,button,input[type=checkbox],input[type=radio]{min-height:44px;min-height:var(--touch-target-min);min-width:44px;min-width:var(--touch-target-min)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.main-nav{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background-color:var(--surface);border-bottom:2px solid var(--primary);box-shadow:0 4px 12px var(--shadow);overflow:visible;padding:0 20px;position:-webkit-sticky;position:sticky;top:0;z-index:1000}.main-nav>ul{gap:15px;height:86px;justify-content:center;list-style-type:none;margin:0;padding:0}.main-nav>ul,.main-nav>ul>li{align-items:center;display:flex;overflow:visible}.main-nav>ul>li{height:100%}.main-nav>ul>li>a{align-items:center;border-bottom:none;border-radius:4px;box-sizing:border-box;color:var(--text);display:inline-flex;font-family:var(--header-font);font-size:.95rem;font-weight:500;justify-content:center;letter-spacing:.1em;min-height:54px;min-width:180px;padding:12px 22px;text-decoration:none;text-transform:uppercase;transition:all .3s ease}.main-nav>ul>li>a:hover{background-color:var(--shadow);color:var(--primary)}.nav-settings-btn{background:#0000;border:1px solid var(--primary);border-radius:4px;box-sizing:border-box;color:var(--primary);cursor:pointer;font-family:var(--header-font);font-size:.85rem;letter-spacing:.1em;margin-left:10px;min-height:54px;min-width:180px;padding:12px 22px;text-transform:uppercase;transition:all .3s ease}.nav-settings-btn:hover{background-color:var(--primary);color:var(--bg)}.nav-dropdown{position:relative}.nav-dropdown-toggle{align-items:center;background:#0000;border:none;border-radius:4px;box-sizing:border-box;color:var(--text);cursor:pointer;display:flex;font-family:var(--header-font);font-size:.95rem;font-weight:500;gap:5px;justify-content:center;letter-spacing:.1em;min-height:54px;min-width:180px;padding:12px 22px;text-transform:uppercase;transition:all .3s ease}.nav-dropdown-toggle:hover{background-color:var(--shadow);color:var(--primary)}.dropdown-arrow{font-size:.6rem;transition:transform .3s ease}.nav-dropdown-menu{align-items:stretch;border:1px solid var(--primary);border-radius:4px;box-shadow:0 12px 24px var(--shadow-black-30);flex-direction:column;height:auto;justify-content:flex-start;left:0;list-style:none;min-width:260px;overflow:hidden;position:absolute;top:calc(100% + 6px);z-index:1200}.nav-dropdown-menu,.nav-dropdown-menu li{background-color:var(--surface);display:flex;margin:0;padding:0}.nav-dropdown-menu li{flex:0 0 auto;width:100%}.nav-dropdown-menu a{align-items:center;background-color:var(--surface);border-bottom:none;border-radius:0;box-sizing:border-box;color:var(--text);display:flex;font-family:var(--header-font);font-size:.92rem;letter-spacing:.05em;line-height:1.5;min-height:68px;padding:14px 24px;text-decoration:none;text-transform:uppercase;transition:all .2s ease;white-space:nowrap;width:100%}.nav-dropdown-menu a:hover{background-color:var(--primary);color:var(--bg)}@media (max-width:1100px){.main-nav ul{gap:8px;height:76px}.main-nav>ul>li>a,.nav-dropdown-toggle,.nav-settings-btn{font-size:.8rem;min-height:48px;min-width:110px;padding:10px 12px}.nav-dropdown-menu{min-width:220px}.nav-dropdown-menu a{font-size:.85rem;min-height:56px;padding:12px 20px}}.nav-profile-item{height:auto;min-width:auto;position:absolute;right:20px}.nav-profile-item .profile-avatar-btn{height:36px!important;min-height:36px!important;min-width:36px!important;width:36px!important}
/*# sourceMappingURL=main.cb3b768c.css.map*/