@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;800&family=Noto+Sans+JP:wght@400;600;800&display=swap');
*{margin:0;padding:0;box-sizing:border-box}
:root{
--bg:#0a0e1a;--surface:#141929;--surface2:#1e2540;--text:#e8eaf6;--text2:#9ba3c7;
--accent:#6c63ff;--correct:#2ed573;--wrong:#ff4757;
--p1:#FF4757;--p2:#3742FA;--p3:#2ED573;--p4:#FFA502;--p5:#A55EEA;
--radius:12px;--glass:rgba(255,255,255,0.06);
}
html,body{width:100%;height:100%;overflow:hidden;font-family:'Inter','Noto Sans JP',sans-serif;background:var(--bg);color:var(--text)}
button{font-family:inherit;cursor:pointer;border:none;outline:none}
input{font-family:inherit;outline:none;border:none}

/* Screens */
.screen{display:none;width:100%;height:100%;position:absolute;top:0;left:0}
.screen.active{display:flex}

/* Title Screen */
#title-screen{flex-direction:column;align-items:center;justify-content:center;
background:linear-gradient(135deg,#0a0e1a 0%,#1a1040 50%,#0a0e1a 100%);gap:24px;text-align:center}
#title-screen h1{font-size:clamp(28px,5vw,56px);font-weight:800;
background:linear-gradient(135deg,#6c63ff,#ff6bcb,#ffa502);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
#title-screen h2{font-size:clamp(14px,2.5vw,22px);color:var(--text2);letter-spacing:2px}
.btn-primary{padding:16px 48px;font-size:18px;font-weight:700;color:#fff;border-radius:40px;
background:linear-gradient(135deg,#6c63ff,#a855f7);box-shadow:0 4px 24px rgba(108,99,255,0.4);
transition:transform .2s,box-shadow .2s}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 32px rgba(108,99,255,0.6)}
.btn-secondary{padding:12px 32px;font-size:15px;font-weight:600;color:var(--text);border-radius:30px;
background:var(--glass);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,0.1);transition:background .2s}
.btn-secondary:hover{background:rgba(255,255,255,0.12)}

/* Setup Screen */
#setup-screen{flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px;
background:linear-gradient(135deg,#0a0e1a,#121830)}
.setup-card{background:var(--surface);border-radius:var(--radius);padding:24px;width:min(500px,90%);
border:1px solid rgba(255,255,255,0.08)}
.setup-card h3{font-size:16px;margin-bottom:12px;color:var(--text2)}
.player-count-btns{display:flex;gap:8px}
.player-count-btns button{width:48px;height:48px;border-radius:12px;font-size:20px;font-weight:700;
background:var(--surface2);color:var(--text);transition:all .2s}
.player-count-btns button.active{background:var(--accent);color:#fff;box-shadow:0 0 16px rgba(108,99,255,0.5)}
.player-names{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.player-name-row{display:flex;align-items:center;gap:8px}
.player-name-row .dot{width:12px;height:12px;border-radius:50%}
.player-name-row input{flex:1;padding:10px 14px;border-radius:8px;background:var(--surface2);color:var(--text);font-size:14px}
.mode-btns{display:flex;gap:8px;flex-wrap:wrap}
.mode-btns button{flex:1;min-width:120px;padding:14px 12px;border-radius:12px;font-size:13px;font-weight:600;
background:var(--surface2);color:var(--text);transition:all .2s;text-align:center}
.mode-btns button.active{background:linear-gradient(135deg,#6c63ff,#a855f7);color:#fff}
.mode-btns button span{display:block;font-size:11px;color:var(--text2);margin-top:4px;font-weight:400}
.mode-btns button.active span{color:rgba(255,255,255,0.7)}

/* Game Screen */
#game-screen{flex-direction:column}
.game-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;
background:var(--surface);border-bottom:1px solid rgba(255,255,255,0.06);z-index:10;min-height:52px}
.current-player{display:flex;align-items:center;gap:8px;font-weight:700;font-size:18px}
.current-player .dot{width:14px;height:14px;border-radius:50%;animation:pulse 1.5s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}
.game-stats{display:flex;align-items:center;gap:16px;font-size:14px}
.stat-badge{padding:6px 14px;border-radius:20px;background:var(--glass);backdrop-filter:blur(8px)}
.lives{display:flex;gap:2px;font-size:16px}
.btn-list{padding:8px 16px;border-radius:20px;background:var(--glass);color:var(--text);font-size:13px;font-weight:600;backdrop-filter:blur(8px)}
.map-container{flex:1;position:relative;overflow:hidden;background:#080c18;cursor:grab}
.map-container:active{cursor:grabbing}
.map-container svg{width:100%;height:100%}
.map-container svg .sphere{fill:#121a30;stroke:rgba(255,255,255,0.05);stroke-width:1}
.map-container svg path.country{fill:#1a2040;stroke:#2a3060;stroke-width:0.5;transition:fill .4s}
.map-container svg circle.country-dot{fill:#1a2040;stroke:#2a3060;stroke-width:0.5;transition:fill .4s}
.game-footer{padding:8px 16px;background:var(--surface);border-top:1px solid rgba(255,255,255,0.06);z-index:10}
.input-row{display:flex;align-items:center;gap:6px;width:100%}
.btn-mic{width:40px;height:40px;flex-shrink:0;border-radius:50%;background:var(--glass);color:var(--text);font-size:18px;
display:flex;align-items:center;justify-content:center;transition:background .2s}
.btn-mic.recording{background:#ff4757;animation:pulse 1s infinite}
#answer-input{flex:1;min-width:0;padding:10px 12px;border-radius:10px;background:var(--surface2);color:var(--text);font-size:15px}
#answer-input::placeholder{color:var(--text2)}
.btn-submit{flex-shrink:0;padding:10px 16px;border-radius:10px;font-weight:700;font-size:14px;color:#fff;
background:linear-gradient(135deg,#6c63ff,#a855f7)}
.btn-pass{flex-shrink:0;padding:10px 14px;border-radius:10px;font-weight:700;font-size:14px;color:var(--text);
background:var(--surface2);transition:background .2s}
.btn-pass:hover{background:rgba(255,255,255,0.12)}
.timer-bar{height:4px;background:var(--surface2);border-radius:2px;margin-top:8px;overflow:hidden;display:none;width:100%}
.timer-bar .fill{height:100%;background:linear-gradient(90deg,#2ed573,#ffa502,#ff4757);border-radius:2px;transition:width .1s linear}

/* Feedback Popup */
.feedback-overlay{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;
z-index:100;pointer-events:none}
.feedback-icon{font-size:120px;font-weight:800;animation:feedbackPop .6s ease-out forwards;opacity:0}
.feedback-icon.correct{color:#2ed573}
.feedback-icon.wrong{color:#ff4757}
@keyframes feedbackPop{0%{transform:scale(0);opacity:0}40%{transform:scale(1.2);opacity:1}100%{transform:scale(1);opacity:0}}

/* Toast */
.toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);padding:12px 24px;border-radius:12px;
background:rgba(30,37,64,0.95);backdrop-filter:blur(12px);color:var(--text);font-size:14px;z-index:90;
animation:toastIn .3s ease-out;border:1px solid rgba(255,255,255,0.1)}
@keyframes toastIn{from{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}

/* Drawer */
.drawer-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:50;display:none}
.drawer-overlay.open{display:block}
.drawer{position:fixed;top:0;right:-360px;width:340px;max-width:85vw;height:100%;background:var(--surface);
z-index:60;transition:right .3s ease;padding:20px;overflow-y:auto;border-left:1px solid rgba(255,255,255,0.08)}
.drawer.open{right:0}
.drawer h3{font-size:18px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}
.drawer .close-btn{width:32px;height:32px;border-radius:8px;background:var(--surface2);color:var(--text);font-size:18px;
display:flex;align-items:center;justify-content:center}
.drawer-list{list-style:none;display:flex;flex-direction:column;gap:4px}
.drawer-list li{padding:8px 12px;border-radius:8px;font-size:14px;display:flex;align-items:center;gap:8px}
.drawer-list li .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}

/* Result Screen */
#result-screen{flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px;
background:linear-gradient(135deg,#0a0e1a,#1a1040)}
.result-card{background:var(--surface);border-radius:var(--radius);padding:24px;width:min(560px,92%);text-align:center;
border:1px solid rgba(255,255,255,0.08)}
.result-card h2{font-size:28px;font-weight:800;margin-bottom:8px;
background:linear-gradient(135deg,#ffa502,#ff6bcb);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.result-card .subtitle{color:var(--text2);margin-bottom:20px}
.ranking{width:100%;text-align:left}
.ranking .rank-row{display:flex;align-items:center;gap:12px;padding:12px;border-radius:10px;margin-bottom:8px;background:var(--surface2)}
.ranking .rank-row.first{background:linear-gradient(135deg,rgba(255,165,2,0.2),rgba(255,107,203,0.1));border:1px solid rgba(255,165,2,0.3)}
.rank-num{font-size:24px;font-weight:800;width:36px;text-align:center}
.rank-name{flex:1;font-weight:600}
.rank-score{font-size:20px;font-weight:800}
.rank-bar{height:6px;border-radius:3px;margin-top:4px;background:var(--surface)}
