:root{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-card:#334155;--bg-canvas:#fafafa;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--accent-primary:#6366f1;--accent-secondary:#818cf8;--accent-success:#22c55e;--accent-error:#ef4444;--accent-warning:#f59e0b;--border-color:#475569;--shadow:0 4px 6px -1px rgba(0,0,0,.3),0 2px 4px -2px rgba(0,0,0,.2);--shadow-lg:0 8px 24px rgba(0,0,0,.4);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px}body,html{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);min-height:100vh;margin:0;padding:20px;color:var(--text-primary)}*,:after,:before,body,html{box-sizing:border-box}a{color:var(--accent-secondary);text-decoration:none;transition:color .2s ease}a:hover{color:var(--accent-primary)}.app-container{max-width:1000px;margin:0 auto}.header{text-align:center;margin-bottom:32px}.header h1{font-size:28px;font-weight:700;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px}.header p{color:var(--text-secondary);font-size:14px}.nav-bar{display:flex;justify-content:center;gap:8px;margin-bottom:24px}.nav-btn{padding:10px 20px;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color)}.nav-btn:hover{background:var(--bg-card);color:var(--text-primary)}.nav-btn.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.score-bar{justify-content:center;gap:24px;margin-bottom:24px;padding:16px 24px;background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.score-bar,.score-item{display:flex;align-items:center}.score-item{gap:8px}.score-item .label{color:var(--text-muted);font-size:13px;text-transform:uppercase;letter-spacing:.5px}.score-item .value{font-size:24px;font-weight:700;color:var(--accent-primary)}.score-item .value.streak{color:var(--accent-warning)}.score-divider{width:1px;height:32px;background:var(--border-color)}.hint-card{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:24px;border:1px solid var(--border-color);margin-bottom:24px}.hint-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.hint-label{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted)}.hint-content{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px}.hint-item{padding:16px;background:var(--bg-card);border-radius:var(--radius-md)}.hint-item .label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:6px}.hint-item .pinyin{font-size:20px;font-weight:500;color:var(--accent-secondary)}.hint-item .definition{font-size:15px;color:var(--text-primary);line-height:1.5}.example-words{grid-column:1/-1;padding-top:16px;border-top:1px solid var(--border-color)}.example-words .label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:12px}.example-word-list{display:flex;flex-wrap:wrap;gap:8px}.example-word{padding:8px 16px;background:var(--bg-card);border-radius:var(--radius-sm);font-size:14px;display:flex;align-items:center;gap:8px}.example-word .char{font-family:Noto Sans SC,sans-serif;font-size:18px}.example-word .def{color:var(--text-muted);font-size:12px}.game-area{display:grid;grid-template-columns:1fr 340px;grid-gap:24px;gap:24px;margin-bottom:24px}.canvas-section{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:24px;border:1px solid var(--border-color)}.canvas-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.canvas-title{font-size:14px;font-weight:600;color:var(--text-primary)}.canvas-actions{display:flex;gap:8px}.canvas-btn{width:36px;height:36px;border:none;border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.canvas-btn:hover{background:var(--accent-primary);color:#fff}.canvas-wrapper{position:relative;background:var(--bg-canvas);border-radius:var(--radius-md);padding:16px}.drawing-canvas{width:100%;aspect-ratio:1;max-width:300px;margin:0 auto;display:block;border-radius:var(--radius-sm);border:2px dashed #cbd5e1;cursor:crosshair;background:#fff}.canvas-hint{text-align:center;color:var(--text-muted);font-size:13px;margin-top:12px}.feedback-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:16px 32px;border-radius:var(--radius-md);font-size:20px;font-weight:700;opacity:0;transition:opacity .3s;pointer-events:none}.feedback-overlay.show{opacity:1}.feedback-overlay.correct{background:var(--accent-success);color:#fff}.feedback-overlay.incorrect{background:var(--accent-error);color:#fff}.guesses-section{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:24px;border:1px solid var(--border-color)}.guesses-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.guesses-title{font-size:14px;font-weight:600;color:var(--text-primary)}.guesses-hint{font-size:12px;color:var(--text-muted)}.guesses-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:10px;gap:10px}.guess-item{padding:16px;background:var(--bg-card);border-radius:var(--radius-md);text-align:center;font-size:32px;font-family:Noto Sans SC,sans-serif;cursor:pointer;transition:all .2s;border:2px solid transparent;height:64px;display:flex;align-items:center;justify-content:center}.guess-item:hover{background:var(--accent-primary);transform:translateY(-2px);box-shadow:var(--shadow)}.guess-item.empty{color:var(--text-muted);font-size:20px}.guess-item.empty:hover{background:var(--bg-card);transform:none;box-shadow:none;cursor:default}.guess-item.single-row{padding:8px 2px;font-size:22px;border-radius:var(--radius-sm);flex:1 1;min-width:0;height:56px}.guess-item.single-row.empty{font-size:12px;padding:6px 10px}.history-section{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:24px;border:1px solid var(--border-color)}.history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.history-title{font-size:14px;font-weight:600;color:var(--text-primary)}.history-list{display:flex;flex-wrap:wrap;gap:10px}.history-item{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--bg-card);border-radius:var(--radius-md);cursor:pointer;transition:all .2s}.history-item:hover{background:var(--accent-primary)}.history-char{font-size:24px;font-family:Noto Sans SC,sans-serif}.history-info{flex:1 1}.history-pinyin{font-size:13px;color:var(--accent-secondary)}.history-def{font-size:13px;color:var(--text-secondary);margin-top:2px}.history-status{width:8px;height:8px;border-radius:50%}.history-status.correct{background:var(--accent-success)}.history-status.incorrect{background:var(--accent-error)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;pointer-events:none;transition:opacity .3s}.modal-overlay.show{opacity:1;pointer-events:auto}.modal-content{background:var(--bg-secondary);border-radius:var(--radius-xl);padding:32px;max-width:400px;width:90%;border:1px solid var(--border-color);text-align:center}.modal-char{font-size:120px;font-family:Noto Sans SC,sans-serif;margin-bottom:16px}.modal-pinyin{font-size:24px;color:var(--accent-secondary);margin-bottom:8px}.modal-def{font-size:16px;color:var(--text-secondary);margin-bottom:24px}.modal-actions{display:flex;gap:12px;justify-content:center}.modal-btn{padding:12px 24px;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.modal-btn.primary{background:var(--accent-primary);color:#fff}.modal-btn.primary:hover{background:var(--accent-secondary)}.modal-btn.secondary{background:var(--bg-card);color:var(--text-primary)}.modal-btn.secondary:hover{background:var(--border-color)}.footer-actions{display:flex;justify-content:center;gap:12px;margin-top:24px}.action-btn{padding:14px 32px;border:none;border-radius:var(--radius-md);font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.action-btn.skip{background:var(--bg-card);color:var(--text-primary)}.action-btn.skip:hover{background:var(--border-color)}.action-btn.hint{background:linear-gradient(135deg,var(--accent-warning),#d97706);color:#fff}.action-btn.hint:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(245,158,11,.4)}.commands{display:flex;gap:8px}.settings-btn{padding:8px 16px;background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:13px;cursor:pointer;transition:all .2s}.settings-btn:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}@media (max-width:768px){body,html{padding:10px}.game-area,.hint-content{grid-template-columns:1fr}.guesses-grid{grid-template-columns:repeat(4,1fr)}.score-bar{flex-wrap:wrap;gap:16px}.score-divider{display:none}.history-list{flex-wrap:wrap}.history-item{min-width:60px;justify-content:center}.footer-actions{flex-direction:column}.action-btn{width:100%}.commands{flex-direction:row}.modal-char{font-size:80px}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.pulse{animation:pulse 2s infinite}.touch-active{filter:brightness(.9)}@media (hover:none){.canvas-btn:hover,.guess-item:hover,.history-item:hover,.nav-btn:hover{transform:none}}.multiplayer-container{max-width:1000px;margin:0 auto}.multiplayer-container .left-box{display:grid;grid-gap:24px;gap:24px}.multiplayer-container .hint-card{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:24px;border:1px solid var(--border-color)}.multiplayer-container .hint-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.multiplayer-container .hint-label{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted)}.multiplayer-container .hint-content{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px}.multiplayer-container .hint-item{padding:16px;background:var(--bg-card);border-radius:var(--radius-md)}.multiplayer-container .hint-item .label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:6px}.multiplayer-container .hint-item .pinyin{font-size:20px;font-weight:500;color:var(--accent-secondary)}.multiplayer-container .hint-item .definition{font-size:15px;color:var(--text-primary);line-height:1.5}.multiplayer-container .examplewords-container{grid-column:1/-1;padding-top:16px;border-top:1px solid var(--border-color)}.multiplayer-container .examplewords-container .label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:12px;display:block}.multiplayer-container .example-word{align-items:center}.multiplayer-container .canvas-section{padding:24px}.multiplayer-container .canvas-header{margin-bottom:16px}.multiplayer-container .canvas-btn{width:36px;height:36px}.multiplayer-container .canvas-wrapper{padding:16px}.multiplayer-container .drawing-canvas{max-width:300px;margin:0 auto;border:2px dashed #cbd5e1}.multiplayer-container .canvas-hint{font-size:13px;margin-top:12px}.multiplayer-container .guesses-section{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:24px;border:1px solid var(--border-color)}.multiplayer-container .guesses-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.multiplayer-container .guesses-title{font-size:14px;font-weight:600;color:var(--text-primary)}.multiplayer-container .guesses-hint{font-size:12px;color:var(--text-muted)}.multiplayer-container .guesses-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:10px;gap:10px}.multiplayer-container .history-section{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:24px;border:1px solid var(--border-color)}.multiplayer-container .history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.multiplayer-container .history-title{font-size:14px;font-weight:600;color:var(--text-primary)}.multiplayer-container .history-list{display:flex;flex-wrap:wrap;gap:10px}.multiplayer-container .right-box{display:none}.all-canvases-container{display:flex;gap:16px;padding:8px;margin-bottom:24px;flex-wrap:wrap}.multiplayer-container .canvas-section{flex-shrink:0;background:var(--bg-secondary);border-radius:var(--radius-lg);padding:16px;border:1px solid var(--border-color)}.multiplayer-container .canvas-section.your-canvas{width:340px;flex-shrink:0}.multiplayer-container .canvas-section.opponent-canvas{flex:1 1;min-width:180px;max-width:250px}.multiplayer-container .canvas-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.multiplayer-container .canvas-title{font-size:14px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:6px}.multiplayer-container .canvas-actions{display:flex;gap:8px}.multiplayer-container .canvas-btn{width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.multiplayer-container .canvas-btn:hover{background:var(--accent-primary);color:#fff}.multiplayer-container .canvas-wrapper{position:relative;background:var(--bg-canvas);border-radius:var(--radius-md);padding:12px}.multiplayer-container .drawing-canvas{width:100%;aspect-ratio:1;display:block;border-radius:var(--radius-sm);border:2px dashed var(--border-color);cursor:crosshair;background:#fff}.multiplayer-container .canvas-hint{text-align:center;color:var(--text-muted);font-size:12px;margin-top:8px}.multiplayer-container .action-btn.skip{padding:8px 16px;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.multiplayer-players-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:16px;gap:16px;margin-top:24px;padding:20px;background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.multiplayer-player-card{background:var(--bg-card);border-radius:var(--radius-md);padding:12px;display:flex;flex-direction:column;align-items:center;gap:8px}.multiplayer-player-name{font-size:13px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:6px}.multiplayer-player-name .dot{width:8px;height:8px;border-radius:50%}.multiplayer-player-canvas{width:100%;aspect-ratio:1;background:#fff;border-radius:var(--radius-sm);border:2px dashed var(--border-color)}.multiplayer-container .commands{display:flex;gap:8px;margin-top:16px;justify-content:center}.multiplayer-container .action-btn{padding:14px 32px;border:none;border-radius:var(--radius-md);font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.multiplayer-container .action-btn.skip{background:var(--bg-card);color:var(--text-primary)}.multiplayer-container .action-btn.skip:hover{background:var(--border-color)}.multiplayer-skip-btn{width:100%;padding:14px 32px;border:none;border-radius:var(--radius-md);font-size:15px;font-weight:600;cursor:pointer;background:var(--bg-card);color:var(--text-primary);transition:all .2s;margin-bottom:24px}.multiplayer-skip-btn:hover{background:var(--border-color)}.multiplayer-container .guesses-section .guesses-grid{display:flex;flex-wrap:wrap;gap:6px}.multiplayer-container .guesses-section .guess-item{flex-grow:1;flex-shrink:1;flex-basis:calc(10% - 6px);min-width:50px;max-width:70px;padding:12px 8px;font-size:24px;height:56px;display:flex;align-items:center;justify-content:center}.multiplayer-container .guesses-section .guess-item.single-row{flex:1 1 auto;min-width:40px;padding:12px 10px;font-size:22px;height:56px}.multiplayer-container .guesses-section .guess-item.empty{font-size:14px;padding:12px 6px}.multiplayer-container .player-score{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--bg-card);border-radius:var(--radius-md);min-width:120px}.multiplayer-container .player-score .dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.multiplayer-container .player-score .name{font-size:14px;color:var(--text-primary)}.multiplayer-container .player-score .score{font-size:18px;font-weight:700;color:var(--accent-secondary);margin-left:auto}.multiplayer-container .example-words{grid-column:1/-1;padding-top:16px;border-top:1px solid var(--border-color)}.multiplayer-container .example-words .label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:12px;display:block}.multiplayer-container .example-word-list{display:flex;flex-wrap:wrap;gap:8px}.multiplayer-container .example-word{padding:8px 16px;background:var(--bg-card);border-radius:var(--radius-sm);font-size:14px;display:flex;gap:8px}.multiplayer-container .example-word .char{font-family:Noto Sans SC,sans-serif;font-size:18px}.multiplayer-container .example-word .def{color:var(--text-muted);font-size:12px}.multiplayer-container .history-item{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--bg-card);border-radius:var(--radius-md)}.multiplayer-container .history-char{font-size:24px;font-family:Noto Sans SC,sans-serif}.multiplayer-container .history-info{display:flex;flex-direction:column}.multiplayer-container .history-pinyin{font-size:13px;color:var(--accent-secondary)}.multiplayer-container .history-def{font-size:13px;color:var(--text-secondary);margin-top:2px}.multiplayer-container .history-status{width:10px;height:10px;border-radius:50%;margin-left:8px}.multiplayer-container .history-status.correct{background:var(--accent-success)}.multiplayer-container .history-status.incorrect{background:var(--accent-error)}.multiplayer-container .history-status.skipped{background:transparent;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--accent-error)}.game-over-card{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:24px;border:1px solid var(--border-color);margin-bottom:24px}.leaderboard{display:flex;flex-direction:column;gap:12px}.leaderboard-item{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-card);border-radius:var(--radius-md)}.leaderboard-item.first-place{background:linear-gradient(135deg,rgba(245,158,11,.2),rgba(245,158,11,.1));border:2px solid var(--accent-warning)}.leaderboard-item .rank{font-size:20px;font-weight:700;width:40px;text-align:center}.leaderboard-item .player-info{display:flex;align-items:center;gap:8px;flex:1 1}.leaderboard-item .player-color{width:12px;height:12px;border-radius:50%}.leaderboard-item .player-name{font-size:16px;font-weight:600}.leaderboard-item .you-badge{font-size:11px;text-transform:uppercase;background:var(--accent-primary);color:#fff;padding:2px 6px;border-radius:var(--radius-sm);margin-left:4px}.leaderboard-item .player-score{font-size:24px;font-weight:700;color:var(--accent-secondary)}.game-over-actions{display:flex;justify-content:center}.multiplayer-container .history-player{font-size:11px;color:var(--text-muted);margin-left:4px}@media (max-width:768px){.multiplayer-container .hint-content{grid-template-columns:1fr}.multiplayer-container .guesses-grid{grid-template-columns:repeat(4,1fr)}}.lobby-container{max-width:600px;margin:0 auto}.lobby-header{text-align:center;margin-bottom:32px}.lobby-header h1{font-size:28px;font-weight:700;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px}.lobby-header p{color:var(--text-secondary);font-size:14px}.lobby-room-id{text-align:center;margin-bottom:24px;padding:16px;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.lobby-room-id .label{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:8px}.lobby-room-id .room-code{font-size:24px;font-weight:700;color:var(--accent-secondary);letter-spacing:2px}.lobby-card{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:24px;border:1px solid var(--border-color);margin-bottom:24px}.lobby-card-title{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:16px}.lobby-players{display:flex;flex-direction:column;gap:12px}.lobby-player{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-card);border-radius:var(--radius-md)}.lobby-player.current{border:2px solid var(--accent-primary)}.lobby-player-color{width:12px;height:12px;border-radius:50%;flex-shrink:0}.lobby-player-name{font-size:16px;color:var(--text-primary)}.lobby-player-host{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--accent-warning);background:rgba(245,158,11,.15);padding:4px 8px;border-radius:var(--radius-sm);margin-left:auto}.lobby-actions{display:flex;flex-direction:column;gap:12px;margin-top:24px}.lobby-btn{padding:14px 24px;border:none;border-radius:var(--radius-md);font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.lobby-btn.primary{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff}.lobby-btn.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow)}.lobby-btn.primary:disabled{background:var(--bg-card);color:var(--text-muted);cursor:not-allowed}.lobby-btn.secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color)}.lobby-btn.secondary:hover{background:var(--border-color)}.lobby-waiting{text-align:center;color:var(--text-muted);font-size:14px;margin-top:16px}.loading-container{display:flex;justify-content:center;align-items:center;min-height:80vh}.loading-card{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:48px;border:1px solid var(--border-color);text-align:center;max-width:400px}.loading-card h1{font-size:28px;margin-bottom:16px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.loading-note{color:var(--accent-warning);font-size:14px;margin-bottom:24px;padding:12px;background:rgba(245,158,11,.1);border-radius:var(--radius-md);border:1px solid rgba(245,158,11,.3)}.loading-card .nav-btn{padding:14px 32px;font-size:16px;min-width:200px}.loading-card .nav-btn:disabled{background:var(--bg-card);color:var(--text-muted);cursor:not-allowed}.loading-spinner{margin-top:24px;display:flex;flex-direction:column;align-items:center;gap:12px}.spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.loading-spinner p{color:var(--text-secondary);font-size:14px}