.journal{max-width:1400px}.journal-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.journal-heading h1{margin:12px 0}.journal .text-button{color:var(--accent,#566df5);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;padding:5px 0;display:inline-flex}.journal-summary{border-block:1px solid #8994b326;flex-wrap:wrap;align-items:center;gap:24px;margin:12px 0;padding:18px 0;display:flex}.journal-summary strong{margin-right:5px;font-size:22px}.journal-filters{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.journal-filters label{color:var(--muted,#8390a8);gap:6px;font-size:12px;display:grid}.journal-filters input,.journal-filters select{font:inherit;color:var(--text,#23314a);background:var(--surface,#fff);border:1px solid #8994b340;border-radius:10px;max-width:230px;padding:9px 10px;font-size:14px}.journal-filters .journal-check{align-items:center;gap:7px;padding:10px 0;display:flex}.journal-status{justify-content:space-between;align-items:center;margin:18px 0 6px;font-size:13px;display:flex}.journal-table-wrap{border:1px solid #8994b326;border-radius:16px;overflow-x:auto}.journal-table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.journal-table th{color:var(--muted,#8390a8);background:#8994b309;padding:12px 15px;font-weight:500}.journal-table td{vertical-align:top;border-top:1px solid #8994b320;padding:12px 15px}.journal-table small{color:var(--muted,#8390a8);margin-top:5px;font-size:11px;display:block}.journal-table time{white-space:nowrap;font-variant-numeric:tabular-nums}.journal-action{color:inherit;font:inherit;text-align:left;cursor:pointer;overflow-wrap:anywhere;background:0 0;border:0;max-width:440px;padding:0}.journal-action:hover{text-decoration:underline}.journal-badge{color:var(--text,#325c50);white-space:nowrap;background:#51ad9015;border-radius:6px;padding:4px 7px;font-size:11px}.journal-badge.bad{color:#df6976;background:#ee687715}.journal-level-error td:first-child{box-shadow:inset 3px 0 #df6976}.journal-context{background:#577af510;border-radius:10px;align-items:center;gap:10px;margin-top:15px;padding:12px;display:flex}.journal-empty{text-align:center;color:var(--muted,#8390a8);padding:25px}.journal-detail{border:1px solid #8994b326;border-radius:14px;margin:18px 0;padding:20px}.journal-detail dl{grid-template-columns:180px 1fr;gap:9px;font-size:13px;display:grid}.journal-detail dd{overflow-wrap:anywhere;margin:0}.journal-detail dt{color:var(--muted,#8390a8)}.journal-health{color:var(--muted,#8390a8);margin:20px 0;font-size:12px}.journal-health summary{cursor:pointer}.admin-journal-link{align-items:center;gap:8px;margin:12px 0 24px;display:flex}[data-theme=dark] .journal-filters input,[data-theme=dark] .journal-filters select{color:#d8e2f6;background:#1c2436}[data-theme=dark] .journal-badge{color:#b5d8cb}@media (max-width:700px){.journal-heading{flex-direction:column;align-items:start}.journal-filters label{flex:1;min-width:130px}.journal-filters input,.journal-filters select{width:100%;max-width:100%}.journal-detail dl{grid-template-columns:1fr}.journal-table td{padding:10px}.journal-summary{gap:14px}}.journal-detail{z-index:120;background:var(--surface,#fff);width:min(490px,100vw - 40px);max-height:70vh;position:fixed;top:130px;right:24px;overflow:auto;box-shadow:0 18px 80px #16234126}.journal-detail .journal-heading{align-items:start}.journal-detail dl{grid-template-columns:1fr}.journal-detail dd{font-family:monospace;font-size:12px}[data-theme=dark] .journal-detail{background:#1c2436}.journal .primary-button,.journal .secondary-button,.admin-journal-link{color:inherit;font:inherit;cursor:pointer;background:#7186c310;border:1px solid #7186c330;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:10px 15px;font-size:13px;display:inline-flex}.journal .primary-button{color:#fff;background:#5868e8;border-color:#0000}.journal-filters .journal-check{white-space:nowrap;flex-direction:row;height:40px}.journal-filters .journal-check input{width:16px;height:16px;margin:0}
.control-work{max-width:960px;margin:auto;line-height:1.65}.control-work header{padding:16px 0 28px}.control-work h2{font-size:clamp(1.5rem,3vw,2.1rem)}.control-task{border:1px solid var(--border,#ced9ee);background:var(--panel,#789bd70b);border-radius:20px;margin:22px 0;padding:26px}.control-task-heading{justify-content:space-between;align-items:baseline;gap:14px;display:flex}.control-task-heading h3{margin:0 0 18px;font-size:1.2rem}.control-status{white-space:nowrap;background:#7486bf1f;border-radius:16px;padding:3px 10px;font-size:.8rem;display:inline-flex}.control-status.accepted,.control-status.completed{background:#2da78529}.control-status.partial{background:#6985e129}.control-status.changes_requested{background:#db96362b}.control-task label{gap:7px;margin-top:18px;display:grid}.control-task textarea{resize:vertical;border-radius:12px;width:100%;min-height:110px;padding:12px;font-size:1rem;line-height:1.6}.control-task textarea:disabled{opacity:1;cursor:default}.control-answer{font-family:ui-monospace,monospace}.control-image{object-fit:contain;border-radius:12px;max-width:min(100%,580px);max-height:440px;margin-top:16px;display:block}.control-task .control-upload{flex-wrap:wrap;align-items:center;gap:10px;font-size:.9rem;display:flex}.control-upload input{max-width:100%}.control-feedback,.control-review{background:#5a82dc12;border-radius:12px;margin-top:20px;padding:16px}.control-feedback p{white-space:pre-wrap}.control-rubric{margin-top:20px}.control-rubric summary{cursor:pointer}.control-submit{flex-wrap:wrap;align-items:center;gap:18px;padding:22px 0;display:flex}.control-submit>p{flex-basis:100%;margin:0}.control-confirm{z-index:20;background:#f5f7ff;border:2px solid #748cea;border-radius:20px;padding:24px;position:sticky;bottom:0;box-shadow:0 -12px 60px #20355c22}.control-wait{align-items:center;gap:10px;display:flex}[data-theme=dark] .control-confirm{background:#172139}[data-theme=dark] .control-task{background:#111c3033;border-color:#34435e}@media (max-width:650px){.control-task{padding:15px}.control-task-heading{display:block}.control-task-heading h3{margin-bottom:6px}.control-task-heading .control-status{margin-bottom:14px}}.control-admin{border:1px solid var(--line);background:var(--surface);border-radius:16px;margin:0 0 24px;padding:16px 20px}.control-admin summary{cursor:pointer;font-weight:600}.control-admin p{color:var(--muted);font-size:.9rem}.control-admin label{gap:8px;margin:16px 0;display:grid}.control-admin textarea{resize:vertical;min-height:70px}.control-admin .button-row{flex-wrap:wrap}.control-progress{border:1px solid var(--line);background:var(--surface);border-radius:18px;margin:0 0 24px;padding:20px}.control-progress h3{margin:0 0 12px}.control-progress-scroll{overflow-x:auto}.control-progress table{border-collapse:collapse;text-align:left;width:100%;font-size:.9em}.control-progress th,.control-progress td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 14px}.control-progress thead th{color:var(--muted);font-weight:500}.control-progress tbody th{font-weight:600}.control-progress td:last-child>span{display:block}.control-progress .board-link button{margin-top:6px;padding:5px 9px;font-size:.85em}.control-progress .muted{margin-bottom:0;font-size:.85em}.control-progress-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.control-progress-heading h3{margin:0}.control-access{border:1px solid var(--line);border-radius:16px;margin:18px 0;padding:16px}.control-code{border:1px solid var(--line);border-radius:16px;min-width:0;margin:16px 0;padding:16px}.control-code-status{flex-wrap:wrap;align-items:center;gap:8px;font-size:.9rem;display:flex}.control-code details{margin-top:12px}.control-code pre{max-height:500px;font-size:.9rem;overflow:auto}.control-code summary{cursor:pointer;padding:8px 0;font-weight:600}.control-progress-heading button,.control-code button{align-items:center;gap:6px;display:inline-flex}
@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(../media/KaTeX_AMS-Regular.25ieegmnh38ts.woff2)format("woff2"),url(../media/KaTeX_AMS-Regular.10y3kupq4t663.woff)format("woff"),url(../media/KaTeX_AMS-Regular.418dr7cz3fo2x.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(../media/KaTeX_Caligraphic-Bold.06b-ya9t43ioz.woff2)format("woff2"),url(../media/KaTeX_Caligraphic-Bold.2vmk2hva4ctha.woff)format("woff"),url(../media/KaTeX_Caligraphic-Bold.40ltxhe834pns.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(../media/KaTeX_Caligraphic-Regular.2eph4dlhid_m9.woff2)format("woff2"),url(../media/KaTeX_Caligraphic-Regular.3gxeetazf831f.woff)format("woff"),url(../media/KaTeX_Caligraphic-Regular.07-7u27-nhn_r.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(../media/KaTeX_Fraktur-Bold.2sasz-d-jtw8y.woff2)format("woff2"),url(../media/KaTeX_Fraktur-Bold.1alcy76__wdj2.woff)format("woff"),url(../media/KaTeX_Fraktur-Bold.19yqa_tc9d_gx.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(../media/KaTeX_Fraktur-Regular.2d10y4xmjvzlf.woff2)format("woff2"),url(../media/KaTeX_Fraktur-Regular.110oo81prr9n5.woff)format("woff"),url(../media/KaTeX_Fraktur-Regular.2qhy34r6a05dn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(../media/KaTeX_Main-Bold.3-rowy8o6_4ky.woff2)format("woff2"),url(../media/KaTeX_Main-Bold.0v1esh257kqpe.woff)format("woff"),url(../media/KaTeX_Main-Bold.0us_n0tnxlxu7.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(../media/KaTeX_Main-BoldItalic.14r2naom8mrec.woff2)format("woff2"),url(../media/KaTeX_Main-BoldItalic.13355ck5zr48q.woff)format("woff"),url(../media/KaTeX_Main-BoldItalic.3x_u9cepaced0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(../media/KaTeX_Main-Italic.0lig0v9j0700p.woff2)format("woff2"),url(../media/KaTeX_Main-Italic.0afv392dj4w59.woff)format("woff"),url(../media/KaTeX_Main-Italic.2hkw3230mfwcv.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(../media/KaTeX_Main-Regular.1ryvsdzh2w1_e.woff2)format("woff2"),url(../media/KaTeX_Main-Regular.15u8r3b2y7fv4.woff)format("woff"),url(../media/KaTeX_Main-Regular.0symfa7dqj6jd.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(../media/KaTeX_Math-BoldItalic.1oopuu636h4il.woff2)format("woff2"),url(../media/KaTeX_Math-BoldItalic.12pl58orkw9rg.woff)format("woff"),url(../media/KaTeX_Math-BoldItalic.0y5w36a5aq__2.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(../media/KaTeX_Math-Italic.32405s1aq8vas.woff2)format("woff2"),url(../media/KaTeX_Math-Italic.0w0b1ugh62cfr.woff)format("woff"),url(../media/KaTeX_Math-Italic.2vkekfblmz5nb.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(../media/KaTeX_SansSerif-Bold.0h3wi2z_eouyg.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Bold.1ovw5p-yjp56g.woff)format("woff"),url(../media/KaTeX_SansSerif-Bold.2d03q85pwxpti.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(../media/KaTeX_SansSerif-Italic.0wkjc4dm2kcit.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Italic.1qavw__2zz8gk.woff)format("woff"),url(../media/KaTeX_SansSerif-Italic.3i-q087b23-m8.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(../media/KaTeX_SansSerif-Regular.2peiewu59z3d-.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Regular.1i4afx8nk8n4r.woff)format("woff"),url(../media/KaTeX_SansSerif-Regular.31pbu25feko_c.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(../media/KaTeX_Script-Regular.11h14300o9pd0.woff2)format("woff2"),url(../media/KaTeX_Script-Regular.3110jb9c-bxna.woff)format("woff"),url(../media/KaTeX_Script-Regular.28p_x7iz71ofe.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size1-Regular.03lhvx36ekcou.woff2)format("woff2"),url(../media/KaTeX_Size1-Regular.1slf4bh0hc6vm.woff)format("woff"),url(../media/KaTeX_Size1-Regular.1y57-ck23ey8c.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size2-Regular.14s5gg-puz6h-.woff2)format("woff2"),url(../media/KaTeX_Size2-Regular.0-kwyvx03omo8.woff)format("woff"),url(../media/KaTeX_Size2-Regular.2u0s-b07k2o9m.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size3-Regular.1n1rgzz84z8r9.woff2)format("woff2"),url(../media/KaTeX_Size3-Regular.04o9a_02gu_e8.woff)format("woff"),url(../media/KaTeX_Size3-Regular.1pkn-dge4q0fv.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size4-Regular.2sgotkdv3dcyv.woff2)format("woff2"),url(../media/KaTeX_Size4-Regular.3p2r1l7xmebxv.woff)format("woff"),url(../media/KaTeX_Size4-Regular.2uelkfk2yna5e.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(../media/KaTeX_Typewriter-Regular.11gr2d2wuwz77.woff2)format("woff2"),url(../media/KaTeX_Typewriter-Regular.12f8myjij3617.woff)format("woff"),url(../media/KaTeX_Typewriter-Regular.3nee9kjfy6nm8.ttf)format("truetype")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,math,Times New Roman,serif;position:relative}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.19.0"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.katex-newline{display:block}.katex .katex-base{white-space:nowrap;width:min-content;position:relative}.katex .katex-base,.katex .katex-strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .katex-vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .katex-thinbox{flex-direction:row;width:0;max-width:0;display:inline-flex}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline,.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-rule,.katex .katex-underline .underline-line,.katex .mfrac .frac-line{min-height:1px}.katex .mspace{display:inline-block}.katex .katex-smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.katex-inner,.katex .llap>.katex-inner,.katex .rlap>.katex-inner{position:absolute}.katex .clap>.katex-fix,.katex .llap>.katex-fix,.katex .rlap>.katex-fix{display:inline-block}.katex .llap>.katex-inner{right:0}.katex .clap>.katex-inner,.katex .rlap>.katex-inner{left:0}.katex .clap>.katex-inner>span{margin-left:-50%;margin-right:50%}.katex .katex-rule{border:0 solid;display:inline-block;position:relative}.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.katex-root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .katex-sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .katex-sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .katex-sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .katex-sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .katex-sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .katex-sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .katex-sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .katex-sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .katex-sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .katex-sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .katex-sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .katex-sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .katex-sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .katex-sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .katex-sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .katex-sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .katex-sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .katex-sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .katex-sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .katex-sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .katex-sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .katex-sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .katex-sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .katex-sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .katex-sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .katex-sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .katex-sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .katex-sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .katex-sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .katex-sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .katex-sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .katex-sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .katex-sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .katex-sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .katex-sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .katex-sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .katex-sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .katex-sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .katex-sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .katex-sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .katex-sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .katex-sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .katex-sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .katex-sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .katex-sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .katex-sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .katex-sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .katex-sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .katex-sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .katex-sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .katex-sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .katex-sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .katex-sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .katex-sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .katex-sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .katex-sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .katex-sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .katex-sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .katex-sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .katex-sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .katex-sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .katex-sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .katex-sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .katex-sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .katex-sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .katex-sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .katex-sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .katex-sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .katex-sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .katex-sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .katex-sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .katex-sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .katex-sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .katex-sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .katex-sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .katex-sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .katex-sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .katex-sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .katex-sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .katex-sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .katex-sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .katex-sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .katex-sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .katex-sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .katex-sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .katex-sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .katex-sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .katex-sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .katex-sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .katex-sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .katex-sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .katex-sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .katex-sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .katex-sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .katex-sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .katex-sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .katex-sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .katex-sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .katex-sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .katex-sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .katex-sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .katex-sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .katex-sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .katex-sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .katex-sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .katex-sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .katex-sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .katex-sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .katex-sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .katex-sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .katex-sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .katex-sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .katex-sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .katex-sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .katex-sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .katex-sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .katex-sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .katex-sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .katex-sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .katex-sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .katex-sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .katex-accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .katex-accent .accent-body{position:relative}.katex .katex-accent .accent-body:not(.accent-full){width:0}.katex .katex-overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .katex-stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .katex-stretchy:after,.katex .katex-stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .katex-sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .reflectbox{display:inline-block;transform:scaleX(-1)}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.katex-tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.katex-tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}
:root{--ink:#23324b;--muted:#758399;--blue:#5286cf;--line:#dfe7f1;--glass:#ffffffb3;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);font-synthesis:none;background:#f5f8fc;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.concept-lesson{gap:30px;max-width:1040px;margin:auto;display:grid}.concept-hero{border:1px solid var(--line);background:radial-gradient(ellipse at 95% 0%,#a79cff24,transparent 65%),linear-gradient(125deg,#7faee91c,transparent 80%),var(--glass);border-radius:30px;padding:clamp(26px,5vw,58px);overflow:hidden}.concept-hero h1{letter-spacing:-.045em;max-width:820px;margin:24px 0;font-size:clamp(30px,3.7vw,52px);line-height:1.12}.concept-hero>p{color:var(--muted);max-width:760px;line-height:1.75}.concept-contents{padding:8px clamp(4px,3vw,36px)}.concept-contents h2{letter-spacing:-.02em;margin:0 0 14px;font-size:18px}.concept-contents ol{max-width:850px;margin:0;padding:0;list-style:none}.concept-contents li+li{border-top:1px solid var(--line)}.concept-contents a{color:var(--ink);align-items:baseline;gap:16px;padding:10px 6px;font-size:15px;line-height:1.5;text-decoration:none;transition:color .2s,background .2s;display:flex}.concept-contents a>span:first-child{font-variant-numeric:tabular-nums;color:var(--muted);flex:0 0 24px;font-size:12px}.concept-contents a:hover{background:var(--glass);color:var(--blue)}.concept-contents a:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px}.concept-section{padding:8px clamp(4px,3vw,36px);scroll-margin-top:110px}.concept-section h2,.concept-visual h2,.concept-quiz h2{letter-spacing:-.025em;font-size:clamp(21px,2.3vw,29px);line-height:1.3}.concept-section .markdown{max-width:850px;font-size:16px;line-height:1.9}.concept-section pre{border-radius:16px;max-height:560px;padding:22px;overflow:auto}.concept-visual{border:1px solid var(--line);background:linear-gradient(145deg,#88aafa16,#c897f00c),var(--glass);border-radius:26px;padding:clamp(20px,3vw,36px);box-shadow:0 16px 60px #19294408}.concept-slots{flex-wrap:wrap;align-items:stretch;gap:10px;min-height:105px;margin:28px 0;display:flex}.concept-slot{border:1px solid var(--line);background:var(--glass);text-align:center;border-radius:15px;flex-direction:column;justify-content:center;gap:9px;min-width:66px;max-width:100%;padding:12px 17px;transition:background .35s,border-color .35s,transform .35s;display:flex}.concept-slot.active{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 15%,var(--glass));transform:translateY(-5px);box-shadow:0 8px 20px #719adc16}.concept-slot small{color:var(--muted);font-size:10px}.concept-slot strong{overflow-wrap:anywhere;font:600 clamp(15px,2vw,23px)/1.3 Consolas,monospace;animation:.3s both concept-value}.concept-variables{flex-wrap:wrap;gap:10px;min-height:42px;display:flex}.concept-variables>span{border:1px solid var(--line);background:var(--glass);border-radius:10px;align-items:center;gap:12px;padding:8px 12px;display:flex}.concept-variables small{color:var(--muted);font:12px Consolas,monospace}.concept-variables strong{font:600 14px Consolas,monospace}.concept-caption{min-height:50px;font-size:15px;line-height:1.7}.concept-controls{border-top:1px solid var(--line);align-items:center;gap:8px;padding-top:20px;display:flex}.concept-controls button{border-radius:10px;padding:9px}.concept-controls input{min-width:30px;accent-color:var(--blue);flex:1}.concept-controls>span{color:var(--muted);white-space:nowrap;font:12px Consolas,monospace}.concept-quiz{border:1px solid var(--line);background:var(--glass);border-radius:26px;max-width:1040px;margin:28px auto;padding:clamp(22px,3vw,36px)}.concept-quiz form+form{border-top:1px solid var(--line);margin-top:24px;padding-top:18px}.concept-answer{gap:12px;max-width:650px;display:flex}.concept-answer input{flex:1;min-width:0}.quiz-correct{color:var(--blue);line-height:1.7}.lesson-references{max-width:1040px;color:var(--muted);margin:15px auto;padding:22px 0;font-size:13px}.lesson-references a{color:var(--blue);margin:12px 0;display:block}@keyframes concept-value{0%{opacity:.5;transform:translateY(4px)}to{opacity:1;transform:none}}@media (max-width:600px){.concept-answer{flex-direction:column}.concept-controls{gap:4px}.concept-slots{gap:7px}.concept-slot{min-width:48px;padding:10px}.concept-hero{border-radius:22px}.concept-contents a{font-size:14px}}@media (prefers-reduced-motion:reduce){.concept-slot,.concept-slot strong{transition:none!important;animation:none!important;transform:none!important}}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.45}button{background:0 0;border:0}a{color:#426eaf;text-decoration:none}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #649ae4}input:not([type=range]):focus,textarea:focus,select:focus{border-color:#0000;outline:2px solid #a1c2f1}input[type=range]{-webkit-user-select:none;user-select:none}input[type=range]:focus{box-shadow:none;outline:none}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-2px;font-size:clamp(34px,4vw,58px);font-weight:600;line-height:1.09}h1 span{color:#829cbe}h2{letter-spacing:-.7px;font-size:27px;font-weight:600}h3{font-weight:600}p{line-height:1.6}.muted{color:var(--muted);font-size:14px}.eyebrow,.mini-label{letter-spacing:2.1px;color:#74849d;font-size:11px;font-weight:650}.primary,.secondary{border-radius:13px;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:12px 21px;transition:transform .2s,background .2s;display:inline-flex}.primary{color:#fff;background:linear-gradient(135deg,#6d99d4,#587fb7);box-shadow:0 6px 16px #557fab20}.primary:hover:not(:disabled){background:#517db9;transform:translateY(-1px)}.secondary{background:#edf2fa;border:1px solid #dce5f2}.icon-button{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.icon-button:hover{background:#e8eef7}.danger{color:#ae546c}.danger-fill{background:#aa5269}.button-row{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.brand{letter-spacing:-1px;color:#34465f;white-space:nowrap;align-items:center;gap:11px;font-size:24px;font-weight:650;display:flex}.brand-icon{color:#678abd;background:linear-gradient(135deg,#fff,#e1eafa);border:1px solid #fff;border-radius:13px;place-items:center;width:39px;height:39px;display:grid;box-shadow:0 5px 15px #92a6c61b}.brand-dot{color:#a290c2;margin-left:-10px}.avatar{color:#6c7c9e;background:linear-gradient(145deg,#e2eaff,#f2e5f2);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:35px;height:35px;font-size:12px;font-weight:600;display:inline-flex}.avatar.large{border-radius:17px;width:50px;height:50px;font-size:17px}.avatar.xl{border-radius:22px;width:65px;height:65px;font-size:23px}.auth-page{background:#fcfdff;grid-template-columns:1.1fr 1fr;min-height:100dvh;display:grid}.auth-story{background:radial-gradient(at 85% 16%,#f4e8f1bb,#0000 45%),radial-gradient(at 5% 70%,#dde7fb,#0000 65%),linear-gradient(160deg,#f7faff,#eaf0fb);border-right:1px solid #e7edf6;flex-direction:column;padding:45px 8%;display:flex;position:relative;overflow:hidden}.auth-copy{margin-top:clamp(60px,12vh,140px)}.auth-copy .eyebrow{margin-bottom:25px}.auth-copy h1{letter-spacing:-2.8px;margin-bottom:25px;font-size:clamp(40px,4.3vw,67px)}.auth-copy p{color:#71829a;font-size:17px}.auth-cards{flex-direction:column;align-items:center;gap:13px;margin:28px 0 45px;display:flex;transform:rotate(-5deg)}.sample-card{background:#ffffff91;border:1px solid #fff;border-radius:22px;align-items:center;gap:17px;width:min(380px,100%);padding:19px 24px;animation:.7s both enter;display:flex;box-shadow:0 12px 32px #889fbe19,inset 0 1px 1px #fff}.sample-card:nth-child(2){animation-delay:.1s;transform:translate(25px)}.sample-card:nth-child(3){animation-delay:.2s;transform:translate(50px)}.sample-card>b{color:#709592;min-width:30px;font-size:25px}.sample-card.cpp>b{color:#6c97c5}.sample-card.algorithm>b{color:#6aabaf}.sample-card span{flex:1;font-size:15px;font-weight:600}.sample-card small{color:#8594a8;margin-top:6px;font-size:12px;font-weight:400;display:block}.sample-card>svg{color:#78a49a}.auth-foot{color:#8a97ad;margin-top:auto;font-size:12px}.auth-form-wrap{place-items:center;padding:45px 30px;display:grid}.auth-form{width:100%;max-width:370px}.auth-form h2{letter-spacing:-1.2px;margin:16px 0 12px;font-size:34px}.auth-form>p{color:#8290a3;font-size:14px}.segmented{background:#eff3f9;border-radius:13px;margin:27px 0;padding:4px;display:flex}.segmented button{color:#8290a7;border-radius:10px;width:50%;padding:10px;font-size:14px}.segmented .selected{color:#475b7c;background:#fff;box-shadow:0 2px 7px #6179940e}label{color:#55657c;flex-direction:column;gap:8px;font-size:13px;font-weight:550;display:flex}input,select,textarea{width:100%;min-width:0;color:var(--ink);background:#fcfdff;border:1px solid #dee6f0;border-radius:11px;padding:12px 13px;font-weight:400}input::placeholder,textarea::placeholder{color:#a1adbf}textarea{resize:vertical;min-height:76px}.auth-form>label,.edit-form>label{margin-bottom:17px}.auth-form .primary{width:100%;margin-top:6px}.form-row{grid-template-columns:1fr 1fr;gap:15px;margin-bottom:17px;display:grid}.form-hint{text-align:center;margin:18px 0 0;line-height:1.6;font-size:12px!important}.form-error{background:#fff0f3;border-radius:11px;padding:11px 14px;font-size:13px;line-height:1.5;color:#a04b61!important}.success{color:#448878;background:#edf8f4;border-radius:10px;padding:12px;font-size:13px}.checkbox{flex-direction:row;align-items:center;gap:8px;font-size:12px;font-weight:400;display:flex}.checkbox input{accent-color:#7397c8;width:15px;height:15px}.loading{color:#8798ad;place-items:center;min-height:60vh;display:grid}.workspace{background:radial-gradient(at 80% 0,#f4edf7,#0000 50%),#f6f9fd;min-height:100dvh}.app-header{background:#ffffffb8;border-bottom:1px solid #e5ecf4;align-items:center;gap:30px;height:76px;padding:0 32px;display:flex}.main-nav{flex:1;align-items:center;gap:8px;display:flex}.main-nav button{color:#8b98ac;border-radius:12px;align-items:center;gap:8px;padding:10px 15px;font-size:13px;display:flex}.main-nav button.selected{color:#5279ab;background:#edf3fc}.account-button{text-align:left;align-items:center;gap:10px;font-size:13px;display:flex}.account-button small{color:#8e9bb0;margin-top:3px;font-size:10px;display:block}.badge{color:#77679c;background:#ddd9f4;border-radius:7px;padding:2px 5px;font-size:10px}.toast{z-index:50;background:#fff3f6;border:1px solid #f1d5df;border-radius:12px;gap:12px;max-width:90vw;padding:12px 17px;font-size:13px;display:flex;position:fixed;top:85px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #60789e20}.dashboard{max-width:1250px;margin:auto;padding:52px 38px}.dashboard>.eyebrow{margin-bottom:25px}.page-title{justify-content:space-between;align-items:center;gap:30px;display:flex}.page-title p{color:#8795a8;font-size:15px}.stat-glass{color:#9c91ba;background:linear-gradient(135deg,#fff9,#e8e5f88c);border:1px solid #fff;border-radius:25px;flex-direction:column;min-width:200px;padding:25px 28px;display:flex;box-shadow:0 10px 30px #7888a415}.stat-glass strong{color:#617694;margin:9px 0;font-size:42px;font-weight:500}.stat-glass span{color:#8795a8;font-size:12px}.section-title{justify-content:space-between;align-items:center;gap:15px;margin:30px 0 22px;display:flex}.section-title h2{margin:0;font-size:21px}.section-title h2 span{color:#8b9ab1;padding-left:10px;font-size:13px}.search{background:#fff9;border:1px solid #e2e9f3;border-radius:12px;flex-direction:row;align-items:center;gap:9px;max-width:320px;padding:0 14px;display:flex}.search input{background:0 0;border:0;outline:none;padding-left:0;font-size:13px}.student-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:20px;display:grid}.student-card{text-align:left;background:linear-gradient(145deg,#ffffffdc,#f0f5fcaa);border:1px solid #fff;border-radius:23px;padding:24px;transition:transform .23s;box-shadow:0 8px 30px #597b9d0d}.student-card:hover{transform:translateY(-4px)}.student-card-top{align-items:center;gap:12px;margin-bottom:23px;display:flex}.student-card-top>svg{color:#8ea2be;margin-left:auto}.student-card h3{margin-bottom:7px;font-size:18px}.student-card p{color:#8896aa;text-overflow:ellipsis;font-size:12px;overflow:hidden}.request-pill{color:#a98552;white-space:nowrap;background:#fff1df;border-radius:9px;align-items:center;gap:5px;padding:6px 8px;font-size:10px;display:flex}.progress-line{background:#e5ecf5;border-radius:10px;height:4px;margin-top:23px;display:block;overflow:hidden}.progress-line i{background:linear-gradient(90deg,#b4d6d0,#8baccf);border-radius:10px;height:100%;display:block}.student-card-bottom{color:#8999ae;justify-content:space-between;margin-top:11px;font-size:11px;display:flex}.empty-state{text-align:center;color:#8b9cb2;background:#ffffff70;border:1px solid #fff;border-radius:25px;padding:70px 20px}.empty-state h3{color:#647b9a;margin-top:20px}.empty-state p{font-size:14px}.users-table{background:#ffffffad;border:1px solid #fff;border-radius:22px;margin-top:30px;padding:5px 22px}.users-table-head,.users-table-row{grid-template-columns:2fr 1fr 100px;align-items:center;gap:15px;padding:19px 0;display:grid}.users-table-head{text-transform:uppercase;letter-spacing:1px;color:#9aa7ba;font-size:11px}.users-table-row{border-top:1px solid #e7edf6;font-size:14px}.users-table-row small{color:#8c9ab0;margin-top:6px;font-size:12px;display:block}.role-label{color:#7187a6;font-size:12px}.plan-page{background:#f5f8fc;flex-direction:column;height:calc(100dvh - 76px);display:flex;position:relative;overflow:hidden}.plan-toolbar{background:#ffffffa8;flex-shrink:0;align-items:center;gap:22px;min-height:87px;padding:12px 30px;display:flex}.stage-tabs{background:#eaf0f94d;border-radius:18px;gap:5px;padding:4px;display:flex}.stage-tabs button{text-align:left;color:#8d9eb5;border-radius:14px;min-width:148px;padding:10px 21px;transition:background .5s,color .5s}.stage-tabs small{letter-spacing:1.1px;white-space:nowrap;margin-bottom:5px;font-size:8px;display:block}.stage-tabs strong{font-size:19px;font-weight:550}.stage-tabs button.active{color:#4f6f99;background:linear-gradient(140deg,#fff,#e8f0fc);border:1px solid #fff;box-shadow:0 3px 12px #799ac21a}.plan-owner{min-width:120px;margin-right:auto;font-size:13px}.plan-owner small{color:#92a0b3;margin-top:6px;font-size:11px;display:block}.zoom-control{white-space:nowrap;color:#7c8da5;align-items:center;gap:9px;font-size:11px;display:flex}.zoom-control input{accent-color:#89a9d1;border:0;width:70px;height:5px;padding:0}.zoom-control button{border-radius:8px;min-width:24px;height:31px}.zoom-control button:hover,.zoom-control button.active{color:#587eaf;background:#e9f0fa}.zoom-control span{min-width:33px}.admin-map-bar{color:#8b7ca6;background:#f8f5fc;border-top:1px solid #e7edf5;flex-shrink:0;align-items:center;gap:25px;height:31px;padding:0 32px;font-size:11px;display:flex}.map-area{background:#eaf0f9;flex:1;min-height:0;position:relative;overflow:hidden}.map-viewport{scrollbar-width:none;overscroll-behavior:contain;touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab;width:100%;height:100%;overflow:auto}.map-viewport::-webkit-scrollbar{display:none}.map-viewport:active{cursor:grabbing}.map-canvas{position:relative}.map-scene{transform-origin:0 0;will-change:transform;display:flex;position:absolute;top:0;left:0}.learning-column{border-right:1px solid #9aaec125;flex-shrink:0;min-height:100%;position:relative}.column-heading{color:#869fbb;justify-content:space-between;align-items:center;margin:0 2px 25px;display:flex}.column-number{letter-spacing:-2px;color:#a6b7cd;font-size:46px;font-weight:300}.column-heading>span:last-child{color:#97a8bd;align-items:center;gap:6px;font-size:14px;display:flex}.topic-wrap{margin-bottom:18px;position:relative}.topic-card{background:linear-gradient(145deg, #ffffffdb, var(--tint,#eef0f6));text-align:left;contain:paint;color:#35465e;border:1.5px solid #fff;border-radius:22px;width:100%;padding:19px 22px 21px;transition:transform .2s,border-color .2s;position:relative;overflow:hidden;box-shadow:0 7px 18px #506e9010,inset 0 1px 1px #fff}.topic-card:before{content:"";pointer-events:none;background:radial-gradient(circle at var(--mx,50%) var(--my,0%), #fffb, transparent 50%);opacity:0;transition:opacity .3s;position:absolute;inset:0}.topic-card:hover:before{opacity:1}.topic-card:hover{border-color:#fff;transform:translateY(-2px)}.topic-card>*{position:relative}.topic-card h3{letter-spacing:-.4px;overflow-wrap:anywhere;margin:10px 0 8px;font-size:23px;line-height:1.2}.topic-card p{color:#697c96;overflow-wrap:anywhere;margin:0;font-size:17px;line-height:1.43}.card-top{color:var(--accent,#8593a7);align-items:center;gap:9px;font-size:12px;display:flex}.kind-icon{place-items:center;display:grid}.kind-icon svg{stroke-width:1.5px;width:20px;height:20px}.card-state{color:var(--accent);align-items:center;gap:5px;margin-left:auto;display:flex}.cpp{--tint:#dceafb;--accent:#6794c4}.math{--tint:#e2f0e7;--accent:#71a291}.algorithm{--tint:#d6eeee;--accent:#579f9d}.tools{--tint:#e8e0f7;--accent:#a38bc0}.resource{--tint:#f4dfe8;--accent:#bb8fa9}.practice{--tint:#f8e8d8;--accent:#ba9770}.control{--tint:#e9edf4;--accent:#8a99ae}.control .topic-card h3{font-size:20px}.topic-card.locked{filter:saturate(.7)}.topic-card.completed{border-color:#b9dacf}.topic-card.completed .card-state{color:#579784}.card-edit{z-index:2;background:#ffffffed;border:1px solid #dfe7f2;border-radius:9px;display:flex;position:absolute;bottom:-9px;right:5px;box-shadow:0 3px 8px #6f849a15}.card-edit button{color:#7691b3;padding:4px 7px;display:flex}.add-topic{color:#839ab6;background:#ffffff4d;border:1px dashed #9eb3d080;border-radius:16px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px;font-size:16px;display:flex}.map-arrow{color:#7090b8;z-index:5;background:#ffffffb8;border:1px solid #ffffffd9;border-radius:20px;place-items:center;width:43px;height:63px;transition:opacity .2s;display:grid;position:absolute;top:45%;box-shadow:0 4px 20px #59769715}.map-arrow.left{left:10px}.map-arrow.right{right:10px}.map-arrow:disabled{opacity:.15}.map-navigation{z-index:6;background:linear-gradient(135deg,#f9fbfce8,#eaf1fae8);border-top:1px solid #fff;flex-shrink:0;padding:25px 45px 10px}.map-rail{touch-action:none;cursor:pointer;height:37px;margin:0 12px;position:relative}.rail-gradient{background:linear-gradient(90deg,#ecedf7,#ceddf1,#aec3e2,#819dc7);border-radius:8px;height:5px;position:absolute;top:6px;left:0;right:0}.rail-marker{pointer-events:none;z-index:2;background:linear-gradient(135deg,#fff,#ccdff5);border:2px solid #fff;border-radius:50%;width:17px;height:17px;position:absolute;top:0;transform:translate(-50%);box-shadow:0 2px 7px #5478a851}.map-rail button{color:#97a9bf;touch-action:none;padding:5px 8px;font-size:10px;position:absolute;top:17px;transform:translate(-50%)}.map-rail button.active{color:#4e73a3;font-weight:700}.stage-bottom{justify-content:space-between;align-items:center;min-height:31px;padding-top:6px;display:flex}.stage-bottom button{color:#7490b3;border-radius:7px;align-items:center;gap:6px;padding:4px 7px;font-size:11px;display:flex}.stage-bottom button:hover{background:#ffffff80}.stage-bottom .muted{font-size:10px}.map-message{z-index:10;color:#9b855b;cursor:pointer;background:#fffbefed;border-radius:13px;max-width:90vw;padding:12px 18px;font-size:12px;position:absolute;top:98px;left:50%;transform:translate(-50%);box-shadow:0 5px 20px #718ca526}.map-message span{margin-left:10px}.departing{pointer-events:none;z-index:3;position:absolute;inset:0}.flying .map-arrow{pointer-events:none}.traveling .map-rail{pointer-events:none;animation:1.8s both rail-travel}.traveling .rail-marker{transition:left 1.8s cubic-bezier(.55,0,.18,1)}@keyframes rail-travel{50%{transform:translateY(3px)}}.column-content{padding:16px 28px 14px}.column-heading{margin-bottom:15px}.column-number{font-size:37px}.column-heading>span:last-child{font-size:14px}.topic-wrap{margin-bottom:12px}.topic-card{border-radius:19px;padding:10px 19px 13px}.topic-card h3{margin:5px 0 4px;font-size:23px;line-height:1.16}.topic-card p{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:17px;line-height:1.3;display:-webkit-box;overflow:hidden}.card-top{gap:7px;font-size:12px}.kind-icon svg{width:17px;height:17px}.control .topic-card{padding:9px 19px}.control .topic-card h3{margin:4px 0;font-size:19px}.control .topic-card p{font-size:14px}.add-topic{padding:10px;font-size:15px}.map-navigation{padding-top:17px;padding-bottom:7px}.hljs-keyword,.hljs-type,.hljs-selector-tag{color:#8b67a6}.hljs-string,.hljs-attr{color:#488678}.hljs-number,.hljs-literal{color:#b07485}.hljs-title,.hljs-built_in{color:#477eb4}.hljs-comment{color:#8b9eaf;font-style:italic}.hljs-meta{color:#76945b}.modal{width:min(580px,94vw);max-height:88dvh;color:var(--ink);background:#fbfcff;border:1px solid #fff;border-radius:25px;padding:0;animation:.25s modal-in;overflow:auto;box-shadow:0 25px 100px #243b6740}.modal.wide{width:min(850px,94vw)}.modal::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#34496536}.modal-heading{z-index:3;background:#f9fbfff5;border-bottom:1px solid #e7edf5;justify-content:space-between;align-items:center;gap:12px;padding:20px 27px;display:flex;position:sticky;top:0}.modal-heading h2{margin:0;font-size:22px}.edit-form{padding:25px 30px}.edit-form>h3{font-size:17px}.edit-form hr{border:0;border-top:1px solid #e4ebf4;margin:24px 0}.profile-hero{align-items:center;gap:17px;margin-bottom:28px;display:flex}.profile-hero h3{margin:0 0 5px;font-size:19px}.profile-hero p{color:#8b9aaf;margin:0;font-size:12px}.material-input{min-height:200px;font-family:Consolas,monospace;font-size:13px}.topic-status{justify-content:space-between;align-items:center;padding:18px 30px;display:flex}.status{color:#7f94ad;background:#eaf0f8;border-radius:9px;align-items:center;gap:7px;padding:7px 11px;font-size:12px;display:inline-flex}.status.done{color:#60927d;background:#e6f4ed}.status.pending{color:#ae8e5d;background:#fff0dd}.topic-body{padding:0 34px 28px}.topic-summary{color:#6d829f;font-size:16px}.markdown{color:#495b76;font-size:15px;line-height:1.7}.markdown h2{color:#354d6d;margin-top:35px;font-size:24px}.markdown h3{margin-top:28px}.markdown blockquote{background:#edf3fd;border-left:3px solid #b8cee9;border-radius:0 12px 12px 0;margin:20px 0;padding:13px 18px;font-size:14px}.markdown blockquote p{margin:0}.markdown table{border-collapse:collapse;width:100%;font-size:13px;display:block;overflow:auto}.markdown td,.markdown th{text-align:left;border-bottom:1px solid #dfe7f2;padding:10px}.markdown code{background:#eaf0f7;border-radius:5px;padding:2px 5px;font-family:Consolas,Courier New,monospace;font-size:.9em}.code-block{background:#edf2fa;border:1px solid #e0e8f4;border-radius:14px;margin:18px 0;position:relative;overflow:hidden}.code-block pre{margin:0;padding:43px 21px 20px;line-height:1.7;overflow:auto}.code-block pre code{color:#486185;background:0 0;padding:0;font-size:13px}.code-block>button{color:#8299ba;align-items:center;gap:6px;font-size:10px;display:flex;position:absolute;top:10px;right:12px}.katex-display{padding:6px 0;overflow:auto hidden}.material-empty{background:#f4f7fc;border:1px dashed #d9e3f1;border-radius:17px;padding:24px}.material-empty h3{font-size:17px}.material-empty p{color:#8293aa;margin-bottom:0;font-size:14px}.topic-actions{background:#f0f5fbe0;border-top:1px solid #e3eaf5;padding:23px 30px}.topic-actions p{color:#8595aa;font-size:13px}.topic-actions label{margin-bottom:15px}.topic-actions textarea{min-height:60px}.review-note{color:#a78a60;background:#fff4e5;border-radius:13px;margin-top:24px;padding:18px;font-size:14px}.review-note p{margin:7px 0 0}.demo{background:linear-gradient(130deg,#f0eaf8,#e8f1fa);border:1px solid #fff;border-radius:19px;margin-top:30px;padding:23px}.demo p{color:#8e91a9;font-size:12px}.demo select,.demo label{margin-bottom:13px}.demo output{white-space:pre-wrap;background:#fff8;border-radius:11px;margin-top:13px;padding:15px;font-family:Consolas,monospace;font-size:14px;display:block}.demo .secondary{background:#fff9}@keyframes enter{0%{opacity:0;translate:0 14px}to{opacity:1;translate:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.985)}to{opacity:1;transform:none}}@media (max-width:1000px){.app-header{gap:17px;padding:0 20px}.plan-toolbar{gap:12px;padding:10px 20px}.plan-owner{display:none}.zoom-control{margin-left:auto}.stage-tabs button{min-width:115px;padding:9px 14px}.auth-story{padding:30px 7%}.auth-copy h1{font-size:45px}.sample-card:nth-child(2){transform:translate(10px)}.sample-card:nth-child(3){transform:translate(20px)}}@media (max-width:700px){.auth-page{grid-template-columns:1fr}.auth-story{padding:25px 25px 30px}.auth-copy{margin-top:35px}.auth-copy h1{letter-spacing:-1.6px;font-size:38px}.auth-copy p{margin:0;font-size:14px}.auth-cards,.auth-foot{display:none}.auth-form-wrap{padding:35px 25px}.app-header{gap:9px;height:66px;padding:0 12px}.brand{gap:6px;font-size:20px}.brand-icon{width:32px;height:32px}.main-nav{gap:1px}.main-nav button{padding:8px;font-size:11px}.main-nav button svg,.account-button>span:last-child{display:none}.account-button{padding:0}.app-header>.icon-button{width:29px}.plan-page{height:calc(100dvh - 66px)}.plan-toolbar{flex-wrap:wrap;gap:5px;min-height:116px;padding:8px 14px}.stage-tabs{width:100%}.stage-tabs button{width:50%;padding:8px 13px}.stage-tabs strong{font-size:17px}.stage-tabs small{font-size:8px}.zoom-control{justify-content:flex-end;width:100%}.zoom-control input{width:80px}.admin-map-bar{gap:9px;height:auto;min-height:35px;padding:5px 15px}.admin-map-bar>span{display:none}.admin-map-bar .checkbox{font-size:10px}.map-navigation{padding:18px 24px 8px}.map-rail{margin:0 4px}.map-rail button{padding:6px 3px;font-size:8px}.map-arrow{width:31px;height:49px;top:46%}.map-arrow.left{left:4px}.map-arrow.right{right:4px}.stage-bottom button{padding:5px 0;font-size:9px}.stage-bottom .muted{font-size:9px}.dashboard{padding:30px 20px}.dashboard h1{font-size:37px}.page-title .stat-glass{display:none}.page-title p{font-size:13px}.section-title{flex-wrap:wrap}.search{width:100%;max-width:none}.student-grid{grid-template-columns:1fr}.users-table{padding:4px 14px}.users-table-row,.users-table-head{grid-template-columns:minmax(0,1fr) 78px 67px;gap:8px}.users-table-row strong{font-size:12px}.users-table-row small{word-break:break-all;font-size:10px}.role-label{font-size:10px}.users-table-row .button-row{gap:0}.users-table-row .icon-button{width:30px}.modal-heading{padding:16px 20px}.modal-heading h2{font-size:19px}.edit-form,.topic-body{padding:20px}.topic-status,.topic-actions{padding:16px 20px}.modal{max-height:94dvh}.topic-summary{font-size:14px}.form-row{gap:10px}.topic-actions .primary{font-size:12px}.map-message{width:90%;top:125px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.checked-practice .math-answer-field{gap:12px;max-width:540px;margin:24px 0;display:grid}.math-answer-field>label{font-size:calc(14px * var(--reading-scale,1));color:var(--ink);margin:0;line-height:1.5;display:block}.math-answer-field input{width:min(100%,360px);font-family:inherit;font-size:calc(16px * var(--reading-scale,1));border:1px solid var(--line);background:var(--glass);color:var(--ink);border-radius:12px;padding:12px 14px;line-height:1.5}.math-answer-field small{color:var(--muted);font-size:calc(13px * var(--reading-scale,1));margin:0;font-weight:400;line-height:1.55;display:block}.math-reasoning{border:1px solid var(--line);background:linear-gradient(120deg,#6288e510,transparent),var(--glass);border-radius:22px;margin:24px 0;padding:clamp(18px,3vw,30px)}.math-reasoning h3{margin:10px 0 14px}.math-reasoning p{line-height:1.7}.math-reasoning-stage{border-block:1px solid var(--line);margin:20px 0;padding:22px 0}.math-reasoning-terms{flex-wrap:wrap;gap:10px;margin:20px 0;display:flex}.math-reasoning-terms>span{border:1px solid var(--line);font-variant-numeric:tabular-nums;background:var(--glass);border-radius:12px;justify-content:center;align-items:center;min-height:48px;padding:10px 14px;transition:opacity .25s,background .25s;display:inline-flex;position:relative}.math-reasoning-terms>span.cancelled{opacity:.4;text-decoration:line-through}.math-reasoning-frame{min-height:130px;animation:.22s ease-out math-frame-in}.math-reasoning-nav{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.math-reasoning-nav button{border:1px solid var(--line);background:var(--glass);color:var(--ink);cursor:pointer;border-radius:12px;align-items:center;gap:6px;padding:10px 13px;display:inline-flex}.math-reasoning-nav button:disabled{opacity:.4;cursor:default}.math-reasoning-nav button[aria-pressed=true]{border-color:var(--blue);background:#6288e524}.logic-comparison{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0;display:grid}.logic-comparison>div{border:1px solid var(--line);border-radius:14px;min-width:0;padding:16px}.logic-comparison .counterexample{background:#d38b3320;border-color:#bd8645}.logic-comparison small{min-height:2.8em;display:block}@keyframes math-frame-in{0%{opacity:.5;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (max-width:620px){.logic-comparison{grid-template-columns:1fr}.math-reasoning-frame{min-height:180px}}@media (prefers-reduced-motion:reduce){.math-reasoning-frame{animation:none}.math-reasoning-terms>span{transition:none}}.sets-demo svg{width:min(100%,520px);height:auto;margin:18px auto;display:block;overflow:visible}.sets-demo svg>circle{fill:none;stroke:var(--blue);stroke-width:1.8px}.sets-demo svg text{fill:var(--ink);font-family:inherit;font-size:16px;font-weight:500}.sets-demo svg text.selected{font-weight:750}.sets-demo svg .set-overcount{fill:#ac6b29;font-weight:750}.set-region-fill{transition:opacity .28s}.sets-operation-buttons{flex-wrap:wrap;gap:8px;margin:18px 0;display:flex}.sets-operation-buttons button{border:1px solid var(--line);color:var(--ink);background:var(--glass);cursor:pointer;border-radius:12px;padding:10px 14px}.sets-operation-buttons button[aria-pressed=true]{border-color:var(--blue);background:#648fe329}.sets-selection{border-top:1px solid var(--line);min-height:150px;padding-top:16px}.sets-selection>.markdown{margin-right:20px;display:inline-block}.sets-demo>small{color:var(--muted);line-height:1.6}@media (prefers-reduced-motion:reduce){.set-region-fill{transition:none}}.section-lab{border:1px solid var(--line);background:var(--glass);color:var(--ink);overflow-wrap:anywhere;border-radius:22px;min-width:0;margin:1.6em 0;padding:clamp(16px,3vw,28px)}.section-lab h3{margin:0 0 .7em;font-size:1.15em;line-height:1.4}.section-lab p{line-height:1.65}.section-lab button{font:inherit;border:1px solid var(--line);background:var(--glass);color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:12px;padding:.65em .9em;font-size:.9em;line-height:1.4}.section-lab button:hover{border-color:var(--blue)}.section-lab button.primary{background:var(--blue);color:#fff}.section-lab button[aria-pressed=true]{background:color-mix(in srgb,var(--blue) 15%,var(--glass));border-color:var(--blue)}.section-lab button:focus-visible,.section-lab input:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.section-lab button:disabled{opacity:.45;cursor:default}.section-lab-options,.section-lab-actions{flex-wrap:wrap;align-items:center;gap:10px;margin:1em 0;display:flex}.section-lab-input{gap:10px;max-width:28em;margin:1em 0;display:grid}.section-lab-input input{box-sizing:border-box;background:var(--glass);width:100%;min-width:0;color:var(--ink);border:1px solid var(--line);font:inherit;border-radius:12px;padding:.75em 1em}.section-lab-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:12px;margin:1.2em 0;display:grid}.section-lab-grid>div{border:1px solid var(--line);border-radius:14px;align-content:start;gap:.6em;min-width:0;padding:1em;display:grid}.section-lab-grid strong{font-size:1.05em}.section-lab-grid small{color:var(--muted);line-height:1.5}.section-lab-status{min-height:3.3em;margin:1em 0 0}.section-set-diagram{width:min(100%,450px);height:auto;margin:1em auto;display:block}.section-set-diagram>circle{fill:none;stroke:var(--blue);stroke-width:2px}.section-set-diagram text{fill:var(--ink);font:600 18px system-ui,sans-serif}.section-trace-grid{grid-template-columns:minmax(0,1.6fr) minmax(160px,1fr);align-items:start;gap:18px;display:grid}.section-trace-grid pre{background:var(--glass);border:1px solid var(--line);border-radius:14px;min-width:0;margin:0;padding:12px 0;font-size:.82em;line-height:1.8;overflow:auto}.section-trace-grid pre>span{box-sizing:border-box;width:max-content;min-width:100%;padding:0 12px;display:block}.section-trace-grid .current{background:color-mix(in srgb,var(--blue) 16%,transparent);box-shadow:inset 3px 0 var(--blue)}.trace-line-number{opacity:.55;-webkit-user-select:none;user-select:none;width:2.3em;display:inline-block}.section-trace-grid dl{gap:10px;margin:0;display:grid}.section-trace-grid dl>div{border:1px solid var(--line);border-radius:12px;padding:12px}.section-trace-grid dt{font-family:monospace}.section-trace-grid dd{margin:6px 0 0;font-size:.9em}.section-test-list{gap:8px;display:grid;margin:1em 0!important;padding:0!important;list-style:none!important}.section-test-list li{border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;padding:10px;display:flex;margin:0!important}.section-test-list li:before{display:none!important}.section-test-list li button{margin-left:auto}@media (max-width:650px){.section-trace-grid{grid-template-columns:minmax(0,1fr)}.section-trace-grid dl{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.section-lab-actions button{flex:auto}.section-lab-options button{flex:130px}}.region-condition{gap:10px;max-width:32em;margin:1em 0;font-weight:500;display:grid}.region-condition select{border:1px solid var(--line);width:100%;min-width:0;font:inherit;color:var(--ink);background:var(--panel,var(--glass));border-radius:12px;padding:.75em 2em .75em .85em}.region-condition select option{background:var(--surface,#fff);color:var(--ink)}.region-selector svg{cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation}.region-focus-target{fill:#0000;stroke:#0000}.region-selector g:focus{outline:none}.region-selector g:focus-visible .region-focus-target{stroke:var(--blue);stroke-width:2px;fill:var(--glass)}.region-selector select:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.bounds-layout{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:24px;display:grid}.bounds-values{gap:0;margin:0;display:grid}.bounds-values>div{border-bottom:1px solid var(--line);padding:.7em 0}.bounds-values dt{color:var(--muted);font-size:.9em}.bounds-values dd{font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;margin:.3em 0 0;display:flex}.bounds-values dd span{color:var(--muted)}.bounds-values .invalid strong,.section-set-diagram text.region-negative{color:var(--danger);fill:var(--danger)}.set-bounds-lab .section-lab-input{max-width:17em}.set-counting-workspace{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:24px;margin:24px 0;display:grid}.set-counting-workspace svg{width:100%;margin:0}.set-count-label{fill:var(--surface,#fff)}.set-counting-explanation{min-width:0;min-height:16em}.set-counting-explanation h4{font:inherit;margin:.6em 0;font-size:1.08em;font-weight:650;line-height:1.45}.set-counting-lab h3{font-size:1.15em;line-height:1.4}.set-counting-lab .math-reasoning-nav button,.sets-operation-buttons button,.math-reasoning-nav button{font:inherit;-webkit-user-select:none;user-select:none;font-size:.9em;line-height:1.4}.set-counting-lab .math-reasoning-nav button:focus-visible{outline:2px solid var(--blue);outline-offset:3px}[data-theme=dark] .sets-demo svg .set-overcount{fill:#edbc80}.practice-feedback>.markdown{margin-top:.6em}.checked-practice .katex-display>.katex{white-space:normal}.checked-practice .katex-display>.katex>.katex-html{line-height:1.7}@media (max-width:760px){.set-counting-workspace,.bounds-layout{grid-template-columns:minmax(0,1fr)}.set-counting-workspace svg{max-width:420px;margin:auto}.set-counting-explanation{min-height:0}.set-counting-lab{padding:16px}.bounds-layout{gap:6px}}.section-lab,.set-counting-lab{font-size:calc(16px * var(--reading-scale,1))}@media (max-width:500px){.set-counting-workspace svg{width:calc(100% + 24px);max-width:none;margin-left:-12px}.set-counting-lab svg text{font-size:22px}}.region-selector .region-condition{gap:8px;max-width:34em}.region-selector .region-condition>span{color:var(--muted);font-size:.82em}.region-selector .region-condition-menu{border:0;margin:0;padding:0;position:relative}.region-selector .region-condition-menu>summary{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:14px;justify-content:space-between;align-items:center;gap:14px;padding:13px 16px;font-weight:500;line-height:1.5;list-style:none;display:flex}.region-selector .region-condition-menu>summary::-webkit-details-marker{display:none}.region-selector .region-condition-menu>summary:before,.region-selector .region-condition-menu>summary:after{display:none}.region-selector .region-condition-menu>summary svg{flex:none;transition:transform .15s}.region-selector .region-condition-menu[open]>summary svg{transform:rotate(180deg)}.region-selector .region-condition-options{z-index:5;background:var(--surface);border:1px solid var(--line);box-shadow:0 12px 28px var(--shadow);border-radius:15px;gap:4px;padding:6px;display:grid;position:absolute;inset:calc(100% + 6px) 0 auto}.region-selector .region-condition-options>button{width:100%;font:inherit;text-align:left;background:0 0;border:0;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;margin:0;padding:11px 12px;font-size:.92em;line-height:1.45;display:flex}.region-selector .region-condition-options>button svg{flex:none}.region-selector .region-condition-options>button:hover,.region-selector .region-condition-options>button[aria-pressed=true]{background:var(--raised)}.region-selector .region-condition-menu>summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.region-selector .region-selection-marker{fill:var(--surface);stroke:var(--line);stroke-width:1.4px}.region-selector [aria-pressed=true] .region-selection-marker{fill:var(--blue);stroke:var(--blue)}.region-selector .region-selection-check{fill:none;stroke:var(--surface);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.region-selector .section-set-diagram>circle,.set-bounds-lab .section-set-diagram>circle{stroke-width:1.6px}.region-selector .section-set-diagram text,.set-bounds-lab .section-set-diagram text{font-family:inherit}.set-bounds-lab .bounds-input-row{border-block:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin:8px 0 16px;padding:16px 0;display:flex}.set-bounds-lab .bounds-input-row label{font:inherit;font-size:.9em;line-height:1.5}.set-bounds-lab .bounds-input-row label span{padding-left:5px;font-style:italic}.set-bounds-lab .bounds-stepper{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex:none;align-items:center;padding:3px;display:flex}.set-bounds-lab .bounds-stepper button{background:0 0;border:0;border-radius:9px;place-items:center;width:34px;height:36px;padding:0;display:grid}.set-bounds-lab .bounds-stepper button:hover:not(:disabled){background:var(--raised)}.set-bounds-lab .bounds-stepper input{appearance:textfield;width:3em;font:inherit;font-variant-numeric:tabular-nums;text-align:center;color:var(--ink);background:0 0;border:0;border-radius:0;margin:0;padding:6px 2px;font-weight:650}.set-bounds-lab .bounds-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.set-bounds-lab .bounds-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.set-bounds-lab .bounds-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:28px}.set-bounds-lab .bounds-distribution{min-width:0;font-size:.88em;line-height:1.5}.set-bounds-lab .bounds-distribution>[role=row]{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 5em 3.1em;align-items:baseline;gap:12px;padding:12px 4px;display:grid}.set-bounds-lab .bounds-distribution .bounds-distribution-head{color:var(--muted);padding-top:0;font-size:.87em}.set-bounds-lab .bounds-distribution [role=cell]:last-child,.set-bounds-lab .bounds-distribution [role=columnheader]:last-child{text-align:right;font-variant-numeric:tabular-nums}.set-bounds-lab .bounds-formula{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}.set-bounds-lab .bounds-distribution .invalid{color:var(--danger);background:var(--danger-bg);border-radius:8px}.set-bounds-lab .bounds-status{background:var(--raised);border-radius:12px;margin:20px 0 0;padding:14px 16px;font-size:.9em;line-height:1.65}.set-bounds-lab .bounds-status.impossible{background:var(--danger-bg);color:var(--danger)}.set-counting-lab .set-counting-workspace{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);align-items:center}.set-counting-lab .set-counting-workspace svg{width:100%;max-width:680px;margin:0 auto}.set-counting-lab .set-counting-explanation{min-height:0}.set-counting-lab svg text{font-size:20px}.set-counting-lab svg>circle{stroke-width:1.7px}@media (max-width:800px){.set-bounds-lab .bounds-layout,.set-counting-lab .set-counting-workspace{grid-template-columns:minmax(0,1fr)}.set-bounds-lab .section-set-diagram{max-width:420px;margin:0 auto 12px}.set-bounds-lab .bounds-distribution>[role=row]{grid-template-columns:minmax(0,1fr) 4.5em 2.7em;gap:8px}.set-counting-lab .set-counting-workspace{gap:20px}.set-counting-lab .set-counting-workspace svg{max-width:580px}.set-counting-lab svg text{font-size:22px}}@media (prefers-reduced-motion:reduce){.region-selector .region-condition-menu>summary svg{transition:none}}.set-bounds-lab .bounds-input-row label span{font-size:inherit;color:inherit;margin:0;display:inline}.set-bounds-lab .bounds-distribution>[role=row]{grid-template-columns:minmax(0,1fr) 4.2em 3.6em}.set-bounds-lab .bounds-distribution .bounds-distribution-head{font-size:inherit}.set-bounds-lab .bounds-distribution [role=columnheader]{white-space:nowrap;font-size:.85em}.set-bounds-lab .bounds-input-row label{color:var(--ink);margin:0;display:block}.region-selector .section-set-diagram :is(.set-name,.set-universe-name),.set-bounds-lab .section-set-diagram :is(.set-name,.set-universe-name){fill:var(--ink);stroke:none;pointer-events:none;font-family:KaTeX_Math,Cambria Math,serif;font-size:20px;font-style:italic;font-weight:400}.logic-lab{font-size:calc(16px * var(--reading-scale,1));min-width:0;line-height:1.65;container-type:inline-size}.logic-lab h3{margin:.5em 0 .75em;font-family:inherit;font-size:1.2em;line-height:1.4}.logic-lab :is(button,small,strong){font-family:inherit}.logic-lab :is(.section-lab-options,.math-reasoning-nav)>button{font:inherit;flex:0 auto;min-height:44px;padding:10px 14px;font-size:.9em;line-height:1.5}.logic-lab .logic-comparison{align-items:stretch;gap:12px}.logic-lab .logic-comparison>div{background:var(--surface);grid-template-rows:auto 1fr auto;gap:12px;padding:16px;display:grid}.logic-lab .logic-comparison small{min-height:3em;color:var(--muted);font-size:.85em;line-height:1.5}.logic-lab .logic-comparison .lecture-markdown p{margin:0}.logic-lab .logic-comparison strong{font-size:1em;font-weight:600}.logic-lab .logic-comparison .counterexample{background:color-mix(in srgb,var(--blue) 7%,var(--surface));border-color:var(--blue)}.logic-lab .section-lab-status{border:1px solid var(--line);background:var(--raised);border-radius:12px;min-height:0;margin:20px 0 0;padding:14px 16px;font-size:.9em;line-height:1.7}.xor-trace{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0;display:grid}.xor-trace>div{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-content:start;gap:10px;min-width:0;padding:16px;display:grid}.xor-trace>div>span,.xor-trace small{color:var(--muted);font-size:.85em;line-height:1.5}.xor-trace .lecture-markdown p{margin:0}.concept-lesson[data-topic=M07] .lecture-markdown table{width:max-content;max-width:100%;margin-inline:auto}.concept-lesson[data-topic=M07] .lecture-markdown :is(th,td){word-break:normal;overflow-wrap:normal;vertical-align:middle;text-align:center;line-height:1.65}.concept-lesson[data-topic=M07] .lecture-markdown .katex-display{padding-block:6px}@container (max-width:600px){.logic-lab .logic-comparison,.logic-lab .xor-trace{grid-template-columns:minmax(0,1fr)}.logic-lab .logic-comparison small{min-height:0}.logic-lab .section-lab-grid{grid-template-columns:minmax(0,1fr)}.logic-lab :is(.section-lab-options,.math-reasoning-nav)>button{flex:auto}}@media (max-width:600px){.concept-lesson[data-topic=M07] .lecture-markdown :is(th,td){padding:10px 8px}.concept-lesson[data-topic=M07] .lecture-markdown th .katex{white-space:nowrap}.concept-lesson[data-topic=M07] .lecture-markdown .katex-display{font-size:.9em}}.concept-lesson[data-topic=M07] .practice-options label{font-size:calc(15px * var(--reading-scale,1));color:var(--ink);font-weight:400;line-height:1.6}.concept-lesson[data-topic=M07] .practice-actions button{font-family:inherit;font-size:calc(14px * var(--reading-scale,1))}.quantifier-grid{border-collapse:separate;border-spacing:6px;table-layout:fixed;width:100%;max-width:480px;margin:24px auto;font-size:.9em}.quantifier-grid caption{text-align:left;color:var(--muted);margin-bottom:10px;font-size:.9em}.quantifier-grid th{text-align:center;overflow-wrap:normal;font-weight:500}.quantifier-grid th:first-child{text-align:left;width:34%}.quantifier-grid td{text-align:center;padding:0}.quantifier-grid button{border:1px solid var(--line);background:var(--surface);width:100%;min-height:44px;color:var(--muted);font:inherit;cursor:pointer;border-radius:10px;place-items:center;display:grid}.quantifier-grid button[aria-pressed=true]{color:var(--blue);border-color:var(--blue);background:color-mix(in srgb,var(--blue) 10%,var(--surface))}.quantifier-grid button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.quantifier-results{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.quantifier-results>div{border:1px solid var(--line);border-radius:14px;align-content:start;gap:12px;min-width:0;padding:16px;display:grid}.quantifier-results .lecture-markdown p{margin:0}.quantifier-results small{color:var(--muted);font-size:.85em;line-height:1.55}.quantifier-reset{font:inherit;margin-top:16px;font-size:.85em}@container (max-width:600px){.quantifier-results{grid-template-columns:minmax(0,1fr)}.quantifier-grid{border-spacing:3px;font-size:.8em}.quantifier-results .katex{font-size:1em}}@media (max-width:600px){.concept-lesson[data-topic=M07] .concept-section{padding-inline:0}.concept-lesson[data-topic=M07] .lecture-reveal{padding:16px}}
:root{--ink:#182844;--muted:#536580;--blue:#456ce0;--line:#cfdbef;--page:#f4f7ff;--surface:#fff;--raised:#e9effb;--glass:#ffffffdc;--card-start:#ffffffed;--glint:#ffffffb3;--border-glass:#fffe;--shadow:#24457817;--hero-blue:#cbdcff;--hero-pink:#ead9fa;--success:#217562;--success-bg:#dff3e9;--notice:#845323;--notice-bg:#fff0d9;--danger:#ad3155;--danger-bg:#ffe9ef;--column-top:99%;--column-bottom:96%;--column-fall:-15%;--column-saturation:65%;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--ink:#e8efff;--muted:#a8b9d6;--blue:#8aafff;--line:#324460;--page:#0c1324;--surface:#142038;--raised:#20304b;--glass:#142038eb;--card-start:#223450ee;--glint:#aacaff27;--border-glass:#829bd143;--shadow:#02061160;--hero-blue:#182f55;--hero-pink:#312344;--success:#87dfbd;--success-bg:#183a35;--notice:#edc894;--notice-bg:#403422;--danger:#ff9eb7;--danger-bg:#442535;--column-top:13%;--column-bottom:11%;--column-fall:10%;--column-saturation:40%;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{background:var(--page);color:var(--ink)}.workspace{background:radial-gradient(ellipse at 85% 0, var(--hero-pink), transparent 52%), var(--page)}.app-header,.plan-toolbar{background:var(--glass);border-color:var(--line)}.brand{color:var(--ink);letter-spacing:-1.6px;font-size:28px;font-weight:750}.brand-icon{color:#fff;background:linear-gradient(135deg,#6488f3,#8462d7);border-color:#9aaef2;box-shadow:0 5px 16px #426bd430}.brand-dot{color:var(--blue);margin-left:-8px}.theme-toggle{border:1px solid var(--line);background:var(--surface);width:37px;height:37px;color:var(--blue);border-radius:13px;flex-shrink:0;place-items:center;transition:transform .2s;display:grid}.theme-toggle:hover{transform:rotate(-10deg)}.auth-theme{z-index:2;position:absolute;top:30px;right:30px}h1 span,.eyebrow,.mini-label{color:var(--blue)}.primary{color:#fff;background:linear-gradient(115deg,#365bd1,#7155c5);box-shadow:0 7px 20px #465ccb33}.primary:hover:not(:disabled){background:#3f5ac7}.secondary,.segmented,.main-nav button.selected{background:var(--raised);border-color:var(--line);color:var(--blue)}.icon-button:hover,.zoom-control button:hover,.stage-bottom button:hover{background:var(--raised)}.avatar{background:linear-gradient(145deg, var(--hero-blue), var(--hero-pink));color:var(--ink);border:1px solid var(--border-glass)}.main-nav button,.account-button small,.plan-owner small,.page-title p,.student-card p,.student-card-bottom,.section-title h2 span,.users-table-head,.users-table-row small,.role-label,.empty-state,.auth-copy p,.auth-foot,.auth-form>p,.sample-card small,.profile-hero p,.topic-summary,.topic-actions p,.material-empty p,.demo p,.zoom-control,.column-heading>span:last-child{color:var(--muted)}.badge{background:var(--hero-pink);color:var(--ink)}.student-card,.stat-glass,.users-table,.empty-state,.sample-card{background:linear-gradient(140deg, var(--surface), var(--raised));border-color:var(--border-glass);box-shadow:0 8px 30px var(--shadow)}.student-card h3,.empty-state h3,.stat-glass strong{color:var(--ink)}.student-card-top>svg,.stat-glass,.stat-glass span{color:var(--blue)}.progress-line{background:var(--line)}.progress-line i{background:linear-gradient(90deg,#41bda6,#647dee)}.users-table-row{border-color:var(--line)}.search{background:var(--surface);border-color:var(--line)}.request-pill,.status.pending,.review-note,.map-message{background:var(--notice-bg);color:var(--notice)}.toast,.form-error{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)!important}.danger{color:var(--danger)}.danger-fill{background:#ae375e}.success,.status.done{color:var(--success);background:var(--success-bg)}.auth-page{background:var(--surface);position:relative}.auth-story{background:radial-gradient(ellipse at 95% 20%, var(--hero-pink), transparent 55%), radial-gradient(ellipse at 10% 75%, var(--hero-blue), transparent 65%), var(--page);border-color:var(--line)}.auth-copy h1{font-size:clamp(38px,4vw,62px)}.auth-copy h1 span{background:linear-gradient(120deg, var(--blue), #a579dc);color:#0000;-webkit-background-clip:text;background-clip:text}.sample-card>b,.sample-card.cpp>b,.sample-card.algorithm>b{color:var(--blue)}.segmented button{color:var(--muted)}.segmented .selected{background:var(--surface);color:var(--ink)}label{color:var(--muted)}input,textarea,select{background:var(--surface);border-color:var(--line);color:var(--ink)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.75}input:focus,textarea:focus,select:focus{outline-color:var(--blue)}.checkbox input,.zoom-control input{accent-color:var(--blue)}.plan-page{background:var(--page)}.stage-tabs{background:var(--raised);border:1px solid var(--line)}.stage-tabs button{color:var(--muted);border:1px solid #0000}.stage-tabs button.active{background:linear-gradient(140deg, var(--surface), var(--hero-blue));border-color:var(--border-glass);color:var(--blue);box-shadow:0 4px 12px var(--shadow)}.stage-tabs button:disabled{opacity:1}.zoom-control{border:0;min-width:0;margin-block:0;padding:0}.zoom-control button.active{background:var(--raised);color:var(--blue)}.admin-map-bar{background:var(--surface);border-color:var(--line);color:var(--muted)}.map-area,.map-viewport{background:var(--page)}.map-viewport{touch-action:none}.learning-column{border-color:var(--line);background:linear-gradient(165deg, hsl(218 var(--column-saturation) calc(var(--column-top) + var(--column-depth) * var(--column-fall))), hsl(223 var(--column-saturation) calc(var(--column-bottom) + var(--column-depth) * var(--column-fall))))}.column-number{color:var(--blue);opacity:.8;font-weight:450}.cpp{--tint:#c4dfff;--accent:#356bba}.math{--tint:#ccecd9;--accent:#28755b}.algorithm{--tint:#bce9e8;--accent:#217a81}.tools{--tint:#e1d0fa;--accent:#8057ac}.resource{--tint:#f6cfe0;--accent:#a04772}.practice{--tint:#f7dfbf;--accent:#94602a}.control{--tint:#e0e5f2;--accent:#536887}[data-theme=dark] .cpp{--tint:#173b60;--accent:#8fc5ff}[data-theme=dark] .math{--tint:#193f34;--accent:#88dcb5}[data-theme=dark] .algorithm{--tint:#143e48;--accent:#83d8df}[data-theme=dark] .tools{--tint:#39284f;--accent:#c7a3fa}[data-theme=dark] .resource{--tint:#49293f;--accent:#f1aacd}[data-theme=dark] .practice{--tint:#463829;--accent:#e9c187}[data-theme=dark] .control{--tint:#243047;--accent:#b3c3df}.topic-card{background:linear-gradient(135deg, var(--card-start), var(--tint));color:var(--ink);border-color:color-mix(in srgb, var(--accent) 30%, var(--border-glass));box-shadow:0 6px 16px var(--shadow), inset 0 1px 0 var(--border-glass)}.topic-card:before{background:radial-gradient(circle at var(--mx,50%) var(--my,0%), var(--glint), transparent 60%)}.topic-card:after{content:none;background:var(--accent);opacity:.65;border-radius:3px;width:3px;position:absolute;top:21%;bottom:21%;left:0}.topic-card:hover{border-color:var(--accent)}.topic-card p{color:var(--muted)}.topic-card.locked{filter:none}.topic-card.completed{border-color:var(--success)}.topic-card.completed .card-state{color:var(--success)}.card-edit{background:var(--surface);border-color:var(--line)}.card-edit button{color:var(--blue)}.add-topic{background:var(--glass);border-color:var(--blue);color:var(--blue)}.map-arrow{background:var(--glass);border-color:var(--border-glass);color:var(--blue);box-shadow:0 4px 20px var(--shadow)}.map-navigation{background:var(--glass);border-color:var(--line)}.rail-gradient{background:linear-gradient(90deg,#c5d4ff,#9aabec,#6280df,#4868c7)}[data-theme=dark] .rail-gradient{background:linear-gradient(90deg,#344673,#4e64a7,#728ada,#b29fed)}.rail-marker{background:var(--blue);border-color:var(--surface);box-shadow:0 2px 9px var(--shadow)}.map-rail button,.stage-bottom button{color:var(--muted)}.map-rail button.active{color:var(--blue)}.modal{background:var(--surface);border-color:var(--line);color:var(--ink)}.modal-heading{background:var(--glass);border-color:var(--line)}.edit-form hr{border-color:var(--line)}.status{background:var(--raised);color:var(--muted)}.markdown,.markdown h2{color:var(--ink)}.markdown a{color:var(--blue);text-underline-offset:3px;text-decoration:underline}.markdown blockquote,.markdown code,.code-block,.topic-actions{background:var(--raised);border-color:var(--line)}.markdown td,.markdown th{border-color:var(--line)}.code-block pre code{color:var(--ink)}.code-block>button{color:var(--blue)}.material-empty{background:var(--page);border-color:var(--line)}.demo{background:linear-gradient(135deg, var(--hero-pink), var(--raised));border-color:var(--line)}.demo output,.demo .secondary{background:var(--surface);color:var(--ink)}[data-theme=dark] .hljs-keyword,[data-theme=dark] .hljs-type{color:#c5a5ff}[data-theme=dark] .hljs-string,[data-theme=dark] .hljs-attr{color:#8be0c4}[data-theme=dark] .hljs-number,[data-theme=dark] .hljs-literal{color:#f8abc2}[data-theme=dark] .hljs-title,[data-theme=dark] .hljs-built_in{color:#90c7ff}[data-theme=dark] .hljs-comment{color:#9cb0c9}[data-theme=dark] .hljs-meta{color:#b5d793}.departing{animation:hq-depart var(--flight-duration) cubic-bezier(.45, 0, .2, 1) both;will-change:transform;overflow:visible}.arriving{animation:hq-arrive var(--flight-duration) cubic-bezier(.45, 0, .2, 1) both;will-change:transform;overflow:visible}.flying>.map-viewport{pointer-events:none}.traveling .map-rail{animation:1.6s both rail-travel}.traveling .rail-marker{transition:left 1.6s cubic-bezier(.45,0,.2,1)}@keyframes hq-depart{0%{transform:translate(0)}42%,to{transform:translateX(calc((-100% - var(--flight-overhang)) * var(--flight-direction)))}}@keyframes hq-arrive{0%,48%{transform:translateX(calc((100% + var(--flight-overhang)) * var(--flight-direction)))}to{transform:translate(0)}}.topic-card{border-radius:7px 23px 7px 7px}.topic-card .card-kind{font-weight:600}.brand-icon svg{width:30px;height:30px}.avatar-picker{border:0;flex-wrap:wrap;gap:7px;margin:8px 0 20px;padding:0;display:flex}.avatar-picker legend{color:var(--muted);margin-bottom:12px;font-size:13px}.avatar-picker button{border:1px solid var(--line);background:var(--surface);border-radius:12px;width:40px;height:40px;font-size:23px}.avatar-picker button[aria-pressed=true]{border-color:var(--blue);background:var(--raised);box-shadow:0 0 0 2px var(--hero-blue)}.board-link{flex-direction:column;gap:4px;display:inline-flex}.board-link>button{background:var(--raised);color:var(--blue);border:1px solid var(--line);white-space:nowrap;border-radius:12px;align-items:center;gap:7px;padding:9px 12px;font-size:12px;display:flex}.board-link small{color:var(--danger);font-size:11px}.zoom-control{align-items:center;gap:6px;display:flex}.zoom-menu{position:relative}.zoom-menu summary{cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:11px;align-items:center;gap:7px;min-width:85px;padding:8px 10px;font-size:12px;list-style:none;display:flex}.zoom-menu summary::-webkit-details-marker{display:none}.zoom-popover{z-index:30;background:var(--surface);width:295px;box-shadow:0 12px 45px var(--shadow);border:1px solid var(--line);border-radius:17px;padding:17px;position:absolute;top:43px;right:0}.zoom-popover strong{font-size:13px;font-weight:600}.zoom-popover>small{color:var(--muted);margin-top:10px;font-size:11px;display:block}.zoom-adjust{flex-wrap:wrap;align-items:center;gap:5px;margin-top:10px;display:flex}.zoom-adjust input{flex:1;width:115px}.zoom-adjust button:last-child{justify-content:center;align-items:center;gap:7px;width:100%;margin-top:8px;display:flex}.zoom-control .back-start{border:1px solid var(--line);background:var(--surface);border-radius:11px;align-items:center;gap:5px;padding:8px 10px;font-size:12px;display:flex}.plan-toolbar{z-index:5;position:relative;overflow:visible}.traveling .map-rail{animation-duration:1.8s}.traveling .rail-marker{transition-duration:1.8s}@media (max-width:700px){.app-header{flex-wrap:wrap;height:auto;min-height:66px;padding-block:8px}.app-header .board-link{order:5}.app-header .main-nav{flex:1}.zoom-control .back-start span{display:none}.zoom-popover{right:-35px}.plan-toolbar>.board-link{display:none}.app-header{gap:7px}.theme-toggle{border-radius:11px;width:32px;height:32px}.brand{gap:5px;font-size:24px}.auth-theme{top:22px;right:22px}.auth-copy h1{font-size:36px}.main-nav{gap:0}.main-nav button{padding:7px 5px}}.map-rail,.map-rail *,.rail-marker{-webkit-user-select:none;user-select:none}.map-rail{touch-action:none}.avatar{width:43px;min-width:43px;height:43px;font-size:27px}.avatar.xl{border-radius:27px;width:88px;height:88px;font-size:49px}.avatar-change{border:1px solid var(--line);cursor:pointer;flex-shrink:0;position:relative}.avatar-change small{background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:10px;padding:4px 8px;font:10px Segoe UI,sans-serif;position:absolute;bottom:-9px;left:50%;transform:translate(-50%)}.avatar-picker{border:1px solid var(--line);background:var(--raised);border-radius:18px;padding:15px}.avatar-picker button{width:48px;height:48px;font-size:29px}.flying{perspective:1400px;isolation:isolate}.departing .learning-column{animation:hq-column-out var(--flight-duration) cubic-bezier(.6, .02, .6, 1) both;transform-origin:50%;will-change:transform}.arriving .learning-column{animation:hq-column-in var(--flight-duration) cubic-bezier(.12, .8, .22, 1) both;transform-origin:50%;will-change:transform}@keyframes hq-column-out{0%{transform:translate(0,0)rotateY(0)}32%,to{transform:translate3d(calc(-220px * var(--flight-direction)), calc(var(--column-depth) * -90px), -170px) rotateY(calc(12deg * var(--flight-direction))) skewY(-1deg)}}@keyframes hq-column-in{0%,48%{transform:translate3d(calc(280px * var(--flight-direction)), calc(60px + var(--column-depth) * 100px), -220px) rotateY(calc(-15deg * var(--flight-direction)))}to{transform:translate(0,0)rotateY(0)}}.flying:after{content:"";pointer-events:none;z-index:4;animation:hq-speed var(--flight-duration) ease both;background:repeating-linear-gradient(175deg,#0000 0 68px,#87b6f22a 69px,#0000 71px 145px);position:absolute;inset:0}@keyframes hq-speed{0%,to{opacity:0;transform:translateX(calc(25% * var(--flight-direction)))}35%,65%{opacity:.7}to{transform:translateX(calc(-25% * var(--flight-direction)))}}@media (prefers-reduced-motion:reduce){.departing .learning-column,.arriving .learning-column,.flying:after{animation:none}}.arriving .learning-column[style*=hidden],.departing .learning-column[style*=hidden]{animation:none;transform:none}@property --surface-depth{syntax:"<number>";inherits:false;initial-value:0}@property --surface-span{syntax:"<number>";inherits:false;initial-value:.15}.map-area{background:linear-gradient(165deg, hsl(218 var(--column-saturation) calc(var(--column-top) + var(--surface-depth) * var(--column-fall))), hsl(223 var(--column-saturation) calc(var(--column-bottom) + (var(--surface-depth) + var(--surface-span)) * var(--column-fall))))}.map-area .learning-column,.map-area>.map-viewport{background:0 0}@keyframes hq-travel-color{0%{--surface-depth:var(--travel-from);--surface-span:var(--travel-span-from)}to{--surface-depth:0;--surface-span:var(--travel-span-to)}}.landing-page{--journey:0;isolation:isolate;background:var(--page);color:var(--ink);position:relative;overflow:clip}.landing-atmosphere{z-index:-1;pointer-events:none;background:radial-gradient(ellipse at calc(85% - var(--journey) * 65%) calc(20% + var(--journey) * 55%), var(--hero-blue), transparent 58%), radial-gradient(ellipse at calc(5% + var(--journey) * 85%) 70%, var(--hero-pink), transparent 60%), var(--page);position:fixed;inset:0}.landing-nav{z-index:8;background:var(--glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);align-items:center;gap:22px;height:86px;padding:0 max(6vw,24px);display:flex;position:sticky;top:0}.landing-nav nav{gap:30px;margin-left:auto;display:flex}.landing-nav a{color:var(--ink);font-size:13px;text-decoration:none}.landing-nav .brand-icon{width:46px;height:46px}.landing-login{border:1px solid var(--line);background:var(--surface);border-radius:30px;align-items:center;gap:7px;padding:10px 16px;display:flex}.landing-hero{grid-template-columns:1.05fr 1fr;align-items:center;gap:5vw;max-width:1600px;min-height:calc(100svh - 86px);margin:auto;padding:90px 7vw 100px;display:grid}.landing-kicker{letter-spacing:.19em;color:var(--blue);margin:0 0 28px;font-size:10px;font-weight:650}.landing-hero h1{letter-spacing:-.065em;margin:0 0 30px;font-size:clamp(64px,7.2vw,112px);font-weight:650;line-height:1.01}.landing-page h1 span,.landing-page h2 span{color:var(--blue)}.landing-lead,.landing-chapter p:not(.landing-kicker),.landing-account p:not(.landing-kicker){color:var(--muted);max-width:470px;font-size:17px;line-height:1.75}.landing-cta{background:var(--blue);color:var(--surface);border-radius:32px;align-items:center;gap:22px;margin-top:22px;padding:17px 26px;font-size:14px;text-decoration:none;display:inline-flex;box-shadow:0 10px 30px #526bdd24}.landing-explore{color:var(--muted);align-items:center;gap:10px;margin-top:25px;font-size:12px;text-decoration:none;display:flex}.landing-map-art{background:var(--glass);border:1px solid var(--line);border-radius:30px;padding:26px;transform:perspective(1000px)rotateY(-9deg)rotateX(5deg);box-shadow:0 40px 90px #3b558f18}.art-caption{letter-spacing:.16em;color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:32px;font-size:10px;display:flex}.art-caption i{letter-spacing:.08em;color:var(--blue);font-style:normal}.art-track{grid-template-columns:1fr 1fr;gap:16px;display:grid}.art-track article{background:var(--surface);border:1px solid var(--line);min-height:154px;color:var(--blue);border-radius:22px;flex-direction:column;gap:13px;padding:20px;display:flex}.art-track article:nth-child(2){background:linear-gradient(145deg, var(--surface), var(--hero-blue));grid-row:span 2;justify-content:center}.art-track article:last-child{color:#a66db5}.art-track b{color:var(--ink);font-size:16px}.art-track small{color:var(--muted);font-size:10px}.art-track pre{margin:10px 0;font:12px/1.8 monospace}.art-check{color:#329785;align-items:center;gap:6px;font-size:10px;display:flex}.art-nodes{justify-content:space-around;display:flex;position:relative}.art-nodes i{border:1px solid;border-radius:50%;place-items:center;width:26px;height:26px;font-size:11px;font-style:normal;display:grid}.art-rail{color:var(--muted);align-items:center;gap:12px;margin-top:28px;font-size:10px;display:flex}.art-rail i{background:linear-gradient(90deg,#b2c5ff,#7786e4);border-radius:10px;flex:1;height:5px}.landing-chapter{grid-template-columns:1fr 1fr;align-items:center;gap:8vw;max-width:1420px;min-height:95svh;margin:auto;padding:140px 7vw;scroll-margin-top:85px;display:grid}.landing-page h2{letter-spacing:-.045em;margin:0 0 28px;font-size:clamp(38px,4vw,65px);font-weight:620;line-height:1.12}.landing-path{gap:18px;display:grid}.landing-path>div{background:var(--glass);border:1px solid var(--line);border-radius:22px;grid-template-columns:52px 1fr;gap:8px 15px;padding:25px;display:grid;box-shadow:0 16px 45px #425b8b0c}.landing-path span{color:var(--blue);grid-row:span 2;align-self:center;font-size:26px;font-weight:300}.landing-path b{font-size:18px}.landing-path small{color:var(--muted);font-size:12px}.landing-board-art{background:var(--surface);border:1px solid var(--line);color:var(--blue);border-radius:28px;padding:26px;transform:rotate(2deg);box-shadow:0 35px 80px #3b558f18}.art-board-title{color:var(--ink);justify-content:space-between;font-size:12px;display:flex}.art-board-title i{color:#329785;font-size:9px;font-style:normal}.landing-board-art>.board-graph{width:100%;margin:20px 0}.art-note{background:var(--hero-pink);width:max-content;max-width:100%;color:var(--ink);border-radius:12px;padding:13px 18px;font-size:12px;display:block;transform:rotate(-4deg)}.landing-account{background:var(--glass);border-top:1px solid var(--line);grid-template-columns:1fr 1fr;align-items:center;gap:8vw;min-height:90svh;padding:100px 10vw;scroll-margin-top:70px;display:grid}.landing-account .auth-form-wrap{background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:36px;box-shadow:0 24px 80px #3b558f12}.landing-account .auth-form h2{letter-spacing:-1px;font-size:30px}.landing-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;padding:30px 7vw;font-size:11px;display:flex}.landing-footer a{color:inherit;text-decoration:none}.landing-reveal{opacity:0;transition:opacity .85s,translate 1.1s cubic-bezier(.2,.75,.25,1);translate:0 36px}.landing-reveal.seen{opacity:1;translate:0}@media (max-width:850px){.landing-hero{grid-template-columns:1fr;gap:65px;padding:70px 7vw}.landing-hero h1{font-size:76px}.landing-map-art{max-width:550px}.landing-chapter,.landing-account{grid-template-columns:1fr;gap:45px;min-height:0;padding:85px 7vw}.landing-nav nav{gap:15px}.landing-nav{gap:12px}.landing-footer{gap:20px}.landing-account .auth-form-wrap{padding:26px}.landing-lead{font-size:16px}}@media (max-width:500px){.landing-nav nav{display:none}.landing-nav .theme-toggle{margin-left:auto}.landing-hero h1{font-size:66px}.landing-map-art{padding:18px}.art-track{gap:9px}.art-track article{padding:15px}.art-track b{font-size:13px}.landing-footer{flex-direction:column}}@media (prefers-reduced-motion:reduce){.landing-reveal{opacity:1;transition:none;translate:none}.landing-map-art,.landing-board-art{transform:none}}@media (max-width:500px){.landing-hero h1{font-size:54px;line-height:1.06}}
.topic-card{background:linear-gradient(125deg, var(--card-start) 5%, color-mix(in srgb, var(--tint) 80%, var(--surface)));box-shadow:0 8px 22px var(--shadow), inset 0 1px var(--border-glass);border-radius:24px 24px 10px}.topic-card .kind-icon{background:color-mix(in srgb, var(--accent) 14%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 28%, transparent);border-radius:10px;width:31px;height:31px}.topic-card.completed{border-color:color-mix(in srgb, var(--success) 65%, var(--line));background:linear-gradient(125deg, var(--card-start), color-mix(in srgb, var(--tint) 65%, var(--success-bg)))}:root[data-theme=dark] .topic-card.completed{border-color:color-mix(in srgb, var(--ink) 18%, var(--line))}.completion-seal{border:1px solid color-mix(in srgb, var(--success) 35%, transparent);background:var(--success-bg);color:var(--success);border-radius:20px;align-items:center;gap:5px;padding:5px 9px;display:inline-flex}.completion-seal small{font-size:11px;font-weight:700}.topic-card.locked{opacity:.72}.topic-card:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.modal.wide:has(.topic-status){border-radius:28px;width:min(1160px,95vw);max-height:94dvh}.topic-body:has(.lesson-experience){padding:0 28px 28px}.topic-body:has(.lesson-experience)>.topic-summary{display:none}.lesson-hero{isolation:isolate;border:1px solid var(--line);background:radial-gradient(ellipse at 90% 60%, var(--hero-pink), transparent 70%), linear-gradient(130deg, var(--surface), var(--hero-blue));border-radius:24px;padding:44px 38% 40px 38px;position:relative;overflow:hidden}.section-kicker{letter-spacing:.16em;color:var(--blue);align-items:center;gap:8px;font-size:10px;font-weight:800;display:flex}.lesson-hero h1{letter-spacing:-1.5px;margin:20px 0;font-size:clamp(28px,3vw,43px);line-height:1.12}.lesson-hero p{color:var(--muted);font-size:15px;line-height:1.7}.lesson-chips{flex-wrap:wrap;gap:7px;margin-top:24px;display:flex}.lesson-chips span{border:1px solid var(--border-glass);background:var(--glass);border-radius:30px;padding:7px 10px;font-size:11px}.lesson-orbit{z-index:-1;place-items:center;width:260px;height:260px;display:grid;position:absolute;top:50%;right:35px;transform:translateY(-50%)}.lesson-orbit i{border:1px solid color-mix(in srgb, var(--blue) 25%, transparent);border-radius:45%;animation:24s linear infinite orbit-turn;position:absolute;inset:20px;transform:rotate(25deg)}.lesson-orbit i:nth-child(2){border-radius:36%;animation-direction:reverse;inset:40px}.lesson-orbit i:nth-child(3){background:var(--glass);box-shadow:0 20px 60px var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);inset:60px}.lesson-orbit span{color:var(--blue);z-index:1;font:700 22px Consolas,monospace}@keyframes orbit-turn{to{transform:rotate(385deg)}}.lesson-reading{padding:40px 16px 14px}.lesson-reading article{gap:24px;margin:28px 0;display:flex}.reading-number{color:color-mix(in srgb, var(--blue) 50%, var(--surface));padding-top:3px;font:300 32px system-ui}.lesson-reading h2{letter-spacing:-.5px;margin:0 0 12px;font-size:21px}.lesson-reading p{color:var(--muted);max-width:780px;font-size:15px;line-height:1.85}.lesson-reading code{color:var(--blue);background:var(--raised);border-radius:4px;padding:2px 5px;font:13px Consolas,monospace}.lesson-lab{border:1px solid var(--line);background:var(--raised);border-radius:24px;padding:26px}.lab-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.lab-heading h2{letter-spacing:-.7px;margin:12px 0;font-size:23px}.lesson-lab>p{color:var(--muted);font-size:13px;line-height:1.6}.live-pill{letter-spacing:.15em;background:var(--success-bg);color:var(--success);white-space:nowrap;border-radius:20px;padding:7px 10px;font-size:9px}.lab-input{align-items:end;gap:12px;margin:22px 0;display:flex}.lab-input label{color:var(--muted);flex:1;font-size:12px}.lab-input input{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:10px;margin-top:8px;padding:11px;display:block}.lab-input button{padding:12px}.lab-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;display:grid}.lab-code{color:#d8e7ff;background:#111d32;border:1px solid #34455f;border-radius:16px;flex-direction:column;display:flex;overflow:hidden}.lab-code>header{color:#a9bddd;border-bottom:1px solid #34455f;justify-content:space-between;padding:14px 16px;font:12px Consolas,monospace;display:flex}.lab-code>pre{flex:1;margin:12px 0;font:12px/2 Consolas,monospace;overflow:auto}.lab-code pre>div{gap:14px;padding:0 12px;transition:background .25s;display:flex}.lab-code pre>div>span{text-align:right;color:#687d9b;-webkit-user-select:none;user-select:none;min-width:18px}.lab-code .executing{background:#637ff138;box-shadow:inset 3px 0 #96b8ff}.lab-code>.secondary{color:#c5d9ff;background:#233553;border-color:#47628b;align-self:start;margin:8px 14px 14px}.lab-stage{background:var(--surface);border:1px solid var(--line);border-radius:16px;min-width:0;padding:22px}.stage-caption{letter-spacing:.15em;color:var(--muted);font-size:9px}.array-stage{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;min-height:125px;padding:18px 0 25px;display:flex}.array-slot{flex-direction:column;align-items:center;gap:8px;min-width:47px;display:flex;position:relative}.array-slot small{color:var(--muted);font:10px Consolas,monospace}.array-slot strong{border:1px solid var(--line);background:linear-gradient(145deg, var(--raised), var(--surface));min-width:47px;height:48px;box-shadow:0 4px 10px var(--shadow);color:var(--ink);border-radius:12px;place-items:center;padding:0 7px;font:600 19px Consolas,monospace;animation:.35s value-arrive;display:grid}.array-slot.active strong{border-color:var(--blue);background:var(--hero-blue);color:var(--blue);transform:translateY(-5px)}.array-slot i{color:var(--blue);font-style:normal;position:absolute;bottom:-25px}.token-stage .consumed strong{background:var(--success-bg);color:var(--success)}.variable-stage{flex-wrap:wrap;gap:10px;display:flex}.variable-stage>span{border:1px solid var(--line);background:var(--raised);border-radius:9px;gap:15px;padding:8px 11px;display:flex}.variable-stage small{color:var(--muted);font:12px Consolas,monospace}.variable-stage b{font:600 13px Consolas,monospace;animation:.3s value-arrive}.step-explanation{min-height:130px;padding-top:25px}.step-explanation small{letter-spacing:.1em;color:var(--blue);font-size:9px}.step-explanation p{font-size:13px;line-height:1.75}.lab-output{border-top:1px dashed var(--line);gap:14px;padding-top:13px;font:13px Consolas,monospace;display:flex}.lab-output small{color:var(--muted)}.lab-output output{color:var(--success)}.lab-controls{align-items:center;gap:9px;margin-top:20px;display:flex}.lab-controls button{border:1px solid var(--line);background:var(--surface);width:34px;height:34px;color:var(--ink);border-radius:10px;place-items:center;display:grid}.lab-controls .play-step{background:var(--blue);color:var(--surface)}.lab-controls input{min-width:60px;accent-color:var(--blue);flex:1}.lesson-insight{border:1px solid var(--line);background:linear-gradient(120deg, var(--surface), var(--hero-pink));border-radius:18px;margin:24px 0 40px;padding:24px 28px}.lesson-insight>span{letter-spacing:.14em;color:var(--blue);font-size:10px}.lesson-insight h3{margin:13px 0;font-size:21px}.lesson-insight p,.lesson-insight summary{font-size:14px;line-height:1.7}.lesson-insight summary{cursor:pointer;font-weight:600}@keyframes value-arrive{0%{opacity:.4;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.lesson-practice{border-top:1px solid var(--line);padding:32px 6px 5px}.lesson-practice h2{margin:12px 0;font-size:25px}.lesson-practice>p{color:var(--muted);font-size:13px;line-height:1.7}.practice-task{border:1px solid var(--line);background:var(--surface);border-radius:15px;align-items:start;gap:14px;margin:12px 0;padding:18px;display:flex}.practice-task.solved{background:color-mix(in srgb, var(--success-bg) 35%, var(--surface))}.task-check{border:1px solid var(--line);width:27px;height:27px;color:var(--success);border-radius:8px;flex-shrink:0;place-items:center;display:grid}.practice-task>div{flex:1}.practice-task strong{font-size:14px}.practice-task p{color:var(--muted);font-size:13px;line-height:1.6}.practice-task a{color:var(--blue);align-items:center;gap:4px;font-size:12px;display:inline-flex}.practice-task>.secondary{white-space:nowrap;padding:8px;font-size:11px}.lesson-discussion{margin-top:30px;scroll-margin-top:100px}.question-row{border:1px solid var(--line);width:100%;color:var(--ink);text-align:left;border-radius:10px;align-items:center;gap:10px;margin:8px 0;padding:12px;display:flex}.question-row small{color:var(--muted);margin-left:auto}.question-row.selected{background:var(--raised);border-color:var(--blue)}.question-thread article{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin:12px 0;padding:16px}.question-thread .teacher-message{background:var(--raised)}.question-thread header{color:var(--muted);justify-content:space-between;gap:8px;font-size:12px;display:flex}.question-thread p{white-space:pre-wrap;line-height:1.7}.question-thread pre{color:#dce8ff;background:#111d32;border-radius:10px;max-height:350px;padding:16px;font:13px/1.6 Consolas,monospace;overflow:auto}.question-form{gap:12px;margin-top:20px;display:grid}.question-form label{font-size:13px}.question-form textarea{background:var(--surface);width:100%;color:var(--ink);border:1px solid var(--line);resize:vertical;border-radius:12px;margin:10px 0;padding:14px;display:block}.question-form details textarea{font-family:Consolas,monospace}.question-form select{margin:10px 0}.question-form button{justify-self:start}.notification-trigger{position:relative}.notification-trigger>b{background:var(--blue);color:var(--surface);border-radius:12px;place-items:center;min-width:16px;height:16px;font-size:9px;display:grid;position:absolute;top:-3px;right:-4px}.notification-list{padding:18px}.notification-list>button{text-align:left;border:1px solid var(--line);background:var(--raised);width:100%;color:var(--ink);border-radius:12px;gap:13px;margin-bottom:10px;padding:16px;display:flex}.notification-list>button.read{background:var(--surface)}.notification-list button>span{flex:1;gap:7px;font-size:13px;display:grid}.notification-list small{color:var(--muted);font-size:10px}.notification-list i{background:var(--blue);border-radius:100%;width:7px;height:7px}.code-block>.secondary{margin:10px 12px;position:static!important}@media (max-width:760px){.lesson-hero{padding:26px}.lesson-orbit{opacity:.18;right:-60px}.lab-split{grid-template-columns:1fr}.lesson-lab{padding:14px}.topic-body:has(.lesson-experience){padding:0 12px 20px}.lesson-reading{padding:25px 5px 10px}.lesson-reading article{gap:12px}.practice-task{flex-wrap:wrap}.lab-heading{align-items:start}.lab-heading h2{font-size:19px}.completion-seal small{display:none}}@media (prefers-reduced-motion:reduce){.lesson-orbit i,.array-slot strong,.variable-stage b{animation:none}.array-slot strong{transition:none}}.lab-stage{isolation:isolate;position:relative}.value-transfer{background:var(--blue);color:#fff;pointer-events:none;opacity:0;z-index:3;border-radius:12px;place-items:center;width:40px;height:40px;font:700 15px Consolas,monospace;display:grid;position:absolute;top:0;left:0;box-shadow:0 7px 24px #486fce55}.lab-code .hljs-keyword{color:#c5a4ff}.lab-code .hljs-number,.lab-code .hljs-literal{color:#ffd09f}.lab-code .hljs-string{color:#8cdeca}.lab-code .hljs-title{color:#8fc9ff}.lab-code .hljs-meta{color:#b6c9e9}.task-authoring{border:1px solid var(--line);border-radius:14px;margin:22px 0;padding:18px}.task-authoring>p{color:var(--muted);font-size:12px}.lesson-experience .lab-input .secondary,.lesson-practice .secondary{background:var(--surface);color:var(--blue);border-color:var(--line)}.lab-stage .stage-caption{line-height:1.5}.modal.wide:has(.topic-status)>.modal-heading{background:var(--surface);z-index:5}.lesson-lab{scroll-margin-top:88px}
.study-time{border:1px solid var(--line);background:linear-gradient(135deg,#759bef10,#b18bea08),var(--surface);border-radius:22px;margin:28px 0;padding:24px}.study-time>header{justify-content:space-between;align-items:center;gap:16px;display:flex}.student-insights .study-time h3{margin:0 0 8px}.study-time p{font-size:13px;line-height:1.6}.study-time-filter{flex-wrap:wrap;align-items:end;gap:12px;margin:20px 0;display:flex}.study-time-filter label{color:var(--muted);flex-direction:column;gap:6px;font-size:12px;display:flex}.study-time-filter input{max-width:180px;min-height:40px}.study-time-presets{flex-wrap:wrap;gap:6px;display:flex}.study-time-filter button{min-height:40px;padding:9px 13px;font-size:13px}.study-time-totals{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.study-time-resources{gap:8px;display:grid}.study-time details{border:1px solid var(--line);background:var(--surface);border-radius:14px;overflow:hidden}.study-time summary{cursor:pointer;align-items:center;gap:14px;padding:16px;list-style:none;display:flex}.study-time summary::-webkit-details-marker{display:none}.study-time summary>span{flex:1;gap:4px;min-width:0;display:grid}.study-time summary strong{overflow-wrap:anywhere;font-size:14px}.study-time summary small{color:var(--muted);font-size:11px}.study-time summary b{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px}.study-time summary svg{color:var(--muted);flex-shrink:0;transition:transform .2s}.study-time details[open]>summary svg{transform:rotate(180deg)}.study-time-table{padding:0 16px 12px;overflow:auto}.study-time table{border-collapse:collapse;width:100%;font-size:13px}.study-time th,.study-time td{border-top:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;padding:10px 8px}.study-time th:first-child,.study-time td:first-child{text-align:left}.study-time th{color:var(--muted);font-weight:500}.study-time-days{margin-top:16px}.study-time-days>summary{justify-content:space-between}.study-time-empty{padding:24px 0}.study-time .study-time-note{margin:20px 0 0;font-size:12px}@media (max-width:600px){.study-time{padding:16px}.study-time-totals{grid-template-columns:1fr}.study-time-filter{gap:8px}.study-time-filter input{max-width:145px}}.study-activity-days{gap:12px;margin:16px 0;display:grid}.study-activity-list{margin:0;padding:0 16px 16px;list-style:none}.study-activity-list>li{margin:0}.study-activity-entry{border-top:1px solid var(--line);grid-template-columns:166px minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px 4px;display:grid}.study-activity-time{font-variant-numeric:tabular-nums;white-space:nowrap;gap:5px;font-size:12px;display:flex}.study-activity-time>span{color:var(--muted)}.study-activity-description{gap:5px;min-width:0;display:grid}.study-activity-description small{color:var(--blue);font-size:11px}.study-activity-description strong{overflow-wrap:anywhere;font-size:14px}.study-activity-entry.problem .study-activity-description small{color:var(--muted)}.study-activity-duration{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.study-activity-gap{color:var(--muted);border-top:1px dashed var(--line);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:16px;padding:12px 4px;font-size:11px;display:flex}.study-activity-more{margin:0 16px 16px}@media (max-width:600px){.study-activity-entry{grid-template-columns:minmax(0,1fr) auto;gap:8px}.study-activity-time{grid-column:1/-1}.study-activity-gap{flex-direction:column;gap:5px}}.practice-task{grid-template-columns:27px minmax(0,1fr) auto;display:grid}.coaching{border-top:1px solid var(--line);grid-column:1/-1;min-width:0;padding-top:12px}.coaching-toggle{color:var(--blue);text-align:left;background:0 0;align-items:center;gap:9px;padding:8px 0;font-weight:650;display:flex}.coaching-body{padding:12px 0 4px}.coaching-body h4,.gap-panel h3,.student-insights h3{align-items:center;gap:9px;margin:24px 0 12px;display:flex}.hint-step{border:1px solid var(--line);background:var(--raised);border-radius:14px;margin:10px 0;padding:16px}.hint-step b,.hint-step summary{color:var(--blue)}.coaching p,.gap-card p{white-space:pre-wrap;overflow-wrap:anywhere}.coaching pre{background:var(--raised);border-radius:12px;max-height:360px;padding:16px;font-size:13px;overflow:auto}.coaching .question-form{margin:16px 0}.coaching summary,.gap-panel summary{cursor:pointer}.coaching textarea,.gap-panel textarea{box-sizing:border-box;width:100%}.coaching-body>.muted,.gap-panel>.muted{font-size:13px;line-height:1.6}.mentoring-status{background:var(--raised);border-radius:9px;padding:5px 10px;font-size:12px;font-weight:650;display:inline-flex}.mentoring-status.accepted{color:var(--success);background:var(--success-bg)}.mentoring-status.needs_work{color:var(--notice);background:var(--notice-bg)}.defense-history>details{border-bottom:1px solid var(--line);padding:16px 0}.defense-history summary{margin-bottom:12px;font-weight:650}.defense-history details>div{padding:8px 0}.defense-history small{color:var(--muted);display:block}.defense-history blockquote{background:var(--raised);border-radius:12px;margin:16px 0;padding:16px}.gap-panel{background:linear-gradient(125deg, var(--surface), color-mix(in srgb, var(--hero-pink) 40%, var(--surface)));border:1px solid var(--line);border-radius:22px;margin-top:36px;padding:24px}.gap-card{border:1px solid var(--line);background:var(--surface);border-radius:16px;margin:12px 0;padding:18px}.gap-card header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.gap-card small{color:var(--muted)}.gap-card.resolved .mentoring-status{color:var(--success);background:var(--success-bg)}.gap-card.practicing .mentoring-status{color:var(--blue)}.student-insights{margin-top:28px}.coaching,.gap-panel,.student-insights{scroll-margin-top:100px}.modal>.student-insights{margin-top:0;padding:24px}.student-insights .mentoring-checkbox{flex-direction:row;justify-content:flex-start;align-items:center}.profile-tabs{background:var(--raised);border-radius:13px;gap:6px;margin:20px 24px 0;padding:4px;display:flex}.profile-tabs button{color:var(--muted);background:0 0;border-radius:9px;flex:1;padding:10px 14px}.profile-tabs button[aria-selected=true]{color:var(--ink);background:var(--surface);box-shadow:0 3px 8px var(--shadow)}.modal:not(.wide) .insight-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.modal:not(.wide) .insight-stats>div:last-child{grid-column:1/-1;align-items:center;gap:14px;display:flex}.insight-stats{grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:10px;margin:20px 0;display:grid}.insight-stats>div{background:linear-gradient(130deg, var(--surface), var(--raised));border:1px solid var(--line);border-radius:16px;padding:20px 14px}.insight-stats strong{letter-spacing:-1px;font-size:27px;display:block}.insight-stats span{color:var(--muted);margin-top:6px;font-size:12px;display:block}.activity-grid{grid-template-columns:repeat(28,minmax(0,1fr));gap:4px;margin:16px 0;display:grid}.activity-day{aspect-ratio:1;background:var(--raised);border:1px solid var(--line);border-radius:4px}.activity-day.intensity-1{background:color-mix(in srgb, var(--blue) 30%, var(--surface))}.activity-day.intensity-2{background:color-mix(in srgb, var(--blue) 65%, var(--surface))}.activity-day.intensity-3{background:var(--blue)}.gap-skills{flex-wrap:wrap;gap:8px;display:flex}.gap-skills>span{border:1px solid var(--line);color:var(--muted);border-radius:12px;gap:12px;padding:10px 13px;font-size:13px;display:flex}.gap-skills .has-gaps{color:var(--notice);background:var(--notice-bg);border-color:color-mix(in srgb, var(--notice) 35%, var(--line))}.mentoring-checkbox{align-items:center;gap:8px;margin:18px 0;font-size:13px;display:flex}.mentoring-checkbox input{width:auto}.queue-filters{flex-wrap:wrap;align-items:end;gap:14px;margin:24px 0;display:flex}.queue-filters label{min-width:180px;color:var(--muted);gap:7px;font-size:13px;display:grid}.queue-list{gap:10px;padding-bottom:24px;display:grid}.queue-row{text-align:left;border:1px solid var(--line);background:var(--glass);width:100%;color:var(--ink);border-radius:18px;align-items:center;gap:18px;padding:20px;transition:border-color .2s,background .2s;display:flex}.queue-row:hover{border-color:var(--blue);background:var(--surface)}.queue-row>span:nth-child(2){flex:1;min-width:0}.queue-row strong,.queue-row small{overflow-wrap:anywhere;display:block}.queue-row strong{margin:6px 0}.queue-row small{color:var(--muted);font-size:12px}.queue-symbol{width:44px;height:44px;color:var(--blue);background:var(--raised);border-radius:14px;flex-shrink:0;place-items:center;display:grid}@media (max-width:600px){.practice-task{grid-template-columns:27px minmax(0,1fr)}.practice-task>.secondary{grid-column:2;justify-self:start}.gap-panel{padding:14px}.queue-filters label{width:100%;min-width:0}.activity-grid{grid-template-columns:repeat(14,minmax(0,1fr))}.queue-row{gap:12px;padding:14px}}
