:root{--bg: #fff9ed;--bg-2: #fef3c7;--ink: #1e293b;--muted: #64748b;--accent: #f97316;--accent-2: #38bdf8;--green: #22c55e;--red: #ef4444;--card: #ffffff;--shadow: 0 10px 30px rgba(15, 23, 42, .08);--shadow-big: 0 20px 50px rgba(15, 23, 42, .12);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Comic Sans MS,PingFang SC,Microsoft YaHei,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden}button{font:inherit;cursor:pointer;border:none}a{color:inherit;text-decoration:none}.topbar{display:flex;align-items:center;gap:16px;padding:14px 24px;background:linear-gradient(120deg,#fff7ed,#fef3c7);border-bottom:3px solid #fed7aa;position:sticky;top:0;z-index:10}.topbar .logo{font-size:26px;font-weight:900;color:var(--accent);letter-spacing:.5px}.topbar .sub{font-size:13px;color:var(--muted)}.back-btn{background:#fff;border:2px solid #fed7aa;color:var(--accent);padding:8px 16px;border-radius:999px;font-weight:800;display:inline-flex;align-items:center;gap:6px}.back-btn:hover{background:#fff7ed}.voice-picker{display:inline-flex;align-items:center;gap:6px;background:#fff;border:2px solid #fed7aa;border-radius:999px;padding:4px 10px;font-size:12px;color:var(--muted)}.voice-picker select{font:inherit;background:transparent;border:0;max-width:160px;color:var(--muted);cursor:pointer}.voice-picker select:focus{outline:0}.voice-picker-icon{font-size:14px}@media (max-width: 640px){.voice-picker select{max-width:100px}}.hero{text-align:center;padding:40px 16px 24px}.hero h1{font-size:44px;margin:8px 0;color:var(--accent)}.hero p{color:var(--muted);font-size:18px;margin:0}.grid-units{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));padding:24px}.unit-card{background:var(--card);border-radius:24px;padding:20px;box-shadow:var(--shadow);border:3px solid transparent;transition:transform .15s ease,border-color .15s ease;text-align:center;min-height:180px;display:flex;flex-direction:column;justify-content:center;align-items:center}.unit-card.active{border-color:var(--accent)}.unit-card.active:hover{transform:translateY(-4px)}.unit-card.disabled{opacity:.45}.unit-card .num{font-size:64px;font-weight:900;color:var(--accent);line-height:1}.unit-card .name{margin-top:8px;font-size:18px;color:#334155}.unit-card .badge{margin-top:10px;padding:4px 10px;border-radius:999px;background:#fef3c7;color:#92400e;font-size:12px;font-weight:700}.stars .star{opacity:.9}.stars .star.lit{filter:drop-shadow(0 0 3px #fbbf24)}.lesson-list{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));padding:24px}.lesson-card{background:var(--card);border-radius:20px;padding:20px;box-shadow:var(--shadow);border:3px solid #bae6fd;transition:transform .15s ease}.lesson-card:hover{transform:translateY(-2px)}.lesson-card .ttl{font-size:22px;font-weight:900;color:var(--accent-2)}.lesson-card .meta{color:var(--muted);font-size:14px;margin-top:4px}.loading,.error{text-align:center;padding:60px 24px;color:var(--muted);font-size:18px}.error{color:var(--red)}.lesson-shell{max-width:820px;margin:0 auto;padding:16px 20px 80px}.lesson-progress{padding:16px 4px 12px}.lesson-title{font-size:22px;font-weight:900;color:var(--accent);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lesson-title .mascot{font-size:28px}.lesson-title .lesson-pattern{margin-left:auto;background:#fef3c7;color:#92400e;padding:4px 12px;border-radius:999px;font-size:14px}.progress-bar{display:flex;gap:6px;margin-top:12px}.progress-seg{flex:1;height:10px;border-radius:999px;background:#fed7aa;transition:background .3s ease}.progress-seg.current{background:var(--accent);box-shadow:0 0 0 3px #fed7aa}.progress-seg.done{background:var(--green)}.progress-text{margin-top:8px;color:var(--muted);font-size:13px;text-align:right}.activity{background:var(--card);border-radius:28px;padding:28px 24px;box-shadow:var(--shadow-big);display:flex;flex-direction:column;align-items:center;gap:16px;animation:fadeUp .35s ease}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.activity-title{font-size:26px;font-weight:900;color:var(--ink);margin:0;text-align:center}.activity-hint{color:var(--muted);margin:0;font-size:16px;text-align:center}.hint-soft{background:#fff7ed;padding:10px 16px;border-radius:16px}.next-btn{min-width:200px;background:var(--accent);color:#fff;font-size:20px;font-weight:800;padding:14px 28px;border-radius:999px;box-shadow:0 6px #c2410c;transition:transform .1s ease}.next-btn:hover:not(:disabled){transform:translateY(-1px)}.next-btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 3px #c2410c}.next-btn:disabled{background:#cbd5e1;color:#64748b;box-shadow:0 4px #94a3b8;cursor:not-allowed}.celebrate-btn{background:var(--green);box-shadow:0 6px #15803d}.sound-cards{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.sound-arrow{font-size:36px;color:var(--muted)}.sound-card{background:#fff;border:4px solid var(--accent, #e2e8f0);border-radius:24px;padding:20px 28px;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:160px;transition:transform .12s ease,box-shadow .12s ease;cursor:pointer}.sound-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.sound-card.tapped{box-shadow:0 0 0 4px var(--accent) inset,var(--shadow)}.sound-label{font-size:16px;color:var(--muted);font-weight:700}.sound-emoji{font-size:64px;line-height:1}.sound-example{font-size:36px;font-weight:900}.sound-ipa{font-size:16px;color:var(--muted);font-style:italic}.deck-dots{display:flex;gap:8px}.dot{width:10px;height:10px;border-radius:50%;background:#e2e8f0}.dot.seen{background:#fdba74}.dot.active{background:var(--accent);transform:scale(1.3)}.deck-card{background:linear-gradient(160deg,#fff7ed,#fff);border:4px solid #fed7aa;border-radius:24px;padding:28px 32px;display:flex;flex-direction:column;align-items:center;gap:10px;min-width:260px;animation:cardPop .35s cubic-bezier(.34,1.56,.64,1)}@keyframes cardPop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.deck-emoji{font-size:96px;line-height:1}.deck-word{font-size:56px;font-weight:900;letter-spacing:2px;font-family:Century Gothic,Comic Sans MS,sans-serif}.ae-vowel{color:var(--accent)}.deck-zh{color:var(--muted);font-size:18px}.deck-speak{margin-top:6px;background:#fff;border:2px solid #fed7aa;color:var(--accent);padding:8px 18px;border-radius:999px;font-weight:700;font-size:15px}.deck-speak:hover{background:#fff7ed}.pronounce-check{margin-top:8px;display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}.pronounce-check.disabled{display:flex;flex-direction:row;align-items:center;gap:6px;color:var(--muted);font-size:13px}.mic-btn{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#ec4899,#db2777);color:#fff;font-weight:800;font-size:15px;padding:10px 20px;border-radius:999px;box-shadow:0 4px #9d174d;transition:transform .1s ease}.mic-btn:hover:not(:disabled){transform:translateY(-1px)}.mic-btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px #9d174d}.mic-btn:disabled{opacity:.85;cursor:wait}.mic-btn.listening{animation:micPulse 1s ease-in-out infinite;box-shadow:0 0 #ec489999}@keyframes micPulse{0%{box-shadow:0 4px #9d174d,0 0 #ec489999}50%{box-shadow:0 4px #9d174d,0 0 0 14px #ec489900}to{box-shadow:0 4px #9d174d,0 0 #ec489900}}.mic-icon{font-size:18px}.mic-interim{font-size:13px;color:var(--muted);font-style:italic}.mic-feedback{width:100%;max-width:320px;padding:12px 16px;border-radius:16px;text-align:center;animation:fadeUp .25s ease}.mic-feedback.match-perfect{background:#d1fae5;border:2px solid #22c55e;color:#14532d}.mic-feedback.match-good{background:#e0f2fe;border:2px solid #0ea5e9;color:#075985}.mic-feedback.match-partial{background:#fef3c7;border:2px solid #f59e0b;color:#92400e}.mic-feedback.match-none{background:#fee2e2;border:2px solid #ef4444;color:#991b1b}.mic-emoji{font-size:40px;line-height:1}.mic-text{font-size:16px;font-weight:800;margin-top:4px}.mic-heard{font-size:13px;margin-top:4px;opacity:.8}.deck-nav{display:flex;align-items:center;gap:18px}.deck-progress{min-width:70px;text-align:center;font-weight:800;color:var(--muted)}.nav-btn{background:var(--accent);color:#fff;width:52px;height:52px;border-radius:50%;font-size:28px;font-weight:900;box-shadow:0 4px 12px #f9731666;transition:transform .12s ease}.nav-btn:hover:not(:disabled){transform:scale(1.08)}.nav-btn:disabled{background:#cbd5e1;box-shadow:none;cursor:not-allowed}.round-indicator{font-weight:800;color:var(--muted)}.big-speaker{background:linear-gradient(135deg,#fb923c,#f97316);color:#fff;border-radius:24px;padding:24px 32px;min-width:240px;display:flex;flex-direction:column;align-items:center;gap:4px;box-shadow:0 8px #c2410c;transition:transform .1s ease}.big-speaker:hover{transform:translateY(-2px)}.big-speaker:active{transform:translateY(3px);box-shadow:0 4px #c2410c}.big-speaker-icon{font-size:48px}.big-speaker-label{font-size:16px;font-weight:800}.options-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));width:100%;max-width:500px}.option{background:#fff;border:4px solid #bae6fd;color:var(--ink);font-size:28px;font-weight:900;padding:18px 10px;border-radius:20px;transition:transform .1s ease,background .15s ease,border-color .15s ease}.option:hover:not(:disabled){transform:translateY(-2px);border-color:var(--accent-2)}.option.correct{background:#d1fae5;border-color:var(--green);color:#15803d;animation:correctPulse .5s ease}.option.wrong{background:#fee2e2;border-color:var(--red);color:#b91c1c;animation:wrongShake .4s ease}.option.show-answer{border-color:var(--green);background:#f0fdf4}@keyframes correctPulse{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes wrongShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.score{color:var(--muted);font-weight:700;font-size:16px}.sentence-card{background:#fff7ed;border:3px solid #fed7aa;border-radius:20px;padding:24px;min-width:280px;max-width:640px;display:flex;flex-direction:column;align-items:center;gap:14px}.sentence{font-size:28px;font-weight:700;line-height:1.5;font-family:Century Gothic,Comic Sans MS,sans-serif;text-align:center}.sent-word{display:inline-block;padding:2px 4px;border-radius:8px;cursor:pointer;transition:background .15s ease}.sent-word:hover{background:#fde68a}.sent-word.hi{color:var(--accent);font-weight:900}.star-wall{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));width:100%;max-width:520px}.star-card{background:#fff;border:3px dashed #cbd5e1;color:var(--muted);border-radius:20px;padding:18px 10px;display:flex;flex-direction:column;align-items:center;gap:4px;transition:transform .15s ease}.star-card.lit{background:linear-gradient(160deg,#fef3c7,#fde68a);border:3px solid #fbbf24;color:var(--ink);animation:starPop .5s cubic-bezier(.34,1.56,.64,1)}@keyframes starPop{0%{transform:scale(.8) rotate(-12deg)}60%{transform:scale(1.12) rotate(6deg)}to{transform:scale(1) rotate(0)}}.star-glyph{font-size:40px}.star-word{font-size:18px;font-weight:900}.celebrate{font-size:28px;font-weight:900;color:var(--green);animation:bounce 1s ease infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@media (max-width: 640px){.hero h1{font-size:32px}.topbar{padding:12px 16px}.lesson-shell{padding:12px 14px 80px}.deck-emoji{font-size:80px}.deck-word{font-size:44px}.sentence,.option{font-size:22px}}
