:root{--elmo:#ed1c24;--cookie:#0072ce;--bigbird:#ffc72c;--oscar:#00a651;--grover:#6b5ce7;--abby:#ff6b9d;--orange:#ff8c00;--cream:#fff8e7;--brown:#8b6f47;--street:#006b3f;--shadow-warm:#8b6f4726;--shadow-deep:#3b2f201f;--felt-border:3.5px;--radius-card:24px;--radius-btn:50px;--radius-chip:16px;--font-display:"Baloo 2", "Nunito", "PingFang SC", cursive;--font-body:"Nunito", "PingFang SC", "Microsoft YaHei", sans-serif;--transition-bounce:cubic-bezier(.34, 1.56, .64, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);color:#3b2f20;background:var(--cream);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.65}h1,h2,h3,h4,.section-title,.login-title,.game-title{font-family:var(--font-display);letter-spacing:.02em}button,.course-card,.lesson-card,.branch-card,.vocab-chip,.char-card{transition:transform .25s var(--transition-bounce), box-shadow .25s ease}button:active,.course-card:active,.lesson-card:active{transform:scale(.96)!important}:focus-visible{outline:3px solid var(--bigbird);outline-offset:2px}body:before{content:"";pointer-events:none;z-index:0;background-image:repeating-linear-gradient(0deg,#0000,#0000 39px,#8b6f470a 39px 40px),repeating-linear-gradient(90deg,#0000,#0000 79px,#8b6f4708 79px 80px);position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-12px)}60%{transform:translateY(-4px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes wiggle{0%,to{transform:rotate(0)}20%{transform:rotate(-4deg)}40%{transform:rotate(4deg)}60%{transform:rotate(-2deg)}80%{transform:rotate(2deg)}}@keyframes puppetPop{0%{opacity:0;transform:translateY(60px)scale(.7)rotate(-5deg)}60%{opacity:1;transform:translateY(-8px)scale(1.05)rotate(2deg)}80%{transform:translateY(3px)scale(.98)rotate(-1deg)}to{transform:translateY(0)scale(1)rotate(0)}}@keyframes staggerIn{0%{opacity:0;transform:translateY(24px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes hoverWobble{0%,to{transform:translateY(-6px)rotate(0)}25%{transform:translateY(-8px)rotate(-1.5deg)}75%{transform:translateY(-4px)rotate(1.5deg)}}.animate-fadeIn{animation:fadeIn .45s var(--transition-bounce)}.animate-puppet{animation:puppetPop .6s var(--transition-bounce)}.app-main{z-index:1;max-width:1060px;min-height:calc(100vh - 64px);margin:0 auto;padding:24px 16px 60px;position:relative}.app-header{color:#fff;z-index:1000;border-bottom:5px solid var(--bigbird);background:linear-gradient(#007a47 0%,#006b3f 100%);position:sticky;top:0;box-shadow:0 4px 16px #006b3f59,0 2px #005a34,inset 0 1px #ffffff1a}.header-inner{justify-content:space-between;align-items:center;gap:12px;max-width:1060px;margin:0 auto;padding:10px 16px;display:flex}.header-brand{align-items:center;gap:10px;display:flex}.header-logo{filter:drop-shadow(1px 1px #0003);font-size:28px;font-weight:800}.header-title{font-family:var(--font-display);white-space:nowrap;color:var(--bigbird);text-shadow:2px 2px #00000040,0 0 20px #ffc72c26;letter-spacing:1px;font-size:22px;font-weight:800}.header-actions{align-items:center;gap:12px;display:flex}.lang-switcher{background:#ffc72c33;border:2px solid #ffc72c4d;border-radius:20px;gap:4px;padding:3px;display:flex}.lang-btn{color:#fffc;cursor:pointer;background:0 0;border:none;border-radius:16px;padding:5px 12px;font-family:inherit;font-size:13px;font-weight:800;transition:all .2s}.lang-btn:hover{color:#fff;background:#ffc72c33}.lang-btn-active{color:#006b3f;background:#ffc72c}.header-user{align-items:center;gap:8px;display:flex}.header-username{color:#ffc72c;font-size:14px;font-weight:700}.logout-btn{color:#ffc72c;cursor:pointer;background:0 0;border:2px solid #ffc72c;border-radius:20px;padding:4px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:all .2s}.logout-btn:hover{color:#006b3f;background:#ffc72c}.login-page{background:#87ceeb;justify-content:center;align-items:center;min-height:calc(100vh - 64px);margin:-24px -16px -60px;padding:24px 16px;display:flex;position:relative}.login-page:before,.login-page:after{content:"";background:#fff9;border-radius:50%;animation:12s ease-in-out infinite floatCloud;position:absolute}.login-page:before{width:200px;height:80px;top:10%;left:10%;box-shadow:60px -20px 0 10px #ffffff80,-30px -10px 0 20px #fff6}.login-page:after{width:160px;height:60px;animation-delay:-4s;top:15%;right:15%;box-shadow:40px -15px 0 8px #ffffff80,-20px -8px 0 15px #fff6}@keyframes floatCloud{0%,to{transform:translate(0)}50%{transform:translate(20px)}}.login-card{background:var(--cream);text-align:center;width:100%;max-width:440px;animation:puppetPop .7s var(--transition-bounce);border:4px solid var(--bigbird);z-index:1;border-radius:28px;padding:44px 40px;position:relative;box-shadow:0 12px 40px #00000026,0 4px #e0a800,inset 0 2px #fffc}.login-mascot{margin-bottom:8px}.login-title{font-family:var(--font-display);color:var(--elmo);text-shadow:2px 2px #ed1c241f;letter-spacing:1.5px;margin-bottom:6px;font-size:32px;font-weight:800;line-height:1.2}.login-subtitle{color:#8b6f47;margin-bottom:24px;font-size:14px;font-weight:600}.login-tabs{border-bottom:3px solid #ffc72c;gap:4px;margin-bottom:24px;display:flex}.login-tab{color:#8b6f47;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;border-radius:12px 12px 0 0;flex:1;margin-bottom:-3px;padding:10px 0;font-family:inherit;font-size:15px;font-weight:800;transition:all .2s}.login-tab:hover{color:#ed1c24;background:#ed1c240d}.login-tab-active{color:#ed1c24;background:#ed1c240d;border-bottom-color:#ed1c24}.login-form{flex-direction:column;gap:16px;display:flex}.form-group{text-align:left}.form-label{color:#8b6f47;margin-bottom:6px;font-size:14px;font-weight:800;display:block}.form-input{background:#fff;border:3px solid #ffc72c;border-radius:14px;outline:none;width:100%;padding:12px 16px;font-family:inherit;font-size:15px;font-weight:600;transition:border-color .2s,box-shadow .2s}.form-input:focus{border-color:#0072ce;box-shadow:0 0 0 3px #0072ce26}.form-textarea{resize:vertical;min-height:60px}.login-submit{color:#fff;cursor:pointer;text-shadow:1px 1px #00000026;background:#ed1c24;border:3px solid #c41018;border-radius:50px;margin-top:8px;padding:14px;font-family:inherit;font-size:18px;font-weight:800;transition:all .2s;box-shadow:0 4px #c41018,0 6px 16px #ed1c244d}.login-submit:hover{transform:translateY(-2px);box-shadow:0 6px #c41018,0 8px 20px #ed1c2466}.login-submit:active{transform:translateY(2px);box-shadow:0 2px #c41018,0 3px 8px #ed1c244d}.login-submit:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:0 4px #c41018}.section-title{font-family:var(--font-display);color:var(--cookie);letter-spacing:.5px;text-shadow:1px 1px #0072ce1a;letter-spacing:.5px;margin-bottom:20px;font-size:26px;font-weight:800}.back-btn{color:#006b3f;cursor:pointer;background:#e8f5e9;border:2px solid #006b3f;border-radius:50px;align-items:center;gap:6px;margin-bottom:12px;padding:8px 16px;font-family:inherit;font-size:15px;font-weight:800;transition:all .2s;display:inline-flex}.back-btn:hover{color:#ffc72c;background:#006b3f}.home-page{animation:.4s ease-out fadeIn}.course-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;display:grid}.course-card{background:var(--cream);border-radius:var(--radius-card);text-align:center;cursor:pointer;border:var(--felt-border) solid var(--bigbird);animation:staggerIn .5s var(--transition-bounce) both;padding:32px 24px;position:relative;overflow:hidden;box-shadow:0 5px #8b6f472e,0 8px 24px #00000014}.course-card:first-child{border-color:var(--elmo);animation-delay:50ms}.course-card:nth-child(2){border-color:var(--cookie);animation-delay:.12s}.course-card:nth-child(3){border-color:var(--bigbird);animation-delay:.19s}.course-card:nth-child(4){border-color:var(--oscar);animation-delay:.26s}.course-unlocked:hover{animation:.8s ease-in-out infinite hoverWobble;box-shadow:0 8px #8b6f472e,0 16px 36px #00000024}.course-locked{opacity:.55;cursor:default}.lock-overlay{z-index:2;background:#fff8e799;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.lock-icon{font-size:40px}.course-emoji{filter:drop-shadow(2px 2px #0000001a);margin-bottom:12px;font-size:72px}.course-title{color:#0072ce;margin-bottom:6px;font-size:18px;font-weight:800}.course-desc{color:#8b6f47;margin-bottom:16px;font-size:13px;font-weight:600;line-height:1.5}.progress-bar-container{align-items:center;gap:8px;margin-bottom:12px;display:flex}.progress-bar{background:#ffe4a0;border:2px solid #ffc72c;border-radius:5px;flex:1;height:10px;overflow:hidden}.progress-fill{background:#00a651;border-radius:5px;height:100%;transition:width .5s}.progress-text{color:#00a651;min-width:36px;font-size:13px;font-weight:800}.course-btn{color:#fff;cursor:pointer;text-shadow:1px 1px #00000026;background:#ff8c00;border:3px solid #e07000;border-radius:50px;padding:10px 24px;font-family:inherit;font-size:15px;font-weight:800;transition:all .2s;box-shadow:0 3px #e07000}.course-btn:hover{transform:scale(1.08);box-shadow:0 4px #e07000,0 6px 16px #ff8c004d}.lesson-page{animation:.4s ease-out fadeIn}.lesson-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.lesson-card{background:var(--cream);border-radius:var(--radius-card);box-shadow:0 5px 0 var(--shadow-warm), 0 8px 24px var(--shadow-deep);animation:staggerIn .5s var(--transition-bounce) both;text-align:center;cursor:pointer;border-left:6px solid var(--card-accent,#0072ce);border:4px solid var(--card-accent,#0072ce);padding:32px 24px;transition:all .3s}.lesson-card:hover{transform:translateY(-6px);box-shadow:0 8px #8b6f471f,0 12px 30px #0000001a}.lesson-card-icon{color:#fff;border:3px solid #0000001a;border-radius:20px;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 16px;font-size:32px;display:flex;box-shadow:0 3px #00000026}.lesson-card-title{color:#3b2f20;margin-bottom:6px;font-size:18px;font-weight:800}.lesson-card-desc{color:#8b6f47;margin-bottom:16px;font-size:13px;font-weight:600;line-height:1.5}.lesson-card-btn{color:#fff;cursor:pointer;text-shadow:1px 1px #00000026;border:3px solid #00000026;border-radius:50px;padding:10px 24px;font-family:inherit;font-size:15px;font-weight:800;transition:all .2s;box-shadow:0 3px #00000026}.lesson-card-btn:hover{transform:scale(1.08);box-shadow:0 4px #00000026,0 6px 16px #00000026}.textbook-page{animation:.4s ease-out fadeIn}.textbook-tabs{background:#fff8e7;border:3px solid #ffc72c;border-radius:20px;flex-wrap:wrap;gap:6px;margin-bottom:24px;padding:8px;display:flex;box-shadow:0 3px #8b6f471a,0 4px 12px #0000000d}.textbook-tab{color:#8b6f47;cursor:pointer;background:0 0;border:2px solid #0000;border-radius:50px;padding:8px 18px;font-family:inherit;font-size:14px;font-weight:800;transition:all .2s}.textbook-tab:hover{color:#0072ce;background:#0072ce14}.textbook-tab-active{color:#fff;background:#0072ce;border-color:#005ea6;box-shadow:0 2px #005ea6}.textbook-tab-active:hover{color:#fff;background:#0072ce}.tips-btn{color:#ff8c00;cursor:pointer;background:#fff8e7;border:3px solid #ffc72c;border-radius:50px;margin-left:auto;padding:8px 18px;font-family:inherit;font-size:14px;font-weight:800;transition:all .2s}.tips-btn:hover{color:#3b2f20;background:#ffc72c}.textbook-section{background:#fff8e7;border:3px solid #ffc72c4d;border-radius:24px;padding:28px 24px;box-shadow:0 3px #8b6f471a,0 4px 16px #0000000d}.subsection-title{color:#0072ce;border-bottom:3px solid #ffc72c;margin-bottom:16px;padding-bottom:8px;font-size:19px;font-weight:800}.dialogue-list{flex-direction:column;gap:12px;display:flex}.dialogue-line{cursor:pointer;background:#fff;border:3px solid #0072ce26;border-radius:20px;align-items:center;gap:12px;padding:14px 18px;transition:all .3s;display:flex}.dialogue-line:hover{border-color:#0072ce;box-shadow:0 2px 8px #0072ce1a}.dialogue-playing{background:#e3f0ff;border-color:#0072ce;box-shadow:0 3px 12px #0072ce33}.dialogue-speaker{color:#ed1c24;background:#ed1c2414;border-radius:12px;min-width:40px;padding:4px 10px;font-size:14px;font-weight:800}.dialogue-content{flex:1}.dialogue-hanzi{color:#3b2f20;margin-bottom:2px;font-size:18px;font-weight:700}.dialogue-pinyin{color:#8b6f47;font-size:13px;font-weight:600}.play-btn{cursor:pointer;filter:drop-shadow(1px 1px #0000001a);background:0 0;border:none;padding:4px;font-size:22px}.char-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:16px;display:grid}.char-card{text-align:center;cursor:pointer;background:#fff;border:3px solid #ffc72c;border-radius:20px;padding:24px 16px;transition:all .3s}.char-card:hover{border-color:#0072ce;transform:translateY(-3px);box-shadow:0 4px #0072ce26}.char-card-selected{background:#e3f0ff;border-color:#0072ce}.char-large{color:#0072ce;text-shadow:2px 2px #0072ce1a;margin-bottom:8px;font-size:52px;font-weight:700;display:block}.char-details{margin-top:8px}.char-pinyin{color:#ff8c00;font-size:15px;font-weight:700}.char-strokes{color:#8b6f47;margin:2px 0;font-size:12px;font-weight:600}.char-meaning{color:#8b6f47;font-size:13px;font-weight:600}.trace-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:16px;display:grid}.trace-box{aspect-ratio:1;background:#fffdf7;border:3px solid #8b6f47;border-radius:16px;width:100%;position:relative;overflow:hidden}.trace-grid-lines{width:100%;height:100%;position:absolute;inset:0}.trace-char-ghost{color:#0072ce1a;pointer-events:none;justify-content:center;align-items:center;font-size:60px;font-weight:700;display:flex;position:absolute;inset:0}.trace-label{text-align:center;color:#8b6f47;font-size:12px;font-weight:600;position:absolute;bottom:4px;left:0;right:0}.vocab-chips{flex-wrap:wrap;gap:14px;display:flex}.vocab-chip-wrapper{flex-direction:column;align-items:center;gap:4px;display:flex}.vocab-chip{cursor:pointer;background:#fff;border:3px solid #6b5ce7;border-radius:20px;flex-direction:column;align-items:center;gap:4px;padding:16px 20px;font-family:inherit;transition:all .2s;display:flex;box-shadow:0 3px #6b5ce733}.vocab-chip:hover{border-color:#ed1c24;transform:translateY(-3px);box-shadow:0 5px #ed1c2426,0 6px 16px #ed1c241a}.vocab-emoji{filter:drop-shadow(1px 1px #0000001a);font-size:36px}.vocab-word{color:#0072ce;font-size:20px;font-weight:800}.vocab-pinyin{color:#ff8c00;font-size:13px;font-weight:700}.mic-btn,.mic-btn-inline{cursor:pointer;color:#ed1c24;background:#fff0f0;border:2px solid #ed1c24;border-radius:50px;align-items:center;gap:4px;padding:8px 16px;font-family:inherit;font-size:16px;font-weight:700;transition:all .2s;display:inline-flex}.mic-btn:hover,.mic-btn-inline:hover{color:#fff;background:#ed1c24}.mic-recording{animation:1s infinite pulse;color:#fff!important;background:#ed1c24!important;border-color:#c41018!important}.mic-btn-inline{margin-top:8px;font-size:14px}.speech-result{background:#fff8e7;border:3px solid #ffc72c;border-radius:20px;margin-top:16px;padding:16px}.speech-scores{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.score-item{flex-direction:column;align-items:center;gap:4px;display:flex}.score-label{color:#8b6f47;font-size:12px;font-weight:700}.score-value{color:#0072ce;font-size:26px;font-weight:800}.score-overall{color:#ff8c00}.sentence-list{flex-direction:column;gap:14px;display:flex}.sentence-card{background:#fff;border:3px solid #6b5ce733;border-left:6px solid #6b5ce7;border-radius:20px;padding:18px 20px}.sentence-hanzi{color:#3b2f20;margin-bottom:4px;font-size:20px;font-weight:800}.sentence-pinyin{color:#ff8c00;margin-bottom:4px;font-size:14px;font-weight:700}.sentence-translation{color:#8b6f47;font-size:13px;font-weight:600}.sub-template{color:#3b2f20;background:#fff8e7;border:3px solid #ffc72c;border-radius:20px;justify-content:center;align-items:center;gap:8px;margin-bottom:24px;padding:20px;font-size:26px;font-weight:800;display:flex}.sub-blank{text-align:center;color:#8b6f47;border-bottom:4px solid #ffc72c;min-width:80px;padding:4px 12px;transition:all .2s;display:inline-block}.sub-filled{color:#0072ce;border-bottom-color:#0072ce}.sub-zai{color:#3b2f20}.sub-group{margin-bottom:16px}.sub-group-label{color:#8b6f47;margin-bottom:8px;font-size:14px;font-weight:800}.sub-options{flex-wrap:wrap;gap:8px;display:flex}.sub-option{cursor:pointer;background:#fff;border:3px solid #ffc72c;border-radius:50px;padding:10px 20px;font-family:inherit;font-size:16px;font-weight:700;transition:all .2s}.sub-option:hover{background:#e3f0ff;border-color:#0072ce}.sub-option-active{color:#fff;background:#0072ce;border-color:#0072ce;box-shadow:0 3px #005ea6}.sub-result{text-align:center;background:#e8f5e9;border:3px solid #00a651;border-radius:20px;margin-top:16px;padding:16px}.sub-result-text{color:#00a651;font-size:22px;font-weight:800}.modal-overlay{z-index:9000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#3b2f2080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-card{text-align:center;background:#fff8e7;border:4px solid #ffc72c;border-radius:24px;width:100%;max-width:400px;padding:36px 32px;position:relative;box-shadow:0 8px 32px #00000040}.modal-close{cursor:pointer;color:#8b6f47;background:0 0;border:none;font-size:22px;font-weight:800;transition:color .2s;position:absolute;top:12px;right:16px}.modal-close:hover{color:#ed1c24}.vocab-modal-emoji{filter:drop-shadow(2px 2px #0000001a);margin-bottom:8px;font-size:64px}.vocab-modal-word{color:#0072ce;text-shadow:2px 2px #0072ce1a;margin-bottom:4px;font-size:36px;font-weight:800}.vocab-modal-pinyin{color:#ff8c00;margin-bottom:8px;font-size:18px;font-weight:700}.vocab-modal-meaning{color:#8b6f47;font-size:16px;font-weight:600}.tips-modal{max-width:480px}.tips-modal-title{color:#ff8c00;margin-bottom:16px;font-size:22px;font-weight:800}.tips-content{text-align:left}.tips-line{color:#3b2f20;border-bottom:2px solid #ffc72c4d;padding:8px 0;font-size:15px;font-weight:600;line-height:1.6}.tips-line:last-child{border-bottom:none}.chat-page{flex-direction:column;height:calc(100vh - 120px);animation:.4s ease-out fadeIn;display:flex}.chat-messages{flex-direction:column;flex:1;gap:12px;padding:16px 0;display:flex;overflow-y:auto}.chat-bubble{align-items:flex-start;gap:8px;max-width:85%;display:flex}.chat-user{flex-direction:row-reverse;align-self:flex-end}.chat-ai{align-self:flex-start}.chat-avatar{flex-shrink:0}.chat-content{word-break:break-word;border-radius:20px;padding:14px 18px;font-size:15px;font-weight:600;line-height:1.6}.chat-content.user{color:#fff;background:#0072ce;border:3px solid #005ea6;border-bottom-right-radius:6px;box-shadow:0 2px #005ea6}.chat-content.assistant{color:#3b2f20;background:#fff8e7;border:3px solid #ffc72c;border-bottom-left-radius:6px;box-shadow:0 2px #ffc72c4d}.chat-typing{gap:5px;padding:16px 20px;display:flex}.typing-dot{background:#ff8c00;border-radius:50%;width:10px;height:10px;animation:1.4s infinite bounce}.typing-dot:nth-child(2){background:#ffc72c;animation-delay:.2s}.typing-dot:nth-child(3){background:#ed1c24;animation-delay:.4s}.chat-input-area{background:#fff8e7;border-top:3px solid #ffc72c;gap:8px;margin:0 -16px;padding:12px 16px;display:flex}.chat-input{background:#fff;border:3px solid #ffc72c;border-radius:50px;outline:none;flex:1;padding:12px 16px;font-family:inherit;font-size:15px;font-weight:600;transition:border-color .2s}.chat-input:focus{border-color:#0072ce}.chat-mic-btn{cursor:pointer;background:#fff0f0;border:3px solid #ed1c24;border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;font-size:20px;transition:all .2s;display:flex}.chat-mic-btn:hover{background:#ed1c24}.chat-send-btn{color:#fff;cursor:pointer;background:#ed1c24;border:3px solid #c41018;border-radius:50px;padding:12px 24px;font-family:inherit;font-size:15px;font-weight:800;transition:all .2s;box-shadow:0 3px #c41018}.chat-send-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px #c41018}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.vision-page{animation:.4s ease-out fadeIn}.vision-score{color:#fff;background:#ff8c00;border:3px solid #e07000;border-radius:50px;margin-bottom:16px;padding:8px 20px;font-size:15px;font-weight:800;display:inline-block;box-shadow:0 3px #e07000}.vision-tabs{background:#fff8e7;border:3px solid #ffc72c;border-radius:20px;gap:6px;margin-bottom:20px;padding:6px;display:flex;box-shadow:0 3px #8b6f471a}.vision-tab{color:#8b6f47;cursor:pointer;background:0 0;border:2px solid #0000;border-radius:50px;flex:1;padding:10px 14px;font-family:inherit;font-size:14px;font-weight:800;transition:all .2s}.vision-tab:hover{color:#0072ce;background:#0072ce14}.vision-tab-active{color:#fff;background:#6b5ce7;border-color:#5648c4;box-shadow:0 2px #5648c4}.vision-tab-active:hover{color:#fff;background:#6b5ce7}.vision-content{text-align:center;background:#fff8e7;border:3px solid #ffc72c4d;border-radius:24px;padding:24px;box-shadow:0 3px #8b6f471a,0 4px 16px #0000000d}.vision-instruction{color:#8b6f47;margin-bottom:16px;font-size:16px;font-weight:700}.vision-target{background:#ffc72c;border:3px solid #e0a800;border-radius:50px;margin-bottom:16px;padding:12px 24px;display:inline-block;box-shadow:0 3px #e0a800}.target-label{color:#3b2f20;font-size:16px;font-weight:800}.target-label strong{color:#ed1c24;font-size:20px}.vision-progress{justify-content:center;gap:8px;margin-bottom:16px;display:flex}.progress-dot{background:#ffe4a0;border:2px solid #ffc72c;border-radius:50%;width:14px;height:14px;transition:all .3s}.dot-complete{background:#00a651;border-color:#008c44}.dot-current{background:#ff8c00;border-color:#e07000;animation:1.5s infinite pulse}.face-container{justify-content:center;margin:16px 0;display:flex}.selfie-camera{max-width:360px;margin:16px auto}.camera-frame{background:#3b2f20;border:4px solid #8b6f47;border-radius:24px;justify-content:center;align-items:center;min-height:280px;padding:24px;display:flex;position:relative}.camera-bg{opacity:.3;font-size:72px}.selfie-prompt{flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.selfie-target-text{color:#fff;font-size:18px;font-weight:800}.selfie-target-text strong{color:#ffc72c;font-size:24px}.selfie-countdown{color:#ffc72c;text-shadow:3px 3px #0000004d;font-size:64px;font-weight:900;animation:1s infinite pulse}.selfie-capture-btn{color:#fff;cursor:pointer;background:#ed1c24;border:3px solid #c41018;border-radius:50px;padding:12px 28px;font-family:inherit;font-size:16px;font-weight:800;transition:all .2s;box-shadow:0 3px #c41018}.selfie-capture-btn:hover{transform:scale(1.08)}.selfie-start{text-align:center;color:#fff}.selfie-start p{margin-bottom:12px;font-size:18px;font-weight:700}.selfie-start-btn{color:#fff;cursor:pointer;background:#0072ce;border:3px solid #005ea6;border-radius:50px;padding:12px 28px;font-family:inherit;font-size:16px;font-weight:800;box-shadow:0 3px #005ea6}.selfie-score-display{color:#0072ce;margin-top:12px;font-size:16px;font-weight:800}.object-feedback{border:3px solid #0000;border-radius:50px;margin-bottom:12px;padding:10px 24px;font-weight:800;display:inline-block}.object-feedback.correct{color:#00a651;background:#e8f5e9;border-color:#00a651}.object-feedback.wrong{color:#ed1c24;background:#ffebee;border-color:#ed1c24}.object-feedback.complete{color:#ff8c00;background:#fff8e7;border-color:#ffc72c}.object-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px;margin-top:12px;display:grid}.object-card{text-align:center;cursor:pointer;background:#fff;border:3px solid #ffc72c;border-radius:20px;padding:16px 8px;transition:all .2s}.object-card:hover{border-color:#0072ce;transform:translateY(-3px);box-shadow:0 4px #0072ce26}.object-found{opacity:.6;cursor:default;background:#e8f5e9;border-color:#00a651}.object-emoji{filter:drop-shadow(1px 1px #0000001a);margin-bottom:6px;font-size:40px;display:block}.object-label{color:#8b6f47;font-size:12px;font-weight:700}.game-page{animation:.4s ease-out fadeIn}.game-intro{text-align:center;padding:40px 20px}.game-title{color:#ed1c24;text-shadow:2px 2px #ed1c241a;letter-spacing:1px;margin:16px 0 8px;font-size:30px;font-weight:800}.game-intro-text{color:#8b6f47;max-width:460px;margin-bottom:24px;margin-left:auto;margin-right:auto;font-size:16px;font-weight:600;line-height:1.6}.game-start-btn{color:#fff;cursor:pointer;text-shadow:1px 1px #00000026;background:#ff8c00;border:3px solid #e07000;border-radius:50px;padding:16px 40px;font-family:inherit;font-size:20px;font-weight:800;transition:all .2s;box-shadow:0 4px #e07000,0 8px 20px #ff8c004d}.game-start-btn:hover{transform:translateY(-3px);box-shadow:0 6px #e07000,0 10px 24px #ff8c0066}.game-start-btn:active{transform:translateY(2px);box-shadow:0 2px #e07000}.game-select{text-align:center}.badge-collection{justify-content:center;gap:14px;margin-bottom:20px;display:flex}.badge-item{filter:drop-shadow(2px 2px #00000026);font-size:40px;animation:2s infinite bounce}.branch-grid{grid-template-columns:repeat(2,1fr);gap:16px;margin-top:16px;display:grid}.branch-card{text-align:center;cursor:pointer;border:4px solid var(--branch-color,#0072ce);background:#fff8e7;border-radius:24px;padding:24px 16px;transition:all .3s;box-shadow:0 4px #8b6f471f,0 6px 20px #0000000f}.branch-card:hover:not(.branch-done){transform:translateY(-6px);box-shadow:0 8px #8b6f471f,0 12px 30px #0000001a}.branch-done{opacity:.65;cursor:default}.branch-icon{filter:drop-shadow(2px 2px #0000001a);margin-bottom:8px;font-size:48px;display:block}.branch-title{color:#3b2f20;margin-bottom:4px;font-size:17px;font-weight:800}.branch-desc{color:#8b6f47;margin-bottom:8px;font-size:13px;font-weight:600}.branch-badge{color:#00a651;font-size:15px;font-weight:800}.final-challenge{background:#fff8e7;border:4px solid #ffc72c;border-radius:24px;margin-top:24px;padding:24px}.final-challenge h3{color:#ff8c00;margin-bottom:12px;font-size:22px;font-weight:800}.final-btn{color:#fff;cursor:pointer;background:#ed1c24;border:3px solid #c41018;border-radius:50px;padding:14px 32px;font-family:inherit;font-size:18px;font-weight:800;transition:all .2s;box-shadow:0 4px #c41018}.final-btn:hover{transform:translateY(-3px);box-shadow:0 6px #c41018,0 8px 20px #ed1c244d}.game-playing{text-align:center}.minigame{background:#fff8e7;border:3px solid #ffc72c4d;border-radius:24px;padding:24px;box-shadow:0 3px #8b6f471a,0 4px 16px #0000000d}.minigame h3{color:#0072ce;margin-bottom:8px;font-size:22px;font-weight:800}.minigame p{color:#8b6f47;margin-bottom:16px;font-weight:600}.minigame-progress{color:#0072ce;margin-top:16px;font-size:16px;font-weight:800}.game-action-btn{color:#fff;cursor:pointer;background:#0072ce;border:3px solid #005ea6;border-radius:50px;padding:14px 32px;font-family:inherit;font-size:17px;font-weight:800;transition:all .2s;box-shadow:0 3px #005ea6}.game-action-btn:hover{transform:translateY(-3px);box-shadow:0 5px #005ea6}.nianhua-scene{background:#fff8e7;border:3px solid #ed1c24;border-radius:20px;min-height:280px;margin:12px 0;position:relative;overflow:hidden}.nianhua-bg{opacity:.3;justify-content:space-around;padding:16px;font-size:52px;display:flex}.nianhua-item{cursor:pointer;background:#ffc72c80;border:3px solid #0000;border-radius:50%;padding:10px;font-size:32px;transition:all .3s;position:absolute}.nianhua-item:hover{background:#ffc72ccc;border-color:#ff8c00;transform:scale(1.3)}.nianhua-found{background:#e8f5e9;border:3px solid #00a651}.found-label{color:#00a651;font-size:11px;font-weight:800;display:block}.ears-quiz{text-align:center}.ears-playing{background:#e3f0ff;border:3px solid #0072ce33;border-radius:20px;margin-bottom:16px;padding:20px}.ears-music-icon{font-size:56px;animation:1.5s infinite bounce;display:block}.ears-hint{color:#8b6f47;font-size:14px;font-style:italic;font-weight:600}.ears-options{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.ears-option{cursor:pointer;background:#fff;border:3px solid #ffc72c;border-radius:20px;flex-direction:column;align-items:center;gap:6px;padding:18px;font-family:inherit;font-size:16px;font-weight:700;transition:all .2s;display:flex}.ears-option:hover{background:#6b5ce70d;border-color:#6b5ce7;transform:translateY(-2px)}.rhythm-area{text-align:center}.rhythm-bars{justify-content:center;gap:6px;margin-bottom:20px;display:flex}.rhythm-bar{background:#ffe4a0;border:2px solid #ffc72c;border-radius:8px;width:26px;height:44px;transition:all .3s}.rhythm-beat{background:#ffc72c}.rhythm-rest{background:#fff8e7}.rhythm-current{transform:scaleY(1.3);background:#ed1c24!important;border-color:#c41018!important}.rhythm-tap-btn{color:#fff;cursor:pointer;text-shadow:1px 1px #0003;background:#ed1c24;border:4px solid #c41018;border-radius:50%;width:110px;height:110px;padding:20px 40px;font-family:inherit;font-size:22px;font-weight:900;transition:all .1s;box-shadow:0 4px #c41018}.rhythm-tap-btn:active{transform:scale(.9);box-shadow:0 2px #c41018}.maze-grid{background:#8b6f47;border:3px solid #6b5236;border-radius:16px;flex-direction:column;gap:3px;margin:16px auto;padding:6px;display:inline-flex}.maze-row{gap:3px;display:flex}.maze-cell{border-radius:8px;justify-content:center;align-items:center;width:54px;height:54px;font-size:22px;transition:background .2s;display:flex}.maze-path{background:#e8f5e9}.maze-wall{background:#a0845c}.maze-visited{background:#c8e6c9}.maze-player{background:#ffc72c;border:2px solid #e0a800;animation:1s infinite pulse}.maze-controls{flex-direction:column;align-items:center;gap:4px;margin-top:12px;display:flex}.maze-btn-row{gap:4px;display:flex}.maze-btn{cursor:pointer;background:#fff8e7;border:3px solid #ffc72c;border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;font-size:24px;transition:all .1s;display:flex}.maze-btn:hover{background:#ffc72c}.maze-btn:active{transform:scale(.9)}.game-final{text-align:center;padding:40px 20px}.game-final h2{color:#ed1c24;text-shadow:2px 2px #ed1c241a;margin:16px 0;font-size:30px;font-weight:800}.final-badges{justify-content:center;gap:16px;margin-bottom:16px;display:flex}.final-badge{filter:drop-shadow(2px 2px #00000026);font-size:56px;animation:2s infinite bounce}.final-text{color:#00a651;margin-bottom:24px;font-size:18px;font-weight:800}.teacher-page{animation:.4s ease-out fadeIn}.teacher-tabs{background:#006b3f;border:3px solid #005530;border-radius:20px;gap:6px;margin-bottom:24px;padding:8px;display:flex;box-shadow:0 4px #004b2c4d}.teacher-tab{color:#ffc72cb3;cursor:pointer;background:0 0;border:none;border-radius:14px;flex:1;padding:10px 14px;font-family:inherit;font-size:14px;font-weight:800;transition:all .2s}.teacher-tab:hover{color:#ffc72c;background:#ffc72c26}.teacher-tab-active,.teacher-tab-active:hover{color:#006b3f;background:#ffc72c}.teacher-section{background:#fff8e7;border:3px solid #ffc72c4d;border-radius:24px;padding:28px 24px;box-shadow:0 3px #8b6f471a,0 4px 16px #0000000d}.ip-preview{text-align:center;margin-bottom:20px}.ip-form{flex-direction:column;gap:16px;max-width:500px;margin:0 auto;display:flex}.expression-options{flex-wrap:wrap;gap:12px;display:flex}.expression-btn{cursor:pointer;background:#fff;border:3px solid #ffc72c;border-radius:20px;flex-direction:column;align-items:center;gap:6px;padding:14px 18px;font-family:inherit;font-size:13px;font-weight:700;transition:all .2s;display:flex}.expression-btn:hover{border-color:#0072ce}.expression-active{background:#e3f0ff;border-color:#0072ce;box-shadow:0 3px #0072ce26}.save-btn{color:#fff;cursor:pointer;background:#00a651;border:3px solid #008c44;border-radius:50px;align-self:center;padding:14px 32px;font-family:inherit;font-size:16px;font-weight:800;transition:all .2s;box-shadow:0 3px #008c44}.save-btn:hover{transform:translateY(-2px);box-shadow:0 5px #008c44,0 6px 16px #00a6514d}.student-table-wrapper{overflow-x:auto}.student-table{border-collapse:collapse;width:100%;font-size:14px}.student-table th{text-align:left;color:#3b2f20;white-space:nowrap;background:#ffc72c;border-bottom:3px solid #e0a800;padding:12px 16px;font-weight:800}.student-table td{vertical-align:middle;border-bottom:2px solid #ffc72c33;padding:12px 16px;font-weight:600}.student-table tr:hover td{background:#ffc72c14}.student-name{color:#3b2f20;font-weight:700}.last-active{color:#8b6f47;font-size:13px}.prep-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;display:grid}.prep-card{text-align:center;background:#fff;border:3px solid #6b5ce7;border-radius:24px;padding:28px 24px;transition:all .3s}.prep-card:hover{border-color:#ff6b9d;transform:translateY(-3px);box-shadow:0 4px #ff6b9d26,0 6px 20px #ff6b9d1a}.prep-icon{filter:drop-shadow(2px 2px #0000001a);margin-bottom:12px;font-size:48px;display:block}.prep-card h3{color:#6b5ce7;margin-bottom:6px;font-size:18px;font-weight:800}.prep-card p{color:#8b6f47;margin-bottom:16px;font-size:13px;font-weight:600;line-height:1.5}.prep-btn{color:#fff;cursor:pointer;background:#6b5ce7;border:3px solid #5648c4;border-radius:50px;padding:12px 28px;font-family:inherit;font-size:14px;font-weight:800;transition:all .2s;box-shadow:0 3px #5648c4}.prep-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px #5648c4}.prep-btn:disabled{opacity:.6;cursor:not-allowed}@media (width<=768px){.app-main{padding:16px 12px 40px}.header-inner{padding:8px 12px}.header-title{font-size:16px}.lang-btn{padding:3px 8px;font-size:12px}.header-username{display:none}.login-card{padding:28px 20px}.login-title{font-size:22px}.course-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.course-card{padding:20px 16px}.course-emoji{font-size:52px}.course-title{font-size:15px}.lesson-grid{grid-template-columns:1fr;gap:12px}.lesson-card{padding:20px 16px}.textbook-tabs{gap:4px;padding:6px}.textbook-tab,.tips-btn{padding:6px 10px;font-size:12px}.textbook-section{padding:20px 16px}.char-grid,.trace-grid{grid-template-columns:repeat(2,1fr)}.vocab-chips{gap:8px}.sub-template{padding:14px;font-size:20px}.vision-tabs{flex-direction:column;gap:4px}.vision-content{padding:16px}.object-grid{grid-template-columns:repeat(3,1fr);gap:8px}.branch-grid{grid-template-columns:1fr;gap:12px}.maze-cell{width:44px;height:44px;font-size:16px}.ears-options{grid-template-columns:1fr}.teacher-tabs{flex-direction:column;gap:4px}.prep-cards{grid-template-columns:1fr}.student-table{font-size:12px}.student-table th,.student-table td{padding:8px 10px}.chat-input-area{flex-wrap:wrap}.chat-input{flex:1;min-width:0}.section-title{font-size:20px}}@media (width<=480px){.course-grid{grid-template-columns:1fr}.sub-template{flex-direction:column;font-size:18px}.object-grid{grid-template-columns:repeat(2,1fr)}.maze-cell{width:36px;height:36px;font-size:14px}.dialogue-line{gap:8px;padding:10px 12px}.dialogue-hanzi{font-size:15px}.dialogue-pinyin{font-size:12px}.rhythm-bars{gap:3px}.rhythm-bar{width:18px;height:30px}}.game-start-btn,.final-btn,.selfie-capture-btn{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.edit-action-btn{color:#00a651;cursor:pointer;background:#e8f5e9;border:3px solid #00a651;border-radius:50px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:800;transition:all .2s}.edit-action-btn:hover{color:#fff;background:#00a651}.edit-inline-btn{color:#ff8c00;cursor:pointer;background:#fff8e7;border:2px solid #ff8c00;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;transition:all .2s;display:flex}.edit-inline-btn:hover{color:#fff;background:#ff8c00}.add-item-btn{color:#ff8c00;cursor:pointer;background:0 0;border:3px dashed #ffc72c;border-radius:20px;width:100%;margin-top:12px;padding:14px;font-family:inherit;font-size:14px;font-weight:800;transition:all .2s}.add-item-btn:hover{background:#fff8e7;border-color:#ff8c00}.course-manage-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.course-manage-card{background:#fff8e7;border:3px solid #ffc72c;border-radius:20px;padding:20px;transition:all .3s;box-shadow:0 3px #8b6f471a}.course-manage-card:not(.course-locked):hover{border-color:#0072ce;transform:translateY(-3px);box-shadow:0 4px #0072ce26,0 6px 16px #0072ce1a}.course-manage-card h4{color:#0072ce;margin:0 0 6px;font-size:17px;font-weight:800}@media (width<=600px){.course-manage-grid{grid-template-columns:1fr}}.prep-step{margin-bottom:24px}.prep-step-title{color:#0072ce;align-items:center;gap:10px;margin-bottom:14px;font-size:18px;font-weight:800;display:flex}.prep-step-num{color:#fff;background:#ed1c24;border:2px solid #c41018;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:15px;font-weight:800;display:inline-flex;box-shadow:0 2px #c41018}.prep-lesson-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.prep-lesson-btn{cursor:pointer;color:#8b6f47;background:#fff;border:3px solid #ffc72c;border-radius:20px;flex-direction:column;align-items:center;gap:6px;padding:14px 12px;font-family:inherit;font-size:13px;font-weight:800;transition:all .3s;display:flex}.prep-lesson-btn:hover{background:#e3f0ff;border-color:#0072ce}.prep-lesson-active{color:#0072ce;background:#e3f0ff;border-color:#0072ce;box-shadow:0 3px #0072ce26}.prep-lesson-icon{font-size:32px}.prep-card-generating{border-color:#ff6b9d!important;box-shadow:0 0 0 3px #ff6b9d33!important}.prep-progress{width:100%;margin:12px 0}.prep-progress-bar{background:#ffe4a0;border:2px solid #ffc72c;border-radius:5px;height:10px;overflow:hidden}.prep-progress-fill{background:#00a651;border-radius:5px;height:100%;transition:width .4s}.prep-progress-text{color:#0072ce;margin-top:4px;font-size:13px;font-weight:800;display:block}.prep-result-card{background:#fff;border:3px solid #00a651;border-radius:24px;padding:24px;box-shadow:0 3px #00a65126}.prep-result-title{color:#0072ce;border-bottom:3px solid #ffc72c;margin:0 0 16px;padding-bottom:12px;font-size:19px;font-weight:800}.prep-result-section{margin-bottom:16px}.prep-result-heading{color:#ed1c24;margin:0 0 8px;font-size:16px;font-weight:800}.prep-result-content{color:#3b2f20;background:#fff8e7;border:2px solid #ffc72c33;border-radius:16px;padding:14px 18px;font-size:14px;line-height:1.8}.prep-result-content p{margin:2px 0}.prep-result-actions{border-top:2px solid #ffc72c4d;gap:10px;margin-top:18px;padding-top:16px;display:flex}@media (width<=600px){.prep-lesson-grid{grid-template-columns:repeat(2,1fr)}.prep-result-actions{flex-direction:column}}.trace-char-selector{justify-content:center;gap:10px;margin-bottom:20px;display:flex}.trace-char-btn{cursor:pointer;background:#fff;border:3px solid #ffc72c;border-radius:20px;flex-direction:column;align-items:center;gap:2px;padding:12px 20px;font-family:inherit;transition:all .3s;display:flex}.trace-char-btn:hover{border-color:#0072ce}.trace-char-btn-active{background:#e3f0ff;border-color:#0072ce;box-shadow:0 3px #0072ce26}.trace-char-btn-char{color:#0072ce;font-size:34px;font-weight:800}.trace-char-btn-pinyin{color:#8b6f47;font-size:12px;font-weight:600}.trace-main{align-items:flex-start;gap:24px;display:flex}.trace-canvas-wrapper{flex-shrink:0}.trace-canvas{cursor:crosshair;touch-action:none;background:#fffdf7;border:4px solid #8b6f47;border-radius:12px;display:block}.trace-hint{text-align:center;color:#8b6f47;margin-top:6px;font-size:12px;font-weight:600}.trace-info{flex-direction:column;flex:1;gap:8px;display:flex}.trace-ref-char{color:#0072ce;text-shadow:2px 2px #0072ce1a;font-size:68px;font-weight:800;line-height:1}.trace-ref-pinyin{color:#ff8c00;font-size:18px;font-weight:700}.trace-ref-meta{color:#8b6f47;font-size:13px;font-weight:600}.trace-stroke-count{color:#0072ce;margin-top:4px;font-size:14px;font-weight:800}.trace-score{text-align:center;border:3px solid #0000;border-radius:20px;margin-top:6px;padding:14px 18px}.trace-score-good{background:#e8f5e9;border-color:#00a651}.trace-score-ok{background:#fff8e7;border-color:#ffc72c}.trace-score-bad{background:#ffebee;border-color:#ed1c24}.trace-score-num{font-size:38px;font-weight:900}.trace-score-good .trace-score-num{color:#00a651}.trace-score-ok .trace-score-num{color:#ff8c00}.trace-score-bad .trace-score-num{color:#ed1c24}.trace-score-label{margin-top:2px;font-size:14px;font-weight:800}.trace-score-good .trace-score-label{color:#00a651}.trace-score-ok .trace-score-label{color:#ff8c00}.trace-score-bad .trace-score-label{color:#ed1c24}.trace-stroke-scores{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:8px;display:flex}.trace-ss{border-radius:50px;padding:3px 10px;font-size:12px;font-weight:800}.ss-good{color:#00a651;background:#c8e6c9}.ss-ok{color:#ff8c00;background:#ffe0b2}.ss-bad{color:#ed1c24;background:#ffcdd2}.trace-actions{gap:10px;margin-top:10px;display:flex}.trace-btn{cursor:pointer;border:3px solid #0000;border-radius:50px;padding:12px 24px;font-family:inherit;font-size:14px;font-weight:800;transition:all .2s}.trace-btn-assess{color:#fff;background:#0072ce;border-color:#005ea6;flex:1;box-shadow:0 3px #005ea6}.trace-btn-assess:hover{transform:translateY(-2px);box-shadow:0 5px #005ea6}.trace-btn-clear{color:#8b6f47;background:#fff8e7;border-color:#ffc72c}.trace-btn-clear:hover{color:#3b2f20;background:#ffc72c}@media (width<=600px){.trace-main{flex-direction:column;align-items:center}.trace-canvas{width:260px!important;height:260px!important}.trace-info{text-align:center;align-items:center}}.header-profile-btn{color:#ffc72c;cursor:pointer;background:#ffc72c33;border:2px solid #ffc72c;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;padding:0;transition:all .2s;display:flex}.header-profile-btn:hover{color:#006b3f;background:#ffc72c}.profile-page{justify-content:center;padding:16px 0;display:flex}.profile-card{background:#fff8e7;border:4px solid #ffc72c;border-radius:24px;width:100%;max-width:480px;padding:32px 28px;box-shadow:0 4px #8b6f471f,0 6px 24px #00000014}.profile-avatar-section{flex-direction:column;align-items:center;margin-bottom:24px;display:flex}.profile-avatar{cursor:pointer;background:#0072ce;border:4px solid #ffc72c;border-radius:50%;justify-content:center;align-items:center;width:100px;height:100px;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 4px #005ea6,0 6px 16px #0072ce4d}.profile-avatar:hover{transform:scale(1.08);box-shadow:0 6px #005ea6,0 8px 20px #0072ce66}.profile-avatar-emoji{font-size:52px;line-height:1}.profile-avatar-initials{color:#fff;font-size:38px;font-weight:800}.profile-change-avatar-btn{color:#0072ce;cursor:pointer;background:0 0;border:none;border-radius:8px;margin-top:10px;padding:4px 12px;font-family:inherit;font-size:13px;font-weight:700;transition:background .2s}.profile-change-avatar-btn:hover{background:#0072ce14}.profile-avatar-picker{background:#fff;border:3px solid #ffc72c;border-radius:20px;grid-template-columns:repeat(5,1fr);gap:8px;width:100%;max-width:320px;margin-top:12px;padding:16px;animation:.2s ease-out fadeIn;display:grid}.profile-avatar-option{cursor:pointer;background:#fff8e7;border:3px solid #ffc72c;border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto;padding:0;font-size:24px;transition:all .15s;display:flex}.profile-avatar-option:hover{background:#e3f0ff;border-color:#0072ce;transform:scale(1.12)}.profile-avatar-option-active{background:#ed1c2414;border-color:#ed1c24;box-shadow:0 0 0 2px #ed1c2433}.profile-section-title{color:#8b6f47;border-bottom:3px solid #ffc72c;margin-bottom:14px;padding-bottom:6px;font-size:16px;font-weight:800}.profile-fields{flex-direction:column;gap:12px;margin-bottom:18px;display:flex}.profile-field{background:#fff;border:2px solid #ffc72c4d;border-radius:16px;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.profile-label{color:#8b6f47;min-width:60px;font-size:14px;font-weight:700}.profile-value{color:#3b2f20;text-align:right;font-size:14px;font-weight:600}.profile-role-badge{color:#00a651;background:#e8f5e9;border:2px solid #00a651;border-radius:50px;padding:3px 12px;font-size:12px;font-weight:800}.profile-input{text-align:right;border:3px solid #ffc72c;border-radius:14px;outline:none;width:180px;padding:8px 12px;font-family:inherit;font-size:14px;font-weight:600;transition:border-color .2s}.profile-input:focus{border-color:#0072ce}.profile-edit-btn,.profile-save-btn{cursor:pointer;border:3px solid #0000;border-radius:50px;width:100%;margin-bottom:4px;padding:14px;font-family:inherit;font-size:15px;font-weight:800;transition:all .2s}.profile-edit-btn{color:#0072ce;background:#e3f0ff;border-color:#0072ce}.profile-edit-btn:hover{color:#fff;background:#0072ce}.profile-save-btn{color:#fff;background:#0072ce;border-color:#005ea6;box-shadow:0 3px #005ea6}.profile-save-btn:hover{transform:translateY(-2px);box-shadow:0 5px #005ea6}.profile-save-btn:disabled{opacity:.6;cursor:not-allowed}.profile-lang-row{gap:8px;margin-bottom:24px;display:flex}.profile-lang-btn{cursor:pointer;color:#8b6f47;background:#fff;border:3px solid #ffc72c;border-radius:20px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:14px 8px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:flex}.profile-lang-btn:hover{border-color:#0072ce}.profile-lang-btn-active{color:#0072ce;background:#e3f0ff;border:3px solid #0072ce;font-weight:800;box-shadow:0 3px #0072ce26}.profile-lang-flag{font-size:28px}.profile-lang-name{font-size:13px}.profile-actions{gap:10px;margin-bottom:16px;display:flex}.profile-action-btn{text-align:center;border:3px solid #0000;border-radius:50px;flex:1;padding:14px 8px;font-size:14px;font-weight:700;text-decoration:none;transition:all .2s;display:block}.profile-action-contact{color:#0072ce;background:#e3f0ff;border-color:#0072ce}.profile-action-contact:hover{color:#fff;background:#0072ce}.profile-action-feedback{color:#ff8c00;background:#fff8e7;border-color:#ffc72c}.profile-action-feedback:hover{color:#3b2f20;background:#ffc72c}.profile-logout-btn{cursor:pointer;color:#ed1c24;background:#ffebee;border:3px solid #ed1c24;border-radius:50px;width:100%;margin-bottom:20px;padding:14px;font-family:inherit;font-size:15px;font-weight:800;transition:all .2s}.profile-logout-btn:hover{color:#fff;background:#ed1c24}.profile-version{text-align:center;color:#8b6f47;margin:0;font-size:12px;font-weight:600}@media (width<=480px){.profile-card{border-radius:20px;padding:24px 18px}.profile-avatar{width:80px;height:80px}.profile-avatar-emoji{font-size:40px}.profile-avatar-initials{font-size:30px}.profile-avatar-picker{grid-template-columns:repeat(4,1fr)}.profile-input{width:140px}}@keyframes correctBounce{0%{transform:scale(1)}30%{transform:scale(1.06)}60%{transform:scale(.97)}to{transform:scale(1)}}@keyframes incorrectShake{0%,to{transform:translate(0)}15%{transform:translate(-8px)}30%{transform:translate(8px)}45%{transform:translate(-6px)}60%{transform:translate(6px)}75%{transform:translate(-3px)}90%{transform:translate(3px)}}@keyframes floatLantern{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-8px)rotate(3deg)}}.game-anim-correct .minigame{animation:.6s ease-out correctBounce}.game-anim-incorrect .minigame{animation:.5s ease-out incorrectShake}.game-intro-decorated{background:radial-gradient(at 50% 100%,#ed1c240a 0%,#0000 70%),radial-gradient(at 20% 20%,#ffc72c0f 0%,#0000 60%),radial-gradient(at 80% 20%,#ffc72c0f 0%,#0000 60%);border-radius:24px;padding:32px 20px;position:relative}.game-lantern-row{justify-content:center;gap:20px;margin-bottom:12px;display:flex}.game-lantern{filter:drop-shadow(0 2px 4px #ed1c2433);font-size:36px;animation:3s ease-in-out infinite floatLantern}.game-lantern:nth-child(2){animation-delay:-.8s}.game-lantern:nth-child(3){animation-delay:-1.6s}.game-lantern:nth-child(4){animation-delay:-2.4s}.game-lantern:nth-child(5){animation-delay:-.4s}.game-cloud{opacity:.5;font-size:28px;animation:8s ease-in-out infinite floatCloud}.game-cloud:nth-child(2){font-size:22px;animation-delay:-3s}.game-cloud:nth-child(3){font-size:32px;animation-delay:-6s}.game-select-decorated{padding:16px;position:relative}.game-select-decorated:before{content:"uD83CuDFEE u2601uFE0F uD83CuDFEE";opacity:.4;letter-spacing:6px;font-size:18px;position:absolute;top:-8px;right:16px}.branch-card-culture{position:relative;overflow:hidden}.branch-card-culture:before{content:"";z-index:0;pointer-events:none;background-color:#0000;background-image:linear-gradient(135deg,#ffc72c14 25%,#0000 25%),linear-gradient(225deg,#ffc72c14 25%,#0000 25%),linear-gradient(315deg,#ffc72c14 25%,#0000 25%),linear-gradient(45deg,#ffc72c14 25%,#0000 25%);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:20px 20px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;border-radius:24px;position:absolute;inset:-2px}.branch-icon-large{filter:drop-shadow(3px 3px #0000001f);z-index:1;margin-bottom:10px;font-size:64px;display:block;position:relative}.branch-deco{opacity:.25;font-size:18px;animation:4s ease-in-out infinite floatLantern;position:absolute;top:8px;right:10px}.game-playing-decorated{background:radial-gradient(at 50% 0,#ed1c2408 0%,#0000 50%),radial-gradient(at 0 100%,#ff8c000a 0%,#0000 40%),radial-gradient(at 100% 100%,#00a6510a 0%,#0000 40%);border-radius:20px;padding:12px 0;position:relative}.game-playing-decorated:before{content:"uD83CuDFEE";opacity:.25;font-size:22px;animation:3s ease-in-out infinite floatLantern;position:absolute;top:12px;right:12px}@media (width<=768px){.game-lantern-row{gap:12px}.game-lantern{font-size:28px}.branch-icon-large{font-size:52px}}@media (width<=480px){.game-lantern{font-size:22px}.branch-icon-large{font-size:44px}.game-intro-decorated{padding:20px 12px}}.floating-chat-trigger{z-index:9999;border:5px solid var(--bigbird);cursor:pointer;width:120px;height:120px;transition:transform .3s var(--transition-bounce), box-shadow .3s;background:#fff;border-radius:50%;justify-content:center;align-items:center;padding:0;animation:3s ease-in-out infinite floatBounce;display:flex;position:fixed;bottom:28px;right:28px;overflow:visible;box-shadow:0 6px #e0a800,0 10px 32px #0003,0 0 0 6px #ffc72c26}.floating-chat-trigger:hover{transform:scale(1.12);box-shadow:0 8px 32px #00000038,0 5px #e0a800}@keyframes floatBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.floating-chat-avatar{object-fit:contain;border-radius:50%;width:110px;height:110px}.floating-chat-badge{color:#fff;letter-spacing:.5px;background:#ed1c24;border:2px solid #fff;border-radius:10px;padding:3px 7px;font-size:11px;font-weight:900;position:absolute;top:-6px;right:-6px}.floating-chat-panel{z-index:9999;background:#fff8e7;border:4px solid #ffc72c;border-radius:24px;flex-direction:column;width:380px;max-width:calc(100vw - 32px);height:520px;max-height:calc(100vh - 100px);display:flex;position:fixed;bottom:24px;right:24px;overflow:hidden;box-shadow:0 12px 48px #0000002e}.floating-chat-header{color:#ffc72c;background:#006b3f;flex-shrink:0;align-items:center;gap:10px;padding:14px 16px;display:flex}.floating-chat-header-avatar{object-fit:contain;background:#fff;border:2px solid #ffc72c;border-radius:50%;width:36px;height:36px}.floating-chat-header-info{flex-direction:column;flex:1;display:flex}.floating-chat-header-info strong{font-size:15px;font-weight:900}.floating-chat-status{color:#90ee90;font-size:11px}.floating-chat-close{color:#ffc72c;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:20px;transition:background .2s;display:flex}.floating-chat-close:hover{background:#ffc72c33}.floating-chat-messages{flex-direction:column;flex:1;gap:10px;padding:14px;display:flex;overflow-y:auto}.floating-msg{align-items:flex-end;gap:8px;display:flex}.floating-msg-user{flex-direction:row-reverse}.floating-msg-avatar{object-fit:contain;background:#fff;border:2px solid #ffc72c;border-radius:50%;flex-shrink:0;width:28px;height:28px}.floating-msg-bubble{word-break:break-word;border-radius:18px;max-width:75%;padding:10px 14px;font-size:14px;line-height:1.5}.floating-msg-bubble-ai{color:#333;background:#fff;border:2px solid #0072ce;border-bottom-left-radius:4px}.floating-msg-bubble-user{color:#fff;background:#0072ce;border:2px solid #005ea6;border-bottom-right-radius:4px}.floating-typing{color:#0072ce;font-size:18px;font-weight:900;animation:1s infinite typingDots;display:inline-block}@keyframes typingDots{0%{opacity:.3}50%{opacity:1}to{opacity:.3}}.floating-chat-input{background:#fff;border-top:3px solid #ffc72c;flex-shrink:0;gap:8px;padding:12px;display:flex}.floating-chat-input input{background:#fff8e7;border:2px solid #ffc72c;border-radius:50px;outline:none;flex:1;padding:10px 16px;font-family:inherit;font-size:14px}.floating-chat-input input:focus{border-color:#0072ce}.floating-chat-input button{color:#fff;cursor:pointer;background:#00a651;border:3px solid #006b3f;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;transition:all .2s;display:flex;box-shadow:0 3px #006b3f}.floating-chat-input button:hover:not(:disabled){background:#006b3f;transform:translateY(-1px)}.floating-chat-input button:disabled{opacity:.4;cursor:default}@media (width<=480px){.floating-chat-panel{border-radius:20px;width:calc(100vw - 16px);height:calc(100vh - 80px);bottom:8px;right:8px}.floating-chat-trigger{width:100px;height:100px;bottom:16px;right:16px}.floating-chat-avatar{width:82px;height:82px}}
