.credits{color:var(--muted)}.credits-authors,.credits-book{margin:0 0 .75rem;line-height:1.5}.credits-partners{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.2rem;list-style:none;margin:0;padding:0}.credits-partner{display:inline-flex;align-items:center;color:var(--ink-2);text-decoration:none}.credits-partner:hover .credits-wordmark{border-color:var(--brand);color:var(--brand-ink)}.credits-partner img{display:block;width:auto;max-width:100%}.credits-wordmark{display:inline-block;padding:.3rem .65rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-weight:700;letter-spacing:.01em;white-space:nowrap;transition:border-color var(--fast),color var(--fast)}.credits-compact{margin-top:1.5rem;padding:1rem .5rem 0;border-top:1px solid var(--line);font-size:.75rem}.credits-compact .credits-partners{gap:.5rem .9rem}.credits-compact .credits-partner img{height:1.75rem}.credits-compact .credits-wordmark{font-size:.72rem}.credits-full{margin-top:3rem;padding:1.4rem 1.5rem;border-top:1px solid var(--line);font-size:.9rem}.credits-full .credits-partner img{height:2.75rem}.credits-name{cursor:text}.credits-plus{position:fixed;z-index:1000;transform:translate(-50%,-100%);pointer-events:none;color:var(--brand);font-weight:800;font-size:1rem;animation:credits-rise .9s ease-out forwards}@keyframes credits-rise{0%{opacity:1;margin-top:0}to{opacity:0;margin-top:-2rem}}@media(prefers-reduced-motion:reduce){.credits-plus{animation:none}}.tour{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80}.tour-dim,.tour-spotlight{position:fixed;pointer-events:none}.tour-dim{top:0;right:0;bottom:0;left:0;background:#0f172a8c}.tour-spotlight{border-radius:14px;box-shadow:0 0 0 3px #fff,0 0 0 7px var(--brand),0 0 0 200vmax #0f172a8c;transition:left var(--medium, .25s),top var(--medium, .25s),width var(--medium, .25s),height var(--medium, .25s)}.tour-card{position:fixed;box-sizing:border-box;padding:1.1rem 1.2rem 1rem;background:var(--surface);color:var(--ink);border-radius:16px;box-shadow:0 20px 50px #0f172a59}.tour-card h2{margin:.1rem 0 .4rem;font-size:1.15rem}.tour-card p{margin:0 0 .9rem;line-height:1.5;color:var(--ink-2)}.tour-card .tour-count{margin:0;font-size:.72rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase;color:var(--brand)}.tour-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.tour-actions .button-primary{margin-left:auto}.tour-skip{font:inherit;font-size:.9rem;background:none;border:0;padding:.4rem .2rem;color:var(--muted);text-decoration:underline;cursor:pointer}.tour-skip:hover{color:var(--brand-ink)}@media(prefers-reduced-motion:reduce){.tour-spotlight{transition:none}}.corner-stack{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));z-index:50;display:flex;flex-direction:column;align-items:flex-end;gap:.6rem}.site-guide{display:flex;flex-direction:column;align-items:flex-end;gap:.6rem}.site-guide-button{display:flex;align-items:center;gap:.4rem;padding:.25rem .9rem .25rem .25rem;border-radius:999px;cursor:pointer;border:1.5px solid var(--brand);background:var(--surface);color:var(--brand-ink);font-weight:700;box-shadow:var(--shadow-lg);transition:transform var(--fast) var(--ease)}.site-guide-button:hover{transform:translateY(-2px)}.site-guide-button svg{display:block;border-radius:50%}.site-guide-panel{width:min(22rem,calc(100vw - 2rem));max-height:min(28rem,calc(100vh - 7rem));overflow-y:auto;box-sizing:border-box;padding:.9rem;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-lg)}.site-guide-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.site-guide-title{margin:0;font-weight:750;color:var(--ink)}.site-guide-close{border:0;background:none;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--muted);padding:.1rem .4rem}.site-guide-input{width:100%;box-sizing:border-box;margin:.6rem 0;font:inherit;padding:.5rem .7rem;border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink)}.site-guide-hits{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.site-guide-hit{display:flex;flex-direction:column;gap:.15rem;padding:.55rem .7rem;border:1px solid var(--line);border-radius:var(--radius-sm);text-decoration:none;color:var(--ink-2);font-size:.9rem}.site-guide-hit strong{color:var(--brand-ink)}.site-guide-hit:hover{border-color:var(--brand);background:var(--brand-soft)}.site-guide-note{margin:.6rem 0 .4rem;color:var(--muted);font-size:.9rem}.site-guide-starters{display:flex;flex-wrap:wrap;gap:.4rem}.site-guide-starters button{font:inherit;font-size:.85rem;padding:.3rem .65rem;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface-2);color:var(--ink-2);cursor:pointer}.site-guide-starters button:hover{border-color:var(--brand);color:var(--brand-ink)}@media(max-width:640px){.site-guide-label{display:none}.site-guide-button{padding:.25rem}}@media print{.site-guide{display:none}}.site-guide-compact .site-guide-label{display:none}.site-guide-compact .site-guide-button{padding:.25rem}.site-guide-tour{display:block;margin:.8rem 0 0;padding:0;font:inherit;font-size:.88rem;background:none;border:0;color:var(--brand-ink);text-decoration:underline;cursor:pointer}.output-pane{background:#0f172a;color:#e2e8f0;border-radius:var(--radius-sm);padding:.8rem .9rem;min-height:3rem;box-shadow:inset 0 1px #ffffff0a}.output-status{margin:0;color:#94a3b8;font-style:italic}.output-console{margin:0;white-space:pre-wrap;word-break:break-word;font-family:var(--mono);font-size:.86rem}.output-line{display:block}.output-error{color:#fca5a5}.output-warning{color:#fcd34d}.output-message{color:#93c5fd}.output-stderr{color:#fcd34d}.output-plot:not([hidden]){display:block;max-width:100%;height:auto;margin-top:.75rem;background:#fff;border-radius:4px}.code-block{border:1px solid var(--line);border-radius:var(--radius);padding:.8rem;margin:1.5rem 0;background:var(--surface);box-shadow:var(--shadow-sm)}.r-editor{border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:#fbfcfe;transition:border-color var(--fast),box-shadow var(--fast)}.r-editor:focus-within{border-color:#a5b4fc;box-shadow:0 0 0 3px #6366f126}.r-editor .cm-editor{max-height:24rem;font-family:var(--mono);font-size:.88rem}.r-editor .cm-gutters{background:#f4f6fb;border-right:1px solid var(--line);color:#94a3b8}.r-editor .cm-activeLine{background:#6366f10d}.r-editor .cm-activeLineGutter{background:#6366f114}.code-block-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.65rem 0}.code-block-actions button{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem 1.05rem;border-radius:999px;border:1px solid var(--brand);background:var(--brand);color:#fff;cursor:pointer;font-size:.9rem;font-weight:650;transition:background var(--fast),transform var(--fast) var(--ease)}.code-block-actions button:not(.secondary):before{content:"▶";font-size:.65rem}.code-block-actions button:hover:not(:disabled){background:var(--brand-ink)}.code-block-actions button:active:not(:disabled){transform:scale(.97)}.code-block-actions button:disabled{opacity:.5;cursor:not-allowed}.code-block-actions button.secondary{background:var(--surface);color:var(--brand-ink);border-color:var(--line-strong)}.code-block-actions button.secondary:hover:not(:disabled){background:var(--brand-soft)}.code-block-hint{color:var(--muted);font-size:.85rem}.avatar-tip{display:flex;align-items:flex-start;gap:.7rem;margin:.7rem 0}.avatar-tip .avatar{flex:none;border-radius:50%;box-shadow:var(--shadow-sm)}.avatar-tip-bubble{position:relative;flex:1;min-width:0;padding:.65rem .85rem;border-radius:var(--radius);border:1px solid #fcd34d;background:var(--warn-soft);color:#78350f;line-height:1.45;animation:pop-in var(--medium) var(--ease) both}.avatar-tip-bubble:before{content:"";position:absolute;left:-7px;top:1rem;width:12px;height:12px;transform:rotate(45deg);background:inherit;border-left:inherit;border-bottom:inherit}.avatar-tip-error .avatar-tip-bubble{border-color:#fca5a5;background:var(--danger-soft);color:#7f1d1d}.avatar-tip-bubble p{margin:0}.avatar-tip-bubble p+p{margin-top:.4rem}@media(prefers-reduced-motion:reduce){.avatar-tip-bubble{animation:none}}.avatar-tip-coach .avatar-tip-bubble{border-color:#99f6e4;background:#f0fdfa;color:var(--ink)}.avatar-tip-right .avatar-tip-bubble{border-color:#86efac;background:#f0fdf4;color:#14532d}.avatar-tip-title{font-size:.72rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase;opacity:.75}.avatar-tip-bubble ul{margin:.2rem 0 0;padding-left:1.2rem}.avatar-tip-bubble li+li{margin-top:.3rem}.avatar-tip-bubble pre{margin:.5rem 0 0}.avatar-tip-bubble .avatar-tip-title+*{margin-top:.15rem}.file-upload{margin:1rem 0;padding:.8rem;border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface-2)}.file-upload-compact{margin:.5rem 0 .75rem;padding:.55rem .7rem}.file-upload-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.file-upload button{padding:.4rem .95rem;border-radius:999px;border:1px solid var(--brand);background:var(--brand);color:#fff;cursor:pointer;font-size:.88rem;font-weight:650;transition:background var(--fast)}.file-upload button:hover:not(:disabled){background:var(--brand-ink)}.file-upload button:disabled{opacity:.5;cursor:not-allowed}.file-upload button.secondary{background:var(--surface);color:var(--brand-ink);border-color:var(--line-strong);padding:.25rem .75rem;font-size:.82rem}.file-upload button.secondary:hover:not(:disabled){background:var(--brand-soft)}.file-upload-note{color:var(--muted);font-size:.85rem;flex:1 1 16rem}.file-upload-error{margin:.6rem 0 0;padding:.5rem .75rem;border-radius:var(--radius-sm);background:var(--danger-soft);border:1px solid #fca5a5;color:#7f1d1d;font-size:.88rem}.file-upload-list{list-style:none;margin:.6rem 0 0;padding:0;display:grid;gap:.45rem}.file-upload-list li{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .6rem;padding:.45rem .6rem;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line)}.file-upload-name{font-weight:650;color:var(--ink);font-size:.88rem}.file-upload .file-upload-code{flex:1 1 14rem;min-width:0;margin:0;padding:.3rem .5rem;border:0;border-radius:6px;background:var(--surface-2);color:var(--ink-2);font-family:var(--mono);font-size:.82rem;overflow-wrap:break-word}.file-upload-compact .file-upload-button{background:var(--surface);color:var(--brand-ink);border-color:var(--line-strong)}.file-upload-compact .file-upload-button:hover:not(:disabled){background:var(--brand-soft)}.file-upload-actions{display:inline-flex;gap:.35rem}.exercise{position:relative;border:1px solid #99f6e4;border-radius:var(--radius-lg);padding:1.15rem;margin:2rem 0;background:linear-gradient(180deg,#f0fdfa,var(--surface) 7rem);box-shadow:var(--shadow);transition:border-color var(--medium),box-shadow var(--medium)}.exercise-passed{border-color:#86efac;box-shadow:0 0 0 4px #22c55e1f,var(--shadow)}.exercise-label{display:inline-flex;align-items:center;gap:.35rem;margin:0 0 .45rem;padding:.15rem .6rem;border-radius:999px;background:var(--teal-soft);font-size:.72rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:#0f766e}.exercise-prompt{margin:0 0 .85rem;font-weight:650;color:var(--ink)}.exercise-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}.exercise-actions button{padding:.45rem 1.05rem;border-radius:999px;border:1px solid var(--teal);background:var(--teal);color:#fff;cursor:pointer;font-size:.9rem;font-weight:650;transition:background var(--fast),transform var(--fast) var(--ease)}.exercise-actions button:hover:not(:disabled){background:#0f766e}.exercise-actions button:active:not(:disabled){transform:scale(.97)}.exercise-actions button.secondary{background:var(--surface);color:#0f766e;border-color:#99f6e4}.exercise-actions button.secondary:hover:not(:disabled){background:var(--teal-soft)}.exercise-actions button:disabled{opacity:.5;cursor:not-allowed}.exercise-hints{margin:0}.exercise-hints li{animation:pop-in var(--medium) var(--ease) both}.exercise-outcome{padding:.7rem .9rem;border-radius:var(--radius-sm);margin:.7rem 0;animation:pop-in var(--medium) var(--ease) both}.exercise-outcome p{margin:0}.outcome-pass{background:var(--success-soft);border:1px solid #86efac;color:#14532d;font-weight:600}.outcome-pass p:before{content:"✓ "}.outcome-fail{background:var(--warn-soft);border:1px solid #fcd34d;color:#78350f;animation-name:nudge}.outcome-student-error{background:var(--danger-soft);border:1px solid #fca5a5;color:#7f1d1d}.outcome-broken-check{background:#ede9fe;border:1px solid #c4b5fd;color:#4c1d95}.exercise-solution{background:#0f172a;color:#e2e8f0;padding:.8rem;border-radius:var(--radius-sm);overflow-x:auto;font-family:var(--mono);font-size:.86rem;animation:pop-in var(--medium) var(--ease) both}.exercise-missing{color:var(--danger);font-weight:600}@keyframes nudge{0%,to{transform:none}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.exercise-task .exercise-prompt{margin:0}.exercise-advice{font-size:.9rem;color:var(--muted)}.rstudio{max-width:44rem;margin:1.5rem 0;border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-sm)}.rstudio-bar{display:flex;justify-content:space-between;gap:1rem;padding:.45rem .8rem;font-size:.8rem;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--line)}.rstudio-bar span:last-child{color:var(--brand-ink);font-weight:650}.rstudio-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}.rstudio-pane{padding:.8rem .9rem;background:var(--surface);min-height:6.5rem}.rstudio-pane strong{display:block;margin-bottom:.2rem;color:var(--ink)}.rstudio-pane small{display:block;margin-bottom:.35rem;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.rstudio-pane p{margin:0;font-size:.9rem}.rstudio figcaption{padding:.55rem .8rem;font-size:.85rem;color:var(--muted);border-top:1px solid var(--line)}@media(max-width:560px){.rstudio-grid{grid-template-columns:1fr}.rstudio-pane{min-height:0}}.folder-tree{max-width:44rem;margin:1.25rem 0;padding:.9rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);font-family:var(--mono);font-size:.88rem;line-height:1.55;color:var(--ink);overflow-x:auto}.folder-tree{white-space:pre}@media(max-width:560px){.folder-tree{font-size:.78rem;padding:.8rem .9rem}}.symbol-table{width:100%}.symbol-table td:first-child,.symbol-table td:last-child code{white-space:nowrap}.symbol-table td{vertical-align:top}.choice-block{position:relative;border:1px solid #dbe0ff;border-radius:var(--radius-lg);padding:1.1rem 1.15rem;margin:1.75rem 0;background:linear-gradient(180deg,#f5f6ff,var(--surface) 6rem);box-shadow:var(--shadow-sm)}.choice-predict{border-color:#fde68a;background:linear-gradient(180deg,#fffbeb,var(--surface) 6rem)}.choice-interpret{border-color:#99f6e4;background:linear-gradient(180deg,#f0fdfa,var(--surface) 6rem)}.choice-label{display:inline-flex;align-items:center;gap:.35rem;margin:0 0 .45rem;padding:.15rem .6rem;border-radius:999px;background:var(--brand-soft);font-size:.72rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-ink)}.choice-predict .choice-label{background:var(--warn-soft);color:#92400e}.choice-interpret .choice-label{background:var(--teal-soft);color:#0f766e}.choice-question{margin:0 0 .85rem;font-weight:650;color:var(--ink)}.choice-options{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.choice-options button{width:100%;display:flex;align-items:flex-start;gap:.7rem;text-align:left;padding:.6rem .8rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);cursor:pointer;font-size:.95rem;transition:border-color var(--fast),box-shadow var(--fast),transform var(--fast) var(--ease),background var(--fast)}.choice-options button:hover:not(:disabled){border-color:var(--brand);box-shadow:var(--shadow-sm);transform:translate(3px)}.choice-options button:active:not(:disabled){transform:scale(.99)}.choice-options button:disabled{cursor:default}.choice-options button:disabled:not(.chosen):not(.is-correct){opacity:.6}.choice-letter{flex:none;display:grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:8px;background:var(--surface-2);color:var(--ink-2);font-size:.8rem;font-weight:750;transition:background var(--fast),color var(--fast)}.choice-text{padding-top:.1rem}.choice-options button.chosen{border-color:var(--brand);box-shadow:0 0 0 3px #6366f12e}.choice-options button.chosen .choice-letter{background:var(--brand);color:#fff}.choice-options button.is-correct{border-color:#4ade80;background:#f0fdf4;box-shadow:0 0 0 3px #22c55e26}.choice-options button.is-correct .choice-letter{background:var(--success);color:#fff}.choice-options button.chosen.is-correct{animation:pop .42s var(--ease)}.choice-options button.is-wrong{border-color:#f87171;background:#fef2f2;box-shadow:none;animation:nudge .38s ease-in-out}.choice-options button.is-wrong .choice-letter{background:var(--danger);color:#fff}.points-pop{position:absolute;top:-.7rem;right:.8rem;padding:.1rem .55rem;border-radius:999px;font-size:.78rem;font-weight:800;background:var(--success);color:#fff;box-shadow:var(--shadow-sm);animation:float-up 1.4s var(--ease) both}@keyframes pop{40%{transform:scale(1.03)}}@keyframes float-up{0%{opacity:0;transform:translateY(8px) scale(.8)}20%{opacity:1;transform:none}to{opacity:1}}.ci{border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.1rem;margin:2rem 0;background:var(--surface);box-shadow:var(--shadow)}.ci-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:.5rem}.ci-controls label{display:flex;align-items:center;gap:.4rem;font-size:.9rem}.ci-slider input[type=range]{width:9rem}.ci-slider span{font-variant-numeric:tabular-nums;min-width:2rem}.ci-controls button{padding:.4rem .95rem;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--brand-ink);cursor:pointer;font-weight:600;transition:background var(--fast),border-color var(--fast)}.ci-svg{width:100%;height:auto;background:#f8fafc;border-radius:4px}.ci-svg line{cursor:pointer}.ci-readout{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:.5rem}.ci-readout th{text-align:left;font-weight:500;color:#475569;padding:.2rem .5rem .2rem 0}.ci-readout td{padding:.2rem 1.25rem .2rem 0;font-variant-numeric:tabular-nums;font-weight:600}.ci-single{margin:.5rem 0 0;padding:.5rem .75rem;border-left:3px solid #1d4ed8;background:#eff6ff;font-size:.9rem}.ci-note{margin:.5rem 0 0;color:#475569;font-size:.85rem}.clt{border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.1rem;margin:2rem 0;background:var(--surface);box-shadow:var(--shadow)}.clt-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:.5rem}.clt-controls label{display:flex;align-items:center;gap:.4rem;font-size:.9rem}.clt-slider input{width:12rem}.clt-controls button{padding:.4rem .95rem;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--brand-ink);cursor:pointer;font-weight:600;transition:background var(--fast),border-color var(--fast)}.clt-description{margin:0 0 .75rem;color:#475569;font-size:.9rem}.clt-figure{margin:0 0 .75rem}.clt-figure figcaption{font-size:.85rem;color:#334155;margin-bottom:.2rem}.clt-svg{width:100%;height:auto;background:#f8fafc;border-radius:4px}.clt-axis{font-size:11px;fill:#475569}.clt-readout{width:100%;border-collapse:collapse;font-size:.85rem}.clt-readout th{text-align:left;font-weight:500;color:#475569;padding:.2rem .5rem .2rem 0}.clt-readout td{padding:.2rem 1.25rem .2rem 0;font-variant-numeric:tabular-nums;font-weight:600}.correlation{border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.1rem;margin:2rem 0;background:var(--surface);box-shadow:var(--shadow)}.correlation-svg{width:100%;max-width:420px;height:auto;display:block;margin:0 auto;border-radius:4px}.correlation-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-top:.75rem}.correlation-controls label{display:flex;align-items:center;gap:.4rem;font-size:.9rem}.correlation-slider input[type=range]{width:11rem}.correlation-slider span{font-variant-numeric:tabular-nums;min-width:3rem}.correlation-controls button{padding:.4rem .95rem;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--brand-ink);cursor:pointer;font-weight:600;transition:background var(--fast),border-color var(--fast)}.correlation-controls button:disabled{border-color:#cbd5e1;color:#94a3b8;cursor:default}.correlation-readout{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:.5rem}.correlation-readout th{text-align:left;font-weight:500;color:#475569;padding:.2rem .5rem .2rem 0}.correlation-readout td{padding:.2rem 1.25rem .2rem 0;font-variant-numeric:tabular-nums;font-weight:600}.correlation-score{margin:.5rem 0 0;color:#475569;font-size:.85rem}.correlation-verdict{margin:.35rem 0 0;padding:.5rem .75rem;border-left:3px solid #b45309;background:#fffbeb;font-size:.88rem}.distribution{border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.1rem;margin:2rem 0;background:var(--surface);box-shadow:var(--shadow)}.distribution-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:.5rem}.distribution-controls label{display:flex;align-items:center;gap:.4rem;font-size:.9rem}.distribution-slider input[type=range]{width:9rem}.distribution-slider span{font-variant-numeric:tabular-nums;min-width:2.5rem}.distribution-svg{width:100%;height:auto;background:#f8fafc;border-radius:4px}.distribution-axis{font-size:11px;fill:#475569}.distribution-readout{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:.5rem}.distribution-readout th{text-align:left;font-weight:500;color:#475569;padding:.2rem .5rem .2rem 0}.distribution-readout td{padding:.2rem 1.25rem .2rem 0;font-variant-numeric:tabular-nums;font-weight:600}.distribution-note{margin:.5rem 0 0;color:#475569;font-size:.85rem}.leastsquares{border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.1rem;margin:2rem 0;background:var(--surface);box-shadow:var(--shadow)}.leastsquares-svg{width:100%;max-width:420px;height:auto;display:block;margin:0 auto;border-radius:4px;touch-action:none}.leastsquares-svg circle{cursor:grab}.leastsquares-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-top:.75rem}.leastsquares-controls label{display:flex;align-items:center;gap:.4rem;font-size:.9rem}.leastsquares-slider input[type=range]{width:10rem}.leastsquares-slider span{font-variant-numeric:tabular-nums;min-width:3rem}.leastsquares-readout{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:.5rem}.leastsquares-readout th{text-align:left;font-weight:500;color:#475569;padding:.2rem .5rem .2rem 0}.leastsquares-readout td{padding:.2rem 1.25rem .2rem 0;font-variant-numeric:tabular-nums;font-weight:600}.leastsquares-equation{margin:.5rem 0 0;font-size:.9rem}.leastsquares-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem}.leastsquares-actions button{padding:.4rem .95rem;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--brand-ink);cursor:pointer;font-weight:600;transition:background var(--fast),border-color var(--fast)}.leastsquares-note{margin:.75rem 0 0;color:#475569;font-size:.85rem}.pvalue{border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.1rem;margin:2rem 0;background:var(--surface);box-shadow:var(--shadow)}.pvalue-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:.5rem}.pvalue-controls label{display:flex;align-items:center;gap:.4rem;font-size:.9rem}.pvalue-slider input[type=range]{width:9rem}.pvalue-slider span{font-variant-numeric:tabular-nums;min-width:2.5rem}.pvalue-controls button{padding:.4rem .95rem;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--brand-ink);cursor:pointer;font-weight:600;transition:background var(--fast),border-color var(--fast)}.pvalue-caption{margin:0 0 .5rem;color:#475569;font-size:.85rem}.pvalue-svg{width:100%;height:auto;background:#f8fafc;border-radius:4px}.pvalue-axis{font-size:11px;fill:#475569}.pvalue-readout{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:.5rem}.pvalue-readout th{text-align:left;font-weight:500;color:#475569;padding:.2rem .5rem .2rem 0}.pvalue-readout td{padding:.2rem 1.25rem .2rem 0;font-variant-numeric:tabular-nums;font-weight:600}.pvalue-verdict{margin:.5rem 0 0;font-weight:600}.pvalue-caveat{margin:.35rem 0 0;padding:.5rem .75rem;border-left:3px solid #b91c1c;background:#fef2f2;font-size:.88rem}.page.page-workspace{max-width:96rem}.workspace-intro{max-width:52rem;margin-top:-.25rem;color:var(--ink-2)}.workspace-limits{max-width:52rem;margin:.5rem 0 0;font-size:.9rem;color:var(--ink-2)}.workspace-limits summary{cursor:pointer;font-weight:650;color:var(--ink)}.workspace-limits ul{margin:.4rem 0 0;padding-left:1.2rem}.workspace-limits li{margin:.2rem 0}.ide{container:ide / inline-size;--ide-head: #eef1f6;--ide-edge: #d5dbe5;--ide-echo: #1d4ed8;margin:1rem 0 0}.ide-columns{display:flex;height:clamp(30rem,calc(100vh - 15rem),64rem);height:clamp(30rem,calc(100dvh - 15rem),64rem);padding:4px;box-sizing:border-box;border:1px solid var(--ide-edge);border-radius:var(--radius);background:#e3e8ef;box-shadow:var(--shadow-sm)}.ide-column{display:flex;flex-direction:column;min-width:0;min-height:0;flex:1 1 0}.ide-column:first-child{flex:0 0 auto}.ide-pane{display:flex;flex-direction:column;min-height:0;min-width:0;flex:1 1 0;overflow:hidden;background:var(--surface);border:1px solid var(--ide-edge);border-radius:6px}.ide-column>.ide-pane:first-child{flex:0 0 auto}.ide-splitter{flex:none;position:relative;touch-action:none;outline:none}.ide-splitter-vertical{width:6px;cursor:col-resize}.ide-splitter-horizontal{height:6px;cursor:row-resize}.ide-splitter:after{content:"";position:absolute;border-radius:2px;background:transparent;transition:background var(--fast)}.ide-splitter-vertical:after{top:30%;right:1px;bottom:30%;left:1px}.ide-splitter-horizontal:after{top:1px;right:30%;bottom:1px;left:30%}.ide-splitter:hover:after,.ide-splitter:focus-visible:after{background:var(--brand)}body.ide-dragging{user-select:none;-webkit-user-select:none}body.ide-dragging-x{cursor:col-resize}body.ide-dragging-y{cursor:row-resize}.ide-tabs{flex:none;display:flex;align-items:flex-end;gap:.5rem;min-height:2rem;padding:.2rem .4rem 0;background:var(--ide-head);border-bottom:1px solid var(--ide-edge)}.ide-tablist{display:flex;gap:2px;min-width:0;overflow-x:auto;scrollbar-width:none}.ide-tab{display:inline-flex;align-items:center;border:1px solid transparent;border-bottom:0;border-radius:5px 5px 0 0}.ide-tab button{border:0;background:none;padding:.3rem .65rem;font-size:.82rem;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap}.ide-tab:hover button{color:var(--ink)}.ide-tab.active{background:var(--surface);border-color:var(--ide-edge);margin-bottom:-1px}.ide-tab.active button{color:var(--ink)}.ide-tab .ide-tab-close{padding:.2rem .45rem .2rem 0;font-size:1rem;line-height:1}.ide-tab-title{padding:.3rem .65rem;font-size:.82rem;font-weight:650;color:var(--ink);background:var(--surface);border:1px solid var(--ide-edge);border-bottom:0;border-radius:5px 5px 0 0;margin-bottom:-1px}.ide-tabs-aside{margin-left:auto;display:inline-flex;align-items:center;gap:.5rem;padding-bottom:.25rem;font-size:.78rem}.ide-busy{color:#92400e;font-weight:600}.ide-busy:before{content:"";display:inline-block;width:.5rem;height:.5rem;margin-right:.35rem;border-radius:50%;background:var(--warn);animation:pulse 1.2s ease-in-out infinite}.ide-panel{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.ide-toolbar{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;padding:.3rem .45rem;border-bottom:1px solid var(--line);background:var(--surface);margin:0}.ide-toolbar button,.ide-tab-action,.ide-file-actions button{padding:.2rem .6rem;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface);color:var(--ink-2);font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--fast),border-color var(--fast)}.ide-toolbar button:hover:not(:disabled),.ide-tab-action:hover,.ide-file-actions button:hover{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-ink)}.ide-toolbar button:disabled{opacity:.45;cursor:not-allowed}.ide-toolbar button.danger{border-color:var(--danger);color:var(--danger)}.ide-pane-source .ide-toolbar button:first-child:not(:disabled){border-color:var(--brand);color:var(--brand-ink)}.ide-pane-source .ide-toolbar button:first-child:before{content:"▶ ";font-size:.65rem}.ide-toolbar input[type=search]{flex:1 1 8rem;min-width:0;padding:.2rem .5rem;border:1px solid var(--line-strong);border-radius:5px;font:inherit;font-size:.82rem}.ide-toolbar-label{font-size:.8rem;font-weight:600;color:var(--ink-2);padding:0 .25rem}.ide-toolbar-note{flex:1 1 12rem;min-width:0;font-size:.76rem;color:var(--muted);line-height:1.35}.ide-toolbar-spacer{flex:1}.ide-scroll{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain}.ide-empty{margin:0;padding:.75rem;color:var(--muted);font-size:.85rem}.ide-error{flex:none;margin:.4rem;padding:.4rem .6rem;border-radius:6px;background:var(--danger-soft);border:1px solid #fca5a5;color:#7f1d1d;font-size:.82rem}.ide-link{border:0;background:none;padding:0;font:inherit;color:var(--brand-2);cursor:pointer;text-align:left}.ide-link:hover:not(:disabled){text-decoration:underline}.ide-link[aria-current]{color:var(--ink);font-weight:650;cursor:default}.ide-editor{flex:1 1 auto;min-height:0;display:flex}.ide-editor .r-editor{flex:1;min-width:0;border:0;border-radius:0;background:var(--surface)}.ide-editor .r-editor:focus-within{box-shadow:none}.ide-editor .r-editor,.ide-editor .cm-editor{height:100%}.ide-editor .r-editor .cm-editor{max-height:none}.ide-editor .cm-scroller{overflow:auto}.ide-console{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding:.4rem .6rem .6rem;font-family:var(--mono);font-size:.84rem;line-height:1.45;cursor:text}.ide-console-line{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink)}.ide-console-echo{color:var(--ide-echo)}.ide-console-error{color:#b91c1c}.ide-console-warning,.ide-console-stderr{color:#b45309}.ide-console-message{color:var(--muted)}.ide-console-prompt{display:flex;gap:.5ch;color:var(--ide-echo)}.ide-console-prompt textarea{flex:1;min-width:0;padding:0;border:0;outline:none;resize:none;background:transparent;overflow:hidden;font:inherit;color:var(--ide-echo);line-height:inherit}.ide-objects,.ide-files{width:100%;border-collapse:collapse;font-size:.82rem}.ide-objects th{text-align:left;padding:.3rem .6rem;font-size:.74rem;font-weight:700;letter-spacing:.04em;color:var(--ink-2);background:var(--surface-2);border-bottom:1px solid var(--line)}.ide-objects td,.ide-files td{padding:.25rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}.ide-object-name{font-family:var(--mono);font-weight:600;white-space:nowrap;width:1%}.ide-object-value{font-family:var(--mono);color:var(--ink-2);overflow-wrap:anywhere}.ide-history{list-style:none;margin:0;padding:0;font-family:var(--mono);font-size:.82rem}.ide-history button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;padding:.25rem .6rem;font:inherit;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;cursor:pointer}.ide-history button:hover{background:var(--surface-2)}.ide-history button[aria-pressed=true]{background:var(--brand-soft);color:var(--brand-ink)}.ide-breadcrumbs{flex:none;padding:.3rem .6rem;font-size:.82rem;border-bottom:1px solid var(--line);background:var(--surface-2)}.ide-files th{text-align:left;padding:.25rem .6rem;font-size:.74rem;color:var(--muted);border-bottom:1px solid var(--line);font-weight:650}.ide-file-name{overflow-wrap:anywhere}.ide-file-size{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}.ide-file-actions{text-align:right;white-space:nowrap}.ide-file-actions button{margin-left:.25rem;padding:.1rem .5rem}.ide-plot-area{display:flex;align-items:flex-start;justify-content:center;background:var(--surface)}.ide-plot:not([hidden]){display:block;max-width:100%;height:auto;margin:.5rem}.ide-help-text{margin:0;padding:.6rem .75rem;font-family:var(--mono);font-size:.8rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.ide-help-home{padding:.6rem .75rem;font-size:.88rem}.ide-help-home p{margin:0 0 .5rem}.ide-help-home ul{display:flex;flex-wrap:wrap;gap:.35rem 1rem;margin:0;padding:0;list-style:none;font-family:var(--mono)}.ide-packages-note{margin:0;padding:.45rem .6rem;font-size:.78rem;line-height:1.4;color:var(--ink-2);background:var(--surface-2);border-bottom:1px solid var(--line)}.ide-packages-note code{font-size:.76rem}.ide-install{flex:none;display:flex;flex-wrap:wrap;align-items:flex-end;gap:.4rem;padding:.45rem .6rem;border-bottom:1px solid var(--line);background:var(--brand-soft)}.ide-install label{display:flex;flex-direction:column;gap:.2rem;flex:1 1 12rem;min-width:0;font-size:.78rem;font-weight:600;color:var(--ink-2)}.ide-install input{padding:.25rem .5rem;border:1px solid var(--line-strong);border-radius:5px;font-family:var(--mono);font-size:.82rem}.ide-install-actions{display:flex;gap:.3rem}.ide-install button,.ide-package-version button{padding:.2rem .6rem;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface);color:var(--ink-2);font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap}.ide-install button[type=submit],.ide-package-version button{border-color:var(--brand);color:var(--brand-ink)}.ide-install button:disabled,.ide-package-version button:disabled{opacity:.45;cursor:not-allowed}.ide-packages td{vertical-align:middle}.ide-package-load{width:1%;padding-right:0!important}.ide-package-load input{width:1rem;height:1rem;margin:0;accent-color:var(--brand);cursor:pointer}.ide-package-name{font-family:var(--mono);font-weight:600;white-space:nowrap;width:1%}.ide-package-what{color:var(--ink-2)}.ide-package-version{text-align:right;white-space:nowrap;width:1%;color:var(--muted);font-variant-numeric:tabular-nums}.ide-package-version button{padding:.1rem .5rem}.ide-unavailable{margin:.5rem .6rem .75rem;font-size:.82rem}.ide-unavailable summary{cursor:pointer;font-weight:650;color:var(--ink-2)}.ide-unavailable p{margin:.4rem 0;color:var(--muted)}.ide-unavailable dl{margin:0}.ide-unavailable dl div{display:grid;grid-template-columns:6.5rem 1fr;gap:.5rem;padding:.25rem 0;border-bottom:1px solid var(--line)}.ide-unavailable dt{font-family:var(--mono);font-weight:600}.ide-unavailable dd{margin:0;color:var(--ink-2)}@container ide (max-width: 420px){.ide-package-what{display:none}.ide-package-name{width:auto}.ide-unavailable dl div{grid-template-columns:1fr;gap:.1rem}}.ide-data{border-collapse:collapse;font-size:.8rem;font-variant-numeric:tabular-nums}.ide-data th,.ide-data td{padding:.2rem .6rem;border:1px solid var(--line);white-space:nowrap;text-align:left}.ide-data thead th{position:sticky;top:0;background:var(--ide-head);font-weight:650}.ide-data tbody th{color:var(--muted);font-weight:500;background:var(--surface-2)}.ide-na{color:var(--muted);font-style:italic}.ide-switcher{display:none}@container ide (max-width: 640px){.ide-switcher{display:flex;gap:2px;padding:3px;margin-bottom:.5rem;border-radius:10px;background:#e3e8ef}.ide-switcher button{flex:1 1 auto;min-width:0;min-height:40px;padding:.3rem .35rem;border:0;border-radius:8px;background:transparent;font-size:.82rem;font-weight:650;color:var(--ink-2);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ide-switcher button[aria-pressed=true]{background:var(--surface);color:var(--brand-ink);box-shadow:var(--shadow-sm)}.ide-columns{display:block;height:auto;padding:0;border:0;background:none;box-shadow:none}.ide-column{display:block}.ide-splitter,.ide-pane{display:none}.ide-pane.focused{display:flex;height:clamp(24rem,calc(100vh - 14rem),44rem);height:clamp(24rem,calc(100dvh - 14rem),44rem)}}@container ide (max-width: 350px){.ide-switcher button{padding:.3rem .15rem;font-size:.74rem}}@media(pointer:coarse){.ide-toolbar button,.ide-file-actions button,.ide-tab button,.ide-install button,.ide-package-version button{min-height:40px}.ide-package-load input{width:1.4rem;height:1.4rem}.ide-install input,.ide-console-prompt textarea,.ide-toolbar input[type=search]{font-size:16px}}.model-chooser{max-width:52rem}.mc-intro h1{margin-bottom:.5rem}.mc-intro p{margin:0 0 1.75rem;color:var(--ink-2);max-width:44rem}.mc-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:clamp(1rem,.6rem + 1.6vw,1.75rem);margin-bottom:1.5rem}.mc-panel>h2{margin:.15rem 0 .9rem;font-size:1.35rem}.mc-kicker{margin:0;font-size:.72rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase;color:var(--brand)}.mc-matcher{background:linear-gradient(180deg,var(--brand-soft),var(--surface) 11rem);border-color:#dfe3ff}.mc-matcher textarea{display:block;width:100%;box-sizing:border-box;resize:vertical;min-height:4.2rem;font:inherit;font-size:1.05rem;line-height:1.5;color:var(--ink);padding:.8rem 1rem;border:1.5px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);transition:border-color var(--fast),box-shadow var(--fast)}.mc-matcher textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px #4f46e526}.mc-matcher textarea::placeholder{color:#94a3b8}.mc-examples{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr));gap:.45rem;margin:.9rem 0 0}.mc-examples-label{grid-column:1 / -1;font-size:.85rem;font-weight:650;color:var(--muted)}.mc-examples button{font-size:.85rem;line-height:1.4;text-align:left;color:var(--ink-2);cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.45rem .75rem;transition:border-color var(--fast),background var(--fast),color var(--fast)}.mc-examples button:hover{border-color:var(--brand);color:var(--brand-ink)}.mc-examples button[aria-pressed=true]{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-ink)}.mc-note{display:flex;gap:.45rem;align-items:flex-start;margin:.9rem 0 0;font-size:.85rem;line-height:1.45;color:var(--muted)}.mc-note svg{flex:none;margin-top:.1rem}.mc-cues{margin-top:1.2rem;padding-top:1rem;border-top:1px dashed var(--line-strong)}.mc-cues-title{margin:0 0 .5rem;font-size:.85rem;color:var(--muted)}.mc-cues ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem}.mc-chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;cursor:pointer;padding:.3rem .75rem;border-radius:999px;border:1px dashed var(--line-strong);background:var(--surface);color:var(--muted);transition:background var(--fast),border-color var(--fast),color var(--fast)}.mc-chip:before{content:"+";font-weight:800}.mc-chip[aria-pressed=true]{border:1px solid #99f6e4;background:var(--teal-soft);color:#115e59}.mc-chip[aria-pressed=true]:before{content:"✓"}.mc-chip[aria-pressed=true]:hover{text-decoration:line-through}.mc-chip[aria-pressed=false]:hover{border-color:var(--brand);color:var(--brand-ink)}.mc-add{margin-top:.6rem;font-size:.85rem}.mc-add summary{cursor:pointer;color:var(--brand-2);font-weight:600;width:fit-content}.mc-add ul{margin-top:.5rem}.mc-suggestions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-top:1.2rem}.mc-suggestion{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.35rem;animation:pop-in var(--medium) var(--ease) both}.mc-suggestion.best{grid-column:1 / -1;padding:1.2rem 1.3rem;border:1.5px solid #a5b4fc;box-shadow:var(--shadow);background:linear-gradient(135deg,#f5f7ff,var(--surface) 60%)}.mc-suggestion h3{margin:0;font-size:1.05rem}.mc-suggestion.best h3{font-size:1.35rem}.mc-suggestion:not(.best) .mc-kicker{color:var(--muted)}.mc-suggestion-when{margin:0;color:var(--ink-2)}.mc-why{list-style:none;padding:0;margin:.2rem 0 0;display:flex;flex-direction:column;gap:.15rem;font-size:.9rem;color:var(--ink-2)}.mc-why li{display:flex;gap:.45rem}.mc-why li:before{content:"✓";color:var(--success);font-weight:800}.mc-suggestion-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:auto;padding-top:.6rem}.mc-suggestion:not(.best) .button-secondary{min-height:38px;padding:.4rem .9rem;font-size:.88rem}.mc-link-button{background:none;border:0;padding:.3rem 0;cursor:pointer;color:var(--brand-2);font-weight:600;font-size:.9rem;text-decoration:underline;text-underline-offset:3px}.mc-link-button:hover{color:var(--brand)}.mc-suggestion-detail:not([hidden]){margin-top:.6rem;padding-top:.9rem;border-top:1px solid var(--line)}.mc-empty{margin:1.2rem 0 0;padding:.9rem 1rem;border-radius:var(--radius);background:var(--warn-soft);color:#78350f;font-size:.95rem}.model-chooser .model-chooser-trail{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin:0 0 1.2rem;padding:.8rem .9rem;border-radius:var(--radius);background:var(--surface-2)}.model-chooser .model-chooser-trail ol{flex:1 1 20rem;margin:0}.mc-trail-hint{flex-basis:100%;margin:0;font-size:.88rem;color:var(--brand-ink);font-weight:600}.model-chooser .model-chooser-trail ol{gap:.35rem .3rem;align-items:center}.model-chooser .model-chooser-trail ol li{background:none;padding:0;display:flex;align-items:center;gap:.3rem}.model-chooser .model-chooser-trail li:not(:last-child):after{margin:0;color:var(--muted)}.model-chooser-trail ol button{font-size:.84rem;line-height:1.35;text-align:left;cursor:pointer;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.25rem .7rem;transition:border-color var(--fast),color var(--fast)}.model-chooser-trail ol button:hover{border-color:var(--brand);color:var(--brand-ink)}.model-chooser .model-chooser-trail-actions{margin:0 0 0 auto}.mc-step,.model-chooser .model-chooser-answer{animation:mc-enter var(--medium) var(--ease) both}@keyframes mc-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.model-chooser .model-chooser-step{margin:0}.model-chooser-current{margin:.2rem 0 .4rem;font-size:1.3rem}.model-chooser-current:focus{outline:none}.model-chooser .model-chooser-help{margin:0 0 1rem;font-size:.92rem;line-height:1.55;max-width:44rem}.model-chooser .model-chooser-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:.75rem;max-width:none;margin:1rem 0 0}.model-chooser .model-chooser-options li{display:flex}.model-chooser .model-chooser-options button{display:flex;flex-direction:column;gap:.35rem;width:100%;padding:1rem 2.4rem 1rem 1.1rem;position:relative;border-radius:var(--radius);border:1.5px solid var(--line)}.model-chooser .model-chooser-options button:after{content:"›";position:absolute;right:1rem;top:50%;transform:translateY(-50%);font-size:1.6rem;line-height:1;color:var(--line-strong);transition:color var(--fast),transform var(--fast) var(--ease)}.model-chooser .model-chooser-options button:hover{transform:translateY(-2px);border-color:var(--brand)}.model-chooser .model-chooser-options button:hover:after{color:var(--brand);transform:translate(3px,-50%)}.model-chooser .model-chooser-options button:focus-visible{outline:3px solid rgba(79,70,229,.45);outline-offset:2px;border-color:var(--brand)}.model-chooser .model-chooser-options button.flagged{border-color:var(--brand);background:linear-gradient(135deg,var(--brand-soft),var(--surface) 70%)}.mc-option-label{font-weight:700;font-size:1.02rem;line-height:1.35;color:var(--ink)}.mc-option-more{display:flex;flex-direction:column;gap:.35rem}.mc-option-example{font-size:.88rem;line-height:1.45;color:var(--ink-2);font-style:italic}.mc-option-example:before{content:"e.g. ";font-style:normal;font-weight:650;color:var(--muted)}.mc-option-tech{font-size:.72rem;font-weight:650;letter-spacing:.02em;color:var(--muted)}.mc-flag{align-self:flex-start;order:-1;font-size:.7rem;font-weight:750;color:#fff;background:var(--brand);border-radius:999px;padding:.05rem .55rem}.model-chooser .model-chooser-answer{max-width:none;margin-top:.4rem}.model-chooser .model-chooser-legend{margin:1.4rem 0 0;font-size:.85rem;line-height:1.55;max-width:none}.model-chooser .model-index{margin-top:2.5rem}@media(max-width:640px){.mc-suggestions{grid-template-columns:minmax(0,1fr)}.mc-matcher textarea{min-height:5.6rem}.mc-examples button:nth-of-type(n+5){display:none}.mc-suggestion-actions .button-primary{width:100%;font-size:.95rem;padding-inline:.8rem}.model-chooser .model-chooser-trail-actions{margin-left:0}}.ss-tag{align-self:flex-start;font-size:.72rem;font-weight:750;color:#065f46;background:#d1fae5;border-radius:999px;padding:.05rem .55rem}.ss-option-note{font-size:.9rem;line-height:1.45;color:var(--ink-2)}.ss-input-step,.ss-input-step .button-primary{margin-top:.4rem}.ss-input-step .button-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.ss-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,14rem),1fr));gap:.9rem 1.2rem;margin:.9rem 0}.ss-fields-wide{grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr))}.ss-field{display:flex;flex-direction:column;gap:.3rem;margin-top:.8rem}.ss-fields .ss-field{margin-top:0}.ss-field span{font-weight:650;color:var(--ink)}.ss-field input{font:inherit;padding:.5rem .7rem;border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);max-width:14rem}.ss-field small{color:var(--muted);font-size:.85rem;line-height:1.4}.ss-meaning{color:var(--ink-2);background:var(--surface-2);border-radius:var(--radius-sm);padding:.55rem .8rem}.ss-result{border-color:#c7d2fe}.ss-result h4{margin:1.4rem 0 .5rem;font-size:1.05rem}.ss-headline{display:flex;flex-wrap:wrap;gap:.6rem 2rem;margin:.3rem 0 .8rem}.ss-headline p{margin:0;color:var(--ink-2);font-weight:600}.ss-big{display:block;font-size:2.6rem;font-weight:800;line-height:1.1;color:var(--brand-ink)}.ss-error{color:#7f1d1d;background:var(--danger-soft);border-radius:var(--radius-sm);padding:.55rem .8rem}.ss-note{color:var(--muted);font-size:.92rem}.ss-report{background:var(--surface-2);border-left:4px solid var(--brand);padding:.7rem .9rem;border-radius:var(--radius-sm);line-height:1.55}.ss-table{border-collapse:collapse;margin:.3rem 0;font-size:.95rem}.ss-table th,.ss-table td{text-align:left;padding:.35rem 1.2rem .35rem 0;border-bottom:1px solid var(--line)}.ss-table td:last-child,.ss-table th:last-child{text-align:right;padding-right:0}.ss-curve{display:block;width:100%;max-width:36rem;height:auto;margin:1rem 0 .2rem}.ss-curve text{font-size:12px;fill:var(--muted)}.ss-curve .ss-axis-label{fill:var(--ink-2);font-weight:600}.ss-grid{stroke:var(--line)}.ss-target{stroke:var(--warn);stroke-dasharray:5 4;stroke-width:1.5}.ss-line{fill:none;stroke:var(--brand);stroke-width:2.5}.ss-mark{fill:var(--brand);stroke:#fff;stroke-width:2}.ss-result pre{background:#0f172a;color:#e2e8f0;padding:.7rem .9rem;border-radius:var(--radius-sm);overflow-x:auto;margin:0;max-width:100%;box-sizing:border-box}.ss-result .model-chooser-code{min-width:0}.ss-warning{color:var(--ink-2);background:#fef3c7;border-radius:var(--radius-sm);padding:.55rem .8rem}.avatar-studio{max-width:60rem}.avatar-studio-head{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.avatar-studio-head h1{margin:0 0 .35rem}.avatar-studio-head .avatar{border-radius:50%;box-shadow:var(--shadow);flex:none}.avatar-balance{margin:0;font-size:1.15rem;color:var(--ink-2)}.avatar-balance strong{font-size:1.6rem;color:var(--brand-ink);font-variant-numeric:tabular-nums}.avatar-balance-detail{margin:.35rem 0 0;font-size:.88rem;color:var(--muted);max-width:32rem}.avatar-tabs{display:flex;gap:.35rem;margin-bottom:1.25rem;border-bottom:1px solid var(--line)}.avatar-tab{border:0;background:transparent;padding:.6rem 1rem;font:inherit;font-weight:650;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-1px;cursor:pointer}.avatar-tab:hover{color:var(--ink)}.avatar-tab.active{color:var(--brand-ink);border-bottom-color:var(--brand)}.avatar-designer{display:grid;gap:1rem}.avatar-slot{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:.75rem 1rem 1rem;margin:0;min-width:0}.avatar-slot legend{font-weight:700;padding:0 .35rem}.avatar-options{display:flex;flex-wrap:wrap;gap:.5rem}.avatar-option{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.4rem .4rem .35rem;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;font:inherit;font-size:.78rem;color:var(--ink-2);width:5.25rem;transition:border-color var(--fast),transform var(--fast) var(--ease)}.avatar-option .avatar{border-radius:50%}.avatar-option:hover{border-color:var(--line-strong);transform:translateY(-1px)}.avatar-option.selected{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink);font-weight:650}.avatar-swatch{width:2.25rem;height:2.25rem;border-radius:50%;border:3px solid var(--surface);cursor:pointer;box-shadow:0 0 0 1px var(--line-strong);transition:box-shadow var(--fast),transform var(--fast) var(--ease)}.avatar-swatch:hover{transform:scale(1.08)}.avatar-swatch.selected{box-shadow:0 0 0 3px var(--brand)}.avatar-more{margin-top:.6rem;border:0;background:transparent;padding:0;color:var(--brand-2);font:inherit;font-size:.85rem;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.avatar-shop-section h2{font-size:1.1rem;margin:1.25rem 0 .6rem}.avatar-shop-section:first-child h2{margin-top:0}.avatar-shop-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.75rem}.avatar-card{display:flex;flex-direction:column;align-items:center;gap:.45rem;padding:.85rem .6rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);text-align:center}.avatar-card .avatar{border-radius:50%}.avatar-card.owned{background:var(--success-soft);border-color:#bbf7d0}.avatar-card .button{padding:.4rem .9rem;font-size:.88rem}.avatar-card .button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.avatar-short{font-size:.75rem;color:var(--muted)}.avatar-note{margin-top:1.5rem;font-size:.85rem;color:var(--muted)}@media(prefers-reduced-motion:reduce){.avatar-option,.avatar-swatch{transition:none}.avatar-option:hover,.avatar-swatch:hover{transform:none}}:root{color-scheme:light;--font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--mono: ui-monospace, SFMono-Regular, "JetBrains Mono", Menlo, Consolas, monospace;--bg: #f6f7fb;--surface: #ffffff;--surface-2: #f1f3f9;--ink: #0f172a;--ink-2: #334155;--muted: #56627a;--line: #e4e7ef;--line-strong: #cbd2df;--brand: #4f46e5;--brand-2: #2563eb;--brand-soft: #eef0ff;--brand-ink: #3730a3;--gradient: linear-gradient(135deg, #6366f1 0%, #2563eb 55%, #0ea5e9 100%);--success: #16a34a;--success-soft: #dcfce7;--warn: #d97706;--warn-soft: #fef3c7;--danger: #dc2626;--danger-soft: #fee2e2;--teal: #0d9488;--teal-soft: #ccfbf1;--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .05);--shadow: 0 4px 14px rgba(15, 23, 42, .07), 0 1px 3px rgba(15, 23, 42, .05);--shadow-lg: 0 18px 40px rgba(30, 41, 99, .16);--ease: cubic-bezier(.2, .8, .2, 1);--fast: .15s;--medium: .26s}[hidden]{display:none!important}*{-webkit-tap-highlight-color:transparent}html{scroll-padding-top:5rem}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{line-height:1.2;letter-spacing:-.02em;color:var(--ink)}h1{font-size:clamp(1.75rem,1.2rem + 2vw,2.4rem);font-weight:800}h2{font-size:1.45rem;font-weight:750}a{color:var(--brand-2);text-underline-offset:2px}a:hover{color:var(--brand)}:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:6px}.skip-link{position:absolute;left:.75rem;top:-4rem;z-index:100;padding:.6rem 1rem;border-radius:var(--radius-sm);background:var(--brand);color:#fff;font-weight:650;text-decoration:none}.skip-link:focus{top:.75rem}.app-main:focus{outline:none}::selection{background:#c7d2fe}:root{--text-cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke-linecap='round'%3E%3Cpath d='M8 4h8M8 20h8M12 4v16' stroke='%23000' stroke-width='4'/%3E%3Cpath d='M8 4h8M8 20h8M12 4v16' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E") 12 12, text}:where(p,li,h1,h2,h3,h4,h5,h6,td,th,pre,code,blockquote,figcaption,dd,dt,textarea,input:not([type=radio],[type=checkbox],[type=range],[type=button],[type=submit],[type=file],[type=color])){cursor:var(--text-cursor)}:where(a,button,summary,select,[role=button]) :where(*){cursor:inherit}.r-editor .cm-editor .cm-content{cursor:var(--text-cursor)}:root{--text-cursor-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke-linecap='round'%3E%3Cpath d='M8 4h8M8 20h8M12 4v16' stroke='%2394a3b8' stroke-width='4'/%3E%3Cpath d='M8 4h8M8 20h8M12 4v16' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E") 12 12, text}:is(.output-pane,.exercise-solution,.lesson pre:has(>code[class^=language-]),.model-chooser-answer pre,.ss-result pre,.toast),:is(.output-pane,.exercise-solution,.lesson pre:has(>code[class^=language-]),.model-chooser-answer pre,.ss-result pre,.toast) :where(*:not(a,button,button *)){cursor:var(--text-cursor-light)}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}button{font:inherit}.button-primary,.button-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.6rem 1.15rem;border-radius:999px;font-weight:650;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:transform var(--fast) var(--ease),box-shadow var(--fast) var(--ease),background var(--fast)}.button-primary{background:var(--gradient);color:#fff;box-shadow:0 6px 18px #4f46e559}.button-primary:hover{color:#fff;transform:translateY(-1px);box-shadow:0 10px 24px #4f46e56b}.button-primary:active{transform:translateY(0) scale(.98)}.button-secondary{background:var(--surface);color:var(--brand-ink);border-color:var(--line-strong)}.button-secondary:hover{background:var(--brand-soft);border-color:var(--brand)}.app{display:grid;grid-template-columns:17.5rem minmax(0,1fr);min-height:100vh}.app-main{padding:2rem 2.5rem 5rem;min-width:0;width:100%;box-sizing:border-box;overflow-wrap:break-word}.page{max-width:48rem;margin:0 auto}.page-home{max-width:64rem}.page-lesson{max-width:66rem}.sidebar{border-right:1px solid var(--line);padding:1.1rem .85rem 2rem;background:var(--surface);position:sticky;top:0;height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box;scrollbar-width:thin}.sidebar ul{list-style:none;margin:0;padding:0}.sidebar-home,.topbar-home{display:inline-flex;align-items:center;gap:.55rem;font-weight:800;font-size:1.15rem;letter-spacing:-.02em;color:var(--ink);text-decoration:none}.sidebar-home{padding:.25rem .5rem;margin-bottom:.9rem}.sidebar-home:hover,.topbar-home:hover{color:var(--brand)}.logo{flex:none;filter:drop-shadow(0 2px 4px rgba(79,70,229,.3))}.sidebar-stats{display:flex;gap:.4rem;flex-wrap:wrap;padding:0 .35rem .9rem;margin-bottom:.4rem;border-bottom:1px solid var(--line)}.sidebar-stats>span{font-size:.78rem;font-weight:650;color:var(--ink-2);background:var(--surface-2);padding:.2rem .6rem;border-radius:999px;font-variant-numeric:tabular-nums}.sidebar-avatar{display:flex;align-items:center;gap:.6rem;margin:0 .35rem .7rem;padding:.4rem .5rem;border-radius:var(--radius-sm);text-decoration:none;color:var(--ink-2);font-size:.85rem;font-weight:650;transition:background var(--fast)}.sidebar-avatar .avatar{border-radius:50%;flex:none}.sidebar-avatar:hover,.sidebar-avatar.active{background:var(--brand-soft);color:var(--brand-ink)}.sidebar-avatar small{display:block;font-weight:500;color:var(--muted);font-size:.75rem}.sidebar-part{margin-top:1rem}.sidebar-part-title{margin:0 .5rem .35rem;font-size:.7rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.sidebar-module h2{margin:0;font-size:inherit;letter-spacing:0}.sidebar-module-toggle{width:100%;display:flex;align-items:center;gap:.6rem;padding:.45rem .5rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink);cursor:pointer;text-align:left;font-size:.9rem;font-weight:600;transition:background var(--fast)}.sidebar-module-toggle:hover{background:var(--surface-2)}.sidebar-module-number{flex:none;display:grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:8px;background:var(--surface-2);color:var(--ink-2);font-size:.75rem;font-weight:750;transition:background var(--medium) var(--ease),color var(--medium)}.sidebar-module.open .sidebar-module-number{background:var(--brand-soft);color:var(--brand-ink)}.sidebar-module.done .sidebar-module-number{background:var(--success-soft);color:var(--success)}.sidebar-module-title{flex:1;min-width:0;line-height:1.3}.sidebar-module-count{font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}.sidebar-chevron{flex:none;color:var(--muted);transition:transform var(--medium) var(--ease)}.sidebar-module.open .sidebar-chevron{transform:rotate(90deg)}.sidebar-module-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--medium) var(--ease)}.sidebar-module.open .sidebar-module-panel{grid-template-rows:1fr}.sidebar-module-panel>ul{overflow:hidden;min-height:0;padding-left:1.2rem;margin-left:.8rem;border-left:2px solid var(--line)}.sidebar-module.open .sidebar-module-panel>ul{margin-bottom:.35rem}.sidebar-lesson{position:relative;display:flex;align-items:center;gap:.55rem;padding:.35rem .55rem;margin:1px 0;border-radius:var(--radius-sm);color:var(--ink-2);text-decoration:none;font-size:.88rem;line-height:1.35;transition:background var(--fast),color var(--fast),transform var(--fast) var(--ease)}.sidebar-lesson:hover{background:var(--surface-2);color:var(--ink);transform:translate(2px)}.sidebar-lesson.active{background:var(--brand-soft);color:var(--brand-ink);font-weight:650}.sidebar-lesson-dot{flex:none;width:.6rem;height:.6rem;border-radius:50%;border:2px solid var(--line-strong);box-sizing:border-box;transition:all var(--medium) var(--ease)}.sidebar-lesson.started .sidebar-lesson-dot{border-color:var(--warn);background:linear-gradient(90deg,var(--warn) 50%,transparent 50%)}.sidebar-lesson.complete .sidebar-lesson-dot{border-color:var(--success);background:var(--success)}.sidebar-lesson.active .sidebar-lesson-dot{box-shadow:0 0 0 3px #4f46e533}.sidebar-lesson-icon{flex:none;width:1.1rem;text-align:center}.r-status{display:flex;align-items:center;gap:.6rem;font-size:.85rem;padding:.45rem .6rem .45rem .9rem;border-radius:999px}.r-status.ready,.r-status.busy{box-shadow:var(--shadow);border:1px solid var(--line);background:var(--surface);animation:pill-in var(--medium) var(--ease) both}.r-status.ready:before,.r-status.busy:before{content:"";width:.55rem;height:.55rem;border-radius:50%;flex:none}.r-status.ready{color:#166534}.r-status.ready:before{background:var(--success);box-shadow:0 0 0 3px var(--success-soft)}.r-status.busy{color:#92400e}.r-status.busy:before{background:var(--warn);animation:pulse 1.2s ease-in-out infinite}.r-status.error{display:block;max-width:48rem;margin:0 auto 1.25rem;border-radius:var(--radius);padding:.9rem 1.1rem;background:var(--danger-soft);color:#991b1b;border:1px solid #fecaca}.r-status.error p{margin:0 0 .5rem}.r-status-detail{font-family:var(--mono);font-size:.75rem;word-break:break-all}.r-status button{margin-left:auto;padding:.25rem .75rem;border-radius:999px;border:1px solid currentColor;background:transparent;color:inherit;cursor:pointer;font-size:.8rem;font-weight:600}.r-status button:hover{background:#fff9}@keyframes pill-in{0%{opacity:0;transform:translateY(12px) scale(.96)}}@keyframes pulse{50%{opacity:.35;transform:scale(.8)}}.hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:center;padding:2.25rem 2.5rem;border-radius:var(--radius-lg);color:#fff;background:var(--gradient);box-shadow:var(--shadow-lg)}.hero:after{content:"";position:absolute;inset:auto -10% -60% auto;width:26rem;height:26rem;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.22),transparent 65%);pointer-events:none;animation:drift 14s ease-in-out infinite alternate}@keyframes drift{to{transform:translate(-3rem,-2rem) scale(1.1)}}.hero h1{color:#fff;margin:.25rem 0 .5rem;font-size:clamp(2.2rem,1.6rem + 3vw,3.2rem)}.hero-eyebrow{display:inline-flex;align-items:center;gap:.45rem;margin:0;padding:.25rem .7rem .25rem .35rem;border-radius:999px;background:#ffffff29;font-size:.8rem;font-weight:650}.home-tagline{margin:0 0 .35rem;font-size:1.15rem;font-weight:600;color:#fff}.hero-sub{margin:0 0 1.4rem;max-width:34rem;color:#ffffffd9;font-size:.95rem}.hero .button-primary{background:#fff;color:var(--brand-ink);box-shadow:0 8px 24px #0f172a40}.hero .button-primary:hover{color:var(--brand)}.hero-ring{position:relative;z-index:1}.progress-ring{width:9.5rem;height:9.5rem}.progress-ring circle{fill:none;stroke-width:11}.progress-ring-track{stroke:#ffffff38}.progress-ring-value{stroke:#fff;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset 1s var(--ease);animation:ring-in 1.1s var(--ease) both}@keyframes ring-in{0%{stroke-dashoffset:327}}.progress-ring-number{fill:#fff;font-size:26px;font-weight:800}.progress-ring-label{fill:#fffc;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.stat-tiles{list-style:none;padding:0;margin:1.25rem 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}.stat-tile{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:.7rem;align-items:center;padding:.9rem 1rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:transform var(--fast) var(--ease),box-shadow var(--fast)}.stat-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.stat-emoji{grid-row:span 2;font-size:1.6rem}.stat-tile strong{font-size:1.3rem;line-height:1.1;font-variant-numeric:tabular-nums}.stat-tile span:last-child{font-size:.8rem;color:var(--muted)}.home-part{margin-top:2.75rem}.home-part-header{margin-bottom:1rem}.home-part-header h2{margin:.1rem 0 .2rem}.home-part-header p{margin:0;color:var(--muted)}.home-part-header .home-part-eyebrow{font-size:.75rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase;color:var(--brand)}.module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1rem}.module-card{padding:1.1rem 1.15rem .9rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:transform var(--medium) var(--ease),box-shadow var(--medium),border-color var(--medium)}.module-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#c7d2fe}.module-card.done{border-color:#bbf7d0}.module-card-head{display:flex;align-items:center;gap:.7rem}.module-card-head h3{margin:0;font-size:1.05rem}.module-card-number{flex:none;display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:10px;background:var(--brand-soft);color:var(--brand-ink);font-weight:800}.module-card.done .module-card-number{background:var(--success-soft);color:var(--success)}.meter{height:6px;margin:.85rem 0 .6rem;border-radius:999px;background:var(--surface-2);overflow:hidden}.meter>span{display:block;height:100%;border-radius:inherit;background:var(--gradient);transition:width .8s var(--ease)}.module-card.done .meter>span{background:var(--success)}.module-card ol{list-style:none;margin:0;padding:0}.lesson-link a{display:flex;align-items:center;gap:.55rem;padding:.3rem 0;color:var(--ink-2);text-decoration:none;font-size:.92rem}.lesson-link a:before{content:"";flex:none;width:.55rem;height:.55rem;border-radius:50%;border:2px solid var(--line-strong)}.lesson-link.started a:before{border-color:var(--warn);background:linear-gradient(90deg,var(--warn) 50%,transparent 50%)}.lesson-link.complete a:before{border-color:var(--success);background:var(--success)}.lesson-link a:hover{color:var(--brand)}.home-save{margin-top:3rem;padding:1.4rem 1.5rem;border-radius:var(--radius);background:var(--surface);border:1px dashed var(--line-strong)}.home-save h2{margin-top:0;font-size:1.2rem}.home-save p{color:var(--ink-2)}.home-save-actions{display:flex;flex-wrap:wrap;gap:.6rem}.home-import{position:relative;overflow:hidden}.home-import input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;font-size:0}.reading-progress{position:fixed;z-index:45;inset:0 0 auto 0;height:3px;pointer-events:none}.reading-progress>span{display:block;height:100%;background:var(--gradient);transform-origin:0 50%;transition:transform 80ms linear}.lesson-layout{display:grid;grid-template-columns:minmax(0,48rem) 14rem;gap:3rem;justify-content:center;align-items:start}.lesson-header{margin-bottom:1.5rem}.lesson-crumb{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:0 0 .6rem;font-size:.82rem;font-weight:650}.lesson-crumb-module{color:var(--brand)}.lesson-crumb-step{color:var(--muted);padding:.1rem .55rem;border-radius:999px;background:var(--surface-2)}.lesson h1{margin:0}.lesson-chips{margin:.8rem 0 0}.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .7rem;border-radius:999px;font-size:.8rem;font-weight:650;background:var(--brand-soft);color:var(--brand-ink);transition:background var(--medium),color var(--medium)}.chip-done{background:var(--success-soft);color:#166534}.lesson{font-size:1.04rem;color:var(--ink-2)}.lesson h2{margin:2.75rem 0 .9rem;padding-top:.25rem;font-size:1.5rem}.lesson h2:before{content:"";display:block;width:2.5rem;height:4px;margin-bottom:.75rem;border-radius:999px;background:var(--gradient)}.lesson p,.lesson li{max-width:42rem}.lesson strong{color:var(--ink)}.lesson blockquote{margin:1.5rem 0;padding:.9rem 1.2rem;border-radius:var(--radius);border:1px solid #dbe2ff;color:var(--ink-2);background:linear-gradient(180deg,#f5f7ff,#eef1ff)}.lesson blockquote p{margin:.3rem 0}.lesson code{background:var(--surface-2);color:#3b3f9e;padding:.1rem .35rem;border-radius:5px;font-family:var(--mono);font-size:.86em;overflow-wrap:anywhere}.lesson table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:1.25rem 0}.lesson th,.lesson td{padding:.45rem .9rem .45rem 0;text-align:left;border-bottom:1px solid var(--line)}.lesson th{color:var(--ink);font-size:.9rem}.lesson pre{max-width:100%;overflow-x:auto}.lesson pre code{background:none;color:inherit;padding:0;border-radius:0;font-size:inherit;overflow-wrap:normal}.lesson pre:has(>code[class^=language-]){background:#0f172a;color:#e2e8f0;padding:.8rem 1rem;border-radius:var(--radius-sm);font-family:var(--mono);font-size:.86rem;line-height:1.5}.lesson img,.lesson video{max-width:100%;height:auto}.section-guide{position:sticky;top:2rem;padding:1rem .5rem 1rem 1rem;border-left:2px solid var(--line);font-size:.86rem}.section-guide-title{display:flex;justify-content:space-between;margin:0 0 .6rem;font-size:.72rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.section-guide-title span{letter-spacing:0;text-transform:none;font-variant-numeric:tabular-nums}.section-guide ol{list-style:none;margin:0;padding:0}.section-guide li{position:relative}.section-guide li:before{content:"";position:absolute;left:-1.33rem;top:.55rem;width:.55rem;height:.55rem;border-radius:50%;background:var(--bg);border:2px solid var(--line-strong);transition:all var(--medium) var(--ease)}.section-guide li.passed:before{background:var(--success);border-color:var(--success)}.section-guide li.current:before{background:var(--brand);border-color:var(--brand);box-shadow:0 0 0 4px #4f46e52e}.section-guide a{display:block;padding:.3rem 0;color:var(--muted);text-decoration:none;line-height:1.35;transition:color var(--fast)}.section-guide li.current a{color:var(--ink);font-weight:650}.section-guide a:hover{color:var(--brand)}.lesson-finish{max-width:48rem;margin:3.5rem auto 0;padding:1.4rem;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}.page-lesson .lesson-finish{margin-left:max(0px,calc((100% - 65rem)/2))}.lesson-finish.complete{border-color:#bbf7d0;background:linear-gradient(180deg,#f0fdf4,var(--surface) 70%)}.lesson-finish-status{display:flex;gap:.9rem;align-items:center}.lesson-finish-icon{font-size:2rem}.lesson-finish.complete .lesson-finish-icon{animation:bounce-in .7s var(--ease) both}.lesson-finish-title{margin:0;font-weight:800;font-size:1.15rem;color:var(--ink)}.lesson-finish-detail{margin:.1rem 0 0;color:var(--muted);font-size:.92rem}.lesson-nav{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;margin-top:1.2rem}.lesson-nav a{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.1rem}.lesson-nav small{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.8}.lesson-prev{padding:.55rem .2rem;color:var(--ink-2);text-decoration:none;font-weight:600}.lesson-nav .lesson-next{margin-left:auto;align-items:flex-end;border-radius:var(--radius);padding:.7rem 1.2rem;text-align:right}@keyframes bounce-in{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.2);opacity:1}to{transform:scale(1)}}.reveal{opacity:0;transform:translateY(14px);transition:opacity .5s var(--ease),transform .5s var(--ease)}.reveal.revealed{opacity:1;transform:none}.model-chooser-options{list-style:none;padding:0;display:flex;flex-direction:column;gap:.6rem;max-width:36rem}.model-chooser-options button{width:100%;text-align:left;padding:.85rem 1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);cursor:pointer;font-size:1rem;color:var(--ink);transition:transform var(--fast) var(--ease),border-color var(--fast),box-shadow var(--fast)}.model-chooser-options button:hover{border-color:var(--brand);box-shadow:var(--shadow);transform:translate(4px)}.model-chooser h2:focus{outline:none}.model-chooser-trail{color:var(--muted);font-size:.88rem;margin:1rem 0 .4rem}.model-chooser-trail ol li{background:var(--surface-2);border-radius:999px;padding:.2rem .65rem;color:var(--ink-2)}.model-chooser-trail-actions{display:flex;gap:.5rem;margin-top:.5rem}.model-chooser-trail-actions button{border:1px solid var(--line-strong);background:var(--surface);color:var(--brand-ink);border-radius:999px;padding:.3rem .85rem;font-size:.85rem;font-weight:600;cursor:pointer}.model-chooser-trail-actions button:hover{background:var(--brand-soft);border-color:var(--brand)}.model-chooser-step{margin:1.4rem 0 0;font-size:.72rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase;color:var(--brand)}.model-chooser-step+h2{margin-top:.2rem}.model-index{margin-top:3rem;border-top:1px solid var(--line);padding-top:1.5rem}.model-index-head h2{margin:0 0 .25rem}.model-index-head p{margin:0;color:var(--muted)}.model-index-tools{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin:1rem 0 .5rem}.model-index-search{flex:1 1 16rem;display:flex;align-items:center;gap:.5rem;padding:0 .8rem;min-height:2.6rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--muted)}.model-index-search:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.model-index-search input{flex:1;min-width:0;border:0;outline:none;background:transparent;font:inherit;color:var(--ink)}.model-index-filters{display:flex;flex-wrap:wrap;gap:.35rem}.model-index-filters button{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);border-radius:999px;padding:.35rem .8rem;font-size:.85rem;font-weight:600;cursor:pointer}.model-index-filters button[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:#fff}.model-index-empty{color:var(--muted);padding:1.5rem 0}.model-index-section{margin-top:1.6rem}.model-index-section h3{display:flex;align-items:center;gap:.5rem;margin:0;font-size:1.05rem}.model-index-count{font-size:.72rem;font-weight:750;color:var(--brand-ink);background:var(--brand-soft);border-radius:999px;padding:.1rem .5rem}.model-index-blurb{margin:.15rem 0 .7rem;color:var(--muted);font-size:.9rem}.model-cards{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15.5rem),1fr));gap:.7rem}.model-card{position:relative;display:flex;flex-direction:column;gap:.35rem;padding:.85rem .95rem .8rem;border:1px solid var(--line);border-left:4px solid var(--card-accent, var(--line-strong));border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);transition:transform var(--fast) var(--ease),box-shadow var(--fast),border-color var(--fast)}.model-card.taught{--card-accent: #22c55e}.model-card.beyond{--card-accent: #f59e0b}.model-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--brand);border-left-color:var(--card-accent)}.model-card button{all:unset;cursor:pointer;font-weight:700;color:var(--ink);line-height:1.3}.model-card button:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit}.model-card button:focus-visible:after{outline:3px solid var(--brand);outline-offset:2px}.model-card-when{color:var(--muted);font-size:.85rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.model-card-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:auto;padding-top:.2rem}.model-card-tags .model-badge{font-size:.7rem;padding:.1rem .5rem}.model-chooser-answer{border:1px solid #99f6e4;border-radius:var(--radius-lg);padding:1.2rem 1.3rem;max-width:36rem;background:linear-gradient(180deg,#f0fdfa,var(--surface));box-shadow:var(--shadow);animation:pop-in var(--medium) var(--ease) both}.model-chooser-answer pre{background:#0f172a;color:#e2e8f0;padding:.7rem .9rem;border-radius:var(--radius-sm);overflow-x:auto;margin:0}.model-chooser-answer code,.model-chooser-help code{overflow-wrap:anywhere}.model-chooser-code{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem;margin:.9rem 0}.model-chooser-code pre{align-self:stretch}.model-chooser-code button{font-size:.85rem;padding:.35rem .8rem}.model-chooser-help,.model-chooser-legend{color:var(--muted);max-width:36rem}.model-chooser-trail ol{list-style:none;padding:0;margin:0 0 .3rem;display:flex;flex-wrap:wrap;gap:.2rem .4rem}.model-chooser-trail li:not(:last-child):after{content:"›";margin-left:.4rem}.model-chooser-badges{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:0 0 .6rem}.model-badge{display:inline-block;line-height:1.4;font-size:.75rem;font-weight:700;padding:.2rem .6rem;border-radius:999px;border:1px solid transparent}.model-badge.taught{background:#dcfce7;color:#166534;border-color:#86efac}.model-badge.beyond{background:#fef3c7;color:#92400e;border-color:#fcd34d}.model-badge.runs-here{background:var(--brand-soft);color:var(--brand-ink);border-color:#c7d2fe}.model-badge.rstudio{background:var(--surface-2);color:var(--ink-2);border-color:var(--line-strong)}.link-button{border:none;background:none;color:var(--brand-2);text-decoration:underline;cursor:pointer;padding:0;font-size:inherit}@keyframes pop-in{0%{opacity:0;transform:translateY(8px) scale(.98)}}.toaster{position:fixed;z-index:60;top:max(1rem,env(safe-area-inset-top));right:max(1rem,env(safe-area-inset-right));display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:.75rem;min-width:15rem;max-width:22rem;padding:.7rem .6rem .7rem .9rem;border-radius:var(--radius);background:#0f172a;color:#fff;box-shadow:var(--shadow-lg);animation:toast-in .38s var(--ease) both}.toast-milestone{background:var(--gradient)}.toast-icon{font-size:1.4rem}.toast-body{display:flex;flex-direction:column;line-height:1.3;flex:1}.toast-body span{font-size:.85rem;opacity:.85}.toast-close{border:0;background:transparent;color:inherit;opacity:.6;font-size:1.2rem;cursor:pointer;padding:.2rem .4rem}.toast-close:hover{opacity:1}@keyframes toast-in{0%{opacity:0;transform:translate(24px) scale(.95)}}.confetti-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;pointer-events:none;overflow:hidden}.confetti-piece{position:fixed;width:8px;height:12px;border-radius:2px;margin:-6px 0 0 -4px;animation:confetti-fly 1s cubic-bezier(.1,.7,.3,1) both}@keyframes confetti-fly{to{transform:translate(var(--dx),calc(var(--dy) + 120px)) rotate(var(--spin));opacity:0}}.topbar,.nav-backdrop{display:none}@media(max-width:1280px){.lesson-layout{grid-template-columns:minmax(0,1fr);gap:0}.section-guide{display:none}.page-lesson{max-width:48rem}.page-lesson .lesson-finish{margin-left:auto}}@media(max-width:900px){.app{grid-template-columns:minmax(0,1fr)}.topbar{display:flex;align-items:center;gap:.75rem;position:sticky;top:0;z-index:40;padding:.5rem max(.75rem,env(safe-area-inset-right)) .5rem max(.75rem,env(safe-area-inset-left));padding-top:max(.5rem,env(safe-area-inset-top));background:#ffffffd1;backdrop-filter:saturate(1.6) blur(12px);-webkit-backdrop-filter:saturate(1.6) blur(12px);border-bottom:1px solid var(--line)}.topbar-menu{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:0 .95rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--ink);font-size:.95rem;font-weight:600;cursor:pointer;transition:background var(--fast),border-color var(--fast)}.topbar-menu[aria-expanded=true]{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-ink)}.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:30;width:min(20rem,86vw);height:auto;padding-top:calc(4.5rem + env(safe-area-inset-top));padding-left:max(.85rem,env(safe-area-inset-left));padding-bottom:max(1.5rem,env(safe-area-inset-bottom));box-shadow:var(--shadow-lg);transform:translate(-105%);visibility:hidden;transition:transform var(--medium) var(--ease),visibility 0s linear var(--medium)}.sidebar .sidebar-home{display:none}.sidebar.open{transform:none;visibility:visible;transition:transform var(--medium) var(--ease)}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:25;background:#0f172a61;animation:fade-in var(--medium) both}body.nav-open{overflow:hidden}.app-main{padding:1.25rem max(1rem,env(safe-area-inset-right)) 4.5rem max(1rem,env(safe-area-inset-left));padding-bottom:max(4.5rem,env(safe-area-inset-bottom))}.stat-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.toaster{left:max(1rem,env(safe-area-inset-left));align-items:center}}@keyframes fade-in{0%{opacity:0}}@media(max-width:900px)and (max-height:500px){.topbar{position:static}}@media(max-width:600px){.lesson h2{font-size:1.3rem;margin-top:2.25rem}.lesson{font-size:1rem}.hero{grid-template-columns:1fr;padding:1.6rem 1.35rem;gap:1.2rem}.hero-ring{display:none}.hero .button-primary{width:100%;box-sizing:border-box;text-align:center}.stat-tile{padding:.75rem .8rem;column-gap:.55rem}.stat-emoji{font-size:1.3rem}.stat-tile strong{font-size:1.1rem}.lesson-finish{padding:1.1rem}.lesson-nav .lesson-next{width:100%;box-sizing:border-box}.ci-controls label,.clt-controls label,.correlation-controls label,.distribution-controls label,.leastsquares-controls label,.pvalue-controls label{flex:1 1 100%}.ci-controls input[type=range],.clt-controls input[type=range],.correlation-controls input[type=range],.distribution-controls input[type=range],.leastsquares-controls input[type=range],.pvalue-controls input[type=range]{flex:1 1 0;width:auto;min-width:5rem}.ci,.clt,.correlation,.distribution,.leastsquares,.pvalue{padding:.85rem}.clt-axis,.distribution-axis,.pvalue-axis{font-size:20px}.ci-readout,.clt-readout,.correlation-readout,.distribution-readout,.leastsquares-readout,.pvalue-readout,.ci-readout tbody,.clt-readout tbody,.correlation-readout tbody,.distribution-readout tbody,.leastsquares-readout tbody,.pvalue-readout tbody{display:block}.ci-readout tr,.clt-readout tr,.correlation-readout tr,.distribution-readout tr,.leastsquares-readout tr,.pvalue-readout tr{display:grid;grid-template-columns:minmax(0,1fr) auto}.ci-readout td,.clt-readout td,.correlation-readout td,.distribution-readout td,.leastsquares-readout td,.pvalue-readout td{padding-right:0;text-align:right}}@media(pointer:coarse){.sidebar-lesson{padding:.6rem .55rem}.sidebar-module-toggle,.code-block-actions button,.exercise-actions button,.choice-options button,.model-chooser-options button,.r-status button,.ci-controls button,.clt-controls button,.correlation-controls button,.pvalue-controls button,.leastsquares-actions button{min-height:44px}.r-editor .cm-content,select,input,textarea{font-size:16px}input[type=range]{min-height:32px}.sidebar-lesson:hover,.module-card:hover,.stat-tile:hover{transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}@media print{.topbar,.sidebar,.nav-backdrop,.r-status,.corner-stack,.lesson-nav,.reading-progress,.section-guide,.toaster{display:none!important}.app{display:block}body{background:#fff}.app-main{max-width:none;padding:0}.hero{color:var(--ink);background:none;box-shadow:none}.code-block,.exercise,.choice-block{break-inside:avoid}}.ci input[type=range],.clt input[type=range],.correlation input[type=range],.distribution input[type=range],.leastsquares input[type=range],.pvalue input[type=range]{accent-color:var(--brand)}.ci button:hover:not(:disabled),.clt button:hover:not(:disabled),.correlation button:hover:not(:disabled),.leastsquares button:hover:not(:disabled),.pvalue button:hover:not(:disabled){background:var(--brand-soft);border-color:var(--brand)}.ci select,.clt select,.pvalue select{padding:.25rem .4rem;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface)}
