@font-face{font-family:Textbook Roman;src:url(/fonts/KaTeX_Main-Regular.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Textbook Roman;src:url(/fonts/KaTeX_Main-Italic.woff2) format("woff2");font-style:italic;font-weight:400;font-display:swap}@font-face{font-family:Textbook Roman;src:url(/fonts/KaTeX_Main-Bold.woff2) format("woff2");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Textbook Roman;src:url(/fonts/KaTeX_Main-BoldItalic.woff2) format("woff2");font-style:italic;font-weight:700;font-display:swap}:root{--paper:#fff;--surface:#fafafa;--ink:#252525;--muted:#737373;--line:#e5e5e5;--accent:#333;--accent-soft:#efefef;--ui-font:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--textbook-font:"Textbook Roman","Times New Roman",serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--ui-font);font-size:12px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:28px;padding:4px 8px;border:1px solid transparent;border-radius:4px;background:transparent;cursor:pointer;font-size:12px;font-weight:400;line-height:1.5;transition:background-color .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease}button:hover{background:var(--accent-soft)}button:disabled{opacity:.4;cursor:default}[role=button]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.icon{display:inline-block;flex-shrink:0;width:15px;height:15px;margin:0}.skip-link{position:fixed;top:-100px;left:16px;z-index:20;padding:8px 12px;background:var(--ink);color:white}.skip-link:focus{top:8px}.app-header{position:sticky;top:0;z-index:10;background:var(--paper);display:flex;align-items:center;min-height:44px;padding:0 16px;border-bottom:1px solid var(--line)}.brand{font-family:var(--textbook-font);font-size:20px;font-weight:400;letter-spacing:-.5px;color:inherit;text-decoration:none}.app-header nav>button{color:var(--muted)}.app-header nav>button:focus-visible,.app-header nav>button:hover{color:var(--ink)}.app-header nav{margin-left:auto;display:flex;align-items:center;gap:6px}.primary{background:var(--ink);color:white;border-color:var(--ink);padding:5px 12px}.primary:hover{background:#444}.notice{padding:6px 16px;background:var(--surface);display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line)}.notice>div{display:flex;flex-shrink:0;gap:4px}.generation-panel{border-bottom:1px solid var(--line);padding:12px 24px}.generation-progress{max-width:776px;margin:0 auto}.generation-progress+.generation-progress{margin-top:12px}.generation-heading{display:flex;align-items:center;gap:8px;min-width:0;margin-bottom:6px}.generation-heading strong{font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.generation-heading>span:last-child{margin-left:auto;color:var(--muted);font-size:11px;white-space:nowrap}.generation-spinner{width:12px;height:12px;border:1.5px solid var(--line);border-top-color:var(--ink);border-radius:50%;flex-shrink:0;animation:generation-spin 1s linear infinite}.generation-progress progress{display:block;width:100%;height:3px;accent-color:var(--ink);border:0}.generation-progress progress::-webkit-progress-bar{background:var(--line);border-radius:2px}.generation-progress progress::-webkit-progress-value{background:var(--ink);border-radius:2px;-webkit-transition:width .2s;transition:width .2s}.generation-progress progress::-moz-progress-bar{background:var(--ink)}.generation-progress small{display:block;margin-top:5px;color:var(--muted);font-size:10px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@keyframes generation-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.generation-spinner{animation:none}}.workspace{display:grid;grid-template-columns:200px 176px minmax(0,1fr);min-height:calc(100vh - 44px)}.contents,.courses{border-right:1px solid var(--line);padding:10px 8px;display:flex;flex-direction:column;align-self:start;position:sticky;top:44px;height:calc(100vh - 44px);max-height:100vh;overflow-y:auto;scrollbar-width:thin}.contents,.courses{background:var(--surface)}.contents{background:var(--paper)}.new-course{justify-content:flex-start;width:100%;padding:6px 8px;margin-bottom:8px}.course-list{display:flex;flex-direction:column;gap:2px;overflow-y:auto;scrollbar-width:thin}.course-row{position:relative;display:flex;align-items:center;min-width:0;border-radius:4px}.course-row.active,.course-row:hover,.sample-course.active{background:var(--accent-soft)}.course-select{flex:1 1;justify-content:flex-start;text-align:left;min-width:0;padding:6px 8px;gap:4px}.course-select>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-select:disabled{opacity:1;color:var(--muted)}.course-select small{margin-left:auto;white-space:nowrap;font-size:10px}.course-actions{position:absolute;right:2px;display:flex;opacity:0;pointer-events:none;background:var(--surface);border-radius:3px;transition:opacity .12s ease}.course-row:focus-within .course-actions,.course-row:hover .course-actions{opacity:1;pointer-events:auto;background:var(--accent-soft)}.course-row:focus-within .course-select,.course-row:hover .course-select{padding-right:52px}.course-row:has(.course-action:nth-child(3)):focus-within .course-select,.course-row:has(.course-action:nth-child(3)):hover .course-select{padding-right:74px}.course-action{padding:3px;min-height:26px}.course-action .icon{width:13px;height:13px}.sample-course{justify-content:flex-start;padding:6px 8px;text-align:left}.chapter-list{display:flex;flex-direction:column;gap:2px;margin-top:0}.chapter-list button{width:100%;justify-content:flex-start;text-align:left;gap:8px;padding:6px 8px;min-height:30px;font-size:12px}.chapter-number{font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;align-self:start;padding-top:1px}.chapter-list button,.chapter-number{color:var(--muted)}.chapter-list button.active{color:var(--ink);background:#f5f5f5}.section-list{margin:10px 8px 0;padding-top:10px;border-top:1px solid var(--line)}.section-list button{display:block;text-align:left;width:100%;min-height:26px;padding:4px 0 4px 10px;border-radius:0;border-left:1px solid var(--line);font-size:11px;color:var(--muted)}.section-list button.active{color:var(--ink);border-left-color:var(--ink)}.reader-main{min-width:0}.textbook-table-scroll{max-width:100%;overflow-x:auto}.spread{max-width:920px;margin:0 auto}article{min-width:0;padding:18px 24px 24px}h1,h2,h3{font-family:inherit;font-weight:500;line-height:1.35}h1{font-size:22px;margin:0 0 8px}h2{font-size:15px;margin:0 0 6px}h3{font-size:14px;margin:8px 0 4px}p{margin:6px 0}.intro{color:var(--muted);padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--line)}.intro p{margin:0}article p{font-size:14px;line-height:1.55;overflow-wrap:break-word}article section{scroll-margin-top:60px;margin-bottom:14px}.section-number{margin-right:8px;font-size:11px;color:var(--muted);font-weight:400}blockquote{margin:8px 0;padding:8px 12px;border-left:2px solid #ccc;background:var(--surface)}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.5}figure{margin:0;padding:12px;border:1px solid var(--line);border-radius:4px;background:var(--surface)}figcaption{font-size:14px;font-weight:500;line-height:1.4;margin:0 0 8px}figcaption small{display:inline-block;font-size:10px;font-weight:400;color:var(--muted);margin-right:8px}.figure-equation{font-size:12px;padding:1px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}figure>svg{display:block;width:100%;margin:10px 0}.plot-labels{font-family:var(--ui-font);font-size:10px;fill:var(--muted)}figure label{display:block;font-size:11px;margin:12px 0}figure output{float:right;min-width:40px;text-align:center;border:1px solid var(--line);border-radius:3px;background:var(--paper);font-size:10px;line-height:18px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}input[type=range]{width:100%;display:block;accent-color:var(--ink);margin:10px 0 0;height:4px;cursor:pointer}.presets{display:flex;gap:4px;padding-top:4px}.presets button{flex:1 1;min-height:25px;padding:3px;border:1px solid var(--line);border-radius:3px;font-size:10px;background:var(--paper)}.presets button:hover,.presets button[aria-pressed=true]{border-color:#aaa;background:var(--accent-soft)}.figure-note{color:var(--ink);margin-top:10px}.figure-note,.figure-note p{font-size:12px}.oscillator-result{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:6px;background:var(--accent-soft);border-radius:3px;padding:6px 8px;font-size:10px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.assumptions{font-size:10px;line-height:1.5;color:var(--muted);margin:8px 0 0}figure>svg.concept{max-width:365px;margin:12px auto}.concept g[role=button]{cursor:pointer}.concept rect{fill:var(--paper);stroke:#d5d5d5;rx:3}.concept .selected rect{fill:var(--accent-soft);stroke:#888}.node-label{font-size:12px;line-height:1.4;height:34px;display:flex;align-items:center;overflow:hidden}.katex-display{overflow-x:auto;overflow-y:hidden;margin:8px 0!important;padding:3px 0}.katex{font-size:1em!important}.figure-equation .katex-display{margin:5px 0!important}footer{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);margin-top:18px;padding-top:8px}footer button{padding:4px 0;font-size:11px}.exercises{border-top:1px solid var(--line);padding-top:12px;margin-top:14px}.upload-dialog{padding:0;width:min(420px,calc(100vw - 32px));max-height:calc(100vh - 32px);border:1px solid #ddd;border-radius:8px;background:var(--paper);color:var(--ink);box-shadow:0 12px 48px #0002}.navigation-dialog::backdrop,.upload-dialog::backdrop{background:#0003;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.upload-panel{display:flex;flex-direction:column;gap:14px;padding:20px}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-heading h2{margin:0;font-size:15px}.dialog-heading button{padding:3px}.mobile-navigation{display:none}.navigation-dialog{width:min(340px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:12px;margin:12px auto 12px 12px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);box-shadow:0 12px 48px #0002}.navigation-dialog .dialog-heading{padding:0 4px 10px;margin-bottom:6px;border-bottom:1px solid var(--line)}.navigation-dialog .course-list{max-height:none}.navigation-dialog .course-actions{opacity:1;pointer-events:auto}.navigation-dialog .course-select{padding-right:74px}.upload-panel progress{width:100%;height:4px;accent-color:var(--ink)}body:has(dialog[open]){overflow:hidden}.upload-panel label{display:flex;flex-direction:column;gap:5px;font-size:12px}.upload-panel input{width:100%;min-height:34px;padding:6px 8px;background:var(--paper);border:1px solid #d5d5d5;border-radius:4px;font-size:12px}.upload-panel input::file-selector-button{border:0;border-radius:3px;background:var(--accent-soft);padding:3px 8px;margin-right:10px;cursor:pointer}.upload-panel small{font-size:11px;color:var(--muted)}.dialog-footer{display:flex;justify-content:flex-end;gap:6px;padding-top:6px}@media (max-width:1180px){.workspace{grid-template-columns:176px 160px minmax(0,1fr)}article{padding:16px 20px}}@media (max-width:880px){figure>svg{max-width:560px;margin-left:auto;margin-right:auto}}@media (max-width:960px){.app-header{padding:0 8px;gap:6px}.mobile-navigation{display:inline-flex;min-width:32px;min-height:32px}.workspace{display:block}.contents,.courses{display:none}}@media (max-width:640px){.generation-panel{padding:10px 16px}article{padding:16px}.notice{padding:6px 12px}}@media (hover:none){.course-actions{opacity:1;pointer-events:auto}.course-select{padding-right:74px}}@media print{.app-header,.contents,.courses,.generation-panel,.navigation-dialog,.notice,.skip-link,.upload-dialog,footer{display:none}.spread,.workspace{display:block}body,figure{background:white}article{padding:12px}figure,section{page-break-inside:avoid;break-inside:avoid}}.error-page{max-width:480px;padding:40px 24px;margin:40px auto}.error-page a{color:inherit;display:inline-block;margin-left:12px}.inline-figure{margin:16px 0 20px}.inline-figure>figure{margin:0}figure.inline-figure{background:white;padding:14px 16px}.figure-caption{margin-top:10px;padding-top:8px;border-top:1px solid var(--line);color:#666}article .figure-caption p,article .figure-key,article .tree-result{font-size:12px;line-height:1.5}.figure-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px 20px}.figure-controls label{margin:10px 0 0}.curve-values{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 24px;font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.curve-values span{display:flex;align-items:center;gap:6px}.curve-values svg{width:24px;height:6px}.curve-values strong,.payoff-result strong{font-weight:500}.plot-grid path{fill:none;stroke:#ededed}.axis-label,.plot-grid text{fill:#737373;font-size:11px;font-family:var(--ui-font)}.figure-reset{color:var(--muted);padding:3px 0;margin-top:6px}.matrix-scroll{overflow-x:auto}.payoff-matrix{width:100%;border-collapse:collapse;font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.payoff-matrix caption{text-align:left;margin:0 0 10px;color:var(--muted);font-size:11px}.payoff-matrix th{font-weight:400}.payoff-matrix td,.payoff-matrix th{border:1px solid var(--line);padding:3px;text-align:center}.payoff-matrix tbody th,.payoff-matrix thead th{background:var(--surface)}.payoff-matrix button{width:100%;min-width:56px;font-size:12px}.payoff-matrix button[aria-pressed=true]{background:#e5e5e5}.best-payoff{text-decoration:underline;text-underline-offset:3px}.nash-mark{color:var(--muted);padding-left:6px}.strategy-controls{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:16px}.strategy-controls fieldset{border:0;padding:0;margin:0;min-width:0}.strategy-controls legend{font-size:12px;font-weight:500;padding:0}.strategy-controls label{margin:10px 0}.strategy-value{display:block;color:var(--muted);font-size:11px}.payoff-result{display:flex;flex-wrap:wrap;gap:8px 24px;border-top:1px solid var(--line);padding-top:10px;font-size:12px}.payoff-result strong{margin-left:8px}.figure-key{color:var(--muted)}.game-tree{overflow-x:auto;padding:12px 0}.game-tree ul{display:flex;justify-content:center;list-style:none;padding:0;margin:0}.game-tree li{display:flex;flex-direction:column;align-items:center;padding:0 8px;position:relative}.game-tree li>ul{position:relative;padding-top:20px}.game-tree li>ul:before{content:"";position:absolute;top:0;left:50%;width:1px;height:10px;background:#bbb}.game-tree li>ul>li:before{content:"";position:absolute;top:-10px;left:0;width:100%;border-top:1px solid #bbb}.game-tree li>ul>li:after{content:"";position:absolute;top:-10px;left:50%;height:10px;border-left:1px solid #bbb}.game-tree li>ul>li:first-child:before{left:50%;width:50%}.game-tree li>ul>li:last-child:before{width:50%}.game-tree li>ul>li:only-child:before{display:none}.tree-node{border:1px solid var(--line);padding:6px 10px;min-width:105px;max-width:180px;text-align:center;border-radius:3px;font-size:12px;background:var(--surface)}.tree-node small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.tree-node.on-path{border-color:#777;background:#ededed}.tree-move{font-size:11px;border:1px solid var(--line)}.tree-move.chosen,.tree-toolbar button[aria-pressed=true]{background:#e5e5e5;border-color:#888}.tree-toolbar{display:flex;gap:8px}.tree-result{min-height:18px;color:var(--muted)}.concept-network rect{stroke:#ddd;fill:white}.concept-network .selected rect{stroke:#555;fill:#f3f3f3}.network-label{display:flex;align-items:center;justify-content:center;height:100%;font-size:11px;text-align:center;line-height:1.3;overflow-wrap:anywhere}.concept-detail{border-top:1px solid var(--line);padding-top:6px}.concept-detail li,.concept-detail p{font-size:12px}.concept-detail ul{padding:0;list-style:none;margin:8px 0 0}.concept-detail li{margin:4px 0}.concept-detail li span{color:var(--muted)}article li{font-size:14px}article table:not(.payoff-matrix){border-collapse:collapse;margin:12px 0;font-size:13px;max-width:100%}article table:not(.payoff-matrix) td,article table:not(.payoff-matrix) th{border:1px solid var(--line);padding:5px 10px;text-align:left}article table:not(.payoff-matrix) th{font-weight:500;background:var(--surface)}article .katex-display{overflow-x:auto;overflow-y:hidden;padding:4px 0}.reader-main span.katex{display:inline-block;max-width:100%;overflow-x:auto;overflow-y:hidden;vertical-align:middle}.reader-main .katex-display>span.katex{display:block;max-width:none;overflow:visible;vertical-align:baseline}@media (max-width:640px){.strategy-controls{gap:14px}figure.inline-figure{padding:10px}}@media print{.figure-controls,.figure-reset,.strategy-controls input,.tree-toolbar{display:none}}.reader-main .spread{max-width:840px}.reading-preview-note{font:12px var(--ui-font);color:var(--muted);margin:0 0 18px}.reader-main article{font-family:var(--textbook-font);font-size:16px;line-height:1.55;padding:24px 32px 32px;color:#202020}.reader-main article h1,.reader-main article h2,.reader-main article h3{font-family:var(--textbook-font);font-weight:700;line-height:1.25;text-wrap:balance}.reader-main article h1{font-size:26px;margin:0 0 18px}.reader-main article h2{font-size:19px;margin:18px 0 8px}.reader-main article h3{font-size:16px;margin:14px 0 6px}.reader-main article li,.reader-main article p{font-size:inherit;line-height:inherit}.reader-main article section>p{margin:0;text-align:justify;-webkit-hyphens:auto;hyphens:auto}.reader-main article section>p+p{text-indent:1.25em}.reader-main article section{margin-bottom:20px}.reader-main article strong{font-weight:700}.reader-main article ol,.reader-main article ul{margin:10px 0;padding-left:1.8em}.reader-main article li+li{margin-top:3px}.reader-main article .game-tree ul{margin:0;padding:0}.reader-main article .game-tree li>ul{padding-top:20px}.reader-main article .game-tree li+li{margin-top:0}.reader-main article blockquote{background:none;border:0;margin:12px 1.5em;padding:0}.reader-main article .intro{color:inherit;border:0;padding:0;margin-bottom:18px}.reader-main article .katex{font-size:1.05em!important}.reader-main article .katex-display{margin:14px 0!important;padding:4px 0}.reader-main article table:not(.payoff-matrix){font-size:.95em;margin:14px auto}.reader-main article table:not(.payoff-matrix) td,.reader-main article table:not(.payoff-matrix) th{border:0;border-bottom:1px solid var(--line);padding:5px 12px}.reader-main article table:not(.payoff-matrix) th{border-top:1px solid var(--ink);border-bottom-color:var(--ink);background:none;font-weight:700}.reader-main article table:not(.payoff-matrix) tr:last-child td{border-bottom-color:var(--ink)}.reader-main article figure{font-family:var(--ui-font);background:white;border:0;border-radius:0;padding:12px 0}.reader-main article figcaption{font-family:var(--textbook-font);font-size:15px;font-weight:400;text-align:center;margin:12px 0 0}.reader-main article figcaption small{font-size:inherit;color:inherit;margin-right:6px}.reader-main article figcaption>p{display:inline;margin:0}.reader-main article .figure-caption{font-family:var(--textbook-font);font-size:14px;line-height:1.45;color:inherit;border:0;padding:0;margin-top:12px}.reader-main article .figure-caption p{font-size:inherit;text-align:left}.reader-main article .figure-equation{border:0}.reader-main article .figure-follow-up,.reader-main article .figure-lead-in{font-family:var(--textbook-font);font-size:inherit;line-height:inherit}.reader-main article .figure-follow-up p,.reader-main article .figure-lead-in p{margin:8px 0}.reader-main article .figure-follow-up{margin-top:8px}.reader-main article .axis-label,.reader-main article .payoff-matrix,.reader-main article .plot-grid text,.reader-main article .plot-labels{font-family:var(--textbook-font)}.reader-main article .assumptions,.reader-main article .figure-note:has(p){font-family:var(--textbook-font)}.reader-main article .concept-detail li,.reader-main article .concept-detail p,.reader-main article .figure-key,.reader-main article .figure-note p,.reader-main article .tree-result{font-size:12px;line-height:1.5}.reader-main article footer{font-family:var(--ui-font)}@media (max-width:640px){.reader-main article{padding:18px 16px;font-size:15px}.reader-main article h1{font-size:23px}.reader-main article h2{font-size:18px}.reader-main article section>p{text-align:left}}@media print{.reader-main .spread{max-width:none}.reader-main article{padding:0;font-size:11pt;line-height:1.4;color:black}.reader-main article section{page-break-inside:auto;break-inside:auto}.reader-main article h1,.reader-main article h2,.reader-main article h3{page-break-after:avoid;break-after:avoid}.reader-main article p{orphans:3;widows:3}}.navigation-dialog[open],.upload-dialog[open]{animation:dialog-enter .18s ease-out}dialog::backdrop{animation:backdrop-enter .18s ease-out}@keyframes dialog-enter{0%{opacity:0;transform:translateY(4px) scale(.995)}to{opacity:1;transform:none}}@keyframes backdrop-enter{0%{opacity:0}to{opacity:1}}.upload-panel input{box-shadow:inset 0 1px 2px #00000004}.upload-panel input:hover{border-color:#b8b8b8}.primary{box-shadow:inset 0 1px 0 #ffffff14,0 1px 2px #00000012}.primary:active{box-shadow:inset 0 1px 2px #0003}.welcome-dialog{width:min(420px,calc(100vw - 32px))}.welcome-panel{position:relative;padding:40px 32px 28px;text-align:center}.welcome-close{position:absolute;top:10px;right:10px;color:var(--muted)}.welcome-panel h2{font-family:var(--textbook-font);font-size:36px;font-weight:400;letter-spacing:-1px;margin:0 0 16px}.welcome-panel p{font-family:var(--textbook-font);font-size:17px;line-height:1.6;margin:0}.welcome-actions{display:flex;flex-direction:column;align-items:center;gap:6px;margin:26px 0 22px}.welcome-actions button{min-height:34px;padding:6px 14px}.welcome-actions>button:not(.primary){color:var(--muted)}.welcome-panel small{font-size:11px;color:var(--muted)}.course-select[aria-busy=true]{color:var(--muted)}.course-select .generation-spinner{width:10px;height:10px;margin-left:auto}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.shared-title{color:var(--muted);font-size:11px;margin-left:24px;max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shared-workspace{grid-template-columns:176px minmax(0,1fr)}.sharing-description{color:var(--muted);margin:0;font-size:12px}@media (max-width:640px){.control-label,.shared-title{display:none}.app-header nav{gap:2px}.app-header nav>button{padding:7px}}.algorithm-controls,.algorithm-settings{display:flex;align-items:center;gap:12px;font:12px var(--ui-font);color:#777}.algorithm-settings{justify-content:space-between;margin-bottom:18px}.algorithm-settings select{margin-left:6px;padding:3px 6px;border:1px solid #ddd;border-radius:4px;background:#fff;color:#444;font:inherit}.algorithm-array{display:flex;list-style:none;padding:0!important;margin:0!important;gap:5px;flex-wrap:wrap;justify-content:center}.algorithm-array li{width:42px;text-align:center;transition:opacity .15s,color .15s}.algorithm-array li>span{display:block;border:1px solid #ddd;border-radius:3px;padding:8px 2px;font:16px var(--textbook-font);background:#fff}.algorithm-array li.active>span{border-color:#444;box-shadow:inset 0 0 0 1px #444;background:#f7f7f7}.algorithm-array li.settled>span{border-bottom:2px solid #777}.algorithm-array li.excluded{opacity:.3}.algorithm-array small{font:10px var(--ui-font);color:#888}.algorithm-explanation{font:13px/1.5 var(--ui-font);min-height:40px;text-align:center;margin:15px 0!important;color:#555}.algorithm-scrubber{display:flex;align-items:center;gap:10px;flex:1 1}.algorithm-scrubber span{white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.algorithm-scrubber input{min-width:40px;width:100%;accent-color:#555}.algorithm-controls button{font:inherit;padding:5px 8px;white-space:nowrap}@media(max-width:640px){.algorithm-controls{flex-wrap:wrap;gap:6px}.algorithm-scrubber{order:-1;flex-basis:100%}.algorithm-array li{width:36px}}.spring-experiment svg{display:block;width:100%;max-width:660px;margin:auto}.spring-experiment svg text{font:11px var(--ui-font);fill:#888}.spring-experiment svg .spring-mass-label{font:20px var(--textbook-font);fill:#555}.spring-readout{display:flex;justify-content:center;gap:28px;margin:4px 0 22px;font:12px var(--ui-font);color:#777;flex-wrap:wrap}.spring-readout output{color:#444;margin-left:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.spring-parameters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.spring-playback{display:flex;align-items:center;gap:12px;font:12px var(--ui-font);color:#777;margin-top:20px}.spring-playback label{display:flex;align-items:center;gap:10px;flex:1 1;white-space:nowrap}.spring-playback output{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.spring-playback input{width:100%;min-width:40px;accent-color:#555}.spring-playback button{font:inherit;padding:5px 8px}@media(max-width:640px){.spring-experiment svg text{font-size:20px}.spring-experiment svg .spring-mass-label{font-size:28px}.spring-parameters{grid-template-columns:1fr;gap:10px}.spring-readout{gap:16px}.spring-playback label{flex-wrap:wrap;gap:4px 8px}.spring-playback input{flex-basis:100%}}.account-placeholder{display:block;width:28px;height:28px;border-radius:50%;background:#f0f0f0}