:root{--bg:#f4f5f8;--sur:#ffffff;--ac:#6d5ae6;--ac-soft:#ecebfb;--ac2:#0288d1;--gr:#16a34a;--rd:#dc2626;--tx:#1c2230;--sub:#697086;--bdr:#e7e9f0;--shadow:0 1px 2px rgba(20,28,50,.04), 0 2px 6px rgba(20,28,50,.05);--shadow-lg:0 4px 16px rgba(20,28,50,.08);--r:16px;--hy-bg:#fde68a;--hy-fg:#7c5800;--amber:#d97706}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--tx);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;max-width:600px;margin:0 auto;padding-bottom:78px;-webkit-font-smoothing:antialiased}h1{font-size:26px;font-weight:800;letter-spacing:-.02em}h2{font-size:20px;font-weight:700;letter-spacing:-.01em}.prompt{font-size:18px;font-weight:600;line-height:1.5;padding:18px}.card{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--r);margin:14px;padding:16px;box-shadow:var(--shadow)}button{font:inherit;cursor:pointer;border-radius:12px;border:1px solid var(--bdr);background:var(--sur);color:var(--tx);padding:12px 16px;font-weight:600;transition:transform .08s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease}button:active{transform:scale(.97)}.btn-primary{background:var(--ac);color:#fff;border-color:var(--ac);box-shadow:var(--shadow)}.btn-primary:hover{box-shadow:var(--shadow-lg)}.opt{display:block;width:100%;text-align:left;margin:8px 0}.opt.ok{border-color:var(--gr);color:var(--gr);background:#f0fdf4}.options,.tf{padding:0 14px}.rate{display:flex;gap:10px;padding:14px}.rate button{flex:1;font-weight:700}.rate .got{color:var(--gr);border-color:var(--gr)}.rate .missed{color:var(--rd);border-color:var(--rd)}.pbar{height:7px;background:var(--bdr);border-radius:4px;margin:12px 14px;overflow:hidden}.pfill{height:100%;background:var(--ac);border-radius:4px;transition:width .6s cubic-bezier(.4,0,.2,1)}.why{color:var(--sub);font-size:14px;padding:0 0 8px}.answer{padding:0 4px}input,textarea{width:100%;background:var(--bg);color:var(--tx);border:1px solid var(--bdr);border-radius:10px;padding:11px;font:inherit}input:focus,textarea:focus{outline:none;border-color:var(--ac);box-shadow:0 0 0 3px var(--ac-soft)}.snav{display:flex;align-items:center;gap:10px;padding:10px 14px 0}.snav-quit{padding:6px 14px;font-size:13px;font-weight:600}.snav-quit:disabled{opacity:.4;cursor:not-allowed}.snav-hint{font-size:12px;color:var(--sub)}.snav-flag{margin-left:auto;padding:6px 12px;font-size:13px;font-weight:600}.snav-flag[aria-pressed=true]{color:var(--rd);border-color:var(--rd)}.streak{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--r);margin:14px;padding:14px 16px;box-shadow:var(--shadow)}.streak-row{display:flex;align-items:center;gap:8px}.streak-flame{font-size:20px;line-height:1}.streak-count{font-weight:700;font-size:16px}.streak-goal{margin-left:auto;font-size:13px;color:var(--sub);font-weight:600}.ach{margin:14px}.ach-head{display:flex;align-items:center;width:100%;background:none;border:none;box-shadow:none;padding:0 2px 8px;justify-content:space-between}.ach-head:active{transform:none}.ach-toggle{font-size:12px;color:var(--ac);font-weight:600}.ach-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.ach-badge{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;background:var(--sur);border:1px solid var(--bdr);border-radius:12px;padding:10px 6px;opacity:.5;filter:grayscale(1)}.ach-badge.earned{opacity:1;filter:none;border-color:var(--ac-soft);background:var(--ac-soft)}.ach-icon{font-size:22px;line-height:1}.ach-name{font-size:11px;font-weight:700;line-height:1.15}.ach-sub{font-size:10px;color:var(--sub);font-weight:600}@media (max-width:380px){.ach-grid{grid-template-columns:repeat(3,1fr)}}.exam-banners{display:flex;flex-direction:column;gap:8px;padding:14px 14px 0}.exam-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-radius:12px;background:var(--card);border:1px solid var(--bdr);border-left:4px solid var(--ac)}.exam-banner.urgent{border-left-color:var(--rd)}.exam-banner-title{font-size:14px;font-weight:600}.exam-banner-cov{font-size:12px;color:var(--sub);white-space:nowrap}:root{--ms-ns:#e4e7ee;--ms-fa:#d97706;--ms-pr:#0f766e;--ms-ma:#6d5ae6}.ms-not-started{background:var(--ms-ns);border-color:var(--ms-ns);color:var(--tx)}.ms-familiar{background:var(--ms-fa);border-color:var(--ms-fa)}.ms-proficient{background:var(--ms-pr);border-color:var(--ms-pr)}.ms-mastered{background:var(--ms-ma);border-color:var(--ms-ma)}.smap-class{padding:0 16px 8px}.smap-unit{margin-bottom:16px}.smap-unit-name{font-size:13px;font-weight:600;color:var(--sub);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.smap-grid{display:flex;flex-wrap:wrap;gap:10px}.smap-cell{display:flex;flex-direction:column;gap:5px;min-width:116px}.smap-cell .smap-node{min-width:0}.smap-node{border-radius:10px;border:1px solid var(--bdr);padding:9px 13px;font-size:13px;font-weight:600;color:var(--tx);min-width:80px;text-align:center;cursor:default;box-shadow:var(--shadow)}.smap-test{display:flex;align-items:center;gap:7px;padding:0 2px}.smap-test-btn{flex:none;width:auto;font-size:11px;font-weight:700;padding:3px 11px;border-radius:999px}.smap-test-score{font-size:11px;color:var(--sub);font-weight:600;line-height:1.2}.cd-class-test{margin:0 14px 12px;font-size:13px;color:var(--sub);font-weight:600}.review-panel{margin:0 14px 14px;border:1px solid var(--bdr);border-radius:14px;background:var(--sur);box-shadow:var(--shadow);overflow:hidden}.review-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;border:none;border-radius:0;background:transparent;box-shadow:none;padding:13px 15px;font-size:15px;font-weight:700}.review-toggle-best{font-size:12px;font-weight:600;color:var(--sub)}.review-body{padding:0 15px 14px;border-top:1px solid var(--bdr)}.review-hint{font-size:13px;color:var(--sub);line-height:1.5;margin:12px 0}.review-unit{margin-bottom:8px}.review-unit-name{font-size:12px;font-weight:600;color:var(--sub);text-transform:uppercase;letter-spacing:.05em;margin:10px 0 6px}.review-topic{display:flex;align-items:center;gap:9px;padding:6px 2px;font-size:14px;cursor:pointer}.review-topic input{width:17px;height:17px;accent-color:var(--ac);flex:none}.review-start{display:block;width:100%;margin-top:10px}.review-start:disabled{opacity:.5;cursor:not-allowed}.smap-node.ms-familiar,.smap-node.ms-proficient,.smap-node.ms-mastered{color:#fff}.smap-node.ms-not-started{color:var(--tx)}.smap-node-runs{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;font-size:11px;font-weight:700;background:#0000002e;vertical-align:middle}.smap-node.ms-not-started .smap-node-runs{background:#0000001a}.smap-legend{display:flex;gap:10px;flex-wrap:wrap;padding:12px 16px;font-size:12px;color:var(--sub)}.smap-legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:4px;vertical-align:middle}.tab-btn{flex:1;background:none;border:1px solid var(--bdr);border-radius:12px;padding:8px 12px;font-size:14px;font-weight:600;color:var(--sub);cursor:pointer}.tab-btn.active{color:var(--tx);border-color:var(--ac)}.breadcrumb{font-size:12px;color:var(--sub);padding:6px 16px 0;display:flex;gap:4px;align-items:center}.breadcrumb-sep{opacity:.4}.learn-flow-counter{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--sub);text-transform:uppercase;letter-spacing:.05em;padding:8px 16px 0}.learn-flow-step{margin-left:auto;font-variant-numeric:tabular-nums}.learn-flow-cta{display:block;width:calc(100% - 28px);margin:10px 14px 0;font-weight:700}.learn-section-card{margin:26px 14px;padding:28px 20px;text-align:center;background:linear-gradient(160deg,var(--ac-soft),var(--sur));border:1px solid var(--bdr);border-radius:var(--r);box-shadow:var(--shadow)}.learn-section-kicker{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ac)}.learn-section-title{font-size:23px;margin:6px 0 2px}.learn-section-unit{font-size:14px;color:var(--sub);margin-bottom:18px}.learn-section-card .learn-flow-cta{width:auto;display:inline-block;margin:0;padding:11px 28px}.learn-teach-card .answer{font-size:15px;line-height:1.65;color:var(--tx)}.learn-teach-kicker{margin-bottom:2px}.learn-teach-steps{margin:8px 0 0;padding-left:22px;line-height:1.6}.learn-teach-steps li{margin:4px 0}.learn-quiz-tag{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ac);padding:14px 18px 0}.learn-quiz-fb{font-size:15px;font-weight:600;padding:10px 18px 0}.learn-quiz-fb.ok{color:var(--gr)}.learn-quiz-fb.no{color:var(--rd)}.learn-done{padding:40px 24px;text-align:center}.learn-done-emoji{font-size:48px;margin-bottom:8px}.learn-done .learn-flow-cta{margin:10px auto 0;max-width:340px}.rubric{padding:10px 14px}.rubric-point{display:flex;align-items:flex-start;gap:10px;padding:6px 0;font-size:15px;cursor:pointer;-webkit-user-select:none;user-select:none}.rubric-point input[type=checkbox]{width:18px;height:18px;flex-shrink:0;margin-top:2px;accent-color:var(--ac)}.rubric-coverage{font-size:13px;color:var(--sub);padding:4px 14px 8px}.ei-nudge{font-size:14px;color:var(--sub);font-style:italic;padding:0 18px 10px}.mnemonic{background:var(--sur);border:1px solid var(--bdr);border-radius:12px;padding:10px 14px;margin:10px 14px 0;font-size:14px;color:var(--ac2)}.mnemonic-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--sub);margin-bottom:4px}.seq-list{list-style:none;padding:0 14px}.seq-item{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--bdr)}.seq-item:last-child{border-bottom:none}.seq-text{flex:1;font-size:15px}.seq-btn{padding:4px 10px;font-size:16px;line-height:1}.seq-correct{color:var(--gr)}.seq-wrong{color:var(--rd)}.seq-reveal{padding:0 14px 10px;font-size:14px;color:var(--sub)}.conf-prompt{padding:12px 14px}.conf-label{color:var(--sub);font-size:14px;margin-bottom:8px}.conf-btns{display:flex;gap:8px}.conf-btn{flex:1;font-size:13px;padding:10px 8px;border-radius:10px}.section-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sub);padding:20px 16px 8px;margin:0}.class-list{padding:0 14px}.class-card{display:block;width:100%;text-align:left;background:var(--sur);border:1px solid var(--bdr);border-left-width:4px;border-radius:14px;padding:15px;margin-bottom:10px;box-shadow:var(--shadow)}.class-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.class-card-name{font-size:17px;font-weight:700;color:var(--tx);display:flex;align-items:center;gap:8px}.class-dot{width:10px;height:10px;border-radius:50%;flex:none}.class-card-meta{font-size:13px;color:var(--sub);font-weight:600}.class-card-sub{font-size:13px;color:var(--sub);margin-top:2px}.sg-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 14px}.sg-card{background:var(--sur);border:1px solid var(--bdr);border-radius:14px;padding:14px;text-align:left;display:flex;flex-direction:column;gap:3px;box-shadow:var(--shadow);min-height:96px}.sg-card:disabled{opacity:.5}.sg-icon{font-size:22px;line-height:1;margin-bottom:4px}.sg-title{font-weight:700;font-size:15px}.sg-sub{font-size:12px;color:var(--sub);line-height:1.4}.mode-row{display:flex;gap:8px;margin:8px 14px 0}.mode-row button{flex:1;padding:10px;font-size:14px;font-weight:700}.mode-prompt{font-size:13px;color:var(--sub);padding:10px 16px 0}.mix-picker{margin:6px 0 2px}.mix-list{display:flex;flex-direction:column;gap:8px;padding:0 14px}.mix-row{display:flex;align-items:center;gap:10px;background:var(--sur);border:1px solid var(--bdr);border-radius:12px;padding:12px 14px;box-shadow:var(--shadow);cursor:pointer;font-weight:600}.mix-row.on{border-color:var(--ac)}.mix-row input{width:18px;height:18px;accent-color:var(--ac);flex:none}.mix-name{font-size:15px}.cal-wrap{padding:14px}.cal-title{font-size:16px;font-weight:600;margin-bottom:10px}.cal-warn{color:var(--rd);font-size:14px;margin-bottom:10px}.cal-table{width:100%;border-collapse:collapse;font-size:14px}.cal-table th,.cal-table td{padding:6px 8px;text-align:left;border-bottom:1px solid var(--bdr)}.cal-table th{color:var(--sub)}.cal-total{color:var(--sub);font-size:13px;margin-top:8px}.cal-empty{color:var(--sub);padding:14px;font-size:14px}.hy-badge{display:inline-block;margin:4px 0 8px;padding:2px 8px;font-size:12px;font-weight:600;border-radius:999px;background:var(--hy-bg);color:var(--hy-fg)}.tr-score{text-align:center;padding:24px 16px 8px}.tr-score-num{font-size:44px;font-weight:800;letter-spacing:-.02em;color:var(--ac)}.tr-score-lbl{font-size:14px;color:var(--sub);margin-top:2px}.tr-open-q{font-weight:600;margin-bottom:8px}.tr-field{font-size:14px;line-height:1.5;margin:4px 0}.tr-field .tr-k{color:var(--sub);font-weight:600;margin-right:4px}.tr-graded{font-size:13px;font-weight:700}.copy-btn{margin:8px 14px 0;display:block;width:calc(100% - 28px);font-weight:700}.copy-area{margin:8px 14px 0;width:calc(100% - 28px);min-height:120px;font-size:12px;font-family:ui-monospace,Menlo,Consolas,monospace}.copy-hint{font-size:12px;color:var(--sub);padding:6px 16px 0}.tabbar{position:fixed;left:50%;transform:translate(-50%);bottom:0;width:100%;max-width:600px;display:flex;background:#fffffff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--bdr);padding-bottom:env(safe-area-inset-bottom);z-index:50}.tabbar button{flex:1;border:none;background:none;border-radius:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 4px 11px;color:var(--sub);font-size:11px;font-weight:600;position:relative}.tabbar button.active{color:var(--ac)}.tabbar button:disabled{opacity:.4;cursor:default}.tabbar button:active{transform:none}.tb-icon{font-size:21px;line-height:1}.tb-badge{position:absolute;top:5px;left:calc(50% + 8px);background:var(--rd);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:999px;padding:0 4px;display:flex;align-items:center;justify-content:center}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.anim-fadeup{animation:fadeUp .38s cubic-bezier(.2,.7,.3,1) both;animation-delay:calc(var(--i,0)*45ms)}.view-fade{animation:fadeIn .22s ease both}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}button:active{transform:none}}.unit-section{margin:0 14px 12px;border:1px solid var(--bdr);border-radius:14px;background:var(--sur);box-shadow:var(--shadow);overflow:hidden}.unit-header{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;border:none;border-radius:0;background:transparent;box-shadow:none;padding:13px 15px;font-size:15px;font-weight:700;cursor:pointer}.unit-header-title{white-space:nowrap}.unit-header-summary{display:flex;align-items:center;gap:7px;min-width:0}.unit-mastery{font-size:12px;font-weight:600;color:var(--sub);white-space:nowrap}.unit-sep{font-size:12px;color:var(--sub);opacity:.55}.unit-due{font-size:12px;font-weight:600;color:var(--sub);white-space:nowrap}.unit-due[data-status=due]{color:#b06a00}.unit-test-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 15px 12px}.combo{display:inline-block;margin:6px 16px 0;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:700;background:color-mix(in srgb,var(--ac) 12%,transparent);color:var(--ac);animation:combo-pop .15s ease-out}.combo-t1{background:#fef3c7;color:#b45309}.combo-t2{background:#ffedd5;color:#c2410c;font-size:14px}.combo-t3{background:#fee2e2;color:#dc2626;font-size:15px}@keyframes combo-pop{0%{transform:scale(.7)}to{transform:scale(1)}}@media (prefers-reduced-motion: reduce){.combo{animation:none}}.heatmap{margin:10px 14px 4px}.heatmap-grid{display:grid;grid-template-rows:repeat(7,10px);grid-auto-flow:column;grid-auto-columns:10px;gap:3px;overflow-x:auto;padding-bottom:4px}.heat-cell{width:10px;height:10px;border-radius:2px;background:var(--line, #e5e7eb)}.heat-1{background:#bbf7d0}.heat-2{background:#4ade80}.heat-3{background:#16a34a}.heat-4{background:#14532d}.smap-node.smap-gated{opacity:.55}.smap-gate-tease{display:block;margin-top:4px;font-size:11px;font-weight:600;color:var(--sub, #6b7280)}.streak-freeze{font-size:12px;font-weight:700;color:#0284c7;background:#e0f2fe;border-radius:999px;padding:2px 8px;margin-left:8px}.feed-wrap{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg, #fff);z-index:30;display:flex;flex-direction:column}.feed-top{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top)) 12px 10px;pointer-events:none}.feed-top .combo{pointer-events:none;margin:0}.feed-exit{pointer-events:auto;margin-left:auto;background:#ffffff8c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:0;border-radius:999px;width:34px;height:34px;font-size:15px;cursor:pointer;color:var(--fg, #111)}.feed-scroll{flex:1;overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior-y:contain}.feed-slide{height:100dvh;scroll-snap-align:start;scroll-snap-stop:always;display:flex;align-items:stretch}.feed-card{flex:1;display:flex;flex-direction:column;justify-content:center;padding:56px 22px 84px;position:relative;touch-action:pan-y}.feed-pbar{position:absolute;top:6px;left:12px;right:12px;height:3px;border-radius:2px;background:#0000001a;overflow:hidden}.feed-pfill{height:100%;background:var(--ac)}.feed-kicker{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--sub, #6b7280);margin:0 0 14px}.feed-kicker-bonus{color:#b45309}.feed-bonus{border-radius:16px;padding:18px;background:linear-gradient(160deg,#fef9c3,#ffedd5)}.feed-note-prompt,.feed-quiz-prompt{font-size:clamp(24px,6vw,34px);font-weight:800;line-height:1.25;margin:0 0 14px}.feed-note-answer{font-size:clamp(18px,4.5vw,24px);font-weight:600;color:var(--ac);margin:0 0 10px}.feed-note-why{font-size:16px;color:var(--sub, #4b5563);line-height:1.5;margin:0 0 10px}.feed-note-steps{font-size:16px;line-height:1.6;padding-left:22px;margin:0 0 10px}.feed-note-mnemonic{margin-top:8px;padding:10px 14px;border-radius:12px;background:#ecfeff;font-size:15px}.feed-note-mnemonic-label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#0e7490;margin-bottom:2px}.feed-hint{font-size:13px;color:var(--sub, #9ca3af);text-align:center;margin:18px 0 0}.feed-options,.feed-bank{display:flex;flex-direction:column;gap:10px;margin-top:auto}.feed-bank{flex-direction:row;flex-wrap:wrap}.feed-opt{width:100%;min-height:52px;padding:15px 16px;font-size:17px;font-weight:600;border:1.5px solid var(--line, #e5e7eb);border-radius:14px;background:var(--card, #fff);text-align:left;cursor:pointer}.feed-bank .feed-opt{width:auto;flex:1 1 40%;text-align:center}.feed-opt.ok{background:#dcfce7;border-color:#16a34a;animation:feed-flash .14s ease-out}.feed-opt.no{background:#fee2e2;border-color:#dc2626;animation:feed-shake .15s ease-out}.feed-tf-row{display:flex;gap:12px;margin-top:auto}.feed-tf{flex:1;padding:26px 0;font-size:22px;font-weight:800;border:1.5px solid var(--line, #e5e7eb);border-radius:16px;background:var(--card, #fff);cursor:pointer}.feed-tf.ok{background:#dcfce7;border-color:#16a34a;animation:feed-flash .14s ease-out}.feed-tf.no{background:#fee2e2;border-color:#dc2626;animation:feed-shake .15s ease-out}.feed-qa-answer{margin-top:6px}.feed-zones{display:flex;gap:12px;margin-top:auto}.feed-zone{flex:1;padding:24px 0;font-size:18px;font-weight:700;border:0;border-radius:16px;cursor:pointer}.feed-zone.missed{background:#fee2e2;color:#b91c1c}.feed-zone.got{background:#dcfce7;color:#15803d}@keyframes feed-flash{0%{transform:scale(.97)}to{transform:scale(1)}}@keyframes feed-shake{0%{transform:translate(0)}33%{transform:translate(-4px)}66%{transform:translate(4px)}to{transform:translate(0)}}@media (prefers-reduced-motion: reduce){.feed-opt.ok,.feed-opt.no,.feed-tf.ok,.feed-tf.no{animation:none}.feed-scroll{scroll-behavior:auto}}.summary{padding:32px 20px 24px;text-align:center}.summary h2{margin:0 0 18px}.summary-cards{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:18px}.summary-card{min-width:120px;padding:16px 18px;border-radius:14px;background:var(--card, #fff);border:1px solid var(--line, #e5e7eb);display:flex;flex-direction:column;gap:4px}.summary-num{font-size:30px;font-weight:800;color:var(--ac)}.summary-label{font-size:13px;color:var(--sub, #6b7280)}.summary-badges{margin:6px 0 16px;display:flex;flex-direction:column;gap:8px;align-items:center}.summary-badge-pop{animation:badge-pop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes badge-pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}@media (prefers-reduced-motion: reduce){.summary-badge-pop{animation:none}}.summary-btn{display:block;width:min(320px,90%);margin:10px auto 0;padding:13px 16px}.quests{margin:10px 14px 4px}.quest-list{display:flex;flex-direction:column;gap:6px;margin-top:6px}.quest{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:12px;background:var(--card, #fff);border:1px solid var(--line, #e5e7eb);font-size:14px}.quest.done{opacity:.75}.quest.done .quest-name{text-decoration:line-through}.quest-icon{font-size:16px}.quest-name{font-weight:600}.quest-progress{margin-left:auto;font-size:12px;color:var(--sub, #6b7280);font-variant-numeric:tabular-nums}.quest-reward{font-size:13px;color:#0284c7;margin:8px 0 0;font-weight:600}.level-chip{font-size:12px;font-weight:700;color:#7c3aed;background:#ede9fe;border-radius:999px;padding:2px 8px;margin-left:8px}.conf-hint{font-size:12px;color:var(--sub, #9ca3af);margin:2px 0 6px}.blitz-clock{font-size:14px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--ac);background:color-mix(in srgb,var(--ac) 12%,transparent);border-radius:999px;padding:3px 10px;margin-left:10px}.blitz-clock.urgent{color:#dc2626;background:#fee2e2}.learn-teach-think{color:var(--sub, #9ca3af);font-size:14px;font-style:italic;margin:12px 0 0}.feed-top-right{display:flex;align-items:center;gap:8px;pointer-events:auto}.feed-chip{position:relative;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;border:0;cursor:pointer;background:#ffffff8c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--fg, #111827)}.feed-chip-dot{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:var(--ac)}.feed-sheet-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#00000059;display:flex;align-items:flex-end}.feed-sheet{width:100%;max-height:75dvh;display:flex;flex-direction:column;background:var(--bg, #fff);border-radius:18px 18px 0 0;padding:10px 16px calc(16px + env(safe-area-inset-bottom));animation:feed-sheet-up .22s ease-out}@media (prefers-reduced-motion: reduce){.feed-sheet{animation:none}}@keyframes feed-sheet-up{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.feed-sheet-grab{width:38px;height:4px;border-radius:2px;background:var(--line, #e5e7eb);margin:2px auto 10px}.feed-sheet-title{margin:0 0 10px;font-size:17px}.feed-sheet-list{overflow-y:auto;flex:1}.fs-row{display:flex;align-items:center;gap:10px;padding:9px 0}.fs-unit{padding-left:28px}.fs-box{width:24px;height:24px;flex:0 0 24px;border-radius:7px;cursor:pointer;border:2px solid var(--line, #d1d5db);background:transparent;font-size:14px;line-height:1;color:#fff;padding:0}.fs-box.on,.fs-box.partial{background:var(--ac);border-color:var(--ac)}.fs-name{flex:1;font-size:15px}.fs-count{font-size:12px;color:var(--sub, #6b7280)}.fs-chevron{background:none;border:0;cursor:pointer;font-size:14px;color:var(--sub, #6b7280);padding:4px 6px}.feed-sheet-warn{color:#b45309;font-size:13px;margin:8px 0 0}.feed-sheet-actions{display:flex;gap:10px;margin-top:12px}.feed-sheet-actions .btn-primary{flex:1}.fs-clear{flex:1;border:1px solid var(--line, #d1d5db);background:transparent;border-radius:10px;padding:10px;cursor:pointer;color:var(--fg, #111827)}.feed-slide-note{background:radial-gradient(120% 90% at 50% 0%,rgba(59,130,246,.07),transparent 70%)}.feed-slide-quiz{background:radial-gradient(120% 90% at 50% 0%,rgba(16,185,129,.07),transparent 70%)}.feed-slide-bonus{background:radial-gradient(120% 90% at 50% 0%,rgba(245,158,11,.12),transparent 70%)}.feed-prompt-md{font-size:19px!important}.feed-prompt-sm{font-size:16px!important}.feed-opt:active,.feed-tf:active,.feed-zone:active{transform:scale(.97)}.feed-qa-answer,.feed-note-why{animation:feed-reveal .25s ease-out}@keyframes feed-reveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.feed-qa-answer .feed-note-why,.feed-tf~.feed-note-why{border-top:1px solid var(--line, #e5e7eb);padding-top:10px;margin-top:10px}.feed-top .combo{background:#ffffff8c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:999px;padding:4px 10px}.feed-hint-bob{animation:feed-bob 1.6s ease-in-out infinite}@keyframes feed-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@media (prefers-reduced-motion: reduce){.feed-qa-answer,.feed-note-why,.feed-hint-bob{animation:none}.feed-opt:active,.feed-tf:active,.feed-zone:active{transform:none}}.auth-wrap{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:calc(24px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));background:radial-gradient(120% 80% at 50% 0%,rgba(109,90,230,.09),transparent 70%)}.auth-hero{text-align:center}.auth-mark{font-size:44px;line-height:1}.auth-title{margin:6px 0 0;color:var(--ac);font-size:32px}.auth-tagline{margin:4px 0 0;color:var(--sub);font-size:14px}.auth-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:12px;background:var(--sur);border:1px solid var(--bdr);border-radius:16px;padding:20px;box-shadow:var(--shadow-lg)}.auth-heading{margin:0 0 2px;font-size:18px}.auth-field{display:flex;flex-direction:column;gap:5px}.auth-label{font-size:12px;font-weight:600;color:var(--sub);text-transform:uppercase;letter-spacing:.04em}.auth-field input{width:100%;box-sizing:border-box}.auth-input-row{position:relative;display:flex}.auth-input-row input{flex:1;padding-right:44px}.auth-eye{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:0;cursor:pointer;font-size:16px;padding:6px}.auth-eye:active{transform:translateY(-50%)}.auth-error{color:var(--rd);font-size:13px;margin:0}.auth-notice{color:var(--sub);font-size:13px;margin:0}.auth-inline-link{background:none;border:0;color:var(--ac);cursor:pointer;font-size:13px;padding:0;text-decoration:underline}.auth-submit{margin-top:4px}.auth-switch{background:none;border:0;color:var(--ac);cursor:pointer;font-size:14px;box-shadow:none}.welcome-wrap{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:calc(24px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));background:radial-gradient(120% 80% at 50% 0%,rgba(109,90,230,.09),transparent 70%)}.welcome-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;width:100%;max-width:380px}.welcome-steps li{display:flex;align-items:flex-start;gap:12px}.welcome-emoji{font-size:22px;line-height:1.2}.welcome-steps b{display:block;font-size:15px}.welcome-steps div>span{font-size:13px;color:var(--sub)}.welcome-code{width:100%;max-width:380px;display:flex;flex-direction:column;gap:8px;background:var(--sur);border:1px solid var(--bdr);border-radius:16px;padding:18px;box-shadow:var(--shadow-lg)}.welcome-code input{width:100%;box-sizing:border-box}.welcome-msg{font-size:13px;color:var(--sub);margin:0}
