:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--violet:#6200ee;--violet-dark:#4a00b4;--violet-soft:#efe5ff;--violet-line:#d9c6ff;--amber:#ffb300;--amber-dark:#8a5a00;--amber-soft:#fff4d6;--ink:#1f1a2e;--muted:#5e5873;--paper:#fffdf7;--grid:#6200ee0f;--line:#e7e1f5;--green:#187a4c;--green-soft:#dcf5e6;--red:#b3261e;--red-soft:#fde4e1;--note-yellow:#fff3b0;--note-pink:#ffdfe8;--note-blue:#def;--note-green:#dff6e5;--note-violet:#ece2ff;--radius:14px;--shadow:0 1px 0 #1f1a2e0f, 0 10px 22px -14px #3c147873;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-round:ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font:16px/1.5 var(--font);color:var(--ink);background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:24px 24px;min-height:100vh;margin:0;overflow-x:hidden}h1,h2,h3{font-family:var(--font-round);letter-spacing:-.01em;margin:0 0 .5em;line-height:1.2}h1{font-size:1.6rem}h2{font-size:1.25rem}h3{font-size:1.05rem}p{margin:0 0 .75em}a{color:var(--violet)}button,input,select,textarea{font:inherit;color:inherit}img{max-width:100%}:focus-visible{outline:3px solid var(--violet-dark);outline-offset:2px;box-shadow:0 0 0 5px #fff}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.wrap{max-width:1100px;margin:0 auto;padding:0 16px}.page{padding-top:16px;padding-bottom:96px}.stack>*+*{margin-top:16px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.row.between{justify-content:space-between}.grid2{gap:16px;display:grid}@media (min-width:720px){.grid2{grid-template-columns:1fr 1fr}}.grid3{gap:14px;display:grid}@media (min-width:720px){.grid3{grid-template-columns:repeat(3,1fr)}}.muted{color:var(--muted)}.small{font-size:.875rem}.tiny{font-size:.78rem}.center{text-align:center}.topbar{z-index:20;border-bottom:2px dashed var(--violet-line);-webkit-backdrop-filter:saturate(1.2);backdrop-filter:saturate(1.2);background:#fffdf7f0;position:sticky;top:0}.topbar .wrap{justify-content:space-between;align-items:center;gap:12px;height:56px;display:flex}.brand{color:var(--ink);font-family:var(--font-round);align-items:center;gap:8px;font-weight:800;text-decoration:none;display:flex}.top-left{align-items:center;gap:8px;min-width:0;display:flex}.back-btn{border:2px solid var(--violet-line);width:40px;height:40px;color:var(--violet-dark);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fff;border-radius:12px;flex:none;place-items:center;font-size:1.25rem;font-weight:900;display:grid}.back-btn:active{transform:translate(1px,1px)}.brand .logo{background:var(--violet);color:#fff;width:32px;height:32px;box-shadow:2px 2px 0 var(--amber);border-radius:10px 10px 10px 3px;place-items:center;font-size:.8rem;display:grid;transform:rotate(-4deg)}.brand small{color:var(--violet);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem;font-weight:700;display:block}.navlinks{gap:4px;display:none}.navlinks a{color:var(--ink);border-radius:10px;padding:8px 12px;font-weight:600;text-decoration:none}.navlinks a.on,.navlinks a:hover{background:var(--violet-soft);color:var(--violet-dark)}@media (min-width:720px){.navlinks{display:flex}}.tabbar{z-index:30;border-top:2px solid var(--line);padding:4px 4px calc(4px + env(safe-area-inset-bottom));background:#fff;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{text-align:center;color:var(--muted);border-radius:10px;flex:1;min-height:48px;padding:6px 2px;font-size:.72rem;font-weight:700;text-decoration:none}.tabbar a .ico{font-size:1.25rem;line-height:1.3;display:block}.tabbar a.on{color:var(--violet);background:var(--violet-soft)}@media (min-width:720px){.tabbar{display:none}.page{padding-bottom:48px}}.note{background:var(--note-yellow);box-shadow:var(--shadow);transform:rotate(var(--tilt,-.4deg));border-radius:3px 3px 16px;padding:18px 16px 16px;position:relative}.note:before{content:"";background:#ffb30073;border-radius:2px;width:76px;height:18px;margin-left:-38px;position:absolute;top:-9px;left:50%;transform:rotate(-3deg)}.note.plain:before{display:none}.note.pink{background:var(--note-pink)}.note.blue{background:var(--note-blue)}.note.green{background:var(--note-green)}.note.violet{background:var(--note-violet)}.note.white{border:2px solid var(--line);background:#fff}.note.tilt-r{--tilt:.6deg}.note.flat{--tilt:0deg}.card{border:2px solid var(--line);border-radius:var(--radius);background:#fff;padding:16px}.btn{border:2px solid var(--ink);min-height:48px;color:var(--ink);cursor:pointer;box-shadow:3px 3px 0 var(--ink);-webkit-tap-highlight-color:transparent;background:#fff;border-radius:255px 18px 225px/18px 225px 18px 255px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:800;text-decoration:none;transition:transform 80ms,box-shadow 80ms;display:inline-flex}.btn:active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.btn.primary{background:var(--violet);color:#fff}.btn.amber{background:var(--amber)}.btn.ghost{box-shadow:none;border-color:var(--violet-line);color:var(--violet-dark)}.btn.small{min-height:40px;padding:6px 12px;font-size:.9rem}.btn.block{width:100%}.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}.chip{border:2px solid var(--violet-line);min-height:40px;color:var(--violet-dark);cursor:pointer;white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.88rem;font-weight:700;text-decoration:none;display:inline-flex}.chip.on{background:var(--violet);border-color:var(--violet);color:#fff}.chips{scrollbar-width:none;gap:8px;padding:2px 0 6px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.linkish{color:var(--violet);cursor:pointer;background:0 0;border:0;align-items:center;min-height:32px;padding:0;font-weight:700;text-decoration:underline;display:inline-flex}.field{display:block}.field>span{margin-bottom:6px;font-weight:700;display:block}.field small{color:var(--muted);margin-top:4px;display:block}.input,select.input,textarea.input{border:2px solid var(--line);background:#fff;border-radius:12px;width:100%;min-height:48px;padding:10px 12px}.input:focus{border-color:var(--violet);outline:none}textarea.input{resize:vertical;min-height:96px}.check{align-items:flex-start;gap:10px;display:flex}.check input{width:22px;height:22px;accent-color:var(--violet);flex:none;margin-top:2px}.option-grid{gap:10px;display:grid}@media (min-width:560px){.option-grid.two{grid-template-columns:1fr 1fr}}.pick{text-align:left;border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:14px;width:100%;min-height:52px;padding:14px;display:block}.pick.on{border-color:var(--violet);background:var(--violet-soft);box-shadow:3px 3px 0 var(--violet)}.pick[disabled]{opacity:.55;cursor:not-allowed}.pick strong{display:block}.error{background:var(--red-soft);color:var(--red);border-radius:12px;padding:10px 12px;font-weight:600}.ok{background:var(--green-soft);color:var(--green);border-radius:12px;padding:10px 12px;font-weight:600}.spinner{border:4px solid var(--violet-soft);border-top-color:var(--violet);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}.page-spinner{place-items:center;min-height:40vh;display:grid}@keyframes spin{to{transform:rotate(360deg)}}.badge{background:var(--violet-soft);color:var(--violet-dark);border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:800;display:inline-block}.badge.amber{background:var(--amber-soft);color:var(--amber-dark)}.badge.green{background:var(--green-soft);color:var(--green)}.badge.red{background:var(--red-soft);color:var(--red)}.badge.grey{color:#555;background:#eee}.bar{background:var(--violet-soft);border:2px solid var(--ink);border-radius:999px;height:12px;overflow:hidden}.bar>i{background:repeating-linear-gradient(45deg, var(--violet), var(--violet) 8px, #7c2cff 8px, #7c2cff 16px);height:100%;transition:width .5s;display:block}.bar.amber>i{background:repeating-linear-gradient(45deg, var(--amber), var(--amber) 8px, #ffc533 8px, #ffc533 16px)}.big-number{font-family:var(--font-round);font-size:2.4rem;font-weight:900;line-height:1}.beforeafter{justify-content:center;align-items:center;gap:14px;display:flex}.beforeafter .arrow{color:var(--amber-dark);font-size:1.6rem}.mmap{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.mtile{text-align:left;cursor:pointer;min-height:76px;color:var(--ink);background:#f2f0f6;border:2px solid #0000;border-radius:10px 10px 14px 4px;padding:10px;font-size:.82rem;font-weight:700}.mtile .pct{font-size:1.1rem;font-family:var(--font-round);display:block}.mtile.strong{background:#c8f0d6}.mtile.okay{background:#fff0b8}.mtile.weak{background:#ffd2cc}.mtile.not_started{color:var(--muted);border:2px dashed var(--violet-line);background:#f1eef8}.legend{flex-wrap:wrap;gap:12px;font-size:.8rem;display:flex}.legend i{vertical-align:-1px;border-radius:3px;width:12px;height:12px;margin-right:4px;display:inline-block}.study{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.study>*{min-width:0}@media (min-width:720px){.study{grid-template-columns:minmax(260px,340px) minmax(0,1fr);align-items:start}.study .panel-left{max-height:calc(100vh - 88px);position:sticky;top:72px;overflow-y:auto}.study-tabs{display:none}.study.review>.panel-left{order:-1}}@media (max-width:719px){.study .panel{display:none}.study .panel.show{display:block}}.study-tabs{z-index:15;background:var(--paper);gap:6px;padding:8px 0;display:flex;position:sticky;top:56px}.study-tabs button{border:2px solid var(--line);background:#fff;border-radius:12px;flex:1;min-height:44px;font-weight:800}.study-tabs button.on{background:var(--violet);color:#fff;border-color:var(--violet)}.agents{flex-direction:column;gap:6px;display:flex}.agent{border:2px dashed var(--violet-line);background:#fff;border-radius:12px;align-items:flex-start;gap:8px;padding:8px 10px;font-size:.85rem;display:flex}.agent .dot{background:#bbb;border-radius:50%;flex:none;width:10px;height:10px;margin-top:6px}.agent.working .dot{background:var(--amber);animation:1s ease-in-out infinite pulse}.agent.done .dot{background:var(--green)}.agent.error .dot{background:var(--red)}.agent b{color:var(--violet-dark)}@keyframes pulse{50%{opacity:.6;transform:scale(1.5)}}.res{border:2px solid var(--line);background:#fff;border-radius:12px;padding:12px;animation:.25s ease-out pop}.res+.res{margin-top:10px}.res .why{background:var(--amber-soft);border-radius:8px;margin:6px 0;padding:6px 8px;font-size:.85rem}.res .acts{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.res .acts button,.res .acts a{border:2px solid var(--line);cursor:pointer;min-height:36px;color:var(--ink);background:#fff;border-radius:10px;align-items:center;padding:4px 10px;font-size:.82rem;font-weight:700;text-decoration:none;display:inline-flex}.res .acts .on{background:var(--violet-soft);border-color:var(--violet);color:var(--violet-dark)}.res .ref{font-family:var(--font-round);color:var(--violet);margin-right:6px;font-weight:900}.res iframe{aspect-ratio:16/9;border:0;border-radius:10px;width:100%;margin-top:8px}@keyframes pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}.chat{flex-direction:column;gap:12px;display:flex}.msg{max-width:92%;box-shadow:var(--shadow);border-radius:16px;padding:10px 14px}.msg.user{background:var(--violet);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.msg.user a{color:#fff}.msg.tutor{border:2px solid var(--line);background:#fff;border-bottom-left-radius:4px;align-self:flex-start}.msg .who{color:var(--violet);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px;font-size:.72rem;font-weight:800}.msg.note-msg{background:var(--amber-soft);box-shadow:none;align-self:center;font-size:.85rem}.composer{background:var(--paper);z-index:10;padding:8px 0;position:sticky;bottom:64px}@media (min-width:720px){.composer{bottom:0}}.composer form{gap:8px;display:flex}.composer textarea{resize:none;border:2px solid var(--line);background:#fff;border-radius:14px;flex:1;min-height:48px;max-height:140px;padding:12px}.typing span{background:var(--violet);border-radius:50%;width:7px;height:7px;margin:0 2px;animation:1s infinite pulse;display:inline-block}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}.rich p{margin:0 0 .5em}.rich p:last-child{margin-bottom:0}.rich ul,.rich ol{margin:.25em 0 .5em;padding-left:1.2em}.rich .md-h{font-weight:800}.rich code{background:var(--violet-soft);border-radius:4px;padding:0 4px}.cite{background:var(--amber);color:var(--ink);cursor:pointer;vertical-align:1px;border-radius:6px;padding:0 6px;font-size:.75rem;font-weight:900;display:inline-block}.msg.user .cite{color:var(--ink)}.q-stem{margin-bottom:12px;font-size:1.05rem;font-weight:700}.q-opts{gap:10px;display:grid}.q-opt{text-align:left;border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:14px;align-items:flex-start;gap:10px;width:100%;min-height:52px;padding:12px;display:flex}.q-opt .letter{background:var(--violet-soft);width:28px;height:28px;color:var(--violet-dark);border-radius:50%;flex:none;place-items:center;font-weight:900;display:grid}.q-opt.on{border-color:var(--violet);background:var(--violet-soft)}.q-opt.on .letter{background:var(--violet);color:#fff}.q-opt.right{border-color:var(--green);background:var(--green-soft)}.q-opt.right .letter{background:var(--green);color:#fff}.q-opt.wrong{border-color:var(--red);background:var(--red-soft)}.q-opt.wrong .letter{background:var(--red);color:#fff}.q-opt[disabled]{cursor:default}.qnav{grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:6px;display:grid}.qnav button{border:2px solid var(--line);background:#fff;border-radius:8px;min-height:40px;font-weight:800}.qnav button.done{background:var(--violet-soft);border-color:var(--violet-line)}.qnav button.cur{border-color:var(--violet);box-shadow:2px 2px 0 var(--violet)}.qnav button.right{background:var(--green-soft);border-color:var(--green)}.qnav button.wrong{background:var(--red-soft);border-color:var(--red)}.timer{font-family:var(--font-round);background:var(--amber-soft);border-radius:10px;padding:4px 12px;font-size:1.2rem;font-weight:900}.timer.low{background:var(--red-soft);color:var(--red)}.gap-row{border-bottom:1px dashed var(--line);align-items:center;gap:10px;padding:8px 0;display:flex}.gap-row:last-child{border-bottom:0}.gap-row .name{flex:1;font-weight:700}.flash{perspective:800px}.flash button{background:var(--note-blue);width:100%;min-height:120px;box-shadow:var(--shadow);cursor:pointer;border:0;border-radius:4px 4px 16px;padding:16px;font-weight:700}.flash button.back{background:var(--note-green)}.hero{padding:32px 0 8px}.hero h1{font-size:2rem}@media (min-width:720px){.hero h1{font-size:2.6rem}}.hero .scribble{color:var(--violet);background:linear-gradient(#0000 60%,#ffb3008c 60%)}.stage-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (min-width:720px){.stage-grid{grid-template-columns:repeat(4,1fr)}}.stage-card{flex-direction:column;gap:4px;padding:12px;display:flex}.stage-card .ico{font-size:1.6rem}.exam-row{flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0 0;display:flex}.feature-grid h3{margin-top:0}.mode-card{color:var(--ink);text-decoration:none;display:block}.mode-card .ico{font-size:1.8rem}.feedback-chip{min-height:36px;margin-left:auto;padding:4px 10px;font-size:.8rem}@media (min-width:720px){.feedback-chip{order:3;margin-left:8px}}.modal-back{z-index:50;background:#1f1a2e73;place-items:end center;padding:16px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}@media (min-width:560px){.modal-back{place-items:center}}.modal{width:100%;max-width:480px;max-height:90vh;overflow:auto}table.simple{border-collapse:collapse;width:100%;font-size:.88rem}table.simple th,table.simple td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:6px 8px}.scroll-x{overflow-x:auto}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.balloon{animation:balloon-float var(--float) linear var(--delay) forwards!important}}.focus-mode .tabbar{display:none}.focus-mode .composer{padding-bottom:calc(8px + env(safe-area-inset-bottom));bottom:0}.focus-mode .page{padding-bottom:24px}.composer{border-top:2px dashed var(--violet-line)}.composer-bar{align-items:center;gap:8px;display:flex}.composer-bar .mini{color:var(--green);background:var(--green-soft);white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:.85rem;font-weight:800}.composer-bar .post-btn{white-space:nowrap;min-height:40px;margin-left:auto;padding:6px 12px}.seg{border:2px solid var(--violet);border-radius:12px;flex:none;display:inline-flex;overflow:hidden}.seg button{color:var(--violet-dark);cursor:pointer;background:#fff;border:0;min-height:40px;padding:6px 10px;font-size:.85rem;font-weight:800}.seg button.on{background:var(--violet);color:#fff}.talk-row{align-items:center;gap:12px;display:flex}.talk{border:3px solid var(--ink);background:var(--violet);color:#fff;width:64px;height:64px;box-shadow:3px 3px 0 var(--ink);cursor:pointer;border-radius:50%;flex:none;font-size:1.6rem}.talk.live{background:var(--red);animation:1.2s ease-in-out infinite pulse}.talk-text{flex:1;min-width:0}.msg.partner{background:var(--amber-soft);border:2px solid #ffe08a;border-bottom-left-radius:4px;align-self:flex-start}.msg.partner .who{color:var(--amber-dark)}.join-code{letter-spacing:.2em;border:2px dashed var(--violet);background:#fff;border-radius:10px;padding:2px 10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1.3rem;font-weight:900}.mobile-only{display:block}.desktop-only{display:none}@media (min-width:720px){.mobile-only,.study .panel.mobile-only{display:none!important}.desktop-only{display:block}}.focus-mode .page{padding-top:8px;padding-bottom:0}.space{flex-direction:column;height:calc(100dvh - 64px);min-height:420px;display:flex}.space-bar{border-bottom:2px dashed var(--violet-line);align-items:center;gap:8px;padding:4px 0 8px;display:flex}.space-back{color:var(--violet);border-radius:10px;padding:4px 8px;font-size:1.3rem;font-weight:900;text-decoration:none}.space-title{flex-direction:column;flex:1;min-width:0;display:flex}.space-title strong{white-space:nowrap;text-overflow:ellipsis;font-family:var(--font-round);overflow:hidden}.space-body{flex:1;gap:16px;min-height:0;display:flex}.space-lib{flex:none;width:330px;padding:8px 4px 16px 0;display:none;overflow-y:auto}.space-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.chat-scroll{overscroll-behavior:contain;flex:1;padding:10px 2px 12px;overflow-y:auto}.space .composer{padding:8px 0 calc(8px + env(safe-area-inset-bottom));position:static;bottom:auto}.space .chat{gap:14px}.space .msg{max-width:94%;font-size:1.04rem;line-height:1.6}@media (min-width:1024px){.space-lib{display:block}.lib-btn{display:none}}.drawer-back{z-index:60;background:#1f1a2e66;position:fixed;top:0;bottom:0;left:0;right:0}.drawer{background:var(--paper);width:min(420px,92vw);padding:12px 14px 24px;animation:.18s ease-out slidein;position:absolute;top:0;bottom:0;overflow-y:auto;box-shadow:0 0 30px #00000040}.drawer.left{left:0}.drawer.right{right:0}.drawer-close{margin-bottom:10px}@keyframes slidein{0%{transform:translateX(var(--from,-30px));opacity:0}to{opacity:1;transform:none}}.viewer-back{z-index:80;background:#1f1a2e8c;justify-content:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.viewer{background:var(--paper);flex-direction:column;width:100%;max-width:860px;height:100%;display:flex}.viewer-bar{border-bottom:2px dashed var(--violet-line);align-items:center;gap:10px;padding:8px 12px;display:flex}.viewer-src{text-align:right;margin-left:auto}.viewer-body{flex:1;padding:12px 16px 32px;overflow-y:auto}.frame-wrap{aspect-ratio:16/9;background:#000;border-radius:12px;width:100%;position:relative;overflow:hidden}.frame-wrap.tall{aspect-ratio:auto;border:2px solid var(--line);background:#fff;height:min(75vh,640px)}.frame-wrap iframe{border:0;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.reader{max-width:70ch;font-size:1.05rem;line-height:1.7}.reader h2,.reader h3,.reader h4{margin:1.2em 0 .4em}.reader img{background:#f3f0fa;border-radius:8px;max-width:100%;height:auto;margin:10px 0;display:block}.reader math[display=block]{margin:10px 0;display:block;overflow-x:auto}.reader blockquote{border-left:4px solid var(--violet-line);color:var(--muted);margin:.6em 0;padding-left:12px}.res .acts .open-btn{background:var(--violet);color:#fff;border-color:var(--violet)}@media (max-width:719px){.focus-mode .topbar{display:none}.focus-mode .space{height:calc(100dvh - 12px)}.space-bar .chip{padding:6px 10px}}@media (max-width:480px){.space-bar .lbl{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.plan-card{z-index:5;background:var(--note-violet);border:2px solid var(--violet-line);border-radius:12px;margin-bottom:10px;position:sticky;top:0}.plan-head{text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:.9rem;font-weight:800;display:flex}.plan-head span:first-child{flex:1;min-width:0}.plan-body{padding:0 10px 10px}.plan-body ol{margin:0 0 8px;padding-left:1.3em;font-size:.9rem}.plan-body li{margin-bottom:4px}.plan-body li.done{opacity:.55;text-decoration:line-through}.plan-body li.now{font-weight:700}.kid-hero{border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);background:linear-gradient(135deg,#ffe9a8,#ffd1e3);border-radius:22px;align-items:center;gap:14px;padding:16px;display:flex}.kid-mascot{font-size:3.2rem;line-height:1;animation:2.4s ease-in-out infinite bob}@keyframes bob{50%{transform:translateY(-6px)rotate(-4deg)}}.kid-tiles{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (min-width:720px){.kid-tiles{grid-template-columns:repeat(4,1fr)}}.kid-tile{border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);color:var(--ink);border-radius:22px;flex-direction:column;gap:4px;min-height:140px;padding:16px 12px;text-decoration:none;display:flex}.kid-tile .ico{font-size:2.2rem}.kid-tile.t1{background:#c9f0ff}.kid-tile.t2{background:#ffd6a8}.kid-tile.t3{background:#d8f7c8}.kid-tile.t4{background:#ead9ff}.kid-tile.t5{background:#c8f2dc}.kid-tile:active{box-shadow:2px 2px 0 var(--ink);transform:translate(2px,2px)}.kid-subjects{grid-template-columns:1fr 1fr;gap:10px;display:grid}.kid-subject{border:3px solid var(--violet-line);color:var(--ink);background:#fff;border-radius:18px;flex-direction:column;gap:6px;padding:12px;text-decoration:none;display:flex}.growth-big{align-items:center;gap:12px;display:flex}.growth-list{margin:0;padding:0;list-style:none}.growth-list li{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:center;gap:10px;padding:8px 0;display:flex}.then-now{white-space:nowrap;align-items:center;gap:6px;font-weight:900;display:flex}.then-now .then{color:var(--red)}.then-now .now{color:var(--green)}.game-card.right{box-shadow:0 0 0 4px var(--green)}.game-card.wrong{box-shadow:0 0 0 4px var(--red)}.ws-list>li{margin-bottom:18px}.ws-opts{padding-left:1.4em}.ws-opt{text-align:left;cursor:pointer;background:0 0;border:2px solid #0000;border-radius:10px;width:100%;padding:4px 8px}.ws-opt.on{border-color:var(--violet);background:var(--violet-soft)}.ws-opt.right{border-color:var(--green);background:var(--green-soft)}.ws-opt.wrong{border-color:var(--red);background:var(--red-soft)}@media print{.topbar,.tabbar,.no-print,.feedback-chip{display:none!important}body{background:#fff}.worksheet .note{box-shadow:none}}.stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stats .card{color:inherit;padding:10px 12px;text-decoration:none}.stats .big-number{font-size:1.8rem;line-height:1.1}.session-item{border:2px solid var(--line);color:inherit;background:#fff;border-radius:14px;align-items:center;gap:10px;padding:10px 12px;text-decoration:none;display:flex}.session-item:hover{border-color:var(--violet-line)}.session-item .ico{flex:none;font-size:1.4rem}.session-item .body{flex-direction:column;flex:1;min-width:0;display:flex}.session-item .body strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.session-item .end{flex:none}@media (max-width:480px){.session-item{flex-wrap:wrap}.session-item .end{width:100%}.session-item .end .btn{justify-content:center;width:100%}}.focus-mode .topbar{display:none}.focus-mode main.wrap{max-width:1440px}.focus-mode .space{height:calc(100dvh - 12px)}.space-lib{width:300px}@media (min-width:1024px){.lib-btn{display:inline-flex}.space.lib-hidden .space-lib{display:none}}.chat-scroll .chat{max-width:880px;margin:0 auto}.space .msg{font-size:1.06rem}.space .composer{padding:6px 0 calc(6px + env(safe-area-inset-bottom));flex-direction:column;gap:6px;display:flex}.composer-bar{align-items:center;gap:6px;min-width:0;display:flex}.chip-scroll{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:1;gap:6px;min-width:0;padding:2px 0;display:flex;overflow-x:auto}.chip-scroll::-webkit-scrollbar{display:none}.chip-scroll .chip{white-space:nowrap;flex:none;min-height:34px;padding:4px 10px;font-size:.85rem}.composer-bar .post-btn{min-height:34px;margin-left:0;padding:4px 10px}.input-row{align-items:flex-end;gap:6px;display:flex}.input-row textarea{resize:none;border:2px solid var(--line);min-height:44px;max-height:120px;font:inherit;background:#fff;border-radius:14px;flex:1;padding:10px 12px}.btn.icon{justify-content:center;min-width:44px;min-height:44px;padding:0 10px;font-size:1.1rem}.btn.icon.rec{background:var(--red);color:#fff;border-color:var(--red)}.live-btn{background:var(--violet-soft);border-color:var(--violet-line)}.live-panel{border:2px solid var(--violet-line);background:#fff;border-radius:16px;align-items:center;gap:12px;min-height:60px;padding:8px 10px;display:flex}.live-panel .orb{background:radial-gradient(circle at 35% 35%, #b388ff, var(--violet));border-radius:50%;flex:none;width:40px;height:40px;animation:2.4s ease-in-out infinite breathe;box-shadow:0 0 #6200ee59}.live-panel.hearing .orb{background:radial-gradient(circle at 35% 35%,#7ee2a8,#12a150);animation:.5s ease-in-out infinite alternate talk}.live-panel.thinking .orb{background:radial-gradient(circle at 35% 35%, #ffe08a, var(--amber));border-radius:40%;animation:1.2s linear infinite spin}.live-panel.speaking .orb{animation:.35s ease-in-out infinite alternate talk}.live-panel .btn.on{background:var(--violet-soft);border-color:var(--violet);color:var(--violet)}.live-text{flex-direction:column;flex:1;min-width:0;font-weight:700;display:flex}.live-text>span:last-child{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.live-tag{color:var(--red);letter-spacing:.06em;font-weight:900}@keyframes breathe{50%{transform:scale(1.06);box-shadow:0 0 0 10px #6200ee00}}@keyframes talk{0%{transform:scale(.9)}to{transform:scale(1.12)}}@media (prefers-reduced-motion:reduce){.live-panel .orb{animation:none!important}}.topic-head{text-transform:uppercase;letter-spacing:.06em;color:var(--violet);grid-column:1/-1;padding:6px 2px 0;font-weight:900}.god-card{color:inherit;flex-direction:column;gap:2px;text-decoration:none;display:flex}.god-hero h1{font-size:1.6rem}.god-row{flex-direction:column;gap:6px;display:flex}.god-tip{background:var(--amber-soft);border-radius:8px;padding:6px 8px}.live-actions{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.live-actions .linkish.on{color:var(--green);font-weight:800}.msg .ex-stage{width:480px;max-width:100%}.ex-stage{border:2px solid var(--violet-line);background-color:#fff;background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);-webkit-user-select:none;user-select:none;background-size:16px 16px;border-radius:12px;margin:4px 0 10px;overflow:hidden}.space .msg .ex-stage.sticky{z-index:2;position:sticky;top:0}.msg.tutor:has(.ex-split){width:92%}.ex-split{container-type:inline-size}@container (width>=600px){.ex-split-in{grid-template-columns:minmax(280px,1.1fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.ex-col{z-index:2;position:sticky;top:4px}.space .msg .ex-col .ex-stage{width:100%;margin:0;position:static}}::highlight(read-sentence){background-color:#fff3b0}::highlight(read-word){color:#1f1a2e;background-color:#ffcc4d}.ex-focus{filter:drop-shadow(0 0 4px #ffb300cc);animation:.6s ease-out backwards ex-draw,1.2s ease-in-out .6s infinite alternate ex-glow}.ex-dim{pointer-events:none;animation:.4s backwards ex-fade}.ex-hole{transition:x .45s,y .45s,width .45s,height .45s}@keyframes ex-glow{to{stroke-opacity:.45}}.ex-hand-ptr{transition:transform .55s cubic-bezier(.3,1.25,.5,1)}.ex-bob-up{animation:.7s ease-in-out infinite alternate ex-bob-up}.ex-bob-down{animation:.7s ease-in-out infinite alternate ex-bob-down}@keyframes ex-bob-up{to{transform:translateY(-5px)}}@keyframes ex-bob-down{to{transform:translateY(5px)}}@media (prefers-reduced-motion:reduce){.ex-hand-ptr{transition:none}.ex-bob-up,.ex-bob-down,.ex-focus{animation:none}}@media (max-width:400px){.ex-tag .lbl{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.ex-svg{aspect-ratio:16/10;width:100%;height:auto;display:block}.ex-svg text{font-family:var(--font-round)}.ex-svg .ex-emoji{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif}.ex-bar{border-top:2px dashed var(--violet-line);background:#efe5ff99;align-items:center;gap:6px;padding:4px 6px;display:flex}.ex-bar .btn.small{white-space:nowrap;min-height:38px;padding:4px 10px;font-size:.85rem}.ex-tag{color:var(--violet);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;min-width:0;margin-right:auto;font-size:.7rem;font-weight:800;overflow:hidden}.ex-enter,.ex-pop,.ex-fly,.ex-grow,.ex-card,.ex-counter,.ex-write,.ex-hl-box,.ex-pulse-a,.ex-pulse-b{transform-box:fill-box;transform-origin:50%}.ex-slot{transition:transform .5s cubic-bezier(.3,.9,.3,1)}.ex-enter{animation:.5s cubic-bezier(.2,1.4,.4,1) backwards ex-pop}.ex-pop{animation:.45s cubic-bezier(.2,1.4,.4,1) backwards ex-pop}@keyframes ex-pop{0%{opacity:0;transform:scale(.3)}}.ex-fly{animation:.65s cubic-bezier(.2,1.2,.4,1) backwards ex-fly}@keyframes ex-fly{0%{opacity:0;transform:translate(-70px,24px)scale(.4)rotate(-10deg)}}.ex-fade{animation:.6s backwards ex-fade}@keyframes ex-fade{0%{opacity:0}}.ex-draw{animation:.7s ease-out backwards ex-draw}@keyframes ex-draw{0%{stroke-dasharray:1;stroke-dashoffset:1px}to{stroke-dasharray:1;stroke-dashoffset:0}}.ex-outline{animation:1s ease-out backwards ex-outline}@keyframes ex-outline{0%{stroke-dasharray:1;stroke-dashoffset:1px;fill-opacity:0}70%{stroke-dasharray:1;stroke-dashoffset:0;fill-opacity:0}to{fill-opacity:1}}.ex-cut{opacity:0;animation:1.6s ease-out backwards ex-cut}@keyframes ex-cut{0%{stroke-dasharray:1;stroke-dashoffset:1px;opacity:1}45%{stroke-dasharray:1;stroke-dashoffset:0;opacity:1}80%{opacity:1}to{stroke-dasharray:1;stroke-dashoffset:0;opacity:0}}.ex-grow{transform-origin:50% 100%;animation:.7s cubic-bezier(.2,1.2,.4,1) backwards ex-grow}@keyframes ex-grow{0%{transform:scaleY(0)}}.ex-counter,.ex-slice{transition:transform .6s cubic-bezier(.3,1.3,.5,1),opacity .6s}.ex-counter.gone{opacity:.35;transform:translateY(-5px)scale(.8)}.ex-hand{transition:transform 1s cubic-bezier(.3,1.2,.5,1);animation:1.2s cubic-bezier(.3,1.1,.5,1) backwards ex-hand}@keyframes ex-hand{0%{transform:rotate(0)}}.ex-write{animation:.5s ease-out backwards ex-write}@keyframes ex-write{0%{opacity:0;transform:translateY(10px)}}.ex-card{transform:rotate(-1.5deg)}.ex-ring{animation:1s linear infinite ex-march}@keyframes ex-march{to{stroke-dashoffset:-26px}}.ex-hl-box{animation:.9s 2 ex-pulse-a}.ex-hl-text{animation:1.2s 2 ex-blink}@keyframes ex-blink{50%{fill:#ffb300}}.ex-pulse-a{animation:.9s ex-pulse-a}.ex-pulse-b{animation:.9s ex-pulse-b}@keyframes ex-pulse-a{30%{transform:scale(1.12)}60%{transform:scale(.97)}}@keyframes ex-pulse-b{30%{transform:scale(1.12)}60%{transform:scale(.97)}}@media (max-width:400px){.topbar:has(.profile-chip) .brand>span:last-child{display:none}}.skip-link{z-index:100;background:var(--violet-dark);color:#fff;border-radius:10px;padding:10px 14px;font-weight:800;position:absolute;top:-60px;left:8px}.skip-link:focus{top:8px}main:focus{outline:none}.q-mark{margin-left:auto;font-weight:900}.google-btn{justify-content:center;min-height:44px;display:flex}.or-line{color:var(--muted);align-items:center;gap:10px;font-size:.85rem;display:flex}.or-line:before,.or-line:after{content:"";border-top:1px solid var(--line);flex:1}.proof-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}@media (min-width:720px){.proof-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.proof{flex-direction:column;gap:2px;display:flex}.proof strong{color:var(--violet);font-size:1.35rem}.exam-cards{grid-template-columns:1fr;gap:10px;display:grid}@media (min-width:640px){.exam-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:960px){.exam-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}.exam-card{border-top:5px solid var(--violet)}.exam-name{font-family:var(--font-round);font-size:1.15rem;display:block}.exam-who{color:var(--violet-dark);font-weight:700;display:block}html[data-band=little]{font-size:118.75%}body[data-band=little]{font-size:19px}body[data-band=little] .btn,body[data-band=little] .chip{border-radius:999px}body[data-band=little] .tabbar a{min-height:60px;font-size:.8rem}body[data-band=little] .tabbar a .ico{font-size:1.6rem}html[data-band=explorer]{font-size:112.5%}body[data-band=explorer]{font-size:18px}body[data-band=explorer] .btn,body[data-band=explorer] .chip{border-radius:999px}body[data-band=junior]{--grid:#6200ee08}body[data-band=junior] .note{--tilt:0deg;border-radius:16px}body[data-band=junior] .note:before{display:none}body[data-band=junior] .btn{box-shadow:2px 2px 0 var(--ink);border-radius:12px}body[data-band=junior] .brand .logo{transform:none}body[data-band=senior],body[data-band=campus]{--radius:12px;--shadow:0 1px 2px #1f1a2e0f;background-image:none}body[data-band=senior]{background-color:#f6f6f2}body[data-band=campus]{background-color:#f7f7f5}body[data-band=senior] h1,body[data-band=senior] h2,body[data-band=senior] h3,body[data-band=campus] h1,body[data-band=campus] h2,body[data-band=campus] h3{font-family:var(--font);letter-spacing:-.015em}body[data-band=senior] .note,body[data-band=campus] .note{--tilt:0deg;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px}body[data-band=senior] .note:before,body[data-band=campus] .note:before{display:none}body[data-band=senior] .card,body[data-band=campus] .card{border-width:1px}body[data-band=senior] .btn,body[data-band=campus] .btn{box-shadow:none;border-width:1.5px;border-radius:10px;font-weight:700}body[data-band=senior] .btn:active,body[data-band=campus] .btn:active{box-shadow:none;transform:scale(.98)}body[data-band=senior] .btn.ghost,body[data-band=campus] .btn.ghost{border-color:var(--line)}body[data-band=senior] .topbar,body[data-band=campus] .topbar{border-bottom:1px solid var(--line);background:#fafaf8f2}body[data-band=senior] .brand,body[data-band=campus] .brand{font-family:var(--font)}body[data-band=senior] .brand .logo,body[data-band=campus] .brand .logo{box-shadow:none;border-radius:8px;transform:none}body[data-band=senior] .back-btn,body[data-band=campus] .back-btn{border-width:1px;border-color:var(--line);border-radius:10px}body[data-band=senior] .tabbar,body[data-band=campus] .tabbar{border-top:1px solid var(--line)}body[data-band=senior] .tabbar a .ico,body[data-band=campus] .tabbar a .ico{place-items:center;height:26px;display:grid}body[data-band=campus] .note{background:#fff}body[data-band=campus] .stack>*+*{margin-top:14px}body[data-band=campus] .btn{min-height:44px;padding:8px 14px}body[data-band=campus] .btn.primary{background:var(--ink);border-color:var(--ink)}body[data-band=campus] .tabbar a.on{color:var(--ink);background:0 0}body[data-band=campus] .chip{border-radius:8px}body[data-band=senior] .bar,body[data-band=campus] .bar{background:#ebe9f2;border:0;height:8px}body[data-band=senior] .bar i,body[data-band=campus] .bar i{background:var(--violet);background-image:none}body[data-band=senior] .pick,body[data-band=campus] .pick{border-width:1px;border-color:var(--line);box-shadow:none;border-radius:10px}body[data-band=senior] .pick.on,body[data-band=campus] .pick.on{border-color:var(--violet);box-shadow:0 0 0 1px var(--violet)}body[data-band=senior] .input,body[data-band=campus] .input{border-width:1px;border-radius:10px}body[data-band=junior] .pick.on{box-shadow:2px 2px 0 var(--violet)}body[data-band=campus] .navlinks a.on,body[data-band=campus] .navlinks a:hover{color:var(--ink);background:#ecebe7}body[data-band=senior] .emo,body[data-band=campus] .emo{display:none}
