.progress{width:min(100%, calc(1040px + 2 * var(--gutter)));padding:clamp(28px, 4.6vw, 68px) var(--gutter) clamp(48px, 6vw, 88px);align-content:start;gap:clamp(36px,5vw,72px);margin:0 auto;display:grid}.progress:focus{outline:none}.save-state{align-items:center;gap:var(--s2) 10px;max-width:100%;color:var(--ink-2);flex-wrap:wrap;font-size:14px;display:flex}.save-glyph{border:1.5px solid;border-radius:50%;flex:none;width:10px;height:10px}.save-state[data-state=saved] .save-glyph{background:var(--accent);border-color:var(--accent)}.save-state[data-state=loading] .save-glyph{border-style:dashed;animation:1.6s linear infinite save-spin}.save-state[data-state=offline],.save-state[data-state=error]{border:1px dashed var(--warn-ink);background:var(--warn-wash);color:var(--warn-ink);border-radius:14px;padding:10px 14px}.save-state[data-state=offline] .save-glyph,.save-state[data-state=error] .save-glyph{border-radius:1px;transform:rotate(45deg)}.save-state[data-state=offline] #save-text,.save-state[data-state=error] #save-text{flex:14em}@keyframes save-spin{to{transform:rotate(360deg)}}.dash{gap:clamp(44px,6vw,88px);min-width:0;display:grid}.dash-top{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:clamp(32px,4vw,56px);display:grid}.dash-panel{align-content:start;gap:clamp(14px,1.6vw,20px);min-width:0;display:grid}.dash-heading{letter-spacing:-.03em;font-size:clamp(27px,1.5vw + 17px,38px);font-weight:350;line-height:1.05}.summary{grid-template-columns:auto minmax(0,1fr);align-items:end;gap:clamp(28px,6vw,104px);min-width:0;display:grid}.cover{gap:clamp(12px,1.6vw,22px);display:grid}.cover-big{font-family:var(--serif);font-variation-settings:"SOFT" 100, "WONK" 0;letter-spacing:-.06em;white-space:nowrap;font-size:clamp(7rem,15vw,14rem);font-weight:280;line-height:.78;display:block}.cover-big i{font-variation-settings:"SOFT" 100, "WONK" 1;letter-spacing:-.03em;color:var(--tone-deep);margin-left:.1em;font-size:.3em;font-weight:300}.cover-cap{color:var(--ink-2);font-size:16px;line-height:1.4}.summary-side{gap:clamp(14px,1.6vw,20px);min-width:0;padding-bottom:4px;display:grid}.stage-bar{gap:3px;display:flex}.stage-bar-main{height:16px}.bar-seg{border-radius:3px;flex-basis:0;min-width:6px}.bar-demonstrated{background:var(--tone-deep)}.bar-practised{background:var(--tone);box-shadow:inset 0 0 0 1px var(--tone-deep)}.bar-introduced{background:repeating-linear-gradient(135deg, var(--tone-deep) 0 1.5px, var(--paper-raised) 1.5px 5px);box-shadow:inset 0 0 0 1px var(--tone-deep)}.bar-unattempted{box-shadow:inset 0 0 0 1px var(--rule-strong);background:#fffefb99}.stage-counts{flex-wrap:wrap;gap:8px clamp(16px,2.4vw,32px);font-size:15px;display:flex}.stage-count{align-items:center;gap:8px;display:flex}.swatch{border-radius:2.5px;flex:none;width:11px;height:11px}.stage-count-num{font-size:13px;font-weight:600}.estimate-note{border-top:1.5px dashed var(--rule-strong);max-width:46em;color:var(--ink-2);gap:6px;padding-top:14px;font-size:14px;line-height:1.5;display:grid}.estimate-note strong{color:var(--ink);font-weight:650}.rules-version{font-size:11.5px}.how summary{cursor:pointer;width:-moz-fit-content;width:fit-content;color:var(--ink);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.how p{margin-top:6px}.item-head{justify-content:space-between;align-items:baseline;gap:4px var(--s3);flex-wrap:wrap;display:flex}.item-name{align-items:baseline;gap:10px;min-width:0;display:inline-flex}.item-id{width:34px;color:var(--tone-deep);flex:none;font-size:12.5px;font-weight:600}.item-title{overflow-wrap:anywhere}.stage-badge{color:var(--ink-2);white-space:nowrap;flex:none;align-items:center;gap:7px;font-size:13px;font-weight:500;display:inline-flex}.stage-glyph{border:1.5px solid;border-radius:50%;width:10px;height:10px;display:inline-block}.stage-unattempted{color:var(--ink-3)}.stage-unattempted .stage-glyph{border-style:dotted}.stage-introduced .stage-glyph{background:linear-gradient(90deg,currentColor 50%,#0000 50%)}.stage-practised{color:var(--ink)}.stage-practised .stage-glyph{background:linear-gradient(#0000 32%,currentColor 32%)}.stage-demonstrated{color:var(--ink);font-weight:650}.stage-demonstrated .stage-glyph{box-shadow:0 0 0 2px var(--tone);background:currentColor}.next-list,.revisit-list{gap:var(--s3);display:grid}.next-item,.revisit-item{border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--paper-raised);min-width:0;box-shadow:var(--shadow-1);gap:8px;padding:clamp(16px,1.8vw,22px) clamp(16px,1.8vw,22px) clamp(16px,1.8vw,22px) clamp(22px,2.2vw,28px);display:grid;position:relative}.next-item:before,.revisit-item:before{content:"";background:var(--tone);width:4px;box-shadow:0 0 0 .5px var(--tone-deep);border-radius:2px;position:absolute;top:20px;bottom:20px;left:10px}.next-item .item-head,.revisit-item .item-head{gap:6px var(--s3);grid-template-columns:minmax(0,1fr) auto;display:grid}.next-item .item-name,.revisit-item .item-name{display:contents}.next-item .item-title,.revisit-item .item-title{font-family:var(--serif);font-variation-settings:"SOFT" 100, "WONK" 0;letter-spacing:-.02em;grid-area:2/1/auto/-1;font-size:clamp(20px,.6vw + 16px,24px);font-weight:400;line-height:1.14}.next-why{color:var(--ink-2);font-size:15px;line-height:1.45}.go-row{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:6px;display:flex}.next-go{flex:none}.go-what{min-width:0;color:var(--ink-2);flex:12em;font-size:13.5px;line-height:1.35}.revisit-score{letter-spacing:.08em;text-transform:uppercase;color:var(--warn-ink);white-space:nowrap;font-size:10.5px;font-weight:600}.error-head{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2);margin-top:4px;font-size:9.5px;font-weight:600;font-stretch:87.5%}.error-list{font-size:14.5px;line-height:1.4;display:grid}.error-list li{justify-content:space-between;align-items:baseline;gap:var(--s3);border-top:1px solid var(--rule);padding:7px 0;display:flex}.error-count{color:var(--ink-2);white-space:nowrap;font-size:11px}.tag-weak{border-style:dashed;border-color:var(--warn-ink);color:var(--warn-ink);background:var(--warn-wash)}.coverage-note{max-width:46em;color:var(--ink-2);font-size:15px}.section-list{border-top:1.5px solid var(--ink)}.section-block{border-bottom:1px solid var(--rule-strong)}.section-summary{cursor:pointer;grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:6px clamp(14px,2vw,28px);padding:clamp(14px,1.5vw,22px) 4px clamp(14px,1.5vw,22px) 0;list-style:none;transition:background-color .3s;display:grid}.section-summary::-webkit-details-marker{display:none}.item-row::-webkit-details-marker{display:none}.section-summary:hover{background:color-mix(in srgb, var(--tone) 18%, transparent)}.section-title{letter-spacing:-.03em;grid-template-columns:clamp(28px,3.6vw,56px) minmax(0,1fr);align-items:baseline;column-gap:12px;font-size:clamp(23px,1.7vw + 13px,36px);font-weight:340;line-height:1.06;display:grid}.section-num{font-variation-settings:"SOFT" 100, "WONK" 1;color:var(--tone-deep);font-style:italic;font-weight:300}.section-tally{justify-items:end;gap:6px;display:grid}.stage-bar-mini{gap:2px;width:clamp(84px,11vw,132px);height:7px}.stage-bar-mini .bar-seg{border-radius:2px;min-width:4px}.section-counts{color:var(--ink-2);white-space:nowrap;font-size:13.5px}.chev{border-right:1.5px solid var(--ink-2);border-bottom:1.5px solid var(--ink-2);flex:none;justify-self:end;width:9px;height:9px;margin:0 4px 3px 0;transition:transform .3s;transform:rotate(45deg)}.section-block[open]>.section-summary .chev,.item-more[open]>.item-row .chev{transform:translateY(3px)rotate(-135deg)}.item-list{border:1px solid var(--rule);border-left:4px solid var(--tone);border-radius:6px var(--radius-lg) var(--radius-lg) 6px;background:var(--paper-raised);box-shadow:var(--shadow-1);margin:0 0 clamp(18px,2vw,28px);display:grid;overflow:hidden}.item{border-top:1px solid var(--rule)}.item:first-child{border-top:0}.item-row{align-items:baseline;gap:6px 14px;min-height:48px;padding:12px clamp(14px,1.6vw,20px);list-style:none;display:flex}.item-row .item-name{flex:auto}.item-row .item-title{font-size:15.5px;font-weight:500;line-height:1.35}summary.item-row{cursor:pointer;transition:background-color .25s}summary.item-row:hover{background:color-mix(in srgb, var(--tone) 14%, transparent)}summary.item-row .chev{align-self:center;width:7px;height:7px;margin:0 2px 3px}.item-plain .item-title,.item-unattempted .item-title{font-weight:400}.item-plain .item-title,.item-plain .item-id{color:var(--ink-3)}.item-plain .item-note{text-align:right;max-width:34em;color:var(--ink-3);flex:0 auto;font-size:13px;font-style:italic;line-height:1.35}.item-detail{color:var(--ink-2);gap:10px;padding:2px clamp(14px,1.6vw,20px) 16px calc(clamp(14px,1.6vw,20px) + 44px);font-size:14.5px;display:grid}.item-stats{flex-wrap:wrap;gap:8px clamp(16px,2vw,28px);display:flex}.stat{gap:1px;display:grid}.stat dt{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-size:9.5px;font-weight:500;font-stretch:87.5%}.stat dd{color:var(--ink);font-size:14px;font-weight:600}@media (max-width:900px){.dash-top{grid-template-columns:minmax(0,1fr)}}@media (max-width:720px){.summary{grid-template-columns:minmax(0,1fr);align-items:start}.section-summary{grid-template-columns:minmax(0,1fr) 18px}.section-tally{grid-area:2/1;grid-template-columns:auto auto;justify-content:start;align-items:center;gap:10px;padding-left:calc(clamp(28px,3.6vw,56px) + 12px)}.section-summary .chev{grid-area:1/2}.item-row{flex-wrap:wrap}.item-row .item-name{flex-basis:100%}summary.item-row{padding-right:40px;position:relative}summary.item-row .chev{position:absolute;top:19px;right:16px}.item-row .stage-badge,.item-row .tag,.item-plain .item-note{text-align:left;margin-left:44px}.item-row .tag+.stage-badge{margin-left:0}}@media (prefers-reduced-motion:no-preference){.dash-first .stage-bar{animation:1.2s cubic-bezier(.2,.7,.2,1) .45s both bar-fill}.dash-first .cover-big{animation:.9s cubic-bezier(.2,.7,.2,1) .1s both rise}.section-block[open] .item{animation:.5s cubic-bezier(.2,.7,.2,1) both rise;animation-delay:calc(var(--n,0) * 28ms)}.item-more[open]>.item-detail{animation:.4s cubic-bezier(.2,.7,.2,1) both rise}@keyframes bar-fill{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}}@media (forced-colors:active){.bar-seg,.swatch{border:1px solid canvastext}}
