:root{--subject-programming:#2f7fbf;--subject-data-ai:#7c4dff;--subject-mathematics:#a86a0c;--subject-computer-science:#25895a;--subject-web:#0e8284;--subject-engineering:#b03a73}:root[data-theme=dark]{--subject-programming:#6ba9dd;--subject-data-ai:#b69cff;--subject-mathematics:#ffd343;--subject-computer-science:#7fd1a0;--subject-web:#5fd4d6;--subject-engineering:#f08cc0}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--subject-programming:#6ba9dd;--subject-data-ai:#b69cff;--subject-mathematics:#ffd343;--subject-computer-science:#7fd1a0;--subject-web:#5fd4d6;--subject-engineering:#f08cc0}}[data-subject=programming]{--hue:var(--subject-programming)}[data-subject=data-ai]{--hue:var(--subject-data-ai)}[data-subject=mathematics]{--hue:var(--subject-mathematics)}[data-subject=computer-science]{--hue:var(--subject-computer-science)}[data-subject=web]{--hue:var(--subject-web)}[data-subject=engineering]{--hue:var(--subject-engineering)}.button{border:1px solid var(--line);background:var(--card);min-height:2.75rem;color:var(--foreground);font-family:var(--font-display);border-radius:.75rem;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1.15rem;font-size:.98rem;font-weight:700;text-decoration:none;transition:border-color .15s,background .15s;display:inline-flex}.button:hover{border-color:color-mix(in srgb, var(--foreground) 35%, transparent)}.button--primary{border:2px solid var(--foreground);background:var(--color-python-amber);box-shadow:3px 3px 0 0 var(--accent);color:#12141a;transition:transform .12s,box-shadow .12s}.button--primary:hover{border-color:var(--foreground);box-shadow:2px 2px 0 0 var(--accent);transform:translate(1px,1px)}.button--primary:active{box-shadow:none;transform:translate(3px,3px)}@media (prefers-reduced-motion:reduce){.button--primary,.button--primary:hover,.button--primary:active{transition:none;transform:none}}.catalog__filters{flex-wrap:wrap;gap:.5rem;margin:0 0 1.5rem;display:flex}.chip{border:1px solid var(--line);min-height:2.25rem;color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:.45rem;padding:.3rem .9rem;font-size:.9rem;font-weight:600;display:inline-flex}.chip[data-subject]:before{content:"";background:var(--hue);border-radius:999px;width:.55rem;height:.55rem}.chip:hover{color:var(--foreground);border-color:color-mix(in srgb, var(--foreground) 30%, transparent)}.chip[aria-pressed=true]{border-color:var(--foreground);background:var(--foreground);color:var(--background)}.catalog__grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.cc{border:1px solid var(--line);background:var(--card);border-radius:1rem;flex-direction:column;gap:.6rem;padding:1.25rem 1.3rem 1.1rem 1.5rem;transition:border-color .15s;display:flex;position:relative}.cc:before{content:"";background:var(--hue);border-radius:0 4px 4px 0;width:4px;position:absolute;inset-block:1rem;inset-inline-start:0}.cc:hover,.cc:focus-within{border-color:color-mix(in srgb, var(--hue) 55%, var(--line))}.cc__code{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--hue);justify-content:space-between;align-items:center;gap:.5rem;margin:0;font-size:.85rem;font-weight:700;display:flex}.cc__level{background:var(--muted-surface);color:var(--muted);font-family:var(--font-sans);border-radius:999px;padding:.1rem .55rem;font-size:.76rem;font-weight:600}.cc__title{margin:0;font-size:1.3rem;line-height:1.2}.cc__link{color:inherit;text-decoration:none}.cc__link:after{content:"";border-radius:inherit;position:absolute;inset:0}.cc__link:focus-visible{outline:none}.cc:has(.cc__link:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.cc__summary{color:var(--muted);margin:0;font-size:.95rem;line-height:1.5}.cc__facts{color:var(--muted);flex-wrap:wrap;gap:.35rem 1rem;margin:.15rem 0 0;padding:0;font-size:.84rem;list-style:none;display:flex}.cc__facts li{font-variant-numeric:tabular-nums}.cc__foot{border-top:1px solid var(--line);align-items:center;gap:1rem;margin-top:auto;padding-top:.85rem;display:flex}.cc__progress{flex:1;gap:.35rem;min-width:0;display:grid}.cc__count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem}.cc__progress[data-state=complete] .cc__count{color:var(--foreground);font-weight:600}.cc__action{z-index:1;border:1px solid var(--line);color:var(--foreground);font-family:var(--font-display);border-radius:.6rem;flex-shrink:0;padding:.45rem .9rem;font-size:.88rem;font-weight:700;text-decoration:none;position:relative}.cc__action:hover{border-color:var(--hue);background:color-mix(in srgb, var(--hue) 10%, transparent)}.meter{background:var(--muted-surface);border-radius:999px;height:6px;display:block;overflow:hidden}.meter>span{border-radius:inherit;background:var(--hue,var(--color-python-blue));height:100%;transition:width .6s cubic-bezier(.22,1,.36,1);display:block}@media (prefers-reduced-motion:reduce){.meter>span{transition:none}}.resume{border:1px solid var(--line);background:var(--card);color:inherit;border-radius:1.1rem;gap:.35rem;padding:1.35rem 1.4rem;text-decoration:none;transition:border-color .15s;display:grid}.resume:hover{border-color:color-mix(in srgb, var(--foreground) 35%, transparent)}.resume__label{color:var(--muted);font-size:.85rem;font-weight:600}.resume__title{font-family:var(--font-display);font-size:1.35rem;font-weight:700;line-height:1.2}.resume__course{color:var(--muted);font-size:.92rem}.resume__go{border:2px solid var(--foreground);background:var(--color-python-amber);color:#12141a;font-family:var(--font-display);border-radius:.65rem;justify-self:start;margin-top:.6rem;padding:.45rem .95rem;font-size:.92rem;font-weight:700}
