:root{--color-bg: #ffffff;--color-fg: #1a1a2e;--color-muted: #5b6472;--color-surface: #f5f6f8;--color-border: #e2e5ea;--color-primary: #1f3a8a;--color-primary-fg: #ffffff;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--fs-300: .875rem;--fs-400: 1rem;--fs-600: 1.375rem;--fs-800: 2rem;--lh: 1.6;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--container-max: 64rem;--radius: 10px}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{color-scheme:light}body{font-family:var(--font-sans);font-size:var(--fs-400);line-height:var(--lh);color:var(--color-fg);background:var(--color-bg);-webkit-font-smoothing:antialiased}a{color:var(--color-primary)}img,svg,video{display:block;max-width:100%}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--space-4)}.skip-link{position:absolute;left:-9999px;top:0;z-index:10;background:var(--color-primary);color:var(--color-primary-fg);padding:var(--space-2) var(--space-4);border-radius:0 0 var(--radius) 0}.skip-link:focus{left:0}.app-shell{min-height:100dvh;display:flex;flex-direction:column}.app-header{border-bottom:1px solid var(--color-border);background:var(--color-surface)}.app-header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);height:3.5rem}.brand{font-weight:700;color:var(--color-fg);text-decoration:none}.app-main{flex:1;padding-block:var(--space-8)}.app-footer{border-top:1px solid var(--color-border);color:var(--color-muted);font-size:var(--fs-300);padding-block:var(--space-6)}.site-nav ul{list-style:none;display:flex;gap:var(--space-4);padding:0;margin:0}.site-nav a{text-decoration:none;color:var(--color-muted)}.site-nav a:hover{color:var(--color-fg)}h1{font-size:var(--fs-800);line-height:1.2;margin-bottom:var(--space-4)}h2{font-size:var(--fs-600);line-height:1.3;margin-block:var(--space-6) var(--space-2)}p{margin-bottom:var(--space-4)}.muted{color:var(--color-muted)}.card-list{list-style:none;padding:0;display:grid;gap:var(--space-4)}.card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.card a{display:block;padding:var(--space-6);text-decoration:none;color:inherit}.card h2{margin-top:0}.module-title{font-size:var(--fs-400);text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted)}.lesson-list{padding-left:var(--space-6)}.lesson-list li{margin-bottom:var(--space-2)}.video{position:relative;aspect-ratio:16 / 9;margin-bottom:var(--space-6);border-radius:var(--radius);overflow:hidden;background:#000}.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-placeholder{display:grid;gap:var(--space-2);place-items:center;text-align:center;border:2px dashed var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-muted);aspect-ratio:16 / 9;margin-bottom:var(--space-6);padding:var(--space-4)}.prose :is(h2,h3){margin-block:var(--space-6) var(--space-2)}.prose p{margin-bottom:var(--space-4)}.prose ul,.prose ol{margin-bottom:var(--space-4);padding-left:var(--space-6)}.lesson-pager{display:flex;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-12);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.lesson-pager a{text-decoration:none}.auth-form{display:grid;gap:var(--space-4);max-width:22rem;margin-bottom:var(--space-6)}.auth-form label{display:grid;gap:var(--space-1);font-size:var(--fs-300);color:var(--color-muted)}.auth-form input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);font:inherit}button{font:inherit;cursor:pointer;border:0;border-radius:var(--radius);padding:var(--space-2) var(--space-4);background:var(--color-primary);color:var(--color-primary-fg)}section{margin-block:var(--space-8)}.auth-form select{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);font:inherit}table{width:100%;border-collapse:collapse;margin:var(--space-4) 0;font-size:var(--fs-300)}th,td{text-align:left;padding:var(--space-2);border-bottom:1px solid var(--color-border)}table button{padding:var(--space-1) var(--space-3)}.done{color:#1a7f37;font-weight:600;font-size:var(--fs-300)}.reset-form{margin:var(--space-4) 0}.btn-secondary{background:transparent;color:var(--color-muted);border:1px solid var(--color-border)}.lesson-actions{margin:var(--space-4) 0}
