:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#253d35;background:#f4f1e8;font-size:15px;line-height:1.6;color-scheme:light}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:4px}a:focus-visible,summary:focus-visible{outline:3px solid #a56426;outline-offset:5px}.shell{max-width:1080px;margin:auto;padding:0 32px}header{display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:86px;border-bottom:1px solid #d8dbcf;font-size:12px}header a{min-height:44px;display:inline-flex;align-items:center}header .brand{font-size:13px;letter-spacing:.035em;font-weight:700;text-decoration:none}.intro{padding:44px 0 32px;max-width:660px}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:10px;font-weight:650;color:#59745e;margin:0 0 14px}h1{font-family:Georgia,serif;font-size:clamp(38px,5vw,57px);font-weight:400;line-height:1.08;letter-spacing:-.04em;margin:0 0 19px}.intro>p:last-child{font-size:15px;max-width:525px;color:#5f7063;margin:0}.games{display:grid;grid-template-columns:1fr 1fr;gap:20px}.game{display:flex;flex-direction:column;min-width:0;border:1px solid #d4dbce;border-radius:13px;padding:25px;text-decoration:none;background:#fffef8;transition:border-color .15s,box-shadow .15s}.game:hover{border-color:#7e9a7b;box-shadow:0 8px 28px #304c3910}.card-top{display:flex;align-items:center;justify-content:space-between;gap:14px}.tag{font-size:10px;font-weight:650;color:#57705e;letter-spacing:.035em}.arrow{font-size:21px;font-weight:400}.illustration{width:100%;height:132px;margin:14px 0 19px;display:block;overflow:visible;stroke-linecap:round;stroke-linejoin:round}.illustration path,.illustration rect,.illustration circle{stroke-width:2;fill:none}.ground{stroke:#c4cdbc}.pipe{stroke:#819884!important;stroke-width:12px!important}.machine{fill:#dbe4cd!important;stroke:#6e8970}.machine rect{fill:inherit}.dial{stroke:#69836a}.dial circle{fill:#f6f5e8}.feet{stroke:#839578;stroke-width:5px}.water-line{stroke:#81a9b2;stroke-width:6px!important}.vessel{stroke:#7e9893;fill:#e6eeea!important}.handle{stroke:#9caa95}.connector{stroke:#adb7a4;stroke-dasharray:3 5}.river{stroke:#bcd9dc;stroke-width:17px!important}.roads{stroke:#9aaa86;stroke-width:3px!important}.shortcut{stroke:#b49162;stroke-dasharray:4 5}.places{stroke:#6b866d}.places circle{fill:#f4f4e8}.parcel{stroke:#9d926d;fill:#ebe0bd!important}.first-mark{font-family:Georgia,serif;font-size:100px;line-height:1.05;letter-spacing:-.08em;color:#d3d9bf;margin:19px 0 18px}.game h2{font-family:Georgia,serif;font-weight:400;letter-spacing:-.025em;font-size:30px;line-height:1.15;margin:0 0 12px}.game>p{font-size:13px;color:#617264;margin:0 0 24px;max-width:370px}.play{display:flex;justify-content:space-between;align-items:center;gap:15px;padding-top:15px;border-top:1px solid #e0e5d9;font-size:12px;font-weight:650;margin-top:auto}.play>span{font-size:18px}.pump{background:#fafdf3}.water{background:#f8fcfa}.route{background:#fffdf6}.first{background:#f6f7ef}.save-note{font-size:12px;color:#68796a;margin:24px 0}.notes{border-top:1px solid #d8dbcf;padding:12px 0;max-width:770px}.notes summary{font-size:12px;min-height:44px;padding:10px 0;cursor:pointer}.notes p{font-size:12px;color:#657465;max-width:710px}footer{padding:24px 0 32px;font-size:10px;letter-spacing:.04em;color:#7a8878}@media(max-width:620px){.shell{padding:0 19px}header{min-height:72px;font-size:10px;gap:12px}header .brand{font-size:12px}.intro{padding:29px 0 27px}.intro>p:last-child{font-size:13px;max-width:360px}.eyebrow{font-size:9px;margin-bottom:11px}h1{font-size:39px;line-height:1.08;margin-bottom:15px}.games{grid-template-columns:1fr;gap:15px}.game{padding:20px}.illustration{height:108px;margin:9px 0 15px}.game h2{font-size:28px}.game>p{font-size:13px;margin-bottom:19px}.tag{font-size:9px}.first-mark{font-size:70px;margin:9px 0 14px}.save-note{font-size:11px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.commons{grid-column:1/-1;background:#f1f7ec}.commons>.illustration{max-width:450px;height:130px}.commons>p{max-width:560px}@media(max-width:620px){.commons>.illustration{height:108px}}
.across{background:#f4f8f2}.commons{grid-column:auto}
.service{background:#edf5ef}

.plan{background:#f3efdf}

/* One current example at a time, with earlier experiments in a disclosure. */
.compact-collection{height:100dvh;overflow:hidden;font-size:14px;line-height:1.45}
.compact-collection [hidden]{display:none!important}
.compact-collection .shell{height:100%;max-width:1080px;display:flex;flex-direction:column;padding:0 24px}
.compact-collection header{min-height:44px;flex:0 0 auto}
.compact-collection main{min-height:0;display:flex;flex-direction:column;flex:1}
.compact-collection .intro{padding:17px 0 14px;max-width:750px;flex:0 0 auto}
.compact-collection .intro .eyebrow{margin-bottom:7px}
.compact-collection h1{font-size:35px;margin-bottom:8px;line-height:1.07}
.compact-collection .intro>p:last-child{font-size:13px;max-width:680px}
.compact-collection .collection-browser{display:grid;grid-template-columns:280px 1fr;gap:22px;flex:1;min-height:0}
.compact-collection .game-chooser{min-height:0;overflow-y:auto}
.compact-collection .game-chooser>label{display:none}
.compact-collection .collection-list{display:grid;gap:4px}
.compact-collection .collection-list button{display:flex;align-items:center;gap:12px;text-align:left;min-height:44px;padding:9px 12px;border:1px solid transparent;border-radius:7px;font:600 12px/1.25 system-ui,sans-serif;color:inherit;background:transparent;cursor:pointer}
.compact-collection .collection-list button{flex-direction:column;align-items:flex-start;gap:3px}.compact-collection .collection-list button small{color:#667d62;font-size:11px;font-weight:400}
.compact-collection .collection-list button[aria-selected=true]{border-color:#a5b59c;background:#e9eedd}
.compact-collection .games{display:block;overflow-y:auto;min-height:0;padding:0 5px 8px 0}
.compact-collection .learning-step{font-size:12px;color:#526c55;margin:0 0 8px}
.compact-collection .game{min-height:320px;padding:24px;max-width:none}
.compact-collection .game .illustration{height:150px;margin:12px 0}
.compact-collection .game h2{font-size:32px}
.compact-collection .game>p{font-size:14px;max-width:none}
.compact-collection .save-note{font-size:11px;margin:10px 0 3px;flex:0 0 auto}
.compact-collection .collection-notes{font-size:11px;flex:0 0 auto;max-height:30vh;overflow:auto;border-top:1px solid #d8dbcf}
.compact-collection .collection-notes summary{min-height:36px;display:list-item;padding:9px 0;cursor:pointer}
.compact-collection footer{display:none}
.compact-collection :is(button,select):focus-visible{outline:3px solid #a56426;outline-offset:2px}
@media(max-width:620px){
 .compact-collection .shell{padding:0 16px}
 .compact-collection header{min-height:40px;font-size:10px}
 .compact-collection .intro{padding:12px 0}
 .compact-collection h1{font-size:30px;margin-bottom:6px}
 .compact-collection .intro>p:last-child{font-size:12px}
 .compact-collection .collection-browser{display:flex;flex-direction:column;gap:12px}
 .compact-collection .game-chooser{flex:0 0 auto;overflow:visible}
 .compact-collection .game-chooser>label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:650}
 .compact-collection .game-chooser select{width:100%;min-height:44px;padding:9px;border:1px solid #9dac99;border-radius:7px;font:600 13px system-ui,sans-serif;background:#fffef8;color:inherit}
 .compact-collection .collection-list{display:none}
 .compact-collection .games{flex:1;padding-right:3px}
 .compact-collection .game{padding:18px;min-height:0}
 .compact-collection .game h2{font-size:28px}
 .compact-collection .game>p{font-size:12px;margin-bottom:16px}
 .compact-collection .game .illustration{height:95px;margin:6px 0 10px}
 .compact-collection .first-mark{font-size:57px;margin:8px 0}
 .compact-collection .learning-step{font-size:11px;margin-bottom:7px}
 .compact-collection .save-note{font-size:10px;line-height:1.4;margin-top:8px}
 .compact-collection .collection-notes summary{min-height:34px;padding:8px 0;font-size:10px}
}
@media(max-height:570px),(max-width:340px){
 .compact-collection{height:auto;overflow:auto}
 .compact-collection .shell{height:auto;min-height:100dvh}
 .compact-collection main{display:block}
 .compact-collection .collection-browser{min-height:400px}
 .compact-collection .games{overflow:visible}
 .compact-collection .collection-notes{max-height:none}
}

.earlier{margin-top:20px;border-top:1px solid #d8dbcf;padding:8px 0}.earlier summary{min-height:44px;padding:10px 0;font-size:12px;font-weight:650;cursor:pointer}.earlier summary>span{font-size:11px;font-weight:400;color:#657465;margin-left:8px}.earlier>p{font-size:12px;color:#657465;margin:0 0 12px}.earlier-list{display:grid;grid-template-columns:1fr 1fr;gap:7px 18px;padding-bottom:10px}.earlier-list a{position:relative;display:flex;flex-direction:column;min-height:52px;justify-content:center;padding:8px 25px 8px 10px;text-decoration:none;border:1px solid #d4dbce;border-radius:7px;background:#fffef8}.earlier-list strong{font-size:12px;font-weight:600}.earlier-list span{font-size:11px;color:#657465}.earlier-list .earlier-arrow{position:absolute;right:9px;top:50%;transform:translateY(-50%);font-size:16px}.earlier-list a:hover{border-color:#7e9a7b}.compact-collection .earlier{margin-top:10px;flex:0 0 auto;max-height:35vh;overflow:auto;padding:0}.compact-collection .earlier summary{min-height:38px;padding:10px 0}.compact-collection .collection-notes{margin-top:0;padding:0}.compact-collection .notes p{margin:6px 0 10px}
@media(max-width:620px){.earlier-list{grid-template-columns:1fr;gap:6px}.compact-collection .earlier{margin-top:8px}.compact-collection .earlier summary{font-size:11px;min-height:37px}.earlier>p{font-size:11px}.compact-collection .collection-browser{gap:9px}.compact-collection .game-chooser>label{font-weight:500}.compact-collection .intro{padding:12px 0 10px}.compact-collection .game h2{font-size:27px}.compact-collection .game .illustration{height:85px}}
@media(max-height:570px),(max-width:340px){.compact-collection .earlier{max-height:none;overflow:visible}}
/* Opening a disclosure uses ordinary page flow instead of squeezing the preview. */
.compact-collection:has(.earlier[open],.collection-notes[open]){height:auto;min-height:100dvh;overflow:auto}
.compact-collection:has(.earlier[open],.collection-notes[open]) .shell{height:auto;min-height:100dvh}
.compact-collection:has(.earlier[open],.collection-notes[open]) .collection-browser{flex:0 0 auto}
.compact-collection:has(.earlier[open],.collection-notes[open]) .games{overflow:visible}
.compact-collection:has(.earlier[open],.collection-notes[open]) :is(.earlier,.collection-notes){max-height:none;overflow:visible}
.earlier summary:focus-visible,.collection-notes summary:focus-visible{outline-offset:-2px}.earlier-list a:focus-visible{outline-offset:2px}
@media(min-width:621px){.compact-collection .game-chooser{padding:5px}}
