:root{--bg:#fff;--ink:#3b3355;--muted:#a39db8;--line:#e8e5f1;--soft:#f5f3fb;--purple:#8b5cf6;--purple-dark:#6d3fe0;--purple-soft:#efe9ff;--orange:#ff9a1f;--orange-dark:#e07d00;--orange-soft:#fff1dc;--green:#58cc02;--green-dark:#46a302;--green-soft:#dcf8c4;--red:#ff4b4b;--red-dark:#e02f2f;--red-soft:#ffe0e0;--yellow:#ffc800;--card:#fff;--page:#ece8f7;--text-soft:#6f6889;--line-dark:#d6d2e3;--green-text:var(--green-dark);--red-text:var(--red-dark);--fur:#2f2947;--fur-light:#4a4169;--accent:var(--purple);--accent-dark:var(--purple-dark);--accent-soft:var(--purple-soft);--safe-top:calc(max(env(safe-area-inset-top), var(--tg-safe-area-inset-top,0px)) + var(--tg-content-safe-area-inset-top,0px));--safe-bottom:max(env(safe-area-inset-bottom), var(--tg-safe-area-inset-bottom,0px))}:root[data-theme=dark]{--bg:#17132a;--ink:#f1eefb;--muted:#8f88ab;--line:#372f58;--soft:#1f1936;--card:#231d3c;--page:#0e0b1b;--text-soft:#bcb5d6;--line-dark:#2a2347;--purple:#9b75ff;--purple-soft:#2f2459;--orange-soft:#3f2b10;--green-soft:#1d3a10;--red-soft:#45181d;--green-text:#8fe04e;--red-text:#ff8f8f;--fur:#5d5289;--fur-light:#7b6fae;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;background:var(--page);height:100%;color:var(--ink);font-family:var(--font-body), system-ui, sans-serif;margin:0;font-size:16px;font-weight:700;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}h1,h2,h3,p{margin:0}.caps{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:13px;font-weight:800}@keyframes pop{0%{opacity:0;transform:scale(.96)}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}@keyframes bounce{40%{transform:scale(1.06)}}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes bob{50%{transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.icon{vertical-align:middle;flex-shrink:0;display:inline-block}
.shell{background:var(--bg);flex-direction:column;max-width:460px;margin:0 auto;display:flex;position:fixed;inset:0}.shell[data-mode=review]{--accent:var(--orange);--accent-dark:var(--orange-dark);--accent-soft:var(--orange-soft)}.screen{overscroll-behavior:contain;min-height:0;padding:calc(14px + var(--safe-top)) 16px 14px;flex-direction:column;flex:1;gap:14px;display:flex;overflow-y:auto}.tabbar{padding:8px 12px calc(8px + var(--safe-bottom));border-top:2px solid var(--line);flex-shrink:0;gap:6px;display:flex}.tab{color:var(--muted);border:2px solid #0000;border-radius:14px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 4px;font-size:12px;font-weight:800;display:flex}.tab.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.btn{background:var(--accent);width:100%;box-shadow:0 4px 0 var(--accent-dark);color:#fff;letter-spacing:.04em;text-transform:uppercase;border-radius:16px;flex-shrink:0;padding:14px 16px;font-size:16px;font-weight:900;transition:transform 60ms,box-shadow 60ms}.btn:active:not(:disabled){box-shadow:0 0 0 var(--accent-dark);transform:translateY(4px)}.btn:disabled{background:var(--line);box-shadow:0 4px 0 var(--line-dark);color:var(--muted);cursor:default}.btn.ghost{background:var(--card);box-shadow:0 4px 0 var(--line), inset 0 0 0 2px var(--line);color:var(--accent)}.btn.ghost:active{box-shadow:inset 0 0 0 2px var(--line)}.btn.green{background:var(--green);box-shadow:0 4px 0 var(--green-dark)}.btn.red{background:var(--red);box-shadow:0 4px 0 var(--red-dark)}.surface{background:var(--card);border:2px solid var(--line);border-bottom-width:4px;border-radius:18px}button.surface:active{transform:translateY(2px)}.close{width:36px;height:36px;color:var(--muted);border-radius:12px;flex-shrink:0;font-size:18px;font-weight:900}.bar{background:var(--line);border-radius:999px;flex:1;height:16px;overflow:hidden}.bar div{background:var(--accent);border-radius:999px;height:100%;transition:width .3s;position:relative}.bar div:after{content:"";background:#ffffff59;border-radius:999px;height:4px;position:absolute;inset:4px 8px auto}.bar.thin{height:10px}.bar.thin div:after{display:none}.mascot{flex-shrink:0}.animation{flex-shrink:0;place-items:center;display:grid;position:relative}.animation-frame{position:absolute;inset:0}.close,.chevron{place-items:center;display:grid}.bubble,.gb-link{align-items:center;gap:6px;display:inline-flex}.inline-flame{color:var(--orange);vertical-align:-2px}.install{gap:14px}.install-head{align-items:center;gap:12px;display:flex}.install-head h2{font-size:20px;font-weight:900;line-height:1.2}.install-head p{color:var(--text-soft);margin-top:4px;font-size:14px;font-weight:600}.install-steps{counter-reset:step;flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.install-steps li{background:var(--soft);border-radius:16px;align-items:center;gap:12px;padding:10px 12px;font-size:15px;font-weight:700;display:flex}.install-steps i{background:var(--accent-soft);width:38px;height:38px;color:var(--accent);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.install .btn{justify-content:center;align-items:center;gap:8px;display:flex}
.course-list{flex-direction:column;align-self:stretch;gap:10px;display:flex}.course{text-align:left;align-items:center;gap:12px;width:100%;padding:14px;font-size:18px;display:flex}.course b{font-weight:900}.course.active{background:var(--purple-soft);border-color:var(--purple)}
.home-head{flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;display:flex}.course-pill{border:2px solid var(--line);min-width:0;color:var(--ink);border-bottom-width:4px;border-radius:999px;align-items:center;gap:8px;padding:6px 12px 6px 8px;font-size:16px;font-weight:900;display:flex}.course-pill span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.course-pill .icon{color:var(--muted);flex-shrink:0}.flag{box-shadow:0 0 0 1.5px var(--line);border-radius:6px;flex-shrink:0;display:block}.streak-pill{background:var(--soft);color:var(--muted);border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:7px 12px;font-size:16px;font-weight:900;display:flex}.streak-pill.on{background:var(--orange-soft);color:var(--orange)}.today{background:var(--accent-soft);border-radius:22px;flex-shrink:0;align-items:center;gap:14px;padding:12px 14px;display:flex}.today-ring{flex-shrink:0;width:64px;height:64px;position:relative}.today-ring svg{transform:rotate(-90deg)}.today-ring circle{fill:none;stroke-width:7px}.ring-track{stroke:var(--card)}.ring-fill{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .4s}.today-ring span{color:var(--muted);justify-content:center;align-items:baseline;padding-top:21px;font-size:12px;font-weight:800;display:flex;position:absolute;inset:0}.today-ring b{color:var(--accent);font-size:18px;font-weight:900}.today-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.today-body>b{font-size:17px;font-weight:900}.today-body>span{color:var(--text-soft);font-size:13px;font-weight:700}.today-stats{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.today-stats span{background:var(--card);border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:13px;font-weight:900;display:flex}.today-stats .good{color:var(--green-text)}.today-stats .bad{color:var(--red-text)}.today-stats .due{color:var(--accent)}.modes{flex-shrink:0;gap:8px;display:flex}.mode{border:2px solid var(--line);color:var(--muted);border-bottom-width:4px;border-radius:14px;flex:1;padding:9px 4px;font-size:14px;font-weight:900}.modes.wrap{grid-template-columns:1fr 1fr;display:grid}.count-badge{background:var(--orange);color:#fff;border-radius:999px;min-width:20px;margin-left:6px;padding:1px 6px;font-size:12px;font-style:normal;line-height:18px;display:inline-block}.mode.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.cheat{background:var(--soft);border-radius:16px;flex-shrink:0;padding:4px 12px}.cheat-head{align-items:center;gap:8px;min-height:40px;display:flex}.cheat-title{text-align:left;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:15px;font-weight:900;overflow:hidden}.cheat-pager{align-items:center;gap:4px;padding:8px 2px;display:flex}.cheat-pager i{background:var(--line-dark);border-radius:50%;width:8px;height:8px}.cheat-pager i.on{background:var(--accent)}.chevron{background:var(--card);width:28px;height:28px;color:var(--accent);border-radius:50%;font-size:11px}.cheat-body{border-top:2px solid var(--line);padding:6px 0 10px;animation:.18s ease-out pop}.cheat-row{grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:12px;padding:4px 0;font-size:15px;display:grid}.cheat-row b{color:var(--accent);font-weight:900}.note{color:var(--muted);margin-top:6px;font-size:13px}.flash{text-align:center;border-radius:24px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;min-height:190px;padding:52px 18px 22px;animation:.22s ease-out pop;display:flex;position:relative}.level-chip,.topic-chip{border-radius:999px;padding:5px 12px;font-size:13px;font-weight:900;position:absolute;top:12px}.level-chip{background:var(--yellow);color:#6b4e00;left:12px}.topic-chip{background:var(--accent-soft);max-width:60%;color:var(--accent);align-items:center;gap:2px;display:flex;right:12px}.word{overflow-wrap:anywhere;font-size:clamp(30px,9vw,40px);font-weight:900;line-height:1.15}.term-note{color:var(--muted);font-size:12px;font-weight:700;display:block}.word .term-note{margin-top:2px;font-size:15px}.speak{vertical-align:middle;background:var(--accent);width:40px;height:40px;box-shadow:0 3px 0 var(--accent-dark);color:#fff;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:50%;place-items:center;margin-left:10px;display:inline-grid}.speak:active{box-shadow:none;transform:translateY(3px)}.speak.small{background:var(--accent-soft);width:28px;height:28px;box-shadow:none;color:var(--accent);margin-left:6px}.example{color:var(--text-soft);font-size:17px}.ipa{color:var(--muted);font-size:15px}.deck-area{flex-direction:column;flex:1;min-height:190px;display:flex;position:relative}.deck{perspective:1400px;flex:1;position:relative}.deck-shadow{border:2px solid var(--line);background:var(--soft);border-radius:26px;position:absolute;inset:10px 14px -10px}.swipe-card{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;animation:.22s ease-out pop;position:absolute;inset:0}.card-flip{width:100%;height:100%;transform-style:preserve-3d;transition:transform .45s cubic-bezier(.3,.7,.3,1);position:relative}.revealed .card-flip{transform:rotateY(180deg)}.card-face{text-align:center;backface-visibility:hidden;border-radius:26px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:54px 18px 44px;display:flex;position:absolute;inset:0;overflow:hidden}.card-face.back{transform:rotateY(180deg)}.revealed .card-face.front button,.swipe-card:not(.revealed) .card-face.back button{pointer-events:none}.card-question{color:var(--text-soft);align-items:center;font-size:20px;font-weight:800;display:flex}.card-answer{color:var(--accent);overflow-wrap:anywhere;font-size:clamp(28px,8vw,36px);font-weight:900;line-height:1.15}.card-answer.small{font-size:22px}.card-hint{color:var(--muted);align-items:center;gap:6px;font-size:13px;font-weight:800;display:flex;position:absolute;bottom:14px}.swipe-card:before,.swipe-card:after{content:"";pointer-events:none;border-radius:26px;position:absolute;inset:0}.swipe-card:before{background:var(--green);opacity:calc(var(--pull-right,0) * .16)}.swipe-card:after{background:var(--red);opacity:calc(var(--pull-left,0) * .16)}.swipe-label{z-index:1;background:var(--card);text-transform:uppercase;pointer-events:none;border:3px solid;border-radius:12px;align-items:center;gap:6px;padding:6px 12px;font-size:16px;font-weight:900;display:flex;position:absolute;top:56px}.swipe-label.right{color:var(--green-text);opacity:var(--pull-right,0);left:18px;transform:rotate(-12deg)}.swipe-label.left{color:var(--red-text);opacity:var(--pull-left,0);right:18px;transform:rotate(12deg)}.rate-bar{flex-direction:column;flex-shrink:0;gap:8px;display:flex}.rate-bar .btn{justify-content:center;align-items:center;gap:8px;display:flex}.ratings{grid-template-columns:repeat(4,1fr);gap:8px;animation:.18s ease-out pop;display:grid}.rating{border:2px solid;border-bottom-width:4px;border-radius:16px;flex-direction:column;align-items:center;gap:1px;padding:8px 2px 7px;display:flex}.rating:active{transform:translateY(2px)}.rating b{font-size:16px;font-weight:900}.rating span{white-space:nowrap;font-size:12px;font-weight:800}.rating.again{background:var(--red-soft);border-color:var(--red);color:var(--red-text)}.rating.hard{background:var(--orange-soft);border-color:var(--orange);color:var(--orange-dark)}.rating.good{background:var(--green-soft);border-color:var(--green);color:var(--green-text)}.rating.easy{background:var(--purple-soft);border-color:var(--purple);color:var(--purple)}:root[data-theme=dark] .rating.hard{color:var(--orange)}.swipe-hint{color:var(--muted);text-align:center;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:800;display:flex}.swipe-hint i{width:18px}.undo-toast{z-index:3;background:var(--ink);color:var(--bg);border-radius:16px;align-items:center;gap:10px;padding:10px 10px 10px 14px;font-size:14px;font-weight:700;animation:.2s ease-out toast;display:flex;position:absolute;bottom:10px;left:10px;right:10px}.undo-toast span{flex:1;min-width:0}.undo-toast b{margin-right:6px;font-weight:900}.undo-toast button{background:color-mix(in srgb, var(--bg) 16%, transparent);color:var(--bg);border-radius:10px;flex-shrink:0;align-items:center;gap:5px;padding:7px 10px;font-size:14px;font-weight:900;display:flex}@keyframes toast{0%{opacity:0;transform:translateY(12px)}}.options{flex-shrink:0;grid-template-columns:1fr 1fr;gap:10px;display:grid}.option{overflow-wrap:anywhere;border-radius:16px;min-height:52px;padding:8px 10px;font-size:16px;font-weight:800}.option.right{background:var(--green-soft);border-color:var(--green);color:var(--green-text);animation:.3s bounce}.option.wrong{background:var(--red-soft);border-color:var(--red);color:var(--red-text);animation:.3s shake}.option.dim{opacity:.45}.empty{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:16px 8px;display:flex}.empty h2{font-weight:900}.empty p{color:var(--text-soft);font-weight:600}.overlay{z-index:10;background:#231c3c73;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:460px;max-height:86dvh;padding:18px 16px calc(20px + var(--safe-bottom));border-radius:26px 26px 0 0;flex-direction:column;gap:10px;animation:.22s ease-out rise;display:flex;overflow-y:auto}.sheet-head{justify-content:space-between;align-items:center;font-size:22px;font-weight:900;display:flex}.topic{text-align:left;flex-shrink:0;grid-template-columns:1fr auto;align-items:center;gap:8px 10px;padding:12px 14px;font-weight:800;display:grid}.topic span{color:var(--muted);font-size:14px}.topic .bar{grid-column:1/-1}.topic.active{background:var(--purple-soft);border-color:var(--purple)}.topic.active span{color:var(--purple)}@media (max-height:740px){.today{gap:10px;padding:8px 12px}.today-ring,.today-ring svg{width:48px;height:48px}.today-ring span{padding-top:15px;font-size:10px}.today-ring b{font-size:15px}.today-body>span{display:none}.today-stats{margin-top:2px}.mode{padding:6px 4px}.card-face{gap:6px;padding:44px 14px 34px}.card-face .word{font-size:clamp(26px,8vw,34px)}.card-face .example{font-size:15px}.card-hint{bottom:10px}.rating{padding:6px 2px 5px}.rate-bar .btn{padding:11px 16px}}@media (max-height:620px){.screen{gap:10px}.card-face .ipa,.swipe-hint{display:none}}
.lessons{flex-direction:column;gap:10px;padding-bottom:6px;display:flex}.lesson-item,.setting{text-align:left;flex-shrink:0;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.grow{flex:1;min-width:0}.lesson-item b,.setting b{font-size:16px;font-weight:900;display:block}.lesson-item small,.setting small{color:var(--muted);font-size:13px}.lesson-num{background:var(--purple);width:44px;height:44px;box-shadow:0 4px 0 var(--purple-dark);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;margin-bottom:4px;font-size:18px;font-weight:900;display:grid}.lesson-num.done{background:var(--yellow);box-shadow:0 4px #d9a900}.lesson{z-index:20;background:var(--bg);max-width:460px;padding:calc(14px + var(--safe-top)) 16px calc(18px + var(--safe-bottom));flex-direction:column;gap:16px;margin:0 auto;animation:.22s ease-out rise;display:flex;position:fixed;inset:0}.lesson-head{align-items:center;gap:12px;display:flex}.lesson-body{flex-direction:column;flex:1;gap:12px;display:flex;overflow-y:auto}.lesson-body h2{font-size:22px;font-weight:900}.lesson-body p:not(.caps){font-size:16px;font-weight:600;line-height:1.5}.big{background:var(--purple-soft);text-align:center;color:var(--purple);border-radius:20px;padding:22px 10px;font-size:26px;font-weight:900}.table{flex-shrink:0;padding:6px 14px}.table-row{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:10px;padding:8px 0;font-size:15px;display:grid}.table-row+.table-row{border-top:2px solid var(--line)}.table-row span:first-child{color:var(--purple);font-weight:900}.table-row span:not(:first-child){font-weight:600}.quiz-options{flex-direction:column;gap:10px;margin-top:6px;display:flex}
.gb-hint{color:var(--muted);font-size:14px;font-weight:600;line-height:1.45}.gb-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.gb-row>.btn{flex:1;width:auto}.gb-buttons{flex-direction:column;gap:10px;margin:4px 0;display:flex}.gb-link{color:var(--accent);text-align:left;padding:6px 2px;font-size:14px;font-weight:800}.gb-link.danger{color:var(--red-text)}.gb-ok{color:var(--green-text);font-weight:800}.gb-bad{color:var(--red-text);font-weight:800}.bar>span{background:var(--accent);border-radius:999px;height:100%;display:block}.gb-theory{overflow-wrap:anywhere;font-size:15px;font-weight:500;line-height:1.55}.gb-theory p,.gb-theory ul{margin:0 0 10px}.gb-theory ul{padding-left:20px}.gb-theory li{margin-bottom:4px}.gb-theory b{font-weight:800}.gb-theory .rule{border-left:4px solid var(--purple);background:var(--purple-soft);border-radius:0 12px 12px 0;margin:10px 0;padding:10px 12px}.gb-theory .ex{border-left:3px solid var(--yellow);margin:6px 0 6px 6px;padding-left:10px;font-style:italic}.gb-theory .no{color:var(--red-text);text-decoration:line-through}.gb-theory .yes{color:var(--green-text);font-weight:700}.gb-theory table{border-collapse:collapse;max-width:100%;margin:10px 0;font-size:14px;display:block;overflow-x:auto}.gb-theory th,.gb-theory td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 8px}.gb-theory th{background:var(--soft);font-weight:800}.gb-sheet{max-height:90dvh}.gb-sheet-title{font-size:17px}.gb-goal-top{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.gb-goal-top h3{font-size:15px;font-weight:900}.gb-goal-top b{color:var(--accent);font-size:20px;font-weight:900}.gb-goal .gb-hint{margin-top:8px}.gb-today h2{font-size:20px;font-weight:900}.gb-today .gb-buttons{margin:12px 0}.gb-today .bar{margin-bottom:6px}.gb-filters{flex-shrink:0}.gb-section{flex-shrink:0;padding:0;overflow:hidden}.gb-section summary{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:14px;font-weight:900;list-style:none;display:flex}.gb-section summary::-webkit-details-marker{display:none}.gb-section summary:after{content:"";background:var(--muted);width:16px;height:16px;transition:transform .2s;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat}.gb-section[open] summary:after{transform:rotate(180deg)}.gb-section summary small{color:var(--muted);margin-left:auto;font-size:13px}.gb-tiles{grid-template-columns:1fr 1fr;gap:8px;padding:0 10px 12px;display:grid}.gb-tile{border:2px solid var(--line);text-align:left;border-bottom-width:4px;border-radius:14px;flex-direction:column;gap:6px;min-width:0;padding:10px;display:flex}.gb-tile.work{border-color:var(--purple)}.gb-tile.done{border-color:var(--green);background:var(--green-soft)}.gb-tile .bar{flex:none;height:8px}.gb-num{color:var(--muted);font-size:12px;font-weight:900}.gb-ttl{overflow-wrap:anywhere;font-size:14px;font-weight:800;line-height:1.25}.gb-meta{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:flex}.gb-due{background:var(--orange);color:#fff;border-radius:999px;margin-left:auto;padding:0 7px;font-size:12px}.gb-crumb{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.gb-unit-head{align-items:center;gap:12px;display:flex}.gb-unit-head h2{font-size:21px;font-weight:900;line-height:1.2}.gb-bignum{background:var(--purple);width:54px;height:54px;box-shadow:0 4px 0 var(--purple-dark);color:#fff;border-radius:16px;flex-shrink:0;place-items:center;font-size:22px;font-weight:900;display:grid}.gb-checks{flex-direction:column;gap:10px;margin:0 0 12px;padding:0;list-style:none;display:flex}.gb-checks li{gap:10px;font-weight:800;display:flex}.gb-checks small{color:var(--muted);font-size:13px;font-weight:600;display:block}.gb-tick{border:2px solid var(--line);border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;font-size:13px;display:grid}.gb-checks li.done .gb-tick{border-color:var(--green);background:var(--green);color:#fff}.gb-progress{align-items:flex-end;gap:16px;margin-bottom:8px;display:flex}.gb-ring{background:conic-gradient(var(--purple) var(--p), var(--line) 0);border-radius:50%;flex-shrink:0;place-items:center;width:84px;height:84px;display:grid}.gb-ring b{background:var(--card);border-radius:50%;place-items:center;width:64px;height:64px;font-size:18px;font-weight:900;display:grid}.gb-boxes{text-align:center;flex:1;grid-template-columns:repeat(8,1fr);align-items:end;gap:4px;display:grid}.gb-boxes>div{flex-direction:column;align-items:center;gap:2px;display:flex}.gb-boxes i{background:var(--purple);border-radius:4px;width:100%}.gb-boxes i.b0,.gb-boxes i.b1{background:var(--red)}.gb-boxes i.b2{background:var(--orange)}.gb-boxes i.b5,.gb-boxes i.b6{background:var(--green)}.gb-unseen i{background:var(--line)}.gb-boxes small,.gb-boxes em{color:var(--muted);font-size:11px;font-style:normal}.gb-pager{justify-content:space-between;gap:12px;padding-bottom:8px;display:flex}.gb-pager .gb-link{max-width:48%}.gb-widgets{flex-direction:column;gap:18px;display:flex}.gb-widget{flex-direction:column;gap:8px;display:flex}.gb-widget h4{margin:0;font-size:16px;font-weight:900}.gb-flips{gap:8px;display:grid}.gb-flip{border:2px solid var(--line);text-align:left;border-bottom-width:4px;border-radius:14px;min-height:56px;padding:12px;font-size:15px;font-weight:700}.gb-flip.on{border-color:var(--purple);background:var(--purple-soft)}.gb-ladder{flex-direction:column;gap:6px;display:flex}.gb-step{background:var(--soft);border-radius:12px;padding:8px 12px}.gb-step.new{background:var(--purple-soft);animation:.2s ease-out pop}.gb-step small{color:var(--muted);font-size:12px;font-weight:800;display:block}.gb-tabs{flex-wrap:wrap;gap:6px;display:flex}.gb-tabs .mode{flex:none;padding:7px 10px;font-size:13px}.gb-axis{border-bottom:3px solid var(--line);height:46px;margin:6px 0;position:relative}.gb-span{background:var(--purple);border-radius:999px;height:14px;transition:left .25s,width .25s;position:absolute;bottom:-3px}.gb-now{background:var(--orange);width:3px;height:22px;position:absolute;bottom:-8px;left:50%}.gb-past,.gb-present,.gb-future{color:var(--muted);font-size:12px;font-weight:800;position:absolute;top:0}.gb-past{left:0}.gb-present{color:var(--orange);left:50%;transform:translate(-50%)}.gb-future{right:0}.gb-formula{font-weight:800}.gb-example{align-items:center;gap:4px;font-style:italic;display:flex}.gb-sortcard{background:var(--soft);text-align:center;border-radius:14px;place-items:center;min-height:64px;padding:12px;font-size:18px;font-weight:900;display:grid}.gb-buckets{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;display:grid}.gb-count{color:var(--muted);flex-shrink:0;font-size:14px;font-weight:900}.gb-timer{background:var(--line);border-radius:999px;height:6px;overflow:hidden}.gb-timer i{background:var(--orange);height:100%;animation:linear forwards gb-timer;display:block}@keyframes gb-timer{0%{width:100%}to{width:0}}.gb-prompt{overflow-wrap:anywhere;font-size:19px;font-weight:800;line-height:1.4}.gb-prompt.small{font-size:15px}.gb-blank{border-bottom:3px solid var(--accent);vertical-align:-2px;width:64px;margin:0 4px;display:inline-block}.gb-retry{background:var(--orange-soft);color:var(--orange-dark);border-radius:12px;padding:8px 12px;font-size:14px;font-weight:800}.gb-typed{gap:8px;display:flex}.gb-typed .field{flex:1;min-width:0}.gb-typed .btn{width:auto}.field.right{border-color:var(--green);background:var(--green-soft)}.field.wrong{border-color:var(--red);background:var(--red-soft)}.gb-line,.gb-pool{flex-wrap:wrap;gap:8px;display:flex}.gb-line{border:2px dashed var(--line);border-radius:14px;min-height:60px;padding:10px}.gb-line.right{border-style:solid;border-color:var(--green);background:var(--green-soft)}.gb-line.wrong{border-style:solid;border-color:var(--red);background:var(--red-soft)}.gb-placeholder{color:var(--muted);align-self:center;font-size:14px}.gb-word{border:2px solid var(--line);background:var(--card);border-bottom-width:4px;border-radius:12px;padding:8px 12px;font-size:16px;font-weight:800}.gb-word.placed{border-color:var(--purple)}.gb-feedback{gap:8px}.gb-feedback p{margin:0;font-weight:600;line-height:1.45}.gb-verdict{align-items:center;gap:8px;font-size:19px;font-weight:900;display:flex}.gb-fast{background:var(--yellow);color:#6b4e00;border-radius:999px;padding:2px 8px;font-size:12px}.gb-also{opacity:.85;margin-top:2px;font-size:13px;display:block}.gb-explanation{color:var(--ink)}.gb-rule{background:var(--card);color:var(--ink);border-radius:10px;padding:8px 10px;font-size:14px}.gb-note{opacity:.85;font-size:13px}.gb-finish h1{color:var(--accent);text-align:center;font-size:56px;font-weight:900}.gb-finish>p{text-align:center}.gb-mistakes{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.gb-mistakes li{flex-direction:column;gap:4px;padding:12px;display:flex}.gb-mistakes p{margin:0}.gb-mix-section{flex-direction:column;gap:8px;display:flex}.gb-check{align-items:center;gap:8px;display:flex}.gb-check input{width:20px;height:20px;accent-color:var(--purple)}.gb-chips{flex-wrap:wrap;gap:6px;display:flex}.gb-chip{border:2px solid var(--line);min-width:40px;color:var(--muted);border-radius:10px;padding:6px 8px;font-size:13px;font-weight:800}.gb-chip.on{border-color:var(--purple);background:var(--purple-soft);color:var(--purple)}.gb-kpis{grid-template-columns:repeat(2,1fr)}.gb-days{text-align:center;grid-template-columns:repeat(14,1fr);gap:3px;display:grid}.gb-days small{color:var(--muted);font-size:10px;font-weight:800}.gb-srow{grid-template-columns:minmax(0,1.3fr) 1fr auto auto;align-items:center;gap:8px;padding:6px 0;font-size:13px;font-weight:700;display:grid}.gb-srow small{color:var(--muted)}.gb-list-row{border-bottom:1px solid var(--line);text-align:left;justify-content:space-between;gap:10px;width:100%;padding:8px 0;font-size:14px;font-weight:700;display:flex}.gb-list-row:last-child{border-bottom:0}.gb-settings-title{margin-top:6px}
.word-form{flex-direction:column;flex-shrink:0;gap:10px;padding-bottom:4px;display:flex}.field{border:2px solid var(--line);background:var(--soft);width:100%;color:var(--ink);font:inherit;border-radius:14px;outline:none;padding:13px 14px;font-size:16px}.field:focus{border-color:var(--purple);background:var(--card)}.field::placeholder{color:var(--muted);font-weight:600}.form-error{color:var(--red-text);font-size:14px}.my-word{flex-shrink:0;align-items:center;gap:10px;padding:8px 6px 8px 14px;display:flex}.my-word b{overflow-wrap:anywhere;font-weight:900;display:block}.my-word small{color:var(--muted);overflow-wrap:anywhere;font-size:14px}.import-guide{flex-direction:column;gap:8px;padding:14px;display:flex}.import-guide ol{color:var(--text-soft);margin:0;padding-left:20px;font-size:14px;line-height:1.45}.import-prompt{background:var(--soft);color:var(--ink);font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;border-radius:12px;margin:0;padding:10px 12px;font-size:13px;line-height:1.45}.import-text{resize:vertical;min-height:140px;font-size:15px;line-height:1.45}.import-hint{color:var(--muted);margin-top:-4px;font-size:13px}.import-summary{color:var(--text-soft);flex-direction:column;gap:6px;font-size:14px;display:flex}.import-ok{color:var(--green-text);font-weight:800}
.onboarding{padding:calc(20px + var(--safe-top)) 20px calc(24px + var(--safe-bottom));text-align:center;flex-direction:column;flex:1;align-items:center;gap:12px;display:flex}.onboarding h1{font-size:28px;font-weight:900}.onboarding h1.level{color:var(--purple);font-size:72px;line-height:1}.onboarding>p:not(.caps){color:var(--text-soft);margin-bottom:8px;font-weight:600;line-height:1.45}.hero-area{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;display:flex}.hero-area .mascot{animation:2.4s ease-in-out infinite bob}.bubble{border:2px solid var(--line);background:var(--card);border-radius:16px;padding:10px 16px;font-weight:800;position:relative}.bubble:after{content:"";background:var(--card);border:solid var(--line);border-width:0 2px 2px 0;width:14px;height:14px;margin-left:-7px;position:absolute;bottom:-9px;left:50%;transform:rotate(45deg)}.onboarding.test{align-items:stretch;gap:14px}
.hero{background:var(--purple);box-shadow:0 4px 0 var(--purple-dark);color:#fff;text-align:left;border-radius:22px;flex-shrink:0;align-items:center;gap:12px;padding:14px;display:flex}.hero .caps,.hero .ipa{color:#ffffffc7}.hero p{font-weight:600}.word-of-day{font-size:28px;font-weight:900;line-height:1.15}.tiles{flex-shrink:0;grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.tile{text-align:center;padding:12px 6px}.tile i{justify-content:center;font-style:normal;display:flex}.tile i.flame{color:var(--orange)}.tile i.learned{color:var(--accent)}.tile i.accuracy{color:var(--green)}.tile b{font-size:24px;font-weight:900;display:block}.tile span{color:var(--muted);font-size:12px;font-weight:800}.block{flex-shrink:0;padding:14px}.block h3{margin-bottom:12px}.forecast{text-align:center;color:var(--muted);grid-template-columns:repeat(3,1fr);gap:8px;font-size:13px;font-weight:800;display:grid}.forecast b{color:var(--orange);font-size:24px;font-weight:900;display:block}.week{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.week-day{color:var(--muted);flex-direction:column;align-items:center;gap:6px;font-size:12px;font-weight:800;display:flex}.bar-track{background:var(--soft);border-radius:10px;align-items:flex-end;width:100%;height:64px;display:flex;overflow:hidden}.bar-fill{background:var(--purple);border-radius:10px;width:100%}.level-row{grid-template-columns:30px 1fr 54px;align-items:center;gap:10px;padding:6px 0;display:grid}.level-row b{font-weight:900}.level-row span{text-align:right;color:var(--muted);font-size:13px;font-weight:800}.rewards{grid-template-columns:repeat(4,1fr);gap:14px 6px;display:grid}.reward{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:8px;font-size:11px;font-weight:800;line-height:1.2;display:flex}.reward i{background:var(--line);width:48px;height:48px;box-shadow:0 4px 0 var(--line-dark);color:var(--muted);border-radius:50%;place-items:center;font-style:normal;display:grid}.reward.got{color:var(--ink)}.reward.got i{background:var(--yellow);color:#6b4e00;box-shadow:0 4px #d9a900}
.title{font-size:26px;font-weight:900}.setting.column{flex-direction:column;align-items:stretch}.setting.danger{border-color:var(--red)}.arrow{color:var(--muted)}.row{grid-template-columns:1fr 1fr;gap:10px;padding-bottom:4px;display:grid}.switch{background:var(--line);border-radius:999px;flex-shrink:0;width:52px;height:30px;padding:3px;transition:background .15s}.switch i{background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .15s;display:block;box-shadow:0 2px #0000001f}.switch.on{background:var(--green)}.switch.on i{transform:translate(22px)}.about{text-align:center;color:var(--muted);margin-top:auto;padding:10px 0;font-size:13px;font-weight:600;line-height:1.5}.channel-banner{background:var(--purple-soft);text-align:left;border-radius:16px;flex-shrink:0;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.channel-banner b{font-size:15px;font-weight:900;display:block}.channel-banner small{color:var(--text-soft);font-size:12px;line-height:1.3;display:block}.channel-icon{color:var(--accent);place-items:center;display:grid}.channel-action{background:var(--purple);box-shadow:0 3px 0 var(--purple-dark);color:#fff;border-radius:999px;flex-shrink:0;padding:7px 12px;font-size:13px;font-weight:900}
.sign-in{width:100%;max-width:420px;margin:0 auto}.sign-in .hero-area{flex:0 auto;min-height:120px}.sign-in-form{flex-direction:column;gap:10px;width:100%;display:flex}.sign-in-form .sent{color:var(--text-soft);font-weight:600;line-height:1.45}.field.code{letter-spacing:.18em;text-align:center;font-size:20px;font-weight:900}.field.code::placeholder{letter-spacing:0;font-size:16px;font-weight:600}.sign-in-links{flex-wrap:wrap;justify-content:center;gap:6px 18px;margin-top:4px;display:flex}.sign-in .link,.link-email .link{color:var(--accent);font-size:14px;font-weight:800}.sign-in .link:disabled,.link-email .link:disabled{color:var(--muted);cursor:default}.legal-note{color:var(--muted);margin-top:auto;padding-top:16px;font-size:13px;line-height:1.45}.legal-note a{color:var(--text-soft)}.link-email{gap:6px}.link-email .sign-in-form{margin-top:8px}
.tabbar-brand,.key-hint{display:none}.learn-side,.learn-main{display:contents}@media (min-width:900px){:root{--sidebar:248px}body{background:var(--page)}.shell.app{grid-template-columns:var(--sidebar) minmax(0, 1fr);background:var(--page);grid-template-areas:"nav main";max-width:none;display:grid}.shell.app>.screen{--content:1040px;padding:calc(32px + var(--safe-top)) max(40px, calc((100% - var(--content)) / 2)) 40px;grid-area:main;gap:16px}.shell.app>.tabbar{padding:calc(24px + var(--safe-top)) 16px 24px;border-top:0;border-right:2px solid var(--line);background:var(--bg);flex-direction:column;grid-area:nav;gap:4px}.tabbar-brand{color:var(--ink);align-items:center;gap:10px;padding:0 10px 22px;font-size:23px;font-weight:900;line-height:1;display:flex}.shell.app .tab{flex-direction:row;flex:none;justify-content:flex-start;gap:12px;padding:11px 14px;font-size:16px}.shell.app .tab[data-tab=settings]{margin-top:auto}.shell.app .tab:hover:not(.active){background:var(--soft);color:var(--ink)}.shell.app .tab svg{width:24px;height:24px}.shell.app .mode:not(.active){background:var(--card)}.screen[data-tab=learn]{--content:1000px;grid-template-columns:minmax(0,1fr) 340px;grid-template-areas:"main side";align-items:start;gap:28px;display:grid}.learn-side{flex-direction:column;grid-area:side;gap:14px;display:flex;position:sticky;top:0}.learn-side .today{background:var(--card);border:2px solid var(--line);border-bottom-width:4px}.learn-main{height:min(calc(100dvh - 72px - var(--safe-top)), 720px);flex-direction:column;grid-area:main;gap:14px;min-height:480px;display:flex}.learn-main:not(:has(.deck-area)){height:auto;min-height:0}.swipe-hint{display:none}.key-hint{white-space:nowrap;color:var(--muted);justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:800;display:flex}.key-hint i{width:14px}.key-hint kbd{border:2px solid var(--line);background:var(--card);min-width:24px;color:var(--text-soft);font:inherit;text-align:center;border-bottom-width:3px;border-radius:8px;padding:2px 7px;font-size:12px}.screen[data-tab=progress],.screen[data-tab=grammar]{grid-auto-rows:max-content;align-content:start}.screen[data-tab=progress]{--content:1080px;grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.screen[data-tab=progress]>*{grid-column:1/-1}.screen[data-tab=progress]>.hero,.screen[data-tab=progress]>.tiles,.screen[data-tab=progress]>.p-levels,.screen[data-tab=progress]>.p-awards{grid-column:span 3}.screen[data-tab=progress]>.p-reviews{grid-column:span 2}.screen[data-tab=progress]>.p-week{grid-column:span 4}.screen[data-tab=grammar]{--content:1080px;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.screen[data-tab=grammar]>*{grid-column:1/-1}.screen[data-tab=grammar]>.gb-goal,.screen[data-tab=grammar]>.gb-today{grid-column:span 1}.screen[data-tab=grammar] .gb-filters{grid-template-columns:repeat(4,minmax(0,1fr))}.screen[data-tab=grammar] .gb-tiles{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.gb-session .gb-prompt{font-size:22px}.gb-session .gb-prompt.small{font-size:17px}.screen[data-tab=settings]{--content:720px}.lesson{left:var(--sidebar);max-width:none;padding:calc(28px + var(--safe-top)) max(40px, calc((100vw - var(--sidebar) - 760px) / 2)) 32px;background:var(--page)}.overlay{align-items:center;padding:32px}.sheet{border-radius:26px;max-width:520px;max-height:min(86dvh,760px);padding:22px 22px 24px}.shell:not(.app){border:2px solid var(--line);border-radius:32px;max-width:480px;max-height:860px;margin:auto;inset:32px 0;overflow:hidden;box-shadow:0 30px 70px -40px #3c288c59}}@media (min-width:900px) and (max-width:1199px){.screen[data-tab=learn]{--content:640px;grid-template-columns:minmax(0,1fr);grid-template-areas:"side""main";gap:16px}.learn-side{position:static}.learn-main{height:min(calc(100dvh - 300px - var(--safe-top)), 640px);min-height:420px}}@media (min-width:900px) and (hover:hover){.shell.app .tab,.sheet .surface,.gb-tile{transition:background .15s,border-color .15s}}

