@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2)format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2)format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2)format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2)format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2)format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-latin-400-normal-Dhut76fR.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-400-normal-BDKaGhyp.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/plus-jakarta-sans-latin-500-normal-Bf-nb4oT.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-500-normal-DYtqi0QS.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/plus-jakarta-sans-latin-600-normal-DLTa1BUW.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-600-normal-BR_Ojra4.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/plus-jakarta-sans-latin-700-normal-CfpNZvy6.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-700-normal-DqEcQeE5.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/plus-jakarta-sans-latin-800-normal-CusIZhrK.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-800-normal-BRNHt2w0.woff)format("woff")}:root{--blue:#24388f;--purple:#6b5cff;--violet:#7b74e8;--text-main:#171a3a;--text-muted:#5e6285;--text-faint:#969ab8;--card:#ffffffbd;--dark:#171a3a;--bg-sky:#eef5ff;--bg-cream:#fff5f1;--violet-soft:#ece9ff;--pink:#ff8fd8;--bg-page:#1e3aa8;--line:#7d7bb12e;--font-display:"Plus Jakarta Sans", "Inter", system-ui, sans-serif;--font-body:"Inter", system-ui, -apple-system, sans-serif;font-family:var(--font-body);font-display:swap;color:var(--text-main);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;line-height:1.5}*{box-sizing:border-box}html{background-color:var(--bg-page)}body{color:var(--text-main);background-color:var(--bg-page);background-image:radial-gradient(circle at 15% 8%,#6b5cff59,#0000 40%),radial-gradient(circle at 85% 92%,#54a8ff40,#0000 45%);margin:0}#root{z-index:1;min-height:100svh;position:relative}h1,h2,h3{font-family:var(--font-display);color:var(--text-main);margin:0}h1{letter-spacing:-.02em;font-size:32px;font-weight:800;line-height:1.15}h2{letter-spacing:-.01em;font-size:24px;font-weight:600;line-height:1.2}h3{letter-spacing:-.01em;font-size:19px;font-weight:700;line-height:1.25}p{margin:0}a{color:var(--blue)}input,select,textarea{font-family:var(--font-body);border:1px solid var(--line);color:var(--text-main);background:#ffffffe0;border-radius:16px;outline:none;padding:12px 14px;font-size:15px;transition:border-color .15s,box-shadow .15s,transform .15s;box-shadow:0 8px 24px #49429314}input:focus,select:focus,textarea:focus{border-color:#6b5cff66;box-shadow:0 0 0 4px #6b5cff1f,0 12px 32px #4942931f}button{font-family:var(--font-display);cursor:pointer}button:not([style]){color:#fff;letter-spacing:0;background:linear-gradient(135deg,#6b5cff 0%,#54a8ff 100%);border:none;border-radius:100px;padding:12px 20px;font-size:14px;font-weight:700;box-shadow:0 16px 32px #5c53cb3d}button:not([style]):hover{transform:translateY(-1px)}button:not([style]):disabled{opacity:.45;cursor:default;background:var(--text-faint)}table{font-family:var(--font-body)}::selection{background:#0011662e}.login-shell{grid-template-columns:1.1fr .9fr;align-items:stretch;gap:20px;width:980px;max-width:100%;display:grid}.login-title{font-size:46px}.sticky-cta-wrap{background:0 0}.page-with-sticky-cta{padding-bottom:calc(200px + env(safe-area-inset-bottom,0px))}.page-with-tabbar{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}.dashboard-hero-btn{transition:transform .15s,opacity .15s}.dashboard-hero-btn:hover{transform:scale(1.02)}.dashboard-hero-btn:active{opacity:.92;transform:scale(.98)}.dashboard-hero-quote-figure{filter:drop-shadow(0 2px 6px #00000014)}.dashboard-hero-quote-sticker{box-sizing:border-box;justify-content:center;align-items:center;min-width:200px;height:44px;margin:0;padding:0 18px 10px;display:inline-flex;position:relative}.dashboard-hero-quote-sticker__shape{z-index:0;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.dashboard-hero-quote-sticker__shape path{fill:#e9e9eb}.dashboard-hero-quote-sticker__text{z-index:1;text-align:center;letter-spacing:-.01em;color:#1c1c1e;white-space:nowrap;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:14px;font-weight:400;line-height:1.25;position:relative}.student-tabbar{left:50%;right:auto;bottom:calc(12px + env(safe-area-inset-bottom,0px));box-sizing:border-box;-webkit-backdrop-filter:blur(20px);z-index:10;--tab-color:var(--text-muted);--tab-active:var(--text-main);--tab-accent:var(--purple);background:linear-gradient(145deg,#ffffff80 0%,#ffffff2e 100%),linear-gradient(135deg,#ff8fd847 0%,#ece9ffb8 42%,#6b5cff38 100%);border:1px solid #ffffff6b;border-radius:28px;justify-content:center;align-items:center;gap:2px;width:min(390px,100% - 24px);padding:8px 10px 10px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px #49429329,inset 0 1px #ffffff8c}.student-tab{min-width:0;max-width:88px;color:var(--tab-color);font-size:12px;font-weight:600;font-family:var(--font-body);cursor:pointer;box-shadow:none;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:999px;flex-direction:row;flex:1 1 0;justify-content:center;align-items:center;gap:4px;padding:8px 6px;line-height:1.1;display:flex;overflow:hidden}.student-tab:hover{transform:none}.student-tab.active{color:var(--tab-active);background:#171a3a0d;font-weight:700;box-shadow:inset 0 0 0 1px #171a3a14}.student-tab--highlight{margin-top:0;flex-direction:column;gap:3px;margin-inline:0;padding:2px 0 0;overflow:visible;box-shadow:none!important;background:0 0!important}.student-tab--highlight.active{box-shadow:none!important;background:0 0!important}.student-tab-highlight{pointer-events:none;flex-direction:column;align-items:center;gap:3px;width:64px;display:flex}.student-tab-highlight__ring{border:2px solid var(--pink);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;padding:0;transition:box-shadow .15s,transform .15s,border-color .15s;display:flex;overflow:hidden;box-shadow:0 0 0 2px #ff8fd840,0 0 12px #ff8fd859}.student-tab-highlight__ring.active{border-color:var(--pink);transform:translateY(-2px);box-shadow:0 0 0 2px #ff8fd873,0 0 16px #ff8fd88c,0 4px 12px #0000001a}.student-tab-highlight__img{object-fit:cover;object-position:center;border-radius:50%;width:112%;height:112%;display:block}.student-tab-highlight__img--home{object-position:center 30%}.student-tab-highlight__img--map{object-position:center 46%;width:215%;height:215%}.student-tab-highlight__img--mistakes{object-position:center 45%;width:128%;height:128%}.student-tab-highlight__img--awards{object-position:center 40%;width:178%;height:178%}.student-tab-highlight__label{color:var(--tab-color);letter-spacing:-.02em;text-align:center;white-space:nowrap;width:100%;font-size:12px;font-weight:600;line-height:1.05}.student-tab.active .student-tab-highlight__label{color:var(--tab-active);font-weight:800}.weekmap-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.table-scroll-wrap{-webkit-overflow-scrolling:touch;margin:0 -4px;padding:0 4px;overflow-x:auto}.students-table{border-collapse:collapse;width:100%;min-width:720px}.admin-form-grid{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.admin-form-grid input[type=email],.admin-form-grid input[type=text],.admin-form-grid input[type=number]{width:100%;max-width:220px}.admin-header{padding:26px 30px}.admin-content{max-width:1100px;padding:24px 20px calc(48px + env(safe-area-inset-bottom,0px));margin:0 auto}.vocab-table-wrap{border:1px solid var(--line);border-radius:12px;overflow-x:auto}.vocab-table{border-collapse:collapse;width:100%;font-family:var(--font-body);background:#ffffffeb;font-size:14px}.vocab-table th,.vocab-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:10px 12px}.vocab-table th{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);background:#f1ecffa6;font-size:12px;font-weight:700}.vocab-table tbody tr:last-child td{border-bottom:none}.vocab-table tbody tr:hover td{background:#6b5cff0a}.vocab-table .vocab-num{width:40px;color:var(--text-faint);font-variant-numeric:tabular-nums}.vocab-table .vocab-en{color:var(--blue);min-width:140px;font-weight:600}.vocab-table .vocab-def{color:var(--text-muted);min-width:180px}.vocab-table .vocab-week{font-variant-numeric:tabular-nums;width:48px;color:var(--text-muted);font-weight:600}.vocab-table .vocab-actions{white-space:nowrap;width:100px}.awards-page-header{align-items:center;gap:10px;margin-bottom:4px;display:flex}.awards-page-header__cat{object-fit:cover;object-position:center 38%;filter:drop-shadow(0 2px 6px #0000002e);-webkit-user-select:none;user-select:none;pointer-events:none;flex-shrink:0;width:64px;height:52px;display:block}@keyframes awards-cloud-shift{0%,to{background-position:0%}50%{background-position:100%}}@keyframes award-pill-pop{0%{opacity:0;scale:.72}65%{scale:1.06}to{opacity:1;scale:1}}@keyframes award-badge-float{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-5px)rotate(2deg)}}@keyframes award-badge-glow{0%,to{filter:drop-shadow(0 0 6px #ffb43c8c)drop-shadow(0 3px 8px #0000002e)}50%{filter:drop-shadow(0 0 16px #ff8cffd9)drop-shadow(0 0 8px #64c8ff99)drop-shadow(0 4px 10px #0003)}}@keyframes award-shine-sweep{0%,72%,to{opacity:0;transform:translate(-130%)skew(-20deg)}78%{opacity:.85}88%{opacity:0;transform:translate(130%)skew(-20deg)}}@keyframes award-sparkle-orbit{0%,to{opacity:0;scale:.4}50%{opacity:1;scale:1}}.awards-cloud{background:linear-gradient(135deg,#c8d4ff 0%,#ffd6f0 28%,#ffe8a8 55%,#c8f0ff 78%,#e0d0ff 100%) 0 0/220% 220%;border-radius:28px;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 10px;padding:28px 16px 32px;animation:10s ease-in-out infinite awards-cloud-shift;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 48px #4942932e,inset 0 1px #ffffff8c}.awards-cloud:before{content:"";opacity:.045;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px;position:absolute;inset:0}.award-sticker-wrap{z-index:1;width:88px;animation:.55s cubic-bezier(.34,1.4,.64,1) both award-pill-pop;animation-delay:calc(var(--award-i,0) * 40ms);flex-direction:column;flex-shrink:0;align-items:center;gap:6px;display:flex;position:relative}.award-sticker{-webkit-user-select:none;user-select:none;border-radius:22px;justify-content:center;align-items:center;width:64px;height:64px;font-size:34px;line-height:1;display:flex;box-shadow:0 4px 12px #00000024,inset 0 1px #ffffff6b}.award-sticker--words{background:linear-gradient(145deg,#dcff8a 0%,#a8e635 55%,#7bc924 100%)}.award-sticker--mastered{background:linear-gradient(145deg,#e4b8ff 0%,#b06cff 55%,#8b45f5 100%)}.award-sticker--streak{background:linear-gradient(145deg,#ffd08a 0%,#ff9a45 55%,#ff6b1a 100%)}.award-sticker--special{background:linear-gradient(145deg,#9ec8ff 0%,#5a9bff 55%,#3b7fff 100%)}.award-sticker-wrap--earned{animation:.55s cubic-bezier(.34,1.4,.64,1) both award-pill-pop,3.2s ease-in-out infinite award-badge-float;animation-delay:calc(var(--award-i,0) * 40ms), calc(var(--award-i,0) * .18s)}.award-sticker-wrap--earned .award-sticker{animation:2.4s ease-in-out infinite award-badge-glow;animation-delay:calc(var(--award-i,0) * .2s)}.award-sticker-wrap--locked{opacity:.55;filter:saturate(.7)}.award-sticker-wrap--locked .award-sticker{filter:grayscale(.2)brightness(.96);box-shadow:0 3px 8px #00000014}.award-sticker-wrap--locked .award-sticker--words{background:linear-gradient(145deg,#dcff8a73 0%,#7bc92473 100%)}.award-sticker-wrap--locked .award-sticker--mastered{background:linear-gradient(145deg,#e4b8ff73 0%,#8b45f573 100%)}.award-sticker-wrap--locked .award-sticker--streak{background:linear-gradient(145deg,#ffd08a73 0%,#ff6b1a73 100%)}.award-sticker-wrap--locked .award-sticker--special{background:linear-gradient(145deg,#9ec8ff73 0%,#3b7fff73 100%)}.award-sticker-label{max-width:100%;font-family:var(--font-body);letter-spacing:.01em;text-align:center;color:#261c58e0;text-wrap:balance;font-size:12px;font-weight:700;line-height:1.25}.award-sticker-label--skeleton{background:#ffffff8c;border-radius:4px;width:64px;height:10px;animation:1.2s ease-in-out infinite shimmer;display:block}.award-sticker--skeleton{background:#ffffff8c;border-radius:20px;width:64px;height:64px;animation:1.2s ease-in-out infinite shimmer;box-shadow:0 4px 12px #0000000a}.award-sticker-wrap:nth-child(6n+1){transform:translate(-8px)rotate(-2.5deg)}.award-sticker-wrap:nth-child(6n+2){transform:translate(10px)rotate(1.8deg)}.award-sticker-wrap:nth-child(6n+3){transform:translateY(3px)rotate(-1deg)}.award-sticker-wrap:nth-child(6n+4){transform:translate(-4px)rotate(2.2deg)}.award-sticker-wrap:nth-child(6n+5){transform:translate(6px)rotate(-1.5deg)}.award-sticker-wrap:nth-child(6n){transform:translateY(-2px)rotate(1.2deg)}.awards-next{font-family:var(--font-body);color:#ffffffd1;text-align:center;background:#ffffff24;border-radius:999px;margin:16px 4px 0;padding:12px 16px;font-size:13px;font-weight:500;line-height:1.45}.awards-next strong{color:#fff;font-weight:700}@media (prefers-reduced-motion:reduce){.awards-cloud,.award-sticker-wrap,.award-sticker-wrap--earned,.award-sticker-wrap--earned .award-sticker{animation:none!important}}@media (width<=640px){.login-shell{grid-template-columns:1fr}.login-title{font-size:32px}.login-hero{padding:28px 22px!important}.weekmap-stat-grid{grid-template-columns:1fr}.weekmap-stat-grid .stat-box-sub{display:none}.awards-page-header__cat{width:58px;height:46px}.awards-cloud{gap:10px 8px;padding:22px 12px 26px}.award-sticker{width:56px;height:56px;font-size:30px}.award-sticker--skeleton{width:56px;height:56px}.admin-header{padding:20px 16px}.admin-header h1{font-size:24px!important}.admin-content{padding:16px 14px calc(40px + env(safe-area-inset-bottom,0px))}.admin-form-grid{flex-direction:column;align-items:stretch}.admin-form-grid>div{width:100%}.admin-form-grid input[type=email],.admin-form-grid input[type=text],.admin-form-grid input[type=number]{max-width:100%}.student-card{flex-direction:column;gap:12px;display:flex!important}.student-card-table{display:none!important}}@media (width>=641px){.student-card{display:none!important}}@media (width<=400px){h1{font-size:26px}.exercise-task-title{font-size:22px!important}.exercise-task-title--snake{font-size:20px!important}}.exercise-task-title{word-break:break-word;font-size:26px;line-height:1.25}.exercise-task-title--snake{word-break:break-all;font-family:ui-monospace,Cascadia Code,monospace}.vanishing-phrase{animation:.35s vanishing-fade-in}@keyframes vanishing-fade-in{0%{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
