:root{color-scheme:light dark;--tg-bg: #0f111a;--tg-surface: #171a27;--tg-card: #1f2435;--tg-text: #f5f7ff;--tg-text-strong: #ffffff;--tg-text-on-accent: #ffffff;--tg-subtle: #c1c7d6;--tg-accent: #6dd3ff;--tg-accent-strong: #2ea3ff;--tg-border: #2a3042;--tg-success: #5bd691;--tg-danger: #ff5f6d;--tg-warning: #ffc857;--tg-overlay: rgba(0, 0, 0, .45);--tg-overlay-strong: rgba(0, 0, 0, .72);--tg-button-primary-bg: #7480b7;--tg-button-primary-border: #7480b7;--tg-button-primary-shadow: #5b6697;--tg-button-primary-text: #ffffff;--tg-button-positive-bg: #4dcf75;--tg-button-positive-border: #4dcf75;--tg-button-positive-shadow: #2e9d52;--tg-button-positive-text: #ffffff;--tg-button-negative-bg: #f8ae2b;--tg-button-negative-border: #f8ae2b;--tg-button-negative-shadow: #cc8a1e;--tg-button-negative-text: #ffffff;--tg-button-neutral-bg: #20273a;--tg-button-neutral-border: #2a3042;--tg-button-neutral-shadow: #151b2a;--tg-button-neutral-text: #f5f7ff;--tg-video-overlay-bg: rgba(0, 0, 0, .72);--tg-video-overlay-text: #ffffff;--tg-video-subtitle-secondary: #c1c7d6;--tg-media-bg: #000000;--tg-highlight: #ffd54a;--tg-brand-blue: #52c3ff;--tg-brand-orange: #f8ae2b;--tg-brand-purple: #7480b7;--tg-brand-teal: #5cd2d2;--tg-brand-green: #58ac65;--tg-shadow-soft: rgba(0, 0, 0, .2);--tg-shadow-strong: rgba(0, 0, 0, .45);--tg-training-container-bg: #1f2435;--app-safe-top: env(safe-area-inset-top, 0px);--app-safe-right: env(safe-area-inset-right, 0px);--app-safe-bottom: env(safe-area-inset-bottom, 0px);--app-safe-left: env(safe-area-inset-left, 0px);--tg-safe-area-inset-top: var(--app-safe-top, 0px);--tg-safe-area-inset-right: var(--app-safe-right, 0px);--tg-safe-area-inset-bottom: var(--app-safe-bottom, 0px);--tg-safe-area-inset-left: var(--app-safe-left, 0px);--tg-content-safe-area-inset-top: 0px;--tg-content-safe-area-inset-right: 0px;--tg-content-safe-area-inset-bottom: 0px;--tg-content-safe-area-inset-left: 0px;--nav-height: 56px}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-Italic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-Medium.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-MediumItalic.ttf) format("truetype");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-SemiBold.ttf) format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-SemiBoldItalic.ttf) format("truetype");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-ExtraBold.ttf) format("truetype");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-ExtraBoldItalic.ttf) format("truetype");font-weight:800;font-style:italic;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-Light.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-LightItalic.ttf) format("truetype");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-ExtraLight.ttf) format("truetype");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-ExtraLightItalic.ttf) format("truetype");font-weight:200;font-style:italic;font-display:swap}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;width:100%}body{margin:0;font-family:Plus Jakarta Sans,SF Pro Display,Roboto,system-ui,-apple-system,sans-serif;background:var(--tg-bg);color:var(--tg-text);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;min-height:100vh;height:auto;overflow:hidden}a{color:inherit;text-decoration:none}button{font-family:inherit;-webkit-tap-highlight-color:transparent}html,body,#root,*{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,body::-webkit-scrollbar,#root::-webkit-scrollbar,*::-webkit-scrollbar{width:0;height:0;display:none}.video-dict-slider{scrollbar-width:none;-ms-overflow-style:none}.video-dict-slider::-webkit-scrollbar{display:none}.page{max-width:100vw;width:100vw;margin:0 auto;padding:0;top:calc(var(--tg-safe-area-inset-top) + var(--tg-content-safe-area-inset-top));bottom:var(--tg-safe-area-inset-bottom);z-index:5}.page-shell{display:flex;flex-direction:column;width:100vw;top:calc(var(--tg-safe-area-inset-top) + var(--tg-content-safe-area-inset-top));bottom:var(--tg-safe-area-inset-bottom);height:calc(100vh - (var(--tg-safe-area-inset-top) + var(--tg-content-safe-area-inset-top) + var(--tg-safe-area-inset-bottom)));position:relative;overflow:hidden}.page-shell__content{height:100%;width:100%;background:var(--tg-bg);color:var(--tg-text)}.page-shell__content--scroll{overflow-y:auto;overscroll-behavior-y:contain}.page-shell__content--no-scroll{overflow:hidden}.page-shell__content--pad,.page-shell__content--no-pad{padding:0}@keyframes slot-shake{0%,to{transform:translate(0)}15%{transform:translate(-4px)}30%{transform:translate(4px)}45%{transform:translate(-3px)}60%{transform:translate(3px)}75%{transform:translate(-2px)}90%{transform:translate(2px)}}.slot-shake{animation:slot-shake 1s ease-in-out 1}@keyframes mastery-cell-overlay-fade{0%{opacity:0}16%{opacity:1}88%{opacity:1}to{opacity:0}}.mastery-cell-modal-overlay{position:fixed;inset:0;background:radial-gradient(circle at center,#00000042,#00000080 62%,#00000094);animation:mastery-cell-overlay-fade 2.4s ease-in-out 1;pointer-events:none}@keyframes mastery-cell-modal-pop{0%{transform:translate(-50%,calc(-50% + 14px)) scale(.34);background:#ffffff29;box-shadow:0 0 #2ac46f00;opacity:0}14%{transform:translate(-50%,-50%) scale(1);background:#ffffff29;box-shadow:0 20px 40px #00000059;opacity:1}70%{transform:translate(-50%,-50%) scale(1);background:#ffffff29;box-shadow:0 20px 40px #00000059;opacity:1}82%{transform:translate(-50%,-50%) scale(1.02);background:#2ac46f;box-shadow:0 26px 46px #2ac46f73;opacity:1}to{transform:translate(-50%,calc(-50% - 8px)) scale(.56);background:#2ac46f;box-shadow:0 0 #2ac46f00;opacity:0}}.mastery-cell-modal{position:fixed;left:50%;top:50%;width:min(220px,78vw);height:min(220px,78vw);padding:12px;border-radius:22px;border:2px solid rgba(255,255,255,.2);display:grid;place-items:center;animation:mastery-cell-modal-pop 2.4s cubic-bezier(.2,.75,.2,1) 1;will-change:transform,opacity,background,box-shadow;pointer-events:none;z-index:91;overflow:visible}.mastery-cell-modal__word{display:block;width:100%;max-width:100%;text-align:center;font-size:clamp(24px,6vw,42px);font-weight:800;line-height:1.14;color:#071224;word-break:break-word;overflow-wrap:anywhere;white-space:normal;text-wrap:balance}@keyframes reward-pop{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes reward-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes reward-float{0%,to{transform:translateY(0);opacity:.9}50%{transform:translateY(-7px);opacity:1}}.page-header{margin-top:0}.section{background:var(--tg-surface);border:1px solid var(--tg-border);border-radius:18px;padding:16px;margin-bottom:14px;box-shadow:0 8px 30px #00000047}.keyboard-open .app-navbar,.nav-hidden .app-navbar{display:none!important}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:12px;font-size:12px;background:#6dd3ff24;border:1px solid rgba(109,211,255,.4);color:var(--tg-accent)}
