@font-face{font-family:LM;src:url('assets/fonts/latin-modern/lmroman10-regular.otf')}@font-face{font-family:LM;src:url('assets/fonts/latin-modern/lmroman12-bold.otf');font-weight:700}@font-face{font-family:LM;src:url('assets/fonts/latin-modern/lmroman10-italic.otf');font-style:italic}@font-face{font-family:Mono;src:url('assets/fonts/latin-modern/lmmono10-regular.otf')}
:root{--wine:#751a2c;--ink:#282529;--muted:#6c6266;--line:#ded5d3;--paper:#fffefa;--pale:#f6edea;--teal:#166d61;--blue:#365c9a;--gold:#af680c}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:1.1875rem/1.4 LM,Georgia,serif}a{color:var(--wine)}button,input,select{font:inherit}button,.button,.file{border:1px solid #b4a1a2;border-radius:5px;background:white;color:var(--wine);padding:8px 13px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px}button:hover,.button:hover,.file:hover{background:var(--pale)}button:disabled{opacity:.42;cursor:default}button.primary,.button.primary{background:var(--wine);border-color:var(--wine);color:white}button.active{box-shadow:inset 0 -3px var(--wine);background:var(--pale)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--blue);outline-offset:3px}input[type=number]{width:90px;border:1px solid #a18a8e;border-radius:3px;padding:5px}select{max-width:100%;padding:7px;border:1px solid #a18a8e;border-radius:4px;background:white}input[type=range]{width:100%;accent-color:var(--wine)}.skip{position:absolute;left:12px;top:-100px;background:white;padding:8px;z-index:10}.skip:focus{top:8px}.masthead{max-width:1240px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:18px 26px;border-bottom:1px solid var(--line);gap:12px}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--ink)}.brand strong{font-size:1.5rem}.brand small{display:block;color:var(--muted);font-size:0.9375rem}.paper-link{font-size:1rem;white-space:nowrap}main{max-width:1200px;padding:24px;margin:auto;min-height:60vh}footer{max-width:1152px;margin:34px auto;padding:16px 24px;border-top:1px solid var(--line);font-size:0.9375rem;color:var(--muted)}footer p{margin:4px 0}h1{font-size:2.25rem;line-height:1.12;margin:9px 0 12px;font-weight:700;max-width:960px}h2{font-size:1.625rem;line-height:1.2;margin:24px 0 10px}h3{font-size:1.3125rem;margin:10px 0}p{margin:8px 0 14px}.eyebrow{font-size:0.875rem;letter-spacing:.07em;text-transform:uppercase;color:var(--wine)}.lede{max-width:740px;font-size:1.3125rem}.gallery-start{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:15px 0 23px;border-bottom:1px solid var(--line)}.gallery-start p{margin:0;max-width:450px}.groups{display:flex;gap:7px;flex-wrap:wrap;margin:17px 0}.groups button{font-size:1rem}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.example{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:white}.example .preview{height:128px;border-bottom:1px solid var(--line);background:#faf7f4;padding:5px}.preview svg{width:100%;height:100%}.example .copy{padding:17px;display:flex;flex-direction:column;flex:1}.example h3{line-height:1.2;font-size:1.4375rem;margin:6px 0}.example p{font-size:1.0625rem;margin-bottom:16px}.example a{margin-top:auto}.tag{font-size:0.8125rem;text-transform:uppercase;letter-spacing:.035em;color:var(--muted)}.lesson-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:15px;font-size:1rem}.history{display:flex;gap:6px}.history button{min-height:36px;padding:5px 10px;font-size:1rem}.workspace{display:grid;grid-template-columns:minmax(280px,330px) minmax(0,1fr);gap:26px;align-items:start;margin-top:22px}.controls{padding:18px;border:1px solid var(--line);border-top:3px solid var(--wine);background:white;border-radius:6px}.controls h2{margin:0 0 8px;font-size:1.5rem}.controls .row{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:10px 0}.controls label{display:block;font-size:1.0625rem;margin:12px 0 5px}.controls .pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.controls .pair label{margin-top:5px}.controls p{font-size:1.0625rem}.controls .primary{width:100%;margin-top:9px}.controls button:not(.primary){font-size:1rem}.controls details{margin-top:12px;font-size:1rem}.controls .feedback{margin-top:14px;padding:12px;border-left:3px solid var(--teal);background:#edf5f1;color:#164c43;font-size:1.125rem}.feedback.pending{border-color:var(--gold);background:#fff6e8;color:#674014}.feedback.error,.error{border-color:var(--wine);background:#fceced;color:var(--wine)}.feedback.revealed{border-color:var(--blue);background:#edf1f9;color:#28446e}.next-link{display:block;margin-top:12px;font-weight:700}.figure{border:1px solid var(--line);border-radius:7px;background:white;overflow:hidden;min-width:0}.figure-head{display:flex;justify-content:space-between;gap:10px;padding:12px 17px;border-bottom:1px solid var(--line);font-size:1.125rem}.figure-head small{color:var(--muted);font-size:0.875rem}.figure-body{padding:14px}.figure svg{display:block;width:100%;height:auto;max-height:420px}.figure .caption{padding:12px 17px;border-top:1px solid var(--line);font-size:1.0625rem;background:#faf7f4;margin:0}.figure .sub{font-size:0.9375rem;color:var(--muted);margin:10px 0}.legend{display:flex;flex-wrap:wrap;gap:15px;font-size:0.9375rem;margin:8px 0}.legend .wine:before,.legend .teal:before,.legend .blue:before{content:'━ ';font-size:1.3125rem}.wine{color:var(--wine);fill:var(--wine)}.teal{color:var(--teal);fill:var(--teal)}.blue{color:var(--blue);fill:var(--blue)}.fine{font-size:0.9375rem;color:var(--muted)}.wide-details{margin-top:22px;padding:16px 0;border-top:1px solid var(--line)}summary{cursor:pointer;color:var(--wine);font-weight:700}.wide-details p{max-width:900px}.file{position:relative;overflow:hidden;font-size:1rem}.file input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.saved-tools{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0}.saved-help{font-size:1.0625rem;max-width:760px}.status-line{border-radius:4px;padding:10px;font-size:1.0625rem}.status-line:empty,#global-status:empty{display:none}.status-line.good{background:#edf5f1}.source-table,table.numeric{border-collapse:collapse;width:100%;font-size:1rem}.source-table th,.source-table td,table.numeric th,table.numeric td{padding:7px;border-bottom:1px solid var(--line);text-align:left}.hash{font-family:Mono,monospace;overflow-wrap:anywhere;font-size:0.875rem}.scroll-x{max-width:100%;overflow-x:auto;padding:3px}.matrix{border-collapse:separate;border-spacing:3px;margin:auto;font-size:0.875rem}.matrix td,.matrix th{text-align:center}.matrix button{min-width:34px;min-height:34px;padding:3px;color:var(--muted);border-color:#dacdce;font-size:1.0625rem}.matrix button.one{background:var(--wine);color:white;border-color:var(--wine)}.matrix button.diag{border:2px solid var(--gold)}.matrix .highlight{outline:3px solid var(--blue)}.matrix .margin{padding:4px;font-weight:700}.path-scroll{max-height:355px;overflow:auto}.readout{background:#faf6f2;padding:12px;border-radius:4px;font-size:1.0625rem;overflow-wrap:anywhere}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.chip{border:1px solid var(--line);border-radius:4px;padding:5px 9px;font-size:0.9375rem}.chip.on{background:var(--pale);border-color:var(--wine)}progress{width:100%;height:12px;accent-color:var(--teal)}.run-panel{padding:12px 15px;border:1px solid var(--line);border-radius:5px;margin:12px 0;font-size:1rem}.run-panel .row{display:flex;gap:6px;flex-wrap:wrap}.run-panel button{font-size:0.9375rem;min-height:34px;padding:5px 10px}.stage-strip{display:flex;gap:5px;flex-wrap:wrap;margin:12px 0}.stage-strip button{font-size:0.8125rem;min-height:32px;padding:4px 7px}.stage-strip button.current{background:var(--wine);color:white}.stage-strip button.done{border-color:var(--teal)}.two-figures{display:grid;grid-template-columns:1fr 1fr;gap:12px}.row-pick{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.callout{padding:12px;border-left:3px solid var(--blue);background:#f0f4fb;font-size:1.0625rem}.goal{font-size:1rem;color:var(--muted)}svg text{font-family:LM,Georgia,serif;fill:var(--ink)}svg .tiny{font-size:12px}svg .small{font-size:14px}svg .label{font-size:17px}svg .strong{font-weight:700}svg .axis{stroke:#a19496;stroke-width:1}svg .grid{stroke:#e8e1df;stroke-width:1}svg .edge{stroke:#b9aeb0;stroke-width:3}svg .event{stroke:var(--wine);stroke-width:6}svg .comparison{stroke:var(--teal);stroke-width:5;stroke-dasharray:7 4}svg .route{stroke:var(--blue);stroke-width:4}svg .hit{stroke:transparent;stroke-width:20;fill:none;cursor:pointer}svg circle.node{fill:white;stroke:#66575b;stroke-width:1.7}svg circle.observer{fill:var(--wine);stroke:var(--wine)}svg .selected{stroke:var(--blue);stroke-width:3}svg .bar{fill:var(--wine)}svg .bar2{fill:var(--teal)}svg .pale{fill:#e7cbd0}svg .pale2{fill:#c6e0d6}svg .gold{fill:var(--gold)}svg .outlined{fill:white;stroke:var(--wine);stroke-width:2}svg [role=button]{cursor:pointer}svg [role=button]:focus{outline:none;filter:drop-shadow(0 0 2px #365c9a)}svg .negative{fill:#b24639}.empty-state{padding:45px 20px;text-align:center;color:var(--muted)}.katex{font-size:1.04em}.katex-display{overflow-x:auto;padding:4px}.source-notice{max-width:900px}.bound-lines{display:flex;flex-wrap:wrap;gap:10px;font-size:1.0625rem}.bound-lines > span{padding:7px;border-bottom:2px solid var(--line)}
@media(max-width:900px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace{grid-template-columns:minmax(240px,290px) minmax(0,1fr);gap:16px}h1{font-size:2rem}.matrix button{min-width:31px;min-height:34px}}
@media(max-width:650px){body{font-size:1.125rem}.masthead{padding:13px 16px;align-items:flex-start}.brand{gap:9px}.brand strong{font-size:1.3125rem}.brand small{font-size:0.75rem}.paper-link{font-size:0.8125rem}main{padding:18px 16px}h1{font-size:1.8125rem}.lede{font-size:1.1875rem}.gallery{grid-template-columns:1fr}.example{display:grid;grid-template-columns:115px 1fr}.example .preview{height:100%;border-bottom:0;border-right:1px solid var(--line)}.example .copy{padding:13px}.example h3{font-size:1.3125rem}.example p{font-size:1rem;margin:6px 0 12px}.example a{font-size:1rem}.workspace{display:flex;flex-direction:column;gap:17px;margin-top:15px}.controls,.figure{width:100%}.controls{padding:14px}.controls .feedback{margin-top:11px}.figure-body{padding:9px}.figure-head{padding:10px 12px;font-size:1.0625rem}.figure-head small{font-size:0.75rem}.figure .caption{padding:11px 12px;font-size:1rem}.figure svg{max-height:350px}.two-figures{grid-template-columns:1fr}.history button{font-size:0.875rem;min-height:34px;padding:4px 8px}.lesson-nav{font-size:0.9375rem}.figure .path-scroll svg{min-width:315px}.gallery-start{gap:10px}footer{font-size:0.875rem}.source-table{font-size:0.875rem}.matrix{border-spacing:2px}.matrix button{min-width:34px;min-height:38px}.fine{font-size:0.875rem}}

/* Keep outcomes and the next investigation above lengthy optional controls. */
.controls .feedback{margin-top:8px}.controls .goal{font-size:0.9375rem;margin:9px 0 15px}.figure-body>svg{max-width:620px;margin-left:auto;margin-right:auto}.gallery-files{font-size:1rem;margin:10px 0}.gallery-start{padding:8px 0 14px}.gallery-files .saved-help{font-size:1rem}.figure .path-scroll{max-height:320px}

@media(max-width:650px){.brand strong{font-size:1.125rem}.brand small{display:none}.masthead{align-items:center}.masthead img{width:31px;height:31px}.masthead{padding:12px 16px}.groups{flex-wrap:nowrap;overflow-x:auto;padding-bottom:7px}.groups button{white-space:nowrap}.gallery-start p{display:none}.gallery-start{padding:5px 0 12px}.controls h2,.controls .goal{display:none}.controls .feedback{font-size:1rem;line-height:1.25;margin-top:0;padding:9px}.next-link{font-size:1rem;line-height:1.2;margin:8px 0 12px}.controls{padding:12px}.lede{font-size:1.0625rem;line-height:1.3}.eyebrow{font-size:0.75rem}h1{font-size:1.625rem}.lesson-nav{margin-bottom:12px}.controls label{margin:7px 0 4px}.controls details{margin-top:8px}.controls select{font-size:1rem}.figure .caption{font-size:1rem}.gallery-files{font-size:0.9375rem}}

@media(max-width:650px){.figure svg text.small{font-size:18px}.figure svg text.tiny{font-size:16px}}

svg text.light{fill:white}svg text.zero{fill:#7f7479}

.execution-toolbar{padding:0 14px 10px;border-bottom:1px solid var(--line);background:white}.execution-toolbar[hidden]{display:none}.execution-toolbar .run-panel{margin:10px 0 7px;padding:9px 12px}.execution-toolbar .stage-strip{margin:7px 0}.execution-toolbar label{font-size:1rem}.execution-toolbar label select{margin:4px 0 0 8px}.execution-result{padding:9px 12px;border-left:3px solid var(--teal);background:#edf5f1;font-size:1rem}.execution-result.error{border-color:var(--wine);background:#fceced}.execution-result p{margin:0 0 5px}.has-execution .figure-body{min-height:260px}.hist-values{font-size:1rem;margin:8px 0}.histogram .legend{margin:0 0 4px}.histogram .sub{margin:4px 0}.histogram svg{max-height:300px}.bound-lines>span{max-width:100%}@media(max-width:650px){.has-execution .figure-body{min-height:180px}.execution-toolbar .stage-strip button{font-size:0.75rem;min-height:30px}.execution-toolbar label select{margin-left:0;display:block}.hist-values summary{font-size:1rem}}

/* R8: evidence precedes exits; the mathematical goal remains visible on phones. */
.after-evidence{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid var(--line);font-size:1.0625rem}.after-evidence .next-link{margin:0}.linked-triangle .triangle-context{font-size:1rem;margin:0 0 7px}.linked-triangle .linked-graph{max-height:265px}.linked-triangle .linked-histogram{max-height:195px}.linked-reports{display:flex;gap:6px;flex-wrap:wrap}.linked-reports button{font-size:1rem;padding:5px 10px;min-height:36px}.linked-trace{border-left:3px solid var(--blue);padding:7px 9px;background:#f2f6fc;font-size:1rem;margin:8px 0}.controls .goal{display:block!important;color:var(--ink);font-weight:bold}
@media(max-width:650px){.after-evidence{font-size:1rem}.linked-triangle .triangle-context{font-size:0.875rem}.linked-triangle .linked-graph{height:195px}.linked-triangle .linked-histogram{max-height:none}.controls .goal{margin:5px 0 9px;font-size:1rem}.workspace:has(.linked-triangle) .controls>details{font-size:0.875rem}.workspace:has(.linked-triangle) .controls .feedback{font-size:0.9375rem}}

/* Visual-hierarchy revision: question → your move (goal, controls, what changed, result) → figure → details.
   The guided marks are reused: vertex letters in discs, edge codes with a line mark, multisets in braces, ×n for multiplicity. */
:root{--red:#b3263c;--red-ink:#9d2236;--green:#157064;--green-ink:#12665b;--pair:#2a2428}
.controls h2,.workspace .controls h2{display:block;margin:0 0 4px;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--wine);font-weight:700}.controls .action-line{font-size:1.02rem;line-height:1.32;margin:0 0 8px}.controls .goal{font-weight:normal!important;color:var(--ink);font-size:.92rem;margin:0 0 10px;padding:6px 9px;border-radius:6px;background:var(--pale)}.controls .goal span{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:5px}.controls .status-line{margin:12px 0 0;padding:0;font-size:.92rem;background:none!important}.controls .status-line:empty{display:none}.controls .feedback{margin-top:10px}
.edge-chip{display:inline-flex;align-items:center;gap:6px;padding:.16rem .55rem;border:1px solid #d6cbcf;border-radius:999px;background:#fff;color:#3d363a;font-size:.86rem;font-weight:700;white-space:nowrap;line-height:1.2;min-height:0}.edge-chip:before{content:'';display:inline-block;width:16px;border-top:3px solid #b2a7ac}.edge-chip.red{color:var(--red-ink);border-color:#e4bcc4}.edge-chip.red:before{border-top-color:var(--red)}.edge-chip.green{color:var(--green-ink);border-color:#b8d8d1}.edge-chip.green:before{border-top:3px dashed var(--green)}button.edge-chip{min-height:2.2rem;padding:.2rem .65rem;cursor:pointer}button.edge-chip:hover{background:var(--pale)}
.ms{font-variant-numeric:tabular-nums;white-space:nowrap}.sub-title{font-size:.74rem;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px}.records-count{margin:0 0 4px;font-size:1rem}.records-count strong{font-size:1.1rem}.record-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.record-row{display:grid;grid-template-columns:5.4rem 1fr;align-items:center;gap:8px;padding:4px 8px;border-radius:8px;background:#f5f0ee}.record-row.wide{grid-template-columns:minmax(6rem,auto) 1fr}.record-row .counts{font-variant-numeric:tabular-nums;font-size:.86rem;color:var(--muted)}.row-edges{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.chip-unit{display:inline-flex;align-items:center;gap:5px}.more-controls{margin-top:12px}.more-controls summary{font-size:.86rem}.eq{color:var(--muted);font-size:1.1rem}.own-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(8.4rem,1fr));gap:6px 10px}.own-grid li{display:flex;align-items:center;gap:7px}.none-left{color:#166657;font-size:.92rem;margin:4px 0}
.triangle-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}.linked-triangle .triangle-context{font-size:.8rem;color:var(--muted);margin:2px 0 0}.named-line{display:flex;align-items:center;flex-wrap:wrap;gap:5px 9px;margin:4px 0;font-size:.95rem}.vmini{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;border-radius:50%;background:var(--wine);color:#fff;font-size:.72rem;font-weight:700}button.vmini-button{min-height:2.1rem;padding:.1rem .45rem;gap:5px;font-variant-numeric:tabular-nums;color:var(--ink);border-color:#e0d6d9}button.vmini-button.active{border-color:var(--blue);background:#eef3fb}.arrow{color:var(--muted)}.linked-trace{font-size:.88rem}.collision-list{margin-top:10px}
.groups .count{font-size:.75em;color:var(--muted);margin-left:2px}.groups button.active .count{color:var(--wine)}.example{position:relative}.example .card-link{color:var(--ink);text-decoration:none}.example .card-link:after{content:'';position:absolute;inset:0}.example .card-link:focus-visible{outline:none}.example:has(.card-link:focus-visible){outline:3px solid var(--blue);outline-offset:2px}.example:hover{border-color:#c9b8be}.example:hover .card-go{text-decoration:underline}.card-go{margin-top:auto;color:var(--wine);font-size:.88rem}.gallery-start{border-bottom:0}.gallery-files{margin-top:22px;border-top:1px solid var(--line);padding-top:12px}
@media(max-width:900px){.triangle-pair{grid-template-columns:1fr;gap:10px}}
@media(max-width:650px){.controls .action-line{font-size:.98rem}.record-row{grid-template-columns:4.6rem 1fr;padding:4px 6px}.own-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
