@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Crimson+Text:wght@400;600;700&display=swap";.spymaster-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem}.spymaster-modal{background:var(--color-surface);border-radius:var(--radius-xl);padding:2rem;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:var(--shadow-xl);border:3px solid var(--color-accent)}.spymaster-modal.sherlock{border-color:var(--color-team-sherlock);box-shadow:var(--shadow-glow-sherlock)}.spymaster-modal.moriarty{border-color:var(--color-accent);box-shadow:var(--shadow-glow-moriarty)}.modal-close{position:absolute;top:1rem;right:1rem;width:36px;height:36px;border:2px solid var(--color-border);border-radius:50%;background:transparent;color:var(--color-text-muted);font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.modal-close:hover{border-color:var(--color-card-danger);color:var(--color-card-danger);background:#d7263d1a}.modal-title{font-family:Playfair Display,serif;font-size:1.5rem;font-weight:700;color:var(--color-accent);text-align:center;margin-bottom:1.5rem}.mode-selector{display:flex;gap:.5rem;margin-bottom:1.5rem;justify-content:center}.mode-btn{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem 1.25rem;background:var(--color-surface-elevated);border:2px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);font-family:Crimson Text,serif}.mode-btn:hover{border-color:var(--color-accent);color:var(--color-text)}.mode-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-surface)}.mode-icon{font-size:1.5rem}.forced-mode-message{text-align:center;padding:1rem;background:var(--color-surface-elevated);border-radius:var(--radius-md);margin-bottom:1.5rem;font-family:Crimson Text,serif;font-size:1.1rem;color:var(--color-accent);border:2px solid var(--color-accent)}.modal-content{display:flex;flex-direction:column;gap:1.25rem}.input-group{display:flex;flex-direction:column;gap:.5rem}.input-group label{font-family:Playfair Display,serif;font-size:.9rem;font-weight:600;color:var(--color-text)}.input-group input[type=text]{padding:.75rem 1rem;font-size:1.25rem;font-family:Playfair Display,serif;letter-spacing:.05em;text-transform:uppercase;background:var(--color-surface-elevated);border:2px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);text-align:center}.input-group input[type=text]:focus{outline:none;border-color:var(--color-accent)}.number-group{align-items:center}.number-input-wrapper{display:flex;align-items:center;gap:.5rem}.number-btn{width:40px;height:40px;border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-elevated);color:var(--color-text);font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.number-btn:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.number-btn:disabled{opacity:.4;cursor:not-allowed}.number-input-wrapper input[type=number]{width:60px;padding:.5rem;font-size:1.5rem;font-family:Playfair Display,serif;font-weight:700;text-align:center;background:var(--color-surface-elevated);border:2px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-accent);-moz-appearance:textfield}.number-input-wrapper input[type=number]::-webkit-outer-spin-button,.number-input-wrapper input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.number-input-wrapper input[type=number]:focus{outline:none;border-color:var(--color-accent)}.mime-instructions{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;background:var(--color-surface-elevated);border-radius:var(--radius-lg);text-align:center}.mime-icon{font-size:4rem}.mime-instructions p{font-family:Crimson Text,serif;font-size:1.1rem;color:var(--color-text);margin:0}.mime-hint{color:var(--color-text-muted)!important;font-style:italic}.drawing-area{display:flex;flex-direction:column;align-items:center;gap:.75rem}.drawing-canvas{width:100%;max-width:400px;aspect-ratio:4/3;background:#fff;border:3px solid var(--color-border);border-radius:var(--radius-md);cursor:crosshair;touch-action:none}.btn-clear-canvas{padding:.5rem 1rem;background:transparent;border:2px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-family:Crimson Text,serif;font-size:.9rem;cursor:pointer;transition:all var(--transition-fast)}.btn-clear-canvas:hover{border-color:var(--color-card-danger);color:var(--color-card-danger)}.modal-actions{display:flex;gap:1rem;margin-top:1.5rem;justify-content:flex-end}.btn-cancel{padding:.75rem 1.5rem;background:transparent;border:2px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-family:Crimson Text,serif;font-size:1rem;cursor:pointer;transition:all var(--transition-fast)}.btn-cancel:hover{border-color:var(--color-text);color:var(--color-text)}.btn-submit{padding:.75rem 1.5rem;border:none;border-radius:var(--radius-md);font-family:Playfair Display,serif;font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.btn-submit.sherlock{background:linear-gradient(135deg,var(--color-team-sherlock),var(--color-team-sherlock-light));color:var(--color-team-sherlock-text)}.btn-submit.moriarty{background:linear-gradient(135deg,var(--color-team-moriarty),var(--color-team-moriarty-light));color:var(--color-accent)}.btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-submit:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.spymaster-modal{padding:1.5rem;margin:.5rem}.modal-title{font-size:1.25rem;margin-bottom:1rem}.mode-btn{padding:.5rem .75rem;font-size:.9rem}.mode-icon{font-size:1.25rem}.drawing-canvas{max-width:100%}.modal-actions{flex-direction:column}.btn-cancel,.btn-submit{width:100%}}@media (max-width: 480px){.spymaster-modal-overlay{padding:.5rem;align-items:flex-end}.spymaster-modal{padding:1rem;margin:0;max-height:85vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:100%}.modal-close{top:.75rem;right:.75rem;width:32px;height:32px;font-size:1rem}.modal-title{font-size:1.1rem;margin-bottom:.75rem;padding-right:2rem}.mode-selector{gap:.35rem;margin-bottom:1rem}.mode-btn{padding:.5rem .6rem;font-size:.75rem;flex:1}.mode-icon{font-size:1.1rem}.forced-mode-message{padding:.75rem;font-size:.9rem;margin-bottom:1rem}.modal-content{gap:1rem}.input-group label{font-size:.8rem}.input-group input[type=text]{padding:.6rem .75rem;font-size:1rem}.number-group{flex-direction:row;justify-content:center}.number-btn{width:36px;height:36px;font-size:1.25rem}.number-input-wrapper input[type=number]{width:50px;padding:.4rem;font-size:1.25rem}.mime-instructions{padding:1.25rem}.mime-icon{font-size:2.5rem}.mime-instructions p{font-size:.95rem}.drawing-area{gap:.5rem}.drawing-canvas{aspect-ratio:3/2;max-width:100%}.btn-clear-canvas{padding:.4rem .75rem;font-size:.8rem}.modal-actions{gap:.5rem;margin-top:1rem}.btn-cancel,.btn-submit{padding:.65rem 1rem;font-size:.9rem}}@media (max-width: 360px){.spymaster-modal{padding:.75rem;max-height:90vh}.modal-title{font-size:1rem}.mode-btn{padding:.4rem .5rem;font-size:.7rem}.mode-icon{font-size:1rem}.input-group input[type=text]{font-size:.9rem;padding:.5rem}.number-btn{width:32px;height:32px;font-size:1.1rem}.number-input-wrapper input[type=number]{width:45px;font-size:1.1rem}.drawing-canvas{aspect-ratio:4/3}}.game-container{height:100vh;height:100dvh;display:flex;flex-direction:column;background:url(/assets/texture-victorian.svg) repeat,linear-gradient(180deg,var(--color-background) 0%,#0d0d24 100%);background-size:200px 200px,100% 100%;-webkit-overflow-scrolling:touch;overflow:hidden}.game-header{flex-shrink:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--color-surface);box-shadow:var(--shadow-md);border-bottom:1px solid var(--color-border)}.header-left{display:flex;align-items:center;gap:1rem;flex:1}.header-logo{height:80px;width:auto}.header-center{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1}.header-code{font-family:Playfair Display,serif;font-size:1.2rem;font-weight:600;letter-spacing:.1em;color:var(--color-accent)}.header-right{display:flex;align-items:center;gap:.75rem;justify-content:flex-end;flex:1}.back-link{color:var(--color-primary-light);text-decoration:none;font-weight:500;font-family:Crimson Text,serif}.back-link:hover{text-decoration:underline}.header-qr{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem;background:#fff;border-radius:var(--radius-md);border:2px solid var(--color-accent)}.header-qr svg{border-radius:var(--radius-sm)}.header-qr-code{font-family:Playfair Display,serif;font-size:.7rem;font-weight:600;letter-spacing:.1em;color:var(--color-surface)}.qr-fullscreen-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;z-index:10000;display:flex;align-items:center;justify-content:center;cursor:pointer}.qr-fullscreen-close{position:absolute;top:2rem;right:2rem;width:50px;height:50px;border:2px solid var(--color-accent);border-radius:50%;background:var(--color-surface);color:var(--color-accent);font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.qr-fullscreen-close:hover{background:var(--color-accent);color:var(--color-surface)}.qr-fullscreen-content{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:3rem;background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);cursor:default}.qr-fullscreen-content svg{border-radius:var(--radius-md)}.qr-fullscreen-code{font-family:Playfair Display,serif;font-size:3rem;font-weight:700;letter-spacing:.2em;color:var(--color-surface)}.qr-fullscreen-hint{font-family:Crimson Text,serif;font-size:1.25rem;color:var(--color-text-muted);margin:0}@media (max-width: 768px){.qr-fullscreen-close{top:1rem;right:1rem;width:40px;height:40px;font-size:1.25rem}.qr-fullscreen-content{padding:2rem;margin:1rem}.qr-fullscreen-content svg{width:200px!important;height:200px!important}.qr-fullscreen-code{font-size:2rem}.qr-fullscreen-hint{font-size:1rem}}.game-info{text-align:center}.game-info h1{font-size:1.5rem;color:var(--color-text);margin:0;font-weight:600;letter-spacing:.05em}.current-turn{font-size:.9rem;padding:.25rem 1rem;border-radius:var(--radius-full);margin-top:.5rem;font-weight:600;display:inline-block}.current-turn.sherlock,.current-turn.red{background:linear-gradient(135deg,var(--color-team-sherlock),var(--color-team-sherlock-light));color:var(--color-team-sherlock-text);border:2px solid var(--color-accent);box-shadow:var(--shadow-glow-sherlock)}.current-turn.moriarty,.current-turn.blue{background:linear-gradient(135deg,var(--color-team-moriarty),var(--color-team-moriarty-light));color:var(--color-team-moriarty-text);border:2px solid var(--color-accent);box-shadow:var(--shadow-glow-moriarty)}.score{font-size:1.5rem;font-weight:700;display:flex;gap:.5rem;font-family:Playfair Display,serif}.score-sherlock,.score-red{color:var(--color-team-sherlock);text-shadow:0 0 8px rgba(245,240,230,.5)}.score-moriarty,.score-blue{color:var(--color-accent)}.score-separator{color:var(--color-text-muted)}.winner-banner{flex-shrink:0;text-align:center;font-size:1.5rem;font-weight:700;padding:1rem;border-radius:var(--radius-lg);margin:0 1rem;color:#fff;font-family:Playfair Display,serif;letter-spacing:.05em}.winner-banner.sherlock,.winner-banner.red{background:linear-gradient(135deg,var(--color-team-sherlock),var(--color-team-sherlock-light));color:var(--color-team-sherlock-text);border:3px solid var(--color-accent);box-shadow:var(--shadow-glow-sherlock)}.winner-banner.moriarty,.winner-banner.blue{background:linear-gradient(135deg,var(--color-team-moriarty),var(--color-team-moriarty-light));color:var(--color-team-moriarty-text);border:3px solid var(--color-accent);box-shadow:var(--shadow-glow-moriarty)}.lobby{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--color-surface);padding:2rem;margin:1rem;border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow-lg);border:1px solid var(--color-border);overflow-y:auto}.lobby h2{color:var(--color-text);margin-bottom:1rem;font-weight:600}.game-code{font-size:1.25rem;margin-bottom:2rem;color:var(--color-text-muted)}.game-code strong{font-size:1.5rem;letter-spacing:.2em;color:var(--color-accent);font-family:Playfair Display,serif}.qr-code-section{display:flex;flex-direction:column;align-items:center;margin-bottom:2rem;padding:1.5rem;background:var(--color-surface-elevated);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.qr-hint{margin-top:1rem;font-size:.9rem;color:var(--color-text-muted);font-family:Crimson Text,serif}.teams-selection{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem}.team-panel{padding:1.5rem;border-radius:var(--radius-lg);min-height:200px;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.team-panel:hover{transform:translateY(-2px)}.team-panel.sherlock,.team-panel.red{background:var(--color-team-sherlock-subtle);border:2px solid var(--color-team-sherlock)}.team-panel.sherlock:hover,.team-panel.red:hover{box-shadow:var(--shadow-glow-sherlock);border-color:var(--color-accent)}.team-panel.moriarty,.team-panel.blue{background:var(--color-team-moriarty-subtle);border:2px solid var(--color-accent)}.team-panel.moriarty:hover,.team-panel.blue:hover{box-shadow:var(--shadow-glow-moriarty)}.team-panel h3{margin-bottom:1rem;font-weight:600}.team-panel-illustration{width:80px;height:80px;margin:0 auto 1rem;display:block;filter:drop-shadow(0 4px 8px rgba(0,0,0,.4))}.team-panel.sherlock h3,.team-panel.red h3{color:var(--color-team-sherlock);text-shadow:0 0 8px rgba(245,240,230,.5)}.team-panel.moriarty h3,.team-panel.blue h3{color:var(--color-accent)}.team-members{min-height:80px}.player{display:flex;justify-content:space-between;padding:.5rem;background:#ffffff1a;border-radius:var(--radius-sm);margin-bottom:.5rem}.player-name{font-weight:500;color:var(--color-text)}.player-role{font-size:.85rem;color:var(--color-text-muted)}.join-team-buttons{display:flex;gap:.5rem;margin-top:1rem;justify-content:center}.btn-small{padding:.5rem 1rem;font-size:.85rem}.spectators{margin:1rem 0;padding:1rem;background:var(--color-surface-elevated);border-radius:var(--radius-md)}.spectators h4{margin-bottom:.5rem;color:var(--color-text)}.spectator-list{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.spectator{padding:.25rem .75rem;background:var(--color-border);border-radius:var(--radius-full);font-size:.9rem;color:var(--color-text-muted)}.host-actions{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--color-border)}.help-text{font-size:.85rem;color:var(--color-text-muted);margin-top:.5rem;font-family:Crimson Text,serif}.game-board-wrapper{flex:1;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;touch-action:none;-webkit-user-select:none;user-select:none}.zoom-controls{position:absolute;top:1rem;left:1rem;display:flex;flex-direction:column;gap:.25rem;z-index:10}.zoom-controls button{width:36px;height:36px;border:2px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.zoom-controls button:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.zoom-hint{font-size:.65rem;color:var(--color-text-muted);text-align:center;margin-top:.25rem;white-space:nowrap}.zoom-hint.mobile{display:none}.zoom-hint.desktop{display:block}.zoom-level{font-size:.7rem;font-weight:600;color:var(--color-accent);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.15rem .35rem;text-align:center;margin-top:.25rem}.join-team-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;background:#1a1a2ef2;border-radius:var(--radius-lg);border:2px solid var(--color-accent);box-shadow:var(--shadow-xl);z-index:20}.join-team-title{font-family:Playfair Display,serif;font-size:1.25rem;font-weight:600;color:var(--color-accent);text-align:center}.join-team-overlay .join-team-buttons{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.game-actions-overlay{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#1a1a2ee6;border-radius:var(--radius-md);border:1px solid var(--color-border);z-index:10}.waiting-overlay{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);padding:.75rem 1.5rem;background:#1a1a2ee6;border-radius:var(--radius-md);border:1px solid var(--color-border);color:var(--color-text-muted);font-style:italic;font-family:Crimson Text,serif;z-index:10}.game-board{display:flex;flex-direction:column;align-items:center;transform-origin:center center;transition:transform .1s ease-out;width:100%;max-width:900px}.cards-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.6rem;max-width:900px;width:100%;padding:.75rem}.card{border:none;border-radius:var(--radius-md);cursor:pointer;font-size:.75rem;font-weight:500;text-transform:uppercase;box-shadow:var(--shadow-md);color:var(--color-text);position:relative;perspective:1000px;background:transparent;padding:0;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;aspect-ratio:2.5 / 1}.card:hover:not(:disabled){box-shadow:var(--shadow-lg)}.card:disabled{cursor:default}.card-inner{position:absolute;top:0;right:0;bottom:0;left:0;transition:transform .6s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d;border-radius:var(--radius-md);pointer-events:none}.card:hover:not(:disabled) .card-inner{transform:translateY(-2px)}.card.revealed .card-inner{transform:rotateY(180deg)}.card-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;padding:.4rem;border:2px solid var(--color-border);box-sizing:border-box;pointer-events:none}.card-front{background:url(/assets/card-back.svg) center/cover no-repeat,var(--color-surface-elevated)}.card-back{transform:rotateY(180deg);background:var(--color-surface-elevated)}.card-word{text-align:center;word-break:break-word;font-family:Crimson Text,serif;letter-spacing:.02em}.card.revealed{color:#fff}.card-icon{width:80%;height:80%;object-fit:contain;border-radius:50%}.card.revealed.sherlock .card-back,.card.revealed.red .card-back{background:linear-gradient(135deg,var(--color-team-sherlock),var(--color-team-sherlock-light));border-color:var(--color-accent);box-shadow:var(--shadow-glow-sherlock)}.card.revealed.moriarty .card-back,.card.revealed.blue .card-back{background:linear-gradient(135deg,var(--color-team-moriarty),var(--color-team-moriarty-light));border-color:var(--color-accent);box-shadow:var(--shadow-glow-moriarty)}.card.revealed.neutral .card-back{background:linear-gradient(135deg,var(--color-card-neutral-dark),var(--color-card-neutral));border-color:var(--color-card-neutral)}.card.revealed.danger .card-back,.card.revealed.assassin .card-back{background:linear-gradient(135deg,#8B0000,var(--color-card-danger));border-color:var(--color-card-danger);animation:danger-pulse 1s ease-in-out infinite}.card.revealed.drawing .card-back{background:linear-gradient(135deg,#CC3399,var(--color-card-drawing));border-color:var(--color-card-drawing)}.card.revealed.mime .card-back{background:linear-gradient(135deg,#CC7700,var(--color-card-mime));border-color:var(--color-card-mime)}.card.revealed.transition .card-back{background:linear-gradient(135deg,#5A2D6F,var(--color-card-transition));border-color:var(--color-card-transition)}@keyframes danger-pulse{0%,to{box-shadow:0 0 10px var(--color-card-danger)}50%{box-shadow:0 0 30px var(--color-card-danger)}}.card.hint-sherlock .card-front,.card.hint-red .card-front{border:3px solid var(--color-team-sherlock)}.card.hint-moriarty .card-front,.card.hint-blue .card-front{border:3px solid var(--color-team-moriarty)}.card.hint-neutral .card-front{border:3px solid var(--color-card-neutral)}.card.hint-danger .card-front,.card.hint-assassin .card-front{border:3px solid var(--color-card-danger)}.card.spymaster-sherlock .card-front,.card.spymaster-red .card-front{background:#ffffff80;border:3px solid var(--color-team-sherlock);box-shadow:inset 0 0 20px #ffffff4d}.card.spymaster-moriarty .card-front,.card.spymaster-blue .card-front{background:#1a1a1a99;border:3px solid var(--color-accent)}.card.spymaster-neutral .card-front{background:#8b776559;border:3px solid var(--color-card-neutral)}.card.spymaster-danger .card-front,.card.spymaster-assassin .card-front{background:#d7263d4d;border:3px solid var(--color-card-danger);color:var(--color-card-danger-light)}.card.spymaster-drawing .card-front{background:#ff66c44d;border:3px solid var(--color-card-drawing)}.card.spymaster-mime .card-front{background:#ffa5004d;border:3px solid var(--color-card-mime)}.card.spymaster-transition .card-front{background:#7a3e9d4d;border:3px solid var(--color-card-transition)}.game-actions{margin-top:1.5rem;text-align:center}.action-hint{margin-bottom:1rem;color:var(--color-text-muted);font-family:Crimson Text,serif}.waiting-message{margin-top:1.5rem;color:var(--color-text-muted);font-style:italic;font-family:Crimson Text,serif}.players-sidebar{position:fixed;right:1rem;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:1rem}.sidebar-team{padding:1rem;border-radius:var(--radius-md);min-width:120px;background:var(--color-surface)}.sidebar-team.sherlock,.sidebar-team.red{border-left:4px solid var(--color-team-sherlock);background:var(--color-team-sherlock-subtle)}.sidebar-team.moriarty,.sidebar-team.blue{border-left:4px solid var(--color-accent);background:var(--color-team-moriarty-subtle)}.sidebar-team h4{margin-bottom:.5rem;font-size:.9rem}.sidebar-team.sherlock h4,.sidebar-team.red h4{color:var(--color-team-sherlock);text-shadow:0 0 8px rgba(245,240,230,.5)}.sidebar-team.moriarty h4,.sidebar-team.blue h4{color:var(--color-accent)}.sidebar-player{font-size:.85rem;padding:.25rem 0;color:var(--color-text-muted)}.join-form{margin-top:1.5rem;padding:1.5rem;background:var(--color-surface);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:1rem;align-items:center;border:1px solid var(--color-border)}.code-input{text-align:center;font-size:1.5rem;letter-spacing:.2em;text-transform:uppercase;width:200px;padding:.75rem;border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-elevated);color:var(--color-text)}.code-input:focus{outline:none;border-color:var(--color-primary-light)}.spymaster-legend{flex-shrink:0;display:flex;justify-content:center;gap:1.5rem;padding:.75rem 1rem;margin:0 1rem;background:var(--color-surface);border-radius:var(--radius-md);flex-wrap:wrap;border:1px solid var(--color-border)}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;color:var(--color-text)}.legend-color{width:20px;height:20px;border-radius:var(--radius-sm)}.legend-item.sherlock .legend-color,.legend-item.red .legend-color{background:var(--color-team-sherlock);border:1px solid var(--color-accent)}.legend-item.moriarty .legend-color,.legend-item.blue .legend-color{background:var(--color-team-moriarty);border:1px solid var(--color-accent)}.legend-item.neutral .legend-color{background:var(--color-card-neutral)}.legend-item.danger .legend-color,.legend-item.assassin .legend-color{background:var(--color-card-danger)}.legend-item.drawing .legend-color{background:var(--color-card-drawing)}.legend-item.mime .legend-color{background:var(--color-card-mime)}.legend-item.transition .legend-color{background:var(--color-card-transition)}.game-footer{flex-shrink:0;z-index:100;display:flex;align-items:stretch;min-height:70px;border-top:1px solid var(--color-border);margin-top:auto}.footer-team{flex:1;display:flex;align-items:center;padding:.5rem 1rem;gap:.75rem}.footer-team.sherlock{background:linear-gradient(135deg,var(--color-team-sherlock),var(--color-team-sherlock-light));justify-content:flex-start}.footer-team.moriarty{background:linear-gradient(135deg,var(--color-team-moriarty),var(--color-team-moriarty-light));justify-content:flex-end}.footer-team-icon{width:50px;height:50px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--shadow-md)}.footer-team-icon img{width:40px;height:40px}.footer-team-info{display:flex;flex-direction:column;gap:.125rem}.footer-team-info.right{text-align:right}.footer-team-name{font-family:Playfair Display,serif;font-size:1rem;font-weight:600}.footer-team.sherlock .footer-team-name{color:var(--color-team-sherlock-text)}.footer-team.moriarty .footer-team-name{color:var(--color-accent)}.footer-team-players{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.75rem}.footer-team.sherlock .footer-team-players{color:var(--color-team-sherlock-text)}.footer-team.moriarty .footer-team-players{color:var(--color-team-moriarty-text);justify-content:flex-end}.footer-player{white-space:nowrap}.footer-player.spymaster{font-weight:600}.footer-team-score{font-family:Playfair Display,serif;font-size:2.5rem;font-weight:700;min-width:50px;text-align:center}.footer-team.sherlock .footer-team-score{color:var(--color-team-sherlock-text)}.footer-team.moriarty .footer-team-score{color:var(--color-accent)}.footer-separator{width:2px;background:var(--color-accent)}@media (max-width: 768px){.teams-selection{grid-template-columns:1fr}.header-left{flex:0 0 auto;gap:.5rem}.header-logo{height:50px}.back-link{font-size:.8rem}.header-center{flex:1}.current-turn{font-size:.75rem;padding:.2rem .5rem}.header-code{font-size:.9rem}.header-right{flex:0 0 auto;gap:.5rem}.cards-grid{grid-template-columns:repeat(6,1fr);gap:.4rem;padding:.5rem}.card{font-size:.6rem}.card-face{padding:.2rem;border-width:2px}.zoom-controls{top:.5rem;left:.5rem}.zoom-controls button{width:30px;height:30px;font-size:1rem}.game-footer{min-height:60px}.footer-team{padding:.4rem .5rem;gap:.4rem}.footer-team-icon{width:35px;height:35px}.footer-team-icon img{width:28px;height:28px}.footer-team-name{font-size:.8rem}.footer-team-players{display:none}.footer-team-score{font-size:1.75rem;min-width:35px}.players-sidebar{display:none}.spymaster-view .game-header{padding:.5rem}.spymaster-view .game-info h1{font-size:1rem}.spymaster-legend{gap:.75rem;padding:.5rem;font-size:.8rem}.legend-color{width:16px;height:16px}.spymaster-view .cards-grid{gap:.3rem;padding:.25rem}.spymaster-view .card{font-size:.55rem}.spymaster-view .card-face{padding:.15rem}.spymaster-view .game-actions{margin-top:.75rem}.spymaster-view .action-hint{font-size:.85rem;margin-bottom:.5rem}}@media (max-width: 480px){.game-container{padding:0}.game-header{padding:.4rem .5rem;flex-wrap:wrap;gap:.25rem}.header-left{flex:0 0 auto;order:1}.header-logo{height:36px}.header-center{flex:1 1 100%;order:3;padding-top:.25rem}.current-turn{font-size:.65rem;padding:.15rem .4rem;margin-top:0}.header-code{font-size:.75rem}.header-right{flex:0 0 auto;order:2;gap:.25rem}.header-qr{padding:.15rem}.header-qr svg{width:28px!important;height:28px!important}.header-qr-code{font-size:.45rem}.btn-cast{padding:.3rem}.btn-cast svg{width:18px;height:18px}.btn-tv-toggle{display:none!important}.lobby{padding:1rem;margin:.5rem;border-radius:var(--radius-md)}.lobby h2{font-size:1.1rem;margin-bottom:.75rem}.teams-selection{gap:1rem;margin-bottom:1rem}.team-panel{padding:1rem;min-height:auto}.team-panel-illustration{width:50px;height:50px;margin-bottom:.5rem}.team-panel h3{font-size:1rem;margin-bottom:.5rem}.join-team-buttons{flex-direction:column;gap:.5rem}.btn-small{padding:.6rem .75rem;font-size:.8rem;width:100%}.host-actions{margin-top:1rem;padding-top:.75rem}.host-actions .btn{width:100%;padding:.75rem;font-size:.9rem}.help-text{font-size:.75rem}.cards-grid{grid-template-columns:repeat(4,1fr);gap:.3rem;padding:.4rem;max-width:100%}.card{font-size:.55rem;border-radius:var(--radius-sm);aspect-ratio:1.8 / 1}.card-inner{border-radius:var(--radius-sm)}.card-face{padding:.15rem;border-width:1.5px;border-radius:var(--radius-sm)}.card-word{line-height:1.1}.zoom-controls{top:.25rem;left:.25rem;flex-direction:row;gap:.15rem}.zoom-controls button{width:26px;height:26px;font-size:.85rem}.zoom-hint.desktop{display:none}.zoom-hint.mobile{display:block;font-size:.55rem;margin-top:.15rem}.zoom-level{font-size:.6rem;padding:.1rem .25rem}.game-actions-overlay{bottom:.5rem;padding:.5rem .75rem}.action-hint{font-size:.75rem;margin-bottom:.5rem}.game-actions-overlay .btn{padding:.5rem 1rem;font-size:.8rem}.waiting-overlay{bottom:.5rem;padding:.5rem .75rem;font-size:.75rem}.join-team-overlay{padding:1rem;width:calc(100% - 2rem);max-width:300px}.join-team-title{font-size:1rem;margin-bottom:.75rem}.join-team-overlay .join-team-buttons{flex-direction:column;width:100%}.join-team-overlay .btn{width:100%;padding:.75rem}.game-footer{min-height:50px;position:fixed;bottom:0;left:0;right:0}.footer-team{padding:.3rem .4rem;gap:.3rem}.footer-team-icon{width:28px;height:28px}.footer-team-icon img{width:22px;height:22px}.footer-team-name{font-size:.65rem}.footer-team-score{font-size:1.4rem;min-width:28px}.footer-separator{width:1px}.spymaster-view .game-header{padding:.3rem .4rem}.spymaster-legend{gap:.4rem;padding:.4rem;font-size:.65rem;margin-bottom:.5rem;flex-wrap:wrap;justify-content:center}.legend-item{gap:.25rem}.legend-color{width:12px;height:12px}.spymaster-view .cards-grid{grid-template-columns:repeat(4,1fr);gap:.25rem;padding:.25rem}.spymaster-view .card{font-size:.5rem}.spymaster-view .card-face{padding:.1rem;border-width:2px}.spymaster-fab{bottom:65px;right:.75rem}.fab-button{width:48px;height:48px;font-size:1.25rem}.fab-label{font-size:.65rem;padding:.15rem .35rem}.qr-fullscreen-content{padding:1.5rem;margin:.5rem}.qr-fullscreen-content svg{width:180px!important;height:180px!important}.qr-fullscreen-code{font-size:1.5rem}.qr-fullscreen-hint{font-size:.85rem}.qr-fullscreen-close{top:.75rem;right:.75rem;width:36px;height:36px;font-size:1rem}.cast-indicator{padding:.5rem .75rem;margin:.25rem .5rem;font-size:.8rem}.cast-indicator-compact{display:flex!important;align-items:center;gap:.5rem;width:100%}.cast-indicator-icon{font-size:1.1rem;flex-shrink:0}.cast-indicator-device{flex:1;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cast-indicator-toggle{padding:.25rem .5rem;font-size:.75rem;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text)}.cast-indicator.collapsed .cast-indicator-content{display:none!important}.cast-indicator.expanded .cast-indicator-content{display:flex!important;flex-direction:column;gap:.5rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--color-border)}.cast-indicator.expanded .cast-indicator-header{display:none}.cast-display-modes{flex-wrap:wrap;gap:.25rem;justify-content:center}.cast-modes-label{font-size:.7rem;width:100%;text-align:center;margin-bottom:.25rem}.cast-mode-btn{padding:.25rem .5rem;font-size:.7rem}.btn-stop-cast{width:100%;padding:.4rem;font-size:.8rem}.winner-banner{font-size:1rem;padding:.75rem;margin:.5rem}.game-main-area{padding-bottom:55px}.game-board-wrapper{min-height:calc(100vh - 150px)}.info-sidebar{display:none!important}}@media (max-width: 360px){.header-logo{height:30px}.header-qr svg{width:24px!important;height:24px!important}.cards-grid{grid-template-columns:repeat(3,1fr);gap:.25rem}.card{font-size:.5rem;aspect-ratio:1.5 / 1}.spymaster-view .cards-grid{grid-template-columns:repeat(3,1fr)}.footer-team-icon{width:24px;height:24px}.footer-team-icon img{width:18px;height:18px}.footer-team-name{font-size:.55rem}.footer-team-score{font-size:1.2rem}}@supports (padding-bottom: env(safe-area-inset-bottom)){.game-header{padding-top:max(.75rem,env(safe-area-inset-top));padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}.game-footer{padding-bottom:env(safe-area-inset-bottom)}@media (max-width: 480px){.game-footer{padding-bottom:calc(.3rem + env(safe-area-inset-bottom))}.spymaster-fab{bottom:calc(65px + env(safe-area-inset-bottom))}.game-main-area{padding-bottom:calc(55px + env(safe-area-inset-bottom))}}}@media (min-width: 769px) and (max-width: 1024px){.spymaster-view .cards-grid{max-width:800px}.spymaster-view .card{font-size:.75rem}}.header-actions{display:flex;align-items:center;gap:1rem}.btn-tv-toggle{display:flex;align-items:center;justify-content:center;padding:.5rem;font-size:1.25rem;background:transparent;border:2px solid white;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);color:#fff}.btn-tv-toggle svg{width:24px;height:24px}.btn-tv-toggle:hover{background:var(--color-primary);color:#fff}.btn-cast{display:flex;align-items:center;justify-content:center;padding:.5rem;background:transparent;border:2px solid white;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);color:#fff}.btn-cast svg{width:24px;height:24px}.btn-cast:hover:not(:disabled){background:var(--color-primary);color:#fff}.btn-cast.casting{background:var(--color-primary);color:#fff;animation:pulse-cast 2s infinite}.btn-cast.disabled,.btn-cast:disabled{opacity:.4;cursor:not-allowed;border-color:var(--color-text-muted);color:var(--color-text-muted)}.btn-cast.disabled:hover,.btn-cast:disabled:hover{background:transparent}@keyframes pulse-cast{0%,to{opacity:1}50%{opacity:.7}}.cast-indicator{flex-shrink:0;display:flex;flex-direction:column;padding:.75rem 1rem;background:var(--color-surface);border:2px solid var(--color-accent);color:var(--color-text);border-radius:var(--radius-md);margin:0 1rem;font-size:.95rem;font-family:Crimson Text,serif;box-shadow:var(--shadow-md)}.cast-indicator-compact{display:none;align-items:center;gap:.5rem;cursor:pointer;padding:.25rem 0}.cast-indicator-icon{font-size:1.25rem}.cast-indicator-device{flex:1;font-weight:600;color:var(--color-accent);font-family:Playfair Display,serif}.cast-indicator-toggle{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.25rem;font-size:.8rem}.cast-indicator-content{display:flex;align-items:center;justify-content:space-between;width:100%;gap:1rem}.cast-indicator-left{display:flex;flex-direction:column;gap:.5rem}.cast-indicator-header{display:flex;align-items:center;gap:.5rem}.cast-indicator strong{color:var(--color-accent);font-family:Playfair Display,serif}.btn-stop-cast{padding:.5rem 1rem;background:transparent;border:2px solid var(--color-card-danger);border-radius:var(--radius-md);color:var(--color-card-danger);font-family:Crimson Text,serif;font-size:.9rem;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-stop-cast:hover{background:var(--color-card-danger);color:#fff}.cast-display-modes{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:center}.cast-modes-label{font-size:.85rem;color:var(--color-text-muted);margin-right:.25rem}.cast-mode-btn{padding:.35rem .75rem;font-size:.8rem;font-family:Crimson Text,serif;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.cast-mode-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.cast-mode-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-surface);font-weight:600}.tv-mode{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-background);z-index:9999;display:flex;flex-direction:column;padding:1rem}.tv-mode .game-header{background:transparent;padding:1rem 2rem;margin-bottom:0;border:none}.tv-mode .game-info h1{font-size:2rem;color:#fff}.tv-mode .current-turn{font-size:1.5rem;padding:.5rem 2rem;margin-top:.5rem}.tv-mode .score{font-size:3rem}.tv-mode .btn-tv-toggle{border-color:#fff;color:#fff;font-size:1.5rem}.tv-mode .btn-tv-toggle:hover{background:#fff3}.tv-mode .game-board{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center}.tv-mode .header-qr{padding:.75rem}.tv-mode .header-qr-code{font-size:1rem}.tv-mode .cards-grid{max-width:1400px;width:95%;gap:.8rem;grid-template-columns:repeat(6,1fr)}.tv-mode .card{font-size:1.2rem;font-weight:600;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:#fff;aspect-ratio:2.5 / 1}.tv-mode .card-face{border-radius:var(--radius-lg)}.tv-mode .card-front{background:var(--color-surface-elevated)}.tv-mode .card:not(.revealed) .card-front{border:3px solid var(--color-border)}.tv-mode .card.revealed .card-inner{transform:rotateY(180deg) scale(.95)}.tv-mode .card.revealed.sherlock .card-back,.tv-mode .card.revealed.red .card-back{background:linear-gradient(135deg,var(--color-team-sherlock),var(--color-team-sherlock-light));color:var(--color-team-sherlock-text);border-color:var(--color-accent);box-shadow:var(--shadow-glow-sherlock)}.tv-mode .card.revealed.moriarty .card-back,.tv-mode .card.revealed.blue .card-back{background:linear-gradient(135deg,var(--color-team-moriarty),var(--color-team-moriarty-light));color:var(--color-team-moriarty-text);border-color:var(--color-accent);box-shadow:var(--shadow-glow-moriarty)}.tv-mode .card.revealed.neutral .card-back{background:linear-gradient(135deg,#6a6a7a,#8a8a9a)}.tv-mode .card.revealed.danger .card-back,.tv-mode .card.revealed.assassin .card-back{background:linear-gradient(135deg,#8B0000,var(--color-card-danger));border-color:var(--color-card-danger)}.tv-mode .winner-banner{font-size:2.5rem;padding:1.5rem 3rem;margin:1rem auto}.tv-mode .players-sidebar,.tv-mode .game-actions,.tv-mode .waiting-message,.tv-mode .game-actions-overlay,.tv-mode .waiting-overlay,.tv-mode .zoom-controls{display:none}.tv-mode .game-footer{min-height:100px}.tv-mode .footer-team-icon{width:70px;height:70px}.tv-mode .footer-team-icon img{width:55px;height:55px}.tv-mode .footer-team-name{font-size:1.5rem}.tv-mode .footer-team-score{font-size:4rem;min-width:80px}.tv-mode .footer-team-players{font-size:1rem}.tv-mode .error-message{background:#d7263de6;color:#fff;font-size:1.25rem}@media (min-width: 1400px){.tv-mode .cards-grid{max-width:1800px;gap:1.25rem}.tv-mode .card{font-size:1.6rem}.tv-mode .game-info h1{font-size:2.5rem}.tv-mode .score{font-size:4rem}}@media (min-width: 2000px){.tv-mode .cards-grid{max-width:2200px;gap:1.5rem}.tv-mode .card{font-size:2rem;border-radius:var(--radius-xl)}.tv-mode .card-face,.tv-mode .card-inner{border-radius:var(--radius-xl)}.tv-mode .game-info h1{font-size:3rem}.tv-mode .current-turn{font-size:2rem}.tv-mode .score{font-size:5rem}}@media (max-width: 768px){.header-qr{padding:.25rem}.header-qr svg{width:35px!important;height:35px!important}.header-qr-code{font-size:.55rem}.spymaster-view .header-qr{display:none}}@media (min-width: 1400px){.tv-mode .header-qr svg{width:100px!important;height:100px!important}.tv-mode .header-qr-code{font-size:1.25rem}}@media (min-width: 2000px){.tv-mode .header-qr{padding:1rem}.tv-mode .header-qr svg{width:120px!important;height:120px!important}.tv-mode .header-qr-code{font-size:1.5rem}}.spymaster-fab{position:fixed;bottom:100px;right:2rem;z-index:9000;display:flex;flex-direction:column;align-items:center;gap:.5rem;pointer-events:auto}.fab-button{width:64px;height:64px;border-radius:50%;border:3px solid var(--color-accent);background:var(--color-surface);color:var(--color-accent);font-size:1.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);transition:all var(--transition-fast)}.fab-button:hover{transform:scale(1.1)}.fab-button.sherlock{background:linear-gradient(135deg,var(--color-team-sherlock),var(--color-team-sherlock-light));color:var(--color-team-sherlock-text);border-color:var(--color-accent)}.fab-button.moriarty{background:linear-gradient(135deg,var(--color-team-moriarty),var(--color-team-moriarty-light));color:var(--color-accent);border-color:var(--color-accent)}.fab-label{font-family:Crimson Text,serif;font-size:.8rem;color:var(--color-text-muted);background:var(--color-surface);padding:.25rem .5rem;border-radius:var(--radius-sm)}.game-main-area{display:flex;flex:1;min-height:0;overflow:hidden}.game-board-section{flex:1;display:flex;flex-direction:column;transition:flex var(--transition-normal);min-width:0}.game-board-section.size-large{flex:.8}.game-board-section.size-medium{flex:.5}.game-board-section.size-small{flex:.2}.info-sidebar{background:var(--color-surface);border-left:2px solid var(--color-accent);display:flex;flex-direction:column;overflow-y:auto;transition:flex var(--transition-normal);padding:1rem}.info-sidebar.size-large{flex:.2}.info-sidebar.size-medium{flex:.5}.info-sidebar.size-small{flex:.8}.info-sidebar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}.info-sidebar-title{font-family:Playfair Display,serif;font-size:1rem;font-weight:600;color:var(--color-accent)}.size-toggle-buttons{display:flex;gap:.25rem}.size-toggle-btn{width:28px;height:28px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-elevated);color:var(--color-text-muted);cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.size-toggle-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.size-toggle-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-surface)}.info-section{margin-bottom:1.5rem}.info-section-title{font-family:Playfair Display,serif;font-size:.85rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.75rem}.current-clue{background:var(--color-surface-elevated);padding:1rem;border-radius:var(--radius-md);text-align:center;border:2px solid var(--color-accent)}.current-clue-word{font-family:Playfair Display,serif;font-size:1.5rem;font-weight:700;color:var(--color-accent);text-transform:uppercase;letter-spacing:.1em}.current-clue-number{font-size:2rem;font-weight:700;color:var(--color-text);margin-left:.5rem}.current-clue-mime,.current-clue-drawing{display:flex;flex-direction:column;align-items:center;gap:.5rem}.current-clue-icon{font-size:2.5rem}.current-clue-drawing img{max-width:100%;border-radius:var(--radius-md);border:2px solid var(--color-border)}.no-clue{color:var(--color-text-muted);font-style:italic;text-align:center;padding:1rem}.sidebar-team-scores{display:flex;flex-direction:column;gap:.75rem}.sidebar-team-score{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:var(--radius-md)}.sidebar-team-score.sherlock{background:var(--color-team-sherlock-subtle);border:2px solid var(--color-team-sherlock)}.sidebar-team-score.moriarty{background:var(--color-team-moriarty-subtle);border:2px solid var(--color-accent)}.sidebar-team-score-icon img{width:32px;height:32px;border-radius:50%}.sidebar-team-score-info{flex:1}.sidebar-team-score-name{font-family:Playfair Display,serif;font-size:.85rem;font-weight:600}.sidebar-team-score.sherlock .sidebar-team-score-name{color:var(--color-team-sherlock)}.sidebar-team-score.moriarty .sidebar-team-score-name{color:var(--color-accent)}.sidebar-team-score-value{font-family:Playfair Display,serif;font-size:1.5rem;font-weight:700}.sidebar-team-score.sherlock .sidebar-team-score-value{color:var(--color-team-sherlock)}.sidebar-team-score.moriarty .sidebar-team-score-value{color:var(--color-accent)}.revealed-cards-list{display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto}.revealed-card-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-radius:var(--radius-sm);font-size:.85rem}.revealed-card-item.sherlock{background:var(--color-team-sherlock);color:var(--color-team-sherlock-text)}.revealed-card-item.moriarty{background:var(--color-team-moriarty);color:var(--color-team-moriarty-text)}.revealed-card-item.neutral{background:var(--color-card-neutral);color:#fff}.revealed-card-item.danger{background:var(--color-card-danger);color:#fff}.revealed-card-item.drawing{background:var(--color-card-drawing);color:#fff}.revealed-card-item.mime{background:var(--color-card-mime);color:#fff}.info-sidebar{display:none}.tv-mode .info-sidebar,.cast-connected .info-sidebar,.tv-mode .game-main-area,.cast-connected .game-main-area{display:flex}@media (max-width: 768px){.spymaster-fab{bottom:80px;right:1rem}.fab-button{width:56px;height:56px;font-size:1.5rem}.tv-mode .game-main-area,.cast-connected .game-main-area{flex-direction:column}.info-sidebar{border-left:none;border-top:2px solid var(--color-accent);max-height:40vh}.info-sidebar.size-large,.info-sidebar.size-medium,.info-sidebar.size-small{flex:none}}:root{--color-team-sherlock: #F5F0E6;--color-team-sherlock-light: #FFFDF7;--color-team-sherlock-dark: #E8DFD0;--color-team-sherlock-subtle: rgba(245, 240, 230, .15);--color-team-sherlock-text: #1a1a1a;--color-team-moriarty: #1a1a1a;--color-team-moriarty-light: #2d2d2d;--color-team-moriarty-dark: #0a0a0a;--color-team-moriarty-subtle: rgba(26, 26, 26, .3);--color-team-moriarty-text: #ffffff;--color-card-neutral: #D9D9D9;--color-card-neutral-dark: #B8B8B8;--color-card-danger: #D7263D;--color-card-danger-light: #E85A6B;--color-card-drawing: #FF66C4;--color-card-drawing-light: #FF99D6;--color-card-mime: #FFA500;--color-card-mime-light: #FFBB33;--color-card-transition: #7A3E9D;--color-card-transition-light: #9B5BBD;--color-card-silence: #4A4A4A;--color-card-chaos: #FF4500;--color-card-double: #FFD700;--color-card-swap: #00CED1;--color-card-black: #1A1A1A;--color-background: #0a0a1a;--color-surface: #1a1a2e;--color-surface-elevated: #252542;--color-surface-overlay: rgba(0, 0, 0, .7);--color-text: #ffffff;--color-text-muted: #a0a0a0;--color-text-light: #666666;--color-text-inverse: #1a1a2e;--color-border: #3a3a5e;--color-border-light: #2a2a4a;--color-success: #2BA35A;--color-success-light: #55efc4;--color-warning: #FFA500;--color-warning-dark: #f39c12;--color-error: #D7263D;--color-error-light: #E85A6B;--color-info: #2E5BA8;--color-primary: #1A3A73;--color-primary-light: #2E5BA8;--color-primary-dark: #0F2347;--color-secondary: #1A733F;--color-secondary-light: #2BA35A;--color-accent: #FFD700;--color-accent-light: #FFE44D;--color-accent-dark: #CC9900;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .6);--shadow-glow-sherlock: 0 0 20px rgba(245, 240, 230, .5);--shadow-glow-moriarty: 0 0 20px rgba(201, 169, 89, .5);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease;--color-dark: var(--color-text);--color-light: var(--color-surface);--color-team-red: var(--color-team-sherlock);--color-team-red-light: var(--color-team-sherlock-light);--color-team-red-dark: var(--color-team-sherlock-dark);--color-team-red-subtle: var(--color-team-sherlock-subtle);--color-team-blue: var(--color-team-moriarty);--color-team-blue-light: var(--color-team-moriarty-light);--color-team-blue-dark: var(--color-team-moriarty-dark);--color-team-blue-subtle: var(--color-team-moriarty-subtle);--color-neutral: var(--color-card-neutral);--color-assassin: var(--color-card-danger);--color-assassin-light: var(--color-card-danger-light);font-family:Playfair Display,Georgia,serif;line-height:1.5;font-weight:400;color:var(--color-text);background-color:var(--color-background)}*{margin:0;padding:0;box-sizing:border-box}html{height:100%;height:-webkit-fill-available}body{min-height:100vh;min-height:-webkit-fill-available;display:flex;flex-direction:column;justify-content:center;align-items:center;background:url(/assets/texture-victorian.svg) repeat,linear-gradient(180deg,var(--color-background) 0%,#0d0d24 100%);background-size:200px 200px,100% 100%;-webkit-overflow-scrolling:touch}@supports (-webkit-touch-callout: none){body{min-height:-webkit-fill-available}}#root{width:100%;min-height:100vh;min-height:-webkit-fill-available;display:flex;flex-direction:column}.container{max-width:800px;margin:0 auto;padding:2rem;text-align:center}.hero{margin-bottom:3rem}.hero-logo{width:100%;max-width:400px;height:auto;margin-bottom:2rem}.hero h1{font-size:3rem;color:var(--color-text);margin-bottom:.5rem;font-weight:700;letter-spacing:.05em}.tagline{font-size:1.25rem;color:var(--color-text-muted);font-family:Crimson Text,serif;font-style:italic}.home-page{position:relative;overflow:hidden;min-height:100vh}.hero-characters{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:0}.hero-character{position:fixed;height:70vh;max-height:500px;width:auto;opacity:.15;filter:grayscale(30%);transition:opacity .3s ease}.hero-character-left{left:-5%;bottom:0}.hero-character-right{right:-5%;bottom:0;transform:scaleX(-1)}@media (min-width: 1200px){.hero-character{opacity:.2;height:80vh;max-height:600px}.hero-character-left{left:2%}.hero-character-right{right:2%}}@media (max-width: 768px){.hero-character{display:none}}.home-page .hero,.home-page .main,.home-page .footer{position:relative;z-index:1}.team-illustration{width:120px;height:120px;margin:0 auto 1rem;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.team-illustration-small{width:60px;height:60px}.divider{width:100%;max-width:400px;height:30px;margin:2rem auto}.actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.btn{padding:1rem 2rem;font-size:1.1rem;border:none;border-radius:var(--radius-md);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast);font-family:Crimson Text,serif;font-weight:600;letter-spacing:.03em}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-primary{background:linear-gradient(135deg,var(--color-team-sherlock),var(--color-team-sherlock-light));color:var(--color-team-sherlock-text);border:2px solid var(--color-accent)}.btn-primary:hover{box-shadow:var(--shadow-glow-sherlock)}.btn-secondary{background:linear-gradient(135deg,var(--color-team-moriarty),var(--color-team-moriarty-light));color:var(--color-team-moriarty-text);border:2px solid var(--color-accent)}.btn-secondary:hover{box-shadow:var(--shadow-glow-moriarty)}.api-status{margin-top:2rem;color:var(--color-success);font-size:.9rem}.footer{margin-top:4rem;color:var(--color-text-muted);font-size:.85rem}.auth-container{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:2rem}.auth-card{background:var(--color-surface);padding:2.5rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:400px;border:1px solid var(--color-border)}.auth-logo{width:100%;max-width:280px;height:auto;margin:0 auto 1.5rem;display:block}.auth-card h1{color:var(--color-text);margin-bottom:.5rem;text-align:center;font-weight:700}.auth-subtitle{text-align:center;color:var(--color-text-muted);margin-bottom:2rem;font-family:Crimson Text,serif}.auth-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;color:var(--color-text)}.form-group input{padding:.75rem 1rem;border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:1rem;transition:border-color var(--transition-fast);background:var(--color-surface-elevated);color:var(--color-text)}.form-group input:focus{outline:none;border-color:var(--color-primary-light)}.error-message{background:#d7263d33;color:var(--color-error-light);padding:.75rem 1rem;border-radius:var(--radius-md);font-size:.9rem;margin-bottom:1rem;border:1px solid var(--color-error)}.auth-link{text-align:center;margin-top:1.5rem;color:var(--color-text-muted)}.auth-link a{color:var(--color-primary-light);text-decoration:none;font-weight:500}.auth-link a:hover{text-decoration:underline}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-link{background:none;color:var(--color-text-muted);text-decoration:underline;padding:.5rem;margin-top:1rem}.btn-link:hover{color:var(--color-text);transform:none;box-shadow:none}.welcome{font-size:1.2rem;margin-bottom:2rem}a.btn{text-decoration:none;display:inline-block}.dev-login{margin-top:2rem;padding-top:1.5rem;border-top:1px dashed var(--color-border)}.btn-dev{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;width:100%;font-size:.9rem}.btn-dev:hover{opacity:.9}
