:root{color-scheme:light;--paper:#f5f3e9;--surface:#fffef7;--ink:#142d29;--soft:#4e635c;--line:#b6c3b6;--accent:#bc4e29;--tint:#dce6d8;--serif:"Iowan Old Style","Palatino Linotype",Georgia,serif;--sans:"Inter","Arial",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 var(--sans)}button,input{font:inherit}button{cursor:pointer}a{color:inherit}button:focus-visible,input:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #a63f19;outline-offset:3px}.wrap{width:min(1136px,calc(100% - 56px));margin:auto}.masthead{height:72px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;display:flex;align-items:center;gap:11px}.brand i{display:block;width:21px;height:21px;border:2px solid var(--ink);border-radius:50%;position:relative}.brand i:before,.brand i:after{content:"";position:absolute;inset:3px;border:1px solid var(--ink);border-radius:50%}.brand i:after{inset:7px;background:var(--accent);border:none}.backlink{font-size:14px;color:var(--soft);text-underline-offset:3px}.setup{display:grid;grid-template-columns:1.1fr .9fr;gap:5.8vw;align-items:center;padding:clamp(34px,6vh,86px) 0 36px}.overline{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.15em;color:var(--accent);margin:0 0 10px}.setup h1{font-family:var(--serif);font-weight:500;font-size:clamp(52px,6.8vw,94px);line-height:.96;letter-spacing:-.067em;margin:0 0 24px}.lede{font-size:clamp(17px,1.6vw,23px);line-height:1.42;max-width:38em}.instruction{color:var(--soft);max-width:53ch}.facts{display:flex;flex-wrap:wrap;gap:9px 21px;padding:14px 0;margin:17px 0;color:var(--soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px}.facts strong{color:var(--ink)}.primary,.secondary{min-height:44px;padding:.63em 1.2em;border-radius:5px;border:1px solid var(--ink);font-weight:700}.primary{background:var(--ink);color:white}.primary:hover{background:#2c4b41}.secondary{color:var(--ink);background:transparent}.primary:disabled{background:#61726b;color:white;border-color:#61726b;cursor:default}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.setup details{margin-top:14px;color:var(--soft);font-size:14px}.setup details summary{cursor:pointer;width:max-content}.seedline{display:flex;align-items:center;gap:12px;margin-top:10px}.seedline input{padding:.4em .6em;background:var(--surface);border:1px solid var(--line);color:var(--ink);width:180px;max-width:100%}.figure{background:var(--ink);color:#e1ead8;min-height:370px;aspect-ratio:1/1;position:relative;border-radius:3px;overflow:hidden;display:grid;place-items:center}.figure canvas{display:block;width:100%;height:100%;position:absolute}.figuremark{position:absolute;bottom:16px;left:20px;right:20px;font-size:11px;text-transform:uppercase;letter-spacing:.13em;display:flex;justify-content:space-between;color:#d4e1d5;border-top:1px solid #566c63;padding-top:9px}.setup-note{font-size:13px;color:var(--soft);max-width:69ch}.runhead{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:22px 0 15px}.runhead h1,.receipt h1{font:500 clamp(35px,4.5vw,64px)/1.05 var(--serif);letter-spacing:-.05em;margin:0}.runhead .overline{margin-bottom:5px}.counter{font:600 16px var(--sans);white-space:nowrap;color:var(--soft)}.track{height:3px;background:#d2dbcf;margin-top:2px}.track i{display:block;height:100%;background:var(--accent)}.exercise{display:grid;grid-template-columns:1fr minmax(310px,.85fr);gap:clamp(20px,4vw,62px);align-items:center;padding:22px 0 24px}.board{border:1px solid var(--line);border-radius:4px;background:#e8eee1;padding:clamp(10px,1.4vw,20px);width:100%;max-width:500px;justify-self:center}.matrix-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.cell{aspect-ratio:1;background:var(--surface);border:1px solid #c9d3c4;display:grid;place-items:center}.cell canvas,.pick canvas{display:block;width:100%;height:100%}.missing{background:repeating-linear-gradient(-45deg,#f3f2e7 0 5px,#e9ebde 5px 6px);font:normal 32px var(--serif);color:var(--soft)}.choices h2{font:500 clamp(25px,2.45vw,37px)/1.14 var(--serif);letter-spacing:-.045em;margin:0 0 6px}.choices p{font-size:14px;color:var(--soft);margin:0 0 14px}.pickgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:440px;margin-bottom:15px}.pick{position:relative;padding:3px;display:grid;place-items:center;min-height:45px;min-width:0;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:4px}.pick span.letter{position:absolute;top:5px;left:7px;font-size:12px;font-weight:750;line-height:1;z-index:1}.pick canvas{max-width:88px;max-height:88px;aspect-ratio:1}.pick[aria-pressed=true]{border:2px solid var(--ink);box-shadow:0 0 0 1px var(--ink);background:#e3ebdd;padding:2px}.pick:hover{border-color:var(--ink)}.gapboard{aspect-ratio:1.38;max-width:560px;display:grid;place-items:center;background:#fff;width:100%;border:1px solid var(--line);position:relative}.gapboard:before,.gapboard:after{content:"";position:absolute;inset:10px auto auto 10px;width:12px;height:12px;border-left:1px solid var(--line);border-top:1px solid var(--line)}.gapboard:after{inset:auto 10px 10px auto;transform:rotate(180deg)}.gapboard canvas{image-rendering:pixelated;position:absolute}.directions{grid-template-columns:repeat(2,1fr);max-width:350px}.direction{display:flex;align-items:center;justify-content:start;gap:12px;padding:11px}.direction[aria-pressed=true]{padding:10px}.direction b{font-size:22px;font-weight:500;width:24px;text-align:center}.receipt{padding:28px 0;max-width:870px}.receipt .score{font:500 clamp(58px,7vw,98px)/1.08 var(--serif);letter-spacing:-.065em;margin:18px 0 0}.receipt .score small{font:500 19px var(--sans);letter-spacing:0;color:var(--soft)}.receipt .actions{margin:16px 0 20px}.meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0;padding:14px 0;border-block:1px solid var(--line)}.meta dt{font-size:11px;font-weight:750;letter-spacing:.1em;text-transform:uppercase;color:var(--soft)}.meta dd{margin:3px 0;font-size:14px;overflow-wrap:anywhere}.receipt h2{font:500 28px var(--serif);letter-spacing:-.04em;margin:18px 0 8px}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:6px 8px}th{font-size:12px;color:var(--soft)}.note{font-size:14px;color:var(--soft);margin:9px 0}.receipt details summary{cursor:pointer;font-weight:650}.receipt details table{margin:9px 0}.printsheet{display:none}.status{font-size:14px;color:var(--accent);margin:8px 0}.skip{position:absolute;left:-9999px}.skip:focus{left:0;top:0;background:white}.ink{font-weight:650}
@media(max-height:770px) and (min-width:761px){.masthead{height:56px}.board{max-width:420px}.runhead{margin:13px 0 10px}.exercise{padding-top:15px}.setup{padding-top:28px}.figure{min-height:280px;max-width:390px}.setup h1{font-size:68px}}
@media(max-width:760px){.wrap{width:calc(100% - 30px)}.masthead{height:55px}.brand{font-size:10px;gap:7px}.backlink{font-size:12px}.setup{grid-template-columns:1fr;padding-top:28px;gap:22px}.setup h1{font-size:55px}.figure{aspect-ratio:2/1;min-height:140px;max-height:220px}.figuremark{bottom:8px;font-size:9px;left:10px;right:10px}.runhead{margin:15px 0 9px}.runhead h1{font-size:36px}.counter{font-size:13px}.exercise{grid-template-columns:1fr;gap:15px;padding:12px 0 18px}.board{max-width:min(100%,330px);padding:8px}.pickgrid{max-width:none;margin-bottom:10px}.pick canvas{width:58px;height:58px}.choices h2{font-size:25px}.choices p{margin-bottom:8px}.gapboard{max-width:none;min-height:180px;aspect-ratio:2/1}.meta{grid-template-columns:repeat(2,1fr)}.receipt details{overflow-x:auto}.choices .primary{width:100%}.directions{max-width:none}}
@media print{@page{size:auto;margin:15mm}body{background:white;color:#111;font:11pt/1.45 Arial,sans-serif}.wrap{width:100%}.masthead{height:auto;padding:0 0 8px}.backlink,.actions,.setup,.runhead,.exercise,.track,.skip,.status,.receipt details{display:none !important}.printsheet{display:block}.printsheet h1{font:28pt Georgia,serif;margin:.35em 0}.receipt{padding:10px 0;max-width:none}.receipt h1{font-size:30pt}.receipt .score{font-size:45pt;margin:8px 0}.meta{margin:8px 0}.receipt table,.printsheet table{font-size:9pt}tr{break-inside:avoid}.note{font-size:10pt}.score small{font-size:12pt}.printsheet h2{font:18pt Georgia,serif;margin:8px 0}.printsheet .audit{display:block}.brand{color:#111}.meta dd{font-size:9pt}}
