.outline[data-astro-cid-stiggy7z]{flex-direction:column;gap:1.1rem;margin:.8rem 0 0;padding:0;list-style:none;display:flex}.outline--wide[data-astro-cid-stiggy7z]{gap:1rem;display:grid}@media (width>=900px){.outline--wide[data-astro-cid-stiggy7z]{grid-template-columns:repeat(2,minmax(0,1fr))}.outline--wide[data-astro-cid-stiggy7z] .outline__module[data-astro-cid-stiggy7z]{border:1px solid var(--border);border-top:4px solid var(--mod,var(--accent));border-radius:var(--radius-sm);background:var(--surface);padding:1.2rem 1.3rem}}.outline__module[data-astro-cid-stiggy7z]{border-left:3px solid var(--mod,var(--accent));padding-left:.75rem}.outline__n[data-astro-cid-stiggy7z]{font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:.72rem}.outline__title[data-astro-cid-stiggy7z]{margin:.1rem 0 .4rem;font-weight:650}.outline--wide[data-astro-cid-stiggy7z] .outline__title[data-astro-cid-stiggy7z]{font-size:1.15rem}.outline__summary[data-astro-cid-stiggy7z]{color:var(--text-muted);margin:0 0 .6rem;font-size:.9rem}.outline__items[data-astro-cid-stiggy7z]{flex-direction:column;gap:.15rem;margin:0;padding:0;list-style:none;display:flex}.outline__items[data-astro-cid-stiggy7z] a[data-astro-cid-stiggy7z]{border-radius:var(--radius-sm);color:var(--text);align-items:flex-start;gap:.55rem;padding:.4rem .5rem;font-size:.9rem;font-weight:540;text-decoration:none;display:flex}.outline--wide[data-astro-cid-stiggy7z] .outline__items[data-astro-cid-stiggy7z] a[data-astro-cid-stiggy7z]{font-size:.97rem}.outline__items[data-astro-cid-stiggy7z] a[data-astro-cid-stiggy7z]:hover{background:var(--accent-soft)}.outline__items[data-astro-cid-stiggy7z] a[data-astro-cid-stiggy7z][aria-current=page]{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.outline__items[data-astro-cid-stiggy7z] .icon{color:var(--mod,var(--accent));flex:none;margin-top:.15rem}.outline__text[data-astro-cid-stiggy7z]{flex:1}.outline__text[data-astro-cid-stiggy7z] small[data-astro-cid-stiggy7z]{color:var(--text-faint);font-size:.78rem;font-weight:400;display:block}.outline__items[data-astro-cid-stiggy7z] .done-mark[data-astro-cid-stiggy7z] .icon{color:var(--ok,#2f855a)}.outline__items[data-astro-cid-stiggy7z] .lock-mark[data-astro-cid-stiggy7z] .icon{color:var(--text-faint)}.outline__soon[data-astro-cid-stiggy7z]{color:var(--text-faint);margin:0;font-size:.88rem}.sr-only[data-astro-cid-stiggy7z]{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:root{--m1:#2c6fbb;--m2:#2f855a;--m3:#b7791f;--m4:#7c4dcc;--m5:#c05621;--m6:#1f8a99;--c-tip:#2f855a;--c-note:#2c6fbb;--c-important:#7c4dcc;--c-warning:#c05621;--c-exam:#b8892f;--c-new:#1f8a99;--ok:#2f855a;--danger:#c53030;--warn:#b7791f}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--m1:#6ea8ff;--m2:#5fcf95;--m3:#e8b85c;--m4:#b192ff;--m5:#f0965c;--m6:#5cc8d6;--c-tip:#5fcf95;--c-note:#6ea8ff;--c-important:#b192ff;--c-warning:#f0965c;--c-exam:#e2bc66;--c-new:#5cc8d6;--ok:#5fcf95;--danger:#ff7a7a;--warn:#e8b85c}}:root[data-theme=dark]{--m1:#6ea8ff;--m2:#5fcf95;--m3:#e8b85c;--m4:#b192ff;--m5:#f0965c;--m6:#5cc8d6;--c-tip:#5fcf95;--c-note:#6ea8ff;--c-important:#b192ff;--c-warning:#f0965c;--c-exam:#e2bc66;--c-new:#5cc8d6;--ok:#5fcf95;--danger:#ff7a7a;--warn:#e8b85c}.mod-1{--mod:var(--m1)}.mod-2{--mod:var(--m2)}.mod-3{--mod:var(--m3)}.mod-4{--mod:var(--m4)}.mod-5{--mod:var(--m5)}.mod-6{--mod:var(--m6)}.prose .callout{--c:var(--c-note);border:1px solid color-mix(in srgb, var(--c) 35%, var(--border));border-left:4px solid var(--c);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--c) 8%, var(--surface));color:var(--text);margin:1.6rem 0;padding:2.1rem 1.1rem .9rem 1.2rem;font-style:normal;position:relative}.prose .callout:before{content:attr(data-label);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--c);font-size:.72rem;font-weight:650;position:absolute;top:.65rem;left:1.2rem}.prose .callout>:first-child{margin-top:0}.prose .callout>:last-child{margin-bottom:0}.prose .callout--tip{--c:var(--c-tip)}.prose .callout--important{--c:var(--c-important)}.prose .callout--warning{--c:var(--c-warning)}.prose .callout--exam{--c:var(--c-exam)}.prose .callout--new{--c:var(--c-new)}.prose .lsec{--c:var(--accent);border:1px solid color-mix(in srgb, var(--c) 30%, var(--border));border-top:4px solid var(--c);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--c) 6%, var(--surface));margin:2.4rem 0;padding:.2rem 1.3rem 1.1rem}.prose .lsec>h2{align-items:center;gap:.55rem;display:flex;margin-top:1rem!important}.prose .lsec>h2:before{content:"";background:var(--c);border-radius:3px;flex:none;width:.7rem;height:.7rem}.prose .lsec--exam{--c:var(--c-exam)}.prose .lsec--try{--c:var(--c-tip)}.prose .lsec--why{--c:var(--c-note)}.prose .lsec--terms{--c:var(--c-important)}.prose .lsec--start{--c:var(--c-note)}.prose .lsec--check{--c:var(--c-tip)}.prose .lsec--cleanup{--c:var(--c-warning)}.prose .lsec--frameworks{--c:var(--c-important)}.prose .lsec--reading{--c:var(--border-strong)}.lesson-prose h2:not(.lsec>h2){border-left:4px solid var(--mod,var(--accent));padding-left:.85rem}.bar{background:var(--border);border-radius:999px;width:100%;height:.5rem;display:block;overflow:hidden}.bar>span{border-radius:inherit;background:linear-gradient(90deg, var(--mod,var(--accent)), var(--accent));width:0;height:100%;transition:width .25s;display:block}.bar--ok>span{background:var(--ok)}.lock-mark,.done-mark{flex:none}.lock-mark{color:var(--text-faint)}.done-mark{color:var(--ok)}a.is-locked .outline__text{color:var(--text-faint)}a.is-done .outline__text small:after{content:" · passed";color:var(--ok)}.q.is-right{border-color:var(--ok);background:color-mix(in srgb, var(--ok) 7%, var(--surface))}.q.is-wrong{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 6%, var(--surface))}.q__opt.is-answer{outline:2px solid var(--ok);outline-offset:1px}.verdict{border-radius:var(--radius-sm);border:1px solid var(--border-strong);border-left-width:4px;padding:1rem 1.2rem}.verdict--pass{border-color:var(--ok);background:color-mix(in srgb, var(--ok) 9%, var(--surface))}.verdict--fail{border-color:var(--warn);background:color-mix(in srgb, var(--warn) 9%, var(--surface))}.verdict p{margin:.2rem 0 0}
