.ripple-course{gap:var(--s-md);flex-direction:column;height:100%;min-height:0;display:flex}.ripple-course-empty{align-items:flex-start;gap:var(--s-sm);color:var(--text-secondary);font-size:var(--fs-md);flex-direction:column;display:flex}.ripple-course-skeleton{padding:var(--s-lg);flex-direction:column;gap:10px;max-width:520px;display:flex}.ripple-course-skeleton-head{align-items:center;gap:8px;display:flex}.ripple-course-skeleton-title{font-size:var(--fs-md);color:var(--text-primary);font-weight:700}.ripple-course-skeleton-sub{font-size:var(--fs-sm);color:var(--text-secondary);text-wrap:pretty;line-height:1.55}.ripple-course-skeleton-lessons{flex-direction:column;gap:12px;margin-top:6px;display:flex}.ripple-skel-lesson{align-items:center;gap:12px;display:flex}.ripple-skel-step{border-radius:50%;flex:none;width:26px;height:26px}.ripple-skel-lines{flex-direction:column;flex:1;gap:7px;display:flex}.ripple-skel-line-title{width:62%;height:11px}.ripple-skel-line-meta{width:34%;height:9px}.ripple-skel-lesson:nth-child(2) .ripple-skel-line-title{width:74%}.ripple-skel-lesson:nth-child(3) .ripple-skel-line-title{width:54%}.ripple-skel-lesson:nth-child(4) .ripple-skel-line-title{width:68%}@media (prefers-reduced-motion:no-preference){.ripple-skel-lesson{opacity:0;animation:ripple-skel-in .42s var(--ease-out,ease-out) forwards}.ripple-skel-lesson:first-child{animation-delay:60ms}.ripple-skel-lesson:nth-child(2){animation-delay:.15s}.ripple-skel-lesson:nth-child(3){animation-delay:.24s}.ripple-skel-lesson:nth-child(4){animation-delay:.33s}@keyframes ripple-skel-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}}.ripple-course-head{flex:none}.ripple-course-head-top{justify-content:space-between;align-items:center;gap:var(--s-sm);display:flex}.ripple-course-regen{font-size:var(--fs-xs);color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;flex:none;padding:4px 10px;font-weight:600}.ripple-course-regen:hover:not(:disabled){color:var(--text-primary);background:color-mix(in oklab, var(--presence) 12%, var(--surface-elevated))}.ripple-course-regen:disabled{opacity:.6;cursor:default}.ripple-course-focus{font-size:var(--fs-xs);color:var(--text-muted);flex:none;align-items:center;gap:6px;margin-left:auto;font-weight:600;display:inline-flex}.ripple-course-focus-select{font-size:var(--fs-xs);color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;max-width:220px;padding:4px 7px;font-weight:600}.ripple-course-focus-select:hover:not(:disabled){color:var(--text-primary);border-color:color-mix(in oklab, var(--presence) 45%, var(--line))}.ripple-course-focus-select:disabled{opacity:.6;cursor:default}.ripple-course-pill{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--fs-2xs);letter-spacing:.09em;text-transform:uppercase;color:var(--presence);background:color-mix(in oklab, var(--presence) 12%, transparent);border-radius:var(--r-full);padding:3px 9px;font-weight:700;display:inline-block}.ripple-course-tracks{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.ripple-course-track{text-align:left;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-default);cursor:pointer;flex-direction:column;flex:180px;gap:3px;padding:9px 12px;transition:border-color .15s,background .15s;display:flex}.ripple-course-track:hover{border-color:color-mix(in oklab, var(--presence) 40%, var(--line))}.ripple-course-track[data-active=true]{border-color:var(--presence);background:color-mix(in oklab, var(--presence) 8%, transparent)}.ripple-course-track-top{justify-content:space-between;align-items:center;gap:6px;display:flex}.ripple-course-step{width:18px;height:18px;font-size:var(--fs-2xs);color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--line);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.ripple-course-step[data-done=true]{color:#fff;background:var(--insight);border-color:#0000}.ripple-course-track-title{font-size:var(--fs-sm);color:var(--text-primary);font-weight:600;line-height:1.25}.ripple-course-track-meta{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--fs-2xs);color:var(--text-muted)}.ripple-course-title{font-size:var(--fs-xl);letter-spacing:-.01em;color:var(--text-primary);margin:12px 0 0;font-weight:700}.ripple-course-sub{font-size:var(--fs-sm);color:var(--text-secondary);margin:2px 0 0}.ripple-course-meta{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--fs-xs);color:var(--text-muted);margin-top:8px}.ripple-course-bar{border-radius:var(--r-full);background:var(--surface-elevated);height:5px;margin-top:8px;overflow:hidden}.ripple-course-bar>span{background:linear-gradient(90deg, var(--presence), var(--insight));border-radius:inherit;height:100%;transition:width .3s;display:block}.ripple-course-stale{margin-top:var(--s-sm);border-radius:var(--r-md);background:color-mix(in oklab, var(--warning) 9%, transparent);border:1px solid color-mix(in oklab, var(--warning) 28%, transparent);border-left:3px solid var(--warning);flex:none;padding:11px 14px}.ripple-course-stale .ripple-eyebrow{color:var(--warning)}.ripple-course-stale-text{font-size:var(--fs-md);color:var(--text-primary);margin:6px 0 0;line-height:1.5}.ripple-course-stale-text code{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--fs-sm);background:var(--surface-elevated);border-radius:var(--r-sm);padding:1px 6px}.ripple-course-stale-err{font-size:var(--fs-sm);color:var(--danger);margin:6px 0 0}.ripple-course-stale-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.ripple-course-stale-btn{font-size:var(--fs-sm);color:var(--warning);border:1px solid color-mix(in oklab, var(--warning) 34%, transparent);border-radius:var(--r-sm);cursor:pointer;background:0 0;padding:5px 12px;font-weight:600}.ripple-course-stale-btn:hover:not(:disabled){background:color-mix(in oklab, var(--warning) 12%, transparent)}.ripple-course-stale-btn:disabled{opacity:.6;cursor:default}.ripple-course-changed-panel{border-top:1px solid color-mix(in oklab, var(--warning) 24%, transparent);margin-top:10px;padding-top:10px}.ripple-course-changed-panel ul{flex-direction:column;gap:3px;max-height:160px;margin:0;padding-left:18px;display:flex;overflow-y:auto}.ripple-course-changed-panel li{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--fs-sm);color:var(--text-secondary);word-break:break-all}.ripple-course-changed-more{font-size:var(--fs-sm);color:var(--text-muted);margin:6px 0 0}.ripple-course-changed-panel .ripple-course-stale-btn{margin-top:10px}.ripple-course-item-stale{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--warning);background:color-mix(in oklab, var(--warning) 14%, transparent);border-radius:var(--r-full);vertical-align:middle;margin-left:7px;padding:1px 6px;font-weight:700}.ripple-course-body{gap:var(--s-md);flex:1;grid-template-columns:minmax(220px,300px) 1fr;min-height:0;display:grid}.ripple-course-list{flex-direction:column;gap:4px;padding-right:4px;display:flex;overflow-y:auto}.ripple-course-item{text-align:left;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-default);cursor:pointer;align-items:center;gap:11px;padding:10px 12px;transition:border-color .15s,background .15s;display:flex}.ripple-course-item:hover{border-color:color-mix(in oklab, var(--presence) 40%, var(--line))}.ripple-course-item[data-active=true]{border-color:var(--presence);background:color-mix(in oklab, var(--presence) 8%, transparent)}.ripple-course-num{width:24px;height:24px;font-size:var(--fs-sm);color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--line);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:flex}.ripple-course-item[data-done=true] .ripple-course-num{color:#fff;background:var(--insight);border-color:#0000}.ripple-course-item-body{flex-direction:column;gap:1px;min-width:0;display:flex}.ripple-course-item-title{font-size:var(--fs-sm);color:var(--text-primary);font-weight:600}.ripple-course-item-min{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--fs-2xs);color:var(--text-muted)}.ripple-course-lesson{min-width:0;padding:var(--s-md) var(--s-lg);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-elevated);overflow-y:auto}.ripple-course-lesson-title{font-size:var(--fs-lg);color:var(--text-primary);margin:6px 0 0;font-weight:700}.ripple-course-goal,.ripple-course-explain{font-size:var(--fs-md);color:var(--text-primary);text-wrap:pretty;white-space:pre-wrap;margin:8px 0 0;line-height:1.6}.ripple-course-file-link{cursor:pointer;text-decoration:none;transition:border-color .15s,background .15s}.ripple-course-file-link:hover{border-color:var(--presence);background:color-mix(in oklab, var(--presence) 16%, transparent)}.ripple-course-group{margin-top:var(--s-md)}.ripple-course-files{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.ripple-course-file{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--fs-xs);color:var(--presence);background:color-mix(in oklab, var(--presence) 9%, transparent);border:1px solid color-mix(in oklab, var(--presence) 22%, transparent);border-radius:var(--r-sm);word-break:break-all;padding:3px 8px}.ripple-course-concepts{flex-direction:column;gap:5px;margin:6px 0 0;padding-left:18px;display:flex}.ripple-course-concepts li{font-size:var(--fs-md);color:var(--text-secondary);line-height:1.5}.ripple-course-checkpoint{margin-top:var(--s-md);padding:var(--s-sm) var(--s-md);border-radius:var(--r-sm);background:color-mix(in oklab, var(--warning) 8%, transparent);border:1px solid color-mix(in oklab, var(--warning) 24%, transparent)}.ripple-course-q{font-size:var(--fs-md);color:var(--text-primary);margin:4px 0 0;font-weight:600;line-height:1.5}.ripple-course-a{font-size:var(--fs-md);color:var(--text-secondary);text-wrap:pretty;border-top:1px solid color-mix(in oklab, var(--warning) 24%, transparent);margin:8px 0 0;padding-top:8px;line-height:1.55}.ripple-course-reveal{font-size:var(--fs-sm);color:var(--warning);border:1px solid color-mix(in oklab, var(--warning) 34%, transparent);border-radius:var(--r-sm);cursor:pointer;background:0 0;margin-top:8px;padding:4px 11px;font-weight:600}.ripple-course-reveal:hover{background:color-mix(in oklab, var(--warning) 12%, transparent)}.ripple-course-actions{margin-top:var(--s-lg);align-items:center;gap:10px;display:flex}.ripple-course-done{font-size:var(--fs-sm);color:#fff;background:var(--presence);border-radius:var(--r-sm);cursor:pointer;border:none;padding:8px 16px;font-weight:600;transition:filter .15s}.ripple-course-done:hover{filter:brightness(1.08)}.ripple-course-skip{font-size:var(--fs-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:none}.ripple-course-skip:hover{color:var(--text-secondary)}@media (width<=720px){.ripple-course-body{grid-template-columns:1fr}}.ripple-course-level{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--r-full);color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--line);padding:2px 7px;font-weight:700}.ripple-course-level[data-level=beginner]{color:var(--insight);background:color-mix(in oklab, var(--insight) 12%, transparent);border-color:color-mix(in oklab, var(--insight) 28%, transparent)}.ripple-course-level[data-level=intermediate]{color:var(--presence);background:color-mix(in oklab, var(--presence) 12%, transparent);border-color:color-mix(in oklab, var(--presence) 28%, transparent)}.ripple-course-level[data-level=expert]{color:var(--warning);background:color-mix(in oklab, var(--warning) 12%, transparent);border-color:color-mix(in oklab, var(--warning) 28%, transparent)}.ripple-course-caution{border-radius:var(--r-md);background:color-mix(in oklab, var(--warning) 9%, transparent);border:1px solid color-mix(in oklab, var(--warning) 28%, transparent);border-left:3px solid var(--warning);margin-top:4px;padding:11px 14px}.ripple-course-caution .ripple-eyebrow{color:var(--warning)}.ripple-course-caution-text{font-size:var(--fs-md);color:var(--text-primary);text-wrap:pretty;margin:6px 0 0;line-height:1.55}.ripple-course-item-quiz .ripple-course-num{color:var(--presence)}.ripple-quiz{margin-top:var(--s-md);padding:var(--s-md) var(--s-lg);border-radius:var(--r-md);background:var(--surface-elevated);border:1px solid var(--line)}.ripple-quiz-progress{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-weight:700}.ripple-quiz .ripple-course-q{margin-top:6px}.ripple-quiz-choices{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.ripple-quiz-choice{text-align:left;width:100%;font-size:var(--fs-md);color:var(--text-primary);background:var(--surface-default);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;padding:10px 13px;transition:border-color .15s,background .15s}.ripple-quiz-choice:hover:not(:disabled){border-color:color-mix(in oklab, var(--presence) 40%, var(--line))}.ripple-quiz-choice:disabled{cursor:default}.ripple-quiz-choice[data-state=correct]{border-color:color-mix(in oklab, var(--insight) 50%, var(--line));background:color-mix(in oklab, var(--insight) 14%, transparent);color:var(--text-primary)}.ripple-quiz-choice[data-state=wrong]{border-color:color-mix(in oklab, var(--danger) 50%, var(--line));background:color-mix(in oklab, var(--danger) 12%, transparent)}.ripple-quiz-plain{margin-top:10px}.ripple-quiz-selfgrade{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.ripple-quiz-selfgrade-prompt{font-size:var(--fs-sm);color:var(--text-secondary)}.ripple-quiz-selfgrade-btn{font-size:var(--fs-sm);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;color:var(--text-secondary);background:0 0;padding:5px 12px;font-weight:600}.ripple-quiz-selfgrade-btn:hover{color:var(--text-primary);background:var(--surface-default)}.ripple-quiz-selfgrade-btn[data-answer=yes]{color:var(--insight);border-color:color-mix(in oklab, var(--insight) 34%, transparent)}.ripple-quiz-selfgrade-btn[data-answer=no]{color:var(--danger);border-color:color-mix(in oklab, var(--danger) 34%, transparent)}.ripple-quiz-feedback{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.ripple-quiz-feedback-label{font-size:var(--fs-sm);color:var(--danger);margin:0;font-weight:700}.ripple-quiz-feedback[data-right=true] .ripple-quiz-feedback-label{color:var(--insight)}.ripple-quiz-explain{font-size:var(--fs-md);color:var(--text-secondary);text-wrap:pretty;margin:6px 0 0;line-height:1.55}.ripple-quiz-actions{margin-top:var(--s-md)}.ripple-quiz-done{margin-top:var(--s-md);flex-direction:column;align-items:flex-start;gap:12px;display:flex}.ripple-quiz-score{padding:var(--s-md) var(--s-lg);border-radius:var(--r-md);background:color-mix(in oklab, var(--warning) 9%, var(--surface-elevated));border:1px solid color-mix(in oklab, var(--warning) 26%, var(--line));width:100%}.ripple-quiz-score[data-passed=true]{background:color-mix(in oklab, var(--insight) 10%, var(--surface-elevated));border-color:color-mix(in oklab, var(--insight) 30%, var(--line))}.ripple-quiz-score-num{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--fs-xl);color:var(--text-primary);font-weight:700}.ripple-quiz-score-text{font-size:var(--fs-md);color:var(--text-secondary);margin:4px 0 0}.ripple-quiz-flashcards{align-items:center;display:flex}.ripple-quiz-flash-saved{font-size:var(--fs-sm);color:var(--insight);margin:0;font-weight:600}.ripple-course-track[data-locked=true]{border-style:dashed}.ripple-course-track-lock{font-size:var(--fs-2xs);color:var(--text-muted);margin-top:5px;line-height:1.4;display:block}.ripple-course-track-skip{color:var(--presence);text-underline-offset:2px;font-weight:600;text-decoration:underline}.ripple-course-capstone{margin-top:var(--s-lg);padding:var(--s-md) var(--s-lg);border-radius:var(--r-md);background:color-mix(in oklab, var(--presence) 6%, var(--surface-elevated));border:1px solid color-mix(in oklab, var(--presence) 24%, var(--line))}.ripple-course-capstone-title{font-size:var(--fs-lg);color:var(--text-primary);margin:6px 0 0;font-weight:700}.ripple-course-capstone-brief{font-size:var(--fs-md);color:var(--text-secondary);text-wrap:pretty;margin:6px 0 0;line-height:1.6}.ripple-course-capstone-label{font-size:var(--fs-xs);letter-spacing:.03em;color:var(--text-muted);text-transform:uppercase;font-weight:700}.ripple-course-capstone-steps,.ripple-course-capstone-accept{flex-direction:column;gap:5px;margin:6px 0 0;padding-left:18px;display:flex}.ripple-course-capstone-steps li,.ripple-course-capstone-accept li{font-size:var(--fs-md);color:var(--text-primary);line-height:1.5}.ripple-course-capstone-accept li{color:var(--text-secondary)}.ripple-course-lede{font-size:var(--fs-md);color:var(--text-secondary);margin:0 0 var(--s-md);font-weight:600}.ripple-lesson-overview{gap:var(--s-sm);margin-bottom:var(--s-lg);flex-direction:column;display:flex}.ripple-lesson-overview p{font-size:var(--fs-md);color:var(--text-primary);text-wrap:pretty;margin:0;line-height:1.7}.ripple-lesson-spot-head{justify-content:space-between;align-items:center;gap:var(--s-sm);margin-bottom:var(--s-sm);display:flex}.ripple-walk{gap:var(--s-md);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ripple-walk-step{border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--s-md);background:var(--surface-default)}.ripple-walk-where{align-items:center;gap:8px;margin-bottom:8px;display:flex}.ripple-walk-num{width:20px;height:20px;font-size:var(--fs-xs);color:var(--presence);background:color-mix(in oklab, var(--presence) 14%, transparent);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.ripple-walk-code,.ripple-spotlight-code{background:var(--surface-deep);border:1px solid var(--line);border-radius:var(--r-sm);max-width:100%;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--fs-sm);color:var(--text-primary);white-space:pre;tab-size:2;margin:0 0 8px;padding:10px 12px;line-height:1.6;overflow-x:auto}.ripple-walk-explain{font-size:var(--fs-md);color:var(--text-secondary);text-wrap:pretty;margin:0;line-height:1.6}.ripple-lesson-concepts{flex-direction:column;gap:10px;margin:0;display:flex}.ripple-lesson-concepts dt{font-size:var(--fs-sm);color:var(--text-primary);font-weight:700}.ripple-lesson-concepts dd{font-size:var(--fs-md);color:var(--text-secondary);text-wrap:pretty;margin:2px 0 0;line-height:1.6}.ripple-lesson-pitfalls{font-size:var(--fs-md);color:var(--text-secondary);flex-direction:column;gap:6px;margin:0;padding-left:18px;line-height:1.55;display:flex}.ripple-lesson-exercise .ripple-lesson-task{font-size:var(--fs-md);color:var(--text-primary);margin:0;line-height:1.6}.ripple-lesson-hint{font-size:var(--fs-sm);color:var(--text-muted);margin:6px 0 0}.ripple-lesson-check{font-size:var(--fs-sm);color:var(--insight);margin:6px 0 0;font-weight:600}.ripple-lesson-regen{margin-top:var(--s-md);font-size:var(--fs-xs);color:var(--text-secondary);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;background:0 0;align-self:flex-start;padding:4px 10px}.ripple-lesson-ask{font-size:var(--fs-xs);color:color-mix(in oklab, var(--presence) 75%, var(--text-secondary));background:color-mix(in oklab, var(--presence) 9%, transparent);border:1px solid color-mix(in oklab, var(--presence) 30%, transparent);border-radius:var(--r-full);cursor:pointer;transition:background var(--m-fast) var(--ease-out), color var(--m-fast) var(--ease-out);align-self:flex-start;margin-bottom:4px;padding:4px 12px;font-weight:600}.ripple-lesson-ask:hover{color:var(--text-primary);background:color-mix(in oklab, var(--presence) 20%, transparent)}.ripple-lesson-regen:hover{color:var(--text-primary);background:var(--surface-elevated)}.ripple-spotlight{border:1px solid color-mix(in oklab, var(--presence) 32%, var(--line));border-radius:var(--r-md);padding:var(--s-md);background:color-mix(in oklab, var(--presence) 5%, var(--surface-default))}.ripple-spotlight-bar{align-items:center;gap:8px;margin-bottom:8px;display:flex}.ripple-spotlight-count{font-size:var(--fs-xs);color:var(--presence);flex:none;font-weight:700}.ripple-spotlight-x{color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:none;flex:none;margin-left:auto}.ripple-spotlight-explain{font-size:var(--fs-md);color:var(--text-primary);text-wrap:pretty;margin:0;line-height:1.7}.ripple-spotlight-nav{gap:var(--s-sm);margin-top:var(--s-md);display:flex}
