.game-room{min-height:100vh;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.game-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.1)}.room-info h2{margin:0;color:#fff;font-size:1.5rem;font-weight:600}.connection-status{display:flex;align-items:center;gap:8px;color:#4caf50;font-size:.9rem}.status-dot{width:8px;height:8px;border-radius:50%;background:#4caf50}.leave-btn{padding:8px 16px;background:#f44336;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease}.leave-btn:hover{background:#d32f2f;transform:translateY(-1px)}.game-content{flex:1;display:flex;gap:24px;padding:24px;min-height:0}.game-main{flex:1;background:#ffffff0d;border-radius:16px;padding:24px;display:flex;flex-direction:column;min-height:0}.game-sidebar{width:320px;display:flex;flex-direction:column;gap:24px}.players-panel{background:#ffffff14;border-radius:16px;padding:24px;border:1px solid rgba(255,255,255,.1)}.players-panel h3{margin:0 0 16px;color:#fff;font-size:1.2rem;font-weight:600;display:flex;align-items:center;gap:8px}.players-panel h3:before{content:"👥";font-size:1.1em}.player-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;margin-bottom:8px;background:#ffffff0d;border-radius:12px;border:1px solid rgba(255,255,255,.1);transition:all .2s ease}.player-item:hover{background:#ffffff14;transform:translateY(-1px)}.player-item.current-player{background:#2196f333;border-color:#2196f3;box-shadow:0 0 0 1px #2196f34d}.player-name{color:#fff;font-weight:500;font-size:.95rem}.player-score{color:#4caf50;font-weight:600;font-size:.9rem;background:#4caf501a;padding:4px 8px;border-radius:6px}.game-controls,.game-status{background:#ffffff14;border-radius:16px;padding:24px;text-align:center;border:1px solid rgba(255,255,255,.1)}.game-controls h3,.game-status h3{margin:0 0 16px;color:#fff;font-size:1.2rem;font-weight:600}.start-game-btn{padding:12px 24px;background:linear-gradient(135deg,#4caf50,#81c784);color:#fff;border:none;border-radius:12px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 16px #4caf504d}.start-game-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #4caf5066}.player-counter{display:flex;justify-content:center;align-items:center;gap:4px;font-size:2rem;font-weight:700;margin:16px 0}.separator{color:#ffffff80}.max-players{color:#ffffffb3}.room-link{background:#ffffff0d;padding:12px;border-radius:8px;margin-top:16px;color:#4caf50;font-family:monospace}.player-joined-animation{animation:playerJoinPulse 2s ease-in-out;background:linear-gradient(135deg,#4caf50,#81c784);color:#fff;border-radius:8px;box-shadow:0 4px 12px #4caf504d}@keyframes playerJoinPulse{0%{transform:scale(1);box-shadow:0 4px 12px #4caf504d}50%{transform:scale(1.05);box-shadow:0 8px 24px #4caf5080}to{transform:scale(1);box-shadow:0 4px 12px #4caf504d}}.join-badge{background:#ff9800;color:#fff;padding:2px 6px;border-radius:12px;font-size:.7em;font-weight:700;margin-left:8px;animation:badgeBounce 1s ease-in-out infinite alternate}@keyframes badgeBounce{0%{transform:translateY(0)}to{transform:translateY(-2px)}}.waiting-for-players{margin-top:12px;padding:16px;border:2px dashed #ddd;border-radius:8px;text-align:center;background:#00000005}.empty-player-slot{display:flex;flex-direction:column;align-items:center;gap:8px}.slot-icon{font-size:2em;opacity:.5;filter:grayscale(100%)}.slot-text{color:#666;font-style:italic;font-size:.9em}.slot-animation{display:flex;gap:4px;justify-content:center;margin-top:8px}.pulse-dot{width:8px;height:8px;background:#4caf50;border-radius:50%;animation:pulseWave 1.5s ease-in-out infinite}.pulse-dot:nth-child(2){animation-delay:.5s}.pulse-dot:nth-child(3){animation-delay:1s}@keyframes pulseWave{0%,to{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}.room-ready-indicator{margin-top:12px;padding:12px;background:linear-gradient(135deg,#4caf50,#81c784);color:#fff;border-radius:8px;text-align:center;animation:readyGlow 2s ease-in-out infinite alternate}@keyframes readyGlow{0%{box-shadow:0 4px 12px #4caf504d}to{box-shadow:0 8px 24px #4caf5099}}.ready-icon{font-size:1.2em;margin-bottom:4px}.ready-text{font-weight:700;font-size:.9em}.auto-start-countdown.enhanced{background:linear-gradient(135deg,#2196f3,#64b5f6);color:#fff;border-radius:16px;padding:24px;text-align:center;animation:countdownPulse 1s ease-in-out infinite alternate}@keyframes countdownPulse{0%{transform:scale(1);box-shadow:0 8px 24px #2196f34d}to{transform:scale(1.02);box-shadow:0 12px 32px #2196f380}}.enhanced-countdown-display{display:flex;flex-direction:column;align-items:center;gap:16px;margin:20px 0}.countdown-circle-enhanced{position:relative;width:120px;height:120px;display:flex;align-items:center;justify-content:center}.countdown-number-enhanced{font-size:3em;font-weight:700;color:#fff;z-index:2;position:relative;text-shadow:0 2px 4px rgba(0,0,0,.3)}.countdown-ring{position:absolute;top:0;left:0;width:100%;height:100%}.countdown-svg{width:100%;height:100%;transform:rotate(-90deg)}.countdown-progress{transition:stroke-dasharray .5s ease-in-out;filter:drop-shadow(0 0 4px rgba(76,175,80,.5))}.countdown-text-enhanced{font-size:1.1em;font-weight:500;opacity:.9}.countdown-message{margin:16px 0}.countdown-message p{margin:4px 0;font-size:1em}.start-now-btn.enhanced{background:linear-gradient(135deg,#ff9800,#ffb74d);color:#fff;border:none;padding:12px 24px;border-radius:25px;font-weight:700;font-size:1em;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #ff98004d}.start-now-btn.enhanced:hover{transform:translateY(-2px);box-shadow:0 6px 16px #ff980066}.start-now-btn.enhanced:active{transform:translateY(0)}.notification.notification-success{background:linear-gradient(135deg,#4caf50,#81c784);color:#fff;border-left:4px solid #2e7d32}.notification.notification-info{background:linear-gradient(135deg,#2196f3,#64b5f6);color:#fff;border-left:4px solid #1565c0}@media (max-width: 768px){.game-content{flex-direction:column;gap:20px;padding:16px}.game-sidebar{width:100%;order:2}.game-main{order:1}.players-panel{padding:16px}.players-panel h3{font-size:1rem;margin-bottom:12px}.player-item{padding:10px 12px;margin-bottom:6px}.player-name{font-size:.9rem}.player-score{font-size:.8rem}.game-header{padding:12px 16px}.room-info h2{font-size:1.3rem}}@media (max-width: 480px){.game-content{padding:12px;gap:16px}.players-panel,.game-controls,.game-status,.game-main{padding:16px}.game-header{padding:10px 12px}.room-info h2{font-size:1.2rem}.player-counter{font-size:1.8rem}}.debug-info{background:#ff98001a;border:1px solid rgba(255,152,0,.3);border-radius:8px;padding:12px;margin:12px 0;font-family:Courier New,monospace;font-size:.85rem}.debug-info h4{margin:0 0 8px;color:#ff9800;font-size:.9rem}.debug-info pre{margin:0;overflow-x:auto;background:#0000004d;padding:8px;border-radius:4px;color:#fff;white-space:pre-wrap;word-break:break-word}.dictionary-debug{background:#2196f31a;border:1px solid rgba(33,150,243,.3)}.dictionary-debug h4{color:#2196f3}.validation-debug{background:#9c27b01a;border:1px solid rgba(156,39,176,.3)}.validation-debug h4{color:#9c27b0}@media (max-width: 768px){.debug-info{font-size:.8rem}.debug-info pre{font-size:.75rem}}.waiting-area{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#fff;min-height:300px}.waiting-area h3{margin-bottom:16px;font-size:1.5rem;font-weight:600}.loading-spinner{font-size:3rem;animation:spin 2s linear infinite;margin:16px 0}.notifications-container{position:fixed;top:24px;right:24px;z-index:1000;display:flex;flex-direction:column;gap:12px}@media (max-width: 768px){.notifications-container{top:16px;right:16px;left:16px}}.notification{padding:16px 20px;border-radius:12px;box-shadow:0 6px 20px #0000004d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-width:400px;display:flex;justify-content:space-between;align-items:center;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.notification-content{flex:1;font-weight:500;line-height:1.4}.notification-close{background:none;border:none;color:inherit;font-size:1.2rem;cursor:pointer;opacity:.7;transition:opacity .2s;padding:0;margin-left:16px}.notification-close:hover{opacity:1}@media (max-width: 768px){.notification{max-width:none}.waiting-area{min-height:200px}.waiting-area h3{font-size:1.3rem}.loading-spinner{font-size:2.5rem}}.language-action-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;max-width:800px;margin:0 auto}.language-action-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:15px;padding:20px;color:#fff;font-size:16px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #0003}.language-action-btn:hover{transform:translateY(-2px);box-shadow:0 6px 25px #0000004d}.language-action-btn.language-english{background:linear-gradient(135deg,#667eea,#764ba2)}.language-action-btn.language-japanese{background:linear-gradient(135deg,#f093fb,#f5576c)}.language-action-btn.language-chinese{background:linear-gradient(135deg,#4facfe,#00f2fe)}.lang-btn-content{display:flex;flex-direction:column;gap:8px}.lang-btn-header{display:flex;align-items:center;gap:12px;font-weight:700;font-size:18px}.lang-flag{font-size:24px}.lang-name{color:#fff}.lang-btn-action{font-size:16px;color:#ffffffe6;font-weight:500}.lang-examples-mini{font-size:14px;color:#ffffffb3;font-style:italic}.start-section h3{text-align:center;color:#333;margin-bottom:20px}.lobby-header{padding:20px 0;text-align:center;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);border-radius:20px;margin-bottom:20px}.header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding:0 20px}.lobby-header h1{font-size:2.2rem;margin:0;color:#2c3e50;font-weight:700}.lobby-subtitle{font-size:1rem;color:#7f8c8d;margin:0}.player-info{display:flex;align-items:center;gap:8px;font-size:.9rem;color:#34495e}.edit-name-btn{background:none;border:none;cursor:pointer;font-size:1rem;padding:4px;border-radius:4px;transition:background-color .2s}.mode-toggle-section{margin-top:15px;margin-bottom:25px}.mode-toggle-section h3{margin-bottom:15px}@media (max-width: 768px){.language-action-buttons{grid-template-columns:1fr;max-width:400px}.language-action-btn{padding:18px}.lang-btn-header{font-size:16px}.lang-btn-action{font-size:14px}.header-top{flex-direction:column;gap:10px}.lobby-header h1{font-size:1.8rem}}.main-lobby{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;max-width:1200px;margin:0 auto;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,#81c784,#66bb6a,#4caf50);width:100%}.lobby-header{margin-bottom:40px;width:100%;max-width:1000px}.header-top{display:flex;justify-content:space-between;align-items:center;padding:20px 0;border-bottom:2px solid rgba(255,255,255,.3)}.header-top h1{margin:0;font-size:2.5em;font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3)}.player-info{display:flex;align-items:center;gap:10px;font-weight:500;color:#fff}.edit-name-btn{background:#fff3;border:none;font-size:1.2em;cursor:pointer;padding:5px;border-radius:4px;transition:background-color .2s;color:#fff}.edit-name-btn:hover{background-color:#ffffff4d}.mode-selection-section{text-align:center;margin-bottom:40px;width:100%;max-width:1000px}.mode-selection-section h2{font-size:2.2em;margin-bottom:30px;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3)}.mode-selection-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;max-width:800px;margin:0 auto}.mode-selection-card{background:#fff;border:2px solid #e1e5e9;border-radius:16px;padding:30px;cursor:pointer;transition:all .3s ease;text-align:center;box-shadow:0 4px 12px #0000001a}.mode-selection-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px #00000026;border-color:#667eea}.mode-selection-card .mode-icon{font-size:4em;margin-bottom:15px}.mode-selection-card h3{font-size:1.8em;margin:0 0 10px;color:#333}.mode-selection-card p{font-size:1.1em;color:#666;margin:0 0 20px}.mode-features{display:flex;flex-direction:column;gap:8px;text-align:left}.mode-features span{font-size:.95em;color:#555;padding:4px 0}.game-type-selection-section{text-align:center;margin-bottom:40px;width:100%;max-width:900px}.game-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:30px;max-width:700px;margin:0 auto}.game-type-card{background:#fff;border:2px solid #e1e5e9;border-radius:16px;padding:30px;cursor:pointer;transition:all .3s ease;text-align:center;box-shadow:0 4px 12px #0000001a}.game-type-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px #00000026;border-color:#667eea}.game-type-icon{font-size:4em;margin-bottom:15px}.game-type-card h3{font-size:1.8em;margin:0 0 15px;color:#333}.game-type-card p{font-size:1.1em;color:#666;margin:5px 0;line-height:1.4}.language-selection-section{max-width:900px;margin:0 auto;width:100%}.selection-header{display:flex;align-items:center;gap:20px;margin-bottom:30px}.back-btn{background:#fff3;border:2px solid rgba(255,255,255,.3);border-radius:8px;padding:10px 15px;cursor:pointer;font-size:1em;transition:all .2s;color:#fff}.back-btn:hover{background:#ffffff4d;transform:translate(-2px)}.selection-header h2{margin:0;font-size:1.8em;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3)}.language-action-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.language-action-btn{background:#fff;border:2px solid #e1e5e9;border-radius:12px;padding:20px;cursor:pointer;transition:all .3s ease;text-align:left;box-shadow:0 2px 8px #0000001a}.language-action-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000026}.language-action-btn.language-english:hover{border-color:#4285f4}.language-action-btn.language-japanese:hover{border-color:#ea4335}.language-action-btn.language-chinese:hover{border-color:#fbbc05}.lang-btn-content{display:flex;flex-direction:column;gap:12px}.lang-btn-header{display:flex;align-items:center;gap:12px}.lang-flag{font-size:2em}.lang-name{font-size:1.4em;font-weight:700;color:#333}.lang-description{font-size:1em;color:#666;margin:4px 0}.lang-examples{font-size:.9em;color:#888;font-style:italic}.lang-btn-action{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:12px 16px;border-radius:8px;font-weight:700;text-align:center;margin-top:8px}@media (max-width: 768px){.main-lobby{padding:15px;justify-content:flex-start;min-height:100vh}.header-top h1{font-size:2em}.mode-selection-grid{grid-template-columns:1fr;gap:20px}.mode-selection-card{padding:20px}.language-action-buttons{grid-template-columns:1fr}.selection-header{flex-direction:column;align-items:flex-start;gap:15px}}.main-menu{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#81c784,#66bb6a,#4caf50)}.menu-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2rem;max-width:800px;margin:0 auto}.menu-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin-bottom:3rem;width:100%}.menu-card{background:#fffffff2;padding:2rem;border-radius:16px;box-shadow:0 8px 32px #0000001a;cursor:pointer;transition:all .3s ease;text-align:center;border:2px solid transparent}.menu-card:hover{transform:translateY(-5px);box-shadow:0 12px 48px #00000026;border-color:#4caf504d}.menu-icon{font-size:3rem;margin-bottom:1rem}.menu-card h3{color:#333;margin-bottom:1rem;font-size:1.5rem}.menu-card p{color:#666;font-size:1rem;line-height:1.4}.game-info{background:#ffffffe6;padding:2rem;border-radius:16px;box-shadow:0 8px 32px #0000001a;width:100%;text-align:center}.game-info h4{color:#333;margin-bottom:1rem;font-size:1.3rem}.game-info ul{list-style:none;padding:0;text-align:left;max-width:400px;margin:0 auto}.game-info li{padding:.5rem 0;color:#555;font-size:1rem}.back-btn{background:#fff3;border:2px solid rgba(255,255,255,.3);color:#fff;padding:.5rem 1rem;border-radius:8px;cursor:pointer;transition:all .2s;font-size:1rem;font-weight:500}.back-btn:hover{background:#ffffff4d;border-color:#ffffff80;transform:translateY(-1px)}.single-player-container{min-height:100vh;background:linear-gradient(135deg,#74b9ff,#0984e3);padding:0}.single-player-header{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;color:#fff}.single-player-header h2{margin:0;font-size:1.5rem}.single-player-game{min-height:100vh;background:#fffffff2;display:flex;flex-direction:column}.single-player-game .game-header{background:linear-gradient(45deg,#74b9ff,#0984e3);color:#fff;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;min-height:70px}.single-player-game .game-header h1{font-size:1.5rem;margin:0}.language-indicator{font-size:1.5rem}.game-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;padding:1rem 2rem;background:#f8f9facc}.stat-item{background:#fff;padding:1rem;border-radius:8px;text-align:center;box-shadow:0 2px 8px #0000001a}.stat-label{font-size:.9rem;color:#666;margin-bottom:.5rem}.stat-value{font-size:1.5rem;font-weight:700;color:#333}.feedback{margin:1rem 2rem;padding:1rem;border-radius:8px;text-align:center;font-weight:700}.feedback.success{background:#4caf501a;color:#4caf50;border:2px solid rgba(76,175,80,.3)}.feedback.error{background:#f443361a;color:#f44336;border:2px solid rgba(244,67,54,.3)}.feedback.info{background:#2196f31a;color:#2196f3;border:2px solid rgba(33,150,243,.3)}.game-content{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:2rem;padding:2rem}.problem-section{background:#fff;padding:2rem;border-radius:16px;box-shadow:0 4px 20px #0000001a}.problem-info h3{color:#333;margin-bottom:1.5rem;text-align:center}.sets-info{display:flex;flex-direction:column;gap:1rem}.set-item{padding:1rem;border-radius:8px;border-left:4px solid}.set-item.set-a{background:#ff63841a;border-left-color:#ff6384}.set-item.set-b{background:#36a2eb1a;border-left-color:#36a2eb}.set-item.set-c{background:#ffcd561a;border-left-color:#ffcd56}.interaction-section{background:#fff;padding:2rem;border-radius:16px;box-shadow:0 4px 20px #0000001a}.subset-selector h4{color:#333;margin-bottom:1rem;text-align:center}.subset-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:1.5rem}.subset-btn{background:#f8f9facc;border:2px solid rgba(0,0,0,.1);border-radius:8px;padding:1rem;cursor:pointer;transition:all .2s;text-align:center;min-height:80px;display:flex;flex-direction:column;justify-content:center}.subset-btn:hover:not(:disabled){background:#677eea1a;border-color:#677eea4d;transform:translateY(-2px)}.subset-btn.selected{background:#677eea33;border-color:#667eea;color:#333}.subset-btn.answered{background:#9e9e9e33;border-color:#9e9e9e;cursor:not-allowed}.subset-btn:disabled{opacity:.6;cursor:not-allowed}.subset-label{font-size:1.2rem;font-weight:700;margin-bottom:.25rem}.subset-name{font-size:.85rem;opacity:.8}.answer-result{margin-top:.5rem;font-size:.8rem;padding:.25rem;border-radius:4px}.answer-result.correct{background:#4caf5033;color:#4caf50}.answer-result.incorrect{background:#f4433633;color:#f44336}.subset-description{background:#f8f9facc;padding:1rem;border-radius:8px;margin-bottom:1.5rem}.answer-input{margin-bottom:1.5rem}.input-group{display:flex;gap:1rem;margin-bottom:.5rem}.answer-field{flex:1;padding:.75rem;border:2px solid #ddd;border-radius:8px;font-size:1rem}.answer-field:focus{outline:none;border-color:#667eea}.submit-btn{background:linear-gradient(45deg,#4caf50,#66bb6a);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;transition:all .2s;font-weight:700}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #4caf5066}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.answer-hint{font-size:.9rem;color:#666;text-align:center}.game-end{text-align:center;padding:2rem}.game-end h2{color:#333;margin-bottom:1.5rem}.final-stats{background:#f8f9facc;padding:1.5rem;border-radius:12px;margin-bottom:1.5rem}.stat-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid rgba(0,0,0,.1)}.stat-row:last-child{border-bottom:none}.score-value{font-weight:700;color:#ff9800}.game-end-actions{display:flex;gap:1rem;justify-content:center}.action-btn{padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;transition:all .2s;font-weight:700;border:none;display:flex;align-items:center;gap:.5rem}.action-btn.primary{background:linear-gradient(45deg,#4caf50,#66bb6a);color:#fff}.action-btn.primary:hover{transform:translateY(-2px);box-shadow:0 4px 15px #4caf5066}.action-btn.secondary{background:#9e9e9ecc;color:#fff}.action-btn.secondary:hover{background:#616161cc;transform:translateY(-2px)}@media (max-width: 768px){.menu-options{grid-template-columns:1fr;gap:1.5rem}.menu-card{padding:1.5rem}.menu-icon{font-size:2.5rem}.single-player-header{flex-direction:column;gap:1rem;text-align:center}.game-content{grid-template-columns:1fr;gap:1rem;padding:1rem}.game-stats{grid-template-columns:1fr;padding:1rem}.subset-buttons{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.input-group,.game-end-actions{flex-direction:column}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#81c784,#66bb6a,#4caf50);min-height:100vh;color:#333;margin:0;padding:0;display:flex;justify-content:center;align-items:center}.App{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;width:100dvw;overflow-x:hidden}.app-container{width:100%;max-width:1400px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:0;position:relative}.app-container:has(.game-room),.app-container:has(.single-player-game){max-width:none;width:100%}.app-header{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1rem 0;box-shadow:0 2px 20px #0000001a;display:flex;justify-content:center;align-items:center;min-height:80px;height:80px;position:relative;z-index:100;width:100dvw}.app-header-content{width:100%;max-width:1200px;display:flex;justify-content:space-between;align-items:center;padding:0 2rem}.app-header h1{color:#333;font-size:1.8rem;font-weight:700}.player-info{display:flex;align-items:center;gap:.5rem}.edit-name-btn{background:none;border:none;cursor:pointer;font-size:1rem;padding:.25rem;border-radius:4px;transition:background-color .2s}.edit-name-btn:hover{background-color:#0000001a}.app-main{flex:1;padding:0;overflow-y:auto;min-height:calc(100vh - 80px);position:relative;width:100dvw;display:flex;justify-content:center;align-items:flex-start}.app-main.no-header{min-height:100vh;padding-top:0}.room-list-container{width:100dvw;display:flex;justify-content:center;align-items:flex-start;min-height:calc(100vh - 80px);padding:2rem}.app-main.no-header .room-list-container{min-height:100vh}.room-list{width:100%;max-width:1200px;margin:0;padding:0;background:transparent;border-radius:0;box-shadow:none;min-height:auto}.how-to-play-section{background:#fffffff2;padding:1.5rem;border-radius:16px;box-shadow:0 8px 32px #0000001a;border:2px solid rgba(139,195,74,.2);margin-bottom:0}.toggle-how-to-play-btn{background:linear-gradient(45deg,#4caf50,#66bb6a);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #4caf504d;width:100%}.toggle-how-to-play-btn:hover{transform:translateY(-1px);box-shadow:0 4px 15px #4caf5066;background:linear-gradient(45deg,#66bb6a,#81c784)}.error-banner{background:#f443361a;border:1px solid rgba(244,67,54,.3);border-radius:8px;padding:1rem;margin:1rem 0;display:flex;justify-content:space-between;align-items:center;color:#d32f2f}.error-message{background:#f443361a;color:#d32f2f;padding:.75rem;border-radius:8px;margin:.5rem 0;border:1px solid rgba(244,67,54,.3)}.error-hint{font-style:italic;color:#666;font-size:.9rem}.retry-btn{background:#f44336;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem}.retry-btn:hover{background:#d32f2f}.create-room-section{margin-bottom:3rem;padding:2rem;background:#fffffff2;border-radius:16px;box-shadow:0 8px 32px #0000001a;border:2px solid rgba(76,175,80,.2)}.create-room-section h3{margin-bottom:1rem;color:#333}.create-room-form{display:flex;gap:1rem;align-items:center}.create-room-form input{flex:1;padding:.75rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;transition:border-color .3s}.create-room-form input:focus{outline:none;border-color:#4caf50}.create-btn{background:linear-gradient(45deg,#4caf50,#66bb6a);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.create-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #4caf5066}.create-btn:disabled{opacity:.6;cursor:not-allowed}.rooms-section{background:#fffffff2;padding:2rem;border-radius:16px;box-shadow:0 8px 32px #0000001a;margin-bottom:2rem}.rooms-section h3{margin-bottom:1rem;color:#333}.no-rooms{text-align:center;padding:2rem;color:#666}.rooms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.room-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 4px 15px #0000001a;transition:transform .2s,box-shadow .2s;border:2px solid transparent}.room-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000026}.room-card.room-english{border-left:6px solid #2196f3;background:linear-gradient(135deg,#2196f31a,#2196f308);border:2px solid rgba(33,150,243,.2)}.room-card.room-english:hover{border-color:#2196f3;box-shadow:0 8px 25px #2196f34d;background:#fff}.room-card.room-japanese{border-left:6px solid #4caf50;background:linear-gradient(135deg,#4caf501a,#4caf5008);border:2px solid rgba(76,175,80,.2)}.room-card.room-japanese:hover{border-color:#4caf50;box-shadow:0 8px 25px #4caf504d;background:#fff}.room-card.room-chinese{border-left:6px solid #f44336;background:linear-gradient(135deg,#f443361a,#f4433608);border:2px solid rgba(244,67,54,.2)}.room-card.room-chinese:hover{border-color:#f44336;box-shadow:0 8px 25px #f443364d;background:#fff}.room-card.room-default{border-left:6px solid #9e9e9e;background:linear-gradient(135deg,#9e9e9e26,#9e9e9e0d);border:2px solid rgba(158,158,158,.2)}.room-card.room-default:hover{border-color:#9e9e9e;box-shadow:0 8px 25px #9e9e9e4d;background:#fff}.room-name{font-size:1.2rem;margin-bottom:.5rem;color:#333}.room-stats{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem;font-size:.9rem;color:#666}.room-language{font-weight:600;color:#4caf50;font-size:.85rem}.join-btn{width:100%;background:linear-gradient(45deg,#28a745,#20c997);color:#fff;border:none;padding:.75rem;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s}.join-btn:hover:not(.disabled){transform:translateY(-1px);box-shadow:0 4px 12px #28a74566}.join-btn.disabled{background:#ccc;cursor:not-allowed}.game-info,.how-to-play-section .game-info{margin-top:1rem;padding:1.5rem;background:#8bc34a1a;border-radius:12px;border:none;box-shadow:none}.game-info h3{margin-bottom:1rem;color:#333}.game-info ul{list-style:none;padding:0}.game-info li{padding:.5rem 0;color:#555}.game-room{max-width:1400px;width:100dvw;margin:0;background:#fffffff2;border-radius:16px;overflow:hidden;box-shadow:0 8px 32px #0000001a;min-height:calc(100vh - 80px);display:flex;flex-direction:column;position:relative}.app-main.no-header .game-room{min-height:100vh;border-radius:0}.game-header{background:linear-gradient(45deg,#4caf50,#66bb6a);color:#fff;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;min-height:70px;height:70px;flex-shrink:0}.game-content{display:flex;flex:1;min-height:calc(100vh - 120px);overflow:hidden}.room-info{display:flex;align-items:center;gap:1rem}.connection-status{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.status-dot{width:8px;height:8px;border-radius:50%}.reconnect-btn{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);padding:.25rem .5rem;border-radius:4px;cursor:pointer;font-size:.8rem;margin-left:.5rem}.leave-btn{background:#fff3;color:#fff;border:2px solid rgba(255,255,255,.3);padding:.5rem 1rem;border-radius:8px;cursor:pointer;transition:all .2s}.leave-btn:hover{background:#ffffff4d;border-color:#ffffff80}.game-sidebar{width:300px;min-width:300px;max-width:300px;background:#f8f9facc;padding:1.5rem;border-right:2px solid rgba(0,0,0,.1);overflow-y:auto;flex-shrink:0}.game-main{flex:1;padding:2rem;overflow-y:auto;min-width:0}.players-panel h3{margin-bottom:1rem;color:#333}.player-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;margin-bottom:.5rem;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.player-item.current-player{border:2px solid #4caf50;background:#4caf501a}.game-status{text-align:center;padding:1.5rem;background:#ffc1071a;border-radius:8px;margin-top:1rem}.auto-start-countdown{background:linear-gradient(135deg,#4caf5026,#8bc34a26)!important;border:2px solid rgba(76,175,80,.4)!important;animation:pulse-glow 2s ease-in-out infinite}@keyframes pulse-glow{0%,to{box-shadow:0 0 10px #4caf504d;border-color:#4caf504d}50%{box-shadow:0 0 20px #4caf5080;border-color:#4caf5080}}.countdown-display{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:1rem 0}.countdown-number{font-size:3rem;font-weight:700;color:#2e7d32;background:#4caf501a;border-radius:50%;width:4rem;height:4rem;display:flex;align-items:center;justify-content:center;border:3px solid rgba(76,175,80,.3);animation:countdown-bounce 1s ease-in-out}@keyframes countdown-bounce{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.countdown-text{font-size:1.2rem;color:#2e7d32;font-weight:600}.player-counter{display:flex;align-items:center;justify-content:center;gap:.25rem;margin:1rem 0;font-size:2rem;font-weight:700}.current-players{color:#4caf50}.separator{color:#666}.max-players{color:#4caf50}.room-link{margin-top:.5rem;padding:1rem;background:linear-gradient(135deg,#4caf501a,#8bc34a1a);border:2px solid rgba(76,175,80,.2);border-radius:8px;font-family:monospace;font-size:1rem;font-weight:600;color:#4caf50}.room-link strong{color:#333}.host-info{font-size:.9rem;color:#666;margin-top:.5rem}.start-game-btn{width:100%;background:linear-gradient(45deg,#4caf50,#66bb6a);color:#fff;border:none;padding:1rem;border-radius:8px;font-size:1.1rem;cursor:pointer;transition:all .2s;margin-top:1rem}.start-game-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #4caf5066}.start-now-btn{background:linear-gradient(45deg,#ff9800,#ffa726);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;margin-top:1rem;box-shadow:0 2px 8px #ff98004d}.start-now-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #ff980080;background:linear-gradient(45deg,#ffb74d,#ffcc02)}.waiting-area{text-align:center;padding:4rem 2rem;color:#2e7d32}.loading-spinner{font-size:2rem;margin:1rem 0;animation:spin 2s linear infinite;color:#4caf50}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.problem-preview{margin-top:1rem;padding:1rem;background:#677eea1a;border-radius:8px;font-size:.9rem}.venn-container{max-width:1200px;width:100%;margin:0 auto;padding:0 1rem}.problem-header{text-align:center;margin-bottom:1rem}.set-descriptions{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap}.set-description{padding:.75rem 1rem;border-radius:8px;font-size:.9rem;min-width:200px;text-align:center}.set-description.set-a{background:#ff63841a;border:2px solid rgba(255,99,132,.3)}.set-description.set-b{background:#36a2eb1a;border:2px solid rgba(54,162,235,.3)}.set-description.set-c{background:#ffcd561a;border:2px solid rgba(255,205,86,.3)}.diagram-area{margin:1rem 0;display:flex;justify-content:center}.venn-diagram{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 20px #0000001a}.venn-svg{width:100%;height:auto;max-width:600px;min-width:500px}.subset-area{cursor:pointer;transition:all .3s ease}.subset-area.clickable:hover circle{fill:#677eea33;stroke:#667eea;stroke-width:2;transition:all .2s ease}.subset-area.answered{pointer-events:none!important;animation:answerComplete .6s ease-out}.subset-area.answered circle{fill:#8888884d!important;stroke:#888!important;stroke-width:2!important;transition:all .4s ease!important}.subset-area.force-update{animation:forceUpdate .1s ease}@keyframes forceUpdate{0%{opacity:.8}to{opacity:1}}@keyframes answerComplete{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.subset-area.disabled{pointer-events:none;opacity:.5;transition:opacity .3s ease}.subset-label{font-size:14px;font-weight:700;fill:#333;pointer-events:none;transition:all .3s ease}.subset-label.answered{fill:#888!important;font-weight:600;animation:textFadeIn .5s ease-in}@keyframes textFadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.set-label{font-size:18px;font-weight:700;fill:#333}.subset-definitions{background:#f8f9facc;padding:1.5rem;border-radius:12px;margin:1rem 0}.definitions-toggle{text-align:center;margin:1rem 0}.toggle-definitions-btn{background:linear-gradient(45deg,#4caf50,#66bb6a);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #4caf504d}.toggle-definitions-btn:hover{transform:translateY(-1px);box-shadow:0 4px 15px #4caf5066;background:linear-gradient(45deg,#66bb6a,#81c784)}.subset-definitions h4{margin-bottom:1rem;color:#333}.subset-definitions ul{list-style:none;padding:0}.subset-definitions li{padding:.5rem 0;border-bottom:1px solid rgba(0,0,0,.1)}.subset-definitions li.completed{background:#28a7451a;padding:.5rem;border-radius:4px;border-bottom:none;margin-bottom:.25rem}.answer-preview{color:#28a745;font-style:italic}.answer-form-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.answer-form{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 8px 32px #0000004d;max-width:400px;width:90%}.answer-form h4{margin-bottom:1rem;color:#333;text-align:center}.answer-form input{width:100%;padding:.75rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;margin-bottom:1rem}.answer-form input:focus{outline:none;border-color:#667eea}.form-actions{display:flex;gap:1rem}.form-actions button{flex:1;padding:.75rem;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s}.form-actions button[type=submit]{background:linear-gradient(45deg,#28a745,#20c997);color:#fff}.form-actions button[type=submit]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #28a74566}.form-actions button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.form-actions button[type=button]{background:#6c757d;color:#fff}.form-actions button[type=button]:hover{background:#5a6268}.game-instructions{text-align:center;padding:1rem;background:#4caf501a;border-radius:8px;color:#333;font-size:.95rem}.room-list .loading-container{width:100%;max-width:none;min-height:60vh;display:flex;align-items:center;justify-content:center;background:#fffffff2;border-radius:16px;box-shadow:0 8px 32px #0000001a;margin:0;padding:2rem}.loading-container{width:100dvw;max-width:1200px;min-height:60vh;display:flex;align-items:center;justify-content:center;background:#fffffff2;border-radius:16px;box-shadow:0 8px 32px #0000001a;margin:2rem}.loading-center{text-align:center;padding:2rem}.loading-emoji{font-size:4rem;margin-bottom:1rem;animation:loading-spin 2s linear infinite;color:#4caf50;filter:hue-rotate(20deg)}@keyframes loading-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{font-size:1.2rem;color:#2e7d32;margin-bottom:1rem;font-weight:600}.loading-hint{font-size:.9rem;color:#4caf50;font-style:italic;margin-top:.5rem}.loading{text-align:center;padding:4rem 2rem;color:#2e7d32}.loading-content{text-align:center;padding:2rem;color:#2e7d32}.connection-error-details{background:#f443361a;border:2px solid rgba(244,67,54,.3);border-radius:12px;padding:2rem;margin:1rem 0;text-align:center}.connection-error-details h4{color:#d32f2f;margin-bottom:1rem}.troubleshoot-list{text-align:left;list-style:none;padding:0;margin:1rem 0}.troubleshoot-list li{padding:.5rem 0;color:#555}.troubleshoot-list code{background:#0000001a;padding:.25rem .5rem;border-radius:4px;font-family:monospace;font-size:.9rem}.ws-url-debug{margin-top:1rem;padding:1rem;background:#0000000d;border-radius:4px;font-family:monospace;word-break:break-all}.notifications-container{position:fixed;top:20px;right:20px;z-index:1000;display:flex;flex-direction:column;gap:10px;max-width:400px}.notification{display:flex;align-items:flex-start;justify-content:space-between;padding:12px 16px;border-radius:8px;box-shadow:0 4px 12px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:slideInRight .3s ease-out;max-width:100%;word-wrap:break-word}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.notification-success{background:linear-gradient(135deg,#28a745e6,#20c997e6);border:1px solid rgba(40,167,69,.6);color:#fff}.notification-info{background:linear-gradient(135deg,#677eeae6,#764ba2e6);border:1px solid rgba(103,126,234,.6);color:#fff}.notification-content{flex:1;font-size:14px;line-height:1.4;font-weight:500}.notification-close{background:none;border:none;color:#fffc;font-size:18px;cursor:pointer;padding:0;margin-left:12px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s;flex-shrink:0}.notification-close:hover{background:#fff3;color:#fff}.game-end-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;justify-content:center;align-items:center;z-index:2000;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.game-end-modal{background:#fff;border-radius:16px;padding:2rem;max-width:500px;width:90%;box-shadow:0 8px 32px #0000004d;text-align:center;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.game-end-header h2{color:#333;margin-bottom:1.5rem;font-size:2rem}.winner-section{margin:2rem 0;padding:1.5rem;background:linear-gradient(135deg,#ffd7001a,#ffc1071a);border:2px solid rgba(255,193,7,.3);border-radius:12px}.winner-announcement h3{color:#333;margin-bottom:.5rem}.winner-name{font-size:1.8rem;font-weight:700;color:#ff6b35;margin-bottom:.5rem}.winner-score{font-size:1.2rem;color:#666;font-weight:600}.final-scores{margin:2rem 0;text-align:left}.final-scores h4{text-align:center;color:#333;margin-bottom:1rem}.scores-list{display:flex;flex-direction:column;gap:.5rem}.score-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#f8f9facc;border-radius:8px;transition:all .2s}.score-item.first-place{background:linear-gradient(135deg,#ffd70033,#ffc10733);border:2px solid rgba(255,193,7,.4);font-weight:700}.score-item.your-score{background:linear-gradient(135deg,#677eea1a,#764ba21a);border:2px solid rgba(103,126,234,.3)}.score-item .player-name{flex:1;text-align:left;margin-left:1rem}.score-item .score{font-weight:700;color:#333}.score-item .crown{margin-left:.5rem;font-size:1.2rem}.game-end-actions{display:flex;gap:1rem;margin:2rem 0}.play-again-btn{flex:1;background:linear-gradient(45deg,#28a745,#20c997);color:#fff;border:none;padding:1rem;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .2s}.play-again-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #28a74566}.go-to-top-btn{flex:1;background:linear-gradient(45deg,#6c757d,#495057);color:#fff;border:none;padding:1rem;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .2s}.go-to-top-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #6c757d66}.game-end-stats{color:#666;font-style:italic}.game-end-stats small{font-size:.9rem;color:#888}.countdown-display{background:linear-gradient(135deg,#4caf501a,#8bc34a1a)!important;border:3px solid rgba(76,175,80,.4)!important;animation:pulse-countdown 1.5s ease-in-out infinite}@keyframes pulse-countdown{0%,to{transform:scale(1);box-shadow:0 0 15px #4caf504d}50%{transform:scale(1.02);box-shadow:0 0 25px #4caf5080}}.countdown-circle{display:flex;align-items:center;justify-content:center;margin:1.5rem 0}.countdown-circle .countdown-number{font-size:4rem;font-weight:700;color:#2e7d32;background:linear-gradient(135deg,#4caf5033,#8bc34a33);border-radius:50%;width:6rem;height:6rem;display:flex;align-items:center;justify-content:center;border:4px solid rgba(76,175,80,.4);box-shadow:0 0 20px #4caf504d;animation:countdown-pulse 1s ease-in-out;text-shadow:0 2px 4px rgba(0,0,0,.2)}@keyframes countdown-pulse{0%{transform:scale(1);box-shadow:0 0 20px #4caf504d}50%{transform:scale(1.1);box-shadow:0 0 30px #4caf5080}to{transform:scale(1);box-shadow:0 0 20px #4caf504d}}.game-finished{background:linear-gradient(135deg,#ff98001a,#ffc1071a)!important;border:3px solid rgba(255,193,7,.4)!important;animation:victory-glow 2s ease-in-out infinite}@keyframes victory-glow{0%,to{box-shadow:0 0 15px #ffc1074d}50%{box-shadow:0 0 25px #ffc10780}}.winner-result{padding:1.5rem;border-radius:12px;margin:1rem 0;text-align:center}.winner-result.you-won{background:linear-gradient(135deg,#4caf5033,#8bc34a33);border:3px solid rgba(76,175,80,.4);animation:victory-celebration .8s ease-out}.winner-result.you-lost{background:linear-gradient(135deg,#9e9e9e33,#bdbdbd33);border:3px solid rgba(158,158,158,.4)}@keyframes victory-celebration{0%{transform:scale(1)}25%{transform:scale(1.05)}50%{transform:scale(1.02)}75%{transform:scale(1.05)}to{transform:scale(1)}}.tie-result{background:linear-gradient(135deg,#677eea33,#764ba233);border:3px solid rgba(103,126,234,.4);padding:1.5rem;border-radius:12px;margin:1rem 0;text-align:center}.winner-result h4,.tie-result h4{font-size:1.8rem;margin-bottom:.5rem;font-weight:700}.winner-result.you-won h4{color:#2e7d32;text-shadow:0 2px 4px rgba(46,125,50,.3)}.winner-result.you-lost h4{color:#616161}.tie-result h4{color:#667eea}.final-scores{margin-top:1.5rem;padding:1rem;background:#f8f9facc;border-radius:8px}.final-scores h5{color:#333;margin-bottom:1rem;font-size:1.2rem}.score-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem;margin:.5rem 0;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;transition:all .2s}.score-item.you{background:linear-gradient(135deg,#677eea1a,#764ba21a);border:2px solid rgba(103,126,234,.3);font-weight:700}.score-item .rank{font-weight:700;color:#666;min-width:30px}.score-item .name{flex:1;text-align:left;margin:0 1rem;color:#333}.score-item .score{font-weight:700;color:#333;font-size:1.1rem}.play-again-btn{background:linear-gradient(45deg,#4caf50,#8bc34a)!important;color:#fff;border:none;padding:1rem 2rem;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #4caf504d}.play-again-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #4caf5066;background:linear-gradient(45deg,#66bb6a,#9ccc65)!important}@media (max-width: 480px){.game-end-modal{padding:1.5rem;margin:1rem}.game-end-header h2,.winner-name{font-size:1.5rem}.game-end-actions{flex-direction:column}}@media (max-width: 768px){.app-header{padding:1rem 0;flex-direction:column;gap:1rem;height:auto;min-height:80px}.app-header-content{flex-direction:column;gap:1rem;padding:0 1rem}.app-main,.app-main.no-header{padding:0}.room-list-container{padding:1rem;min-height:100vh;align-items:stretch}.room-list{margin:0;padding:0;max-width:none}.room-list-header,.create-room-section,.rooms-section,.game-info,.how-to-play-section{margin-bottom:1rem;padding:1rem;border-radius:12px}.game-room,.loading-container{margin:0;border-radius:0;min-height:100vh}.game-content{flex-direction:column;min-height:calc(100vh - 70px)}.game-sidebar{width:100%;min-width:100%;max-width:100%;border-right:none;border-bottom:2px solid rgba(0,0,0,.1)}.set-descriptions{flex-direction:column;gap:1rem}.rooms-grid{grid-template-columns:1fr}.create-room-form{flex-direction:column}.venn-svg{max-width:450px;min-width:350px}.venn-container{padding:0 .5rem}.error-banner{flex-direction:column;gap:.5rem;align-items:stretch}}.language-selector-container{width:100%;max-width:1000px;margin:0 auto;padding:2rem;min-height:calc(100vh - 80px);display:flex;align-items:center;justify-content:center}.language-selector{width:100%;background:#fffffff2;padding:3rem;border-radius:20px;box-shadow:0 8px 32px #0000001a;text-align:center}.selector-header{margin-bottom:3rem}.selector-header h2{color:#2e7d32;margin-bottom:1rem;font-size:2.2rem}.selector-header p{color:#666;font-size:1.2rem}.language-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-bottom:3rem}.language-card{background:#fff;padding:2rem;border-radius:16px;box-shadow:0 4px 20px #0000001a;cursor:pointer;transition:all .3s ease;border:2px solid transparent}.language-card:hover{transform:translateY(-5px);box-shadow:0 8px 30px #00000026;border-color:#4caf504d}.language-card h3{color:#333;margin-bottom:1rem;font-size:1.5rem}.mode-description{background:#4caf501a;padding:2rem;border-radius:16px;border:2px solid rgba(76,175,80,.2);text-align:left}.mode-description h4{color:#2e7d32;margin-bottom:1rem;font-size:1.3rem;text-align:center}.mode-description ul{list-style:none;padding:0;max-width:400px;margin:0 auto}.mode-description li{padding:.5rem 0;color:#555;font-size:1rem}@media (max-width: 768px){.language-selector-container{padding:1rem}.language-selector{padding:2rem}.language-options{grid-template-columns:1fr;gap:1.5rem}.selector-header h2{font-size:1.8rem}}.main-lobby{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#81c784,#66bb6a,#4caf50)}.lobby-header{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:2rem;text-align:center;box-shadow:0 2px 20px #0000001a}.lobby-header h1{color:#2e7d32;font-size:3rem;margin-bottom:.5rem}.lobby-subtitle{color:#666;font-size:1.3rem;margin-bottom:2rem}.player-section{display:flex;justify-content:center;align-items:center}.lobby-content{flex:1;padding:3rem 2rem;max-width:1200px;margin:0 auto;width:100%}.mode-toggle-section{margin-bottom:3rem}.mode-toggle-section h3{color:#fff;text-align:center;margin-bottom:2rem;font-size:1.8rem;text-shadow:0 2px 4px rgba(0,0,0,.3)}.mode-toggle{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:800px;margin:0 auto}.mode-toggle-btn{background:#ffffffe6;border:3px solid transparent;border-radius:16px;padding:2rem;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:1.5rem;text-align:left}.mode-toggle-btn:hover{transform:translateY(-3px);box-shadow:0 8px 25px #00000026;background:#fff}.mode-toggle-btn.active{background:#fff;border-color:#4caf50;transform:translateY(-3px);box-shadow:0 8px 25px #4caf504d}.mode-icon{font-size:3rem;flex-shrink:0}.mode-text{display:flex;flex-direction:column;gap:.5rem}.mode-text strong{color:#333;font-size:1.5rem;font-weight:700}.mode-text span{color:#666;font-size:1rem}.language-section{margin-bottom:3rem}.language-section h3{color:#fff;text-align:center;margin-bottom:2rem;font-size:1.8rem;text-shadow:0 2px 4px rgba(0,0,0,.3)}.language-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;max-width:1000px;margin:0 auto}.language-card{background:#ffffffe6;border:3px solid transparent;border-radius:16px;padding:2rem;cursor:pointer;transition:all .3s ease;text-align:center}.language-card:hover{transform:translateY(-3px);box-shadow:0 8px 25px #00000026;background:#fff}.language-card.selected{background:#fff;transform:translateY(-3px);box-shadow:0 8px 25px #4caf504d}.language-card.language-english{border-left:6px solid #2196f3;background:linear-gradient(135deg,#2196f31a,#ffffffe6)}.language-card.language-english:hover{border-color:#2196f3;box-shadow:0 8px 25px #2196f34d}.language-card.language-english.selected{border-color:#2196f3;box-shadow:0 8px 25px #2196f366;background:linear-gradient(135deg,#2196f326,#fff)}.language-card.language-japanese{border-left:6px solid #4caf50;background:linear-gradient(135deg,#4caf501a,#ffffffe6)}.language-card.language-japanese:hover{border-color:#4caf50;box-shadow:0 8px 25px #4caf504d}.language-card.language-japanese.selected{border-color:#4caf50;box-shadow:0 8px 25px #4caf5066;background:linear-gradient(135deg,#4caf5026,#fff)}.language-card.language-chinese{border-left:6px solid #f44336;background:linear-gradient(135deg,#f443361a,#ffffffe6)}.language-card.language-chinese:hover{border-color:#f44336;box-shadow:0 8px 25px #f443364d}.language-card.language-chinese.selected{border-color:#f44336;box-shadow:0 8px 25px #f4433666;background:linear-gradient(135deg,#f4433626,#fff)}.language-flag{font-size:3rem;margin-bottom:1rem}.language-card h4{color:#333;margin-bottom:1rem;font-size:1.5rem}.language-description{color:#666;margin-bottom:1rem;font-size:1rem;line-height:1.4}.language-examples{background:#f8f9facc;padding:.75rem;border-radius:8px;font-size:.9rem;color:#555}.game-description{margin-bottom:3rem}.game-description h3{color:#fff;text-align:center;margin-bottom:2rem;font-size:1.8rem;text-shadow:0 2px 4px rgba(0,0,0,.3)}.description-content{background:#fffffff2;border-radius:16px;padding:2rem;display:grid;grid-template-columns:1fr 1fr;gap:2rem;max-width:1000px;margin:0 auto}.description-column ul{list-style:none;padding:0;margin:0}.description-column li{padding:.75rem 0;color:#555;font-size:1.1rem;border-bottom:1px solid rgba(0,0,0,.1)}.description-column li:last-child{border-bottom:none}.game-features{display:flex;flex-direction:column;gap:1rem}.feature-item{display:flex;align-items:center;gap:1rem;padding:.75rem;background:#4caf501a;border-radius:8px;color:#333}.feature-icon{font-size:1.5rem;flex-shrink:0}.start-section{text-align:center}.start-game-btn{background:linear-gradient(45deg,#ff6b35,#f7931e);color:#fff;border:none;padding:1.5rem 3rem;border-radius:16px;font-size:1.3rem;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 20px #ff6b3566;display:flex;flex-direction:column;align-items:center;gap:.5rem;margin:0 auto}.start-game-btn:hover{transform:translateY(-3px);box-shadow:0 8px 30px #ff6b3580;background:linear-gradient(45deg,#ff8a65,#ffb74d)}.start-subtitle{font-size:.9rem;opacity:.9;font-weight:500}@media (max-width: 768px){.lobby-header{padding:1.5rem}.lobby-header h1{font-size:2.5rem}.lobby-content{padding:2rem 1rem}.mode-toggle{grid-template-columns:1fr;max-width:500px}.mode-toggle-btn{padding:1.5rem;gap:1rem}.mode-icon{font-size:2.5rem}.language-grid{grid-template-columns:1fr;max-width:500px}.description-content{grid-template-columns:1fr;gap:1.5rem}.start-game-btn{width:100%;max-width:400px}}@media (max-width: 480px){.lobby-header h1{font-size:2rem}.room-list-container{padding:.5rem;min-height:100vh;align-items:stretch}.room-list{padding:0;max-width:none}.room-list-header,.create-room-section,.rooms-section,.game-info,.how-to-play-section{margin-bottom:.5rem;padding:1rem;border-radius:8px}.game-room{min-height:100vh}.loading-container{min-height:100vh;margin:0;padding:1rem}.answer-form{padding:1rem;margin:.5rem;width:calc(100% - 1rem)}.connection-info{font-size:.8rem}.notifications-container{top:10px;right:10px;left:10px;max-width:none}.notification{padding:10px 12px;font-size:13px}.venn-container{padding:0 .25rem}}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
