@charset "UTF-8";.main-layout{min-height:100vh}.main-layout .sider{background:#001529}.main-layout .sider .logo-container{height:64px;display:flex;align-items:center;justify-content:center;padding:0 16px;border-bottom:1px solid rgba(255,255,255,.1)}.main-layout .sider .logo-container .logo-icon{width:32px;height:32px;background:#4caf50;color:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;flex-shrink:0}.main-layout .sider .logo-container .logo-text{color:#fff;font-size:16px;font-weight:600;margin-left:12px;white-space:nowrap}.main-layout .sider .ant-menu{border-right:none}.main-layout .header{background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 24px;box-shadow:0 1px 4px #00152914;position:sticky;top:0;z-index:10}.main-layout .header .header-left{display:flex;align-items:center;gap:16px}.main-layout .header .header-left .trigger-btn{font-size:18px}.main-layout .header .header-right{display:flex;align-items:center;gap:20px}.main-layout .header .header-right .notification-badge{cursor:pointer}.main-layout .header .header-right .user-info{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 12px;border-radius:20px;transition:background .3s}.main-layout .header .header-right .user-info:hover{background:#f5f5f5}.main-layout .header .header-right .user-info .username{font-size:14px;color:#333}.main-layout .content{margin:24px;padding:24px;background:#f5f7fa;min-height:calc(100vh - 112px);border-radius:12px}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);position:relative;overflow:hidden}.auth-bg{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.auth-bg .bg-shape{position:absolute;opacity:.08;font-family:KaiTi,STKaiti,serif;color:#fff;font-weight:700}.auth-bg .shape-1{font-size:200px;top:-50px;left:-30px;transform:rotate(-15deg)}.auth-bg .shape-2{font-size:150px;bottom:-30px;right:-20px;transform:rotate(20deg)}.auth-bg .shape-3{font-size:100px;top:40%;right:10%;transform:rotate(10deg)}.auth-bg .shape-4{font-size:120px;bottom:20%;left:15%;transform:rotate(-5deg)}.auth-content{position:relative;z-index:1;text-align:center;width:100%;max-width:420px;padding:0 20px}.auth-header{margin-bottom:24px;color:#fff}.auth-header .auth-logo{width:64px;height:64px;background:#fffffff2;border-radius:16px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;box-shadow:0 8px 24px #00000026}.auth-header .auth-logo span{font-size:32px;font-weight:700;color:#4caf50;font-family:KaiTi,STKaiti,serif}.auth-header h1{font-size:28px;font-weight:600;margin-bottom:8px}.auth-header p{font-size:14px;opacity:.85;margin:0}.auth-card{border-radius:16px;box-shadow:0 20px 60px #0003;border:none}.auth-card .ant-card-body{padding:24px 32px 32px}.auth-card .ant-tabs-nav{margin-bottom:24px}.auth-form-wrapper{min-height:200px}.auth-footer{margin-top:24px;color:#ffffffb3;font-size:13px}.dashboard .welcome-section{margin-bottom:24px}.dashboard .welcome-section h2{font-size:24px;font-weight:600;color:#333;margin-bottom:4px}.dashboard .welcome-section p{color:#666;margin:0}.dashboard .stats-row{margin-bottom:24px}.dashboard .stats-row .stat-card{border-radius:12px;border:none}.dashboard .stats-row .stat-card .ant-statistic .ant-statistic-title{font-size:14px;color:#666;margin-bottom:8px}.dashboard .stats-row .stat-card .ant-statistic .ant-statistic-content{font-size:28px;font-weight:600}.dashboard .stats-row .stat-green{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.dashboard .stats-row .stat-green .ant-statistic-title,.dashboard .stats-row .stat-green .ant-statistic-content{color:#fff}.dashboard .stats-row .stat-blue{background:linear-gradient(135deg,#2196f3,#1565c0);color:#fff}.dashboard .stats-row .stat-blue .ant-statistic-title,.dashboard .stats-row .stat-blue .ant-statistic-content{color:#fff}.dashboard .stats-row .stat-orange{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff}.dashboard .stats-row .stat-orange .ant-statistic-title,.dashboard .stats-row .stat-orange .ant-statistic-content{color:#fff}.dashboard .stats-row .stat-purple{background:linear-gradient(135deg,#9c27b0,#7b1fa2);color:#fff}.dashboard .stats-row .stat-purple .ant-statistic-title,.dashboard .stats-row .stat-purple .ant-statistic-content{color:#fff}.dashboard .content-row{margin-bottom:24px}.dashboard .section-card{border-radius:12px;border:none;box-shadow:0 1px 3px #0000000d}.dashboard .section-card .ant-card-head{border-bottom:1px solid #f0f0f0}.dashboard .action-card{background:#f8f9fa;border-radius:12px;padding:32px 16px;text-align:center;cursor:pointer;transition:all .3s;display:flex;flex-direction:column;align-items:center;gap:12px}.dashboard .action-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001a}.dashboard .action-card span{font-size:14px;color:#666}.dashboard .action-video{background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#1976d2}.dashboard .action-learn{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);color:#388e3c}.dashboard .action-game{background:linear-gradient(135deg,#fff3e0,#ffe0b2);color:#f57c00}.dashboard .progress-item{margin-bottom:16px}.dashboard .progress-item:last-child{margin-bottom:0}.dashboard .progress-item .progress-label{display:flex;justify-content:space-between;margin-bottom:8px;font-size:14px;color:#333}.family-list .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.family-list .page-header h2{margin:0;font-size:22px}.family-list .section{margin-bottom:32px}.family-list .section .section-header{font-size:18px;font-weight:600;color:#333;margin-bottom:16px;display:flex;align-items:center;gap:8px}.family-list .section .section-header .count-badge{background:#4caf50;color:#fff;font-size:12px;font-weight:500;padding:2px 8px;border-radius:10px;margin-left:8px}.family-list .family-card{border-radius:12px;text-align:center;cursor:pointer;transition:all .3s;border:2px solid transparent}.family-list .family-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f;border-color:#4caf50}.family-list .family-card .family-icon{font-size:48px;font-weight:700;color:#4caf50;font-family:KaiTi,STKaiti,serif;margin-bottom:12px;line-height:1}.family-list .family-card .family-info .family-name{font-size:16px;font-weight:600;color:#333;margin-bottom:4px}.family-list .family-card .family-info .family-desc{font-size:12px;color:#666;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.family-list .family-card .family-info .family-meta .char-count{font-size:12px;color:#4caf50;background:#e8f5e9;padding:2px 8px;border-radius:10px;display:inline-block}.family-characters .page-header{margin-bottom:24px}.family-characters .page-header h2{display:flex;align-items:center;gap:12px;margin:12px 0 0;font-size:22px}.family-characters .page-header h2 .count-tag{margin-left:8px}.family-characters .character-card{text-align:center;border-radius:12px;transition:all .3s;cursor:pointer}.family-characters .character-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f;border-color:#4caf50}.family-characters .character-card .char-display{font-size:48px;font-weight:700;color:#2196f3;font-family:KaiTi,STKaiti,serif;margin-bottom:8px;line-height:1}.family-characters .character-card .char-pinyin{font-size:16px;color:#666;margin-bottom:8px}.family-characters .character-card .char-meta{margin-bottom:12px}.family-characters .character-card .char-meta .stroke-count{display:inline-block;font-size:12px;color:#ff9800;background:#fff3e0;padding:2px 8px;border-radius:10px}.family-characters .character-card .char-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.family-characters .character-card .char-actions .ant-btn{font-size:12px}.char-elimination-game{max-width:900px;margin:0 auto;padding:20px;min-height:100vh;position:relative;background:linear-gradient(135deg,#667eea,#764ba2,#6b8dd6);border-radius:20px;overflow:hidden}.char-elimination-game .game-bg-decoration{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;pointer-events:none;z-index:0}.char-elimination-game .bg-circle{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5}.char-elimination-game .circle-1{width:300px;height:300px;background:#ff6b6b;top:-100px;right:-50px;animation:float 8s ease-in-out infinite}.char-elimination-game .circle-2{width:250px;height:250px;background:#4ecdc4;bottom:-80px;left:-60px;animation:float 10s ease-in-out infinite reverse}.char-elimination-game .circle-3{width:200px;height:200px;background:#ffeaa7;top:50%;left:50%;transform:translate(-50%,-50%);animation:float 12s ease-in-out infinite;opacity:.3}.char-elimination-game .game-content{position:relative;z-index:1}.char-elimination-game .game-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:16px}.char-elimination-game .game-header .header-left{display:flex;align-items:center;gap:12px}.char-elimination-game .game-header .header-left h2{margin:0;font-size:22px;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.3);font-weight:700}.char-elimination-game .game-header .game-stats{display:flex;gap:10px}.char-elimination-game .time-progress{margin-bottom:20px;background:#ffffff1a;border-radius:12px;padding:8px 16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.char-elimination-game .time-progress :global(.ant-progress) .ant-progress-inner{background:#fff3;border-radius:8px}.char-elimination-game .game-card{background:#ffffff26!important;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.3);border-radius:24px!important;box-shadow:0 8px 32px #00000026}.char-elimination-game .start-card{text-align:center;padding:48px 32px}.char-elimination-game .game-start{color:#fff}.char-elimination-game .game-start .game-icon{font-size:80px;margin-bottom:20px;animation:float 3s ease-in-out infinite}.char-elimination-game .game-start h2{font-size:32px;color:#fff;margin-bottom:12px;text-shadow:0 2px 10px rgba(0,0,0,.3)}.char-elimination-game .game-start .game-subtitle{color:#ffffffe6;font-size:18px;margin-bottom:16px}.char-elimination-game .game-start .game-desc{color:#fffc;margin-bottom:28px;font-size:15px}.char-elimination-game .game-start .game-tips{background:#ffffff26;border-radius:16px;padding:20px 24px;margin-bottom:32px;text-align:left;border:1px solid rgba(255,255,255,.2)}.char-elimination-game .game-start .game-tips p{margin:10px 0;color:#ffffffe6;font-size:15px}.char-elimination-game .game-start .ant-btn{margin:0 10px;border-radius:12px;font-weight:600;height:48px;padding:0 32px;font-size:16px;transition:all .3s ease}.char-elimination-game .game-start .ant-btn.ant-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none;box-shadow:0 4px 20px #667eea66}.char-elimination-game .game-start .ant-btn.ant-btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 24px #667eea80}.char-elimination-game .game-start .ant-btn:not(.ant-btn-primary){background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff}.char-elimination-game .game-start .ant-btn:not(.ant-btn-primary):hover{background:#ffffff4d}.char-elimination-game .board-wrapper{display:flex;justify-content:center;padding:20px;background:#ffffff1a;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:24px;margin-bottom:20px;border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 32px #0000001a}.char-elimination-game .game-board{display:grid;grid-template-columns:repeat(8,1fr);gap:5px;background:#00000026;padding:8px;border-radius:16px;width:100%;max-width:560px;aspect-ratio:1}.char-elimination-game .tile{aspect-ratio:1;border-radius:10px;display:flex;justify-content:center;align-items:center;cursor:pointer;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease,opacity .3s ease;-webkit-user-select:none;user-select:none;position:relative;border:2px solid rgba(255,255,255,.4);overflow:hidden}.char-elimination-game .tile:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(145deg,#ffffff4d,#ffffff1a,#0000001a);pointer-events:none}.char-elimination-game .tile:after{content:"";position:absolute;top:2px;left:2px;right:50%;bottom:50%;background:linear-gradient(135deg,rgba(255,255,255,.4) 0%,transparent 100%);border-radius:8px 0 0;pointer-events:none}.char-elimination-game .tile:hover{transform:scale(1.08);z-index:5;box-shadow:0 8px 25px #0000004d}.char-elimination-game .tile.selected{transform:scale(1.12);box-shadow:0 0 0 3px #fff,0 0 30px #fffc;z-index:10;border-color:#fff;animation:selected-pulse .6s ease-in-out infinite alternate}.char-elimination-game .tile.hinted{animation:hint-glow .8s ease-in-out infinite alternate;box-shadow:0 0 20px #ffd700e6,0 0 40px #ffd70080;z-index:8}.char-elimination-game .tile.matched{animation:tile-explode .5s forwards}.char-elimination-game .tile.new-tile{animation:tile-appear .4s cubic-bezier(.34,1.56,.64,1)}.char-elimination-game .tile .tile-char{font-size:clamp(18px,3.5vw,32px);font-weight:800;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.4),0 0 8px rgba(0,0,0,.2);pointer-events:none;position:relative;z-index:1;font-family:KaiTi,楷体,STKaiti,serif}.char-elimination-game .game-controls{display:flex;justify-content:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}.char-elimination-game .game-controls .ant-btn{border-radius:12px;font-weight:500;height:42px;padding:0 24px;background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease}.char-elimination-game .game-controls .ant-btn:hover:not(:disabled){background:#ffffff4d;transform:translateY(-2px);box-shadow:0 4px 16px #0003}.char-elimination-game .game-controls .ant-btn:disabled{opacity:.5;cursor:not-allowed}.char-elimination-game .game-hint{text-align:center;color:#fffc;font-size:14px;padding:14px;background:#ffffff1a;border-radius:12px;border:1px solid rgba(255,255,255,.15);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.char-elimination-game .over-card .game-over-content{text-align:center;padding:40px 32px;color:#fff}.char-elimination-game .over-card .game-over-content .over-icon{font-size:80px;margin-bottom:20px;animation:bounce-in .6s cubic-bezier(.34,1.56,.64,1)}.char-elimination-game .over-card .game-over-content h2{font-size:28px;color:#fff;margin-bottom:28px;text-shadow:0 2px 10px rgba(0,0,0,.3)}.char-elimination-game .over-card .game-over-content .score-breakdown{background:#ffffff26;border-radius:16px;padding:24px;margin-bottom:32px;max-width:320px;margin-left:auto;margin-right:auto;border:1px solid rgba(255,255,255,.25);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.char-elimination-game .over-card .game-over-content .score-breakdown .score-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.15);color:#ffffffe6;font-size:16px}.char-elimination-game .over-card .game-over-content .score-breakdown .score-row:last-child{border-bottom:none}.char-elimination-game .over-card .game-over-content .score-breakdown .score-row.total{font-size:22px;font-weight:700;color:gold;border-top:2px solid rgba(255,215,0,.5);border-bottom:none;padding-top:20px;margin-top:8px;text-shadow:0 0 10px rgba(255,215,0,.5)}.char-elimination-game .over-card .game-over-content .over-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.char-elimination-game .over-card .game-over-content .over-actions .ant-btn{border-radius:12px;font-weight:600;height:48px;padding:0 32px;font-size:16px;transition:all .3s ease}.char-elimination-game .over-card .game-over-content .over-actions .ant-btn.ant-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none;box-shadow:0 4px 20px #667eea66;color:#fff}.char-elimination-game .over-card .game-over-content .over-actions .ant-btn.ant-btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 24px #667eea80}.char-elimination-game .over-card .game-over-content .over-actions .ant-btn:not(.ant-btn-primary){background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff}.char-elimination-game .over-card .game-over-content .over-actions .ant-btn:not(.ant-btn-primary):hover{background:#ffffff4d}@keyframes tile-explode{0%{opacity:1;transform:scale(1) rotate(0)}30%{opacity:1;transform:scale(1.3) rotate(10deg)}to{opacity:0;transform:scale(.2) rotate(360deg)}}@keyframes tile-appear{0%{opacity:0;transform:translateY(-30px) scale(.5)}60%{transform:translateY(5px) scale(1.05)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes hint-glow{0%{box-shadow:0 0 10px #ffd70099,0 0 20px #ffd7004d;transform:scale(1)}to{box-shadow:0 0 25px gold,0 0 50px #ffd70099;transform:scale(1.08)}}@keyframes selected-pulse{0%{box-shadow:0 0 0 3px #fff,0 0 20px #fff9}to{box-shadow:0 0 0 3px #fff,0 0 35px #fff}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes bounce-in{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.1)}70%{transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (max-width: 600px){.char-elimination-game{padding:12px}.char-elimination-game .game-header{flex-direction:column;align-items:flex-start}.char-elimination-game .game-header .game-stats{width:100%}.char-elimination-game .board-wrapper{padding:12px}.char-elimination-game .game-board{gap:3px;padding:5px}.char-elimination-game .tile{border-radius:8px}.char-elimination-game .tile .tile-char{font-size:18px}.char-elimination-game .game-start{padding:32px 20px}.char-elimination-game .game-start h2{font-size:24px}.char-elimination-game .game-start .game-icon{font-size:56px}.char-elimination-game .game-start .game-tips{padding:16px}.char-elimination-game .game-controls{gap:10px}.char-elimination-game .game-controls .ant-btn{padding:0 18px;height:38px;font-size:14px}}.character-match-game{padding:16px;max-width:700px;margin:0 auto}.character-match-game .game-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;flex-wrap:wrap;gap:12px}.character-match-game .game-header .header-info h3{margin:0 0 4px;font-size:18px}.character-match-game .game-header .header-info .game-desc{color:#666;margin:0;font-size:13px}.character-match-game .game-header .game-stats{display:flex;gap:8px;flex-wrap:wrap}.character-match-game .game-progress{margin-bottom:16px}.character-match-game .cards-grid{display:grid;gap:10px;margin-bottom:16px;perspective:1000px}.character-match-game .card-wrapper{aspect-ratio:1;cursor:pointer;position:relative;transform-style:preserve-3d;transition:transform .5s}.character-match-game .card-wrapper.flipped{transform:rotateY(180deg)}.character-match-game .card-wrapper.matched{transform:rotateY(180deg);opacity:.6;cursor:default}.character-match-game .card-wrapper.matched .card-back{background:linear-gradient(135deg,#a8edea,#fed6e3);border-color:#52c41a;animation:matched-pulse .5s ease}.character-match-game .card-wrapper.hinted:not(.flipped){animation:hint-shake .5s ease 3}.character-match-game .card-wrapper .card-inner{position:absolute;width:100%;height:100%;transform-style:preserve-3d}.character-match-game .card-wrapper .card-front,.character-match-game .card-wrapper .card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;border-radius:10px;display:flex;align-items:center;justify-content:center;border:2px solid #d9d9d9;transition:all .2s}.character-match-game .card-wrapper .card-front{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.character-match-game .card-wrapper .card-front .card-back-icon{font-size:28px;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.2)}.character-match-game .card-wrapper .card-back{transform:rotateY(180deg);background:#fff;border-color:#667eea}.character-match-game .card-wrapper .card-back .card-char{font-size:clamp(24px,6vw,40px);font-weight:700;color:#333;font-family:KaiTi,STKaiti,serif}.character-match-game .card-wrapper:hover:not(.flipped):not(.matched) .card-front{transform:scale(1.05);box-shadow:0 4px 12px #667eea66}.character-match-game .game-controls{display:flex;justify-content:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.character-match-game .game-hint-text{text-align:center;color:#888;font-size:12px}.character-match-game .game-card{text-align:center;border-radius:12px}.character-match-game .game-card.complete-card{padding:40px 20px}.character-match-game .game-card.complete-card .complete-content .complete-icon{font-size:64px;margin-bottom:16px}.character-match-game .game-card.complete-card .complete-content h2{margin:0 0 8px;color:#333}.character-match-game .game-card.complete-card .complete-content .complete-desc{color:#666;margin:0 0 24px}.character-match-game .game-card.complete-card .complete-content .complete-stats{display:flex;justify-content:center;gap:32px;margin-bottom:32px}.character-match-game .game-card.complete-card .complete-content .complete-stats .stat-item{display:flex;flex-direction:column;align-items:center}.character-match-game .game-card.complete-card .complete-content .complete-stats .stat-item .stat-value{font-size:32px;font-weight:700;color:#667eea}.character-match-game .game-card.complete-card .complete-content .complete-stats .stat-item .stat-label{color:#999;font-size:13px}.character-match-game .game-card.complete-card .complete-content .complete-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}@keyframes matched-pulse{0%{transform:rotateY(180deg) scale(1)}50%{transform:rotateY(180deg) scale(1.1)}to{transform:rotateY(180deg) scale(1)}}@keyframes hint-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.hanzi-game{min-height:calc(100vh - 80px);padding:16px;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.hanzi-game .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px;background:#fffffff2;padding:12px 20px;border-radius:12px;box-shadow:0 2px 10px #0000000f}.hanzi-game .page-header h2{margin:0;font-size:18px}.hanzi-game .page-header .game-info{display:flex;gap:8px}.hanzi-game .game-card{border-radius:16px;box-shadow:0 6px 24px #00000014}.hanzi-game .game-card .game-area{display:flex;flex-direction:column;gap:16px;margin-bottom:16px;padding:16px}.hanzi-game .game-card .game-instructions{text-align:center;margin-bottom:8px;color:#666;font-size:14px}.hanzi-game .game-card .sound-section{display:flex;flex-direction:column;align-items:center;gap:12px;margin:20px 0}.hanzi-game .game-card .sound-section .sound-play-btn{display:flex;align-items:center;justify-content:center;border-radius:50%;box-shadow:0 8px 24px #667eea66;transition:all .3s ease}.hanzi-game .game-card .sound-section .sound-play-btn:hover{transform:scale(1.05);box-shadow:0 12px 32px #667eea80}.hanzi-game .game-card .sound-section .sound-play-btn:active{transform:scale(.95)}.hanzi-game .game-card .sound-section .sound-hint{color:#666;font-size:13px}.hanzi-game .game-card .options-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:400px;margin:0 auto}.hanzi-game .game-card .option-item{aspect-ratio:1;border:3px solid #e0e0e0;border-radius:16px;background:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;cursor:pointer;transition:all .25s ease;position:relative;font-family:KaiTi,STKaiti,楷体,serif}.hanzi-game .game-card .option-item .option-char{font-size:48px;font-weight:700;color:#333}.hanzi-game .game-card .option-item .option-pinyin{font-size:14px;color:#667eea;margin-top:8px}.hanzi-game .game-card .option-item .option-wrong-icon{position:absolute;top:8px;right:8px;font-size:20px}.hanzi-game .game-card .option-item:hover{border-color:#667eea;transform:scale(1.03)}.hanzi-game .game-card .option-item.selected.correct,.hanzi-game .game-card .option-item.correct{border-color:#4caf50;background:#e8f5e9;animation:pulse .5s ease}.hanzi-game .game-card .option-item.selected.wrong,.hanzi-game .game-card .option-item.wrong{border-color:#f44336;background:#ffebee;animation:shake .4s ease}.hanzi-game .game-card .game-controls{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;padding:16px;border-top:1px solid #f0f0f0}.hanzi-game .result-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.hanzi-game .result-modal .result-content{background:#fff;padding:40px;border-radius:20px;text-align:center;min-width:300px;box-shadow:0 20px 60px #0000004d}.hanzi-game .result-modal .result-content .result-icon{font-size:64px;margin-bottom:16px}.hanzi-game .result-modal .result-content h3{margin:0 0 16px;font-size:24px}.hanzi-game .result-modal .result-content p{margin:0 0 20px;color:#666}.hanzi-game .result-modal .result-content.success h3{color:#4caf50}.hanzi-game .result-modal .result-content.error h3{color:#f44336}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}@media (max-width: 600px){.hanzi-game .game-card .options-grid{gap:12px}.hanzi-game .game-card .option-item .option-char{font-size:36px}}.lianliankan-game{min-height:calc(100vh - 80px);padding:16px;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.lianliankan-game .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;background:#fffffff2;padding:12px 20px;border-radius:12px;box-shadow:0 2px 10px #0000000f}.lianliankan-game .page-header h2{font-size:18px;margin:0;color:#333}.lianliankan-game .page-header .game-info{display:flex;gap:8px}.lianliankan-game .game-card{border-radius:16px;box-shadow:0 6px 24px #00000014}.lianliankan-game .game-card .game-area{padding:16px}.lianliankan-game .game-card .game-instructions{text-align:center;margin-bottom:20px}.lianliankan-game .game-card .game-instructions p{font-size:14px;color:#666;margin:0}.lianliankan-game .game-card .images-row{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin-bottom:12px;padding:20px;background:#f8f9fa;border-radius:12px;min-height:140px}.lianliankan-game .game-card .images-row .image-item{width:100px;height:100px;border:3px solid #e0e0e0;border-radius:12px;overflow:hidden;cursor:pointer;transition:all .25s ease;background:#fff;display:flex;align-items:center;justify-content:center}.lianliankan-game .game-card .images-row .image-item img{width:100%;height:100%;object-fit:cover}.lianliankan-game .game-card .images-row .image-item .no-image-placeholder{font-size:36px;opacity:.4}.lianliankan-game .game-card .images-row .image-item:hover{border-color:#667eea;transform:scale(1.05)}.lianliankan-game .game-card .images-row .image-item.selected{border-color:#667eea;box-shadow:0 0 0 3px #667eea4d;transform:scale(1.08)}.lianliankan-game .game-card .images-row .image-item.connected{border-color:#4caf50;background:#e8f5e9}.lianliankan-game .game-card .images-row .image-item.no-image{opacity:.5}.lianliankan-game .game-card .connection-hint{text-align:center;color:#aaa;font-size:12px;margin:12px 0}.lianliankan-game .game-card .chars-row{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-bottom:16px}.lianliankan-game .game-card .chars-row .char-item{width:80px;height:80px;border:3px solid #e0e0e0;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .25s ease;font-family:KaiTi,STKaiti,楷体,serif;position:relative}.lianliankan-game .game-card .chars-row .char-item .char-text{font-size:32px;font-weight:700;color:#333}.lianliankan-game .game-card .chars-row .char-item .match-dot{position:absolute;top:4px;right:6px;color:#4caf50;font-size:14px;font-weight:700}.lianliankan-game .game-card .chars-row .char-item:hover{border-color:#667eea;transform:scale(1.05)}.lianliankan-game .game-card .chars-row .char-item.selected{border-color:#667eea;box-shadow:0 0 0 3px #667eea4d;transform:scale(1.08)}.lianliankan-game .game-card .chars-row .char-item.matched{border-color:#4caf50;background:#e8f5e9}.lianliankan-game .game-card .game-controls{display:flex;justify-content:center;gap:12px;padding:16px;border-top:1px solid #f0f0f0}.lianliankan-game .result-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.lianliankan-game .result-modal .result-content{background:#fff;border-radius:20px;padding:40px;text-align:center;min-width:300px;box-shadow:0 20px 60px #0000004d}.lianliankan-game .result-modal .result-content .result-icon{font-size:64px;margin-bottom:16px}.lianliankan-game .result-modal .result-content h3{font-size:24px;margin:0 0 16px}.lianliankan-game .result-modal .result-content.success h3{color:#4caf50}.lianliankan-game .result-modal .result-content.error h3{color:#f44336}.lianliankan-game .result-modal .result-content p{margin:0 0 20px;color:#666}@media (max-width: 600px){.lianliankan-game .images-row .image-item{width:80px;height:80px}.lianliankan-game .chars-row .char-item{width:64px;height:64px}.lianliankan-game .chars-row .char-text{font-size:24px}.lianliankan-game .images-row{gap:12px;padding:12px}.lianliankan-game .chars-row{gap:12px}}.game-hub{position:relative;min-height:calc(100vh - 80px);padding:24px;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);overflow:hidden}.game-hub .hub-bg-decoration{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:0}.game-hub .hub-bg-decoration .bg-circle{position:absolute;border-radius:50%;opacity:.15}.game-hub .hub-bg-decoration .circle-1{width:400px;height:400px;background:linear-gradient(135deg,#667eea,#764ba2);top:-100px;right:-100px}.game-hub .hub-bg-decoration .circle-2{width:300px;height:300px;background:linear-gradient(135deg,#f093fb,#f5576c);bottom:-50px;left:-50px}.game-hub .hub-bg-decoration .circle-3{width:200px;height:200px;background:linear-gradient(135deg,#4facfe,#00f2fe);top:30%;left:50%}.game-hub .hub-content{position:relative;z-index:1;max-width:1200px;margin:0 auto}.game-hub .hub-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;background:#fffffff2;padding:16px 24px;border-radius:16px;box-shadow:0 4px 20px #00000014}.game-hub .hub-header .header-left{display:flex;align-items:center;gap:12px}.game-hub .hub-header .header-left h1{font-size:24px;font-weight:700;margin:0;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.game-hub .hub-header .header-right{display:flex;align-items:center;gap:12px}.game-hub .time-progress-bar{background:#fffffff2;padding:12px 24px;border-radius:12px;margin-bottom:24px;box-shadow:0 2px 10px #0000000f;display:flex;align-items:center;gap:16px}.game-hub .time-progress-bar .time-hint{color:#666;font-size:13px}.game-hub .hub-title-section{text-align:center;margin-bottom:32px}.game-hub .hub-title-section h2{font-size:28px;font-weight:700;margin:0 0 8px;color:#333}.game-hub .hub-title-section .subtitle{color:#666;font-size:14px;margin:0}.game-hub .games-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:24px}.game-hub .game-card-item{position:relative;border-radius:20px;overflow:hidden;cursor:pointer;transition:all .3s ease;border:none;box-shadow:0 6px 24px #0000001a;height:240px}.game-hub .game-card-item:hover:not(.disabled){transform:translateY(-6px);box-shadow:0 12px 36px #0000002e}.game-hub .game-card-item.disabled{opacity:.6;cursor:not-allowed;filter:grayscale(.5)}.game-hub .game-card-item .ant-card-body{padding:0;height:100%;position:relative}.game-hub .game-card-item .game-card-bg{position:absolute;top:0;left:0;right:0;bottom:0;opacity:.9}.game-hub .game-card-item .game-card-content{position:relative;z-index:1;padding:32px 24px;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;text-align:center}.game-hub .game-card-item .game-card-content .game-icon{font-size:64px;margin-bottom:12px}.game-hub .game-card-item .game-card-content h3{font-size:22px;font-weight:700;margin:0 0 8px;color:#fff}.game-hub .game-card-item .game-card-content p{font-size:13px;margin:0 0 16px;color:#ffffffe6;line-height:1.5}.game-hub .game-card-item .game-card-content .game-disabled{background:#0000004d;padding:6px 16px;border-radius:20px;font-size:12px}.game-hub .game-card-item .game-card-content .game-play{background:#ffffff40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:8px 20px;border-radius:20px;font-size:14px;font-weight:600;transition:all .3s ease}.game-hub .game-card-item .game-card-content .game-play:hover{background:#fff6}.game-hub .hub-tips{display:flex;justify-content:center;gap:32px;flex-wrap:wrap}.game-hub .hub-tips .tip-item{background:#ffffffd9;padding:12px 20px;border-radius:12px;color:#555;font-size:13px;display:flex;align-items:center;gap:8px;box-shadow:0 2px 8px #0000000f}.game-hub .game-phase-header{display:flex;align-items:center;gap:16px;margin-bottom:16px;background:#fffffff2;padding:12px 24px;border-radius:12px;box-shadow:0 2px 10px #0000000f}.game-hub .game-phase-header h2{font-size:18px;margin:0;color:#333}.learn-flow{max-width:900px;margin:0 auto}.learn-flow .flow-header{display:flex;align-items:center;gap:16px;margin-bottom:24px;padding:12px 16px;background:#f5f5f5;border-radius:8px}.learn-flow .flow-header .flow-title{font-size:18px;font-weight:600;display:flex;align-items:center;gap:8px;flex:1}.learn-flow .flow-header .flow-progress{display:flex;align-items:center;gap:8px;font-size:14px;color:#666}.learn-flow .steps-indicator{margin-bottom:24px;background:#fff;padding:16px;border-radius:8px;box-shadow:0 2px 8px #0000000f}.learn-flow .current-char-info{display:flex;align-items:center;gap:16px;padding:20px;background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-radius:12px;margin-bottom:24px}.learn-flow .current-char-info .char-big{font-size:64px;font-weight:700;color:#1565c0;font-family:KaiTi,STKaiti,serif;line-height:1}.learn-flow .current-char-info .char-meta{display:flex;flex-direction:column;gap:8px}.learn-flow .current-char-info .char-meta .pinyin{font-size:24px;color:#1976d2;font-weight:500}.learn-flow .step-content{min-height:400px}.learn-flow .step-card{border-radius:12px}.learn-flow .step-card h3{margin:0 0 8px;font-size:20px}.learn-flow .step-card .step-desc{color:#666;margin-bottom:24px}.learn-flow .step-card .step-actions{margin-top:24px;display:flex;justify-content:flex-end;gap:12px}.learn-flow .step-card .step-hint{margin-top:16px;padding:12px;background:#fff9c4;border-radius:8px;color:#f57f17}.learn-flow .step-card .step-complete{margin-top:16px;padding:12px;background:#e8f5e9;border-radius:8px;color:#2e7d32;display:flex;align-items:center;gap:8px}.learn-flow .video-step .video-container{background:#000;border-radius:12px;overflow:hidden;margin-bottom:16px}.learn-flow .video-step .video-container .video-player{width:100%;max-height:400px;display:block}.learn-flow .video-step .video-container .no-video{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;color:#999}.learn-flow .video-step .step-skip{text-align:center;margin-top:8px}.learn-flow .pronunciation-step .pronunciation-area{display:flex;flex-direction:column;align-items:center;gap:20px;padding:32px}.learn-flow .pronunciation-step .pronunciation-area .char-display{text-align:center}.learn-flow .pronunciation-step .pronunciation-area .char-display .char{font-size:96px;font-weight:700;color:#1976d2;font-family:KaiTi,STKaiti,serif;display:block;line-height:1}.learn-flow .pronunciation-step .pronunciation-area .char-display .pinyin{font-size:24px;color:#666;margin-top:8px;display:block}.learn-flow .pronunciation-step .pronunciation-controls{display:flex;gap:16px;align-items:center}.learn-flow .pronunciation-step .recording-indicator{display:flex;align-items:center;gap:12px;padding:12px 24px;background:#ffebee;border-radius:24px;color:#c62828;font-weight:500}.learn-flow .pronunciation-step .recording-indicator .recording-dot{width:10px;height:10px;background:#e53935;border-radius:50%;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.learn-flow .pronunciation-step .recognized-text{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#e3f2fd;border-radius:8px}.learn-flow .pronunciation-step .recognized-text .label{font-weight:600;color:#1565c0}.learn-flow .pronunciation-step .recognized-text .recognized-char{font-size:18px;color:#1976d2}.learn-flow .pronunciation-step .play-btn{margin-bottom:0}.learn-flow .writing-step .writing-area{display:flex;justify-content:center;margin-bottom:16px}.learn-flow .writing-step .writing-area .hanzi-canvas{border:2px solid #ddd;border-radius:8px;background:#fff;cursor:crosshair}.learn-flow .writing-step .writing-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.learn-flow .writing-step .writing-info .stroke-hint{font-size:14px;color:#1976d2}.learn-flow .writing-step .writing-info .stroke-hint .success-text{color:#4caf50;font-weight:600}.learn-flow .writing-step .stroke-order-display{padding:12px;background:#f5f5f5;border-radius:8px;margin-bottom:16px}.learn-flow .writing-step .stroke-order-display .label{font-weight:600;margin-right:8px}.learn-flow .grouping-step .grouping-area .char-display{display:flex;flex-direction:column;align-items:center;margin-bottom:24px}.learn-flow .grouping-step .grouping-area .char-display .char-big{font-size:72px;font-weight:700;color:#1976d2;font-family:KaiTi,STKaiti,serif;line-height:1}.learn-flow .grouping-step .grouping-area .char-display .pinyin{font-size:20px;color:#666;margin-top:8px}.learn-flow .grouping-step .grouping-area .char-display.small{margin-bottom:16px;flex-direction:row;gap:16px;justify-content:flex-start;background:linear-gradient(135deg,#e3f2fd,#bbdefb);padding:12px 20px;border-radius:8px}.learn-flow .grouping-step .grouping-area .char-display.small .char-big{font-size:36px}.learn-flow .grouping-step .grouping-area .char-display.small .pinyin{font-size:18px;margin-top:0;color:#333}.learn-flow .grouping-step .grouping-area .progress-bar-mini{margin-bottom:20px}.learn-flow .grouping-step .grouping-area .progress-bar-mini .progress-label{font-size:13px;color:#555;margin-bottom:6px}.learn-flow .grouping-step .grouping-area .progress-bar-mini .progress-track{height:6px;background:#eee;border-radius:3px;overflow:hidden}.learn-flow .grouping-step .grouping-area .progress-bar-mini .progress-fill{height:100%;background:linear-gradient(90deg,#4caf50,#8bc34a);border-radius:3px;transition:width .3s}.learn-flow .grouping-step .grouping-area .section-title{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:600;color:#333;margin:20px 0 12px;padding-bottom:8px;border-bottom:2px solid #f0f0f0}.learn-flow .grouping-step .grouping-area .section-title .icon{font-size:20px}.learn-flow .grouping-step .grouping-area .group-words-section{margin-bottom:24px}.learn-flow .grouping-step .grouping-area .word-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.learn-flow .grouping-step .grouping-area .word-tabs .word-tab{padding:8px 14px;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:20px;cursor:pointer;transition:all .2s;font-size:15px;display:inline-flex;align-items:center;gap:4px}.learn-flow .grouping-step .grouping-area .word-tabs .word-tab:hover{background:#e3f2fd;border-color:#1976d2}.learn-flow .grouping-step .grouping-area .word-tabs .word-tab.active{background:#1976d2;color:#fff;border-color:#1976d2}.learn-flow .grouping-step .grouping-area .word-tabs .word-tab.studied:not(.active){background:#e8f5e9;border-color:#4caf50}.learn-flow .grouping-step .grouping-area .word-tabs .word-tab .check{color:#4caf50;font-weight:700}.learn-flow .grouping-step .grouping-area .word-tabs .word-tab.active .check{color:#fff}.learn-flow .grouping-step .grouping-area .word-detail-card{background:#fafafa;border:1px solid #E8EAF6;border-radius:10px;padding:16px;margin-top:8px}.learn-flow .grouping-step .grouping-area .word-detail-card .word-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:12px}.learn-flow .grouping-step .grouping-area .word-detail-card .word-main{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.learn-flow .grouping-step .grouping-area .word-detail-card .word-char{font-size:32px;font-weight:700;color:#1565c0;font-family:KaiTi,STKaiti,serif}.learn-flow .grouping-step .grouping-area .word-detail-card .word-explain{font-size:14px;color:#666;background:#fff;padding:4px 10px;border-radius:6px;border:1px solid #e0e0e0}.learn-flow .grouping-step .grouping-area .word-detail-card .word-actions{display:flex;align-items:center;gap:8px}.learn-flow .grouping-step .grouping-area .word-detail-card .word-image{text-align:center;margin:12px 0}.learn-flow .grouping-step .grouping-area .word-detail-card .word-image img{max-width:200px;max-height:160px;border-radius:8px;border:2px solid #fff;box-shadow:0 2px 8px #00000014}.learn-flow .grouping-step .grouping-area .word-detail-card .word-sentences{margin-top:12px;padding-top:12px;border-top:1px dashed #ddd}.learn-flow .grouping-step .grouping-area .word-detail-card .word-sentences .sentences-title{font-size:14px;font-weight:600;color:#555;margin-bottom:8px}.learn-flow .grouping-step .grouping-area .word-detail-card .word-sentences .sentence-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:#fff;border-radius:6px;margin-bottom:6px;border:1px solid #f0f0f0}.learn-flow .grouping-step .grouping-area .word-detail-card .word-sentences .sentence-item .sentence-text{flex:1;font-size:15px;color:#333;line-height:1.6}.learn-flow .grouping-step .grouping-area .sample-sentences-section{margin-top:16px}.learn-flow .grouping-step .grouping-area .sentence-list{display:flex;flex-direction:column;gap:10px}.learn-flow .grouping-step .grouping-area .sentence-card{display:flex;align-items:flex-start;gap:10px;padding:14px;background:#fff8e1;border:1px solid #FFE082;border-radius:8px;transition:all .2s}.learn-flow .grouping-step .grouping-area .sentence-card.played{background:#e8f5e9;border-color:#a5d6a7}.learn-flow .grouping-step .grouping-area .sentence-card .sentence-index{font-weight:700;color:#ff6f00;min-width:24px;font-size:16px}.learn-flow .grouping-step .grouping-area .sentence-card.played .sentence-index{color:#2e7d32}.learn-flow .grouping-step .grouping-area .sentence-card .sentence-content{flex:1;font-size:16px;line-height:1.7;color:#333}.learn-flow .grouping-step .grouping-area .sentence-card .sentence-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.learn-flow .grouping-step .grouping-area .play-btn,.learn-flow .grouping-step .grouping-area .play-btn-sentence{color:#1565c0!important;font-weight:500}.learn-flow .grouping-step .grouping-area .no-group-data{text-align:center;padding:24px;color:#999;display:flex;flex-direction:column;align-items:center;gap:12px}.learn-flow .feedback{margin-top:16px;padding:16px;border-radius:8px;display:flex;align-items:center;gap:12px;font-size:16px;flex-wrap:wrap}.learn-flow .feedback.success{background:#e8f5e9;color:#2e7d32}.learn-flow .feedback.fail{background:#ffebee;color:#c62828}.learn-flow .feedback .feedback-header{display:flex;align-items:center;gap:12px;flex:1}.learn-flow .feedback .playback-section{margin-left:auto}.learn-flow .flow-footer{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding:16px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000f}.learn-flow .debug-panel{margin-top:16px;border:1px solid #ddd;border-radius:8px;overflow:hidden;background:#f8f8f8}.learn-flow .debug-panel .debug-header{padding:8px 12px;background:#e8e8e8;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:13px;font-family:monospace;-webkit-user-select:none;user-select:none}.learn-flow .debug-panel .debug-toggle{font-size:10px;transition:transform .2s}.learn-flow .debug-panel .debug-body{display:none;padding:8px 12px;max-height:200px;overflow-y:auto;font-family:monospace;font-size:12px;background:#fff}.learn-flow .debug-panel .debug-body .debug-line{padding:2px 0;border-bottom:1px solid #eee;display:flex;gap:8px}.learn-flow .debug-panel .debug-body .debug-line:last-child{border-bottom:none}.learn-flow .debug-panel .debug-body .debug-line .debug-time{color:#999;min-width:70px}.learn-flow .debug-panel .debug-body .debug-line .debug-msg{color:#333;word-break:break-all}.learn-flow .game-phase-header{text-align:center;margin-bottom:24px;padding:20px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff}.learn-flow .game-phase-header h2{margin:0 0 4px;font-size:22px}.learn-flow .game-phase-header p{margin:0 0 12px;opacity:.9}.learn-flow .game-phase-header .score-display{display:flex;justify-content:center}.hanzi-learn .page-header{margin-bottom:24px}.hanzi-learn .page-header h2{margin:0 0 16px}.hanzi-learn .page-header .character-info-header{display:flex;align-items:center;gap:24px;background:#fff;padding:20px;border-radius:12px;box-shadow:0 1px 3px #0000000d}.hanzi-learn .page-header .character-info-header .char-big{font-size:64px;font-weight:700;color:#4caf50;font-family:KaiTi,STKaiti,serif;line-height:1}.hanzi-learn .page-header .character-info-header .char-details h3{font-size:24px;color:#333;margin:0 0 4px}.hanzi-learn .page-header .character-info-header .char-details p{color:#666;margin:0 0 8px}.hanzi-learn .page-header .character-info-header .char-details .char-tags{display:flex;gap:8px}.hanzi-learn .learning-container{display:flex;gap:24px;flex-wrap:wrap}.hanzi-learn .canvas-section{flex:1;min-width:320px;display:flex;flex-direction:column;align-items:center;background:#fff;padding:24px;border-radius:12px;box-shadow:0 1px 3px #0000000d}.hanzi-learn .canvas-section .canvas-wrapper{display:flex;justify-content:center;margin-bottom:16px}.hanzi-learn .canvas-section .hanzi-canvas{background:#fff;border-radius:8px;cursor:crosshair;max-width:100%}.hanzi-learn .canvas-section .stroke-hint{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:16px;color:#4caf50;font-weight:500}.hanzi-learn .canvas-section .stroke-hint .anticon{cursor:pointer;font-size:20px}.hanzi-learn .canvas-section .stroke-hint .anticon:hover{color:#2e7d32}.hanzi-learn .canvas-section .stroke-progress{width:100%;max-width:300px}.hanzi-learn .controls-section{width:280px;display:flex;flex-direction:column;gap:16px}.hanzi-learn .controls-section .info-card{border-radius:12px}.hanzi-learn .controls-section .info-card .stroke-order h4{margin-bottom:8px;color:#333}.hanzi-learn .controls-section .info-card .stroke-order p{color:#666;line-height:1.8}.hanzi-learn .controls-section .controls{display:flex;flex-direction:column;gap:12px}.hanzi-learn .controls-section .controls .control-btn{height:44px;font-size:15px}.hanzi-learn .controls-section .controls .clear-btn{background:#ff5722;border-color:#ff5722;color:#fff}.hanzi-learn .controls-section .controls .clear-btn:hover{background:#e64a19!important;border-color:#e64a19!important}.hanzi-learn .controls-section .controls .next-btn{background:#2196f3;border-color:#2196f3;color:#fff}.hanzi-learn .controls-section .controls .next-btn:hover{background:#1976d2!important;border-color:#1976d2!important}.hanzi-learn .feedback-modal .feedback-content{text-align:center;padding:20px 0}.hanzi-learn .feedback-modal .feedback-content .feedback-icon{font-size:64px;margin-bottom:16px}.hanzi-learn .feedback-modal .feedback-content.success .feedback-icon{color:#4caf50}.hanzi-learn .feedback-modal .feedback-content.error .feedback-icon{color:#f44336}.hanzi-learn .feedback-modal .feedback-content .feedback-message{font-size:18px;color:#333}@media (max-width: 768px){.hanzi-learn .learning-container{flex-direction:column}.hanzi-learn .controls-section{width:100%}.hanzi-learn .page-header .character-info-header{flex-direction:column;text-align:center}}.video-learn .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.video-learn .page-header h2{margin:0}.video-learn .page-header .char-info{display:flex;align-items:center;gap:12px}.video-learn .page-header .char-info .char{font-size:32px;font-weight:700;color:#4caf50;font-family:KaiTi,STKaiti,serif}.video-learn .page-header .char-info .pinyin{font-size:18px;color:#666}.video-learn .video-card{border-radius:12px;margin-bottom:24px}.video-learn .video-card .video-wrapper{background:#000;border-radius:8px;overflow:hidden;margin-bottom:16px}.video-learn .video-card .video-player{width:100%;max-height:500px;display:block}.video-learn .video-card .no-video{text-align:center;padding:60px 20px;color:#999}.video-learn .video-card .no-video p{margin-top:12px}.video-learn .video-card .video-controls{display:flex;justify-content:center}.video-learn .info-card{border-radius:12px}.video-learn .info-card .char-details .detail-item{display:flex;padding:8px 0;border-bottom:1px solid #f0f0f0}.video-learn .info-card .char-details .detail-item:last-child{border-bottom:none}.video-learn .info-card .char-details .detail-item .label{width:80px;color:#666;font-weight:500}.pronunciation .page-header{margin-bottom:24px}.pronunciation .page-header h2{margin:0}.pronunciation .pronunciation-card{border-radius:12px}.pronunciation .pronunciation-card .character-display{text-align:center;padding:40px 0;border-bottom:1px solid #f0f0f0;margin-bottom:32px}.pronunciation .pronunciation-card .character-display .char{font-size:96px;font-weight:700;color:#4caf50;font-family:KaiTi,STKaiti,serif;line-height:1;margin-bottom:16px}.pronunciation .pronunciation-card .character-display .pinyin{font-size:32px;color:#666;margin-bottom:24px}.pronunciation .pronunciation-card .character-display .play-btn{height:48px;font-size:16px}.pronunciation .pronunciation-card .recording-section{text-align:center;padding:20px 0}.pronunciation .pronunciation-card .recording-section .audio-visualizer{display:flex;justify-content:center;align-items:flex-end;gap:8px;height:100px;margin-bottom:16px}.pronunciation .pronunciation-card .recording-section .audio-visualizer .wave-bar{width:12px;background:linear-gradient(to top,#4caf50,#81c784);border-radius:6px;transition:height .1s ease}.pronunciation .pronunciation-card .recording-section .recording-time{font-size:18px;color:#666;margin-bottom:24px;font-family:monospace}.pronunciation .pronunciation-card .feedback{text-align:center;padding:24px;border-radius:12px;margin-top:24px}.pronunciation .pronunciation-card .feedback.success{background:#e8f5e9;color:#4caf50}.pronunciation .pronunciation-card .feedback.fail{background:#ffebee;color:#f44336}.pronunciation .pronunciation-card .feedback .score{margin-bottom:8px}.pronunciation .pronunciation-card .feedback .score .score-value{font-size:48px;font-weight:700}.pronunciation .pronunciation-card .feedback .score .score-unit{font-size:24px}.pronunciation .pronunciation-card .feedback .message{font-size:16px}.profile .profile-card{border-radius:12px;text-align:center}.profile .profile-card .avatar-section{padding:20px 0 24px}.profile .profile-card .avatar-section .user-avatar{margin-bottom:16px;background:linear-gradient(135deg,#667eea,#764ba2)}.profile .profile-card .avatar-section h2{margin:0 0 4px;color:#333}.profile .profile-card .avatar-section .user-id{color:#999;font-size:13px;margin:0}.profile .profile-card .stats-section{display:flex;justify-content:center;gap:48px;padding:20px 0;border-top:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0;margin-bottom:20px}.profile .profile-card .stats-section .stat-item{display:flex;align-items:center;gap:8px}.profile .profile-card .stats-section .stat-item .anticon{font-size:24px;color:#4caf50}.profile .profile-card .stats-section .stat-item .stat-value{font-size:20px;font-weight:600;color:#333}.profile .profile-card .stats-section .stat-item .stat-label{font-size:13px;color:#999}.profile .profile-card .actions-section{display:flex;flex-direction:column;gap:12px}.profile .profile-card .actions-section .ant-btn{height:40px}.profile .info-card,.profile .stats-card{border-radius:12px}.profile .learning-stat{display:flex;align-items:center;gap:16px;padding:16px;background:#f8f9fa;border-radius:12px}.profile .learning-stat .stat-icon{font-size:32px}.profile .learning-stat .stat-info .stat-num{font-size:24px;font-weight:600;color:#333}.profile .learning-stat .stat-info .stat-text{font-size:14px;color:#666}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root,.ant-layout{min-height:100vh}.page-container{padding:24px;background:#f5f7fa;min-height:calc(100vh - 64px)}.page-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000000d}.kanzi-font{font-family:KaiTi,STKaiti,楷体,serif}.mizige{position:relative;background:#fff;border:2px solid #ddd;display:inline-flex;justify-content:center;align-items:center}.mizige:before,.mizige:after{content:"";position:absolute;background:#e8e8e8}.mizige:before{width:1px;height:100%;left:50%;top:0}.mizige:after{width:100%;height:1px;top:50%;left:0}
