const {Card,Icon,Button,Badge,Tag}=window.KinroAcademyDesignSystem_f0472d; const ROWS=[ ["Questions ordered by what moves a grade",false,true], ["Mark scheme printed beside every question",false,true], ["Examiner notes on the marks students actually drop",false,true], ["Worked exemplar at grade 7 and grade 9 standard",false,true], ["Common-error box written from our own marked papers",false,true], ["Earlier topics deliberately revisited on a schedule",false,true], ["Difficulty ladder inside each topic",false,true], ["Written by the specialists who teach the sessions",false,true], ["Free to download",true,false]]; function GenericPage(){ return
{Array.from({length:18}).map((_,i)=>
)}
; } function KinroPage(){ return
Quadratics · ladder step 3 of 5 Grade 6 → 8

4. Solve x² − 7x + 10 = 0. (3)

{[["M1","factorise to (x−2)(x−5)"],["A1","x = 2"],["A1","x = 5"]].map(([m,d],i)=> {m} {d})}
Most dropped mark here: giving only one root. Both values are paid for separately.
Grade 9 exemplar

(x − 2)(x − 5) = 0
x = 2 or x = 5

Revisits: week 4 and week 10
; } function Slider(){ const [pos,setPos]=React.useState(52); const [hover,setHover]=React.useState(false); const [ref,inv]=useInView(); React.useEffect(()=>{ if(!inv||hover)return; let raf,t0; const tick=t=>{if(!t0)t0=t; setPos(50+34*Math.sin((t-t0)/1900)); raf=requestAnimationFrame(tick)}; raf=requestAnimationFrame(tick); return()=>cancelAnimationFrame(raf); },[inv,hover]); return
setHover(true)} onMouseLeave={()=>setHover(false)} style={{display:"flex",flexDirection:"column",gap:"var(--space-5)"}}>
18?1:0,transition:"opacity .2s"}}>Free worksheet Kinro workbook
setPos(+e.target.value)} aria-label="Compare the two workbooks" style={{position:"absolute",inset:0,width:"100%",height:"100%",opacity:0,cursor:"ew-resize",margin:0}}/>
{hover?"Drag across the page to compare":"Comparing automatically. Hover to take control"}
{[["All worksheet",0],["Split",52],["All workbook",100]].map(([l,v])=> )}
; } function WorkbookBand(){ const [ref,inv]=useInView(); return
The workbook on the table is the same one we teach from. One book per topic, printed and posted, annotated in the session and set for the week ahead.
{["Printed and posted","Marked in session","Set every week"].map(t=> {t})}
; } function Workbooks({onBook}){ const [ref,inv]=useInView(); return

Side by side

Generic Kinro
{ROWS.map(([label,g,k],i)=>
{label}
)}
; } Object.assign(window,{Workbooks,WorkbookBand,Slider,ROWS});