:root{--bg: #1a1a2e;--card: #1e2a45;--bd: #2a3a5c;--accent: #58CC02;--ad: #46a302;--or: #FF9600;--re: #FF4B4B;--bl: #49C8F5;--pu: #CE82FF;--ye: #FFC800;--pk: #FF86D0;--tx: #fff;--dm: #8b9dc3;--mt: #56687a;--font-body: "Nunito", sans-serif;--font-display: "Baloo 2", cursive}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);font-weight:600;color:var(--tx);background:#0a0a1a;line-height:1.5;min-height:100vh;min-height:100dvh;overflow-x:hidden;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;position:fixed;width:100%;height:100%}#root{width:100%;height:100%;overflow:hidden}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;-webkit-tap-highlight-color:transparent;min-height:44px}input,textarea{font-family:inherit;font-size:16px;color:inherit;background:none;border:none;outline:none}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.2}::-webkit-scrollbar{display:none}*{scrollbar-width:none}.phone-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}.phone-frame{width:100%;height:100%;max-width:100vw;background:var(--bg);position:relative;overflow:hidden}@media(min-width:500px){.phone-wrapper{padding:20px;min-height:100vh}.phone-frame{width:390px;height:844px;border-radius:36px;box-shadow:0 16px 48px #0006,0 0 0 2px #2a3a5c}}.screen{height:100%;display:flex;flex-direction:column}.screen-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 16px calc(80px + env(safe-area-inset-bottom,0px));scrollbar-width:none}.screen-content::-webkit-scrollbar{display:none}.hd{display:flex;align-items:center;padding:calc(env(safe-area-inset-top,12px) + 8px) 16px 10px;gap:8px}.hd-back{width:44px;height:44px;display:flex;align-items:center;justify-content:center;opacity:.6}.hd-title{flex:1;font-size:16px;font-weight:900}.hd-xp{display:flex;align-items:center;gap:4px;font-size:14px;font-weight:900;color:var(--ye)}.tab-bar{position:absolute;bottom:0;left:0;right:0;background:#16213e;border-top:2px solid var(--bd);padding:8px 0 calc(8px + env(safe-area-inset-bottom,6px));display:flex;justify-content:space-around;z-index:10}.tab-item{display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;min-height:44px;min-width:44px;justify-content:center}.tab-icon{font-size:20px}.tab-label{font-size:11px;font-weight:800;color:var(--tx)}.tab-item.active .tab-label{color:#a855f7}.tab-item.active .tab-icon{position:relative}.tab-item.active .tab-icon:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:6px;height:6px;border-radius:50%;background:#a855f7;filter:blur(8px);z-index:-1}.tab-item:not(.active){opacity:.55}.card{background:var(--card);border-radius:14px;padding:14px;border:2px solid var(--bd);margin-bottom:8px}.mc{background:var(--card);border-radius:14px;padding:12px 14px;border:2px solid var(--bd);border-bottom:4px solid var(--bd);display:flex;align-items:center;gap:10px;margin-bottom:8px;cursor:pointer;transition:transform .1s}.mc:active{transform:translateY(2px);border-bottom-width:2px}.mc-icon{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.mc-title{font-size:13px;font-weight:800}.mc-sub{font-size:10px;color:var(--dm)}.mc-badge{font-size:10px;font-weight:800;padding:2px 7px;border-radius:6px}.btn{display:block;width:100%;padding:14px;border-radius:14px;border:none;font-family:var(--font-body);font-size:15px;font-weight:800;text-transform:uppercase;text-align:center;cursor:pointer;transition:transform .1s;min-height:48px}.btn:active{transform:translateY(2px)}.btn-green{background:var(--accent);border-bottom:4px solid var(--ad);color:#fff}.btn-green:active{border-bottom-width:2px}.btn-outline{background:transparent;border:2px solid var(--bd);border-bottom:4px solid var(--bd);color:var(--dm)}.progress-bar{display:flex;gap:4px}.progress-seg{flex:1;height:7px;border-radius:4px;border:2px solid var(--bd);background:var(--card)}.progress-seg.done{background:var(--accent);border-color:var(--ad)}.progress-seg.active{background:var(--ye);border-color:#cc9f00}.fox{display:flex;align-items:flex-start;gap:8px;padding:12px 14px;border-radius:14px;margin-top:8px;font-size:13px;font-weight:700;line-height:1.5}.fox-ok{background:#58cc021a;border:2px solid rgba(88,204,2,.25);color:var(--accent)}.fox-info{background:#ffc8001a;border:2px solid rgba(255,200,0,.25);color:var(--ye)}.fox-tip{background:#49c8f51a;border:2px solid rgba(73,200,245,.25);color:var(--bl)}.option{padding:14px 16px;border-radius:14px;background:var(--card);border:2px solid var(--bd);border-bottom:4px solid var(--bd);margin-bottom:8px;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700;cursor:pointer;transition:all .15s;min-height:48px}@media(hover:hover){.option:hover{border-color:var(--dm)}}.option:active{transform:scale(.98)}.option.correct{background:#58cc021f;border-color:var(--accent);border-bottom-color:var(--ad)}.option.wrong{background:#ff4b4b1f;border-color:var(--re);border-bottom-color:#cc3b3b}.option.plausible-high{background:#58cc021f;border-color:var(--accent);border-bottom-color:var(--ad)}.option.plausible-low{background:#ffc8001f;border-color:var(--ye);border-bottom-color:#d4a800}.option-num{width:24px;height:24px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0}.option-num.default{background:var(--bd);color:var(--dm)}.option-num.green{background:var(--accent);color:#fff}.option-num.red{background:var(--re);color:#fff}.option-num.yellow{background:var(--ye);color:#fff}.word-chip{display:inline-block;padding:6px 10px;border-radius:9px;margin:3px;font-size:13px;font-weight:700;border:2px solid;cursor:pointer;transition:all .15s}.word-chip.selected-correct{background:#58cc021f;border-color:var(--accent);color:var(--accent)}.word-chip.selected-wrong{background:#ff4b4b1f;border-color:var(--re);color:var(--re)}.word-chip.unselected{background:var(--card);border-color:var(--bd);color:var(--tx)}.chat-npc{padding:10px 12px;font-size:12px;font-weight:600;line-height:1.4;max-width:82%;margin-bottom:7px;background:var(--card);color:var(--tx);border:2px solid var(--bd);border-radius:14px 14px 14px 5px}.chat-player{padding:10px 12px;border-radius:14px 14px 5px;font-size:12px;font-weight:600;line-height:1.4;max-width:82%;margin-bottom:7px;background:var(--accent);color:#fff;margin-left:auto}.chat-label{font-size:9px;color:var(--mt);display:block;margin-bottom:2px}.scenario{background:var(--card);border-radius:16px;padding:16px;border:2px solid var(--bd);border-left:5px solid var(--bl);margin-bottom:10px}.steps{display:flex;align-items:center;justify-content:center;gap:2px;margin-bottom:14px}.step-circle{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:900}.step-circle.done{background:var(--accent);color:#fff}.step-circle.active{background:var(--ye);color:#1a1a2e}.step-circle.pending{background:var(--bd);color:var(--mt)}.step-line{width:12px;height:2px;border-radius:1px}.step-line.done{background:var(--accent)}.step-line.pending{background:var(--bd)}.step-label{font-size:9px;font-weight:700;margin-left:3px}.mood-grid{display:flex;gap:4px;margin-bottom:20px;justify-content:center}.mood-face{text-align:center;flex:1;cursor:pointer}.mood-emoji{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto 4px;transition:all .2s}.mood-emoji.default{background:var(--card);border:3px solid var(--bd);opacity:.5}.mood-emoji.selected{border:3px solid var(--ye);background:#ffc80026;opacity:1;box-shadow:0 0 12px #ffc8004d}.mood-label{font-size:9px;font-weight:700;color:var(--mt)}.mood-label.selected{font-weight:800;color:var(--ye)}.chip-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:0}.chip{display:inline-flex;align-items:center;gap:5px;padding:10px 14px;border-radius:14px;margin:3px;font-size:13px;font-weight:700;cursor:pointer;transition:all .15s;min-height:44px}.chip.unselected{border:2px solid var(--bd);background:var(--card);color:var(--tx)}.chip.selected{border-width:3px;box-shadow:0 0 8px #ff4b4b33}.flashcard{background:var(--card);border-radius:18px;padding:24px;border:2px solid var(--bd);text-align:center;margin-bottom:12px;min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:transform .3s}.flashcard:active{transform:scale(.98)}@media(hover:hover){.flashcard:hover{transform:scale(1.02)}}.rating-btns{display:flex;gap:6px}.rating-btn{flex:1;padding:12px;border-radius:14px;font-size:13px;font-weight:800;text-align:center;cursor:pointer;border:none}.rating-again{background:transparent;border:2px solid var(--bd);color:var(--dm)}.rating-ok{background:var(--ye);border-bottom:4px solid #cc9f00;color:#1a1a2e}.rating-easy{background:var(--accent);border-bottom:4px solid var(--ad);color:#fff}.streak-badge{display:inline-flex;align-items:center;gap:5px;background:#ff96001f;border:2px solid rgba(255,150,0,.25);border-radius:10px;padding:5px 10px}.streak-text{font-size:12px;font-weight:800;color:var(--or)}.streak-bar{height:10px;border-radius:5px;background:var(--card);border:2px solid var(--bd);overflow:hidden}.streak-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent),#7AE22A);transition:width .5s}.mission{background:linear-gradient(135deg,#58cc021f,#49c8f514);border-radius:16px;padding:14px;border:2px solid rgba(88,204,2,.25);margin-bottom:12px}.badge-circle{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;margin:0 auto 3px}.badge-circle.unlocked{border:3px solid}.badge-circle.locked{background:#56687a1f;border:3px solid var(--bd);opacity:.4}.info-block{border-radius:12px;padding:10px 11px;margin-bottom:7px;font-size:12px;font-weight:700;line-height:1.4}.theory-item{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;background:var(--card);border-radius:14px;border:2px solid var(--bd);margin-bottom:8px}.theory-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.topic-row{display:flex;align-items:center;gap:10px;padding:8px 0}.topic-circle{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;flex-shrink:0}.topic-circle.done{background:#58cc021f;border:2px solid var(--accent);color:var(--accent)}.topic-circle.pending{background:var(--card);border:2px solid var(--bd);color:var(--mt);font-size:11px}.pill{padding:5px 10px;border-radius:9px;font-size:10px;font-weight:800;border:2px solid var(--bd);background:var(--card);color:var(--dm);display:inline-block;margin:2px}.pill.active{border-color:var(--accent);background:#58cc021f;color:var(--accent)}.pill.done{border-color:var(--accent);background:var(--accent);color:#fff}.diary-entry{border-left:4px solid;padding:12px 14px}.week-grid{display:flex;gap:5px;margin-bottom:14px}.week-day{flex:1;text-align:center;padding:6px 2px;border-radius:10px}.week-day.done{background:#58cc021f;border:2px solid rgba(88,204,2,.3)}.week-day.today{background:#ffc8001f;border:2px solid rgba(255,200,0,.3)}.week-day.empty{background:var(--card);border:2px solid var(--bd)}.text-input{height:36px;border-radius:10px;background:var(--card);border:2px solid var(--bd);display:flex;align-items:center;padding:0 12px;font-size:12px;color:var(--mt);font-weight:600;width:100%}.textarea{min-height:120px;border-radius:14px;background:var(--card);border:2px dashed var(--bd);padding:12px;font-size:13px;color:var(--tx);font-weight:600;line-height:1.5;width:100%;resize:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes miraFadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes miraFadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-12px)}}@keyframes miraBounce{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes miraPulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes miraFloat{0%,to{transform:translateY(0) scale(1);opacity:.4}50%{transform:translateY(-20px) scale(1.2);opacity:.7}}.fade-in{animation:fadeIn .3s ease forwards}@keyframes heroFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes borderGlow{0%,to{border-color:#ffd93d}50%{border-color:#ff9f43}}@keyframes cardPulse{0%,to{box-shadow:0 0 15px #ffd93d26}50%{box-shadow:0 0 30px #ffd93d4d}}@keyframes badgeBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes cardFadeInUp{0%{opacity:0;transform:translateY(30px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 4px #a855f7}50%{box-shadow:0 0 12px #a855f7}}.home-card:active{transform:scale(.97)!important;transition:transform .1s ease!important}@keyframes wissenNodeIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes currentNodePulse{0%,to{box-shadow:0 0 8px #58cc024d}50%{box-shadow:0 0 22px #58cc0299}}.wissen-node:active{transform:scale(.96)!important;transition:transform .1s ease!important}@keyframes progressFadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes badgeShimmer{0%,to{opacity:.3}50%{opacity:.45}}@keyframes badgeFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.progress-stat:active,.progress-badge:active,.progress-next:active{transform:scale(.97)!important;transition:transform .1s ease!important}.stat-card{flex:1;text-align:center;padding:12px 6px}@media(max-width:360px){.screen-content{padding:0 12px calc(80px + env(safe-area-inset-bottom,0px))}.hd{padding-left:12px;padding-right:12px}.mood-emoji{width:48px;height:48px;font-size:26px}}.tab-item,.option,.chip,.mc,.word-chip,.mood-face,.flashcard,.btn{-webkit-user-select:none;user-select:none}
