html[data-theme=dark] .back-btn{border:var(--border-w) solid var(--ink);padding:calc(8px - var(--border-w)) calc(14px - var(--border-w))}html body .fab-add-exercise{width:56px;height:56px;background:var(--gold);color:#15203b;border:var(--border-w) solid var(--ink);box-shadow:var(--ink-shadow-sm);font-size:32px;font-weight:700;transition:opacity .18s ease,transform var(--dur-press, 90ms) var(--ease-out, ease),box-shadow var(--dur-press, 90ms) var(--ease-out, ease)}html body .fab-add-exercise.fab-scroll-down{left:calc(50% - 28px)}html body .fab-add-exercise.visible:active{transform:translate(3px,3px) scale(.96);box-shadow:0 0 0 var(--ink)}html body .fab-add-exercise .fab-arrow{font-size:28px;font-weight:800;line-height:1}html body .box-scroll-arrow{background:var(--gold);color:#15203b;border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);font-weight:800}html body .box-scroll-arrow.visible{opacity:1}html body .box-scroll-arrow.visible:active{transform:translate(2px,2px);box-shadow:none}html body .ai-fab{width:60px;height:60px;background:var(--gold);color:#15203b;border:var(--border-w) solid var(--ink);box-shadow:var(--ink-shadow-sm);transition:transform var(--dur-press, 90ms) var(--ease-out, ease),box-shadow var(--dur-press, 90ms) var(--ease-out, ease),opacity .15s}html body .ai-fab:active{transform:translate(3px,3px) scale(.96);box-shadow:0 0 0 var(--ink)}html body .ai-fab-label{background:var(--gold);color:#15203b;border:var(--border-w) solid var(--ink);box-shadow:2px 2px 0 var(--ink);padding:4px 10px;font-weight:800}html body .btn{font-family:var(--font-display);font-weight:800;font-size:16px;padding:11px 24px;border-radius:16px;border:var(--border-w) solid var(--ink);background:var(--surface);color:var(--text);box-shadow:4px 4px 0 var(--ink);transition:transform .14s var(--ease-out, ease-out),box-shadow .14s var(--ease-out, ease-out),filter .2s}html body .btn.btn-primary{background:var(--blue);color:#fff}html body .btn.btn-gold{background:var(--gold);color:#15203b;box-shadow:4px 4px 0 var(--ink)}html body .btn.btn-ghost{background:var(--surface);color:var(--text);border:var(--border-w) solid var(--ink)}html body .btn.btn-danger{background:var(--coral);color:#fff}html body .btn.btn-sm{padding:7px 16px;font-size:14px;border-radius:13px;box-shadow:3px 3px 0 var(--ink)}@media (hover: hover){html body .btn:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink);filter:none}html body .btn.btn-sm:hover:not(:disabled){box-shadow:5px 5px 0 var(--ink)}}html body .btn:active:not(:disabled){transform:translate(3px,3px);box-shadow:0 0 0 var(--ink)}html body .btn:disabled{opacity:.55;cursor:not-allowed}html body .shop-buy-btn.btn.btn-gold,html body .item-card-buy.btn.btn-gold{box-shadow:4px 4px 0 var(--ink)}html body .shop-buy-btn.btn.btn-gold:active,html body .item-card-buy.btn.btn-gold:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--ink)}html body .study-footer{padding-right:4px;padding-bottom:4px}html body .flashcard-btn{border-color:var(--ink);border-radius:16px;box-shadow:4px 4px 0 var(--ink);font-weight:800}html body .flashcard-btn.unknown{border-color:var(--ink);background:var(--coral-soft);color:var(--coral)}html body .flashcard-btn.known{border-color:var(--ink);background:var(--green-soft);color:var(--green)}html body .flashcard-btn:active:not(:disabled){transform:translate(3px,3px);box-shadow:0 0 0 var(--ink)}html body .btn.btn-block{white-space:normal;line-height:1.25;text-align:center}html body .btn{white-space:normal;text-align:center;line-height:1.2;min-width:0;padding-left:18px;padding-right:18px}.review-delete-btn,.error-delete-btn{flex-shrink:0;width:48px;height:48px;padding:0;border-radius:50%;border:none;cursor:pointer;background:var(--surface-2);font-size:30px;line-height:1;display:grid;place-items:center}.review-delete-btn svg,.error-delete-btn svg{width:30px;height:30px}.review-delete-btn:active,.error-delete-btn:active{background:rgba(var(--coral-rgb),.18)}.ai-clear-link{display:inline-flex;align-items:center;gap:6px}.agenda-page{padding-bottom:96px}.ag-year{display:flex;align-items:center;justify-content:center;gap:14px;margin:6px 0 8px}.ag-year-num{font-family:var(--font-display);font-size:20px;min-width:64px;text-align:center}.ag-year-btn{width:34px;height:34px;border-radius:50%;border:var(--border-w) solid var(--ink);background:var(--surface);color:var(--text);font-size:20px;line-height:1;cursor:pointer;box-shadow:2px 2px 0 var(--ink);transition:transform var(--dur-press) var(--ease-out),box-shadow var(--dur-press) var(--ease-out)}.ag-year-btn:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--ink)}.ag-months{display:flex;gap:8px;overflow-x:auto;padding:4px 4px 12px;margin:0 -4px;scrollbar-width:none;scroll-snap-type:x proximity}.ag-months::-webkit-scrollbar{display:none}.ag-month{position:relative;flex:0 0 auto;scroll-snap-align:center;min-width:54px;padding:8px 12px;border-radius:999px;border:2px solid var(--border);background:var(--surface);color:var(--text-dim);font-weight:700;font-size:13px;cursor:pointer;transition:transform var(--dur) var(--ease-out),background var(--dur) var(--ease-out),color var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.ag-month.now{border-color:var(--teal)}.ag-month.on{background:var(--teal);color:var(--on-teal);border-color:var(--ink);box-shadow:2px 2px 0 var(--ink);transform:translateY(-1px)}.ag-month i{position:absolute;top:-6px;right:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--gold);color:#15203b;border:2px solid var(--ink);font-style:normal;font-size:10px;font-weight:800;display:grid;place-items:center}.ag-cal{padding:14px 12px 16px;overflow:hidden}.ag-cal-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.ag-cal-title{text-align:center;flex:1}.ag-cal-title b{display:block;font-family:var(--font-display);font-size:22px;line-height:1.1}.ag-cal-title small{color:var(--text-faint);font-size:12px;font-weight:600}.ag-nav{width:40px;height:40px;border-radius:12px;border:var(--border-w) solid var(--ink);background:var(--gold);color:#15203b;font-size:24px;font-weight:800;line-height:1;cursor:pointer;box-shadow:2px 2px 0 var(--ink);transition:transform var(--dur-press) var(--ease-out),box-shadow var(--dur-press) var(--ease-out)}.ag-nav:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--ink)}.ag-seg{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin-bottom:12px;border-radius:14px;background:var(--surface-2)}.ag-seg button{border:0;border-radius:10px;padding:8px 6px;background:transparent;color:var(--text-dim);font-weight:700;font-size:13px;cursor:pointer;transition:background var(--dur) var(--ease-out),color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.ag-seg button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 0 var(--border),0 0 0 2px var(--ink)}.ag-weekdays,.ag-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.ag-weekdays{margin-bottom:6px}.ag-weekdays span{text-align:center;font-size:11px;font-weight:800;color:var(--text-faint);text-transform:capitalize}.ag-grid-wrap.dir-next{animation:ag-slide-next .34s var(--ease-out) both}.ag-grid-wrap.dir-prev{animation:ag-slide-prev .34s var(--ease-out) both}.ag-listview.dir-next{animation:ag-slide-next .3s var(--ease-out) both}.ag-listview.dir-prev{animation:ag-slide-prev .3s var(--ease-out) both}@keyframes ag-slide-next{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}@keyframes ag-slide-prev{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:none}}.ag-blank{display:block}.ag-day{position:relative;aspect-ratio:1 / 1.08;min-height:44px;padding:4px 0 2px;border-radius:12px;cursor:pointer;border:2px solid transparent;background:transparent;color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;animation:ag-pop .38s var(--ease-out) both;animation-delay:calc(var(--d, 0) * 9ms);transition:transform var(--dur) var(--ease-out),background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out),color var(--dur) var(--ease-out)}@keyframes ag-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}.ag-day-n{font-weight:800;font-size:15px;line-height:1.5}.ag-day.has{background:var(--surface-2)}.ag-day:active{transform:scale(.92)}.ag-day.today{border-color:var(--ink)}.ag-day.today:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:15px;border:2px solid var(--teal);opacity:0;pointer-events:none;animation:ag-ring 2.6s ease-out infinite}@keyframes ag-ring{0%{opacity:.7;transform:scale(.94)}70%,to{opacity:0;transform:scale(1.12)}}.ag-day.sel{background:var(--teal);color:var(--on-teal);border-color:var(--ink);box-shadow:2px 2px 0 var(--ink);animation:ag-select .32s var(--ease-out) both}@keyframes ag-select{0%{transform:scale(.85)}60%{transform:scale(1.1)}to{transform:scale(1)}}.ag-dots{display:flex;align-items:center;justify-content:center;gap:3px;min-height:8px}.ag-dots i{width:7px;height:7px;border-radius:50%;border:1.5px solid var(--ink);display:block}.ag-dots em{font-style:normal;font-size:9.5px;font-weight:800;opacity:.8;margin-left:1px}.ag-day.all-done .ag-day-n:after{content:" ✓";font-size:10px;color:var(--green)}.ag-day.sel.all-done .ag-day-n:after{color:var(--gold)}.ag-list-day h3{font-size:13px;text-transform:capitalize;color:var(--text-dim);margin:16px 0 8px;letter-spacing:.02em}.ag-list-day h3.is-today{color:var(--teal)}.ag-empty-line{text-align:center;color:var(--text-faint);font-weight:600;padding:22px 0}.ag-day-panel{margin-top:22px;animation:ag-up .36s var(--ease-out) both}@keyframes ag-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.ag-day-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.ag-day-head h2{font-size:18px;line-height:1.15}.ag-day-head .btn{white-space:nowrap;flex:none}.ag-box .btn-sm{font-size:18px;padding:4px 14px;line-height:1.2}.ag-day-head small{color:var(--text-faint);font-weight:700;font-size:12.5px}.ag-day-bar,.ag-box-bar{height:8px;border-radius:999px;background:var(--surface-2);border:2px solid var(--ink);overflow:hidden;margin-bottom:14px}.ag-day-bar i,.ag-box-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--green),#3ecf8e);border-radius:999px;transition:width .6s var(--ease-out)}.ag-cards{display:flex;flex-direction:column;gap:12px}.ag-empty{text-align:center;padding:26px 12px 10px}.ag-empty p{color:var(--text-dim);font-weight:600;margin:8px 0 16px}.ag-empty-emoji{font-size:54px;animation:ag-float 3.2s ease-in-out infinite}@keyframes ag-float{0%,to{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-8px) rotate(4deg)}}.ag-card{display:flex;gap:12px;align-items:flex-start;padding:12px 12px 12px 10px;background:var(--surface);border:var(--border-w) solid var(--ink);border-left:8px solid var(--c, var(--teal));border-radius:var(--radius);box-shadow:var(--ink-shadow-sm);margin-top:8px;animation:ag-up .42s var(--ease-out) both;animation-delay:calc(var(--i, 0) * 55ms);transition:opacity var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}.ag-cards .ag-card{margin-top:0}.ag-card.is-late{background:var(--coral-soft)}html[data-theme=dark] .ag-card.is-late{background:rgba(var(--coral-rgb),.18)}.ag-card-main{flex:1;min-width:0;cursor:pointer}.ag-card-top{display:flex;align-items:center;gap:8px;margin-bottom:2px}.ag-time{font-weight:800;font-size:13px;color:var(--c, var(--teal));font-variant-numeric:tabular-nums}.ag-cat{font-size:15px}.ag-late{background:var(--coral);color:#fff;border-radius:999px;padding:1px 8px;font-size:10.5px;font-weight:800}.ag-title{font-weight:800;font-size:16px;line-height:1.3;overflow-wrap:anywhere;transition:opacity var(--dur) var(--ease-out)}.ag-desc{margin-top:4px;font-size:13.5px;color:var(--text-dim);line-height:1.45;overflow-wrap:break-word}.ag-desc p{margin:0 0 4px}.ag-meta{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:8px;font-size:12px;font-weight:700;color:var(--text-faint)}.ag-go{margin-top:10px;padding:7px 12px;border-radius:10px;border:2px solid var(--ink);background:var(--gold);color:#15203b;font-weight:800;font-size:12.5px;cursor:pointer;box-shadow:2px 2px 0 var(--ink);max-width:100%;text-align:left;transition:transform var(--dur-press) var(--ease-out),box-shadow var(--dur-press) var(--ease-out)}.ag-go:active{transform:translate(2px,2px);box-shadow:none}.ag-check{flex:0 0 auto;width:32px;height:32px;margin-top:2px;border-radius:10px;border:var(--border-w) solid var(--ink);background:var(--surface);color:transparent;display:grid;place-items:center;cursor:pointer;box-shadow:2px 2px 0 var(--ink);transition:background var(--dur) var(--ease-out),color var(--dur) var(--ease-out),transform var(--dur-press) var(--ease-out)}.ag-check:active{transform:scale(.9)}.ag-check path{stroke-dasharray:26;stroke-dashoffset:26;transition:stroke-dashoffset .36s var(--ease-out)}.ag-card.is-done .ag-check{background:var(--green);color:#fff;animation:ag-check-pop .42s var(--ease-out)}.ag-card.is-done .ag-check path{stroke-dashoffset:0}@keyframes ag-check-pop{0%{transform:scale(1)}40%{transform:scale(1.3) rotate(-8deg)}to{transform:scale(1)}}.ag-card.is-done{background:var(--green-soft)}html[data-theme=dark] .ag-card.is-done{background:#0e7c5a33}.ag-card.is-done .ag-title{text-decoration:line-through;text-decoration-thickness:2px;opacity:.6}.ag-card.is-done .ag-desc,.ag-card.is-done .ag-meta{opacity:.55}.ag-fab{position:fixed;z-index:60;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(var(--bottom-nav-h, 64px) + 16px + env(safe-area-inset-bottom,0px));width:58px;height:58px;border-radius:50%;border:var(--border-w) solid var(--ink);background:var(--gold);color:#15203b;font-size:32px;font-weight:700;line-height:1;cursor:pointer;box-shadow:var(--ink-shadow-sm);animation:ag-fab-in .52s var(--ease-out) .2s both;transition:transform var(--dur-press) var(--ease-out),box-shadow var(--dur-press) var(--ease-out)}.ag-fab:active{transform:translate(3px,3px) scale(.96);box-shadow:0 0 0 var(--ink)}@keyframes ag-fab-in{0%{opacity:0;transform:scale(.3) rotate(-90deg)}to{opacity:1;transform:none}}@media (min-width: 640px) and (pointer: fine){.ag-fab{position:absolute}}.ag-perm{display:flex;align-items:center;gap:12px;padding:12px 14px;margin:4px 0 10px;border-radius:var(--radius);background:var(--gold-soft);border:2px dashed var(--ink)}.ag-perm>span{font-size:26px}.ag-perm>div{flex:1;min-width:0}.ag-perm b{display:block;font-size:14px}.ag-perm small{color:var(--text-dim);font-size:12.5px;line-height:1.35;display:block}.ag-toast{position:fixed;z-index:200;left:50%;transform:translate(-50%);bottom:calc(var(--bottom-nav-h, 64px) + 86px);background:var(--ink);color:#fff;padding:10px 18px;border-radius:999px;font-weight:700;font-size:13.5px;box-shadow:0 8px 24px var(--shell-shadow);animation:ag-toast 2.2s var(--ease-out) both;pointer-events:none}html[data-theme=dark] .ag-toast{background:#fff;color:#15203b}@keyframes ag-toast{0%{opacity:0;transform:translate(-50%,14px)}12%,80%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,8px)}}.ag-del-actions{flex-wrap:wrap}.ag-box{cursor:pointer;position:relative;overflow:hidden;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.ag-box:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.ag-box-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.ag-leaf{flex:0 0 auto;width:54px;border-radius:12px;overflow:hidden;border:var(--border-w) solid var(--ink);background:var(--surface);text-align:center;box-shadow:2px 2px 0 var(--ink);transform:rotate(-4deg);transition:transform var(--dur) var(--ease-out)}.ag-box:hover .ag-leaf{transform:rotate(0) scale(1.05)}.ag-leaf span{display:block;background:var(--coral);color:#fff;font-size:10px;font-weight:800;text-transform:uppercase;padding:2px 0;letter-spacing:.04em}.ag-leaf b{display:block;font-family:var(--font-display);font-size:24px;line-height:1.25}.ag-box-title{flex:1;min-width:0}.ag-box-title b{display:block;font-family:var(--font-display);font-size:19px;line-height:1.1}.ag-box-title small{color:var(--text-faint);font-weight:700;font-size:12.5px}.ag-box-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.ag-box-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:var(--surface-2);border-left:5px solid var(--c, var(--teal));animation:ag-up .38s var(--ease-out) both}.ag-box-list li.is-done{opacity:.6}.ag-box-list li.is-done .ag-box-name{text-decoration:line-through}.ag-box-list li.ag-more{background:none;border:0;color:var(--text-faint);font-weight:700;font-size:12.5px;padding:0 4px}.ag-mini-check{flex:0 0 auto;width:24px;height:24px;border-radius:8px;border:2px solid var(--ink);background:var(--surface);color:#fff;font-weight:900;font-size:14px;line-height:1;cursor:pointer;display:grid;place-items:center}li.is-done .ag-mini-check{background:var(--green)}.ag-box-time{flex:0 0 auto;font-weight:800;font-size:12.5px;color:var(--c, var(--teal));font-variant-numeric:tabular-nums;min-width:42px}.ag-box-name{flex:1;min-width:0;font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ag-box-empty{margin:0;color:var(--text-dim);font-size:13.5px;font-weight:600;line-height:1.45}.ag-box-next{margin-top:6px;padding:10px 12px;border-radius:12px;background:var(--surface-2);font-weight:700;font-size:14px}.ag-box-next small{display:block;color:var(--text-faint);font-weight:800;font-size:11px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:2px}.ag-box-when{display:block;color:var(--text-faint);font-size:12px;margin-top:2px;text-transform:capitalize}.ag-box-foot{margin-top:12px;text-align:right;font-weight:800;font-size:13px;color:var(--teal)}.modal-panel.agenda-form-panel{max-width:none;height:100vh;height:100dvh;max-height:none;border:none;border-radius:0;padding:calc(16px + env(safe-area-inset-top,0px)) 22px 28px;overflow-y:auto}.modal-panel.agenda-form-panel .modal-back{margin-bottom:12px}@media (min-width: 640px) and (pointer: fine){.modal-panel.agenda-form-panel{max-width:720px;height:100%}}.ag-form .ag-label{display:block;font-size:13px;font-weight:600;color:var(--text-dim);margin-bottom:8px}.ag-form .form-field{margin-bottom:18px}.ag-input{width:100%;padding:11px 12px;border-radius:var(--radius-sm);border:2px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:15px;min-height:46px}.ag-input:focus{outline:2px solid var(--teal);outline-offset:1px}.ag-input:disabled{opacity:.45}.ag-row{display:flex;gap:12px}.ag-grow{flex:1;min-width:0}.ag-grow.is-off>span{opacity:.5}.ag-chips{display:flex;flex-wrap:wrap;gap:8px}.ag-chip{--c: var(--teal);padding:8px 13px;border-radius:999px;border:2px solid var(--border);background:var(--surface);color:var(--text-dim);font-weight:700;font-size:13.5px;cursor:pointer;transition:transform var(--dur) var(--ease-out),background var(--dur) var(--ease-out),color var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.ag-chip:active{transform:scale(.94)}.ag-chip.on{background:var(--c);color:#fff;border-color:var(--ink);box-shadow:2px 2px 0 var(--ink);animation:ag-select .3s var(--ease-out)}.ag-hint{display:block;margin-top:8px;color:var(--text-faint);font-size:12.5px;line-height:1.4;font-weight:600}.ag-hint.warn{color:var(--coral)}.ag-error{color:var(--coral);font-size:12.5px;font-weight:700;margin-top:6px;display:block;animation:ag-shake .36s}@keyframes ag-shake{0%,to{transform:none}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.ag-until{display:block;margin-top:12px}.ag-switch{display:flex;align-items:center;gap:12px;width:100%;margin:4px 0 20px;padding:10px 12px;border-radius:14px;border:2px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;text-align:left}.ag-switch b{font-size:14px}.ag-switch small{color:var(--text-faint);font-weight:600;margin-left:auto;font-size:12px}.ag-switch-knob{position:relative;flex:0 0 auto;width:44px;height:26px;border-radius:999px;background:var(--border);transition:background var(--dur) var(--ease-out)}.ag-switch-knob:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform var(--dur) var(--ease-out)}.ag-switch.on{border-color:var(--teal)}.ag-switch.on .ag-switch-knob{background:var(--teal)}.ag-switch.on .ag-switch-knob:after{transform:translate(18px)}.ag-actions{flex-wrap:wrap;gap:10px;margin-top:8px}@media (prefers-reduced-motion: reduce){.ag-day,.ag-card,.ag-day-panel,.ag-grid-wrap,.ag-listview,.ag-fab,.ag-empty-emoji,.ag-day.today:after,.ag-box-list li{animation:none!important}}html[data-theme=dark] .ag-time,html[data-theme=dark] .ag-box-time{color:color-mix(in srgb,var(--c, var(--teal)) 55%,#fff)}html[data-theme=dark] .ag-day.has{background:#ffffff12}.ds-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:var(--bg);display:flex;justify-content:center;animation:ds-in .32s var(--ease-out) both}@keyframes ds-in{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}.ds-panel{width:100%;max-width:720px;height:100%;display:flex;flex-direction:column;padding:calc(14px + env(safe-area-inset-top,0px)) 16px 0}.ds-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.ds-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.ds-title{flex:1;text-align:center;animation:ag-up .28s var(--ease-out) both}.ds-title b{display:block;font-family:var(--font-display);font-size:20px;line-height:1.15}.ds-title small{color:var(--text-faint);font-weight:700;font-size:12.5px}.ds-allday{border-radius:14px;background:var(--surface-2);padding:8px 10px;margin-bottom:10px}.ds-allday-head{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint)}.ds-add{width:28px;height:28px;border-radius:9px;border:2px solid var(--ink);background:var(--gold);color:#15203b;font-size:18px;line-height:1;font-weight:800;cursor:pointer}.ds-allday .ds-ev{margin-top:6px}.ds-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;border-radius:14px;border:var(--border-w) solid var(--ink);background:var(--surface);position:relative;margin-bottom:calc(10px + env(safe-area-inset-bottom,0px));scrollbar-width:thin}.ds-hint{position:sticky;top:0;z-index:3;padding:7px 12px 9px;font-size:11.5px;font-weight:700;color:var(--text-faint);background:linear-gradient(var(--surface) 78%,transparent);display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.ds-manual{border:var(--border-w) solid var(--ink);background:var(--gold);color:var(--ink);border-radius:999px;padding:5px 11px;font:inherit;font-size:12px;font-weight:800;cursor:pointer;box-shadow:2px 2px 0 var(--ink);transition:transform var(--dur-press) var(--ease-out),box-shadow var(--dur-press) var(--ease-out)}.ds-manual:active{transform:translate(2px,2px);box-shadow:none}.ag-time-note{margin:-4px 0 12px;padding:8px 11px;border-radius:12px;background:var(--gold-soft);font-size:12.5px;font-weight:700;line-height:1.4}.ds-row{display:grid;grid-template-columns:54px 1fr;min-height:52px;border-top:1px dashed var(--border);animation:ds-row .36s var(--ease-out) both;animation-delay:calc(var(--i, 0) * 25ms)}.ds-row.hour{border-top:2px solid var(--border)}@keyframes ds-row{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:none}}.ds-label{padding:6px 0 0 10px;font-size:12px;font-weight:800;color:var(--text-faint);font-variant-numeric:tabular-nums}.ds-row.hour .ds-label{color:var(--text-dim);font-size:13px}.ds-row.past{background:#7f7f7f0d}.ds-cell{position:relative;padding:4px 8px 4px 4px;display:flex;flex-direction:column;gap:6px}.ds-free{flex:1;min-height:42px;width:100%;border:0;border-radius:10px;background:transparent;color:var(--text-faint);opacity:.55;font-size:13px;font-weight:800;cursor:pointer;display:grid;place-items:center;transition:background var(--dur) var(--ease-out),color var(--dur) var(--ease-out)}.ds-free:hover,.ds-free:focus-visible{background:rgba(var(--teal-rgb),.08);color:var(--teal);opacity:1;outline:none}.ds-free:active{background:rgba(var(--teal-rgb),.16);color:var(--teal);opacity:1}.ds-more{align-self:flex-start;border:0;background:transparent;color:var(--text-faint);font-size:11.5px;font-weight:800;cursor:pointer;padding:2px 4px}.ds-ev{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:var(--surface);border:2px solid var(--ink);border-left:7px solid var(--c, var(--teal));box-shadow:2px 2px 0 var(--ink);cursor:pointer;animation:ag-up .34s var(--ease-out) both;transition:transform var(--dur-press) var(--ease-out),box-shadow var(--dur-press) var(--ease-out)}.ds-ev:active{transform:translate(2px,2px);box-shadow:none}.ds-ev.is-done{background:var(--green-soft)}html[data-theme=dark] .ds-ev.is-done{background:#0e7c5a33}.ds-ev.is-done .ds-ev-title{text-decoration:line-through;opacity:.6}.ds-check{flex:0 0 auto;width:26px;height:26px;border-radius:8px;border:2px solid var(--ink);background:var(--surface);color:#fff;font-weight:900;font-size:15px;line-height:1;cursor:pointer;display:grid;place-items:center}.ds-ev.is-done .ds-check{background:var(--green)}.ds-ev-main{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}.ds-ev-time{font-weight:800;font-size:12.5px;color:var(--c, var(--teal));font-variant-numeric:tabular-nums}html[data-theme=dark] .ds-ev-time{color:color-mix(in srgb,var(--c, var(--teal)) 55%,#fff)}.ds-ev-title{font-weight:800;font-size:14.5px;overflow-wrap:break-word}.ds-ev-bell{font-size:12px}.ds-now{position:absolute;left:-4px;right:0;height:0;z-index:2;pointer-events:none;border-top:2px solid var(--coral)}.ds-now i{position:absolute;left:-4px;top:-6px;width:10px;height:10px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 4px rgba(var(--coral-rgb),.25);animation:ds-pulse 2s ease-in-out infinite}@keyframes ds-pulse{0%,to{box-shadow:0 0 0 3px rgba(var(--coral-rgb),.3)}50%{box-shadow:0 0 0 7px rgba(var(--coral-rgb),0)}}.ds-end{height:40px}@media (min-width: 640px) and (pointer: fine){.ds-overlay{position:absolute}}@media (prefers-reduced-motion: reduce){.ds-overlay,.ds-row,.ds-ev,.ds-title,.ds-now i{animation:none!important}}.ds-row.fine{min-height:40px;background:rgba(var(--teal-rgb),.045);border-top:1px dotted var(--border);animation:ds-open .38s var(--ease-out) both}.ds-row.fine.hour{border-top:2px solid var(--border)}.ds-row.fine .ds-label{font-size:11.5px;color:var(--text-faint)}.ds-row.fine.hour .ds-label{color:var(--text-dim);font-size:13px}.ds-row.fine .ds-free{min-height:32px}.ds-row.fine.has{min-height:56px;background:rgba(var(--teal-rgb),.09)}@keyframes ds-open{0%{opacity:0;transform:scaleY(.4);transform-origin:top}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.ds-row.fine{animation:none!important}}.ag-grid{align-items:stretch}.ag-grid{gap:3px}.ag-day{aspect-ratio:auto;min-height:62px;padding:4px 1px}.ag-mini-list{width:100%;display:flex;flex-direction:column;gap:2px;min-width:0}.ag-mini{display:flex;flex-direction:column;align-items:flex-start;min-width:0;text-align:left;padding:1px 2px 1px 3px;border-radius:6px;background:var(--coral);color:#fff;border:1.5px solid var(--ink);border-left:4px solid var(--c, var(--teal));font-size:9px;line-height:1.2;overflow:hidden}.ag-mini b{font-weight:800;font-size:8px;letter-spacing:-.2px;font-variant-numeric:tabular-nums;color:inherit}.ag-mini>span{display:-webkit-box;max-width:100%;font-weight:700;font-size:8.5px;line-height:1.15;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:break-word}.ag-mini.is-done{background:var(--green);color:#fff}.ag-mini.is-done>span{text-decoration:line-through;text-decoration-thickness:1px}.ag-mini-more{font-style:normal;font-size:9.5px;font-weight:800;opacity:.8;align-self:center}html[data-theme=dark] .ag-mini{color:#2a0b0c}html[data-theme=dark] .ag-mini.is-done{color:#062a1e}.ag-day.sel .ag-mini-more{color:var(--on-teal)}@media (min-width: 640px){.ag-mini,.ag-mini b{font-size:11px}.ag-day{min-height:84px}}.ag-delete-btn{flex-shrink:0;width:48px;height:48px;padding:0;border-radius:50%;border:none;cursor:pointer;background:var(--surface-2);display:grid;place-items:center;transition:background var(--dur) var(--ease-out),transform var(--dur-press) var(--ease-out)}.ag-delete-btn svg{width:30px;height:30px}.ag-delete-btn:active{background:rgba(var(--coral-rgb),.18);transform:scale(.92)}.ag-cal{padding-left:6px;padding-right:6px}.ag-grid,.ag-weekdays{gap:2px}.ag-day.all-done .ag-day-n:after,.ag-day.sel.all-done .ag-day-n:after{content:"✓";display:inline-block;vertical-align:middle;margin-left:3px;width:13px;height:13px;border-radius:50%;background:var(--green);color:#fff;font-size:9px;font-weight:900;line-height:13px;text-align:center}html[data-theme=dark] .ag-day.all-done .ag-day-n:after{color:#062a1e}html body .ag-box{margin-bottom:14px}html body .essay-daily-card{margin-bottom:26px}html body .content-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:180px}@media (min-width: 721px) and (pointer: coarse){html body .content-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media (min-width: 640px) and (pointer: fine){html body #app{margin-left:auto;margin-right:auto}}.rr-box{margin:18px auto 6px;max-width:460px;padding:14px 12px 12px;border-radius:var(--radius);border:var(--border-w) solid var(--ink);background:var(--surface);box-shadow:var(--ink-shadow-sm);text-align:center;animation:rr-in .48s var(--ease-out) .7s both}@keyframes rr-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.rr-title{font-family:var(--font-display);font-size:18px;margin:0 0 2px}.rr-sub{margin:0 0 12px;font-size:12.5px;color:var(--text-dim);font-weight:600}.rr-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.rr-btn{--c: var(--teal);position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 2px 8px;border-radius:14px;border:2px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;font:inherit;animation:rr-pop .42s var(--ease-out) both;animation-delay:calc(.9s + var(--i, 0) * 70ms);transition:transform var(--dur) var(--ease-out),background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}@keyframes rr-pop{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}.rr-btn:active{transform:scale(.93)}.rr-again{--c: #d6453f}.rr-hard{--c: #e8890c}.rr-good{--c: #0e9f6e}.rr-easy{--c: #2b44e7}.rr-emoji{font-size:26px;line-height:1.1;transition:transform var(--dur) var(--ease-out)}.rr-btn b{font-size:13px}.rr-btn small{font-size:11px;font-weight:700;color:var(--text-faint);line-height:1.15}.rr-btn.suggested{border-color:var(--c)}.rr-btn.on{background:var(--c);color:#fff;border-color:var(--ink);box-shadow:2px 2px 0 var(--ink);transform:translateY(-2px)}.rr-btn.on small{color:#ffffffe6}.rr-btn.on .rr-emoji{animation:rr-bounce .52s var(--ease-out)}@keyframes rr-bounce{0%{transform:scale(1)}40%{transform:scale(1.5) rotate(-10deg)}to{transform:scale(1)}}.rr-tag{position:absolute;top:-8px;font-style:normal;font-size:9.5px;font-weight:800;background:var(--gold);color:#15203b;border:2px solid var(--ink);border-radius:999px;padding:0 6px}.rr-note{margin:12px 0 0;font-size:12.5px;font-weight:700;color:var(--text-dim);min-height:18px}@media (prefers-reduced-motion: reduce){.rr-box,.rr-btn,.rr-btn.on .rr-emoji{animation:none!important}}.cloze-tools{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cloze-tag{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint)}.cloze-question{white-space:pre-wrap;line-height:2}.cloze-slot{display:inline-flex;flex-direction:column;align-items:center;vertical-align:bottom;margin:0 3px}.cloze-input{font:inherit;font-size:.85em;text-align:center;color:var(--text);min-width:4ch;max-width:100%;padding:1px 6px;border:0;border-bottom:3px solid var(--teal);border-radius:8px 8px 0 0;background:var(--gold-soft);transition:background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.cloze-input:focus{outline:none;background:rgba(var(--teal-rgb),.14)}.cloze-input::placeholder{color:var(--text-faint);font-weight:600}.cloze-input.ok{border-color:var(--green);background:var(--green-soft);color:var(--green);font-weight:800;animation:cl-pop .32s var(--ease-out)}.cloze-input.bad{border-color:var(--coral);background:var(--coral-soft);color:var(--coral);text-decoration:line-through}html[data-theme=dark] .cloze-input.ok{background:#0e7c5a40;color:#5fe0b0}html[data-theme=dark] .cloze-input.bad{background:rgba(var(--coral-rgb),.25);color:#ff8a8a}.cloze-fix{font-size:.62em;font-weight:800;color:var(--green);line-height:1.1;margin-top:2px}.cloze-actions{display:flex;gap:10px;margin-top:18px}html.exercise-lock .exercise-fit[data-fit="1"] .cloze-question{line-height:1.8}html.exercise-lock .exercise-fit[data-fit="2"] .cloze-question{line-height:1.7}html.exercise-lock .exercise-fit[data-fit="3"] .cloze-question,html.exercise-lock .exercise-fit[data-fit="4"] .cloze-question{line-height:1.6}@keyframes cl-pop{0%{transform:scale(.85)}60%{transform:scale(1.1)}to{transform:scale(1)}}.speak-wrap{position:relative;display:inline-flex;align-items:center;gap:6px}.speak-btn{display:inline-flex;align-items:center;gap:6px;height:38px;min-width:38px;padding:0 10px;justify-content:center;border-radius:12px;border:2px solid var(--ink);background:var(--gold);color:#15203b;font-size:18px;cursor:pointer;box-shadow:2px 2px 0 var(--ink);transition:transform var(--dur-press) var(--ease-out),box-shadow var(--dur-press) var(--ease-out)}.speak-btn:active{transform:translate(2px,2px);box-shadow:none}.speak-btn.is-on{background:var(--teal);color:#fff}.speak-bars{display:inline-flex;align-items:flex-end;gap:2px;height:16px}.speak-bars i{display:block;width:3px;height:100%;background:currentColor;border-radius:2px;transform-origin:bottom;animation:speak-bar .8s ease-in-out infinite}.speak-bars i:nth-child(2){animation-delay:.16s}.speak-bars i:nth-child(3){animation-delay:.32s}@keyframes speak-bar{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}.speak-gear{width:30px;height:30px;border-radius:50%;border:2px solid var(--border);background:var(--surface);color:var(--text-dim);font-size:15px;line-height:1;cursor:pointer}.speak-warn{position:absolute;z-index:20;top:44px;right:0;width:240px;padding:8px 10px;border-radius:10px;background:var(--ink);color:#fff;font-size:12px;font-weight:600;line-height:1.35;box-shadow:0 8px 20px var(--shell-shadow)}html[data-theme=dark] .speak-warn{background:#fff;color:#15203b}.vs-form input[type=range]{width:100%;accent-color:var(--teal)}@media (prefers-reduced-motion: reduce){.speak-bars i{animation:none!important}}.speak-row{display:flex;justify-content:flex-end;margin-bottom:8px}.flashcard-speak{position:absolute;top:10px;right:10px;z-index:5}.cloze-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.cloze-chip{padding:3px 10px;border-radius:999px;background:var(--gold-soft);border:2px solid var(--border);font-weight:700;font-size:12.5px;color:var(--text)}.cloze-warn{color:var(--coral);font-weight:700;font-size:12.5px}.missed-btn{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:6px 12px;border-radius:999px;border:2px solid var(--ink);background:var(--coral-soft);color:var(--coral);font-weight:800;font-size:12.5px;cursor:pointer;box-shadow:2px 2px 0 var(--ink);transition:transform var(--dur-press) var(--ease-out),box-shadow var(--dur-press) var(--ease-out)}.missed-btn b{background:var(--coral);color:#fff;border-radius:999px;padding:0 7px;font-size:11.5px}.missed-btn:active{transform:translate(2px,2px);box-shadow:none}html[data-theme=dark] .missed-btn{background:rgba(var(--coral-rgb),.2);color:#ff9a9a}.share-toast{position:fixed;z-index:200;left:50%;transform:translate(-50%);bottom:calc(var(--bottom-nav-h, 64px) + 20px);max-width:90vw;background:var(--ink);color:#fff;padding:10px 18px;border-radius:999px;font-weight:700;font-size:13.5px;box-shadow:0 8px 24px var(--shell-shadow)}.import-page{padding-bottom:40px}.imp-lead{font-size:14px;line-height:1.5;margin:4px 0 18px}.imp-sources{display:grid;gap:12px}.imp-source{display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto auto;column-gap:14px;align-items:center;text-align:left;padding:16px;border-radius:var(--radius);border:var(--border-w) solid var(--ink);background:var(--surface);color:var(--text);box-shadow:var(--ink-shadow-sm);cursor:pointer;font:inherit;animation:rr-in .42s var(--ease-out) both;animation-delay:calc(var(--i, 0) * 90ms);transition:transform var(--dur-press) var(--ease-out),box-shadow var(--dur-press) var(--ease-out)}.imp-source:active{transform:translate(3px,3px);box-shadow:none}.imp-ico{grid-row:1 / 3;font-size:36px;width:52px;height:52px;display:grid;place-items:center;background:var(--gold);border:2px solid var(--ink);border-radius:14px}.imp-source b{font-family:var(--font-display);font-size:17px}.imp-source small{color:var(--text-dim);font-weight:600;font-size:12.5px;line-height:1.35}.imp-busy{text-align:center;font-weight:700;color:var(--text-dim)}.imp-error{margin:14px 0;padding:12px 14px;border-radius:14px;background:var(--coral-soft);color:var(--coral);font-weight:700;font-size:13.5px;line-height:1.45;border:2px solid var(--coral);animation:rr-in .3s var(--ease-out) both}html[data-theme=dark] .imp-error{background:rgba(var(--coral-rgb),.18);color:#ff9a9a}.imp-help{margin-top:14px;padding:12px 14px;border-radius:14px;background:var(--surface-2);font-size:13.5px;line-height:1.5}.imp-help summary{cursor:pointer;font-weight:800}.imp-help ol{margin:8px 0 4px;padding-left:20px}.imp-card{margin-top:16px;animation:rr-in .38s var(--ease-out) both}.imp-card h3{margin:0 0 8px;font-size:16px;overflow-wrap:anywhere}.imp-sub{margin:0 0 8px;font-weight:700;color:var(--text-dim);font-size:13.5px}.imp-text{min-height:150px;resize:vertical;font-family:ui-monospace,monospace;font-size:13px;margin-bottom:12px}.imp-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.imp-grid label,.imp-label{display:block;font-size:12.5px;font-weight:700;color:var(--text-dim)}.imp-grid label>span,.imp-label>span{display:block;margin-bottom:4px}.imp-label{margin-top:12px}.imp-toggles,.imp-dest{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.imp-count{margin:12px 0 0;font-weight:800;font-size:13.5px}.imp-media{font-size:12.5px;margin:10px 0 0}.imp-decks{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow-y:auto}.imp-deck{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:2px solid var(--border);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.imp-deck.on{border-color:var(--teal);background:rgba(var(--teal-rgb),.08)}.imp-deck-check{width:22px;height:22px;border-radius:7px;border:2px solid var(--ink);display:grid;place-items:center;font-weight:900;font-size:13px;color:#fff}.imp-deck.on .imp-deck-check{background:var(--teal)}.imp-deck-name{flex:1;min-width:0;font-weight:700;font-size:14px;overflow-wrap:anywhere}.imp-deck b{background:var(--gold);color:#15203b;border:2px solid var(--ink);border-radius:999px;padding:0 9px;font-size:12px}.imp-preview{margin-top:16px}.imp-prev-head{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);margin-bottom:6px}.imp-prev-card{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 12px;margin-bottom:8px;border-radius:12px;background:var(--surface-2);font-size:13.5px;animation:rr-in .36s var(--ease-out) both;animation-delay:calc(var(--i, 0) * 70ms);overflow-wrap:anywhere}.imp-prev-card small{display:block;color:var(--text-faint);font-weight:800;font-size:10.5px;text-transform:uppercase}.imp-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;flex-wrap:wrap}@media (max-width: 380px){.imp-grid{grid-template-columns:1fr}}.import-link{display:block;width:100%;margin-top:12px;padding:11px 14px;border-radius:14px;border:2px dashed var(--border);background:transparent;color:var(--text-dim);font:inherit;font-weight:700;font-size:13.5px;cursor:pointer;transition:border-color var(--dur) var(--ease-out),color var(--dur) var(--ease-out),transform var(--dur-press) var(--ease-out)}.import-link:hover{border-color:var(--teal);color:var(--teal)}.import-link:active{transform:scale(.98)}.imp-cloze mark{background:var(--gold-soft);border-bottom:3px solid var(--teal);border-radius:6px 6px 0 0;padding:0 4px;color:inherit;font-weight:700}.cloze-chips{margin-bottom:10px}.imp-legal{margin:0 0 16px;padding:10px 12px;border-radius:12px;background:var(--gold-soft);font-size:12.5px;font-weight:600;line-height:1.45;color:var(--text-dim)}.fc4-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.fc4-btn{--c: var(--teal);display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 2px 9px;border-radius:14px;border:var(--border-w) solid var(--ink);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;box-shadow:2px 2px 0 var(--ink);transition:transform var(--dur-press) var(--ease-out),box-shadow var(--dur-press) var(--ease-out),background var(--dur) var(--ease-out),color var(--dur) var(--ease-out)}.fc4-btn span{font-size:24px;line-height:1.1}.fc4-btn b{font-size:12.5px}.fc4-btn:active{transform:translate(2px,2px);box-shadow:none;background:var(--c);color:#fff}.fc4-again{--c: #d6453f}.fc4-hard{--c: #e8890c}.fc4-good{--c: #0e9f6e}.fc4-easy{--c: #2b44e7}.share-toast{position:fixed;z-index:400;left:50%;transform:translate(-50%);bottom:calc(var(--bottom-nav-h, 64px) + 20px);max-width:90vw;background:var(--ink);color:#fff;padding:10px 18px;border-radius:999px;font-weight:700;font-size:13.5px;box-shadow:0 8px 24px var(--shell-shadow, rgba(0,0,0,.25));text-align:center}html[data-theme=dark] .share-toast{background:#fff;color:#15203b}.share-link{display:block;width:100%;margin-top:12px;padding:11px 14px;border-radius:14px;border:2px dashed var(--border);background:transparent;color:var(--text-dim);font:inherit;font-weight:700;font-size:13.5px;cursor:pointer;transition:border-color .16s ease,color .16s ease,transform .12s ease}.share-link:hover{border-color:var(--teal);color:var(--teal)}.share-link:active{transform:scale(.98)}.rcv-page{padding-bottom:40px}.rcv-lead{font-size:14px;line-height:1.5;margin:4px 0 14px}.rcv-legal{margin:0 0 16px;padding:10px 12px;border-radius:12px;background:var(--gold-soft);font-size:12.5px;font-weight:600;line-height:1.45;color:var(--text-dim)}.rcv-pick{display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto auto;column-gap:14px;align-items:center;width:100%;text-align:left;padding:16px;border-radius:var(--radius);border:var(--border-w) solid var(--ink);background:var(--surface);color:var(--text);box-shadow:var(--ink-shadow-sm);cursor:pointer;font:inherit;transition:transform .12s ease,box-shadow .12s ease}.rcv-pick:active{transform:translate(3px,3px);box-shadow:none}.rcv-pick-ico{grid-row:1 / 3;font-size:32px;width:52px;height:52px;display:grid;place-items:center;background:var(--gold);border:2px solid var(--ink);border-radius:14px}.rcv-pick b{font-family:var(--font-display);font-size:17px}.rcv-pick small{color:var(--text-dim);font-weight:600;font-size:12.5px;line-height:1.35}.rcv-busy{text-align:center;font-weight:700;color:var(--text-dim)}.rcv-error{margin:14px 0;padding:12px 14px;border-radius:14px;background:var(--coral-soft);color:var(--coral);font-weight:700;font-size:13.5px;line-height:1.45;border:2px solid var(--coral)}html[data-theme=dark] .rcv-error{color:#ff9a9a}.rcv-card{margin-top:14px}.rcv-card h3{margin:0 0 6px;word-break:break-word}.rcv-count{margin:0 0 8px;font-weight:700;font-size:13.5px}.rcv-all{display:flex;gap:14px;margin-bottom:10px}.rcv-link{background:none;border:0;padding:4px 0;font:inherit;font-weight:800;font-size:13px;color:var(--teal);cursor:pointer;text-decoration:underline}.rcv-node-name{font-weight:800;font-size:14.5px;margin:8px 0 6px}.rcv-children{margin-left:12px;padding-left:10px;border-left:3px solid var(--border)}.rcv-lesson{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 10px;margin-bottom:6px;border-radius:12px;border:2px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer}.rcv-lesson.on{border-color:var(--ink);background:var(--gold-soft)}.rcv-check{flex:none;width:22px;height:22px;border-radius:7px;border:2px solid var(--ink);display:grid;place-items:center;font-weight:900;font-size:14px;background:var(--surface)}.rcv-lesson.on .rcv-check{background:var(--gold)}.rcv-lesson-name{flex:1;min-width:0;font-weight:700;font-size:14px;overflow-wrap:anywhere}.rcv-lesson b{flex:none;font-size:12.5px;color:var(--text-dim)}.rcv-dest{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}.rcv-chip{padding:8px 12px;border-radius:999px;border:2px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-weight:700;font-size:13px;cursor:pointer}.rcv-chip.on{border-color:var(--ink);background:var(--gold);color:var(--ink)}.rcv-chip:disabled{opacity:.5}.rcv-label{display:grid;gap:6px;margin-top:8px;font-weight:700;font-size:13px}.rcv-input{width:100%;box-sizing:border-box;padding:11px 12px;border-radius:12px;border:2px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:15px}.rcv-input:focus{outline:none;border-color:var(--ink)}.rcv-note{font-size:12.5px;line-height:1.4;margin:8px 0 0}.rcv-warn{margin:10px 0 0;padding:9px 11px;border-radius:12px;background:var(--gold-soft);font-weight:700;font-size:12.5px;line-height:1.4}.rcv-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}html:root body .progress-bar{position:relative}html:root body .study-progress .progress-bar>div:after,html:root body .continue-card .progress-bar>div:after{content:none;display:none;animation:none}html:root body .study-progress .progress-bar:after,html:root body .continue-card .progress-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);transform:translate(-120%);animation:barra-sheen 5s ease-in-out 1s infinite}@keyframes barra-sheen{0%{transform:translate(-120%)}30%,to{transform:translate(120%)}}html[data-motion=off] .study-progress .progress-bar:after,html[data-motion=off] .continue-card .progress-bar:after{animation:none}@media (prefers-reduced-motion: reduce){html:root body .study-progress .progress-bar:after,html:root body .continue-card .progress-bar:after{animation:none}}.cg-item{display:flex;min-width:0;position:relative;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.cg-item>.content-card{width:100%;height:100%}.cg-item.is-lifted{z-index:40;cursor:grabbing;filter:drop-shadow(0 12px 14px rgba(21,32,59,.38))}.cg-item.is-lifted>.content-card{transform:scale(1.04) rotate(-1deg);transition:transform .16s var(--ease-out, ease-out)}html.cg-dragging,html.cg-dragging body{touch-action:none;overscroll-behavior:contain}.cg-item.cg-list.sub-drag-item.is-dragging{filter:drop-shadow(0 12px 14px rgba(21,32,59,.38))}.cg-item.cg-list.is-dragging>.content-card{border-color:var(--teal);cursor:grabbing}.cg-item.is-dragging{filter:drop-shadow(0 12px 14px rgba(21,32,59,.38))}.cg-item.is-dragging>.content-card{border-color:var(--teal);cursor:grabbing}html.lesson-form-open .topbar{z-index:110}.modal-panel.lesson-form-panel{max-width:none;height:100vh;height:100dvh;max-height:none;border:none;border-radius:0;padding:calc(var(--lf-top, 60px) + 18px) 22px 24px}.modal-panel.lesson-form-panel .modal-back{margin-bottom:10px}@media (min-width: 640px) and (pointer: fine){.modal-panel.lesson-form-panel{max-width:720px;height:100%}}.modal-panel.generate-ai-panel{max-width:none;height:100vh;height:100dvh;max-height:none;border:none;border-radius:0;padding:calc(16px + env(safe-area-inset-top,0px)) 22px 24px}.modal-panel.generate-ai-panel .modal-back{margin-bottom:12px}@media (min-width: 640px) and (pointer: fine){.modal-panel.generate-ai-panel{max-width:720px;height:100%}}.content-card.drop-hover{background:color-mix(in srgb,var(--c-accent, var(--teal)) 38%,var(--surface));border-color:var(--ink);box-shadow:var(--ink-shadow-sm);transform:scale(1.04)}.drop-parent{position:fixed;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:30;padding:16px;text-align:center;font-weight:700;border-radius:var(--radius);background:var(--surface);border:var(--border-w) dashed var(--ink);box-shadow:var(--ink-shadow-sm)}.drop-parent.drop-hover{background:var(--gold, #ffd84d);color:#15203b;transform:scale(1.03)}.ia-spark{display:inline-block;filter:drop-shadow(0 0 .6px #15203b) drop-shadow(0 0 .6px #15203b) drop-shadow(0 0 1px #15203b) drop-shadow(0 0 1px #15203b)}.content-enter{animation:content-enter .36s cubic-bezier(.22,.8,.26,1) backwards}.content-enter .content-hero{animation:content-hero-in .46s cubic-bezier(.22,.8,.26,1) 40ms backwards}@keyframes content-enter{0%{opacity:0;transform:translateY(14px)}}@keyframes content-hero-in{0%{opacity:0;transform:translateY(-10px) scale(.97)}}@media (prefers-reduced-motion: reduce){.content-enter,.content-enter .content-hero{animation:none}}html body .option-btn{border-color:var(--ink);box-shadow:5px 5px 0 var(--ink);font-weight:700}html body .option-btn:active:not(:disabled){transform:translate(4px,4px);box-shadow:1px 1px 0 var(--ink)}html body .option-btn.selected{background:var(--surface)}html body .option-btn.correct{border-color:var(--green);background:var(--green-soft);color:var(--green);box-shadow:5px 5px 0 var(--ink)}html body .option-btn.wrong{border-color:var(--coral);background:var(--coral-soft);color:var(--coral);box-shadow:5px 5px 0 var(--ink)}html body .match-btn{border-color:var(--ink);box-shadow:5px 5px 0 var(--ink);font-weight:700}html body .match-btn:active:not(:disabled){transform:translate(4px,4px);box-shadow:1px 1px 0 var(--ink)}html body .match-btn.selected{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 14%,var(--surface));box-shadow:6px 6px 0 var(--blue);transform:translate(-1px,-1px)}html body .match-btn.matched{border-color:var(--green);background:var(--green-soft);color:var(--green);box-shadow:none;transform:none}html body .match-btn.wrong{border-color:var(--coral);background:var(--coral-soft);color:var(--coral);box-shadow:5px 5px 0 var(--ink);animation:none}@keyframes match-shake{20%,60%{transform:translate(-7px)}40%,80%{transform:translate(7px)}0%,to{transform:none}}html body .text-answer-input{border-color:var(--ink);box-shadow:var(--ink-shadow-sm);font-weight:600;transition:box-shadow .2s,border-color .2s,background .2s}html body .text-answer-input:focus{outline:none;border-color:var(--blue);box-shadow:6px 6px 0 var(--blue)}html body .text-answer-input.okf{border-color:var(--green);background:var(--green-soft);color:var(--green);box-shadow:5px 5px 0 var(--ink)}html body .text-answer-input.bad{border-color:var(--coral);background:var(--coral-soft);color:var(--coral);box-shadow:6px 6px 0 var(--coral)}html body .text-answer-input:disabled{opacity:1}html body .qtype-label{font:800 12px var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin:-10px 0 12px;min-height:32px;display:flex;align-items:center;justify-content:space-between;gap:8px}html.exercise-lock body .qtype-label{margin:-4px 0 6px;min-height:30px}html body .live-xp{font:800 15px var(--font-display);color:#b36b00;white-space:nowrap;font-variant-numeric:tabular-nums}html[data-theme=dark] body .live-xp{color:var(--gold)}html body .live-xp.bump{animation:live-xp-bump .45s var(--ease-out, ease-out)}@keyframes live-xp-bump{0%{transform:scale(1)}40%{transform:scale(1.3)}to{transform:scale(1)}}html body .study-progress .progress-bar{min-width:0}html body .combo-badge,html body .combo-badge.is-big,html body .combo-badge.is-epic{position:static;left:auto;top:auto;z-index:auto;flex-shrink:0;text-transform:none;letter-spacing:0;background:var(--coral);color:#fff;border:var(--border-w) solid var(--ink);box-shadow:none;border-radius:999px;font:800 14px var(--font-display);padding:3px 12px;transform:rotate(4deg);animation:combo-pop-site .4s var(--ease-out, ease-out) both}@keyframes combo-pop-site{0%{opacity:0;transform:rotate(4deg) scale(.6)}60%{opacity:1;transform:rotate(4deg) scale(1.15)}to{opacity:1;transform:rotate(4deg) scale(1)}}html body .study-shell .study-progress .progress-bar.is-combo>div,html body .study-shell.is-retry .study-progress .progress-bar.is-combo>div{background-color:#ffae25;background-image:none;box-shadow:none;animation:none}html body .study-progress .progress-bar>div:after{inset:auto;top:0;left:0;bottom:0;width:120px;height:100%;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.6) 50%,transparent 65%);transform:translate(-130px);opacity:1;animation:bar-sheen 5s ease-in-out 1s infinite}@keyframes bar-sheen{0%{transform:translate(-130px)}30%,to{transform:translate(640px)}}@media (prefers-reduced-motion: reduce){html body .study-progress .progress-bar>div:after,.live-xp.bump,.match-btn.wrong{animation:none!important}}html body .milestone-card{overflow:hidden}html body .milestone-card .item-fx-rays{top:-10px;right:-10px;bottom:-10px;left:-10px;-webkit-mask:radial-gradient(circle closest-side,#000 28%,transparent 100%);mask:radial-gradient(circle closest-side,#000 28%,transparent 100%)}html body .qtype-label>span:first-child{white-space:normal;line-height:1.25;min-width:0}html body .qtype-label{letter-spacing:.04em;font-size:14.5px;min-height:36px}html.exercise-lock body .exercise-fit[data-fit="3"] .option-btn,html.exercise-lock body .exercise-fit[data-fit="4"] .option-btn,html.exercise-lock body .exercise-fit[data-fit="3"] .match-btn,html.exercise-lock body .exercise-fit[data-fit="4"] .match-btn{box-shadow:3px 3px 0 var(--ink)}html body .blank-gap{display:inline-block;width:78px;height:0;margin:0 6px;border-bottom:4px solid var(--ink);transform:translateY(-4px)}html body .fill-row{display:flex;align-items:stretch;gap:12px;margin-top:4px}html body .fill-row .text-answer-input{flex:1;min-width:0}html body .fill-row .btn{flex-shrink:0}html body .fill-blank-question{display:block}html body .fill-row .text-answer-input{font-size:17px;padding:15px 14px}html body .fill-row .btn{padding:11px 16px}@font-face{font-family:Figtree;font-weight:400;font-display:swap;src:url(/fonts/figtree-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Figtree;font-weight:500;font-display:swap;src:url(/fonts/figtree-latin-500-normal.woff2) format("woff2")}@font-face{font-family:Figtree;font-weight:600;font-display:swap;src:url(/fonts/figtree-latin-600-normal.woff2) format("woff2")}@font-face{font-family:Figtree;font-weight:700;font-display:swap;src:url(/fonts/figtree-latin-700-normal.woff2) format("woff2")}@font-face{font-family:Figtree;font-weight:800;font-display:swap;src:url(/fonts/figtree-latin-800-normal.woff2) format("woff2")}@font-face{font-family:Bricolage Grotesque;font-weight:700;font-display:swap;src:url(/fonts/bricolage-grotesque-latin-700-normal.woff2) format("woff2")}@font-face{font-family:Bricolage Grotesque;font-weight:800;font-display:swap;src:url(/fonts/bricolage-grotesque-latin-800-normal.woff2) format("woff2")}:root{--font-display: "Bricolage Grotesque", "Trebuchet MS", system-ui, sans-serif;--font-body: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--bg: #f6f7fb;--bg-elev: #ffffff;--surface: #ffffff;--surface-2: #eef1f9;--border: #dce1ee;--text: #15203b;--text-dim: #515d78;--text-faint: #8892ab;--gold: #ffd84d;--teal: #2b44e7;--teal-dark: #1f33b8;--teal-rgb: 43, 68, 231;--on-teal: #ffffff;--coral: #b3282d;--coral-rgb: 179, 40, 45;--blue: #2b44e7;--green: #0e7c5a;--green-soft: #ddf5ea;--coral-soft: #fde4e4;--gold-soft: rgba(255, 216, 77, .3);--radius: 16px;--radius-sm: 10px;--shell-shadow: rgba(21, 32, 59, .28);--ink: #15203b;--ink-shadow: 5px 5px 0 var(--ink);--ink-shadow-sm: 3px 3px 0 var(--ink);--border-w: 3px;font-size:16px}html[data-theme=dark]{--bg: #0e1424;--bg-elev: #161d33;--surface: #181f38;--surface-2: #212a48;--border: #2c3557;--text: #eef0fa;--text-dim: #aab1cc;--text-faint: #7c84a6;--gold: #ffd84d;--teal: #5b74ff;--teal-dark: #4159f0;--teal-rgb: 91, 116, 255;--on-teal: #ffffff;--coral: #ef6a68;--coral-rgb: 239, 106, 104;--blue: #5b74ff;--green: #4fd3a0;--green-soft: rgba(79, 211, 160, .16);--coral-soft: rgba(239, 106, 104, .16);--gold-soft: rgba(255, 216, 77, .16);--shell-shadow: rgba(2, 4, 10, .6);--ink: #eef0fa;--ink-shadow: 5px 5px 0 var(--ink);--ink-shadow-sm: 3px 3px 0 var(--ink)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%;width:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased;display:flex;justify-content:center;overflow-x:hidden}@media (min-width: 640px) and (pointer: fine){body{background:var(--bg-elev);padding:28px 0}}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;margin:0;letter-spacing:-.01em}button{font-family:inherit}a{color:inherit;text-decoration:none}input,textarea,select{font-family:inherit}::selection{background:var(--gold);color:#fff}u{text-decoration-skip-ink:none;text-underline-offset:.12em;text-decoration-thickness:1.5px}u::selection,u *::selection{color:#1a1a1a}#app{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;width:100%;max-width:100%;background:var(--bg);position:relative}@media (min-width: 640px) and (pointer: fine){#app{max-width:var(--app-w, 430px);min-height:calc(100vh - 56px);border-radius:32px;border:var(--border-w) solid var(--border);box-shadow:0 24px 60px -20px var(--shell-shadow);overflow:hidden}}html[data-native=true] #app{max-width:100%;min-height:100dvh;border:none;border-radius:0;box-shadow:none}html[data-native=true] body{background:var(--bg);padding:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;padding-top:calc(14px + env(safe-area-inset-top,0px));flex-shrink:0;background:var(--bg-elev);border-bottom:var(--border-w) solid var(--border);position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--teal);color:#fff;font-size:15px;box-shadow:0 3px 0 -1px var(--gold);font-family:var(--font-display);font-weight:800}.brand-name{font-family:var(--font-display);font-size:17px;font-weight:800;letter-spacing:-.01em}.topbar-streak{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:700;color:#ff7a00;background:var(--surface-2);border:var(--border-w) solid var(--ink);border-radius:999px;padding:4px 10px 4px 8px}.main{flex:1 0 auto;min-width:0;width:100%;padding:18px 16px 28px;padding-left:calc(16px + env(safe-area-inset-left,0px));padding-right:calc(16px + env(safe-area-inset-right,0px))}.main>.view{max-width:720px;margin:0 auto;width:100%}.view{animation:fadein .25s ease}@keyframes fadein{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.bottom-nav{display:flex;justify-content:space-around;align-items:center;position:sticky;bottom:0;left:0;right:0;width:100%;min-height:60px;padding-top:4px;padding-bottom:calc(4px + env(safe-area-inset-bottom,0px));background:var(--bg-elev);border-top:var(--border-w) solid var(--border);z-index:40;flex-shrink:0;margin-top:auto}.bottom-nav a{background:none;border:none;color:var(--text-faint);display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10.5px;font-weight:600;padding:6px 14px;position:relative;border-radius:var(--radius-sm)}.bottom-nav a .ic{font-size:20px}.bottom-nav a.active{color:var(--teal);background:var(--surface-2)}.bottom-nav .nav-badge{position:absolute;top:0;right:2px;min-width:16px;height:16px;border-radius:999px;background:var(--coral);color:#fff;font-size:9.5px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}.eyebrow{font-size:12.5px;color:var(--text-faint)}.stat-row{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0 28px}.stat-pill{display:flex;align-items:center;gap:8px;background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:999px;padding:8px 16px;font-size:14px;font-weight:700;box-shadow:var(--ink-shadow-sm)}.stat-pill .ic{font-size:16px}.stat-pill.gold{color:var(--gold)}.stat-pill.teal{color:var(--teal)}.card{background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:var(--radius);padding:20px;box-shadow:var(--ink-shadow-sm)}.section-title{font-size:13px;color:var(--text-faint);font-weight:600;margin:32px 0 12px;letter-spacing:.02em}.section-title:first-child{margin-top:0}.continue-card{display:flex;align-items:center;gap:16px;border:var(--border-w) solid var(--ink);border-left-width:var(--border-w);box-shadow:var(--ink-shadow-sm)}.continue-card .info{flex:1;min-width:0}.continue-card .content-name{font-size:12.5px;color:var(--text-faint);margin-bottom:2px}.continue-card .sub-name{font-size:17px;font-weight:600;font-family:var(--font-display)}.progress-bar{height:7px;background:var(--surface-2);border-radius:99px;overflow:hidden;margin-top:10px}.progress-bar>div{height:100%;background:var(--teal);border-radius:99px;transition:width .3s}.btn{border:none;border-radius:999px;padding:10px 22px;font-weight:600;font-family:var(--font-body);font-size:14.5px;cursor:pointer;transition:transform .1s,opacity .15s,background .15s;white-space:nowrap}.btn:active{transform:scale(.97)}.btn-primary{background:var(--teal);color:var(--on-teal)}.btn-gold{background:var(--gold);color:#15203b}.btn-ghost{background:transparent;color:var(--text-dim);border:var(--border-w) solid var(--border)}.btn-danger{background:var(--coral);color:#fff}.btn-block{width:100%}.btn-sm{padding:7px 15px;font-size:13px}.btn:disabled{opacity:.4;cursor:not-allowed}.reviews-widget{display:flex;align-items:center;justify-content:space-between;gap:16px;border:var(--border-w) solid var(--ink);box-shadow:var(--ink-shadow-sm)}.reviews-widget .count{font-family:var(--font-display);font-size:26px;font-weight:800;color:var(--gold)}.content-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-auto-rows:180px;gap:14px}.content-card{background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:var(--radius);padding:18px;cursor:pointer;position:relative;border-left:var(--border-w) solid var(--c-accent, var(--teal));display:flex;flex-direction:column;gap:8px;height:100%;min-width:0;overflow:hidden;transition:border-color .15s,box-shadow .15s,transform .1s}.content-card:active{border-color:var(--ink);box-shadow:var(--ink-shadow-sm);transform:translate(-1px,-1px)}.content-card .row-top{display:flex;justify-content:space-between;align-items:flex-start}.content-card .icon{font-size:26px}.content-card .name{font-family:var(--font-display);font-size:17px;font-weight:600;margin-top:2px;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}.content-card .desc{font-size:12.5px;color:var(--text-faint);line-height:1.4;flex:1;min-height:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.content-card .foot{font-size:12px;color:var(--text-dim);display:flex;justify-content:space-between;align-items:center;margin-top:auto}.create-content-card{border:var(--border-w) dashed var(--ink);background:transparent;display:flex;align-items:center;justify-content:center;height:100%;border-radius:var(--radius);cursor:pointer;color:var(--text-faint);font-weight:600;font-size:14px;gap:8px}.menu-btn{background:none;border:none;color:var(--text-faint);font-size:16px;cursor:pointer;padding:2px 6px;border-radius:6px}.menu-pop{position:absolute;top:38px;right:12px;background:var(--surface-2);border:var(--border-w) solid var(--ink);border-radius:10px;overflow:hidden;z-index:30;min-width:140px;box-shadow:0 8px 24px #0000004d}.menu-pop button{display:block;width:100%;text-align:left;background:none;border:none;padding:10px 14px;color:var(--text);font-size:13.5px;cursor:pointer}.menu-pop button.danger{color:var(--coral)}.menu-pop button:disabled{opacity:.35;cursor:not-allowed}.page-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.page-title{font-size:26px;display:flex;align-items:center;gap:10px}.page-desc{color:var(--text-dim);font-size:14.5px;margin-top:4px;max-width:60ch}.back-btn{background:#15203b;border:none;color:#fff;font-size:14px;font-weight:600;cursor:pointer;padding:8px 14px;border-radius:999px;margin-bottom:10px;display:inline-flex;align-items:center;gap:6px}.sub-list{display:flex;flex-direction:column;gap:8px;margin-top:20px}.sub-drag-item{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.sub-drag-item.is-dragging .sub-row{box-shadow:0 10px 28px #00000047;border-color:var(--teal);cursor:grabbing}.sub-row{display:flex;align-items:center;gap:12px;background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:12px;padding:14px 16px;cursor:pointer;position:relative}.sub-row.has-menu{gap:4px;padding-right:6px}.sub-status{font-size:18px;width:22px;text-align:center;flex-shrink:0}.sub-main{flex:1;min-width:0;max-width:100%}.sub-main .name{font-weight:600;font-size:15px;overflow-wrap:anywhere;word-break:break-word}.sub-main .name .rich-text{overflow-wrap:anywhere;word-break:break-word}.sub-main .meta{font-size:12px;color:var(--text-faint);margin-top:2px;display:flex;gap:10px;flex-wrap:wrap}.sub-order-btns{display:flex;flex-direction:column;gap:1px}.sub-order-btns button{background:none;border:none;color:var(--text-faint);cursor:pointer;font-size:11px;line-height:1;padding:2px}.sub-order-btns button:disabled{opacity:.25;cursor:not-allowed}.review-toggle-row{display:flex;align-items:center;justify-content:flex-start;gap:8px;margin-top:8px;font-size:12.5px;color:var(--text-dim)}.review-toggle{--tg-w: 46px;--tg-h: 26px;--tg-gap: 2px;position:relative;width:var(--tg-w);height:var(--tg-h);flex-shrink:0;padding:0;border-radius:999px;border:var(--border-w) solid var(--border);background:var(--surface-2);cursor:pointer;transition:background .15s,border-color .15s}.review-toggle:after{--tg-knob: calc(var(--tg-h) - 2 * var(--border-w) - 2 * var(--tg-gap));content:"";position:absolute;top:var(--tg-gap);left:var(--tg-gap);width:var(--tg-knob);height:var(--tg-knob);border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform .18s var(--ease-out, ease)}.review-toggle.on{background:var(--teal);border-color:var(--teal)}.review-toggle.on:after{transform:translate(calc(var(--tg-w) - var(--tg-h)))}.badge-review{background:var(--coral);color:#fff;font-size:10px;font-weight:700;border-radius:8px;padding:2px 6px}.mastery-tag{font-size:11px;padding:2px 8px;border-radius:99px;background:var(--surface-2);color:var(--text-dim)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#080a0a99;display:flex;align-items:flex-end;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}@media (min-width: 640px) and (pointer: fine){.modal-overlay{align-items:center;position:absolute;border-radius:32px}}.modal-panel{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));scroll-padding:24px 0 96px}html.kb-open .modal-panel{padding-bottom:120px}.modal-panel{background:var(--bg-elev);border:var(--border-w) solid var(--ink);border-radius:20px 20px 0 0;width:100%;max-width:540px;max-height:94vh;max-height:94dvh;overflow-y:auto;padding:26px 24px 24px;animation:slideup .2s ease}@media (min-width: 600px) and (pointer: fine){.modal-panel{border-radius:20px}}@keyframes slideup{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}.modal-title{font-family:var(--font-display);font-weight:800;font-size:21px;margin-bottom:18px;letter-spacing:-.01em}.form label{display:block;font-size:13px;font-weight:600;color:var(--text-dim);margin-bottom:16px}.form label>span{display:block;margin-bottom:6px}.form input[type=text],.form input:not([type]),.form textarea,.form input[type=number],.form select{width:100%;background:var(--surface);border:var(--border-w) solid var(--border);border-radius:10px;padding:10px 12px;color:var(--text);font-size:14.5px;font-family:inherit;resize:vertical}.form input:focus,.form textarea:focus,.form select:focus{outline:2px solid var(--teal);outline-offset:1px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.form-actions.content-form-actions{margin-top:72px}html.kb-open .modal-panel.content-form-panel{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.icon-picker,.color-picker{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}.icon-opt{font-size:20px;background:var(--surface);border:var(--border-w) solid var(--border);border-radius:10px;width:42px;height:42px;cursor:pointer}.icon-opt.selected{border-color:var(--teal);background:var(--surface-2)}.color-opt{width:28px;height:28px;border-radius:50%;border:var(--border-w) solid transparent;cursor:pointer}.color-opt.selected{border-color:var(--text)}.body-editor{display:flex;flex-direction:column;gap:8px}.body-preview{background:var(--surface-2);border:var(--border-w) dashed var(--ink);border-radius:10px;padding:12px 14px;min-height:40px;font-size:14.5px;line-height:1.6}.hint{font-size:12px;color:var(--text-faint);margin-top:4px;font-weight:400}.fab-bar{position:sticky;bottom:-4px;height:0;z-index:5;pointer-events:none}.fab-add-exercise{position:absolute;right:-4px;bottom:0;width:52px;height:52px;border-radius:50%;border:none;background:var(--teal);color:var(--on-teal);font-size:28px;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(var(--teal-rgb),.45);cursor:pointer;z-index:5;opacity:0;transform:translateY(12px) scale(.9);pointer-events:none;transition:opacity .18s ease,transform .18s ease}.fab-add-exercise.visible{opacity:1;transform:none;pointer-events:auto}.fab-add-exercise:active{transform:scale(.94)}.fab-add-exercise.fab-scroll-down{right:auto;left:calc(50% - 26px)}.fab-bar .fab-add-exercise:not(.visible){pointer-events:none}.fab-end-spacer{height:64px}.page-fab-bar{position:fixed;left:50%;transform:translate(-50%);width:min(100vw,var(--app-w, 430px));height:0;bottom:calc(92px + env(safe-area-inset-bottom,0px));z-index:55;pointer-events:none}.page-fab-bar .fab-add-exercise.fab-add-left{right:auto;left:16px}.ai-source-wrap{position:relative;margin-bottom:16px}.ai-source-wrap>label{margin-bottom:0}.box-scroll-arrow{position:absolute;right:10px;bottom:10px;width:36px;height:36px;border-radius:50%;border:none;padding:0;background:var(--teal);color:var(--on-teal);font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(var(--teal-rgb),.45);opacity:0;transform:scale(.8);pointer-events:none;transition:opacity .18s ease,transform .18s ease}.box-scroll-arrow.visible{opacity:.95;transform:none;pointer-events:auto}.box-scroll-arrow:active{transform:scale(.92)}.box-scroll-arrow .fab-arrow{display:inline-block;transition:transform .25s ease}.box-scroll-arrow.is-up .fab-arrow{transform:rotate(180deg)}.fab-scroll-down .fab-arrow{display:inline-block;transition:transform .25s ease}.fab-scroll-down.is-up .fab-arrow{transform:rotate(180deg)}.exercise-list{display:flex;flex-direction:column;gap:12px;margin:8px 0 4px}.exercise-card{background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:12px;padding:14px}.exercise-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.exercise-card-head select{background:var(--surface-2);border:var(--border-w) solid var(--border);color:var(--text);border-radius:8px;padding:6px 10px;font-size:13px;font-family:inherit;width:auto}.ex-remove{background:none;border:none;color:var(--text-faint);cursor:pointer;font-size:15px}.option-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.option-row input[type=text]{flex:1;width:auto}.option-row .rich-editable-inline{flex:1}.rt-highlight{color:#1a1a1a;border-radius:3px;padding:0 3px}.rich-editable{width:100%;background:var(--surface);border:var(--border-w) solid var(--border);border-radius:10px;padding:14px 16px;color:var(--text);font-size:16.5px;font-family:inherit;line-height:1.5;outline:none;min-height:52px}.rich-editable-multiline{min-height:96px}.rich-editable:focus{outline:2px solid var(--teal);outline-offset:1px}.rich-editable-multiline{white-space:pre-wrap;word-wrap:break-word}.rich-editable-inline{white-space:nowrap;overflow-x:auto}.rich-editable:empty:before{content:attr(data-placeholder);color:var(--text-faint);pointer-events:none}.rich-editable mark,.rich-editable span[data-hl]{border-radius:3px;padding:0 2px;color:#1a1a1a}.format-toolbar{position:fixed;display:flex;align-items:center;gap:2px;background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:10px;box-shadow:var(--ink-shadow-sm);padding:4px;z-index:500}.format-toolbar-pending-highlight{position:fixed;background:#4291ff61;border-radius:2px;pointer-events:none;z-index:499}.format-toolbar-handle{position:fixed;width:44px;height:44px;z-index:498;touch-action:none;transform:translate(-50%,-6px)}.format-toolbar-handle:after{content:"";position:absolute;left:50%;top:6px;width:20px;height:20px;margin-left:-10px;background:#4db6ac;border-radius:50% 0 50% 50%;transform:rotate(45deg);box-shadow:0 1px 4px #0000004d}.format-toolbar-handle-start:after{border-radius:0 50% 50%}.format-toolbar-btn{background:transparent;border:none;border-radius:6px;color:var(--text);width:30px;height:30px;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center}.format-toolbar-btn.is-active{background:var(--surface-2);box-shadow:inset 0 0 0 1.5px var(--teal);color:var(--teal)}.format-toolbar-swatch-none:disabled{opacity:.35;cursor:not-allowed}.format-toolbar-btn:disabled{opacity:.35;cursor:not-allowed}.format-toolbar-marker{position:relative}.format-toolbar-marker-icon{display:block;width:16px;height:16px;border-radius:4px;background:linear-gradient(135deg,#ffd84d,#ffd84d 50%,#a5d8ff 50%,#a5d8ff);border:var(--border-w) solid var(--ink)}.format-toolbar-marker-icon.has-color{background-image:none}.format-toolbar-popover{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);display:flex;gap:6px;background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:10px;box-shadow:var(--ink-shadow-sm);padding:6px;z-index:501}.format-toolbar-swatch{width:22px;height:22px;border-radius:50%;border:var(--border-w) solid var(--ink);cursor:pointer;padding:0;box-shadow:none;transition:box-shadow .1s}.format-toolbar-swatch.selected{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--teal)}.format-toolbar-swatch-custom{background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.format-toolbar-wheel-wrap{position:relative}.format-toolbar-wheel-popover{position:fixed;z-index:502;display:flex;align-items:flex-start;gap:14px}.format-toolbar-wheel{position:relative;width:170px;height:170px;border-radius:50%;background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);box-shadow:0 6px 20px #00000059,0 0 0 1px #0000000f;touch-action:none;cursor:pointer;flex-shrink:0}.format-toolbar-wheel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:radial-gradient(circle at center,#fff,#fff0 70%);pointer-events:none}.format-toolbar-wheel-dot{position:absolute;width:18px;height:18px;border-radius:50%;border:var(--border-w) solid #fff;box-shadow:0 0 0 1px #0006,0 1px 4px #0000004d;transform:translate(-50%,-50%);pointer-events:none}.format-toolbar-value-slider{position:relative;width:26px;height:170px;border-radius:13px;box-shadow:0 4px 14px #0000004d,0 0 0 1px #0000000f;touch-action:none;cursor:pointer;flex-shrink:0}.format-toolbar-value-dot{position:absolute;left:50%;width:20px;height:20px;border-radius:50%;border:var(--border-w) solid #fff;box-shadow:0 0 0 1px #0006,0 1px 4px #0000004d;transform:translate(-50%,-50%);pointer-events:none}.wheel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:700;display:flex;align-items:center;justify-content:center;padding:20px;background:#0a102073;touch-action:none;animation:wheel-fade .14s ease-out}.wheel-card{--wheel-size: min(64vw, 46dvh, 300px);display:flex;flex-direction:column;align-items:center;gap:16px;background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:22px;box-shadow:var(--ink-shadow);padding:20px 22px 18px;max-width:100%;animation:wheel-pop .16s ease-out}.wheel-card-title{font-weight:700;font-size:15px;color:var(--text)}.wheel-preview{max-width:calc(var(--wheel-size) + 60px);display:flex;justify-content:center}.wheel-preview-text{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1a1a1a;font-weight:600;font-size:17px;padding:3px 8px;border-radius:5px}.wheel-preview-swatch{display:block;width:56px;height:26px;border-radius:13px;border:var(--border-w) solid var(--ink)}.wheel-row{display:flex;align-items:stretch;gap:18px}.wheel-big,.color-wheel.wheel-big{position:relative;width:var(--wheel-size);height:var(--wheel-size);border-radius:50%;background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);box-shadow:0 6px 20px #0000004d,0 0 0 1px #0000000f;touch-action:none;cursor:pointer;flex-shrink:0}.color-wheel.wheel-big:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:radial-gradient(circle at center,#fff,#fff0 70%);pointer-events:none}.wheel-big-slider,.color-wheel-value-slider.wheel-big-slider{position:relative;width:34px;height:var(--wheel-size);border-radius:17px;box-shadow:0 4px 14px #00000040,0 0 0 1px #0000000f;touch-action:none;cursor:pointer;flex-shrink:0}.wheel-big .format-toolbar-wheel-dot,.color-wheel-dot{width:26px;height:26px}.color-wheel-dot,.color-wheel-value-dot{position:absolute;border-radius:50%;border:var(--border-w) solid #fff;box-shadow:0 0 0 1px #0006,0 1px 4px #0000004d;transform:translate(-50%,-50%);pointer-events:none}.wheel-big-slider .format-toolbar-value-dot,.color-wheel-value-dot{left:50%;width:28px;height:28px}.wheel-done{min-width:140px}@keyframes wheel-fade{0%{opacity:0}to{opacity:1}}@keyframes wheel-pop{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.color-opt-custom{background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);border:var(--border-w) solid var(--ink);position:relative;display:inline-flex;align-items:center;justify-content:center;padding:0;overflow:hidden;box-shadow:none;transition:box-shadow .1s}.color-opt-custom.selected{border-color:var(--ink);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--teal)}.color-opt-custom-dot{display:none}.format-toolbar-swatch-none{background:var(--surface-2);color:var(--text-faint);font-size:11px;display:flex;align-items:center;justify-content:center}.study-shell{max-width:560px;margin:0 auto}.study-shell--exercise{display:flex;flex-direction:column;min-height:calc(100dvh - 190px)}.exercise-stage{flex:1;display:flex;flex-direction:column;justify-content:center}.study-progress{display:flex;align-items:center;gap:12px;margin-bottom:26px}.study-progress .progress-bar{flex:1;height:24px}.study-progress .progress-bar>div{position:relative;overflow:hidden}.study-progress .progress-bar>div:after{content:"";position:absolute;top:0;left:0;width:50px;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transform:skew(-20deg) translate(-70px);animation:progress-shine 2.4s ease-in-out infinite;pointer-events:none}@keyframes progress-shine{0%{transform:skew(-20deg) translate(-70px);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:skew(-20deg) translate(560px);opacity:0}}.study-progress .count{font-size:12.5px;color:var(--text-faint);white-space:nowrap}.study-body-card{background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:var(--radius);padding:26px;font-size:16px;line-height:1.7}.exercise-question{font-size:27px;font-weight:600;line-height:1.5;margin-bottom:46px;font-family:var(--font-display)}.option-btn{display:flex;align-items:center;width:100%;text-align:left;background:var(--surface);border:var(--border-w) solid var(--border);border-radius:18px;padding:30px 24px;margin-bottom:22px;cursor:pointer;font-size:21px;color:var(--text);transition:border-color .12s,box-shadow .12s,transform .08s,background .12s}.option-btn.selected{border-color:var(--ink);background:var(--surface-2);box-shadow:var(--ink-shadow-sm)}.option-btn.correct{border-color:var(--green);background:var(--green-soft);box-shadow:3px 3px 0 var(--green)}.option-btn.wrong{border-color:var(--coral);background:var(--coral-soft);box-shadow:3px 3px 0 var(--coral)}.option-btn:disabled{cursor:default}.match-question{margin-bottom:28px}.match-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:14px;row-gap:14px}.match-btn{display:flex;align-items:center;justify-content:center;text-align:center;width:100%;min-height:64px;padding:16px 12px;border-radius:16px;background:var(--surface);border:var(--border-w) solid var(--border);color:var(--text);font-size:19px;font-weight:600;font-family:inherit;line-height:1.25;overflow-wrap:anywhere;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .12s,box-shadow .12s,transform .08s,background .12s}.match-btn:active:not(:disabled){transform:translate(1px,1px)}.match-btn.selected{border-color:var(--ink);background:var(--surface-2);box-shadow:var(--ink-shadow-sm)}.match-btn.matched{border-color:var(--green);background:var(--green-soft);color:var(--green);box-shadow:3px 3px 0 var(--green)}.match-btn.wrong{border-color:var(--coral);background:var(--coral-soft);color:var(--coral);box-shadow:3px 3px 0 var(--coral);animation:match-shake .3s ease-in-out}.match-btn:disabled{cursor:default;opacity:1}@keyframes match-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}html.exercise-lock .exercise-fit[data-fit="1"] .match-question{margin-bottom:20px}html.exercise-lock .exercise-fit[data-fit="1"] .match-btn{font-size:17px;padding:12px 10px;min-height:54px}html.exercise-lock .exercise-fit[data-fit="1"] .match-grid{row-gap:11px;column-gap:11px}html.exercise-lock .exercise-fit[data-fit="2"] .match-question{margin-bottom:14px}html.exercise-lock .exercise-fit[data-fit="2"] .match-btn{font-size:15.5px;padding:9px 8px;min-height:46px;border-radius:13px}html.exercise-lock .exercise-fit[data-fit="2"] .match-grid{row-gap:9px;column-gap:9px}html.exercise-lock .exercise-fit[data-fit="3"] .match-question{margin-bottom:10px}html.exercise-lock .exercise-fit[data-fit="3"] .match-btn{font-size:14.5px;padding:7px 8px;min-height:40px;border-radius:11px}html.exercise-lock .exercise-fit[data-fit="3"] .match-grid{row-gap:7px;column-gap:8px}html.exercise-lock .exercise-fit[data-fit="4"] .match-question{margin-bottom:8px}html.exercise-lock .exercise-fit[data-fit="4"] .match-btn{font-size:13.5px;padding:5px 6px;min-height:34px;border-radius:10px}html.exercise-lock .exercise-fit[data-fit="4"] .match-grid{row-gap:5px;column-gap:6px}.match-pair-row{display:flex;align-items:center;gap:6px;margin-bottom:8px}.match-pair-row .rich-editable-inline{flex:1;min-width:0}.match-pair-link{color:var(--text-faint);font-weight:700;flex-shrink:0}.match-col-heads{display:flex;gap:6px;font-size:12px;font-weight:700;color:var(--text-dim);margin-bottom:6px}.match-col-heads span{flex:1}.match-col-heads .spacer{flex:0 0 14px}.exercise-card-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.gen-type-chip{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;border:var(--border-w) solid var(--border);border-radius:10px;padding:8px 12px}.gen-type-chip>label{display:flex;align-items:center;gap:6px;margin:0;cursor:pointer;font-size:13px;font-weight:500;color:inherit}.gen-type-clear{cursor:pointer;font:inherit;font-size:13px;font-weight:700;color:var(--coral);background:transparent;border-style:dashed}.gen-type-clear:disabled{opacity:.45;cursor:default}.gen-type-chip .select-menu-btn{min-height:0;padding:3px 8px;font-size:12.5px;gap:6px}.text-answer-input{display:block;width:100%;padding:26px 22px;border-radius:18px;border:var(--border-w) solid var(--border);background:var(--surface);color:var(--text);font-size:21px;font-family:inherit;line-height:1.4;resize:none;overflow:hidden}.text-answer-input:focus{outline:2px solid var(--teal)}.fill-blank-question{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px}.blank-input{display:inline-block;min-width:76px;max-width:100%;padding:5px 12px;border:none;border-bottom:var(--border-w) solid var(--teal);background:transparent;color:var(--text);font-size:27px;font-family:inherit;font-weight:600;text-align:center}.blank-input:focus{outline:none;border-bottom-color:var(--gold)}.blank-input:disabled{color:inherit;opacity:1}html.exercise-lock #app{height:100vh;height:100dvh;min-height:0;overflow:hidden}@media (min-width: 640px) and (pointer: fine){html.exercise-lock #app{height:calc(100vh - 56px)}}html.exercise-lock .main{flex:1 1 0;min-height:0;display:flex;flex-direction:column;padding-top:10px;padding-bottom:12px;overflow-y:auto;scrollbar-width:none}html.exercise-lock .main::-webkit-scrollbar{display:none}html.exercise-lock .main>.view{flex:1;min-height:0;display:flex;flex-direction:column}html.exercise-lock .study-shell--exercise{flex:1;min-height:0;width:100%}html.exercise-lock .exercise-stage{min-height:0;justify-content:stretch}html.exercise-lock .back-btn{margin-bottom:0}html.exercise-lock .study-progress{margin-bottom:12px}html.exercise-lock .study-progress .progress-bar{height:18px}html.exercise-lock .exercise-fit{flex:1;min-height:0;display:flex;flex-direction:column}html.exercise-lock .exercise-fit-inner{margin:auto 0;width:100%}html.exercise-lock .exercise-after-slot{visibility:hidden;pointer-events:none}html.exercise-lock .exercise-fit[data-fit="1"] .exercise-question{font-size:24px;line-height:1.4;margin-bottom:24px}html.exercise-lock .exercise-fit[data-fit="1"] .blank-input{font-size:24px}html.exercise-lock .exercise-fit[data-fit="1"] .option-btn{padding:20px;margin-bottom:14px;font-size:19px;border-radius:16px}html.exercise-lock .exercise-fit[data-fit="1"] .text-answer-input{padding:18px 16px;font-size:19px}html.exercise-lock .exercise-fit[data-fit="1"] .feedback-panel{margin-top:14px;padding:14px 16px}html.exercise-lock .exercise-fit[data-fit="1"] .study-footer{margin-top:14px}html.exercise-lock .exercise-fit[data-fit="2"] .exercise-question{font-size:21px;line-height:1.4;margin-bottom:16px}html.exercise-lock .exercise-fit[data-fit="2"] .blank-input{font-size:21px;padding:3px 10px}html.exercise-lock .exercise-fit[data-fit="2"] .option-btn{padding:14px 16px;margin-bottom:10px;font-size:17px;border-radius:14px}html.exercise-lock .exercise-fit[data-fit="2"] .text-answer-input{padding:14px;font-size:17px}html.exercise-lock .exercise-fit[data-fit="2"] .feedback-panel{margin-top:10px;padding:10px 14px}html.exercise-lock .exercise-fit[data-fit="2"] .feedback-title{font-size:15px}html.exercise-lock .exercise-fit[data-fit="2"] .feedback-detail{margin-top:4px;font-size:13px;line-height:1.4}html.exercise-lock .exercise-fit[data-fit="2"] .study-footer{margin-top:10px}html.exercise-lock .exercise-fit[data-fit="3"] .exercise-question{font-size:19px;line-height:1.35;margin-bottom:12px}html.exercise-lock .exercise-fit[data-fit="3"] .blank-input{font-size:19px;padding:2px 8px}html.exercise-lock .exercise-fit[data-fit="3"] .option-btn{padding:10px 14px;margin-bottom:7px;font-size:15.5px;border-radius:12px}html.exercise-lock .exercise-fit[data-fit="3"] .text-answer-input{padding:11px 12px;font-size:15.5px}html.exercise-lock .exercise-fit[data-fit="3"] .feedback-panel{margin-top:8px;padding:8px 12px}html.exercise-lock .exercise-fit[data-fit="3"] .feedback-title{font-size:14px}html.exercise-lock .exercise-fit[data-fit="3"] .feedback-detail{margin-top:3px;font-size:12.5px;line-height:1.35}html.exercise-lock .exercise-fit[data-fit="3"] .study-footer{margin-top:8px}html.exercise-lock .exercise-fit[data-fit="3"] .btn{padding:8px 16px;font-size:13px}html.exercise-lock .exercise-fit[data-fit="4"] .exercise-question{font-size:17px;line-height:1.3;margin-bottom:8px}html.exercise-lock .exercise-fit[data-fit="4"] .blank-input{font-size:17px;padding:2px 6px}html.exercise-lock .exercise-fit[data-fit="4"] .option-btn{padding:7px 12px;margin-bottom:5px;font-size:14px;border-radius:10px}html.exercise-lock .exercise-fit[data-fit="4"] .text-answer-input{padding:8px 12px;font-size:14px}html.exercise-lock .exercise-fit[data-fit="4"] .feedback-panel{margin-top:6px;padding:6px 10px}html.exercise-lock .exercise-fit[data-fit="4"] .feedback-title{font-size:13px}html.exercise-lock .exercise-fit[data-fit="4"] .feedback-detail{margin-top:2px;font-size:12px;line-height:1.3}html.exercise-lock .exercise-fit[data-fit="4"] .study-footer{margin-top:6px}html.exercise-lock .exercise-fit[data-fit="4"] .btn{padding:7px 14px;font-size:13px}html.exercise-lock .exercise-fit[data-fit="4"] .exercise-fit-inner{margin:0;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}html.exercise-lock .exercise-fit[data-fit="4"] .exercise-fit-main{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:none}html.exercise-lock .exercise-fit[data-fit="4"] .exercise-fit-main::-webkit-scrollbar{display:none}html.exercise-lock .exercise-fit[data-fit="4"] .exercise-fit-after{flex-shrink:0}html.exercise-lock .exercise-fit[data-fit="4"] .feedback-panel{max-height:22dvh;overflow-y:auto;scrollbar-width:none}html.exercise-lock .exercise-fit[data-fit="4"] .feedback-panel::-webkit-scrollbar{display:none}.flashcard-layout{flex:1;min-height:0;display:flex;flex-direction:column}.flashcard-scene{flex:1;min-height:120px;display:flex;perspective:1200px;margin-bottom:12px}.flashcard{flex:1;min-width:0;cursor:pointer;outline:none;display:grid;grid-template:minmax(0,1fr) / minmax(0,1fr);transform-style:preserve-3d;-webkit-tap-highlight-color:transparent;transition:transform .6s cubic-bezier(.4,.2,.2,1)}.flashcard.is-flipped{transform:rotateY(180deg)}.flashcard-face{grid-area:1 / 1;position:relative;min-height:0;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;text-align:left;gap:14px;padding:24px;border-radius:18px;border:var(--border-w) solid #15203b;box-shadow:6px 6px #15203b;color:#15203b;backface-visibility:hidden;-webkit-backface-visibility:hidden}.flashcard:focus-visible .flashcard-face{outline:3px solid #2b44e7;outline-offset:3px}.flashcard-front{background:repeating-linear-gradient(#fff 0,#fff 33px,#e4e8f4 33px,#e4e8f4 34px),#fff}.flashcard-back{transform:rotateY(180deg);background:#ffd84d}.flashcard-tag{align-self:flex-start;flex-shrink:0;padding:3px 13px;border-radius:999px;background:#15203b;color:#fff;font-family:var(--font-body);font-size:12.5px;font-weight:700;letter-spacing:normal;text-transform:none}.flashcard-flip-hint{flex-shrink:0;font-family:var(--font-body);font-size:13px;color:#515d78}.flashcard-back .flashcard-flip-hint{color:#15203b}.flashcard-content{width:100%;margin:auto 0;flex:0 1 auto;min-height:0;overflow-y:auto;scrollbar-width:none}.flashcard-content::-webkit-scrollbar{display:none}.flashcard-front .flashcard-content{font-family:var(--font-display);font-size:clamp(18px,3.6dvh,25px);font-weight:700;line-height:1.3}.flashcard-back .flashcard-content{font-family:var(--font-display);font-size:clamp(22px,5dvh,39px);font-weight:800;line-height:1.1}.flashcard-content .rich-text>:first-child{margin-top:0}.flashcard-content .rich-text>:last-child{margin-bottom:0}.flashcard-content .rich-text .mark{background:linear-gradient(transparent 55%,#ffd84d 55% 92%,transparent 92%);padding:0 2px}.flashcard-back .flashcard-content .rich-text .mark{background:none;text-decoration:underline}.flashcard.result-known .flashcard-face{border-color:#0e7c5a;box-shadow:6px 6px #0e7c5a}.flashcard.result-unknown .flashcard-face{border-color:#b3282d;box-shadow:6px 6px #b3282d}.flashcard-bottom{flex-shrink:0}.flashcard-prompt{text-align:center;font-size:13px;color:var(--text-dim);margin-bottom:8px}.flashcard-actions{display:flex;gap:12px}.flashcard-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:clamp(14px,2.6dvh,22px) 12px;border-radius:999px;border:var(--border-w) solid var(--border);background:var(--surface);color:var(--text);font-family:var(--font-display);font-size:17px;font-weight:700;cursor:pointer;transition:transform .1s,opacity .15s}.flashcard-btn:active{transform:scale(.97)}.flashcard-btn.unknown{border-color:var(--coral);background:var(--coral-soft);color:var(--coral)}.flashcard-btn.known{border-color:var(--green);background:var(--green-soft);color:var(--green)}.flashcard-bottom .feedback-panel{margin-top:0;padding:10px 14px;max-height:24dvh;overflow-y:auto;scrollbar-width:none}.flashcard-bottom .feedback-panel::-webkit-scrollbar{display:none}.flashcard-bottom .feedback-title{font-size:15px}.flashcard-bottom .feedback-detail{margin-top:4px;font-size:13px;line-height:1.4}@media (prefers-reduced-motion: reduce){.flashcard{transition:none}}.feedback-panel{margin-top:20px;border-radius:var(--radius);padding:18px 20px}.feedback-panel.correct{background:var(--green-soft);border:var(--border-w) solid var(--green)}.feedback-panel.wrong{background:var(--coral-soft);border:var(--border-w) solid var(--coral)}.feedback-title{font-family:var(--font-display);font-weight:800;font-size:16px;display:flex;align-items:center;gap:8px}.feedback-panel.correct .feedback-title{color:var(--green)}.feedback-panel.wrong .feedback-title{color:var(--coral)}.feedback-detail{margin-top:8px;font-size:14px;color:var(--text-dim);line-height:1.5}.study-footer{display:flex;justify-content:flex-end;margin-top:24px}.completion-screen{text-align:center;padding:40px 20px}.study-shell--complete{display:flex;flex-direction:column;justify-content:center;min-height:calc(100dvh - 190px)}.study-shell--complete .completion-screen{padding:20px}.confetti-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;height:100dvh;pointer-events:none;z-index:1000}.confetti-canvas.confetti-back{z-index:35}.completion-screen .emoji{font-size:52px}.completion-stats{display:flex;justify-content:center;gap:28px;margin:24px 0;flex-wrap:wrap}.completion-stats div{text-align:center}.completion-stats .num{font-family:var(--font-display);font-size:26px;font-weight:800}.completion-stats .lbl{font-size:12px;color:var(--text-faint)}.review-group{margin-bottom:22px}.review-group h4{font-size:13px;color:var(--text-faint);margin-bottom:8px;font-weight:600}.review-item{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:12px;padding:12px 16px;margin-bottom:8px}.review-item .rname{font-weight:600;font-size:14.5px}.review-item .rsub{font-size:12px;color:var(--text-faint);margin-top:2px}.review-item .rleft{min-width:0;display:flex;align-items:center;gap:10px}.review-item .rdot{width:10px;height:10px;border-radius:50%;background:var(--text-faint);flex-shrink:0}.review-item.is-overdue{border-color:var(--coral);border-left:var(--border-w) solid var(--coral);background:var(--coral-soft)}.review-item.is-overdue .rdot{background:var(--coral)}.review-item.is-overdue .rsub{color:var(--coral);font-weight:600}.review-item.is-today{border-color:var(--gold);border-left:var(--border-w) solid var(--gold);background:var(--gold-soft)}.review-item.is-today .rdot{background:var(--gold)}.review-item.is-done{border-color:var(--green);border-left:var(--border-w) solid var(--green);background:var(--green-soft)}.review-item.is-done .rdot{background:var(--green)}.review-item.is-done .rsub{color:var(--green);font-weight:600}.review-item.is-done .rname{color:var(--text-dim)}.review-check{color:var(--green);font-size:18px;font-weight:700}.review-delete-btn{background:none;border:none;cursor:pointer;font-size:14px;line-height:1;color:var(--text-faint);padding:4px;border-radius:6px}.sub-row.is-overdue{border-left:var(--border-w) solid var(--coral);background:var(--coral-soft)}.sub-row.is-today{border-left:var(--border-w) solid var(--gold);background:var(--gold-soft)}.sub-row.is-done{border-left:var(--border-w) solid var(--green);background:var(--green-soft)}.sub-row.is-done .sub-status{color:var(--green)}.sub-row.is-completed-not-done{border:var(--border-w) solid var(--coral);background:var(--coral-soft)}.sub-row.is-completed-not-done .sub-status{color:var(--coral)}.sub-row.is-completed-done{border:var(--border-w) solid var(--green);background:var(--green-soft)}.sub-row.is-completed-done .sub-status{color:var(--green)}.badge-review.done{background:var(--green)}.badge-review.today{background:var(--gold);color:#15203b}.reviews-widget.is-overdue{background:var(--coral-soft)}.reviews-widget.is-overdue .count{color:var(--coral)}.reviews-widget.is-overdue .muted{color:var(--coral);font-weight:600}.reviews-widget.is-done{background:var(--green-soft)}.reviews-widget.is-done .count{color:var(--green)}.reviews-widget.is-done .muted{color:var(--green);font-weight:600}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-top:18px}.stat-box{background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:var(--radius);padding:18px;text-align:center;box-shadow:var(--ink-shadow-sm)}.stat-box .num{font-family:var(--font-display);font-size:24px;font-weight:800}.stat-box .lbl{font-size:12px;color:var(--text-faint);margin-top:4px}.empty-state{text-align:center;padding:50px 20px;color:var(--text-faint);font-size:14.5px}.empty-state .emoji{font-size:40px;margin-bottom:12px}.xp-display-row{display:flex;justify-content:space-between;font-size:14px;margin-bottom:8px}.rich-text h3,.rich-text h4{margin:14px 0 8px;font-size:1.25em}.rich-text hr{border:none;border-top:var(--border-w) solid var(--border);margin:16px 0}.app-alert{position:fixed;top:calc(env(safe-area-inset-top,0px) + 8px);left:12px;right:12px;z-index:1000;background:var(--coral);color:#fff;border-radius:12px;padding:10px 38px 10px 14px;font-size:13.5px;line-height:1.4;box-shadow:var(--ink-shadow-sm)}.auto-backup-status{margin-top:12px;padding:10px 12px;border-radius:10px;background:var(--surface-2);font-size:13px;line-height:1.45}.app-alert-close{position:absolute;top:6px;right:6px;background:transparent;border:none;color:#fff;font-size:16px;width:28px;height:28px;cursor:pointer}.rich-text ul{margin:8px 0;padding-left:22px}.rich-text p{margin:0 0 10px}.rich-text p:last-child{margin-bottom:0}.rich-text code{background:var(--surface-2);padding:1px 6px;border-radius:5px;font-size:.9em}.rich-text .rich-table-wrap{overflow-x:auto;margin:10px 0;-webkit-overflow-scrolling:touch}.rich-text .rich-table-wrap:last-child{margin-bottom:0}.rich-text table.rich-table{border-collapse:collapse;width:100%;font-size:.92em}.rich-text table.rich-table th,.rich-text table.rich-table td{border:var(--border-w) solid var(--border);padding:6px 10px;text-align:left;white-space:nowrap}.rich-text table.rich-table th{background:var(--surface-2);font-weight:700}.rich-text .math{font-family:var(--font-body);font-style:italic}.rich-text .math sup,.rich-text .math sub{font-size:.68em;line-height:0}.rich-text .math .upright{font-style:normal;font-family:var(--font-body)}.rich-text .math .mbold{font-weight:700}.rich-text .math-block{font-family:var(--font-body);font-style:italic;font-size:1.2em;text-align:center;margin:14px 0;padding:4px 0}.rich-text .math .frac{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;vertical-align:middle;margin:0 2px;text-align:center;font-size:.92em;line-height:1.25}.rich-text .math .frac-num{padding:0 4px 2px;border-bottom:1.3px solid currentColor}.rich-text .math .frac-den{padding:2px 4px 0}.rich-text .math-block .frac{font-size:.85em}.rich-text .math .sqrt{display:inline-flex;align-items:flex-start;margin:0 1px}.rich-text .math .sqrt-sign{font-size:1.05em;margin-right:-1px;transform:scaleY(1.05)}.rich-text .math .sqrt-idx{font-size:.6em;align-self:flex-start;margin:-2px -3px 0 0}.rich-text .math .sqrt-body{border-top:1.3px solid currentColor;padding:1px 3px 0;margin-top:3px}.rich-text .math .binom-col{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;font-size:.9em;line-height:1.1;vertical-align:middle;margin:0 1px}.rich-text .math .boxed{border:1.3px solid currentColor;border-radius:4px;padding:2px 9px;display:inline-block}.rich-text .math .bigop{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;vertical-align:middle;line-height:1.05;margin:0 2px}.rich-text .math .bigop-glyph{font-size:1.5em;font-style:normal}.rich-text .math .bigop-sup,.rich-text .math .bigop-sub{font-size:.52em;font-style:normal}.rich-text .math-block .bigop-glyph{font-size:1.8em}.rich-text .math .matrix-wrap{display:inline-flex;align-items:center;vertical-align:middle;margin:0 2px}.rich-text .math .matrix-brk{font-size:1.7em;line-height:1;padding:0 3px;font-style:normal;transform:scaleY(1.15)}.rich-text .math table.matrix{border-collapse:collapse;display:inline-table;vertical-align:middle}.rich-text .math table.matrix td{padding:2px 10px;text-align:center}.rich-text .math table.matrix.cases td{text-align:left;padding:2px 8px}.rich-text .math table.matrix.cases td:first-child{padding-right:16px}.ai-fab-wrap{position:fixed;right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(70px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;align-items:center;gap:4px;z-index:60;pointer-events:none}.ai-fab{pointer-events:auto;width:56px;height:56px;border-radius:50%;background:#15203b;border:var(--border-w) solid var(--gold);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:24px;cursor:pointer;box-shadow:0 10px 24px -8px var(--shell-shadow);transition:transform .15s,opacity .15s}.ai-fab:active{transform:scale(.94)}.ai-fab-label{font-size:10.5px;font-weight:700;line-height:1;white-space:nowrap;color:#15203b;background:var(--gold);border:var(--border-w) solid #15203b;border-radius:999px;padding:3px 8px}html.exercise-lock .ai-fab-wrap{display:none}@media (min-width: 640px) and (pointer: fine){.ai-fab-wrap{position:absolute}}.ai-chat-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#080a0a99;display:flex;align-items:flex-end;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}@media (min-width: 640px) and (pointer: fine){.ai-chat-overlay{align-items:center;position:absolute;border-radius:32px}}.ai-chat-panel{display:flex;flex-direction:column;width:100%;max-width:540px;height:min(86dvh,720px);background:var(--bg-elev);border:var(--border-w) solid var(--ink);border-radius:20px 20px 0 0;animation:slideup .2s ease;overflow:hidden}@media (min-width: 600px) and (pointer: fine){.ai-chat-panel{border-radius:20px}}.ai-chat-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:16px 10px;border-bottom:var(--border-w) solid var(--border)}.ai-chat-title{font-family:var(--font-display);font-weight:800;font-size:17px;letter-spacing:-.01em}.ai-icon-btn{width:36px;height:36px;border-radius:50%;border:none;background:transparent;color:var(--text-dim);font-size:17px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ai-icon-btn:active{background:var(--surface-2)}.ai-chat-messages{flex:1;min-height:0;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.ai-bubble{max-width:86%;padding:12px 14px;border-radius:16px;font-size:14.5px;line-height:1.5;word-break:break-word}.ai-bubble.user{align-self:flex-end;background:var(--teal);color:var(--on-teal);border-bottom-right-radius:4px}.ai-bubble.assistant{align-self:flex-start;background:var(--surface);border:var(--border-w) solid var(--ink);border-bottom-left-radius:4px}.ai-bubble .rich-text>:first-child{margin-top:0}.ai-bubble .rich-text>:last-child{margin-bottom:0}.ai-bubble.user .rich-text code,.ai-bubble.user .rich-text table.rich-table th{background:#ffffff38}.ai-bubble.user .rich-text table.rich-table th,.ai-bubble.user .rich-text table.rich-table td{border-color:#ffffff59}.ai-bubble.error{border-color:var(--coral);background:var(--coral-soft);color:var(--coral)}.ai-typing{display:inline-flex;gap:4px;align-items:center;padding:2px 0}.ai-typing span{width:7px;height:7px;border-radius:50%;background:var(--text-faint);animation:ai-typing-bounce 1.1s infinite ease-in-out}.ai-typing span:nth-child(2){animation-delay:.15s}.ai-typing span:nth-child(3){animation-delay:.3s}@keyframes ai-typing-bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}.ai-clear-link{flex-shrink:0;align-self:center;margin-bottom:8px;background:none;border:none;color:var(--text-faint);font-size:12.5px;cursor:pointer}.ai-clear-link:active{color:var(--coral)}.ai-chat-input-row{flex-shrink:0;display:flex;align-items:flex-end;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));border-top:var(--border-w) solid var(--border)}.ai-chat-input{flex:1;resize:none;max-height:120px;padding:10px 14px;border-radius:18px;border:var(--border-w) solid var(--border);background:var(--surface);color:var(--text);font-family:inherit;font-size:14.5px;line-height:1.4}.ai-chat-input:focus{outline:2px solid var(--teal);outline-offset:1px}.rich-editable.ai-chat-input{width:auto;min-height:42px;max-height:120px;overflow-y:auto;border-radius:18px;padding:10px 14px;font-size:14.5px;line-height:1.4}.ai-send-btn{flex-shrink:0;width:42px;height:42px;border-radius:50%;border:none;background:var(--teal);color:var(--on-teal);font-size:16px;cursor:pointer}.ai-send-btn:disabled{opacity:.4;cursor:not-allowed}.ai-mic-btn{flex-shrink:0;width:42px;height:42px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--teal);border:var(--border-w) solid var(--border);touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;transition:transform var(--dur, .16s) var(--ease-out, ease-out),background-color var(--dur, .16s) var(--ease-out, ease-out)}.ai-mic-btn:active{transform:scale(.96)}.ai-mic-btn.is-recording{background:var(--coral);border-color:var(--coral);color:#fff;animation:ai-mic-pulse 1.4s ease-out infinite}@keyframes ai-mic-pulse{0%{box-shadow:0 0 rgba(var(--coral-rgb),.55)}to{box-shadow:0 0 0 12px rgba(var(--coral-rgb),0)}}@media (prefers-reduced-motion: reduce){.ai-mic-btn.is-recording{animation:none}}.ai-voice-note{flex-shrink:0;margin:0 12px 6px;padding:8px 12px;border-radius:12px;font-size:12.5px;font-weight:600;color:var(--text);background:var(--surface-2)}.ai-settings-body{flex:1;min-height:0;overflow-y:auto;padding:18px 18px 24px}.welcome-app{justify-content:flex-start;height:100vh;height:100dvh;overflow:hidden}.welcome-shell{display:flex;flex-direction:column;gap:14px;padding:calc(20px + env(safe-area-inset-top,0px)) 18px calc(20px + env(safe-area-inset-bottom,0px));flex:1;min-height:0}.welcome-head{text-align:center;flex-shrink:0}.welcome-head .page-title{font-size:24px}.welcome-mark{width:52px;height:52px;font-size:26px;border-radius:15px;margin:0 auto 12px}.welcome-head .page-desc{margin-top:6px}.lang-picker{display:flex;flex-direction:column;gap:12px;min-height:0;flex:1}.lang-search{display:flex;align-items:center;gap:8px;background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:12px;padding:0 12px;box-shadow:var(--ink-shadow-sm)}.lang-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;color:var(--text);font:inherit;font-size:15px;padding:12px 0}.lang-clear{background:none;border:none;color:var(--text-faint);font-size:15px;cursor:pointer;padding:4px}.lang-list{overflow-y:auto;-webkit-overflow-scrolling:touch;border:var(--border-w) solid var(--ink);border-radius:12px;background:var(--surface);max-height:46vh;max-height:46dvh;min-height:180px;flex:1}.welcome-shell .lang-list{max-height:none;min-height:0}.lang-group{position:sticky;top:0;z-index:1;font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);background:var(--surface-2);padding:6px 12px}.lang-row{display:flex;align-items:center;gap:12px;width:100%;background:none;border:none;border-bottom:1px solid var(--surface-2);padding:11px 12px;text-align:left;cursor:pointer;color:var(--text);font:inherit}.lang-row:last-child{border-bottom:none}.lang-row.selected{background:rgba(var(--teal-rgb),.1)}.lang-flag{font-size:24px;line-height:1;width:30px;text-align:center;flex-shrink:0}.lang-name{flex:1;min-width:0;font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lang-tag{font-size:11.5px;color:var(--text-faint);flex-shrink:0}.lang-check{color:var(--teal);font-weight:800;flex-shrink:0}.lang-empty{padding:24px 12px;text-align:center;color:var(--text-faint);font-size:14px}.lang-app-language{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;font-weight:600}.lang-app-language select{background:var(--surface);color:var(--text);font:inherit;font-weight:500;border:var(--border-w) solid var(--ink);border-radius:10px;padding:7px 10px}.lang-summary{font-size:14px;font-weight:600;text-align:center}.lang-summary .muted{font-weight:400;font-size:12.5px;margin-top:4px}.lang-picker .form-actions{margin-top:0}.lang-current{display:flex;align-items:center;gap:12px}.lang-current .lang-flag{font-size:30px;width:36px}.restore-compare{margin-top:12px;padding:10px 12px;border-radius:10px;background:var(--surface-2);color:var(--text);font-size:13px;line-height:1.6}.restore-warning{margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--coral-soft);color:var(--coral);font-size:13px;font-weight:600;line-height:1.5}.ai-chat-messages-wrap{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.ai-chat-messages{overscroll-behavior:contain}.ai-chat-jump{position:absolute;left:50%;bottom:12px;transform:translate(-50%);width:40px;height:40px;border-radius:50%;background:#15203b;color:var(--gold);border:var(--border-w) solid var(--gold);font-size:20px;font-weight:800;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px -6px var(--shell-shadow);animation:ai-jump-in .15s ease}@keyframes ai-jump-in{0%{opacity:0}to{opacity:1}}.rich-editable.ai-source-field{height:clamp(190px,36dvh,300px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}@media (hover: hover) and (pointer: fine){.btn-primary:hover{background:var(--teal-dark)}.btn-gold:hover{filter:brightness(.95)}.btn-ghost:hover{color:var(--text);border-color:var(--text-faint)}.btn-danger:hover{filter:brightness(.92)}.content-card:hover{border-color:var(--ink);box-shadow:var(--ink-shadow-sm);transform:translate(-1px,-1px)}.create-content-card:hover{color:var(--text)}.menu-btn:hover{background:var(--surface-2);color:var(--text)}.menu-pop button:hover{background:var(--border)}.menu-pop button:disabled:hover{background:none}.back-btn:hover{background:#1f2e52}.sub-drag-item.drag-active .sub-row:hover{border-color:inherit}.sub-order-btns button:hover{color:var(--text)}.ex-remove:hover{color:var(--coral)}.format-toolbar-btn:hover{background:var(--surface-2)}.format-toolbar-btn:disabled:hover{background:transparent}.format-toolbar-swatch-none:hover{color:var(--coral)}.option-btn:hover{border-color:var(--ink)}.review-delete-btn:hover{color:var(--coral);background:var(--coral-soft)}}:root{--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-press: 90ms;--dur-fast: .16s;--dur: .24s;--dur-slow: .36s}html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}*{-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior-y:none}button,a,label,.btn,.content-card,.create-content-card,.sub-row,.option-btn,.bottom-nav a,.menu-btn,.back-btn,.icon-opt,.color-opt,.review-toggle,.flashcard-btn,.lang-row,.review-delete-btn,.ai-icon-btn,.ai-send-btn,.ai-clear-link,.ai-copy-btn,.app-alert-close{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,select,[contenteditable=true],.rich-editable{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.btn,.content-card,.create-content-card,.sub-row,.option-btn,.bottom-nav a,.menu-btn,.menu-pop button,.back-btn,.icon-opt,.color-opt,.review-toggle,.flashcard-btn,.lang-row,.review-delete-btn,.ai-icon-btn,.ai-send-btn,.ai-copy-btn,.ex-remove,.sub-order-btns button,.app-alert-close{transition:transform var(--dur) var(--ease-out),background-color var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),color var(--dur) var(--ease-out),opacity var(--dur) var(--ease-out),filter var(--dur) var(--ease-out)}.btn:active:not(:disabled),.back-btn:active,.flashcard-btn:active:not(:disabled),.ai-send-btn:active:not(:disabled),.review-toggle:active{transform:scale(.96);transition-duration:var(--dur-press)}.content-card:active,.create-content-card:active,.sub-row:active,.lang-row:active{background-color:var(--surface-2);transition-duration:var(--dur-press)}.option-btn:active:not(:disabled){background-color:var(--surface-2);transition-duration:var(--dur-press)}.menu-btn:active,.icon-opt:active,.color-opt:active,.ai-icon-btn:active,.review-delete-btn:active,.ex-remove:active,.sub-order-btns button:active:not(:disabled),.app-alert-close:active,.ai-copy-btn:active{transform:scale(.9);transition-duration:var(--dur-press)}.bottom-nav a:active{transform:scale(.92);transition-duration:var(--dur-press)}.menu-pop button:active:not(:disabled){background:var(--border);transition-duration:var(--dur-press)}.content-card:active{box-shadow:none}.view{animation:page-in var(--dur-slow) var(--ease-out) both}@keyframes page-in{0%{opacity:0}to{opacity:1}}.view{animation-fill-mode:backwards}.content-grid>*,.sub-list>*,.review-item,.stats-grid>*{animation:item-in var(--dur-slow) var(--ease-out) backwards}.content-grid>*:nth-child(2),.sub-list>*:nth-child(2),.review-item:nth-child(2),.stats-grid>*:nth-child(2){animation-delay:35ms}.content-grid>*:nth-child(3),.sub-list>*:nth-child(3),.review-item:nth-child(3),.stats-grid>*:nth-child(3){animation-delay:70ms}.content-grid>*:nth-child(4),.sub-list>*:nth-child(4),.review-item:nth-child(4),.stats-grid>*:nth-child(4){animation-delay:105ms}.content-grid>*:nth-child(5),.sub-list>*:nth-child(5),.review-item:nth-child(5),.stats-grid>*:nth-child(5){animation-delay:.14s}.content-grid>*:nth-child(6),.sub-list>*:nth-child(6),.review-item:nth-child(6),.stats-grid>*:nth-child(6){animation-delay:175ms}.content-grid>*:nth-child(n+7),.sub-list>*:nth-child(n+7),.review-item:nth-child(n+7),.stats-grid>*:nth-child(n+7){animation-delay:.21s}@keyframes item-in{0%{opacity:0}to{opacity:1}}.modal-overlay,.ai-chat-overlay{backdrop-filter:none;-webkit-backdrop-filter:none}.modal-overlay,.ai-chat-overlay{animation:overlay-in var(--dur) var(--ease-out) both}@keyframes overlay-in{0%{background-color:#080a0a00}}.modal-panel{animation:sheet-in var(--dur-slow) var(--ease-out) both}@keyframes sheet-in{0%{opacity:0;transform:translate3d(0,48px,0)}to{opacity:1;transform:none}}.ai-chat-panel{animation:ai-sheet-up .38s cubic-bezier(.16,1,.3,1) both;will-change:transform;backface-visibility:hidden}@keyframes ai-sheet-up{0%{transform:translate3d(0,100%,0)}to{transform:translateZ(0)}}@media (min-width: 600px) and (pointer: fine){@keyframes sheet-in{0%{opacity:0;transform:translate3d(0,16px,0) scale(.97)}to{opacity:1;transform:none}}}.menu-pop{transform-origin:top right;animation:pop-in var(--dur-fast) var(--ease-out) both}@keyframes pop-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}.feedback-panel{animation:rise-in var(--dur) var(--ease-out) both}@keyframes rise-in{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:none}}.option-btn.correct{animation:answer-pop var(--dur-slow) var(--ease-out)}.option-btn.wrong{animation:answer-shake .38s var(--ease-in-out)}@keyframes answer-pop{0%{transform:scale(1)}40%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes answer-shake{0%,to{transform:none}20%{transform:translate(-5px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.progress-bar>div{transition:width .52s var(--ease-out),background-color .26s var(--ease-out)}.progress-bar.is-combo>div{background-color:#ff7a00}.flashcard{transition-timing-function:var(--ease-in-out)}.bottom-nav a .ic{transition:transform var(--dur) var(--ease-out)}.bottom-nav a.active .ic{transform:translateY(-1px) scale(1.08)}.ai-bubble.is-new{animation:rise-in var(--dur) var(--ease-out) both}.ai-fab{transition:transform var(--dur) var(--ease-out),opacity var(--dur) var(--ease-out)}.ai-fab:active{transform:scale(.92);transition-duration:var(--dur-press)}.ai-chat-jump{transition:transform var(--dur) var(--ease-out)}.ai-chat-jump:active{transform:translate(-50%) scale(.9);transition-duration:var(--dur-press)}html.theme-transition,html.theme-transition *,html.theme-transition *:before,html.theme-transition *:after{transition:background-color .32s var(--ease-out),border-color .32s var(--ease-out),color .32s var(--ease-out),fill .32s var(--ease-out),box-shadow .32s var(--ease-out)!important}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0ms!important;transition-duration:.01ms!important}}.ai-verify-note{font-size:12.5px;line-height:1.5;border-radius:10px;padding:10px 12px;margin-bottom:14px;border:var(--border-w) solid var(--green);background:var(--green-soft);color:var(--text)}.ai-verify-note.is-warning{border-color:var(--coral);background:var(--coral-soft)}.ai-send-btn.is-stop{background:var(--coral)}.ai-stop-icon{display:block;width:14px;height:14px;border-radius:3px;background:#fff}.ai-bubble-actions{display:flex;gap:6px;flex-wrap:wrap}.ai-interrupted{margin-top:6px;font-size:11.5px;font-weight:600;color:var(--text-faint)}.ai-bubble.interrupted{opacity:.92}.ai-bubble.user.is-editing{outline:2px dashed var(--gold);outline-offset:2px}.ai-editing-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 12px 6px;padding:8px 12px;border-radius:10px;background:var(--gold-soft);border:var(--border-w) solid var(--gold);font-size:12.5px;line-height:1.35;color:var(--text);animation:rise-in var(--dur, .24s) ease both}.ai-editing-bar button{flex-shrink:0;background:none;border:none;font:inherit;font-weight:700;color:var(--coral);cursor:pointer;padding:4px}.ai-run-actions{position:relative;flex-shrink:0}.ai-send-btn.is-stop.is-open{background:var(--text-faint);color:#fff;font-size:17px;font-weight:700}.ai-run-menu{position:absolute;right:0;bottom:calc(100% + 12px);display:flex;flex-direction:column;align-items:flex-end;gap:12px;z-index:5}.ai-run-option{display:flex;align-items:center;gap:10px;animation:ai-run-in var(--dur-fast, .16s) var(--ease-out, ease-out) both}.ai-run-option:nth-child(1){animation-delay:40ms}.ai-run-label{font-size:12.5px;font-weight:700;white-space:nowrap;color:var(--text);background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:999px;padding:5px 11px;box-shadow:0 6px 16px -8px var(--shell-shadow)}.ai-run-btn{width:42px;height:42px;border-radius:50%;border:none;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px -8px var(--shell-shadow);transition:transform var(--dur, .24s) var(--ease-out, ease-out);touch-action:manipulation;-webkit-user-select:none;user-select:none}.ai-run-btn:active{transform:scale(.9);transition-duration:var(--dur-press, 90ms)}.ai-run-btn.is-stop{background:var(--coral)}.ai-run-btn.is-edit{background:var(--teal);color:var(--on-teal)}@keyframes ai-run-in{0%{opacity:0;transform:translate3d(0,10px,0) scale(.9)}to{opacity:1;transform:none}}.ai-run-status{margin-top:8px;font-size:12px;font-weight:600;color:var(--text-faint);animation:ai-status-pulse 1.6s ease-in-out infinite}@keyframes ai-status-pulse{0%,to{opacity:.55}50%{opacity:1}}.ai-gen-status{font-size:12.5px;font-weight:600;color:var(--text-faint);margin:6px 0;animation:ai-status-pulse 1.6s ease-in-out infinite}.select-menu-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;min-height:38px;padding:7px 12px;border-radius:10px;cursor:pointer;background:var(--surface-2);color:var(--text);font:inherit;font-size:14px;font-weight:600;border:var(--border-w) solid var(--border);max-width:100%;touch-action:manipulation;-webkit-user-select:none;user-select:none}.select-menu-btn.is-wide{width:100%}.select-menu-btn:active{background:var(--border)}.select-menu-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-menu-caret{color:var(--text-faint);font-size:12px}.select-menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#080a0a80;display:flex;align-items:center;justify-content:center;padding:24px;animation:overlay-in var(--dur, .24s) var(--ease-out, ease-out) both}.select-menu-sheet{width:100%;max-width:360px;max-height:70vh;overflow-y:auto;background:var(--surface);color:var(--text);border:var(--border-w) solid var(--ink);border-radius:18px;padding:8px;box-shadow:0 20px 50px -20px var(--shell-shadow);animation:pop-in var(--dur-fast, .16s) var(--ease-out, ease-out) both}.select-menu-title{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);padding:8px 12px 6px}.select-menu-option{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:13px 12px;border:none;border-radius:12px;background:none;color:var(--text);font:inherit;font-size:15px;font-weight:500;text-align:left;cursor:pointer;touch-action:manipulation}.select-menu-option:active{background:var(--surface-2)}.select-menu-option.is-selected{background:rgba(var(--teal-rgb),.12);font-weight:700}.select-menu-check{color:var(--teal);font-weight:800}.ex-type-badge{display:inline-flex;align-items:center;min-height:32px;padding:5px 12px;border-radius:999px;background:var(--surface-2);color:var(--text-faint);font-size:13px;font-weight:700;white-space:nowrap}.gen-config{border:none;margin:0;padding:0;min-width:0;display:contents}.gen-config:disabled>*{opacity:.55;transition:opacity .2s ease}.gen-config:disabled .rich-editable,.gen-config:disabled label,.gen-config:disabled button{pointer-events:none;cursor:not-allowed}.gen-config:disabled .rich-editable{-webkit-user-modify:read-only}html:not(.exercise-lock) .main>.view{padding-bottom:104px}.weather-card{display:flex;flex-direction:column;gap:12px;margin:-12px 0 28px;padding:16px 18px}.weather-card-row{display:flex;align-items:center;gap:14px}.weather-card-icon{font-size:34px;line-height:1;flex-shrink:0}.weather-card-text{min-width:0}.weather-card-title{font-family:var(--font-display);font-weight:700;font-size:17px;color:var(--text)}.weather-card-sub{font-size:12.5px;color:var(--text-dim);line-height:1.4;margin-top:2px}.weather-card .btn{align-self:flex-start}.weather-card-toggle{justify-content:space-between;margin-top:0}.weather-layer{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;height:100dvh;pointer-events:none;z-index:50}html.exercise-lock .weather-layer{opacity:.6}.weather-sun{overflow:hidden;animation:weather-fade-in 1.6s ease-out both}.weather-sun-glow{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 100% 0%,#ffce6e4d,#ffce6e00 55%);animation:weather-glow 9s ease-in-out infinite alternate}.weather-beam{position:absolute;top:0;right:0;width:170vmax;height:var(--h, 70px);transform-origin:100% 0;transform:rotate(var(--a));background:linear-gradient(to left,#ffd68242,#ffd6821a 35%,#ffd68200 75%);filter:blur(8px);opacity:.7;animation:weather-beam var(--t, 11s) ease-in-out infinite alternate}.weather-beam.b1{--a: -22deg;--h: 60px;--t: 10s}.weather-beam.b2{--a: -34deg;--h: 100px;--t: 13s;animation-delay:-4s}.weather-beam.b3{--a: -47deg;--h: 46px;--t: 9s;animation-delay:-7s}.weather-beam.b4{--a: -60deg;--h: 84px;--t: 14s;animation-delay:-2s}@keyframes weather-beam{0%{transform:rotate(var(--a));opacity:.35}to{transform:rotate(calc(var(--a) - 3deg));opacity:.9}}@keyframes weather-glow{0%{opacity:.65}to{opacity:1}}@keyframes weather-fade-in{0%{opacity:0}to{opacity:1}}html[data-theme=dark] .weather-sun{opacity:.55}.weather-rain,.weather-snow,.weather-nrain,.weather-nsnow{animation:weather-fade-in 1.2s ease-out both}.weather-night{overflow:hidden;animation:weather-fade-in 1.8s ease-out both;background:linear-gradient(180deg,#08103457,#0a144026 55%,#0a14400d)}html[data-theme=dark] .weather-night{background:linear-gradient(180deg,#02061a75,#040a2433 55%,#040a240f)}.wn-moon{position:absolute;top:9%;right:11%;width:58px;height:58px;border-radius:50%;background:radial-gradient(circle at 62% 30%,rgba(190,186,160,.55) 0 4px,transparent 5px),radial-gradient(circle at 36% 58%,rgba(190,186,160,.5) 0 6px,transparent 7px),radial-gradient(circle at 66% 68%,rgba(190,186,160,.4) 0 3px,transparent 4px),radial-gradient(circle at 38% 34%,#fffef4,#f3f0d8 58%,#d8d5ba);box-shadow:0 0 18px 5px #fffad766,0 0 70px 26px #becdff42;animation:wn-moon 9s ease-in-out infinite alternate}.is-nrain .wn-moon{opacity:.6}@keyframes wn-moon{0%{transform:scale(.97)}to{transform:scale(1.03)}}.wn-cloud{position:absolute;left:0;width:260px;height:84px;opacity:0;will-change:transform;background:radial-gradient(ellipse 27% 40% at 30% 56%,var(--wn-c) 0,transparent 100%),radial-gradient(ellipse 28% 46% at 50% 46%,var(--wn-c) 0,transparent 100%),radial-gradient(ellipse 27% 38% at 70% 57%,var(--wn-c) 0,transparent 100%);animation:wn-drift var(--d, 80s) linear infinite;animation-delay:var(--dl, 0s)}.is-nrain{--wn-c: rgba(14, 22, 52, .62)}.is-nsnow{--wn-c: rgba(104, 128, 190, .34)}.wn-cloud.c1{top:5%;--d: 74s;--dl: -20s}.wn-cloud.c2{top:12%;width:320px;height:96px;--d: 96s;--dl: -58s}.wn-cloud.c3{top:8%;width:220px;height:72px;--d: 64s;--dl: -4s}.wn-cloud.c4{top:16%;width:300px;--d: 84s;--dl: -40s}@keyframes wn-drift{0%{transform:translate3d(-340px,0,0);opacity:0}8%,92%{opacity:1}to{transform:translate3d(100vw,0,0);opacity:0}}@media (prefers-reduced-motion: reduce){.weather-layer{display:none}}.level-progress{max-width:340px;margin:0 auto 22px;text-align:left;animation:fadein .4s ease both}.level-progress-row{display:flex;justify-content:space-between;align-items:baseline;font-size:14px}.level-progress-bar{height:12px;margin-top:8px}.level-progress-bar>div{transition:width 2.2s var(--ease-out)}.level-bump{display:inline-block;animation:level-bump .6s var(--ease-out)}@keyframes level-bump{0%{transform:scale(1)}40%{transform:scale(1.35);color:var(--gold)}to{transform:scale(1)}}.levelup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:24px;background:#0a10208c;animation:wheel-fade .2s ease-out both}.levelup-card{width:min(340px,100%);text-align:center;padding:28px 24px 22px;background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:24px;box-shadow:var(--ink-shadow);animation:levelup-card-in .45s var(--ease-out) both}.levelup-badge-wrap{position:relative;width:150px;height:150px;margin:0 auto 14px}.levelup-rays{position:absolute;top:-30px;right:-30px;bottom:-30px;left:-30px;border-radius:50%;background:repeating-conic-gradient(from 0deg,#ffd84d8c,#ffd84d8c 10deg,#ffd84d00 10deg,#ffd84d00 30deg);-webkit-mask:radial-gradient(circle,#000 30%,transparent 70%);mask:radial-gradient(circle,#000 30%,transparent 70%);animation:levelup-rays 8s linear infinite,wheel-fade .6s ease-out both}.levelup-badge{position:absolute;top:18px;right:18px;bottom:18px;left:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 30%,#fff3b0,var(--gold) 55%,#e8a800);border:var(--border-w) solid var(--ink);box-shadow:0 8px 24px #e8a80073;animation:levelup-spin .9s var(--ease-out) .1s both}.levelup-star{position:absolute;top:10px;font-size:20px}.levelup-num{font-family:var(--font-display);font-weight:800;font-size:52px;color:#15203b;line-height:1;margin-top:8px}.levelup-title{font-family:var(--font-display);font-weight:800;font-size:24px;color:var(--text)}.levelup-sub{font-size:14px;color:var(--text-dim);margin:6px 0 18px}.levelup-btn{min-width:160px}@keyframes levelup-card-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}@keyframes levelup-spin{0%{transform:scale(.2) rotateY(0);opacity:0}60%{transform:scale(1.12) rotateY(540deg);opacity:1}to{transform:scale(1) rotateY(720deg)}}@keyframes levelup-rays{to{transform:rotate(360deg)}}.combo-badge{position:fixed;left:50%;top:calc(12px + env(safe-area-inset-top,0px));z-index:45;transform:translate(-50%);pointer-events:none;white-space:nowrap;font-family:var(--font-display);font-weight:800;font-size:16px;color:#b34700;background:#fff1d6;border:var(--border-w) solid #ff7a00;border-radius:999px;padding:6px 14px;box-shadow:3px 3px #ff7a00;animation:combo-pop 1.5s var(--ease-out) both}.combo-badge.is-big{font-size:19px;padding:7px 16px}.combo-badge.is-epic{font-size:21px;padding:8px 18px;color:#15203b;border-color:#e8a800;box-shadow:3px 3px #e8a800;background:linear-gradient(135deg,#fff3b0,var(--gold))}@keyframes combo-pop{0%{opacity:0;transform:translate(-50%) translateY(10px) scale(.6)}18%{opacity:1;transform:translate(-50%) translateY(0) scale(1.12)}30%{transform:translate(-50%) scale(1)}75%{opacity:1;transform:translate(-50%) translateY(-6px) scale(1)}to{opacity:0;transform:translate(-50%) translateY(-22px) scale(.95)}}.exercise-stage.stage-in{animation:stage-in .26s var(--ease-out) both}.exercise-stage.stage-out{animation:stage-out .17s ease-in both;pointer-events:none}@keyframes stage-in{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}@keyframes stage-out{0%{opacity:1;transform:none}to{opacity:0;transform:translate(-28px)}}.flashcard-scene.lift-a{animation:card-lift-a .6s var(--ease-in-out)}.flashcard-scene.lift-b{animation:card-lift-b .6s var(--ease-in-out)}@keyframes card-lift-a{50%{transform:scale(1.05) translateY(-6px)}}@keyframes card-lift-b{50%{transform:scale(1.05) translateY(-6px)}}.topbar-streak.is-lit{animation:streak-glow 1.8s ease-out}.topbar-streak.is-lit .streak-flame{display:inline-block;animation:flame-burst 1s var(--ease-out)}.streak-roll{display:inline-block;height:1.2em;line-height:1.2em;overflow:hidden;vertical-align:bottom}.streak-roll-inner{display:flex;flex-direction:column;animation:streak-roll .7s var(--ease-out) .35s both}@keyframes streak-roll{0%{transform:translateY(0)}to{transform:translateY(-50%)}}@keyframes flame-burst{0%{transform:scale(1)}35%{transform:scale(1.7) rotate(-10deg);filter:drop-shadow(0 0 6px #ff7a00)}65%{transform:scale(1.25) rotate(6deg)}to{transform:scale(1)}}@keyframes streak-glow{0%,to{box-shadow:none}30%{box-shadow:0 0 0 4px #ff7a0040,0 0 16px #ff7a008c}}.gen-skeleton{display:flex;flex-direction:column;gap:10px;margin:14px 0 4px}.gen-skeleton-card{border:var(--border-w) solid var(--border);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px;animation:fadein .4s ease both}.sk-line{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--surface-2) 25%,var(--border) 50%,var(--surface-2) 75%);background-size:300% 100%;animation:sk-shimmer 1.4s ease-in-out infinite}.sk-title{height:15px;width:75%;margin-bottom:4px}.sk-opt{width:100%}.sk-opt.short{width:55%}@keyframes sk-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.dashboard>:not(.modal-overlay){animation:item-in var(--dur-slow) var(--ease-out) backwards}.dashboard>:not(.modal-overlay):nth-child(2){animation-delay:60ms}.dashboard>:not(.modal-overlay):nth-child(3){animation-delay:.12s}.dashboard>:not(.modal-overlay):nth-child(4){animation-delay:.18s}.dashboard>:not(.modal-overlay):nth-child(5){animation-delay:.24s}.dashboard>:not(.modal-overlay):nth-child(6){animation-delay:.3s}.dashboard>:not(.modal-overlay):nth-child(n+7){animation-delay:.36s}.weather-lightning{background:#a5b9ff47;animation:lightning .55s ease-out both}html[data-theme=dark] .weather-lightning{background:#e1e8ff3d}.weather-lightning.is-double{animation-name:lightning-double;animation-duration:.8s}@keyframes lightning{0%{opacity:0}8%{opacity:1}30%{opacity:.25}to{opacity:0}}@keyframes lightning-double{0%{opacity:0}6%{opacity:1}18%{opacity:.1}30%{opacity:.85}55%{opacity:.2}to{opacity:0}}.weather-stars{animation:weather-fade-in 1.6s ease-out both}@media (prefers-reduced-motion: reduce){.levelup-badge,.levelup-rays,.levelup-card,.combo-badge,.exercise-stage.stage-in,.exercise-stage.stage-out,.flashcard-scene.lift-a,.flashcard-scene.lift-b,.topbar-streak.is-lit,.topbar-streak.is-lit .streak-flame,.streak-roll-inner,.sk-line,.dashboard>:not(.modal-overlay),.level-bump{animation:none}.streak-roll-inner{transform:translateY(-50%)}}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.stat-box{position:relative;overflow:hidden;padding:22px 14px 20px;min-height:148px;display:flex;flex-direction:column;align-items:center;justify-content:center}.stat-box .num{font-size:28px;line-height:1.1;font-variant-numeric:tabular-nums}.stat-box .lbl{font-size:13px;margin-top:6px}.stat-icon-wrap{position:relative;width:56px;height:56px;margin-bottom:10px;display:grid;place-items:center}.stat-icon{font-size:30px;line-height:1;display:inline-block;animation:stat-icon-in .62s var(--ease-out) var(--stat-delay, 0ms) backwards,stat-icon-float 3.6s ease-in-out calc(var(--stat-delay, 0ms) + .7s) infinite}@keyframes stat-icon-in{0%{transform:scale(0) rotate(-25deg);opacity:0}60%{transform:scale(1.25) rotate(8deg);opacity:1}to{transform:scale(1) rotate(0)}}@keyframes stat-icon-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.stat-ring{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transform:rotate(-90deg)}.stat-ring circle{fill:none;stroke-width:4}.stat-ring-track{stroke:var(--surface-2)}.stat-ring-fill{stroke:var(--teal);stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:calc(100 - var(--ring, 0));animation:stat-ring-fill 1.1s var(--ease-out) var(--stat-delay, 0ms) backwards}@keyframes stat-ring-fill{0%{stroke-dashoffset:100}}.stat-box:after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:45%;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skew(-18deg);opacity:0;animation:stat-shine .9s ease-out calc(var(--stat-delay, 0ms) + .5s) 1}@keyframes stat-shine{0%{left:-60%;opacity:1}to{left:130%;opacity:1}}.option-btn{position:relative}.option-btn.correct:after{content:"";position:absolute;inset:calc(var(--border-w) * -1);border-radius:inherit;pointer-events:none;border:3px solid var(--green);animation:correct-ripple .65s var(--ease-out) forwards}@keyframes correct-ripple{0%{transform:scale(1);opacity:.9}to{transform:scale(1.07,1.25);opacity:0}}.option-btn.correct:before{content:"✨";position:absolute;right:12px;top:-14px;font-size:22px;pointer-events:none;animation:correct-sparkle .9s var(--ease-out) forwards}@keyframes correct-sparkle{0%{transform:scale(0) rotate(-40deg);opacity:0}35%{transform:scale(1.3) rotate(10deg);opacity:1}70%{transform:scale(1) rotate(0);opacity:1}to{transform:translateY(-8px) scale(.9);opacity:0}}.progress-bar.is-combo>div{background-image:repeating-linear-gradient(-45deg,rgba(255,255,255,.22) 0 8px,transparent 8px 16px);background-size:22.63px 22.63px;box-shadow:0 0 10px #ff7a008c;animation:combo-flow .7s linear infinite}@keyframes combo-flow{to{background-position:22.63px 0}}.completion-screen .emoji{display:inline-block;animation:done-emoji .9s var(--ease-out) both}@keyframes done-emoji{0%{transform:translateY(-60px) scale(.4) rotate(-20deg);opacity:0}45%{transform:translateY(6px) scale(1.15) rotate(8deg);opacity:1}65%{transform:translateY(-6px) scale(.95) rotate(-4deg)}85%{transform:translateY(2px) scale(1.03) rotate(2deg)}to{transform:none}}.completion-screen h2{animation:rise-in .5s var(--ease-out) .25s both}.completion-stats>div{animation:done-stat .52s var(--ease-out) both}.completion-stats>div:nth-child(1){animation-delay:.35s}.completion-stats>div:nth-child(2){animation-delay:.45s}.completion-stats>div:nth-child(3){animation-delay:.55s}@keyframes done-stat{0%{transform:translateY(14px) scale(.7);opacity:0}60%{transform:translateY(-3px) scale(1.08);opacity:1}to{transform:none}}.completion-screen>div:last-child{animation:rise-in .5s var(--ease-out) .7s both}.bottom-nav a.active .ic{animation:nav-hop .48s var(--ease-out)}@keyframes nav-hop{0%{transform:translateY(0) scale(1)}35%{transform:translateY(-7px) scale(1.18) rotate(-6deg)}65%{transform:translateY(1px) scale(1.02) rotate(3deg)}to{transform:translateY(-1px) scale(1.08)}}.wave-hand{display:inline-block;transform-origin:70% 75%;animation:wave-hand 1.8s ease-in-out .4s 2}@keyframes wave-hand{0%,60%,to{transform:rotate(0)}10%,30%{transform:rotate(16deg)}20%,40%{transform:rotate(-8deg)}50%{transform:rotate(10deg)}}.continue-card .btn-primary{animation:cta-breathe 2.8s ease-in-out 1s infinite}@keyframes cta-breathe{0%,to{box-shadow:0 0 rgba(var(--teal-rgb),0)}50%{box-shadow:0 0 0 7px rgba(var(--teal-rgb),.18)}}@media (prefers-reduced-motion: reduce){.stat-icon,.stat-ring-fill,.stat-box:after,.option-btn.correct:after,.option-btn.correct:before,.progress-bar.is-combo>div,.completion-screen .emoji,.completion-screen h2,.completion-stats>div,.completion-screen>div:last-child,.bottom-nav a.active .ic,.wave-hand,.continue-card .btn-primary{animation:none!important}.option-btn.correct:after,.option-btn.correct:before{display:none}}.streak-pill{gap:6px;padding-left:10px}.live-flame{display:block;flex-shrink:0;pointer-events:none}.streak-live-flame{margin:-10px 0 -8px}.name-prompt-overlay{z-index:300;align-items:center;padding:16px}.name-prompt-panel{border-radius:20px;text-align:center;max-width:420px}.name-prompt-panel .form{text-align:left;margin-top:14px}.name-prompt-panel .form-actions .btn{flex:1}.name-prompt-emoji{font-size:44px;line-height:1;margin-bottom:8px;display:inline-block;transform-origin:70% 75%;animation:wave-hand 1.8s ease-in-out .3s 2}.name-prompt-panel .modal-title{margin-bottom:6px}.name-prompt-desc{font-size:13.5px}.hello-name{color:var(--teal);display:inline-block;animation:hello-name-in .6s var(--ease-out) .15s both}@keyframes hello-name-in{0%{opacity:0;transform:translateY(8px) scale(.92)}60%{opacity:1;transform:translateY(-2px) scale(1.04)}to{transform:none}}.profile-name-row{display:flex;align-items:center;gap:12px}.profile-avatar{width:44px;height:44px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;background:var(--teal);color:var(--on-teal);font-family:var(--font-display);font-weight:800;font-size:19px}.profile-name{font-weight:700;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (prefers-reduced-motion: reduce){.name-prompt-emoji,.hello-name{animation:none}}.answer-glow{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:44;animation:answer-glow .9s var(--ease-out) forwards}.answer-glow.is-correct{box-shadow:inset 0 0 70px 6px #1ebe786b}.answer-glow.is-wrong{box-shadow:inset 0 0 70px 6px rgba(var(--coral-rgb),.42)}@keyframes answer-glow{0%{opacity:0}20%{opacity:1}to{opacity:0}}.bottom-nav{position:sticky}.nav-indicator{position:absolute;left:0;top:0;z-index:0;pointer-events:none;border-radius:var(--radius-sm);background:var(--surface-2);transition:transform .42s cubic-bezier(.34,1.4,.64,1),width .42s cubic-bezier(.34,1.4,.64,1)}.nav-indicator.no-anim{transition:none}.bottom-nav a{z-index:1}.bottom-nav a.active{background:none}.btn-shimmer{position:relative;overflow:hidden}.btn-shimmer:after{content:"";position:absolute;top:0;bottom:0;left:-40%;width:30%;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(255,255,255,.65),transparent);transform:skew(-20deg);animation:btn-shimmer 3.6s ease-in-out 1.2s infinite}@keyframes btn-shimmer{0%{left:-40%}35%,to{left:130%}}.review-toggle:after{transition:transform .36s cubic-bezier(.34,1.56,.64,1),width .16s var(--ease-out, ease)}.review-toggle:active:after{width:calc(var(--tg-knob) + 6px)}.review-toggle.on:active:after{transform:translate(calc(var(--tg-w) - var(--tg-h) - 6px))}.fb-icon{display:inline-block}.feedback-panel.correct .fb-icon{animation:fb-check .52s var(--ease-out) both}.feedback-panel.wrong .fb-icon{animation:fb-cross .46s var(--ease-out) both}@keyframes fb-check{0%{transform:scale(0) rotate(-90deg)}60%{transform:scale(1.4) rotate(10deg)}to{transform:none}}@keyframes fb-cross{0%{transform:scale(0)}40%{transform:scale(1.3)}55%{transform:scale(1.1) rotate(-14deg)}70%{transform:scale(1.1) rotate(12deg)}85%{transform:rotate(-5deg)}to{transform:none}}.empty-state .emoji{display:inline-block;animation:empty-float 3.2s ease-in-out infinite}@keyframes empty-float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(-4deg)}}@media (prefers-reduced-motion: reduce){.answer-glow,.btn-shimmer:after,.fb-icon,.empty-state .emoji{animation:none!important}.answer-glow,.btn-shimmer:after{display:none}.nav-indicator,.review-toggle:after{transition:none}}.topbar-streak .streak-flame{display:inline-flex;margin:-7px 0 -5px -2px}.topbar-streak.is-out,.streak-pill.is-out{color:var(--text-faint)}.live-coal{display:block;flex-shrink:0;pointer-events:none}.btn{position:relative;overflow:hidden;isolation:isolate}.tap-ripple{position:absolute;border-radius:50%;pointer-events:none;z-index:-1;background:currentColor;opacity:.22;transform:scale(0);animation:tap-ripple .62s var(--ease-out) forwards}@keyframes tap-ripple{to{transform:scale(1);opacity:0}}.option-list>.option-btn{animation:option-in .42s var(--ease-out) backwards}.option-list>.option-btn:nth-child(1){animation-delay:60ms}.option-list>.option-btn:nth-child(2){animation-delay:.12s}.option-list>.option-btn:nth-child(3){animation-delay:.18s}.option-list>.option-btn:nth-child(4){animation-delay:.24s}.option-list>.option-btn:nth-child(5){animation-delay:.3s}.option-list>.option-btn:nth-child(n+6){animation-delay:.36s}@keyframes option-in{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}.option-list>.option-btn.correct{animation:answer-pop var(--dur-slow) var(--ease-out)}.option-list>.option-btn.wrong{animation:answer-shake .38s var(--ease-in-out)}.content-card{transition:border-color .15s,box-shadow .15s,transform .42s cubic-bezier(.34,1.56,.64,1)}.content-card.is-tilted{transform:perspective(700px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) scale(.975);transition-duration:.15s,.15s,.12s}.xp-pill{position:relative;font-variant-numeric:tabular-nums}.xp-pill.is-gaining{animation:xp-pill-glow 1.6s ease-out .4s}@keyframes xp-pill-glow{0%,to{box-shadow:var(--ink-shadow-sm)}35%{box-shadow:var(--ink-shadow-sm),0 0 0 4px #e8a80040,0 0 16px #e8a80080}}.xp-gain-float{position:absolute;right:10px;top:-4px;pointer-events:none;font-size:12px;font-weight:800;color:var(--gold);white-space:nowrap;animation:xp-gain-float 1.8s var(--ease-out) .35s both}@keyframes xp-gain-float{0%{opacity:0;transform:translateY(6px) scale(.7)}20%{opacity:1;transform:translateY(-6px) scale(1.1)}70%{opacity:1;transform:translateY(-14px) scale(1)}to{opacity:0;transform:translateY(-24px)}}.badge-review:not(.done){display:inline-block;animation:badge-pulse 2.2s ease-in-out infinite}@keyframes badge-pulse{0%,to{transform:scale(1);box-shadow:0 0 rgba(var(--coral-rgb),0)}50%{transform:scale(1.06);box-shadow:0 0 0 4px rgba(var(--coral-rgb),.15)}}.brand-mark{position:relative;overflow:hidden;animation:brand-pop .7s var(--ease-out) 1.9s backwards}.brand-mark:after{content:"";position:absolute;top:-20%;bottom:-20%;left:-80%;width:50%;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(255,255,255,.7),transparent);transform:skew(-20deg);animation:brand-shine .9s ease-out 2.4s 1 both}@keyframes brand-pop{0%{transform:scale(.4) rotate(-20deg);opacity:0}60%{transform:scale(1.15) rotate(6deg);opacity:1}to{transform:none}}@keyframes brand-shine{0%{left:-80%}to{left:140%}}@media (prefers-reduced-motion: reduce){.tap-ripple,.option-list>.option-btn,.xp-pill.is-gaining,.xp-gain-float,.badge-review:not(.done),.brand-mark,.brand-mark:after{animation:none!important}.xp-gain-float,.brand-mark:after{display:none}.content-card.is-tilted{transform:none}}.streak-fire{position:relative;display:inline-block;flex-shrink:0}.streak-fire>canvas{display:block}.ignite-sparks{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.ignite-sparks i{position:absolute;left:50%;bottom:35%;width:2px;height:2px;border-radius:50%;background:#ffcf5a;box-shadow:0 0 4px 1px #ff8c1ee6;opacity:0;animation:ignite-spark .7s ease-out calc(.38s + var(--i) * .11s) infinite}.ignite-sparks i:nth-child(odd){--dx: -9px}.ignite-sparks i:nth-child(2n){--dx: 8px}.ignite-sparks i:nth-child(3n){--dx: 2px}@keyframes ignite-spark{0%{opacity:0;transform:translate(-50%) scale(1)}15%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--dx, 0px)),-18px) scale(.4)}}.streak-fire.is-burst{animation:fire-burst .9s var(--ease-out)}@keyframes fire-burst{0%{transform:scale(.3);filter:brightness(2.2) drop-shadow(0 0 8px #ff8a00)}35%{transform:scale(1.45);filter:brightness(1.5) drop-shadow(0 0 10px #ff8a00)}65%{transform:scale(.92)}to{transform:scale(1);filter:none}}.topbar-streak.is-relit{animation:streak-glow 2.4s ease-out}.pref-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;font-size:14.5px}::view-transition-group(content-hero){animation-duration:.48s;animation-timing-function:cubic-bezier(.2,.85,.25,1)}::view-transition-old(content-hero),::view-transition-new(content-hero){height:100%;object-fit:cover;overflow:hidden}::view-transition-old(root){animation:.26s ease-out both hero-fade-out}::view-transition-new(root){animation:.38s ease-out 80ms both hero-fade-in}@keyframes hero-fade-out{to{opacity:0}}@keyframes hero-fade-in{0%{opacity:0;transform:translateY(10px)}}html.hero-nav .view,.view[data-hero-done]{animation:none}.app-intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:grid;place-items:center;overflow:hidden;background:var(--bg);transition:opacity .26s ease,visibility .26s}.app-intro.is-out{opacity:0;visibility:hidden}.app-intro-logo{display:flex;flex-direction:column;align-items:center;gap:18px}.app-intro-name{transition:opacity .18s ease}.app-intro.is-zoom .app-intro-name{opacity:0}.app-intro.is-zoom .app-intro-c{opacity:0;transition:opacity .16s ease}.app-intro.is-zoom .app-intro-mark{box-shadow:0 9px 0 -3px var(--gold);animation:intro-zoom .52s cubic-bezier(.55,0,.9,.45) both}.app-intro.is-zoom{animation:intro-fill .52s linear both}@keyframes intro-zoom{0%{transform:scale(1)}to{transform:scale(14)}}@keyframes intro-fill{0%,65%{background-color:var(--bg)}to{background-color:var(--teal)}}.app-intro-mark{box-shadow:0 9px 0 -3px var(--gold);will-change:transform;animation:intro-zoom .52s cubic-bezier(.55,0,.9,.45) both}@keyframes intro-zoom{0%{transform:scale(1);border-radius:26px}to{transform:scale(40);border-radius:22px}}.app-intro-mark{width:92px;height:92px;border-radius:26px;background:var(--teal);display:grid;place-items:center;animation:intro-mark .65s cubic-bezier(.34,1.56,.64,1) .1s both,intro-shadow .45s var(--ease-out) .45s both}@keyframes intro-mark{0%{transform:scale(0) rotate(-120deg);border-radius:50%}to{transform:scale(1) rotate(0);border-radius:26px}}@keyframes intro-shadow{0%{box-shadow:0 0 0 0 var(--gold)}to{box-shadow:0 9px 0 -3px var(--gold)}}.app-intro-c{width:62px;height:62px;overflow:visible}.app-intro-c path{fill:none;stroke:#fff;stroke-width:13;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;animation:intro-draw .6s cubic-bezier(.65,0,.35,1) .52s forwards}@keyframes intro-draw{to{stroke-dashoffset:0}}.app-intro-name{display:flex;font-family:var(--font-display);font-weight:800;font-size:26px;color:var(--text);letter-spacing:-.01em}.app-intro-name span{display:inline-block;opacity:0;animation:intro-letter .42s var(--ease-out) calc(.9s + var(--i) * 45ms) forwards}@keyframes intro-letter{0%{opacity:0;transform:translateY(14px) rotate(8deg)}to{opacity:1;transform:none}}.mascot{display:inline-block;flex-shrink:0;position:relative;-webkit-tap-highlight-color:transparent}.mascot.is-interactive{cursor:pointer}.mascot-svg{width:100%;height:100%;overflow:visible;display:block}.mascot-fur{fill:#ff8a3d}.mascot-white{fill:#fffaf2}.mascot-ear-inner{fill:#3b2a24}.mascot-nose{fill:#2b1d18}.mascot-mouth{fill:#9b2c2c}.mascot-tongue{fill:#ff8fa3}.mascot-mouth-line{fill:none;stroke:#2b1d18;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.mascot-wing{filter:brightness(.92);transform-box:fill-box}.mascot-wing.left{transform-origin:80% 10%}.mascot-wing.right{transform-origin:20% 10%}.mascot-feet{fill:#3b2a24}.mascot-tail{transform-box:fill-box;transform-origin:0% 90%}.mascot-ear{transform-box:fill-box}.mascot-ear.left{transform-origin:80% 100%}.mascot-ear.right{transform-origin:20% 100%}.mascot-eye-white{fill:#fff;stroke:#0000001f;stroke-width:1}.mascot-pupil{fill:#15203b;transition:cx .22s ease,cy .22s ease}.mascot-glint{fill:#fff;transition:cx .22s ease}.mascot-eyes{transform-box:fill-box;transform-origin:50% 50%;transition:transform 70ms ease}.mascot-eyes.is-blink{transform:scaleY(.08)}.mascot-eyes-line path{fill:none;stroke:#15203b;stroke-width:3.2;stroke-linecap:round}.mascot-brow{stroke:#15203b;stroke-width:2.6;stroke-linecap:round}.mascot-cheek{fill:#ffa3b5;opacity:.85}.mascot-tear{fill:#6cc7ff;animation:mascot-tear 1.4s ease-in .3s infinite}.mascot-shadow{fill:#00000024;transform-box:fill-box;transform-origin:50% 50%}.mascot-body{transform-box:fill-box;transform-origin:50% 100%}.mascot-zzz text{font:800 11px var(--font-display, sans-serif);fill:var(--text-dim);opacity:0;animation:mascot-z 2.4s ease-in-out infinite}.mascot-zzz text:nth-child(2){animation-delay:.8s;font-size:13px}.mascot-zzz text:nth-child(3){animation-delay:1.6s;font-size:15px}.mascot-sparkles path{fill:var(--gold);transform-box:fill-box;transform-origin:50% 50%;animation:mascot-spark .9s ease-in-out infinite}.mascot-sparkles path:nth-child(2){animation-delay:.3s}.mascot-sparkles path:nth-child(3){animation-delay:.6s}.mood-idle .mascot-body{animation:mascot-breathe 3.2s ease-in-out infinite}.mood-idle .mascot-tail{animation:mascot-tail-wag 2.6s ease-in-out infinite}.mood-happy .mascot-tail,.mood-cheer .mascot-tail{animation:mascot-tail-fast .26s ease-in-out infinite}.mood-sad .mascot-tail{animation:mascot-tail-down .9s ease forwards}.mood-sad .mascot-ear.left{animation:mascot-ear-droop-l .9s ease forwards}.mood-sad .mascot-ear.right{animation:mascot-ear-droop-r .9s ease forwards}.mood-idle .mascot-ear.right{animation:mascot-ear-twitch 5.5s ease-in-out 2s infinite}.mood-happy .mascot-body{animation:mascot-hop .65s cubic-bezier(.3,.7,.4,1.3)}.mood-happy .mascot-shadow{animation:mascot-shadow-hop .65s ease}.mood-happy .mascot-wing.left{animation:mascot-flap-l .16s ease-in-out 4}.mood-happy .mascot-wing.right{animation:mascot-flap-r .16s ease-in-out 4}.mood-sad .mascot-body{animation:mascot-sad .9s ease forwards}.mood-cheer .mascot-body{animation:mascot-hop .7s cubic-bezier(.3,.7,.4,1.3) infinite}.mood-cheer .mascot-shadow{animation:mascot-shadow-hop .7s ease infinite}.mood-cheer .mascot-wing.left{animation:mascot-flap-l 175ms ease-in-out infinite}.mood-cheer .mascot-wing.right{animation:mascot-flap-r 175ms ease-in-out infinite}.mood-sleep .mascot-body{animation:mascot-sleep 3.6s ease-in-out infinite}@keyframes mascot-tail-wag{0%,to{transform:rotate(0)}25%{transform:rotate(-12deg)}50%{transform:rotate(4deg)}75%{transform:rotate(-8deg)}}@keyframes mascot-tail-fast{0%,to{transform:rotate(-14deg)}50%{transform:rotate(8deg)}}@keyframes mascot-tail-down{to{transform:rotate(28deg)}}@keyframes mascot-ear-droop-l{to{transform:rotate(-22deg)}}@keyframes mascot-ear-droop-r{to{transform:rotate(22deg)}}@keyframes mascot-ear-twitch{0%,90%,to{transform:rotate(0)}93%{transform:rotate(14deg)}96%{transform:rotate(-4deg)}}@keyframes mascot-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.025,.975)}}@keyframes mascot-hop{0%{transform:translateY(0) scale(1.08,.9)}40%{transform:translateY(-16px) scale(.95,1.06)}75%{transform:translateY(0) scale(1.06,.94)}to{transform:none}}@keyframes mascot-shadow-hop{40%{transform:scale(.6);opacity:.6}}@keyframes mascot-flap-l{50%{transform:rotate(28deg)}}@keyframes mascot-flap-r{50%{transform:rotate(-28deg)}}@keyframes mascot-sad{0%{transform:none}20%{transform:rotate(-6deg) scale(.98)}40%{transform:rotate(6deg) scale(.97)}60%{transform:rotate(-3deg) scale(.96)}to{transform:translateY(2px) scale(.95,.94)}}@keyframes mascot-sleep{0%,to{transform:scale(1)}50%{transform:scale(1.05,.95)}}@keyframes mascot-tear{0%{transform:translateY(0);opacity:1}to{transform:translateY(14px);opacity:0}}@keyframes mascot-z{0%{opacity:0;transform:translateY(4px)}30%{opacity:1}to{opacity:0;transform:translate(4px,-8px)}}@keyframes mascot-spark{0%,to{transform:scale(.4) rotate(0);opacity:.4}50%{transform:scale(1.1) rotate(45deg);opacity:1}}@media (prefers-reduced-motion: reduce){.mascot *,.mascot-body{animation:none!important}}.dashboard-hello-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.dashboard-hello-row .page-title{min-width:0}.feedback-title{display:flex;align-items:center;gap:6px}.feedback-mascot{margin:-12px -4px -12px auto}.completion-mascot{margin:0 auto 4px;display:block}.retry-intro-text{font-size:14.5px;line-height:1.5;max-width:34ch;margin:8px auto 0}.retry-intro-note{display:inline-block;margin-top:14px;padding:8px 14px;border-radius:12px;background:var(--surface-2);font-size:13px;font-weight:600;color:var(--text)}.retry-chip{display:inline-flex;align-items:center;gap:6px;margin:0 0 10px 8px;vertical-align:top;padding:5px 12px;border-radius:999px;font-size:12.5px;font-weight:700;background:rgba(var(--coral-rgb),.12);color:var(--coral);animation:retry-chip-in .42s var(--ease-out) both}@keyframes retry-chip-in{0%{opacity:0;transform:translateY(-6px) scale(.9)}}.study-shell.is-retry .study-progress .progress-bar>div{background-color:var(--coral)}.study-shell.is-retry .study-progress .progress-bar.is-combo>div{background-color:#ff7a00}.errors-summary{font-size:13px;margin:16px 0 10px}.errors-list{display:flex;flex-direction:column;gap:12px}.error-row{border-left:5px solid var(--c-accent, var(--coral));align-items:center}.error-row-icon{font-size:24px;flex-shrink:0}.error-count{color:var(--coral);font-weight:700}.error-row .meta{display:flex;flex-wrap:wrap;gap:4px 10px}.error-row-date{font-size:11.5px;color:var(--text-faint);margin-top:3px}.error-delete-btn{flex-shrink:0;width:40px;height:40px;border-radius:50%;border:none;cursor:pointer;background:var(--surface-2);font-size:17px;display:grid;place-items:center;transition:transform .12s,background .12s}.error-delete-btn:active{transform:scale(.9);background:rgba(var(--coral-rgb),.18)}.bottom-nav .nav-badge.is-errors{background:#ff7a00}.stats-grid>.stat-box:last-child:nth-child(odd){grid-column:1 / -1}.lesson-timer{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:4px 10px 4px 6px;border-radius:999px;cursor:pointer;background:var(--surface-2);border:2px solid var(--border);color:var(--text-dim);font:inherit;font-size:12.5px;font-weight:700;line-height:1;-webkit-tap-highlight-color:transparent;transition:border-color .16s var(--ease-out),color .16s var(--ease-out),transform .12s var(--ease-out)}.lesson-timer:active{transform:scale(.94)}.lesson-timer-text{font-variant-numeric:tabular-nums;letter-spacing:.02em;min-width:3.1ch;text-align:right}.lesson-timer-ring{width:20px;height:20px;transform:rotate(-90deg)}.lesson-timer-track{fill:none;stroke:var(--border);stroke-width:3}.lesson-timer-arc{fill:none;stroke:var(--teal);stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset 1s linear}.lesson-timer-arc.is-reset{transition:none}.study-shell.is-retry .lesson-timer-arc{stroke:var(--coral)}.lesson-timer.is-paused{border-color:var(--gold);color:var(--text)}.lesson-timer.is-paused .lesson-timer-text{animation:lesson-timer-blink 1.1s ease-in-out infinite}.lesson-timer.is-paused .lesson-timer-arc{stroke:var(--gold)}@keyframes lesson-timer-blink{50%{opacity:.35}}html.exercise-lock .lesson-timer{padding:3px 9px 3px 5px}.lesson-pause{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;display:flex;align-items:center;justify-content:center;padding:24px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:lesson-pause-in .22s var(--ease-out) both}.lesson-pause-card{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.lesson-pause-card h2{margin:4px 0 0;font-size:22px}.lesson-pause-time{font-family:var(--font-display);font-size:44px;font-weight:800;margin-bottom:14px;font-variant-numeric:tabular-nums;color:var(--text-dim)}@keyframes lesson-pause-in{0%{opacity:0}}.completion-stats>div:nth-child(4){animation-delay:.65s}.completion-stats:has(>div:nth-child(4)){gap:22px}.completion-stats .num{font-variant-numeric:tabular-nums}.completion-time-notes{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:-6px 0 14px;animation:rise-in .5s var(--ease-out) .8s both}.completion-time-chip{padding:6px 12px;border-radius:999px;font-size:12.5px;font-weight:700;background:var(--surface-2);color:var(--text-dim)}.completion-time-chip.is-record{background:var(--gold-soft);color:var(--text)}@media (prefers-reduced-motion: reduce){.lesson-timer-arc,.lesson-timer,.lesson-pause,.completion-time-notes{transition:none;animation:none}.lesson-timer.is-paused .lesson-timer-text{animation:none}}.study-shell--exercise>.back-btn,.study-shell--exercise>.retry-chip{align-self:flex-start}.study-shell--exercise>.retry-chip{margin-left:0}.crie-coin{display:inline-block;flex-shrink:0;vertical-align:middle;line-height:0;perspective:260px}.crie-coin svg{display:block;overflow:visible;filter:drop-shadow(0 2px 3px rgba(150,90,0,.35))}.crie-coin.is-spin{position:relative}.crie-coin.is-spin svg{filter:none}.crie-coin.is-spin:before{content:"";position:absolute;left:12%;right:12%;bottom:-4%;height:14%;border-radius:50%;background:radial-gradient(closest-side,#965a0059,#965a0000);pointer-events:none}.coin3d-body{position:absolute;top:0;right:0;bottom:0;left:0;display:block;transform-style:preserve-3d;animation:coin-turn 5.4s infinite;animation-delay:.8s;will-change:transform}.coin3d-edge{position:absolute;top:4%;right:4%;bottom:4%;left:4%;display:block;border-radius:50%;background:#b87400}.coin3d-strip{position:absolute;display:block;backface-visibility:visible;outline:.6px solid rgba(166,104,0,.55);outline-offset:-.3px;background:linear-gradient(90deg,#ffe98f,#f2b21a 22%,#c98300,#f2b21a 78%,#ffe98f)}.coin3d-strip.alt{background:linear-gradient(90deg,#f3cb55,#d9980c 22%,#a56800,#d9980c 78%,#f3cb55)}.coin3d-wall{position:absolute;top:0;right:0;bottom:0;left:0;display:block;transform-style:preserve-3d}.coin3d-face{position:absolute;top:0;right:0;bottom:0;left:0;display:block;backface-visibility:hidden;border-radius:50%;box-shadow:0 0 0 .7px #a6680073;background-size:contain;background-repeat:no-repeat}.coin3d-face>svg{display:block;width:100%;height:100%}.coin3d-body.is-static{animation:none}.crie-coin.is-hold .coin3d-body{animation:none;transform:none}.coin3d-face.front{transform:translateZ(var(--z))}.coin3d-face.back{transform:rotateY(180deg) translateZ(var(--z))}.coin-shine{animation:coin-shine 3.6s ease-in-out .8s infinite}.coin-spark{transform-box:fill-box;transform-origin:center;animation:coin-spark 2.4s ease-in-out infinite}@keyframes coin-spin{0%,55%{transform:rotateY(0)}80%,to{transform:rotateY(360deg)}}@keyframes coin-turn{0%,50%{transform:rotateY(0);animation-timing-function:cubic-bezier(.45,0,.12,1)}90%,to{transform:rotateY(720deg)}}@keyframes coin-shine{0%{transform:translate(0) skew(-18deg)}35%,to{transform:translate(190px) skew(-18deg)}}@keyframes coin-spark{0%,to{transform:scale(.4) rotate(0);opacity:.2}50%{transform:scale(1.1) rotate(45deg);opacity:1}}.day-blocker{display:inline-block;flex-shrink:0;line-height:0}.day-blocker svg{display:block;overflow:visible;filter:drop-shadow(0 3px 4px rgba(43,68,231,.35))}.day-blocker:not(.is-empty):not(.is-breaking) svg{animation:blocker-float 3.4s ease-in-out infinite}.blk-shine{animation:coin-shine 4s ease-in-out 1.2s infinite}.blk-empty-fill{fill:var(--surface-2);opacity:.7}.blk-empty-line{fill:none;stroke:var(--text-faint);stroke-width:3.4;stroke-dasharray:7 6;stroke-linecap:round;opacity:.7}.blk-empty-cal{fill:none;stroke:var(--text-faint);stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;opacity:.45}.day-blocker.is-empty svg{filter:none}.day-blocker.is-breaking svg{animation:blocker-break 1.6s ease-in-out .3s both}.blk-crack{stroke-dasharray:160;stroke-dashoffset:160;animation:blk-crack .7s ease-out .5s forwards}@keyframes blocker-float{0%,to{transform:translateY(0)}50%{transform:translateY(-2.5px)}}@keyframes blocker-break{0%{transform:scale(1)}15%{transform:scale(1.12) rotate(-4deg)}30%{transform:scale(1.06) rotate(4deg)}45%{transform:scale(1.1) rotate(-3deg)}to{transform:scale(.9) rotate(0);opacity:.55;filter:grayscale(.7) drop-shadow(0 3px 4px rgba(43,68,231,.2))}}@keyframes blk-crack{to{stroke-dashoffset:0}}.blocker-slots{display:flex;align-items:center;gap:6px}.blocker-slot{display:inline-flex}.blocker-slot.is-new{animation:slot-pop .9s var(--ease-out, ease-out) both}@keyframes slot-pop{0%{transform:scale(.2) translateY(-30px);opacity:0}55%{transform:scale(1.35) translateY(2px);opacity:1}to{transform:scale(1)}}.blockers-card{margin-bottom:22px;padding:14px 16px;background:linear-gradient(135deg,#9be4ff47,#2b44e71a)}.blockers-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.blockers-row{display:flex;align-items:center;gap:14px}.blockers-card .blocker-slots{flex-shrink:0}.blockers-info{flex:1;min-width:0}.blockers-title{font-family:var(--font-display);font-weight:800;font-size:16px}.blockers-sub{font-size:13.5px;font-weight:700;color:var(--teal);line-height:1.3}.blockers-hint{font-size:11.5px;color:var(--text-faint);margin-top:3px;line-height:1.3}.blockers-card.is-none{background:var(--coral-soft);border-color:var(--coral);box-shadow:3px 3px 0 var(--coral)}.blockers-card.is-none .blockers-sub{color:var(--coral)}html[data-theme=dark] .blockers-card.is-none{background:#b3282d2e}.blocker-notice-overlay{z-index:320;align-items:center;padding:16px}.blocker-notice-panel{border-radius:20px;text-align:center;max-width:380px}.blocker-notice-stage{display:flex;align-items:flex-end;justify-content:center;gap:4px;margin-bottom:6px}.blocker-notice-fox{animation:levelup-card-in .5s var(--ease-out, ease-out) both}.blocker-notice-shield,.blocker-notice-panel .modal-title{margin-bottom:6px}.blocker-notice-desc{font-size:14px;line-height:1.45;margin-bottom:12px}.blocker-notice-panel .blocker-slots{justify-content:center}.blocker-notice-left{font-size:13px;margin:8px 0 16px}.blocker-notice-actions{display:flex;flex-direction:column;gap:8px}.topbar-right{display:flex;align-items:center;gap:8px}.topbar-coins{position:relative;display:flex;align-items:center;gap:5px;font:inherit;font-size:13px;font-weight:800;color:#a35f00;background:#fff4c7;border:var(--border-w) solid var(--ink);border-radius:999px;padding:3px 11px 3px 6px;cursor:pointer;transition:transform .1s}.topbar-coins:active{transform:scale(.95)}html[data-theme=dark] .topbar-coins{background:#ffd84d29;color:var(--gold)}.topbar-coins.is-gaining{animation:streak-glow 1.8s ease-out}.topbar-coins-num{display:inline-block;font-variant-numeric:tabular-nums;min-width:1ch}.topbar-coins-float{position:absolute;right:4px;top:-4px;font-weight:800;font-size:13px;color:#d98b00;pointer-events:none;animation:xp-float 1.8s ease-out 5s both}@keyframes xp-float{0%{opacity:0;transform:translateY(6px) scale(.7)}25%{opacity:1;transform:translateY(-8px) scale(1.15)}to{opacity:0;transform:translateY(-30px) scale(1)}}.completion-stats .coin-num{display:inline-flex;align-items:center;gap:4px;color:#d98b00}.shop-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.shop-wallet{display:flex;align-items:center;gap:18px;padding:18px 20px;position:relative;overflow:hidden;background:linear-gradient(135deg,#fff1b0,#ffd84d 55%,#ffb21f);color:#15203b}.shop-wallet:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);transform:translate(-120%);animation:wallet-sheen 5s ease-in-out 1s infinite}@keyframes wallet-sheen{0%{transform:translate(-120%)}30%,to{transform:translate(120%)}}.shop-wallet-label{font-size:12.5px;font-weight:700;opacity:.75}.shop-wallet-amount{font-family:var(--font-display);font-weight:800;font-size:42px;line-height:1.05;font-variant-numeric:tabular-nums;animation:level-bump .6s var(--ease-out, ease-out)}.shop-wallet-unit{font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;opacity:.8}.shop-item{display:grid;grid-template-columns:auto 1fr;gap:14px 16px;align-items:center;position:relative}.shop-item-art{position:relative;width:104px;height:104px;display:grid;place-items:center}.shop-item-glow{position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:50%;background:radial-gradient(circle,#6fb8ff8c,#6fb8ff00 70%);animation:glow-breathe 3s ease-in-out infinite}@keyframes glow-breathe{0%,to{transform:scale(.9);opacity:.7}50%{transform:scale(1.1);opacity:1}}.shop-item-icon{position:relative}.shop-item-name{font-family:var(--font-display);font-weight:800;font-size:18px}.shop-item-desc{font-size:13px;color:var(--text-dim);line-height:1.45;margin:3px 0 8px}.shop-item-have{display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:700;color:var(--text-dim)}.shop-item-buy{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;border-top:2px dashed var(--border)}.shop-buy-btn{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:16px;padding:11px 22px;min-width:130px;justify-content:center}.shop-buy-btn.btn-gold{box-shadow:0 4px #d9a800}.shop-buy-btn.btn-gold:active{box-shadow:0 1px #d9a800;transform:translateY(3px)}.shop-buy-btn[aria-disabled=true]{opacity:.55}.shop-item-note{font-size:13px;font-weight:700;color:var(--green);text-align:right}.shop-item-note.is-warn{color:var(--text-faint)}.shop-earn{display:flex;align-items:center;gap:14px}.shop-burst{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.shop-burst i{position:absolute;left:50%;top:50%;margin:-8px 0 0 -8px;animation:coin-burst .9s var(--ease-out, ease-out) both}@keyframes coin-burst{0%{transform:rotate(var(--a)) translateY(0) scale(.6);opacity:1}to{transform:rotate(var(--a)) translateY(-62px) scale(1);opacity:0}}.shop-toast{position:fixed;left:50%;bottom:calc(86px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:90;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 32px);padding:10px 16px;border-radius:999px;background:var(--ink);color:#fff;font-size:13.5px;font-weight:700;box-shadow:0 8px 24px #0000004d;animation:toast-life 2.6s var(--ease-out, ease-out) both}html[data-theme=dark] .shop-toast{background:var(--surface-2);color:var(--text)}@keyframes toast-life{0%{opacity:0;transform:translate(-50%,16px)}10%,85%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,8px)}}.fox-widget-overlay{z-index:310;align-items:center;padding:16px}.fox-widget-panel{border-radius:22px;text-align:center;max-width:400px;position:relative}.fox-widget-panel .modal-title{margin-bottom:14px;line-height:1.2}.fox-widget-reward{margin:-4px 0 12px}.fox-widget-reward-xp{display:inline-block;font-family:var(--font-display);font-weight:800;font-size:17px;color:#15203b;background:linear-gradient(135deg,#fff3b0,var(--gold));border:var(--border-w) solid var(--ink);border-radius:999px;padding:5px 16px;box-shadow:3px 3px 0 var(--ink);animation:reward-badge 2.4s ease-in-out infinite}@keyframes reward-badge{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-4px) rotate(2deg)}}.fox-widget-desc{font-size:13.5px;line-height:1.5;margin:14px 0 16px}.fox-widget-actions{display:flex;flex-direction:column;gap:8px;margin-top:4px}.fox-widget-cta{font-size:16px;padding:13px 22px;animation:cta-breathe 2.8s ease-in-out .8s infinite}.fox-widget-cheer{display:inline-block;margin-bottom:4px}.fox-widget-xp{font-family:var(--font-display);font-weight:800;font-size:40px;color:#d98b00;line-height:1.1}.fox-widget-overlay.is-celebrate .level-progress{text-align:left;margin-bottom:14px}.fox-widget-preview{display:flex;align-items:center;gap:6px;text-align:left;padding:10px 12px;border-radius:24px;color:#fff;border:var(--border-w) solid var(--ink);box-shadow:var(--ink-shadow-sm);width:100%;max-width:340px;aspect-ratio:250 / 130;margin:0 auto;box-sizing:border-box;background:linear-gradient(135deg,#ffb347,#ff5e7e 55%,#9b4dff);transition:background .6s}.fox-widget-preview.is-sad{background:linear-gradient(135deg,#7c8cff,#3a3fb5 55%,#25266b)}.fwp-fox{flex:0 0 auto;display:flex;align-items:center;animation:rise-in .5s var(--ease-out, ease-out) both}.fwp-text{min-width:0;flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:6px;animation:rise-in .5s var(--ease-out, ease-out) .1s both}.fwp-msg{font-family:var(--font-display);font-weight:800;font-size:15px;line-height:1.15;text-shadow:0 1px 2px rgba(0,0,0,.3)}.fwp-chips{display:flex;flex-wrap:wrap;gap:5px}.fwp-chip{display:inline-flex;align-items:center;gap:3px;font-size:13px;font-weight:800;padding:2px 9px 2px 7px;border-radius:999px;background:#ffffff3d;white-space:nowrap;line-height:1.1}@media (prefers-reduced-motion: reduce){.coin3d-body,.coin-shine,.coin-spark,.day-blocker svg,.blk-shine,.shop-item-glow,.shop-wallet:after,.fox-widget-reward-xp,.fox-widget-cta,.shop-burst i,.topbar-coins.is-gaining{animation:none!important}}.bottom-nav a{padding-left:8px;padding-right:8px;min-width:0}.shop-tabs{display:flex;gap:8px;margin:22px 0 16px;padding:4px;background:var(--surface-2);border-radius:999px}.shop-tabs button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:14px;font-weight:700;color:var(--text-dim);background:transparent;border:none;border-radius:999px;padding:10px 8px;cursor:pointer;transition:background .2s,color .2s,transform .1s}.shop-tabs button:active{transform:scale(.97)}.shop-tabs button.is-active{background:var(--surface);color:var(--text);box-shadow:0 2px 0 var(--ink);border:2px solid var(--ink);padding:8px 6px}.shop-tab-count{min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:var(--teal);color:#fff;font-size:12px;display:inline-grid;place-items:center}.shop-items,.shop-sale{display:flex;flex-direction:column;gap:14px;animation:rise-in .35s var(--ease-out, ease-out) both}.shop-owned{display:flex;gap:16px;align-items:flex-start;background:linear-gradient(135deg,#9be4ff47,#2b44e714)}.shop-owned-count{font-size:13.5px;font-weight:700;color:var(--teal);margin:2px 0 8px}.shop-owned-count.is-none{color:var(--coral)}.blocker-notice-offer{background:var(--surface-2);border-radius:14px;padding:12px;margin-bottom:14px}.blocker-notice-offer-text{font-size:13px;font-weight:600;margin-bottom:8px}.blocker-notice-buy{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800}.blocker-notice-short{display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;font-weight:700;color:var(--text-faint)}.blocker-notice-panel{max-height:94dvh;overflow-y:auto}.blocker-fx{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:20px;background:#0a102099;animation:wheel-fade .2s ease-out both}.blocker-fx-card{width:min(340px,100%);text-align:center;padding:26px 20px 22px;background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:24px;box-shadow:var(--ink-shadow);animation:levelup-card-in .4s var(--ease-out, ease-out) both}.blocker-fx-slots{display:flex;justify-content:center;gap:18px;margin-bottom:16px}.blocker-fx-slot{position:relative;width:78px;height:78px;display:inline-block}.blocker-fx-slot>span{position:absolute;top:0;right:0;bottom:0;left:0}.blocker-fx-slot.is-filling .blocker-fx-full{opacity:0;animation:fx-drop .8s var(--ease-out, ease-out) var(--d) forwards}.blocker-fx-slot.is-filling .blocker-fx-empty{animation:fx-empty-out .2s ease-in var(--d) .45s forwards}.blocker-fx-slot.is-had .blocker-fx-empty{display:none}.blocker-fx-slot.is-filling:after{content:"";position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px;border-radius:50%;pointer-events:none;opacity:0;background:radial-gradient(circle,#fffffff2,#6fb8ff8c 45%,#6fb8ff00 70%);animation:fx-flash .7s ease-out calc(var(--d) + .35s) forwards}.blocker-fx-ring{pointer-events:none}.blocker-fx-ring i{position:absolute;left:50%;top:50%;margin:-7px 0 0 -7px;opacity:0;animation:fx-coin .9s var(--ease-out, ease-out) calc(var(--d) + .4s) forwards}.blocker-fx-title{font-family:var(--font-display);font-weight:800;font-size:17px;line-height:1.25;animation:rise-in .5s var(--ease-out, ease-out) .5s both}@keyframes fx-drop{0%{opacity:0;transform:translateY(-70px) scale(1.5) rotate(-12deg)}55%{opacity:1;transform:translateY(4px) scale(.92) rotate(3deg)}75%{transform:translateY(-3px) scale(1.12)}to{opacity:1;transform:none}}@keyframes fx-empty-out{to{opacity:0}}@keyframes fx-flash{0%{opacity:0;transform:scale(.4)}35%{opacity:1}to{opacity:0;transform:scale(1.5)}}@keyframes fx-coin{0%{opacity:1;transform:rotate(var(--a)) translateY(-8px) scale(.6)}to{opacity:0;transform:rotate(var(--a)) translateY(-58px) scale(1)}}@media (prefers-reduced-motion: reduce){.blocker-fx-slot.is-filling .blocker-fx-full{opacity:1;animation:none}.blocker-fx-slot.is-filling:after,.blocker-fx-ring i{animation:none;opacity:0}}.shop-item-buy{flex-wrap:wrap}.shop-buy-both{flex:1 0 100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;order:3}.study-shell--exercise>.retry-chip,html.exercise-lock .study-shell--exercise>.retry-chip{margin-top:14px}.item-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.season-block{margin-bottom:8px}.shop-empty{text-align:center;font-size:13.5px;padding:6px 12px}.item-card{--tint-a: #fff3d6;--tint-b: #ffe0a8;position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 8px 12px;border:var(--border-w) solid var(--ink);border-radius:18px;background:var(--surface);box-shadow:var(--ink-shadow-sm);text-align:center;transition:transform .15s var(--ease-out, ease-out)}.item-card:active{transform:scale(.98)}.item-card.season-spring{--tint-a: #ffe3ef;--tint-b: #c9f2d3}.item-card.season-summer{--tint-a: #fff2a8;--tint-b: #9ee7f2}.item-card.season-autumn{--tint-a: #ffd9a8;--tint-b: #f2b38a}.item-card.season-winter{--tint-a: #e4efff;--tint-b: #b8d2f5}.item-card.tone-hat{--tint-a: #efe3ff;--tint-b: #ffd6e6}html[data-theme=dark] .item-card{--tint-a: rgba(255, 255, 255, .08);--tint-b: rgba(255, 255, 255, .02)}.item-card-art{position:relative;width:100%;display:grid;place-items:center;padding:8px 0 4px;border-radius:12px;background:radial-gradient(circle at 50% 40%,var(--tint-a),var(--tint-b))}.item-card.is-worn{border-color:var(--teal);box-shadow:4px 4px 0 var(--teal)}.item-card-worn{position:absolute;top:6px;left:6px;font-size:10.5px;font-weight:800;color:#fff;background:var(--teal);padding:2px 8px;border-radius:99px}.item-card-name{font-family:var(--font-display);font-weight:800;font-size:14px;line-height:1.15;min-height:2.3em;display:flex;align-items:center}.item-card-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:800}.item-card-buy.btn-gold{box-shadow:0 3px #d9a800}.item-card-buy[aria-disabled=true]{opacity:.6}.item-card-missing{font-size:11.5px;font-weight:700;color:var(--text-faint);margin-top:-2px}.season-head{display:flex;align-items:center;gap:8px;margin:18px 0 10px;padding:8px 14px;border-radius:14px;font-weight:800;font-family:var(--font-display);font-size:15px;color:#15203b;border:2px solid var(--ink)}.season-head.season-spring{background:linear-gradient(90deg,#ffd1e3,#c9f2d3)}.season-head.season-summer{background:linear-gradient(90deg,#fff08a,#9ee7f2)}.season-head.season-autumn{background:linear-gradient(90deg,#ffc98f,#f2a27a)}.season-head.season-winter{background:linear-gradient(90deg,#d9e8ff,#aecbf3)}.season-emoji{font-size:20px}.season-now{margin-left:auto;font-size:11px;background:#15203b;color:#fff;padding:3px 9px;border-radius:99px;animation:reward-badge 2.4s ease-in-out infinite}.fitting{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#ffd84d38,#ff7aa524)}.fitting-stage{position:relative;flex-shrink:0;width:150px;height:150px;display:grid;place-items:center}.fitting-spot{position:absolute;left:50%;bottom:4px;width:128px;height:30px;transform:translate(-50%);border-radius:50%;background:radial-gradient(ellipse,#15203b38,#15203b00 70%)}.fitting-info{min-width:0;flex:1}.fitting-tags{display:flex;flex-direction:column;gap:6px;margin-top:8px}.fitting-tag{font:inherit;font-size:12.5px;font-weight:700;text-align:left;padding:6px 10px;border-radius:99px;color:var(--text-faint);background:var(--surface-2);border:2px dashed var(--border);display:flex;align-items:center;gap:6px}.fitting-tag.is-on{color:var(--text);border:2px solid var(--ink);background:var(--surface);cursor:pointer}.fitting-tag b{margin-left:auto;font-size:11px;color:var(--text-faint)}.item-fx{position:fixed;top:0;right:0;bottom:0;left:0;z-index:420;display:flex;align-items:center;justify-content:center;padding:20px;background:#0a10209e;animation:wheel-fade .2s ease-out both}.item-fx-card{width:min(340px,100%);text-align:center;padding:22px 20px 20px;background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:26px;box-shadow:var(--ink-shadow);animation:levelup-card-in .45s var(--ease-out, ease-out) both}.item-fx-stage{position:relative;width:190px;height:180px;margin:0 auto 6px;display:grid;place-items:center}.item-fx-rays{position:absolute;top:-40px;right:-40px;bottom:-40px;left:-40px;border-radius:50%;background:repeating-conic-gradient(from 0deg,#ffd84d99,#ffd84d99 10deg,#ffd84d00 10deg,#ffd84d00 30deg);-webkit-mask:radial-gradient(circle,#000 28%,transparent 68%);mask:radial-gradient(circle,#000 28%,transparent 68%);animation:levelup-rays 9s linear infinite,wheel-fade .6s ease-out both}.item-fx-fox{position:relative;animation:item-fx-pop .9s var(--ease-out, ease-out) .15s both}@keyframes item-fx-pop{0%{transform:translateY(40px) scale(.2) rotate(-14deg);opacity:0}60%{transform:translateY(-8px) scale(1.12) rotate(4deg);opacity:1}to{transform:none}}.item-fx-spark{position:absolute;font-size:22px;animation:coin-spark 1.8s ease-in-out infinite}.item-fx-spark.s0{left:4px;top:22px}.item-fx-spark.s1{right:2px;top:10px;animation-delay:.4s}.item-fx-spark.s2{right:12px;bottom:26px;animation-delay:.8s}.item-fx-spark.s3{left:10px;bottom:30px;animation-delay:1.2s}.item-fx-kicker{font-size:12.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--teal);animation:rise-in .5s var(--ease-out, ease-out) .5s both}.item-fx-name{font-family:var(--font-display);font-weight:800;font-size:24px;margin:2px 0 16px;animation:rise-in .5s var(--ease-out, ease-out) .6s both}.item-fx-actions{display:flex;flex-direction:column;gap:8px}@media (prefers-reduced-motion: reduce){.item-fx-rays,.item-fx-spark,.season-now{animation:none!important}}.gender-field{margin:4px 0 18px;text-align:left}.gender-label{display:block;font-size:13px;font-weight:600;color:var(--text-dim);margin-bottom:8px}.gender-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gender-option{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;font:inherit;font-weight:800;font-size:14px;color:var(--text-dim);background:var(--surface-2);border:3px solid var(--border);border-radius:16px;cursor:pointer;transition:transform .15s var(--ease-out, ease-out),border-color .15s,background .15s}.gender-option:active{transform:scale(.97)}.gender-option.is-active{color:var(--text);border-color:var(--teal);background:var(--surface);box-shadow:3px 3px 0 var(--teal)}.gender-option strong{font-size:15px;font-family:var(--font-display)}.gender-option small{font-size:11.5px;font-weight:600;color:var(--text-faint)}.mascot-lashes path{fill:none;stroke:#15203b;stroke-width:1.7;stroke-linecap:round}.mascot-brows-m path{fill:none;stroke:#3b2a24;stroke-width:2.8;stroke-linecap:round}.mascot-tufts path{fill:#fffaf2}.mascot-cheek.is-soft{opacity:.35}.mascot-bow path{fill:#ff6fa5}.mascot-bow .mascot-bow-knot{fill:#e0407f}.mascot-bow .mascot-bow-dot{fill:#fff;opacity:.9}.bottom-nav a{padding-left:4px;padding-right:4px;font-size:10px}.bottom-nav a .ic{font-size:19px}.chip{font:inherit;font-size:12.5px;font-weight:700;color:var(--text-dim);background:var(--surface-2);border:2px solid var(--border);border-radius:999px;padding:5px 11px;cursor:pointer;transition:transform .1s,background .15s,border-color .15s}.chip:active{transform:scale(.96)}.chip.is-on{background:var(--teal);border-color:var(--teal);color:#fff}.chip.is-static{cursor:default}.chip.is-up{color:var(--green);border-color:var(--green)}.chip.is-down{color:var(--coral);border-color:var(--coral)}.essay-daily-card{display:flex;align-items:center;gap:14px;width:100%;text-align:left;font:inherit;cursor:pointer;margin:0 0 22px;padding:14px 16px;background:linear-gradient(135deg,#ffd84d47,#ff7aa529);transition:transform .15s var(--ease-out, ease-out)}.essay-daily-card:active{transform:scale(.985)}.essay-daily-card.is-done{background:linear-gradient(135deg,#12b76a29,#6fa8d824)}.edc-icon{position:relative;width:52px;height:62px;flex-shrink:0;display:grid;place-items:center}.edc-icon i{font-style:normal;font-size:46px;filter:drop-shadow(0 3px 0 rgba(21,32,59,.2))}.edc-icon b{position:absolute;right:-4px;bottom:-2px;font-size:22px;animation:er-write 1.8s ease-in-out infinite;transform-origin:20% 90%}@keyframes er-write{0%,to{transform:rotate(-8deg) translateY(0)}50%{transform:rotate(10deg) translateY(-3px)}}.edc-body{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}.edc-kicker{font-size:10.5px;font-weight:800;letter-spacing:.06em;color:var(--text-faint)}.edc-body strong{font-family:var(--font-display);font-size:15.5px;line-height:1.25;color:var(--text)}.edc-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:2px}.edc-chip{font-size:11px;font-weight:800;background:var(--surface);border:2px solid var(--ink);color:var(--text);border-radius:99px;padding:2px 9px}.edc-cta{font-size:12.5px;font-weight:800;color:var(--teal)}.essay-page{max-width:720px;margin:0 auto}.essay-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.essay-sub{font-size:13px;line-height:1.4;margin-top:2px}.essay-card{margin-bottom:16px}.essay-card h2,.er-h{font-family:var(--font-display);font-weight:800;font-size:17px;margin:0}.essay-key{margin-bottom:14px;background:var(--coral-soft);border-color:var(--coral)}html[data-theme=dark] .essay-key{background:#b3282d2e}.essay-key p{margin:4px 0 10px;font-size:13px}.essay-step{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}.essay-step small{color:var(--text-faint);font-size:12.5px}.essay-step-n{flex-shrink:0;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--teal);color:#fff;font-weight:800;font-family:var(--font-display)}.essay-seg{display:flex;gap:6px;padding:4px;background:var(--surface-2);border-radius:999px;margin-bottom:12px}.essay-seg button{flex:1;font:inherit;font-size:12.5px;font-weight:700;color:var(--text-dim);background:transparent;border:2px solid transparent;border-radius:999px;padding:8px 6px;cursor:pointer}.essay-seg button.is-on{background:var(--surface);color:var(--text);border-color:var(--ink);box-shadow:0 2px 0 var(--ink)}.essay-actions-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.essay-daily{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;font:inherit;cursor:pointer;padding:10px 14px;border-radius:14px;background:linear-gradient(135deg,#ffd84d4d,#ff7aa52e);border:2px dashed var(--ink);margin-bottom:12px;color:var(--text)}.essay-daily span{font-size:11px;font-weight:800;letter-spacing:.05em;color:var(--text-faint)}.essay-daily b{font-family:var(--font-display);font-size:14.5px;line-height:1.25}.essay-daily small{font-size:11.5px;color:var(--text-dim)}.essay-theme-field{display:block;margin:4px 0 10px}.essay-theme-field span{display:block;font-size:12.5px;font-weight:700;color:var(--text-dim);margin-bottom:4px}.essay-theme-field textarea,.essay-editor{width:100%;font:inherit;font-size:15px;line-height:1.55;color:var(--text);background:var(--bg-elev);border:var(--border-w) solid var(--border);border-radius:14px;padding:10px 12px;resize:vertical}.essay-theme-field textarea:focus,.essay-editor:focus{outline:none;border-color:var(--teal)}.essay-editor{min-height:260px;font-size:15.5px;line-height:1.65}.essay-collapse{font:inherit;font-weight:800;font-size:14px;background:none;border:none;color:var(--teal);cursor:pointer;padding:6px 0}.essay-loading{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:14px;background:var(--surface-2);margin-bottom:10px;font-size:13px;font-weight:600}.essay-loading span{flex:1}.essay-error{background:var(--coral-soft);color:var(--coral);border:2px solid var(--coral);border-radius:12px;padding:9px 12px;font-size:13px;font-weight:600;margin-bottom:10px}html[data-theme=dark] .essay-error{background:#b3282d2e;color:#ff9a96}.essay-note{border-radius:12px;padding:9px 12px;font-size:13px;margin-bottom:10px;line-height:1.45}.essay-note.is-ok{background:var(--green-soft);color:var(--green)}.essay-note.is-warn{background:#ffd84d47;color:var(--text)}.essay-note.is-err{background:var(--coral-soft);color:var(--coral)}.essay-tabs{display:flex;gap:6px;margin-bottom:12px}.essay-tabs button{flex:1;font:inherit;font-size:12.5px;font-weight:700;padding:9px 4px;border-radius:12px;border:2px solid var(--border);background:var(--surface-2);color:var(--text-dim);cursor:pointer}.essay-tabs button.is-on{border-color:var(--teal);background:var(--surface);color:var(--text);box-shadow:3px 3px 0 var(--teal)}.essay-drop{border:2px dashed var(--border);border-radius:14px;padding:14px;text-align:center;margin-bottom:12px}.essay-drop p{font-size:13px;color:var(--text-dim);margin:0 0 10px;line-height:1.45}.essay-photos{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:10px}.essay-photo{position:relative;width:84px;height:112px;border-radius:10px;overflow:hidden;border:2px solid var(--ink)}.essay-photo img{width:100%;height:100%;object-fit:cover}.essay-photo button{position:absolute;top:3px;right:3px;width:22px;height:22px;border-radius:50%;border:none;background:#000000a6;color:#fff;font-size:11px;cursor:pointer}.essay-rewrite{background:#2b44e714;border:2px solid var(--teal);border-radius:14px;padding:10px 14px;margin-bottom:12px;font-size:13px}.essay-rewrite ul{margin:6px 0 8px 18px;padding:0}.essay-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0 8px}.essay-stat{text-align:center;background:var(--surface-2);border-radius:12px;padding:8px 4px}.essay-stat b{display:block;font-family:var(--font-display);font-size:19px}.essay-stat small{font-size:10.5px;color:var(--text-faint)}.essay-lines{position:relative;height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden;margin-bottom:10px}.essay-lines>div{height:100%;border-radius:99px;transition:width .3s,background .3s;background:var(--text-faint)}.essay-lines.is-bad>div{background:var(--coral)}.essay-lines.is-mid>div{background:#e8b84b}.essay-lines.is-good>div{background:var(--green)}.essay-lines.is-over>div{background:#e8955a}.essay-lines span{position:absolute;top:0;bottom:0;width:2px;background:var(--ink);opacity:.5}.essay-warn{font-size:12.5px;line-height:1.4;padding:7px 11px;border-radius:10px;margin-bottom:6px;background:var(--surface-2)}.essay-warn.is-block{background:var(--coral-soft);color:var(--coral);font-weight:700}.essay-warn.is-warn{background:#ffd84d40}.essay-clear{margin-top:4px}.essay-mode-hint,.essay-reward-hint{font-size:12.5px;line-height:1.45;margin:6px 0 10px}.essay-go{font-size:17px;padding:14px 22px;animation:cta-breathe 2.8s ease-in-out 1s infinite}.essay-go:disabled{animation:none}.essay-hist-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.essay-hist-list{display:flex;flex-direction:column;gap:8px}.essay-hist-item{display:flex;align-items:center;gap:12px;text-align:left;font:inherit;width:100%;background:var(--surface-2);border:2px solid var(--border);border-radius:14px;padding:10px 12px;cursor:pointer;color:var(--text)}.essay-hist-item>b{font-family:var(--font-display);font-size:22px;min-width:52px;text-align:center}.essay-hist-item strong{display:block;font-size:13.5px;line-height:1.3}.essay-hist-item small{color:var(--text-faint);font-size:11.5px}.tone-top{color:#c98d00}.tone-great{color:var(--green)}.tone-good{color:var(--teal)}.tone-mid{color:#d9722b}.tone-low{color:var(--coral)}.tone-zero{color:var(--text-faint)}.essay-empty{text-align:center;padding:28px 18px}.essay-theme-modal{max-height:90dvh}.essay-theme-list{display:flex;flex-direction:column;gap:6px;max-height:60dvh;overflow-y:auto}.essay-theme-list h4{margin:10px 0 2px;font-size:12.5px;color:var(--text-faint);letter-spacing:.04em}.essay-theme-list button{display:flex;gap:10px;align-items:center;text-align:left;font:inherit;font-size:13.5px;line-height:1.3;padding:9px 11px;border-radius:12px;border:2px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer}.essay-year{flex-shrink:0;font-weight:800;font-size:12px;background:var(--teal);color:#fff;border-radius:99px;padding:2px 8px}.essay-year.is-axis{background:var(--gold);color:#15203b;max-width:96px;text-align:center}.prop{margin-top:6px}.prop-banner{background:linear-gradient(135deg,#2b44e7,#7b4dff);color:#fff;border-radius:16px;padding:14px 16px}.prop-axis{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.85}.prop-theme{font-family:var(--font-display);font-size:18px;line-height:1.25;margin:4px 0 0}.prop-command{font-size:13.5px;line-height:1.55;margin:12px 2px;color:var(--text-dim);font-style:italic}.prop-texts{display:flex;flex-direction:column;gap:12px}.prop-text{background:var(--bg-elev);border:2px solid var(--border);border-radius:14px;padding:12px 14px}.prop-text-head{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;margin-bottom:6px}.prop-text-label{font-family:var(--font-display);font-weight:800;font-size:13px;color:var(--teal);text-transform:uppercase;letter-spacing:.04em}.prop-text-title{font-weight:700;font-size:14px}.prop-text-body{font-size:14.5px;line-height:1.6;margin:0 0 8px}.prop-text-source{font-size:11.5px;color:var(--text-faint);line-height:1.4}.prop-note{font-size:11.5px;color:var(--text-faint);margin:10px 2px 0;line-height:1.4}.pi-fig{margin:8px 0}.pi-fig figcaption{font-size:11.5px;color:var(--text-faint);margin-top:4px;line-height:1.35}.pi-chart-title{font-weight:800;font-size:13px;margin-bottom:6px}.pi-bar-row{display:grid;grid-template-columns:minmax(70px,34%) 1fr auto;gap:8px;align-items:center;margin-bottom:6px;font-size:12.5px}.pi-bar-track{height:16px;background:var(--surface-2);border-radius:6px;overflow:hidden}.pi-bar-fill{display:block;height:100%;border-radius:6px;animation:pi-grow .8s var(--ease-out, ease-out) both;transform-origin:left}@keyframes pi-grow{0%{transform:scaleX(0)}}.pi-bar-value{font-weight:800;font-variant-numeric:tabular-nums}.pi-pie{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.pi-legend{list-style:none;margin:0;padding:0;font-size:12.5px;display:flex;flex-direction:column;gap:4px}.pi-legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:4px}.pi-poster{border-radius:16px;padding:22px 16px;text-align:center;color:#fff;border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink)}.pi-poster-emoji{font-size:38px;letter-spacing:6px;margin-bottom:8px}.pi-poster-head{font-family:var(--font-display);font-weight:800;font-size:22px;line-height:1.15;text-shadow:0 2px 0 rgba(0,0,0,.18)}.pi-poster-sub{font-size:13px;margin-top:8px;opacity:.95}.pi-comic{display:grid;gap:6px;background:var(--ink);padding:6px;border-radius:10px}.pi-panel{background:#fffdf2;color:#15203b;border-radius:6px;padding:8px 6px;text-align:center;display:flex;flex-direction:column;gap:4px;min-height:140px}.pi-panel-scene{font-size:30px}.pi-bubble{background:#fff;border:2px solid #15203b;border-radius:12px;font-size:11.5px;padding:3px 7px;font-weight:700;align-self:center}.pi-panel-cap{font-size:10.5px;color:#515d78;margin-top:auto}.essay-running{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;display:flex;align-items:center;justify-content:center;padding:18px;background:#0a1020a8;animation:wheel-fade .2s ease-out both;overflow-y:auto}.er-run-card{width:min(380px,100%);background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:24px;box-shadow:var(--ink-shadow);padding:22px 20px 18px;text-align:center}.er-run-card h2{font-family:var(--font-display);font-size:21px;margin:4px 0}.er-run-card p{font-size:13px;margin-bottom:12px}.er-run-fox{position:relative;display:inline-block}.er-pencil{position:absolute;right:-14px;bottom:6px;font-size:28px;animation:er-write 1.2s ease-in-out infinite;transform-origin:20% 90%}.er-run-bar{height:8px;background:var(--surface-2);border-radius:99px;overflow:hidden;margin-bottom:14px}.er-run-bar>div{height:100%;background:linear-gradient(90deg,var(--teal),#7b4dff);border-radius:99px;transition:width .5s}.er-run-list{list-style:none;margin:0 0 12px;padding:0;text-align:left;display:flex;flex-direction:column;gap:8px}.er-run-list li{display:flex;gap:10px;align-items:flex-start;opacity:.45;transition:opacity .3s}.er-run-list li.is-running,.er-run-list li.is-done{opacity:1}.er-run-list b{display:block;font-size:13.5px}.er-run-list small{color:var(--text-faint);font-size:11.5px}.er-run-dot{flex-shrink:0;width:22px;height:22px;border-radius:50%;border:2px solid var(--border);display:grid;place-items:center;font-size:12px;font-weight:800}.er-run-list li.is-done .er-run-dot{background:var(--green);border-color:var(--green);color:#fff}.er-spin{width:12px;height:12px;border-radius:50%;border:2.5px solid var(--teal);border-top-color:transparent;animation:er-rot .8s linear infinite}@keyframes er-rot{to{transform:rotate(360deg)}}.er-run-status{font-size:12.5px;color:var(--text-dim);margin-bottom:10px}.essay-result>*{animation:item-in var(--dur-slow, .35s) var(--ease-out, ease-out) backwards}.er-hero{text-align:center;margin-bottom:14px}.er-hero.tone-top{background:linear-gradient(160deg,rgba(255,216,77,.3),transparent 60%)}.er-hero.tone-great{background:linear-gradient(160deg,rgba(18,183,106,.18),transparent 60%)}.er-hero.tone-low,.er-hero.tone-zero{background:linear-gradient(160deg,rgba(226,102,90,.14),transparent 60%)}.er-hero-top{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.er-hero-side{display:flex;flex-direction:column;align-items:center;gap:4px}.er-band{font-family:var(--font-display);font-weight:800;font-size:16px}.er-msg{font-size:14px;color:var(--text-dim);margin:8px 0}.er-chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.er-theme{font-size:12.5px;color:var(--text-faint);margin-top:10px;line-height:1.35}.er-reward{margin-top:10px;background:#ffd84d4d;border:2px solid var(--gold);border-radius:12px;padding:6px 10px;font-size:13px;display:inline-flex;gap:5px;align-items:center;flex-wrap:wrap;justify-content:center}.score-ring{position:relative;display:inline-block}.score-ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.score-ring-num{font-family:var(--font-display);font-weight:800;font-size:54px;line-height:1;font-variant-numeric:tabular-nums}.score-ring-max{font-size:12px;color:var(--text-faint);font-weight:700}.er-alert{margin-bottom:14px}.er-alert.is-bad{background:var(--coral-soft);border-color:var(--coral)}.er-alert.is-info{background:#2b44e714;font-size:13px}.er-alert p{margin:4px 0 0;font-size:13.5px;line-height:1.5}.er-overview{margin-bottom:14px}.er-overview-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:10px;align-items:center;justify-items:center}@media (min-width: 560px){.er-overview-grid{grid-template-columns:240px 1fr}}.er-rows{width:100%;display:flex;flex-direction:column;gap:10px}.er-row{width:100%;text-align:left;font:inherit;background:none;border:none;padding:0;cursor:pointer;color:var(--text)}.er-row-top{display:flex;gap:8px;align-items:baseline;margin-bottom:4px;font-size:13px}.er-row-name{flex:1;color:var(--text-dim);font-size:12.5px}.er-compare{font-size:12px;margin-top:8px}.level-bar{position:relative;height:10px;background:var(--surface-2);border-radius:99px;overflow:visible}.level-bar-fill{height:100%;border-radius:99px;transition:width 1s var(--ease-out, ease-out)}.level-bar-tick{position:absolute;top:0;bottom:0;width:2px;background:var(--bg-elev);opacity:.9}.level-bar-mark{position:absolute;top:-9px;transform:translate(-50%);width:15px;height:15px;border-radius:50%;background:var(--teal);color:#fff;font-size:9px;font-weight:800;display:grid;place-items:center;border:1.5px solid #fff}.level-bar-mark.is-b{background:#e8955a}.er-summary{margin-bottom:14px}.er-verdict{font-size:14.5px;line-height:1.6;margin:8px 0 12px}.er-trio{display:grid;grid-template-columns:1fr;gap:10px}@media (min-width: 620px){.er-trio{grid-template-columns:repeat(3,1fr)}}.er-box{border-radius:14px;padding:10px 12px;font-size:13px;line-height:1.45}.er-box h3{font-size:13.5px;margin:0 0 6px;font-family:var(--font-display)}.er-box ul,.er-box ol{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}.er-box.is-good{background:var(--green-soft)}.er-box.is-bad{background:var(--coral-soft)}.er-box.is-tip{background:#ffd84d47}html[data-theme=dark] .er-box.is-good{background:#0e7c5a33}html[data-theme=dark] .er-box.is-bad{background:#b3282d2e}.er-focus{font-size:13px;margin-top:10px}.er-h-section{margin:22px 2px 10px}.er-hint{font-size:12.5px;margin:4px 0 10px}.cc{margin-bottom:10px;padding:12px 14px;border-left:6px solid var(--cc)}.cc-head{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font:inherit;background:none;border:none;padding:0 0 8px;cursor:pointer;color:var(--text)}.cc-badge{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-size:19px;flex-shrink:0}.cc-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.cc-title b{font-size:13.5px;line-height:1.25}.cc-title small{color:var(--text-faint);font-size:11.5px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cc-score{font-family:var(--font-display);text-align:right}.cc-score b{font-size:24px}.cc-score small{color:var(--text-faint);font-size:11px}.cc-chevron{color:var(--text-faint)}.cc-body{margin-top:14px;font-size:14px;line-height:1.55}.cc-note{background:#2b44e714;border-radius:10px;padding:7px 10px;font-size:12.5px;margin-bottom:10px}.cc-note.is-bad{background:var(--coral-soft);color:var(--coral);font-weight:700;margin-top:8px}.cc-summary{margin:0 0 8px;font-weight:600}.cc-plain{font-size:12px;margin:0 0 8px}.cc-h{font-family:var(--font-display);font-size:14px;margin:14px 0 6px}.cc-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:5px}.cc-good li::marker{color:var(--green)}.cc-bad li::marker{color:var(--coral)}.cc-tip li::marker{color:#e8a800}.cc-changes{display:flex;flex-direction:column;gap:8px}.cc-change{background:var(--surface-2);border-radius:12px;padding:8px 10px;font-size:13px}.cc-from{color:var(--coral);text-decoration:line-through;text-decoration-color:#e2665a80}.cc-to{color:var(--green);font-weight:700;margin-top:2px}.cc-why{color:var(--text-dim);font-size:12.5px;margin-top:2px}.cc-rep-item{background:var(--surface-2);border-radius:12px;padding:8px 10px;margin-bottom:6px;font-size:13px}.cc-rep-item p{margin:4px 0 0;color:var(--text-dim)}.cc-rep-flags{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;font-size:11.5px;font-weight:700}.cc-rep-flags .ok{color:var(--green)}.cc-rep-flags .no{color:var(--coral)}.cc-struct-item{border-left:4px solid var(--border);padding:4px 10px;margin-bottom:6px;font-size:13px}.cc-struct-item.is-ok{border-color:var(--green)}.cc-struct-item.is-bad{border-color:var(--coral)}.cc-struct-item p{margin:2px 0 0;color:var(--text-dim)}.cc-chips{display:flex;flex-wrap:wrap;gap:6px}.cc-elements{display:flex;flex-direction:column;gap:6px}.cc-el{display:flex;gap:10px;background:var(--surface-2);border-radius:12px;padding:8px 10px}.cc-el-mark{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:800;flex-shrink:0;color:#fff}.cc-el.is-ok .cc-el-mark{background:var(--green)}.cc-el.is-no .cc-el-mark{background:var(--coral)}.cc-el b{display:block;font-size:13.5px}.cc-el small{display:block;color:var(--text-faint);font-size:11.5px}.cc-el em{display:block;font-size:12.5px;color:var(--text-dim);margin-top:2px}.cc-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.cc-levels{list-style:none;margin:10px 0 0;padding:0;font-size:12px;display:flex;flex-direction:column;gap:5px}.cc-levels li{padding:6px 9px;border-radius:10px;background:var(--surface-2);color:var(--text-dim)}.cc-levels li.is-here{background:#2b44e71f;color:var(--text);font-weight:600}.cc-pct{font-size:11.5px;margin-top:10px}.annotated-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.annotated-text{white-space:pre-wrap;font-size:15.5px;line-height:2;padding:12px 6px;border-top:2px dashed var(--border);margin-top:6px;word-break:break-word}.ann{background:none;color:inherit;cursor:pointer;border-radius:3px;padding:1px 0;transition:background .15s}.ann-error{text-decoration:underline wavy #e2665a;text-decoration-thickness:1.6px;text-underline-offset:4px;background:#e2665a1a}.ann-attention{text-decoration:underline #e8a800;text-decoration-thickness:2px;text-underline-offset:4px;background:#ffd84d38}.ann-good{background:#12b76a33;border-bottom:2px solid var(--green)}.ann.is-selected{outline:2px solid var(--teal);background:#2b44e729}.ann-sheet{position:sticky;bottom:calc(var(--bottom-nav-h, 62px) + 8px);z-index:20;background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:18px;box-shadow:var(--ink-shadow-sm);padding:12px 14px;margin-top:10px;font-size:13.5px;line-height:1.5;animation:slideup .2s ease}.ann-sheet-error{border-color:var(--coral)}.ann-sheet-good{border-color:var(--green)}.ann-sheet-attention{border-color:#e8a800}.ann-sheet-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.ann-sheet-kind{font-weight:800}.ann-sheet-comp{color:#fff;font-size:11px;font-weight:800;border-radius:99px;padding:1px 8px}.ann-sheet-cat{font-weight:700;color:var(--text-dim);font-size:12.5px}.ann-sheet-close{margin-left:auto;background:none;border:none;font-size:15px;cursor:pointer;color:var(--text-faint)}.ann-sheet-quote{margin:0 0 6px;padding-left:10px;border-left:3px solid var(--border);color:var(--text-dim);font-style:italic}.ann-sheet p{margin:0 0 6px}.ann-sheet-sug{background:var(--surface-2);border-radius:10px;padding:6px 9px}.ann-sheet-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px}.annotated-unlocated{margin-top:10px;font-size:12.5px}.annotated-unlocated ul{margin:6px 0 0 18px;padding:0;display:flex;flex-direction:column;gap:5px}.er-rewrite .er-rw-before,.er-rewrite .er-rw-after{border-radius:12px;padding:8px 12px;margin:8px 0}.er-rw-before{background:var(--coral-soft)}.er-rw-after{background:var(--green-soft)}html[data-theme=dark] .er-rw-before{background:#b3282d2e}html[data-theme=dark] .er-rw-after{background:#0e7c5a33}.er-rw-before small,.er-rw-after small{font-weight:800;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint)}.er-rw-before p,.er-rw-after p{margin:3px 0 0;font-size:14px;line-height:1.6}.er-xray{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}@media (min-width: 560px){.er-xray{grid-template-columns:repeat(6,1fr)}}.er-xray>div{text-align:center;background:var(--surface-2);border-radius:12px;padding:8px 4px}.er-xray b{display:block;font-family:var(--font-display);font-size:19px}.er-xray small{font-size:10.5px;color:var(--text-faint)}.er-xray b.is-up{color:var(--green)}.er-xray b.is-down{color:var(--coral)}.er-xray-note{font-size:12.5px;margin:8px 0 0;color:var(--text-dim)}.er-actions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 8px}.er-disclaimer{font-size:11.5px;margin:8px 2px 24px;line-height:1.45}@media (prefers-reduced-motion: reduce){.edc-icon b,.er-pencil,.er-spin,.essay-go{animation:none!important}}@keyframes done-stat-fixed{0%{opacity:0}}.completion-stats>div.coin-stat{animation:done-stat-fixed .3s ease-out .1s both}html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important;scroll-behavior:auto!important}html[data-motion=off] .season-fx,html[data-motion=off] .day-sky-orb,html[data-motion=off] .day-star,html[data-motion=off] .fly-coin{display:none}.fly-coin>i{position:absolute;top:0;right:0;bottom:0;left:0;display:block;border-radius:50%}.fly-coin .fc-face{background-image:var(--coin);background-size:contain;background-repeat:no-repeat;backface-visibility:hidden}.fly-coin .fc-face.front{transform:translateZ(2.5px)}.fly-coin .fc-face.back{transform:rotateY(180deg) translateZ(2.5px)}.fly-coin .fc-edge{top:1px;right:1px;bottom:1px;left:1px;background:#d89a10;transform:translateZ(var(--z))}.fly-coin .fc-edge.b{background:#b57400}.fly-coin{position:fixed;left:0;top:0;z-index:1200;pointer-events:none;display:block;will-change:transform,opacity}.fly-coin-canvas{position:fixed;left:0;top:0;z-index:1200;pointer-events:none}html[data-motion=off] .fly-coin-canvas{display:none}.fly-coin-in{position:absolute;top:0;right:0;bottom:0;left:0;display:block;transform-style:preserve-3d;will-change:transform}.season-fx{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;height:100dvh;pointer-events:none;z-index:45}#app{isolation:isolate}.day-sky{position:fixed;left:0;right:0;top:0;height:240px;z-index:-1;pointer-events:none;overflow:hidden;background:linear-gradient(to bottom,var(--sky-a, transparent),transparent);transition:background 1.2s ease}.day-sky.is-dawn{--sky-a: rgba(255, 150, 140, .3)}.day-sky.is-day{--sky-a: rgba(255, 214, 110, .24)}.day-sky.is-dusk{--sky-a: rgba(255, 120, 90, .28)}.day-sky.is-night{--sky-a: rgba(70, 84, 200, .3)}html[data-theme=dark] .day-sky.is-day{--sky-a: rgba(255, 214, 110, .12)}html[data-theme=dark] .day-sky.is-dawn{--sky-a: rgba(255, 150, 140, .16)}html[data-theme=dark] .day-sky.is-dusk{--sky-a: rgba(255, 120, 90, .16)}.day-sky-orb{position:absolute;top:70px;right:104px;width:54px;height:54px;border-radius:50%;animation:sky-float 9s ease-in-out infinite}.is-day .day-sky-orb{background:radial-gradient(circle at 40% 35%,#fffbd0,#ffd84d 55%,#ffb800);box-shadow:0 0 40px 14px #ffd84d73}.is-dawn .day-sky-orb{top:96px;background:radial-gradient(circle at 40% 35%,#fff0d8,#ffa07a 60%,#ff7a7a);box-shadow:0 0 36px 12px #ff8c7873}.is-dusk .day-sky-orb{top:90px;background:radial-gradient(circle at 40% 35%,#ffe3c0,#ff8a4d 60%,#e0506a);box-shadow:0 0 40px 14px #ff6e5073}.is-night .day-sky-orb{width:44px;height:44px;background:transparent;box-shadow:inset -12px -4px #f4f1d8,0 0 24px 6px #f4f1d847}@keyframes sky-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.day-star{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;opacity:.8;animation:star-twinkle 3s ease-in-out infinite}.day-star.s1{left:14%;top:60px}.day-star.s2{left:38%;top:108px;animation-delay:.7s}.day-star.s3{left:62%;top:52px;animation-delay:1.4s}.day-star.s4{left:78%;top:130px;animation-delay:.3s}.day-star.s5{left:26%;top:150px;animation-delay:1.9s}@keyframes star-twinkle{0%,to{opacity:.25;transform:scale(.7)}50%{opacity:1;transform:scale(1.3)}}.mascot.is-love .mascot-svg{animation:mascot-spin .9s cubic-bezier(.3,.7,.2,1) both}@keyframes mascot-spin{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.18)}to{transform:rotate(360deg) scale(1)}}.mascot-hearts-fly{position:fixed;width:0;height:0;pointer-events:none;z-index:1100}.mascot-hearts-fly i{position:absolute;font-style:normal;font-size:16px;opacity:0;will-change:transform,opacity;animation:heart-float var(--ms, 1.8s) cubic-bezier(.25,.4,.55,1) both;animation-delay:calc(var(--k, 0) * .13s)}@keyframes heart-float{0%{opacity:0;transform:translate(0) scale(.4)}8%{opacity:1}to{opacity:1;transform:translate(calc((var(--k, 0) - 2) * 18px),calc(var(--rise, 64px) * -1)) scale(1.15)}}.item-card.is-rare{transform:perspective(700px) rotateX(var(--tx, 0deg)) rotateY(var(--ty, 0deg));transition:transform .12s ease-out;will-change:transform}.item-card.is-rare:active{transform:perspective(700px) scale(.98)}.item-card.is-rare .item-card-art{overflow:hidden}.item-card.is-rare .item-card-art:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:12px;pointer-events:none;background:linear-gradient(115deg,transparent 20%,rgba(255,255,255,.6) 36%,rgba(255,140,210,.38) 45%,rgba(120,225,255,.42) 54%,rgba(255,255,255,.4) 62%,transparent 76%);background-size:260% 100%;background-position:130% 0;animation:holo-sweep 3.8s ease-in-out infinite}.item-card.is-rare:hover .item-card-art:after{animation:none;background-position:var(--hx, 50%) 0}@keyframes holo-sweep{0%,35%{background-position:130% 0}75%,to{background-position:-40% 0}}.item-rare-tag{position:absolute;top:6px;right:6px;font-size:15px;line-height:1;text-shadow:0 0 6px rgba(255,216,77,.9);animation:star-twinkle 2.4s ease-in-out infinite}.milestone-fx{z-index:430}.milestone-stage{width:230px}.milestone-flame{position:absolute;left:6px;bottom:14px;z-index:1;filter:drop-shadow(0 0 14px rgba(255,150,40,.65));animation:item-fx-pop .8s var(--ease-out, ease-out) .35s both}.milestone-fox{margin-left:44px}.milestone-number{font-family:var(--font-display);font-weight:800;font-size:76px;line-height:1;margin-top:2px;background:linear-gradient(180deg,#ffd84d,#ff7a3d);-webkit-background-clip:text;background-clip:text;color:transparent;animation:rise-in .55s var(--ease-out, ease-out) .5s both}.milestone-days{font-weight:800;font-size:15px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim);animation:rise-in .5s var(--ease-out, ease-out) .62s both}.milestone-msg{margin:10px 0 16px;color:var(--text-dim);font-size:14.5px;line-height:1.45;animation:rise-in .5s var(--ease-out, ease-out) .74s both}.study-cal{margin-bottom:14px}.study-cal-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:10px}.study-cal-title{font-family:var(--font-display);font-weight:800;font-size:17px}.study-cal-sub{white-space:nowrap;font-size:12px;color:var(--text-dim);font-weight:600}.study-cal-scroll{overflow-x:auto;padding-bottom:6px}.cal-body{display:flex;gap:14px;width:max-content}.cal-month{display:flex;flex-direction:column;gap:6px}.cal-month-name{height:14px;font-size:11px;font-weight:800;line-height:14px;color:var(--text-dim);text-transform:capitalize;white-space:nowrap}.cal-month-grid{display:grid;grid-template-columns:repeat(var(--cols),24px);grid-template-rows:repeat(7,24px);gap:3px}.cal-dow{display:flex;flex-direction:column;gap:6px;position:sticky;left:0;z-index:1;background:var(--surface);padding-right:8px;margin-right:-6px}.cal-dow-col{display:grid;grid-template-rows:repeat(7,24px);gap:3px}.cal-dow-col span{display:flex;align-items:center;font-size:10px;font-weight:700;color:var(--text-faint)}.cal-cell{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:6px;background:var(--surface-2);color:var(--text-dim);font:700 10px/1 var(--font-body);font-variant-numeric:tabular-nums}.cal-month-grid .cal-cell:not(.is-empty){animation:cal-pop .45s var(--ease-out, ease-out) both;animation-delay:calc(var(--c, 0) * 26ms)}.cal-cell.lv1{background:rgba(var(--teal-rgb),.28);color:var(--text)}.cal-cell.lv2{background:rgba(var(--teal-rgb),.55);color:var(--text)}.cal-cell.lv3{background:rgba(var(--teal-rgb),.8);color:var(--on-teal)}.cal-cell.lv4{background:var(--teal);color:var(--on-teal)}.cal-cell.is-future{opacity:.35;background:var(--surface-2);color:var(--text-faint)}.cal-cell.is-today{outline:2px solid var(--text);outline-offset:1px}.cal-cell.is-empty{background:transparent;box-shadow:inset 0 0 0 1.5px var(--border);opacity:.55}@keyframes cal-pop{0%{transform:scale(.2)}to{transform:scale(1)}}.study-cal-foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:10px;font-size:12.5px;color:var(--text-dim)}.study-cal-foot b{color:var(--text);font-family:var(--font-display);font-size:15px}.study-cal-legend{margin-left:auto;display:inline-flex;align-items:center;gap:3px;font-size:11px}.study-cal-legend .cal-cell{width:12px;height:12px;aspect-ratio:auto}.study-cal-legend .cal-cell{margin:0 1px}.weekly-card{margin-bottom:14px;background:linear-gradient(135deg,#ffb34733,#ff5e7e24 55%,#9b4dff29),var(--surface)}.weekly-top{display:flex;align-items:center;gap:12px}.weekly-title{font-family:var(--font-display);font-weight:800;font-size:18px}.weekly-sub{font-size:13px;color:var(--text-dim);font-weight:600}.weekly-days{display:flex;justify-content:space-between;gap:6px;margin:14px 0 12px}.weekly-day{flex:1;display:grid;place-items:center;height:34px;border-radius:50%;max-width:40px;font-weight:800;font-size:13px;background:var(--surface-2);color:var(--text-dim);animation:cal-pop .5s var(--ease-out, ease-out) both;animation-delay:calc(var(--i, 0) * 60ms)}.weekly-day.is-on{background:var(--gold);color:#5c3a00;box-shadow:0 2px #0000001f}.weekly-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px;text-align:center}.weekly-stats b{display:block;font-family:var(--font-display);font-size:22px;font-weight:800}.weekly-stats small{font-size:11.5px;color:var(--text-dim);font-weight:700}.weekly-note{text-align:center;margin:8px 0 0;font-size:12.5px}.focus-page{max-width:520px;margin:0 auto}.focus-card{text-align:center}.focus-stage{position:relative;width:260px;height:260px;margin:6px auto 14px}.focus-halo{position:absolute;top:14px;right:14px;bottom:14px;left:14px;border-radius:50%;background:radial-gradient(circle,rgba(79,211,160,.3),transparent 68%);opacity:.55}.is-focus .focus-halo{animation:focus-breathe 4.8s ease-in-out infinite}.is-break .focus-halo{background:radial-gradient(circle,rgba(255,216,77,.38),transparent 68%);animation:focus-breathe 4.8s ease-in-out infinite}@keyframes focus-breathe{0%,to{transform:scale(.92);opacity:.45}50%{transform:scale(1.06);opacity:.9}}.focus-ring{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.focus-ring-bg{fill:none;stroke:var(--surface-2);stroke-width:14}.focus-ring-fg{fill:none;stroke:var(--teal);stroke-width:14;stroke-linecap:round;transition:stroke-dashoffset .3s linear}.is-break .focus-ring-fg{stroke:var(--gold)}.is-paused .focus-ring-fg{opacity:.55}.focus-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.focus-fox{position:relative}.focus-book{position:absolute;right:-8px;bottom:2px;font-size:24px;animation:sky-float 3s ease-in-out infinite}.focus-time{font-family:var(--font-display);font-weight:800;font-size:42px;line-height:1.05;font-variant-numeric:tabular-nums;margin-top:2px}.focus-label{font-size:12.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.focus-presets{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:14px}.focus-preset{font:inherit;font-weight:800;font-size:14px;padding:9px 16px;border-radius:999px;border:2px solid var(--border);background:var(--surface-2);color:var(--text-dim);cursor:pointer;transition:transform .15s var(--ease-out, ease-out)}.focus-preset:active{transform:scale(.94)}.focus-preset.is-on{background:var(--teal);border-color:var(--teal);color:#fff}.focus-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.focus-done-msg{font-weight:700;margin:0 0 12px;animation:rise-in .5s var(--ease-out, ease-out) both}.focus-stats{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;margin-top:14px}.focus-stats b{display:block;font-family:var(--font-display);font-size:24px;font-weight:800}.focus-stats small{font-size:12px;color:var(--text-dim);font-weight:700}.focus-link-card{display:flex;align-items:center;gap:12px;margin-bottom:14px}.focus-link-card .focus-link-text{flex:1;min-width:0}.focus-link-card b{display:block;font-family:var(--font-display);font-size:16px}.focus-link-card small{color:var(--text-dim);font-size:12.5px}.essay-badges-head{display:flex;align-items:center;justify-content:space-between}.essay-badges-count{font-weight:800;font-size:13px;color:var(--text-dim);background:var(--surface-2);padding:3px 10px;border-radius:999px}.essay-badges-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}@media (min-width: 560px){.essay-badges-grid{grid-template-columns:repeat(4,1fr)}}.essay-badge{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:10px 4px 9px;border-radius:14px;background:var(--surface-2);opacity:.6;filter:grayscale(1);animation:cal-pop .5s var(--ease-out, ease-out) both;animation-delay:calc(var(--i, 0) * 45ms)}.essay-badge.is-on{opacity:1;filter:none;background:linear-gradient(160deg,var(--gold-soft),rgba(255,94,126,.12));box-shadow:inset 0 0 0 2px #ffd84d8c}.essay-badge-icon{font-size:28px;line-height:1}.essay-badge-name{font-size:11.5px;font-weight:800;line-height:1.2}.essay-badge-new{position:absolute;top:-6px;right:-4px;font-size:9.5px;font-weight:800;color:#fff;background:var(--coral, #ef6a68);padding:2px 6px;border-radius:999px;animation:badge-pulse 1.4s ease-in-out infinite}.essay-badge.is-new{animation:badge-pop .9s var(--ease-out, ease-out) both;animation-delay:calc(var(--i, 0) * 45ms + .25s)}@keyframes badge-pop{0%{transform:scale(.3) rotate(-14deg)}60%{transform:scale(1.16) rotate(5deg)}to{transform:scale(1) rotate(0)}}.annotated-text mark.ann{background-color:transparent;background-repeat:no-repeat;background-size:0% 100%;background-position:left;animation:ann-paint .6s ease-out forwards;animation-delay:.9s}.annotated-text mark.ann-error{background-image:linear-gradient(#e2665a2e,#e2665a2e)}.annotated-text mark.ann-attention{background-image:linear-gradient(#ffd84d6b,#ffd84d6b)}.annotated-text mark.ann-good{background-image:linear-gradient(#12b76a42,#12b76a42)}.annotated-text mark.ann:nth-of-type(1){animation-delay:.15s}.annotated-text mark.ann:nth-of-type(2){animation-delay:.25s}.annotated-text mark.ann:nth-of-type(3){animation-delay:.35s}.annotated-text mark.ann:nth-of-type(4){animation-delay:.45s}.annotated-text mark.ann:nth-of-type(5){animation-delay:.55s}.annotated-text mark.ann:nth-of-type(6){animation-delay:.65s}.annotated-text mark.ann:nth-of-type(7){animation-delay:.75s}.annotated-text mark.ann:nth-of-type(8){animation-delay:.85s}@keyframes ann-paint{to{background-size:100% 100%}}.rp{padding-bottom:24px}.rp-back{background:none;border:0;color:var(--text-dim);font:700 14px var(--font-body);padding:6px 2px;cursor:pointer;margin-bottom:6px}.rp-hero{position:relative;overflow:hidden;border-radius:26px;padding:22px 18px 20px;text-align:center;color:#fff;background:linear-gradient(135deg,#2b44e7,#7b3fe4 58%,#ff5e7e);border:var(--border-w) solid var(--ink);box-shadow:var(--ink-shadow);animation:rp-rise .6s cubic-bezier(.2,.9,.3,1) both}.rp-hero.tier-start{background:linear-gradient(135deg,#3b4a78,#5b6aa8 60%,#8e9ad0)}.rp-hero.tier-epic{background:linear-gradient(135deg,#ff9f1c,#ff5e7e 55%,#7b3fe4)}.rp-orb{position:absolute;border-radius:50%;background:#ffffff1f;animation:rp-float 7s ease-in-out infinite}.rp-orb.o1{width:120px;height:120px;left:-30px;top:-30px}.rp-orb.o2{width:70px;height:70px;right:14px;top:40px;animation-delay:-2s}.rp-orb.o3{width:150px;height:150px;right:-50px;bottom:-50px;animation-delay:-4s}.rp-kicker{position:relative;font:800 12px var(--font-body);letter-spacing:2px;text-transform:uppercase;opacity:.85}.rp-range{position:relative;font:600 14px var(--font-body);opacity:.9;margin-top:2px}.rp-ring{position:relative;width:168px;height:168px;margin:14px auto 6px}.rp-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.rp-ring circle{fill:none;stroke-width:11;stroke-linecap:round}.rp-ring-bg{stroke:#ffffff40}.rp-ring-fg{stroke:#ffd84d;transition:stroke-dashoffset 1.6s cubic-bezier(.2,.8,.2,1) .3s;filter:drop-shadow(0 0 6px rgba(255,216,77,.7))}.rp-ring-in{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.rp-ring-in b{font:800 50px/1 var(--font-display)}.rp-ring-in small{font:600 13px var(--font-body);opacity:.85}.rp-tier{position:relative;font:800 24px var(--font-display);display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:4px}.rp-tier-emoji{font-size:34px}.rp-tier-emoji{display:inline-block;animation:rp-pop .7s cubic-bezier(.3,1.6,.5,1) .9s both}.rp-msg{position:relative;margin:8px auto 0;max-width:360px;font:500 14.5px/1.45 var(--font-body);opacity:.95}.rp-mascot{position:relative;margin-top:8px;animation:rp-rise .7s ease .5s both}.rp-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.rp-tile{background:var(--surface);border:2px solid var(--border);border-radius:18px;padding:14px 8px 12px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px;animation:rp-rise .5s ease both;animation-delay:calc(.25s + var(--i) * .1s)}.rp-tile-ico{font-size:22px}.rp-tile b{font:800 30px/1.1 var(--font-display);color:var(--text)}.rp-tile small{color:var(--text-dim);font:600 12.5px var(--font-body)}.rp-delta{margin-top:4px;font:800 11.5px var(--font-body);padding:2px 8px;border-radius:999px}.rp-delta.up{color:var(--green);background:var(--green-soft)}.rp-delta.down{color:var(--coral);background:var(--coral-soft)}.rp-delta.flat{color:var(--text-dim);background:var(--surface-2)}.rp-vs{font-size:12px;text-align:center;margin:8px 0 2px}.rp-card{margin-top:14px}.rp-card-title{font:800 16px var(--font-display);margin-bottom:10px}.rp-bars{display:flex;gap:8px;align-items:flex-end;height:156px;padding-top:26px}.rp-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%}.rp-bar-col{position:relative;flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center}.rp-bar-fill{display:block;width:78%;max-width:34px;height:var(--h);border-radius:10px 10px 6px 6px;background:var(--surface-2);transform-origin:bottom;animation:rp-grow .8s cubic-bezier(.2,.9,.3,1) both;animation-delay:calc(.5s + var(--i) * .09s)}.rp-bar-fill.on{background:linear-gradient(180deg,#ffd84d,#ffa81f)}.rp-bar.best .rp-bar-fill{box-shadow:0 0 14px #ffbe28a6}.rp-crown{position:absolute;left:50%;bottom:var(--h);margin-bottom:3px;font-size:22px;line-height:1;transform:translate(-50%);transform-origin:50% 100%;animation:rp-crown .6s cubic-bezier(.3,1.5,.5,1) 1.7s both}.rp-bar-val{margin-bottom:-2px;font:800 12px var(--font-body);font-variant-numeric:tabular-nums;color:#d98b00;line-height:1}html[data-theme=dark] .rp-bar-val{color:#ffc83d}html .rp-bar-val.zero,html[data-theme=dark] .rp-bar-val.zero{color:var(--text-faint)}.rp-bar small{font:700 12px var(--font-body);color:var(--text-faint)}.rp-bar.today small{color:var(--teal)}.rp-bars-sub{margin-top:10px;font:600 13px var(--font-body);color:var(--text-dim);text-align:center}.rp-level{height:14px;border-radius:999px;background:var(--surface-2);overflow:hidden}.rp-level span{display:block;height:100%;width:var(--w);border-radius:999px;background:linear-gradient(90deg,var(--teal),#7b3fe4);animation:rp-fill 1.2s cubic-bezier(.2,.8,.2,1) .6s both}.rp-essay{display:flex;justify-content:space-around;text-align:center}.rp-essay>div{display:flex;flex-direction:column;align-items:center;gap:2px}.rp-essay b{font:800 28px var(--font-display)}.rp-essay small{color:var(--text-dim);font:600 12.5px var(--font-body)}.rp-cta{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;margin-top:14px;padding:14px 16px;border-radius:16px;border:2px solid var(--ink);background:var(--gold);color:#4a3300;font:800 14.5px var(--font-body);text-align:left;cursor:pointer;box-shadow:var(--ink-shadow-sm)}.rp-share-note{font-size:12.5px;margin:0 0 10px}.rp-actions{display:flex;flex-direction:column;gap:8px}@keyframes rp-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes rp-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes rp-fill{0%{width:0}to{width:var(--w)}}@keyframes rp-pop{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@keyframes rp-crown{0%{opacity:0;transform:translate(-50%) translateY(10px) scale(.3)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes rp-float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@media (min-width: 720px){.rp{max-width:640px;margin:0 auto}.rp-actions{flex-direction:row;flex-wrap:wrap}}@media (prefers-reduced-motion: reduce){.rp-ring-fg{transition:none}}.gear-anim{transform-box:view-box}@keyframes gear-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-1.1px)}}@keyframes gear-swing{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}@keyframes gear-sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(4deg)}}@keyframes gear-twinkle{0%,to{opacity:.82}50%{opacity:1}}.gear-bob{animation:gear-bob 2.4s ease-in-out infinite}.gear-swing{animation:gear-swing 2.8s ease-in-out infinite}.gear-sway{animation:gear-sway 3.4s ease-in-out infinite}.gear-twinkle{animation:gear-twinkle 3s ease-in-out infinite}html[data-motion=off] .gear-anim{animation:none!important}@media (prefers-reduced-motion: reduce){.gear-anim{animation:none!important}}.item-card.tone-country{--tint-a: #e3f1ff;--tint-b: #ffe9c9}.item-fx-flag{position:absolute;left:50%;top:2px;width:120px;height:80px;margin-left:-60px;z-index:0;opacity:.95;transform-origin:50% 50%;animation:wc-wave 3.2s ease-in-out infinite,item-fx-pop .8s var(--ease-out, ease-out) .1s both}.item-fx-flag svg{width:100%;height:100%;display:block;border-radius:6px;box-shadow:0 6px 12px #0000004d}.item-fx-fox{z-index:1}@keyframes wc-wave{0%,to{transform:translate3d(-3px,0,0) rotate(-1.5deg)}50%{transform:translate3d(3px,0,0) rotate(1.5deg)}}@keyframes wc-pop{0%{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}@keyframes wc-shine{0%{transform:translate(-120%) skew(-18deg)}to{transform:translate(260%) skew(-18deg)}}@keyframes wc-globe{0%,to{transform:rotate(-8deg) scale(1)}50%{transform:rotate(8deg) scale(1.06)}}.wc{margin-top:6px}.wc-hero{display:flex;align-items:center;gap:12px;padding:14px;border-radius:20px;margin-bottom:12px;color:#fff;background:linear-gradient(135deg,#2b44e7,#7b3fe4 58%,#ff5e7e);border:var(--border-w) solid var(--ink);box-shadow:var(--ink-shadow-sm)}.wc-globe{font-size:44px;line-height:1;animation:wc-globe 4s ease-in-out infinite;text-shadow:0 4px 6px rgba(0,0,0,.3)}.wc-hero-text{flex:1;min-width:0}.wc-hero-title{font-family:var(--font-display);font-weight:800;font-size:17px;letter-spacing:.04em}.wc-hero-sub{font-size:12.5px;opacity:.92;margin:2px 0 8px;line-height:1.35}.wc-progress{height:10px;border-radius:99px;background:#ffffff4d;overflow:hidden}.wc-progress span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#ffd84d,#ffb400);transition:width .6s var(--ease-out, ease-out)}.wc-hero-count{font-size:12px;font-weight:800;margin-top:5px}.wc-search{width:100%;padding:12px 14px;border-radius:14px;border:var(--border-w) solid var(--border);background:var(--surface);color:var(--text);font:600 15px var(--font-body);margin-bottom:10px}.wc-search:focus{outline:2px solid var(--teal);outline-offset:1px}.wc-chips{display:flex;gap:6px;overflow-x:auto;padding:2px 0 8px;scrollbar-width:none}.wc-chips::-webkit-scrollbar{display:none}.wc-chips button{flex:0 0 auto;padding:7px 12px;border-radius:99px;border:2px solid var(--border);background:var(--surface);color:var(--text-dim);font:700 12.5px var(--font-body);cursor:pointer;white-space:nowrap}.wc-chips button.is-on{background:var(--teal);border-color:var(--teal);color:var(--on-teal)}.wc-chips-own{padding-top:0}.wc-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:4px}@media (min-width: 560px){.wc-grid{grid-template-columns:1fr 1fr}}.wc-card{background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:18px;padding:10px;box-shadow:var(--ink-shadow-sm);content-visibility:auto;contain-intrinsic-size:auto 232px}.wc-card.is-mine{border-color:var(--teal);box-shadow:4px 4px 0 var(--teal)}.wc-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.wc-flag{position:relative;flex:0 0 66px;height:44px;border-radius:6px;overflow:hidden;box-shadow:0 3px 8px #00000047}.wc-flag-art{display:block;width:100%;height:100%}.wc-flag-shine{position:absolute;top:0;right:0;bottom:0;left:0;width:40%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:wc-shine 4.8s ease-in-out infinite;pointer-events:none;will-change:transform}.wc-title{flex:1;min-width:0}.wc-name{font-family:var(--font-display);font-weight:800;font-size:16px;line-height:1.15;overflow-wrap:anywhere}.wc-region{font-size:11.5px;font-weight:600;color:var(--text-dim);margin-top:2px}.wc-mine{font:800 10.5px var(--font-body);color:#fff;background:var(--teal);padding:2px 8px;border-radius:99px;white-space:nowrap}.wc-slots{display:grid;grid-template-columns:1fr 1fr;gap:8px}.wc-slot{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 4px 8px;border-radius:14px;background:radial-gradient(circle at 50% 40%,#e3f1ff,#ffe9c9);position:relative}html[data-theme=dark] .wc-slot{background:radial-gradient(circle at 50% 40%,#ffffff1a,#ffffff08)}.wc-slot.is-worn{outline:2px solid var(--teal)}.wc-slot-worn{position:absolute;top:4px;right:6px;font:800 11px var(--font-body);color:#fff;background:var(--teal);border-radius:99px;padding:1px 7px}.wc-slot-kind{font:800 11px var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim)}.wc-slot-btn{width:92%;display:inline-flex;align-items:center;justify-content:center;gap:5px;font-weight:800}.wc-slot-btn[aria-disabled=true]{opacity:.6}.wc-empty{text-align:center;padding:24px 0}.wc-more{margin:14px 0 6px}html[data-motion=off] .wc-globe,html[data-motion=off] .wc-flag-shine,html[data-motion=off] .item-fx-flag{animation:none!important}@media (prefers-reduced-motion: reduce){.wc-globe,.wc-flag-art,.wc-flag-shine,.wc-card,.item-fx-flag{animation:none!important}}.mascot.is-still,.mascot.is-still *{animation:none!important}.mascot.is-still .mascot-shadow{display:none}html.is-scrolling .shop .gear-anim,html.is-scrolling .shop .wc-flag-shine,html.is-scrolling .shop .wc-globe,html.is-scrolling .shop .shop-item-glow,html.is-scrolling .shop .shop-wallet:after,html.is-scrolling .shop .item-card-art:after,html.is-scrolling .shop .item-rare-tag,html.is-scrolling .shop .day-blocker svg,html.is-scrolling .shop .brand-shine{animation-play-state:paused!important}.shop .item-card .coin-spark,.shop .wc-slot .coin-spark{display:none}.shop .item-card .coin-shine,.shop .wc-slot .coin-shine{animation:none}.shop .item-card{content-visibility:auto;contain-intrinsic-size:auto 214px}.wc-slot-art,.item-card-art{contain:layout paint}.card-imgs{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden;border-radius:inherit}.card-img{position:absolute;display:block;object-fit:contain;border-radius:10px;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.flashcard-face>.flashcard-tag,.flashcard-face>.flashcard-content,.flashcard-face>.flashcard-flip-hint{position:relative;z-index:1}.fcd{display:flex;flex-direction:column;gap:10px}.fcd-tabs{display:flex;gap:8px}.fcd-tab{flex:1;padding:8px 12px;border-radius:999px;font:inherit;font-weight:700;cursor:pointer;border:var(--border-w, 2px) solid var(--ink, #15203b);background:var(--surface, #fff);color:var(--ink, #15203b)}.fcd-tab.on{background:var(--ink, #15203b);color:#fff}.fcd-card{position:relative;width:100%;max-width:340px;aspect-ratio:5 / 6;margin:0 auto;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:14px;padding:24px;border-radius:18px;border:var(--border-w, 2px) solid #15203b;box-shadow:6px 6px #15203b;color:#15203b;touch-action:pan-y}.fcd-card.front{background:repeating-linear-gradient(#fff 0,#fff 33px,#e4e8f4 33px,#e4e8f4 34px),#fff}.fcd-card.back{background:#ffd84d}.fcd-imgs{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.fcd-card .flashcard-tag{position:relative;z-index:1;pointer-events:none}.fcd-text{position:relative;z-index:2;width:100%;margin:auto 0}.fcd-text .rich-editable{background:transparent;border:2px dashed rgba(21,32,59,.35);color:#15203b;min-height:3.4em;font-weight:600}.fcd-text .rich-editable:empty:before{color:#15203b80}.fcd-img{position:absolute;pointer-events:auto;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;outline:none;border-radius:10px}.fcd-img>img{width:100%;height:100%;display:block;object-fit:contain;pointer-events:none;border-radius:10px}.fcd-img.sel{outline:3px solid #2b44e7;outline-offset:2px;cursor:grabbing;z-index:4}.fcd-img:focus-visible{outline:3px solid #2b44e7;outline-offset:2px}.fcd-img-x{position:absolute;top:-14px;right:-14px;width:30px;height:30px;border-radius:50%;padding:0;border:2px solid #15203b;background:#fff;color:#b3282d;font-weight:800;font-size:14px;line-height:1;cursor:pointer}.fcd-handle{position:absolute;right:-14px;bottom:-14px;width:28px;height:28px;border-radius:8px;touch-action:none;cursor:nwse-resize;background:#2b44e7;border:2px solid #fff;box-shadow:0 0 0 2px #15203b}.fcd-tools{display:flex;flex-direction:column;gap:8px}.fcd-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.fcd-chip{width:44px;height:44px;padding:0;border-radius:10px;overflow:hidden;cursor:pointer;border:2px solid var(--ink, #15203b);background:var(--surface, #fff)}.fcd-chip.on{outline:3px solid #2b44e7;outline-offset:1px}.fcd-chip img{width:100%;height:100%;object-fit:cover;display:block}.fcd-sel{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.fcd-size{display:flex;align-items:center;gap:8px;flex:1 1 200px;font-size:13px}.fcd-size input[type=range]{flex:1;min-width:0;padding:0;border:0;background:transparent}.fcd-error{color:var(--coral, #b3282d);font-size:13px}@media (prefers-reduced-motion: reduce){.fcd-img{transition:none}}.fcd-text.boxed{position:absolute;margin:0;width:auto}.fcd-text.boxed .rich-editable{height:100%!important;min-height:0!important;overflow-y:auto;box-sizing:border-box}.fcd-tmove,.fcd-tsize{position:absolute;z-index:5;touch-action:none;user-select:none;-webkit-user-select:none;background:#2b44e7;color:#fff;border:2px solid #fff;box-shadow:0 0 0 2px #15203b}.fcd-tmove{top:4px;right:4px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:14px;line-height:1;cursor:grab}.fcd-tsize{right:4px;bottom:4px;width:22px;height:22px;border-radius:6px;cursor:nwse-resize}html[data-web=true]{--app-w: 760px}@media (min-width: 640px){html[data-web=true] body{background:var(--bg-elev);padding:0}html[data-web=true] #app{max-width:var(--app-w);margin-inline:auto;min-height:100vh;min-height:100dvh;border-radius:0;border-top:0;border-bottom:0;box-shadow:0 0 60px -28px var(--shell-shadow);overflow:visible}html[data-web=true] .modal-overlay,html[data-web=true] .ai-chat-overlay{position:fixed;top:0;right:0;bottom:0;left:0;border-radius:0;align-items:center}}html[data-web=true] .content-card,html[data-web=true] .sub-row{overflow:visible}html[data-web=true] .cg-item:has(.menu-pop),html[data-web=true] .content-card:has(.menu-pop),html[data-web=true] .sub-row:has(.menu-pop),html[data-web=true] .sub-list>*:has(.menu-pop){position:relative;z-index:50}html[data-web=true] .menu-pop{z-index:60;border:var(--border-w) solid var(--ink);box-shadow:var(--ink-shadow-sm)}.dash-side,.dash-main{display:contents}@media (min-width: 1100px){html[data-web=true]{--side-w: 272px;--rail-w: 380px;--bottom-nav-h: 0px !important}html[data-web=true] body{background:var(--bg);padding:0;display:block}html[data-web=true] #app{max-width:none;width:100%;margin:0;min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);grid-template-rows:auto 1fr;border:0;border-radius:0;box-shadow:none;overflow:visible;background:var(--bg)}html[data-web=true] .bottom-nav{grid-column:1;grid-row:1 / span 2;position:sticky;top:0;height:100vh;height:100dvh;width:auto;min-height:0;margin:0;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:6px;padding:96px 16px 24px;border-top:0;border-right:var(--border-w) solid var(--border);background:var(--bg-elev);z-index:45;overflow-y:auto}html[data-web=true] .bottom-nav .nav-indicator{display:none}html[data-web=true] .bottom-nav a{flex-direction:row;justify-content:flex-start;align-items:center;gap:16px;padding:12px 16px;border:2px solid transparent;border-radius:14px;font-size:14.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}html[data-web=true] .bottom-nav a .ic{font-size:26px;width:34px;text-align:center;line-height:1}html[data-web=true] .bottom-nav a:hover{background:var(--surface-2)}html[data-web=true] .bottom-nav a.active{background:#2b44e71a;border-color:var(--teal);color:var(--teal)}html[data-web=true] .bottom-nav .nav-badge{position:static;margin-left:auto}html[data-web=true] .topbar{grid-column:2;grid-row:1;position:sticky;top:0;z-index:30;justify-content:flex-end;padding:18px 40px 10px;border-bottom:0;background:var(--bg)}html[data-web=true] .topbar .brand{position:fixed;left:28px;top:24px;z-index:60}html[data-web=true] .topbar .brand-mark{width:38px;height:38px;font-size:20px;border-radius:12px}html[data-web=true] .topbar .brand-name{font-size:22px}html[data-web=true] .main{grid-column:2;grid-row:2;padding:8px 40px 56px}html[data-web=true] .main>.view{max-width:1320px;margin:0 auto}html[data-web=true] .dashboard{display:grid;grid-template-columns:minmax(0,1fr) var(--rail-w);column-gap:36px;align-items:start;grid-template-areas:"hello hello" "main side"}html[data-web=true] .dashboard-hello-row{grid-area:hello}html[data-web=true] .dash-main{display:block;grid-area:main;min-width:0}html[data-web=true] .dash-side{display:flex;flex-direction:column;gap:16px;grid-area:side;min-width:0;position:sticky;top:76px;max-height:calc(100vh - 96px);overflow-y:auto;padding:2px 4px 24px 2px}html[data-web=true] .dash-side>*{margin:0}html[data-web=true] .dash-side .stat-row,html[data-web=true] .dash-side .weather-card{margin:0}html[data-web=true] .dash-main>.section-title:first-child{margin-top:0}html[data-web=true] .content-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}html[data-web=true] .topbar{z-index:50}html.exercise-lock #app{grid-template-columns:minmax(0,1fr)}html.exercise-lock .bottom-nav{display:none}html.exercise-lock .topbar,html.exercise-lock .main{grid-column:1}html[data-web=true] .content-enter{display:grid;grid-template-columns:minmax(0,1fr) 340px;column-gap:36px;align-items:start}html[data-web=true] .content-enter>*{grid-column:1;min-width:0}html[data-web=true] .content-enter>.content-actions{grid-column:2;grid-row:2 / span 5;position:sticky;top:76px;margin-top:0!important}html[data-web=true] .item-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}html[data-web=true] .shop-tabs{max-width:520px}html[data-web=true] .shop-wallet{max-width:100%}html[data-web=true] .stats-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}html[data-web=true] .errors-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}html[data-web=true] .content-enter>.back-btn{justify-self:start}html[data-web=true] .study-shell{max-width:760px}html[data-web=true] .focus-page{max-width:640px}html[data-web=true] .errors-list{max-width:none}html[data-web=true] .dash-side>*{flex-shrink:0}html[data-web=true] #app.welcome-app{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;min-height:0;background:var(--bg)}html[data-web=true] #app.welcome-app .welcome-shell{width:100%;max-width:560px;flex:0 1 auto;max-height:calc(100vh - 48px);padding:32px 36px;gap:18px;background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:24px;box-shadow:var(--ink-shadow-sm, 4px 4px 0 var(--ink))}html[data-web=true] #app.welcome-app .welcome-head .page-title{font-size:30px}html[data-web=true] #app.welcome-app .welcome-head .page-desc{font-size:15.5px}html[data-web=true] #app.welcome-app .lang-list{min-height:280px;max-height:42vh;flex:0 1 auto}html[data-web=true] #app.welcome-app .welcome-shell .lang-list{max-height:42vh;min-height:240px}html[data-web=true] #app.welcome-app .btn-block,html[data-web=true] #app.welcome-app form button[type=submit]{width:100%;max-width:none}html[data-web=true] #app.welcome-app .lang-picker>button{align-self:stretch;width:100%}html[data-web=true] #app.welcome-app .welcome-shell:has(input[type=checkbox]){max-width:820px;height:calc(100vh - 48px)}html[data-web=true] #app.welcome-app .form-actions{display:flex;gap:12px}html[data-web=true] #app.welcome-app .form-actions>button{flex:1}html[data-web=true] #app.welcome-app .welcome-shell{overflow-y:auto}@media (max-height: 760px){html[data-web=true] #app.welcome-app .welcome-shell{padding:20px 28px;gap:12px}html[data-web=true] #app.welcome-app .welcome-shell .lang-list{min-height:150px;max-height:30vh}}html[data-web=true]{--area-w: calc(100vw - var(--side-w) - 80px);--view-w: min(1320px, var(--area-w));--view-left: calc(var(--side-w) + 40px + (var(--area-w) - var(--view-w)) / 2);--fab-x: calc(var(--view-left) + var(--view-w) / 2)}html[data-web=true]:has(.dashboard){--fab-x: calc(var(--view-left) + (var(--view-w) - var(--rail-w) - 36px) / 2)}html body .page-fab-bar{left:0;transform:none;width:100%;bottom:28px}html body .page-fab-bar .fab-add-exercise.fab-add-left{left:calc(var(--fab-x) - 62px)}html body .page-fab-bar .fab-add-exercise.fab-scroll-down{left:calc(var(--fab-x) + 6px)}html[data-web=true] .ai-fab-wrap{position:fixed;right:auto;left:calc(100vw - 148px);width:120px;bottom:28px}html[data-web=true]:has(.dashboard,.content-enter,.reviews-page,.errors-page),html[data-web=true]:has(.dashboard,.content-enter,.reviews-page,.errors-page) body{height:100%;overflow:hidden}html[data-web=true]:has(.dashboard,.content-enter,.reviews-page,.errors-page) #app{height:100vh;grid-template-rows:auto minmax(0,1fr)}html[data-web=true]:has(.dashboard,.content-enter,.reviews-page,.errors-page) .main{min-height:0;overflow:hidden;padding-bottom:20px}html[data-web=true]:has(.dashboard,.content-enter,.reviews-page,.errors-page) .main>.view{height:100%}.scroll-soft{scrollbar-width:thin}html[data-web=true] .dashboard{height:100%;grid-template-rows:auto minmax(0,1fr)}html[data-web=true] .dash-main{overflow-y:auto;padding:0 6px 90px 0;scrollbar-width:thin}html[data-web=true] .dash-side{position:static;top:auto;max-height:none;height:100%;scrollbar-width:none;padding-bottom:90px}html[data-web=true] .dash-side::-webkit-scrollbar{display:none}html[data-web=true] .content-enter{height:100%;grid-template-rows:auto auto auto minmax(0,1fr)}html[data-web=true] .content-enter>.sub-list{overflow-y:auto;min-height:0;padding:4px 8px 90px 2px;margin-top:16px!important;scrollbar-width:thin}html[data-web=true] .content-enter>.content-actions{grid-row:1 / span 4;position:static;align-self:start;overflow-y:auto;max-height:100%}html[data-web=true] .reviews-page,html[data-web=true] .errors-page{height:100%;overflow-y:auto;padding:0 8px 90px 0;scrollbar-width:thin}html[data-web=true] .dash-main,html[data-web=true] .dash-side{align-self:stretch;min-height:0}html[data-web=true] .content-enter>.sub-list{align-self:stretch}html[data-web=true]:has(.dashboard,.content-enter,.reviews-page,.errors-page) .main>.view{padding-bottom:0;box-sizing:border-box}}
